:root{--bg:#f4f6f8;--surface:#fff;--surface-2:#eef1f5;--text-1:#12151a;--text-2:#5b6472;--text-3:#8b95a3;--line:#e2e7ec;--accent:#2563eb;--bad:#c62f24;--sub-1:#3b82f6;--sub-2:#14b8a6;--sub-3:#f59e0b;--sub-4:#a855f7;--sub-5:#22c55e;--sub-6:#ef4444;--sub-7:#6366f1;--sub-8:#ec4899;--sub-9:#84cc16;--sub-10:#f97316;--sub-11:#06b6d4;--sub-12:#d946ef;--sub-13:#10b981;--sub-14:#eab308;--sub-15:#8b5cf6;--sub-16:#f43f5e;--t-hero:2rem;--t-lg:1.25rem;--t-md:1rem;--t-sm:.875rem;--t-xs:.75rem;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--r-sm:8px;--r-md:12px;--r-lg:16px;--shadow:0 1px 2px #12151a0f, 0 8px 24px #12151a14;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#0e1116;--surface:#171b22;--surface-2:#1f242c;--text-1:#f2f5f9;--text-2:#9aa4b2;--text-3:#69727f;--line:#252b34;--accent:#6b9bff;--bad:#ff6b5e;--shadow:0 1px 2px #0006, 0 8px 24px #00000059}}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text-1);font-family:var(--font);font-size:var(--t-md);padding-bottom:calc(64px + env(safe-area-inset-bottom));-webkit-font-smoothing:antialiased;margin:0;line-height:1.45}.shell{max-width:480px;padding:0 max(var(--s-4), env(safe-area-inset-right)) 0 max(var(--s-4), env(safe-area-inset-left));margin:0 auto}body:before{content:"";height:env(safe-area-inset-top);background:var(--bg);z-index:10;position:fixed;inset:0 0 auto}h1,h2,h3,p{margin:0}a{color:var(--accent)}button{font:inherit;color:inherit}.tnum{font-variant-numeric:tabular-nums}.label{font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);font-weight:600}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app-header{align-items:center;gap:var(--s-3);padding:calc(var(--s-4) + env(safe-area-inset-top)) 0 var(--s-3);display:flex}.wordmark{font-size:var(--t-md);letter-spacing:.12em;margin:0;font-weight:700}.app-header .today-date{font-size:var(--t-sm);color:var(--text-2);margin-left:auto}.icon-btn{width:44px;height:44px;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;margin-right:-10px;display:grid}.icon-btn:active{background:var(--surface-2)}.preview-flag{align-items:center;gap:var(--s-2);margin-bottom:var(--s-3);padding:var(--s-2) var(--s-3);border:1px solid var(--bad);border-radius:var(--r-sm);font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--bad);font-weight:600;display:flex}.preview-flag a{color:inherit;margin-left:auto}.nav{justify-content:center;gap:var(--s-2);padding:var(--s-2) var(--s-4) calc(var(--s-2) + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);display:flex;position:fixed;inset:auto 0 0}.nav a{border-radius:var(--r-sm);max-width:160px;min-height:44px;font-size:var(--t-sm);color:var(--text-2);flex:1;place-items:center;font-weight:600;text-decoration:none;display:grid}.nav a[aria-current=page]{color:var(--accent);background:var(--surface-2)}.section{margin-top:var(--s-5)}.section>.label{margin-bottom:var(--s-2);display:block}.now-card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--s-5) var(--s-4) var(--s-4)}.now-card .now-subject{font-size:var(--t-hero);letter-spacing:-.02em;margin-top:var(--s-2);overflow-wrap:break-word;font-weight:700;line-height:1.15}.now-card .now-detail{font-size:var(--t-sm);color:var(--text-2);margin-top:var(--s-1)}.now-foot{align-items:center;gap:var(--s-3);margin-top:var(--s-4);display:flex}.now-times{font-size:var(--t-sm);color:var(--text-3)}.dial{flex:none;width:76px;height:76px;margin-left:auto;position:relative}.dial svg{display:block}.dial-track{stroke:var(--surface-2)}.dial-fill{stroke:var(--accent);stroke-linecap:round;transform-origin:50%;transition:stroke-dashoffset .3s linear;transform:rotate(-90deg)}.dial-tick{stroke:var(--text-3);stroke-linecap:round;opacity:.45}.dial-value{font-size:var(--t-sm);letter-spacing:-.01em;place-items:center;font-weight:700;display:grid;position:absolute;inset:0}.row{align-items:center;gap:var(--s-3);min-height:56px;padding:var(--s-2) var(--s-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);display:flex}.row+.row{margin-top:var(--s-2)}.row-rail{width:3px;min-height:32px;margin:var(--s-2) 0;background:var(--rail,var(--text-3));border-radius:999px;flex:none;align-self:stretch}.row-main{flex:1;min-width:0}.row-subject{font-size:var(--t-md);overflow-wrap:break-word;font-weight:500}.row-detail{font-size:var(--t-sm);color:var(--text-2)}.row-time{text-align:right;font-size:var(--t-sm);color:var(--text-2);flex:none;line-height:1.3}.row-time .row-end{color:var(--text-3)}.row.is-free .row-subject{color:var(--text-3);font-style:italic}.divider{align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);font-weight:600;display:flex}.divider:after{content:"";background:var(--line);flex:1;height:1px}.daybar{top:env(safe-area-inset-top);z-index:1;gap:var(--s-1);padding:var(--s-2) 0;background:var(--bg);display:flex;position:sticky}.daybar button{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);min-height:44px;font-size:var(--t-sm);color:var(--text-2);cursor:pointer;flex:1;font-weight:600;position:relative}.daybar button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.daybar button.is-today:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:6px;left:50%}.daybar button.is-today[aria-pressed=true]:after{background:#fff}.day-summary{margin-top:var(--s-4);font-size:var(--t-sm);color:var(--text-3)}.tabs{gap:var(--s-2);margin-top:var(--s-4);display:flex}.tabs button{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);min-height:44px;font-size:var(--t-sm);color:var(--text-2);cursor:pointer;flex:1;font-weight:600}.tabs button[aria-pressed=true]{background:var(--surface-2);border-color:var(--text-3);color:var(--text-1)}.edit-list{gap:var(--s-2);margin-top:var(--s-3);flex-direction:column;display:flex}button.row{text-align:left;cursor:pointer;width:100%}button.row:active{background:var(--surface-2)}.row.is-empty .row-subject{color:var(--text-3)}.row-chevron{color:var(--text-3);flex:none}.toast{left:50%;bottom:calc(76px + env(safe-area-inset-bottom));padding:var(--s-2) var(--s-4);background:var(--text-1);color:var(--bg);font-size:var(--t-sm);border-radius:999px;font-weight:600;position:fixed;transform:translate(-50%)}.toast[hidden]{display:none}.plain-list{margin:0;padding:0;list-style:none}.page-head{justify-content:space-between;align-items:center;gap:var(--s-3);margin-top:var(--s-2);display:flex}.page-head h2{font-size:var(--t-lg)}.hw-row{gap:var(--s-2)}.hw-check{width:44px;height:44px;margin:calc(-1 * var(--s-1)) 0;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.hw-box{border:2px solid var(--text-3);color:#0000;border-radius:50%;place-items:center;width:24px;height:24px;display:grid}.hw-check[aria-pressed=true] .hw-box{background:var(--accent);border-color:var(--accent);color:var(--surface)}.hw-main{min-width:0;padding:var(--s-1) 0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1}.hw-row.is-done .row-subject{color:var(--text-3);text-decoration:line-through}.hw-bad{color:var(--bad)}.hw-clear{margin-top:var(--s-3)}.hw-summary,.countdown-line{align-items:center;gap:var(--s-3);margin-top:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);min-height:48px;color:var(--text-1);font-size:var(--t-sm);text-decoration:none;display:flex}.hw-summary-line,.countdown-days{text-align:right;margin-left:auto;font-weight:600}.field-hint{margin-top:var(--s-2);font-size:var(--t-sm);color:var(--text-2)}.field-hint:empty{display:none}.kit-intro{margin-top:var(--s-2)}.kit-none{color:var(--text-3);font-style:italic}textarea.kit-items{min-height:140px;font-family:var(--font);font-size:var(--t-md)}.bag-head{justify-content:space-between;align-items:baseline;gap:var(--s-3);margin-bottom:var(--s-2);display:flex}.bag-head a{font-size:var(--t-sm)}.bag-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.bag-toggle{align-items:center;gap:var(--s-3);width:100%;min-height:48px;padding:var(--s-2) var(--s-3);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.bag-list li+li .bag-toggle{border-top:1px solid var(--line)}.bag-text{overflow-wrap:break-word;flex:1;min-width:0}.bag-for{max-width:45%;font-size:var(--t-xs);color:var(--text-3);text-align:right;flex:none}.bag-toggle[aria-pressed=true] .hw-box{background:var(--accent);border-color:var(--accent);color:var(--surface)}.bag-toggle[aria-pressed=true] .bag-text{color:var(--text-3);text-decoration:line-through}dialog{width:calc(100% - 2 * var(--s-4));max-width:400px;padding:var(--s-5) var(--s-4) var(--s-4);border-radius:var(--r-lg);background:var(--surface);color:var(--text-1);border:0}dialog::backdrop{background:#00000080}dialog h2{font-size:var(--t-lg)}.field{margin-top:var(--s-3);display:block}.field>.label{margin-bottom:var(--s-1);display:block}.field input,.field select{width:100%;min-height:44px;padding:0 var(--s-3);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);color:var(--text-1);font:inherit}.dialog-actions{gap:var(--s-2);margin-top:var(--s-5);flex-direction:row-reverse;display:flex}.dialog-actions .btn{flex:1}.dialog-destroy{width:100%;margin-top:var(--s-2)}.empty{margin-top:var(--s-6);padding:var(--s-5) var(--s-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);text-align:center}.empty p{color:var(--text-2);font-size:var(--t-sm);margin-top:var(--s-2)}.empty h2{font-size:var(--t-lg)}.btn{min-height:44px;padding:0 var(--s-5);border:1px solid var(--accent);border-radius:var(--r-sm);background:var(--accent);color:#fff;font-size:var(--t-sm);cursor:pointer;place-items:center;font-weight:600;text-decoration:none;display:inline-grid}.btn.secondary{background:var(--surface);border-color:var(--line);color:var(--text-1)}.btn.danger{background:var(--surface);border-color:var(--line);color:var(--bad)}.btn-row{gap:var(--s-2);margin-top:var(--s-3);flex-wrap:wrap;display:flex}.empty .btn{margin-top:var(--s-4)}textarea{width:100%;min-height:200px;padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--text-1);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--t-sm);resize:vertical;line-height:1.5}.note{font-size:var(--t-sm);color:var(--text-2)}.message{margin-top:var(--s-3);padding:var(--s-3);border-radius:var(--r-sm);background:var(--surface-2);font-size:var(--t-sm)}.message.is-error{color:var(--bad)}details{margin-top:var(--s-5);font-size:var(--t-sm);color:var(--text-2)}details pre{padding:var(--s-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);font-size:var(--t-xs);overflow-x:auto}.count-when{font-size:var(--t-sm);color:var(--text-2);text-align:right;flex:none;font-weight:600}.count-soon{color:var(--accent)}.count-gone{color:var(--text-3)}
