:root{--bg: #0e1013;--bg-elevated: #171a1f;--bg-input: #1e222a;--surface-border: #262b34;--text: #f2f4f7;--text-muted: #98a0ad;--text-faint: #6b7280;--accent: #b8f227;--accent-strong: #cdff4a;--accent-ink: #10140a;--danger: #fb7185;--warn: #fbbf24;--radius: 16px;--radius-sm: 10px;--radius-lg: 24px;--tap: 48px;--shadow: 0 10px 30px rgb(0 0 0 / 45%);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}body.no-scroll{overflow:hidden}h1,h2,h3{margin:0;line-height:1.2}p{margin:0 0 .6em}a{color:inherit;text-decoration:none}code{background:var(--bg-input);border-radius:6px;padding:.1em .4em;font-size:.9em}small{font-size:.8em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);min-width:var(--tap);padding:0 18px;border:1px solid transparent;border-radius:var(--radius);background:var(--bg-input);color:var(--text);font:inherit;font-weight:600;cursor:pointer;transition:transform .08s ease,background .15s ease,opacity .15s ease;user-select:none}.btn:active{transform:scale(.97)}.btn--accent{background:var(--accent);color:var(--accent-ink)}.btn--accent:hover{background:var(--accent-strong)}.btn--ghost{background:transparent;border-color:var(--surface-border);color:var(--text)}.btn--danger{background:color-mix(in srgb,var(--danger) 20%,transparent);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}.btn--danger.is-selected,.btn--accent.is-selected{outline:3px solid var(--text);outline-offset:2px}.btn--block{display:flex;width:100%}.btn--lg{min-height:56px;font-size:1.05rem}.btn--sm{min-height:38px;padding:0 12px;font-size:.85rem}.btn--icon{padding:0;background:transparent;font-size:1.15rem}.btn--icon:hover{background:var(--bg-input)}.btn--round{width:var(--tap);height:var(--tap);padding:0;border-radius:50%;font-size:1.4rem;line-height:1}.btn--step{flex:1;min-width:0;background:var(--bg-input);border:1px solid var(--surface-border)}.btn--step-clear{flex:0 0 56px;color:var(--text-muted)}.card{background:var(--bg-elevated);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:16px;margin-bottom:14px}.card--center{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}.section-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:12px}.badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);font-size:.72rem;font-weight:700;white-space:nowrap}.badge--ghost{background:var(--bg-input);color:var(--text-muted)}.badge--me{background:var(--accent);color:var(--accent-ink)}.hint{color:var(--text-muted);font-size:.85rem;margin:8px 0 0}.empty{color:var(--text-faint);font-size:.9rem;text-align:center;padding:14px 0;margin:0;list-style:none}.empty-state{text-align:center;padding:40px 20px;color:var(--text-muted)}.empty-state__title{font-size:1.2rem;font-weight:700;color:var(--text);margin-bottom:6px}.empty-state .btn{margin-top:14px}.field{display:block;border:0;padding:0;margin:0 0 14px}.field__label{display:block;margin-bottom:6px;font-size:.85rem;font-weight:600;color:var(--text-muted)}.field__label small{font-weight:400;color:var(--text-faint)}.field-row{display:flex;gap:10px}.field-row .field{flex:1;min-width:0}.input{width:100%;min-height:var(--tap);padding:12px 14px;border:1px solid var(--surface-border);border-radius:var(--radius);background:var(--bg-input);color:var(--text);font:inherit}.input:focus{outline:2px solid var(--accent);outline-offset:1px}.input--number{font-variant-numeric:tabular-nums}.input--hero{font-size:2.2rem;font-weight:800;text-align:center;min-height:72px}.input--hero-text{font-size:1.3rem;font-weight:700}textarea.input{resize:vertical;min-height:76px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.chips--scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;margin:0 -16px 14px;padding-inline:16px}.chips--scroll::-webkit-scrollbar{display:none}.chip{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border:1px solid var(--surface-border);border-radius:999px;background:var(--bg-elevated);color:var(--text-muted);font:inherit;font-size:.9rem;font-weight:600;white-space:nowrap;cursor:pointer}.chip.is-selected{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.chip--participant.is-selected{background:var(--chip-color, var(--accent));border-color:var(--chip-color, var(--accent));color:#10140a}.onboarding{max-width:520px;margin:0 auto;padding:calc(28px + var(--safe-top)) 16px calc(28px + var(--safe-bottom));min-height:100dvh;display:flex;flex-direction:column;justify-content:center}.onboarding__loading{display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--text-muted);padding:60px 0}.spinner{width:32px;height:32px;border:3px solid var(--surface-border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.onboarding__hero{text-align:center;margin-bottom:30px}.onboarding__logo{font-size:3.2rem;display:block;margin-bottom:10px}.onboarding__title{font-size:1.9rem;font-weight:800;letter-spacing:-.02em;margin-bottom:8px}.onboarding__claim{color:var(--text-muted)}.onboarding__actions{display:flex;flex-direction:column;gap:12px;margin-bottom:22px}.onboarding__card{position:relative}.onboarding__head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.onboarding__back{flex-shrink:0}.onboarding__head .onboarding__title{flex:1;min-width:0;margin-bottom:0;font-size:1.5rem}.onboarding__card .onboarding__title{margin-bottom:12px}.setup-list{color:var(--text-muted);padding-left:20px;line-height:1.7}.event-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.event-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:var(--tap);padding:10px 14px;border:1px solid var(--surface-border);border-radius:var(--radius);background:var(--bg-input);color:var(--text);font:inherit;text-align:left;cursor:pointer}.event-row.is-current{border-color:var(--accent)}.event-row__body{display:flex;flex-direction:column}.event-row__body small{color:var(--text-muted)}.join-code{width:100%;min-height:76px;margin-bottom:14px;padding:12px;border:1px solid var(--surface-border);border-radius:var(--radius);background:var(--bg-input);color:var(--text);font-size:2.4rem;font-weight:800;letter-spacing:.3em;text-align:center;text-transform:uppercase;font-variant-numeric:tabular-nums}.join-code--display{display:flex;align-items:center;justify-content:center;color:var(--accent);user-select:all}.participant-picker{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px}.participant-pick{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:8px 14px;border:1px solid var(--surface-border);border-radius:var(--radius);background:var(--bg-input);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.appbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:calc(10px + var(--safe-top)) 12px 10px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--surface-border)}.appbar__main{flex:1;min-width:0}.appbar__event{display:flex;flex-direction:column;align-items:flex-start;gap:1px;max-width:100%;min-height:44px;padding:2px 6px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.appbar__event strong{font-size:1.05rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60vw}.appbar__event small{color:var(--text-muted)}.appbar__side{display:flex;align-items:center;gap:4px}.sync{padding:4px 9px;border-radius:999px;font-size:.75rem;font-weight:700;white-space:nowrap}.sync--pending{background:color-mix(in srgb,var(--warn) 22%,transparent);color:var(--warn)}.sync--offline{background:var(--bg-input);color:var(--text-muted)}.app-main{max-width:640px;margin:0 auto;padding:14px 16px calc(96px + var(--safe-bottom))}.view--detail,.view--form{position:relative}.fab{position:fixed;right:18px;bottom:calc(20px + var(--safe-bottom));z-index:15;display:flex;align-items:center;justify-content:center;width:60px;height:60px;border:0;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:2rem;font-weight:700;line-height:1;box-shadow:var(--shadow);cursor:pointer}.fab:active{transform:scale(.94)}.summary__row{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:10px}.summary__value{display:block;font-size:2.4rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.summary__value small{font-size:1.1rem;color:var(--text-muted);font-weight:600}.summary__label{color:var(--text-muted);font-size:.85rem}.summary__percent{font-size:1.3rem;font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums}.summary__track{margin-top:4px}.summary__hint{margin:10px 0 0;color:var(--text-faint);font-size:.8rem}.progress__labels{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px}.progress__value{font-size:1.15rem;font-weight:800;font-variant-numeric:tabular-nums}.progress--large .progress__value{font-size:1.9rem}.progress__percent{font-size:.9rem;font-weight:700;color:var(--text-muted);font-variant-numeric:tabular-nums}.progress__track{height:10px;border-radius:999px;background:var(--bg-input);overflow:hidden}.progress--large .progress__track{height:16px}.progress__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 65%,#38bdf8),var(--accent));transition:width .6s cubic-bezier(.22,1,.36,1)}.progress.is-complete .progress__fill{background:var(--accent-strong)}.progress.is-complete .progress__percent{color:var(--accent)}.progress__secondary{margin:7px 0 0;color:var(--text-muted);font-size:.85rem}.challenge-list{display:flex;flex-direction:column}.challenge-card{padding:14px 16px 10px}.challenge-card.is-complete{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.challenge-card__main{display:block}.challenge-card__head{display:flex;align-items:flex-start;gap:11px;margin-bottom:12px}.challenge-card__icon{font-size:1.5rem;line-height:1.2}.challenge-card__titles{flex:1;min-width:0}.challenge-card__title{font-size:1.08rem;font-weight:700;margin-bottom:5px}.challenge-card__meta{display:flex;flex-wrap:wrap;gap:6px}.challenge-card__done{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-weight:800;flex-shrink:0}.challenge-card__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.contributors{display:flex;align-items:center}.contributors .avatar+.avatar{margin-left:-8px}.contributors__empty{color:var(--text-faint);font-size:.82rem}.avatar{display:inline-flex;align-items:center;justify-content:center;width:var(--avatar-size, 32px);height:var(--avatar-size, 32px);border-radius:50%;background:color-mix(in srgb,var(--avatar-color, #888) 26%,var(--bg-elevated));color:var(--text);font-size:calc(var(--avatar-size, 32px) * .45);font-weight:700;line-height:1;flex-shrink:0}.avatar--ring{border:2px solid var(--avatar-color, #888)}.detail__head{display:flex;align-items:center;gap:8px;margin-bottom:14px}.detail__titles{flex:1;min-width:0}.detail__title{font-size:1.35rem;font-weight:800;letter-spacing:-.01em;flex:1}.detail__description{color:var(--text-muted);margin-bottom:14px}.detail__deadline{color:var(--text-faint);font-size:.85rem;text-align:center}.breakdown{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.breakdown__row{display:grid;grid-template-columns:minmax(72px,28%) 1fr auto;align-items:center;gap:10px}.breakdown__name{display:flex;align-items:center;gap:6px;font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breakdown__track{height:12px;border-radius:999px;background:var(--bg-input);overflow:hidden}.breakdown__fill{height:100%;border-radius:999px;transition:width .5s cubic-bezier(.22,1,.36,1)}.breakdown__value{display:flex;flex-direction:column;align-items:flex-end;font-size:.92rem;font-weight:700;font-variant-numeric:tabular-nums}.breakdown__value small{color:var(--text-faint);font-weight:500}.breakdown__row.is-done .breakdown__name:after{content:"✓";color:var(--accent)}.chart{margin:0}.chart svg{width:100%;height:150px;display:block}.chart__area{fill:color-mix(in srgb,var(--accent) 14%,transparent);stroke:none}.chart__line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;vector-effect:non-scaling-stroke}.chart__target{stroke:var(--text-faint);stroke-width:1;stroke-dasharray:3 4;vector-effect:non-scaling-stroke}.chart__trend{stroke:#38bdf8;stroke-width:1.5;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}.chart__legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px;font-size:.78rem;color:var(--text-muted)}.chart__times{margin-left:auto;color:var(--text-faint)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.dot--accent{background:var(--accent)}.dot--target{background:var(--text-faint)}.dot--trend{background:#38bdf8}.entry-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.entry{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid var(--surface-border)}.entry:last-child{border-bottom:0}.entry__body{flex:1;min-width:0;display:flex;flex-direction:column}.entry__value{font-weight:700;font-variant-numeric:tabular-nums}.entry__meta{font-size:.8rem;color:var(--text-muted)}.entry__note{font-size:.85rem;color:var(--text-muted);font-style:italic}.entry__photo-link{align-self:flex-start;margin-top:3px;padding:0;border:0;background:none;color:var(--accent);font:inherit;font-size:.82rem;cursor:pointer}.entry__actions{display:flex;gap:2px}.entry__actions .btn--icon{width:40px;min-width:40px;height:40px;min-height:40px;font-size:1rem}.photo-full{width:100%;border-radius:var(--radius)}.menu-list{display:flex;flex-direction:column;gap:4px}.menu-item{display:flex;align-items:center;gap:10px;width:100%;min-height:var(--tap);padding:0 14px;border:0;border-radius:var(--radius);background:transparent;color:var(--text);font:inherit;font-weight:600;text-align:left;cursor:pointer}.menu-item:hover{background:var(--bg-input)}.menu-item--danger{color:var(--danger)}.metric-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.metric-tile{display:flex;flex-direction:column;gap:3px;min-height:92px;padding:11px;border:1px solid var(--surface-border);border-radius:var(--radius);background:var(--bg-input);color:var(--text);font:inherit;text-align:left;cursor:pointer}.metric-tile.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg-input))}.metric-tile__icon{font-size:1.3rem}.metric-tile__title{font-weight:700;font-size:.92rem}.metric-tile__example{color:var(--text-muted);font-size:.78rem;font-style:italic}.template-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.template{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 12px;border:1px solid var(--surface-border);border-radius:var(--radius);background:var(--bg-input);color:var(--text);font:inherit;text-align:left;cursor:pointer}.template__icon{font-size:1.4rem}.template__body{display:flex;flex-direction:column}.template__body small{color:var(--text-muted)}.sheet-backdrop{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;background:#0000008c;opacity:0;transition:opacity .2s ease}.sheet-backdrop.is-open{opacity:1}.sheet{width:100%;max-width:640px;max-height:92dvh;display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--surface-border);border-bottom:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow);transform:translateY(100%);transition:transform .24s cubic-bezier(.22,1,.36,1)}.sheet-backdrop.is-open .sheet{transform:translateY(0)}.sheet__grabber{flex-shrink:0;height:22px;display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none}.sheet__grabber:before{content:"";width:42px;height:4px;border-radius:999px;background:var(--surface-border)}.sheet__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:4px 16px 10px}.sheet__title{font-size:1.15rem;font-weight:800}.sheet__subtitle{margin:2px 0 0;color:var(--text-muted);font-size:.85rem}.sheet__body{flex:1;overflow-y:auto;padding:0 16px 12px;-webkit-overflow-scrolling:touch}.sheet__foot{flex-shrink:0;padding:12px 16px calc(16px + var(--safe-bottom));border-top:1px solid var(--surface-border);background:var(--bg-elevated)}.quick__input{margin-bottom:8px}.quick__details{border-top:1px solid var(--surface-border);padding-top:10px}.quick__details summary{min-height:44px;display:flex;align-items:center;color:var(--text-muted);font-weight:600;cursor:pointer}.quick-steps{display:flex;gap:8px;margin-bottom:12px}.segmented{display:flex;gap:4px;padding:4px;margin-bottom:14px;border-radius:var(--radius);background:var(--bg-input)}.seg{flex:1;min-height:40px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font:inherit;font-weight:600;cursor:pointer}.seg.is-selected{background:var(--bg-elevated);color:var(--text)}.counter-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.counter{display:flex;flex-direction:column;gap:6px}.counter__label{font-size:.82rem;font-weight:600;color:var(--text-muted);text-align:center}.counter__row{display:flex;align-items:center;gap:6px}.counter__value{flex:1;min-width:0;padding:8px 4px;font-size:1.6rem;font-weight:800;text-align:center}.tally{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:210px;margin-bottom:10px;border:2px dashed var(--surface-border);border-radius:var(--radius-lg);background:var(--bg-input);touch-action:none;user-select:none;transition:background .12s ease,border-color .12s ease}.tally.is-tap{background:color-mix(in srgb,var(--text) 8%,var(--bg-input))}.tally.is-hit{background:color-mix(in srgb,var(--accent) 22%,var(--bg-input));border-color:var(--accent)}.tally__numbers{display:flex;gap:34px}.tally__numbers span{display:flex;flex-direction:column;align-items:center}.tally__numbers strong{font-size:3rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.tally__numbers small{color:var(--text-muted)}.tally__hint{margin:0;padding:0 20px;color:var(--text-faint);font-size:.82rem;text-align:center}.stopwatch{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:14px}.stopwatch__display{font-size:3.2rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.stopwatch__buttons{display:flex;gap:10px}.binary-buttons{display:flex;flex-direction:column;gap:10px}.checklist{list-style:none;margin:0;padding:0}.checkline{display:flex;align-items:center;gap:12px;min-height:var(--tap);padding:6px 2px;border-bottom:1px solid var(--surface-border);cursor:pointer}.checkline input[type=checkbox]{width:26px;height:26px;accent-color:var(--accent);flex-shrink:0}.checkline__label{flex:1}.checkline input:checked+.checkline__label{color:var(--text-muted);text-decoration:line-through}.participant-list{list-style:none;margin:0;padding:0}.participant{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--surface-border)}.participant:last-child{border-bottom:0}.participant__body{flex:1;min-width:0;display:flex;flex-direction:column}.participant__body small{color:var(--text-muted)}.participant__actions{display:flex;align-items:center;gap:4px}.participant__actions .btn--icon{width:40px;min-width:40px;height:40px;min-height:40px}.swatches{display:flex;flex-wrap:wrap;gap:10px}.swatch{width:44px;height:44px;border:3px solid transparent;border-radius:50%;background:var(--swatch);cursor:pointer}.swatch.is-selected{border-color:var(--text)}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:6px}.emoji{min-height:48px;border:1px solid var(--surface-border);border-radius:var(--radius-sm);background:var(--bg-input);font-size:1.4rem;cursor:pointer}.emoji.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--bg-input))}.ring{position:relative;width:var(--ring-size, 200px);height:var(--ring-size, 200px)}.ring svg{width:100%;height:100%}.ring__track{fill:none;stroke:var(--bg-input)}.ring__fill{fill:none;stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .8s cubic-bezier(.22,1,.36,1)}.ring__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;padding:0 24px}.ring__value{font-size:3rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.ring__value small{font-size:1.2rem;color:var(--text-muted)}.ring__caption{font-size:.85rem;color:var(--text-muted)}.ring__sub{font-size:.78rem;color:var(--text-faint)}.stats__lead{margin:4px 0 0;color:var(--text-muted)}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.stat{margin:0;padding:13px}.stat__label{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin-bottom:5px}.stat__value{display:block;font-size:1.25rem;font-weight:800;line-height:1.15}.stat small{color:var(--text-muted)}.timeline{display:flex;align-items:flex-end;gap:2px;height:90px;padding:4px 0}.timeline__bar{flex:1;min-width:3px;border-radius:2px 2px 0 0;background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 35%,transparent))}.timeline__axis{display:flex;justify-content:space-between;margin-top:6px;font-size:.75rem;color:var(--text-faint)}.toast-stack{position:fixed;left:50%;bottom:calc(16px + var(--safe-bottom));z-index:80;transform:translate(-50%);display:flex;flex-direction:column-reverse;gap:8px;width:min(560px,calc(100vw - 24px));pointer-events:none}.toast{position:relative;display:flex;align-items:center;gap:12px;min-height:var(--tap);padding:10px 14px;border:1px solid var(--surface-border);border-radius:var(--radius);background:var(--bg-elevated);box-shadow:var(--shadow);overflow:hidden;opacity:0;transform:translateY(14px);transition:opacity .18s ease,transform .18s ease;pointer-events:none}.toast--in{opacity:1;transform:translateY(0)}.toast--out{opacity:0;transform:translateY(10px)}.toast__text{flex:1;font-size:.92rem;font-weight:600}.toast--success{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.toast--error{border-color:color-mix(in srgb,var(--danger) 50%,transparent)}.toast--error .toast__text{color:var(--danger)}.toast__action{flex-shrink:0;pointer-events:auto;min-height:36px;padding:0 12px;border:0;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-ink);font:inherit;font-weight:700;cursor:pointer}.toast__timer{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--accent);transform-origin:left;animation:toast-timer linear forwards}@keyframes toast-timer{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.confetti-canvas{position:fixed;inset:0;z-index:90;width:100%;height:100%;pointer-events:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}@media(min-width:700px){.stat-grid{grid-template-columns:repeat(4,1fr)}}
