/* Daily challenges: private participation goals with a quiet seven-day history. */
.cs-engagement{--ce-bg:#fff;--ce-panel:#f7f5fc;--ce-border:#e6e0f0;--ce-text:#282134;--ce-muted:#6d617d;--ce-accent:#7841c5;--ce-tint:#eee5fc;--ce-success:#28745b;--ce-success-bg:#eaf6ef;container-type:inline-size;position:relative;min-width:0;padding:24px;border:1px solid var(--ce-border);border-radius:20px;background:var(--ce-bg);color:var(--ce-text);font-family:inherit}
.cs-engagement *{box-sizing:border-box}.cs-engagement [hidden]{display:none!important}
.cs-engagement-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.cs-engagement-eyebrow{margin:0 0 7px!important;color:var(--ce-accent);font-size:10px;font-weight:750;line-height:1.4;letter-spacing:1.5px}.cs-engagement h2{margin:0;font-size:23px;line-height:1.2;font-weight:750;letter-spacing:-.6px;color:var(--ce-text)}.cs-engagement-goals{flex:none;padding:7px 10px;border:1px solid var(--ce-border);border-radius:30px;background:var(--ce-panel);color:var(--ce-accent);font-size:12px;font-weight:650;white-space:nowrap}.cs-engagement-intro{margin:10px 0 20px;font-size:14px;line-height:1.5;color:var(--ce-muted)}
.cs-engagement-challenges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.cs-engagement-task{display:flex;flex-direction:column;min-width:0;padding:16px;border:1px solid var(--ce-border);border-radius:14px;background:var(--ce-panel);transition:border-color .2s,background .2s}.cs-engagement-task-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.cs-engagement-task-icon{display:block;flex:none;width:24px;height:24px;color:var(--ce-accent)}.cs-engagement-task-count{font-size:12px;line-height:1.3;font-weight:650;font-variant-numeric:tabular-nums;color:var(--ce-muted)}.cs-engagement-task-copy{flex:1}.cs-engagement-task h3{margin:0;color:var(--ce-text);font-size:15px;line-height:1.35;font-weight:700;letter-spacing:-.2px}.cs-engagement-task-copy p{margin:6px 0 0;font-size:12px;line-height:1.5;color:var(--ce-muted)}.cs-engagement-task-status{display:block;margin:14px 0 10px;font-size:11px;line-height:1.4;font-weight:600;color:var(--ce-accent)}.cs-engagement-action{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:44px;padding:9px 10px;border:1px solid var(--ce-border);border-radius:8px;background:var(--ce-bg);color:var(--ce-text)!important;font-size:12px;line-height:1.35;font-weight:650;text-decoration:none!important;transition:border-color .2s,background .2s}.cs-engagement-action>span:last-child{flex:none;width:15px;height:15px;color:var(--ce-accent)}.cs-engagement-action:hover{border-color:var(--ce-accent);background:var(--ce-tint)}.cs-engagement :is(a,button,summary):focus-visible{outline:2px solid var(--ce-accent);outline-offset:4px}.cs-engagement-task.is-complete{border-color:color-mix(in srgb,var(--ce-success) 40%,var(--ce-border));background:var(--ce-success-bg)}.cs-engagement-task.is-complete :is(.cs-engagement-task-icon,.cs-engagement-task-status){color:var(--ce-success)}.cs-engagement-task.is-complete .cs-engagement-task-count{color:var(--ce-success)}
.cs-engagement-completion{display:flex;align-items:center;gap:12px;margin:16px 0 0;padding:14px;border:1px solid color-mix(in srgb,var(--ce-success) 40%,var(--ce-border));border-radius:12px;background:var(--ce-success-bg);color:var(--ce-success)}.cs-engagement-completion>span:first-child{width:26px;height:26px;flex:none}.cs-engagement-completion strong{display:block;font-size:14px;line-height:1.4}.cs-engagement-completion strong+span{display:block;font-size:12px;line-height:1.5;margin-top:3px}.cs-engagement.is-celebrating .cs-engagement-completion{animation:cs-engagement-achieved .7s ease-out}
.cs-engagement-week{margin-top:22px;padding-top:18px;border-top:1px solid var(--ce-border)}.cs-engagement-week-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.cs-engagement-week h3{margin:0;font-size:13px;font-weight:650;color:var(--ce-text)}.cs-engagement-week-heading>span{font-size:11px;color:var(--ce-muted)}.cs-engagement-week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;padding:0;margin:14px 0 10px;list-style:none}.cs-engagement-week-days li{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}.cs-engagement-week-label{font-size:11px;line-height:1.4;color:var(--ce-muted)}.cs-engagement-day-mark{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--ce-border);border-radius:50%;background:var(--ce-panel);color:var(--ce-success)}.cs-engagement-day-mark>span{display:none;width:18px;height:18px}.cs-engagement-week-days [data-state=active] .cs-engagement-day-mark{background:var(--ce-tint);border-color:var(--ce-accent)}.cs-engagement-week-days [data-state=complete] .cs-engagement-day-mark{background:var(--ce-success-bg);border-color:var(--ce-success)}.cs-engagement-week-days [data-state=complete] .cs-engagement-day-mark>span{display:block}.cs-engagement-week-days [aria-current=date] .cs-engagement-week-label{color:var(--ce-accent);font-weight:750}.cs-engagement-week-days [aria-current=date] .cs-engagement-day-mark{outline:2px solid var(--ce-accent);outline-offset:3px}.cs-engagement-legend{display:flex;justify-content:center;gap:16px;margin-top:16px;color:var(--ce-muted);font-size:10px}.cs-engagement-legend>span{display:flex;align-items:center;gap:5px}.cs-engagement-legend-dot{display:block;width:7px;height:7px;border-radius:50%}.cs-engagement-legend-dot.is-active{background:var(--ce-accent)}.cs-engagement-legend-dot.is-complete{background:var(--ce-success)}
.cs-engagement-details{margin-top:18px;border-top:1px solid var(--ce-border)}.cs-engagement-details>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding-top:8px;list-style:none;cursor:pointer;font-size:12px;color:var(--ce-muted)}.cs-engagement-details>summary::-webkit-details-marker{display:none}.cs-engagement-details>summary>span{width:15px;height:15px}.cs-engagement-details[open]>summary>span{transform:rotate(180deg)}.cs-engagement-breakdown{font-size:12px;line-height:1.6;color:var(--ce-muted)}.cs-engagement-breakdown p{margin:10px 0}.cs-engagement-detail-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;color:var(--ce-accent);font-weight:650}.cs-engagement-levels{padding:0;margin:12px 0;list-style:none}.cs-engagement-levels li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;border-radius:6px}.cs-engagement-levels .is-earned{background:var(--ce-tint);color:var(--ce-accent)}.cs-engagement-error{font-size:12px;line-height:1.5;color:#c66666;margin:10px 0 0}.cs-engagement-error button{min-height:44px;padding:0 6px;background:none;border:0;text-decoration:underline;cursor:pointer;font:inherit;color:inherit}
:is(.dark,[data-theme$="-dark"],[data-bs-theme="dark"]) .cs-engagement{--ce-bg:#18151f;--ce-panel:#201a2b;--ce-border:#352c44;--ce-text:#f4effb;--ce-muted:#b5a7c7;--ce-accent:#bf96ff;--ce-tint:#362647;--ce-success:#8cd9b5;--ce-success-bg:#1c302b;background:radial-gradient(ellipse at 100% 0,#51316a22,transparent 60%),var(--ce-bg)}
@container(max-width:540px){.cs-engagement-heading{align-items:flex-start;flex-direction:column;gap:12px}.cs-engagement h2{font-size:22px}.cs-engagement-goals{font-size:11px;padding:5px 9px}.cs-engagement-challenges{grid-template-columns:1fr;gap:10px}.cs-engagement-task{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:0 10px;padding:14px}.cs-engagement-task-top{display:contents}.cs-engagement-task-icon{grid-column:1;grid-row:1/3;align-self:center}.cs-engagement-task-count{grid-column:3;grid-row:1;align-self:center}.cs-engagement-task-copy{grid-column:2;grid-row:1/3}.cs-engagement-task-copy p{font-size:12px;margin-top:4px}.cs-engagement-task-status{grid-column:3;grid-row:2;margin:4px 0 0;text-align:right;font-size:10px}.cs-engagement-action{grid-column:2/4;margin-top:10px}.cs-engagement-task h3{font-size:14px}.cs-engagement-week-heading{align-items:flex-start;flex-direction:column;gap:4px}.cs-engagement-week-days{gap:4px}.cs-engagement-day-mark{width:28px;height:28px}.cs-engagement-week-label{font-size:10px}}
@media(max-width:480px){.cs-engagement{padding:18px 14px;border-radius:16px}.cs-engagement-eyebrow{font-size:9px;letter-spacing:1.1px}.cs-engagement-intro{font-size:13px}}
@keyframes cs-engagement-achieved{0%{box-shadow:0 0 0 0 #8cd9b54d;transform:translateY(3px)}100%{box-shadow:0 0 0 10px #8cd9b500;transform:none}}
@media(prefers-reduced-motion:reduce){.cs-engagement *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.cs-engagement-task-count{display:flex;align-items:center;justify-content:flex-end;gap:5px}.cs-engagement-task-done{display:none;width:15px;height:15px}.cs-engagement-task.is-complete .cs-engagement-task-done{display:block}

/* The feed shows only the weekly strip; daily challenges open on request. */
.cs-engagement-summary{padding:16px 24px;border-radius:16px}
.cs-engagement-summary>.cs-engagement-week{margin:0;padding:0;border:0;cursor:pointer}
.cs-engagement-week-heading h3 button{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0;border:0;background:none;color:inherit;font:inherit;font-weight:650;cursor:pointer;text-align:left}
.cs-engagement-week-heading h3 button>span{display:block;width:14px;height:14px;color:var(--ce-accent)}
.cs-engagement-summary .cs-engagement-week-days{margin-top:10px}
.cs-engagement-summary .cs-engagement-legend{margin-top:12px}
.cs-engagement-dialog{position:fixed;inset:0;width:calc(100% - 32px);max-width:860px;max-height:calc(100dvh - 48px);margin:auto;padding:0;border:0;border-radius:20px;overflow:auto;background:var(--ce-bg);color:var(--ce-text);overscroll-behavior:contain;box-shadow:0 24px 90px #0007}
.cs-engagement-dialog::backdrop{background:#090711b8;backdrop-filter:blur(5px)}
.cs-engagement-popup{padding:28px;border-radius:20px;min-width:0}
.cs-engagement-popup .cs-engagement-heading{padding-right:36px}
.cs-engagement-close{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--ce-border);border-radius:50%;background:var(--ce-panel);color:var(--ce-muted);cursor:pointer}
.cs-engagement-close>span{display:block;width:20px;height:20px}
.cs-engagement-close:hover{color:var(--ce-text);border-color:var(--ce-accent)}
html.cs-engagement-modal-open{overflow:hidden}
@media(max-width:600px){.cs-engagement-summary{padding:12px 14px}.cs-engagement-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 32px);border-radius:16px}.cs-engagement-popup{padding:20px 14px;border-radius:16px}.cs-engagement-popup .cs-engagement-heading{padding-right:32px}.cs-engagement-popup h2{font-size:21px}.cs-engagement-close{top:10px;right:10px;width:32px;height:32px}}

/* Only finished days receive a missed-goal mark; today remains in progress. */
.cs-engagement{--ce-missed:#c24753}
:is(.dark,[data-theme$="-dark"],[data-bs-theme="dark"]) .cs-engagement{--ce-missed:#ef8d96}
.cs-engagement-week-days [data-state=complete] .cs-engagement-day-mark>.cs-engagement-day-missed{display:none}
.cs-engagement-week-days li:not([aria-current=date]):not([data-state=complete]) .cs-engagement-day-mark{color:var(--ce-missed);border-color:var(--ce-missed);background:color-mix(in srgb,var(--ce-missed) 10%,var(--ce-bg))}
.cs-engagement-week-days li:not([aria-current=date]):not([data-state=complete]) .cs-engagement-day-missed{display:block}
.cs-engagement-legend-dot.is-missed{background:var(--ce-missed)}
