:root[data-theme=dark]{--bg: #0b0f14;--bg-glow-1: rgba(53, 208, 127, .14);--bg-glow-2: rgba(41, 176, 255, .1);--surface: #131a24;--surface-2: #18212e;--surface-3: #1e2938;--line: rgba(255, 255, 255, .08);--line-strong: rgba(255, 255, 255, .14);--text: #e9eff7;--text-dim: #b3c1d4;--muted: #8397ae;--accent: #35d07f;--accent-ink: #05130b;--accent-2: #38b6ff;--accent-2-ink: #04121d;--danger: #ff6b78;--warn: #ffc14d;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow: 0 10px 30px rgba(0, 0, 0, .45);--shadow-accent: 0 8px 22px rgba(53, 208, 127, .28);--nav-bg: rgba(16, 22, 31, .82);--tint: rgba(255, 255, 255, .04);color-scheme:dark}:root[data-theme=light]{--bg: #f2f5f9;--bg-glow-1: rgba(16, 185, 129, .16);--bg-glow-2: rgba(56, 182, 255, .14);--surface: #ffffff;--surface-2: #f4f7fb;--surface-3: #e9eff6;--line: rgba(15, 23, 42, .09);--line-strong: rgba(15, 23, 42, .16);--text: #0f1b2d;--text-dim: #3d4d63;--muted: #66788f;--accent: #0aa35f;--accent-ink: #ffffff;--accent-2: #0b8ee0;--accent-2-ink: #ffffff;--danger: #dc2f45;--warn: #b26a00;--shadow-sm: 0 1px 3px rgba(15, 23, 42, .08);--shadow: 0 12px 30px rgba(15, 23, 42, .1);--shadow-accent: 0 8px 20px rgba(10, 163, 95, .26);--nav-bg: rgba(255, 255, 255, .86);--tint: rgba(15, 23, 42, .03);color-scheme:light}:root{--radius: 18px;--radius-sm: 12px;--nav-h: 64px;--ease: cubic-bezier(.22, 1, .36, 1);--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;color:var(--text);background:var(--bg);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;transition:background-color .35s var(--ease),color .35s var(--ease)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(760px 420px at 15% -8%,var(--bg-glow-1),transparent 70%),radial-gradient(680px 400px at 92% 4%,var(--bg-glow-2),transparent 72%)}a{color:var(--accent-2);text-decoration:none;font-weight:600}h1,h2,h3{letter-spacing:-.02em}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;background:var(--surface-3);border-radius:6px;padding:1px 5px}.app{position:relative;z-index:1;max-width:760px;margin:0 auto;min-height:100%;padding:0 15px calc(var(--nav-h) + var(--safe-b) + 26px)}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:calc(var(--safe-t) + 14px) 2px 12px;background:linear-gradient(180deg,var(--bg) 62%,transparent)}.topbar h1{font-size:20px;font-weight:800;margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-row{display:inline-flex;align-items:center;gap:10px}.logo-svg{border-radius:30%;filter:drop-shadow(0 4px 12px rgba(34,201,139,.34));flex:none}.wordmark{font-weight:800;letter-spacing:-.045em;line-height:1}.wordmark span{background:linear-gradient(100deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.nav{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--safe-b) + 10px);z-index:30;width:min(560px,calc(100% - 24px));display:flex;gap:2px;padding:6px;background:var(--nav-bg);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);animation:navIn .5s var(--ease) both}.nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 2px 6px;border-radius:14px;color:var(--muted);font-size:10.5px;font-weight:600;transition:color .22s var(--ease),background-color .22s var(--ease)}.nav a .ico{display:grid;place-items:center;transition:transform .28s var(--ease)}.nav a.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,transparent)}.nav a.active .ico{transform:translateY(-2px) scale(1.12)}.nav a:active .ico{transform:scale(.9)}.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow-sm);transition:border-color .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease),background-color .35s var(--ease)}.card.tight{padding:12px 14px}.card h2,.card h3{margin:0 0 12px;font-size:16.5px;font-weight:700}.card h3{font-size:15px}.muted{color:var(--muted)}.small{font-size:13.5px}.tiny{font-size:12px;line-height:1.45}.row{display:flex;gap:9px;align-items:center}.row.wrap{flex-wrap:wrap}.spread{justify-content:space-between}.grow{flex:1;min-width:0}.stack{display:flex;flex-direction:column;gap:9px}.mt{margin-top:11px}.center{text-align:center}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-sm);transition:transform .25s var(--ease),border-color .25s var(--ease)}.stat:after{content:"";position:absolute;inset:auto -30% -60% auto;width:120px;height:120px;border-radius:50%;background:var(--bg-glow-1);filter:blur(18px);pointer-events:none}.stat .v{font-size:25px;font-weight:800;letter-spacing:-.03em;line-height:1.1}.stat .l{color:var(--muted);font-size:12px;margin-top:3px}button,.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--text);border-radius:14px;padding:12px 15px;font-family:inherit;font-size:15px;font-weight:650;cursor:pointer;transition:transform .16s var(--ease),opacity .2s var(--ease),box-shadow .22s var(--ease),background-color .22s var(--ease),border-color .22s var(--ease),filter .22s var(--ease)}button:active,.btn:active{transform:scale(.972)}button:disabled{opacity:.45;cursor:default;transform:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.primary{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 62%,var(--accent-2)));border-color:transparent;color:var(--accent-ink);box-shadow:var(--shadow-accent)}button.primary:not(:disabled):hover{filter:brightness(1.06)}button.accent2{background:linear-gradient(135deg,var(--accent-2),color-mix(in srgb,var(--accent-2) 65%,#6d5cff));border-color:transparent;color:var(--accent-2-ink);box-shadow:0 8px 20px color-mix(in srgb,var(--accent-2) 32%,transparent)}button.ghost{background:transparent;border-color:var(--line-strong)}button.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 34%,transparent);background:color-mix(in srgb,var(--danger) 9%,transparent)}button.block,.btn.block{width:100%}button.sm{padding:8px 11px;font-size:13px;border-radius:11px}.icon-btn{flex:none;display:grid;place-items:center;width:38px;height:38px;padding:0;border-radius:12px;background:var(--surface-2);color:var(--text-dim)}.icon-btn:active{transform:scale(.9)}.theme-toggle svg{transition:transform .45s var(--ease)}.theme-toggle:hover svg{transform:rotate(28deg)}input,select,textarea{width:100%;background:var(--surface-2);border:1px solid var(--line);color:var(--text);border-radius:var(--radius-sm);padding:12px;font-family:inherit;font-size:16px;transition:border-color .2s var(--ease),box-shadow .2s var(--ease),background-color .3s var(--ease)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.75}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3.5px color-mix(in srgb,var(--accent) 17%,transparent)}textarea{resize:vertical;min-height:78px;line-height:1.5}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 17px) 51%,calc(100% - 12px) 51%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px}label{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:6px}.field{margin-bottom:13px}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{border:1px solid var(--line-strong);background:var(--surface-2);color:var(--text-dim);border-radius:999px;padding:9px 14px;font-size:13px;font-weight:600;transition:all .22s var(--ease)}.chip.on{background:color-mix(in srgb,var(--accent) 15%,transparent);border-color:var(--accent);color:var(--accent);box-shadow:0 3px 12px color-mix(in srgb,var(--accent) 22%,transparent)}.tag{display:inline-block;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700;background:var(--surface-2);border:1px solid var(--line);color:var(--muted);white-space:nowrap}.tag.ok{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 38%,transparent);background:color-mix(in srgb,var(--accent) 11%,transparent)}.tag.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 38%,transparent);background:color-mix(in srgb,var(--warn) 12%,transparent)}.banner{border-radius:var(--radius-sm);padding:11px 13px;font-size:13.5px;margin-bottom:12px;border:1px solid;animation:fadeUp .4s var(--ease) both}.banner.err{background:color-mix(in srgb,var(--danger) 11%,transparent);border-color:color-mix(in srgb,var(--danger) 34%,transparent);color:var(--danger)}.banner.warn{background:color-mix(in srgb,var(--warn) 12%,transparent);border-color:color-mix(in srgb,var(--warn) 34%,transparent);color:var(--warn)}.banner.ok{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:color-mix(in srgb,var(--accent) 34%,transparent);color:var(--accent)}.ex{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:14px;margin-bottom:11px;box-shadow:var(--shadow-sm);transition:border-color .25s var(--ease),transform .25s var(--ease)}.ex.is-done{border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 7%,var(--surface)),var(--surface))}.ex .name{font-weight:700;font-size:15.5px;letter-spacing:-.015em}.ex .meta{color:var(--muted);font-size:12.5px;margin-top:3px}.ex .hint{margin-top:9px;font-size:12.5px;color:var(--text-dim);background:var(--tint);border:1px solid var(--line);border-left:3px solid var(--accent-2);border-radius:10px;padding:8px 10px;animation:fadeUp .35s var(--ease) both}.lang-switch{font-size:12px;font-weight:800;letter-spacing:.04em}.ex-shot{flex:none;display:block;overflow:hidden;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}.ex-shot.sm{width:66px;aspect-ratio:3 / 2}.ex-shot.lg{width:100%;aspect-ratio:3 / 2;margin-top:12px;border-radius:14px}.ex-shot img{width:100%;height:100%;object-fit:contain;display:block;animation:shotIn .35s var(--ease)}@keyframes shotIn{0%{opacity:.45}to{opacity:1}}.ex-head{display:flex;align-items:center;gap:10px}.ex-del{width:30px;height:30px;margin-left:6px;border-radius:10px;font-size:13px;background:transparent;color:var(--muted)}.ex-del:hover{background:var(--surface-2);color:var(--danger)}.add-ex{margin-bottom:11px;border-style:dashed}.pick-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:11px 12px;margin-top:7px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);color:var(--text)}.pick-row:disabled{opacity:.45}.pick-row .pick-name{display:block;font-weight:600;font-size:14.5px}.pick-row .tiny{display:block;margin-top:2px}.pick-add{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);font-weight:700}.setline{display:grid;grid-template-columns:26px 1fr 1fr 62px 46px;gap:6px;align-items:center;margin-top:9px}.setline input{padding:9px 6px;text-align:center;font-size:15px}.setline .idx{color:var(--muted);font-size:12px;text-align:center;font-weight:700}.setrow{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13.5px;padding:7px 0;border-bottom:1px solid var(--line);animation:fadeUp .3s var(--ease) both}.setrow:last-child{border-bottom:0}.ex-head{cursor:pointer}.ex-info{display:inline-grid;place-items:center;width:17px;height:17px;margin-left:7px;border-radius:50%;background:var(--surface-3);border:1px solid var(--line-strong);color:var(--muted);font-size:11px;font-weight:700;vertical-align:middle}.ex-head:hover .ex-info{background:var(--accent);border-color:transparent;color:var(--accent-ink)}.setline.logged input{background:var(--surface-3);border-color:transparent}.setline.logged input:focus{background:var(--surface-2);border-color:var(--accent)}.setline.saved input{border-color:color-mix(in srgb,var(--accent) 55%,transparent)}.setline-mark{text-align:center;color:var(--accent);font-weight:700}.idx-btn{padding:0;height:30px;border-radius:9px;background:transparent;border-color:transparent;color:var(--muted);font-size:12px;font-weight:700}.idx-btn:hover{color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent)}.hint.prev{border-left-color:var(--warn)}.ex .note-hint{display:block;width:100%;text-align:left;font:inherit;font-size:12.5px;cursor:pointer;border-left-color:var(--accent)}.ex .note-field{margin-top:9px}.ex .note-field textarea{min-height:64px}.logbox{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);padding:8px}.logrow{margin:0 0 6px;padding:8px;border-radius:9px;background:var(--surface);border:1px solid var(--line);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0000008c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:12px;animation:fadeIn .22s var(--ease) both}.sheet{width:min(640px,100%);max-height:86vh;max-height:86dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:10px 16px 22px;box-shadow:var(--shadow);animation:sheetUp .32s var(--ease) both}.sheet-grip{width:42px;height:4px;border-radius:999px;background:var(--line-strong);margin:2px auto 12px}.sheet-body section{margin-top:16px}.sheet-body h3{margin:0 0 7px;font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.confirm-sheet{max-width:420px}.confirm-text{margin:4px 4px 16px;font-size:15px}.confirm-actions{gap:10px}.confirm-actions button{flex:1}.guide-fig{float:right;width:44%;max-width:170px;margin:0 0 10px 14px}.sheet-body:after{content:"";display:block;clear:both}.bodymap{display:flex;gap:8px;align-items:flex-start;justify-content:center;width:100%;max-width:340px;margin-inline:auto}.bodyfig{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1 1 0;min-width:0}.bodyfig>svg{width:100%;height:auto;display:block}:root[data-theme=dark] .bodyfig image{filter:invert(1)}.load-map .bodymap{max-width:380px;margin-top:10px}.load-legend{margin-top:12px;display:flex;flex-direction:column;gap:6px}.load-row{display:grid;grid-template-columns:96px 1fr 34px;align-items:center;gap:8px}.load-bar{height:6px;border-radius:999px;background:var(--surface-3);overflow:hidden}.load-bar>b{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent-2),var(--accent))}.load-row .mono{text-align:right}.guide-list{margin:0;padding-left:20px;font-size:14px;line-height:1.55}.guide-list li{margin-bottom:7px}.guide-list.good li::marker{color:var(--accent)}.guide-list.bad li::marker{color:var(--danger)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes sheetUp{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.photos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.photo{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--line);animation:pop .35s var(--ease) both}.photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--ease)}.photo:hover img{transform:scale(1.06)}.photo button{position:absolute;top:5px;right:5px;width:24px;height:24px;padding:0;display:grid;place-items:center;font-size:12px;border-radius:8px;border:0;background:#0000009e;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.bar{height:9px;border-radius:999px;background:var(--surface-3);overflow:hidden}.bar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent-2),var(--accent));transition:width .6s var(--ease)}.list-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);transition:opacity .2s var(--ease)}.list-row:last-child{border-bottom:0}.list-row:active{opacity:.6}.loader{padding:60px 0;text-align:center;color:var(--muted);font-size:14px;animation:pulse 1.5s ease-in-out infinite}.login-wrap{position:relative;z-index:1;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:22px}.login-card{width:100%;max-width:370px;padding:26px 22px;animation:fadeUp .55s var(--ease) both}.login-card .brand-row{justify-content:center;width:100%;margin-bottom:4px}.login-card .wordmark{font-size:27px}.rest{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--nav-h) + var(--safe-b) + 22px);z-index:40;display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--accent-2);color:var(--accent-2);border-radius:999px;padding:8px 18px 8px 10px;font-weight:700;font-variant-numeric:tabular-nums;box-shadow:var(--shadow),0 0 0 6px color-mix(in srgb,var(--accent-2) 10%,transparent);animation:restIn .4s var(--ease) both}.rest.over{border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow),0 0 0 6px color-mix(in srgb,var(--accent) 10%,transparent);animation:restIn .4s var(--ease) both,restPulse 2s ease-in-out .4s infinite}.rest-cap{font-size:11px;font-weight:600;opacity:.72;text-transform:uppercase;letter-spacing:.03em}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}@keyframes navIn{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}@keyframes restIn{0%{opacity:0;transform:translate(-50%,14px) scale(.9)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes restPulse{0%,to{box-shadow:var(--shadow),0 0 0 6px color-mix(in srgb,var(--accent) 10%,transparent)}50%{box-shadow:var(--shadow),0 0 0 12px color-mix(in srgb,var(--accent) 3%,transparent)}}@keyframes pulse{0%,to{opacity:.45}50%{opacity:1}}.app>.card,.app>.grid2,.app>.ex,.app>.btn,.app>button{animation:fadeUp .45s var(--ease) both}.app>*:nth-child(2){animation-delay:.03s}.app>*:nth-child(3){animation-delay:.06s}.app>*:nth-child(4){animation-delay:.09s}.app>*:nth-child(5){animation-delay:.12s}.app>*:nth-child(n+6){animation-delay:.15s}@media (hover: hover){.card:hover,.stat:hover{border-color:var(--line-strong);transform:translateY(-1px)}.chip:hover{border-color:var(--accent);color:var(--accent)}}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:-.01em}.hud{position:sticky;top:calc(var(--safe-t) + 52px);z-index:15;background:linear-gradient(160deg,var(--surface-2),var(--surface));border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-bottom:12px;box-shadow:var(--shadow-sm);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:fadeUp .45s var(--ease) both}.hud-main{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.hud-block{display:flex;flex-direction:column;gap:1px;min-width:0}.hud-block.right{align-items:flex-end;text-align:right}.hud-l{font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}.hud-v{font-size:27px;font-weight:800;line-height:1.05;letter-spacing:-.03em}.hud-block.rest .hud-v,.hud-block.rest .hud-l{color:var(--accent-2)}.hud-block.go .hud-v{color:var(--accent);animation:nudge 1.4s ease-in-out infinite}.hud-block.go .hud-l{color:var(--accent)}.bar>i{position:relative;overflow:hidden}.bar>i:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.45),transparent 80%);transform:translate(-100%);animation:shimmer 2.4s ease-in-out infinite}.ring{position:relative;display:inline-grid;place-items:center;flex:none}.ring svg{display:block}.ring-arc{transition:stroke-dashoffset .5s var(--ease),stroke .3s var(--ease)}.ring-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;line-height:1;font-size:12px;font-weight:700}.ring-num{font-size:13px}.ring-den{font-style:normal;font-size:9px;color:var(--muted);margin-left:1px}.toasts{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--nav-h) + var(--safe-b) + 12px);z-index:80;display:flex;flex-direction:column;gap:8px;width:min(440px,calc(100% - 24px));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:14px;font-size:13.5px;font-weight:600;color:var(--text);background:var(--nav-bg);backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5);border:1px solid var(--line-strong);box-shadow:var(--shadow);cursor:pointer;animation:toastIn .34s var(--ease) both}.toast-ico{display:grid;place-items:center;flex:none;width:21px;height:21px;border-radius:50%;font-size:12px;font-weight:800;color:var(--accent-ink);background:var(--accent)}.toast.err{border-color:color-mix(in srgb,var(--danger) 45%,transparent)}.toast.err .toast-ico{background:var(--danger);color:#fff}.toast.info .toast-ico{background:var(--accent-2);color:var(--accent-2-ink)}.skel{display:block;background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:skel 1.3s ease-in-out infinite}.spinner{display:inline-block;flex:none;width:15px;height:15px;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 28%,transparent);border-top-color:currentColor;animation:spin .8s linear infinite}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;width:100%;height:100%;pointer-events:none}.celebrate{text-align:center;overflow:hidden;animation:pop .5s var(--ease) both}.celebrate:before{content:"";position:absolute;inset:-40% 30% auto;height:220px;background:radial-gradient(circle,var(--bg-glow-1),transparent 70%);pointer-events:none}.celebrate-emoji{font-size:52px;line-height:1;animation:trophy 1.1s var(--ease) both}.celebrate .stat{text-align:left}.live{border-color:color-mix(in srgb,var(--warn) 42%,transparent)}.live-dot:before{content:"";display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:var(--warn);animation:blink 1.6s ease-in-out infinite}.flame{margin-right:4px}.chev{flex:none;color:var(--muted);transition:transform .28s var(--ease)}.chev.up{transform:rotate(180deg)}.tap{cursor:pointer}.reveal{animation:fadeUp .32s var(--ease) both}.ok-text{color:var(--accent)}.err-text{color:var(--danger)}.add-set{font-size:19px;line-height:1;padding:8px 0}.setline.logged{animation:slideIn .32s var(--ease) both}@keyframes toastIn{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}@keyframes skel{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{transform:translate(-100%)}60%,to{transform:translate(100%)}}@keyframes nudge{0%,to{transform:none}50%{transform:translateY(-2px)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.25}}@keyframes trophy{0%{opacity:0;transform:scale(.4) rotate(-18deg)}60%{transform:scale(1.16) rotate(6deg)}to{opacity:1;transform:none}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page{animation:pageIn .28s var(--ease) both}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.feed-title{margin:22px 0 10px;font-size:15px;font-weight:700;color:var(--muted)}a.feed-card{display:block;color:inherit;text-decoration:none}a.feed-card:active{transform:scale(.995)}.feed-card .chips{gap:6px}.feed-card .chip{padding:5px 10px;font-size:12px}.feed-card .chip.load{border-color:color-mix(in srgb,var(--accent) 45%,var(--line-strong));color:var(--text-dim)}.chip-share{margin-left:6px;font-style:normal;font-size:11px;color:var(--muted)}
