:root,[data-theme=neon]{--bg:#0a0a12;--card:#14141f;--border:#2c2c44;--text:#ececf8;--muted:#a4a4c4;--accent:#22e6ff;--accent2:#ff3df2;--on-accent:#0a0a12;--danger:#ff6b81;--working:#3dffa0;--lunch:#ffd23d;--before:#6ab7ff;--after:#c89bff;--rest:#ff7ad9;--font:system-ui, -apple-system, "Segoe UI", "PingFang TC", "Noto Sans TC", sans-serif;--font-num:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--num-weight:700;--glow:0 0 12px color-mix(in srgb, var(--accent) 70%, transparent);--card-shadow:0 0 0 1px var(--border), 0 0 24px color-mix(in srgb, var(--accent2) 12%, transparent);--radius:16px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=paper]{--bg:#f6f3ec;--card:#fffdf8;--border:#d9d3c5;--text:#1c1b19;--muted:#5c5850;--accent:#1c1b19;--accent2:#8a3b12;--on-accent:#f6f3ec;--danger:#a3261c;--working:#1d6b3a;--lunch:#7a5000;--before:#1f5fa8;--after:#6b3fa0;--rest:#a8326e;--font:"Iowan Old Style", "Palatino Linotype", Georgia, "Noto Serif TC", "Songti TC", serif;--font-num:"Helvetica Neue", Helvetica, Arial, sans-serif;--num-weight:200;--glow:none;--card-shadow:0 0 0 1px var(--border);--radius:4px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=terminal]{--bg:#000;--card:#000;--border:#1fbf4a;--text:#3f6;--muted:#25d455;--accent:#3f6;--accent2:#3f6;--on-accent:#000;--danger:#ff8080;--working:#3f6;--lunch:#fc3;--before:#6cf;--after:#c9f;--rest:#f9c;--font:"VT323", ui-monospace, Menlo, monospace;--font-num:"VT323", ui-monospace, Menlo, monospace;--num-weight:400;--glow:0 0 6px #3f6;--card-shadow:0 0 0 1px var(--border);--radius:0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-size:118%}*{box-sizing:border-box}html{background:var(--bg)}body{color:var(--text);font-family:var(--font);-webkit-text-size-adjust:100%;margin:0;line-height:1.5}h1,h2,h3,p,ul{margin:0;padding:0}ul{list-style:none}h1{font-size:1.15rem}h2,h3{color:var(--muted);font-size:.95rem;font-weight:600}a{color:var(--accent)}[data-theme=paper] a{color:var(--accent2)}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.label,.hint{color:var(--muted);font-size:.85rem}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}[data-theme=paper] :focus-visible{outline-color:var(--accent2)}.page,.wizard{max-width:640px;margin:0 auto;padding:0 16px 32px}.topbar{align-items:center;gap:10px;padding:14px 0;display:flex}.topbar h1,.topbar h2{min-width:0;color:var(--text);flex:1}.grid{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}@media (width>=960px){.page{max-width:1100px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{grid-column:span 2}}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--card-shadow);flex-direction:column;gap:8px;min-width:0;padding:16px;display:flex}.badge{white-space:nowrap;border:1px solid;border-radius:999px;padding:2px 10px;font-size:.85rem}.status-working{color:var(--working)}.status-lunch{color:var(--lunch)}.status-beforeWork{color:var(--before)}.status-afterWork{color:var(--after)}.status-restDay{color:var(--rest)}.hero{justify-content:center;align-items:center;position:relative}.ring{width:min(78vw,300px);height:auto;overflow:visible}.ring circle{fill:none;stroke-width:10px}.ring-track{stroke:var(--border)}.ring-value{stroke:url(#ring-gradient);stroke-linecap:round;filter:drop-shadow(var(--glow))}[data-theme=paper] .ring circle{stroke-width:2px}[data-theme=paper] .ring-value{filter:none}.hero-text{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:0 8px;display:flex;position:absolute;inset:0}.big{font-size:clamp(1.5rem,8.5vw,2.6rem);font-weight:var(--num-weight);text-shadow:var(--glow);overflow-wrap:anywhere;max-width:100%}[data-theme=neon] .big{animation:2s ease-in-out infinite pulse}[data-theme=paper] .big{font-size:clamp(1.8rem,10vw,3.4rem)}[data-theme=terminal] .big:after{content:"▌";animation:1s step-end infinite blink}@keyframes pulse{50%{text-shadow:0 0 22px var(--accent), 0 0 4px var(--accent2)}}@keyframes blink{50%{opacity:0}}[data-theme=terminal] body:after{content:"";pointer-events:none;z-index:50;background:repeating-linear-gradient(#0000 0 2px,#00000047 2px 4px);animation:.6s linear infinite scan;position:fixed;inset:0}@keyframes scan{to{background-position-y:4px}}.stats{flex-flow:wrap;justify-content:space-between}.stats>div{flex-direction:column;min-width:0;display:flex}.stats .num{font-size:1.15rem}.dots{justify-content:space-between;gap:4px;display:flex}.dot{border:1px solid var(--border);width:34px;height:34px;color:var(--muted);border-radius:50%;place-items:center;font-size:.75rem;display:grid}.dot.work{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.dot.today{outline:2px solid var(--accent2);outline-offset:2px}.dot.ex{border-style:dashed;border-width:2px;border-color:var(--accent2)}.converter p{font-size:1.1rem}.bars{width:100%;height:auto}.bar{fill:var(--accent);opacity:.75}.bar.today{fill:var(--accent2);opacity:1}.bar.future{fill:color-mix(in srgb, var(--accent) 25%, transparent);stroke:var(--accent);stroke-dasharray:3 3;opacity:1}.bars text{fill:var(--muted);font-size:10px;font-family:var(--font)}.form{flex-direction:column;gap:12px;display:flex}label{color:var(--muted);flex-direction:column;gap:4px;font-size:.9rem;display:flex}label.check{color:var(--text);flex-direction:row;align-items:center;gap:8px}input,select,button{font:inherit;color:var(--text)}input:not([type=checkbox]),select{background:var(--bg);border:1px solid var(--border);border-radius:calc(var(--radius) / 2);width:100%;min-width:0;min-height:44px;padding:8px 10px}input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}button{border-radius:calc(var(--radius) / 2);border:1px solid var(--border);cursor:pointer;background:0 0;min-height:44px;padding:8px 16px}button:disabled{opacity:.5;cursor:not-allowed}button.primary,.weekdays button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}button.danger{border-color:var(--danger);color:var(--danger)}.row{justify-content:flex-end;gap:10px;display:flex}.weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.weekdays button{padding:8px 0;font-size:.85rem}.errors{color:var(--danger);font-size:.9rem}.wizard{padding-top:32px}.wizard h1{text-shadow:var(--glow);margin-bottom:16px;font-size:1.6rem}.wizard h2{color:var(--text);font-size:1.2rem}.scrim{z-index:10;background:#0000008c;position:fixed;inset:0}.panel{z-index:11;background:var(--card);border-left:1px solid var(--border);overscroll-behavior:contain;width:min(100%,440px);padding:0 16px 32px;animation:.2s ease-out slide-in;position:fixed;inset:0 0 0 auto;overflow-y:auto}@media (width<=640px){.panel{border-left:0;width:100%}}@keyframes slide-in{0%{transform:translate(100%)}}.panel .topbar{background:var(--card);z-index:1;position:sticky;top:0}.group{border-top:1px solid var(--border);padding:16px 0}.list{flex-direction:column;gap:8px;display:flex}.list li{justify-content:space-between;align-items:center;gap:8px;display:flex}.list li>span{overflow-wrap:anywhere;min-width:0}.list li.past>span{opacity:.6}.list .item input.emoji{text-align:center;flex:0 0 56px}.list .item input[type=number]{flex:0 0 96px}.celebration{pointer-events:none;z-index:40;position:fixed;inset:0;overflow:hidden}.celebration span[aria-hidden]{opacity:0;font-size:2rem;position:absolute}.celebration.coins span[aria-hidden]{animation:1.6s ease-in forwards coin-fall;top:-10%!important}.celebration.fireworks{background:#0009}.celebration.fireworks span[aria-hidden]{font-size:4rem;animation:1.3s ease-out forwards burst}@keyframes coin-fall{10%{opacity:1}to{opacity:1;transform:translateY(115vh)rotate(540deg)}}@keyframes burst{0%{opacity:0;transform:scale(.2)}40%{opacity:1}to{opacity:0;transform:scale(2.2)}}.toast{z-index:40;background:var(--card);border:1px solid var(--accent);border-radius:var(--radius);max-width:calc(100% - 32px);padding:10px 16px;animation:2.6s forwards fade;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}@keyframes fade{0%,to{opacity:0}15%,85%{opacity:1}}@media (prefers-reduced-motion:reduce){[data-theme=neon] .big,[data-theme=terminal] .big:after,[data-theme=terminal] body:after,.panel{animation:none}}
