/* Today mascot note: a dense shared entry point; the full commentary opens in the existing modal. */
.today-mascot-host[hidden]{display:none}
.today-mascot-note{--mascot-accent:var(--accent-text,var(--accent));position:relative;overflow:hidden;margin:0 0 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.today-mascot-note::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--mascot-accent);z-index:1}
.today-mascot-note[data-mood=sad],.today-mascot-note[data-mood=crying],.today-mascot-note[data-mood=worried]{--mascot-accent:var(--neg)}
.today-mascot-note[data-mood=bullish],.today-mascot-note[data-mood=excited]{--mascot-accent:var(--pos)}
.today-mascot-note[data-mood=closed],.today-mascot-note[data-mood=thinking]{--mascot-accent:var(--muted)}
.today-mascot-launcher{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr) auto auto;align-items:center;gap:8px 14px;width:100%;min-height:92px;padding:8px 14px 8px 10px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.today-mascot-launcher:hover{background:color-mix(in srgb,var(--surface-2) 72%,transparent)}
.today-mascot-launcher:focus-visible{outline:3px solid var(--focus,var(--accent));outline-offset:-3px}
.today-mascot-launcher-duck{display:grid;place-items:center;width:72px;height:72px}
.today-mascot-launcher-duck img{display:block;width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 6px 10px rgb(23 32 25 / 12%));transform-origin:50% 80%}
.today-mascot-launcher-copy{display:grid;min-width:0;gap:3px}
.today-mascot-meta{display:flex;align-items:center;gap:5px 9px;min-width:0;color:var(--muted);font-size:10px;line-height:1.35}
.today-mascot-meta>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.today-mascot-badge{flex:none;padding:2px 6px;border:1px solid color-mix(in srgb,var(--mascot-accent) 42%,var(--border));border-radius:5px;color:var(--text);font-weight:650}
.today-mascot-launcher-title{overflow:hidden;font-size:16px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.today-mascot-launcher-summary{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:12px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.today-mascot-launcher-readings,.today-mascot-benchmarks{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.today-mascot-benchmark{display:inline-flex;align-items:baseline;gap:5px;min-height:28px;padding:3px 7px;border:1px solid var(--border);border-radius:5px;background:var(--surface-2);font-size:10px;white-space:nowrap}
.today-mascot-benchmark strong{font-size:12px;font-variant-numeric:tabular-nums}
.today-mascot-benchmark.is-down strong{color:var(--neg)}.today-mascot-benchmark.is-up strong{color:var(--pos)}
.today-mascot-open-label{display:flex;align-items:center;gap:6px;min-height:44px;color:var(--accent-text,var(--accent));font-size:12px;font-weight:700;white-space:nowrap}
.today-mascot-open-label>span{font-size:22px;font-weight:400}

.today-mascot-dialog{--mascot-accent:var(--accent-text,var(--accent));min-width:0}
.today-mascot-dialog[data-mood=sad],.today-mascot-dialog[data-mood=crying],.today-mascot-dialog[data-mood=worried]{--mascot-accent:var(--neg)}
.today-mascot-dialog[data-mood=bullish],.today-mascot-dialog[data-mood=excited]{--mascot-accent:var(--pos)}
.today-mascot-dialog-lead{display:grid;grid-template-columns:160px minmax(0,1fr);align-items:center;gap:18px}
.today-mascot-dialog-duck{display:grid;place-items:center;width:160px;height:160px}
.today-mascot-dialog-duck img{display:block;width:160px;height:160px;object-fit:contain;filter:drop-shadow(0 10px 18px rgb(23 32 25 / 14%));transform-origin:50% 82%}
.today-mascot-dialog-kicker{margin:0 0 6px!important;color:var(--muted);font-size:11px!important;font-weight:700}
.today-mascot-summary{max-width:68ch;margin:0;font-size:14px;line-height:1.65;color:var(--text)}
.today-mascot-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:12px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.today-mascot-insight{min-width:0;padding:10px}
.today-mascot-insight+.today-mascot-insight{border-left:1px solid var(--border)}
.today-mascot-insight h3{margin:0 0 5px;font-size:11px;line-height:1.35;color:var(--text)}
.today-mascot-insight p{margin:0!important;color:var(--muted);font-size:11px!important;line-height:1.55}
.today-mascot-dialog>.today-mascot-benchmarks{margin-top:12px;padding:10px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.today-mascot-prompt{display:flex;align-items:center;gap:12px;margin-top:12px}
.today-mascot-prompt p{flex:1;margin:0!important;font-size:13px!important;line-height:1.5;font-weight:650}
.today-mascot-prompt .btn{flex:0 0 auto;min-height:44px}
.today-mascot-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.today-mascot-action{display:grid;gap:2px;min-height:60px;padding:9px 10px;color:var(--text);text-decoration:none}
.today-mascot-action+.today-mascot-action{border-left:1px solid var(--border)}
.today-mascot-action:hover .today-mascot-action-title,.today-mascot-action:focus-visible .today-mascot-action-title{text-decoration:underline;text-underline-offset:3px}
.today-mascot-action:focus-visible{outline:3px solid var(--focus,var(--accent));outline-offset:-3px}
.today-mascot-action-title{font-size:12px;font-weight:700}.today-mascot-action-note{font-size:10px;line-height:1.4;color:var(--muted)}
.today-mascot-method{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.45}
.today-mascot-method>summary{display:inline-flex;align-items:center;min-height:44px;cursor:pointer;color:var(--muted)}
.today-mascot-method p{max-width:68ch;margin:0 0 8px!important;font-size:11px!important}
.today-mascot-note[data-mood=sad] img,.today-mascot-note[data-mood=crying] img,.today-mascot-note[data-mood=worried] img{animation:ducky-concerned .65s ease-out both}
.today-mascot-note[data-mood=bullish] img,.today-mascot-note[data-mood=excited] img{animation:ducky-upbeat .55s ease-out both}
@keyframes ducky-concerned{0%,100%{transform:rotate(0)}20%{transform:rotate(-3deg)}45%{transform:rotate(3deg)}70%{transform:rotate(-1.5deg)}}
@keyframes ducky-upbeat{0%{transform:translateY(4px) scale(.98)}55%{transform:translateY(-2px) scale(1.01)}100%{transform:none}}

@media(max-width:700px){
 .today-mascot-note{border-radius:10px}
 .today-mascot-launcher{grid-template-columns:56px minmax(0,1fr) 30px;gap:4px 9px;min-height:78px;padding:6px 8px 6px 7px}
 .today-mascot-launcher-duck,.today-mascot-launcher-duck img{width:56px;height:56px}
 .today-mascot-launcher-copy{grid-column:2}
 .today-mascot-meta{font-size:9px}.today-mascot-meta>span:last-child{display:none}
 .today-mascot-launcher-title{font-size:14px}
 .today-mascot-launcher-summary{font-size:11px;-webkit-line-clamp:1}
 .today-mascot-launcher-readings{grid-column:2;gap:4px}
 .today-mascot-benchmark{min-height:24px;padding:2px 5px;font-size:9px}.today-mascot-benchmark strong{font-size:10px}
 .today-mascot-open-label{grid-column:3;grid-row:1/3;justify-content:center;min-width:30px;font-size:0}.today-mascot-open-label>span{font-size:24px}
 .today-mascot-dialog-lead{grid-template-columns:96px minmax(0,1fr);gap:10px}
 .today-mascot-dialog-duck,.today-mascot-dialog-duck img{width:96px;height:96px}
 .today-mascot-summary{font-size:13px;line-height:1.55}
 .today-mascot-insights{grid-template-columns:1fr}.today-mascot-insight+.today-mascot-insight{border-left:0;border-top:1px solid var(--border)}
 .today-mascot-prompt{display:grid;gap:8px}.today-mascot-prompt .btn{width:100%}
 .today-mascot-actions{grid-template-columns:1fr}
 .today-mascot-action+.today-mascot-action{border-left:0;border-top:1px solid var(--border)}
 .today-mascot-action{min-height:52px;padding:7px 4px}
}
@media(max-width:360px){.today-mascot-launcher-summary{-webkit-line-clamp:1}.today-mascot-launcher-readings{flex-wrap:nowrap}.today-mascot-launcher-readings .today-mascot-benchmark:last-child{display:none}.today-mascot-dialog-lead{grid-template-columns:76px minmax(0,1fr)}.today-mascot-dialog-duck,.today-mascot-dialog-duck img{width:76px;height:76px}}
@media(prefers-reduced-motion:reduce){.today-mascot-launcher img{animation:none!important}}
