:root{--bg:#F8FCFB;--surface:#FFFFFF;--sunk:#EEF7F5;--ink:#1B1F1F;--muted:#5C6867;--line:#E1EAE8;--brand:#81D8D0;--on-brand:#1B1F1F;--accent:#0D7D76;--accent-soft:#DDF3F0;--art:#E2F6F2;--btn:#1B1F1F;--on-btn:#FFFFFF;--lav:#7C67BE;--lav-soft:#EEE9FA;--ring:#C9BCEB;--warn:#8a5a00;--warn-soft:#fbefd2;--ok:#1f6b3a;--ok-soft:#dcefe1;--danger:#B3362F;--shadow:20,40,38;--display:"Sora","Segoe UI","Helvetica Neue",sans-serif;--body:"Albert Sans","Helvetica Neue",Arial,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root{--bg:#0E1514;--surface:#151E1D;--sunk:#101A19;--ink:#EDF4F3;--muted:#A1B0AE;--line:#253230;--brand:#81D8D0;--on-brand:#102020;--accent:#81D8D0;--accent-soft:#163330;--btn:#81D8D0;--on-btn:#102020;--lav:#BBA9EE;--lav-soft:#29233F;--ring:#6f5fa8;--warn:#f0c067;--warn-soft:#3a2f14;--ok:#7fd09a;--ok-soft:#173022;--danger:#f08a82;--shadow:0,0,0;color-scheme:dark}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}html{height:100%}body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font:400 16.5px/1.55 var(--body);-webkit-text-size-adjust:100%;overscroll-behavior-y:none}h1,h2,h3{font-family:var(--display);margin:0;text-wrap:balance;letter-spacing:-.02em}h2{font-size:19px;font-weight:700}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.ic{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.ic.sm{width:16px;height:16px}.label{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.hint{font-size:13.5px;color:var(--muted)}.fine{font-size:13px;color:var(--muted);text-align:center;max-width:36ch;margin:0 auto}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1 1 auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 16px;font-weight:600;min-height:46px;transition:transform .15s,background .2s}.btn:active{transform:scale(.98)}.btn.primary{background:var(--btn);color:var(--on-btn);border-color:var(--btn);box-shadow:0 10px 24px -14px rgba(var(--shadow),.6)}.btn.big{width:100%;min-height:54px;font-size:17px;border-radius:14px}.btn.small{padding:6px 12px;min-height:38px;font-size:14px;border-radius:10px}.btn.done{background:var(--ok-soft);color:var(--ok);border-color:transparent}.btn.ghost{background:transparent;border-color:transparent}.btn.danger{color:var(--danger)}.btn:disabled{opacity:.5;cursor:not-allowed}.iconbtn{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:0;background:transparent;color:var(--ink);flex:none}.iconbtn.ring{border:1px solid var(--line);background:var(--surface)}.linkbtn{background:none;border:0;color:var(--accent);text-decoration:underline;text-underline-offset:3px;padding:10px 0;font-size:14.5px;min-height:44px;align-self:center}label.fld{display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--muted);font-weight:500}label.fld>span:first-child{display:inline-flex;align-items:center;gap:6px}input[type=email],input[type=password],input[type=text],input[type=time],select,textarea{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:11px 13px;min-height:50px;font-size:16.5px;font-variant-numeric:tabular-nums}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}textarea{min-height:150px;background:var(--sunk);resize:vertical;line-height:1.5}textarea.small{min-height:96px}.pw{position:relative;display:block}.pw input{padding-right:52px}.pw .iconbtn{position:absolute;right:3px;top:3px;color:var(--muted)}.pw .iconbtn[aria-pressed=true]{color:var(--accent)}.status{font-size:14.5px;min-height:22px;text-align:center}.status.err{color:var(--danger)}.card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:14px;box-shadow:0 22px 44px -34px rgba(var(--shadow),.55)}.brandmark{display:flex;align-items:center;gap:12px;min-width:0}.brandmark .am{width:44px;height:44px;border-radius:50%;background:var(--brand);color:#1b1f1f;border:3px solid var(--ring);display:grid;place-items:center;font:700 14px var(--display);flex:none}.brandmark b{font-family:var(--display);font-weight:700;font-size:18px;letter-spacing:-.02em;display:block;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brandmark small{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:block;margin-top:3px}.auth{min-height:100dvh;display:flex;flex-direction:column}.hero{background:var(--art);color:#1b1f1f;padding:calc(16px + var(--sat)) 22px 24px;border-radius:0 0 28px 28px;display:flex;flex-direction:column;gap:14px}.hero .brandmark small{color:#4c5b59}.hero-art{width:auto;max-width:78%;height:auto;max-height:26vh;object-fit:contain;align-self:center}.hero h1{font-size:clamp(24px,6.6vw,44px);font-weight:700;line-height:1.08;letter-spacing:-.03em}.trust{list-style:none;margin:0;padding:0 6px;display:flex;flex-direction:column;gap:8px;font-size:14.5px;color:var(--muted)}.trust li{display:flex;align-items:center;gap:10px}.trust .ic{width:18px;height:18px;color:var(--accent)}.auth-panel{padding:18px 18px calc(26px + var(--sab));display:flex;flex-direction:column;gap:18px;width:100%;max-width:460px;margin:0 auto}.auth-panel .card{margin-top:-4px}.auth-panel h2{font-size:24px;margin-top:4px}@media (min-width:900px){.auth{flex-direction:row}.hero{flex:1.1;border-radius:0;justify-content:center;padding:56px clamp(40px,6vw,96px);gap:22px}.hero-art{max-width:520px;max-height:44vh;align-self:flex-start}.hero .brandmark{position:absolute;top:32px}.trust{max-width:440px;width:100%;margin:0 auto}.auth-panel{flex:1;justify-content:center;max-width:none;padding:56px clamp(32px,6vw,96px)}.auth-panel .card{max-width:440px;width:100%;margin:0 auto;padding:28px}}.app{max-width:640px;margin:0 auto;padding:calc(14px + var(--sat)) 16px calc(48px + var(--sab));display:flex;flex-direction:column;gap:16px}.top{display:flex;align-items:center;justify-content:space-between;gap:12px}.week{display:flex;align-items:center;gap:2px;margin:0 -6px}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;flex:1;min-width:0}.day{border:0;background:transparent;border-radius:14px;padding:8px 0 10px;display:flex;flex-direction:column;align-items:center;gap:3px;min-height:64px;position:relative}.day .wd{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.day .dn{font-family:var(--display);font-weight:600;font-size:17px;font-variant-numeric:tabular-nums}.day.today .dn{color:var(--accent)}.day[aria-pressed=true]{background:var(--btn);color:var(--on-btn)}.day[aria-pressed=true] .wd,.day[aria-pressed=true] .dn{color:inherit}.day .dot{width:6px;height:6px;border-radius:50%;background:transparent}.day.has .dot{background:var(--lav)}.day.clear .dot{background:var(--brand)}.recorder{align-items:stretch;text-align:center;gap:12px;padding-top:18px}.stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;padding:10px 0 2px}#wave{position:absolute;left:0;right:0;top:22px;width:100%;height:96px;opacity:0;transition:opacity .3s;pointer-events:none}.stage[data-state=rec] #wave{opacity:1}.rec{position:relative;z-index:1;width:116px;height:116px;border-radius:50%;border:0;background:var(--brand);color:#1b1f1f;display:grid;place-items:center;box-shadow:0 0 0 8px var(--accent-soft),0 22px 36px -18px rgba(var(--shadow),.7);transition:transform .15s,background .25s,box-shadow .25s}.rec .ic{width:44px;height:44px;stroke-width:1.6}.rec:active{transform:scale(.96)}.rec:disabled{opacity:.55;cursor:progress}.stage[data-state=rec] .rec{background:var(--danger);color:#fff;box-shadow:0 0 0 8px color-mix(in srgb,var(--danger) 18%,transparent),0 22px 36px -18px rgba(var(--shadow),.7)}.stage[data-state=busy] .rec{background:var(--lav-soft);color:var(--lav);box-shadow:0 0 0 8px transparent}.rec-label{font-family:var(--display);font-weight:600;font-size:18px;font-variant-numeric:tabular-nums;min-height:27px}@media (prefers-reduced-motion:no-preference){.stage[data-state=rec] .rec{animation:pulse 1.8s ease-in-out infinite}.stage[data-state=busy] .rec .ic{animation:spin 1.4s linear infinite}@keyframes pulse{50%{box-shadow:0 0 0 16px color-mix(in srgb,var(--danger) 8%,transparent),0 22px 36px -18px rgba(var(--shadow),.7)}}@keyframes spin{to{transform:rotate(360deg)}}}.steps{list-style:none;margin:0;padding:0;display:flex;justify-content:center;gap:6px;flex-wrap:wrap}.steps li{font-size:13px;font-weight:600;padding:5px 12px;border-radius:999px;background:var(--sunk);color:var(--muted)}.steps li.now{background:var(--lav-soft);color:var(--lav)}.steps li.ok{background:var(--ok-soft);color:var(--ok)}.opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left}.recorder .hint{text-align:center}#typeBox{text-align:left}.daysum{display:flex;flex-direction:column;gap:8px;padding:4px 2px 0}.count{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}.bar{height:8px;border-radius:999px;background:var(--sunk);overflow:hidden}.bar i{display:block;height:100%;width:0;background:var(--brand);border-radius:999px;transition:width .4s}.list{display:flex;flex-direction:column;gap:10px}.note{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden}.note.open{box-shadow:0 22px 44px -34px rgba(var(--shadow),.55)}.note>button.head{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto auto;gap:12px;align-items:center;width:100%;padding:14px 14px 14px 16px;min-height:68px}.note>button.head:focus-visible{outline:3px solid var(--accent);outline-offset:-3px;border-radius:18px}.time{font-family:var(--display);font-weight:700;font-variant-numeric:tabular-nums;font-size:14px;background:var(--accent-soft);color:var(--accent);border-radius:10px;padding:8px 9px;min-width:74px;text-align:center}.time.none{background:var(--warn-soft);color:var(--warn)}.ttl{font-weight:600;overflow-wrap:anywhere;line-height:1.3}.ttl small{display:block;font-family:var(--mono);font-weight:400;color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-top:2px}.pill{font-size:12px;font-weight:600;border-radius:999px;padding:4px 10px;white-space:nowrap}.pill.todo{background:var(--lav-soft);color:var(--lav)}.pill.done{background:var(--ok-soft);color:var(--ok)}.chev{color:var(--muted);transition:transform .2s}.note.open .chev{transform:rotate(180deg)}.body{border-top:1px solid var(--line);padding:16px;display:flex;flex-direction:column;gap:16px}.gaps{display:flex;gap:10px;background:var(--warn-soft);border-radius:14px;padding:12px 14px;font-size:14.5px}.gaps .ic{color:var(--warn);margin-top:1px}.gaps strong{color:var(--warn);display:block}.gaps ul{margin:4px 0 0;padding-left:18px}.tabs{display:flex;background:var(--sunk);border-radius:12px;padding:4px;gap:4px}.tabs button{flex:1;border:0;background:transparent;border-radius:9px;padding:8px;font-weight:600;font-size:14.5px;min-height:42px;color:var(--muted)}.tabs button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(var(--shadow),.18)}.secs{display:flex;flex-direction:column;gap:14px}.sec{display:flex;flex-direction:column;gap:2px;padding-bottom:14px;border-bottom:1px solid var(--line)}.sec:last-of-type{border-bottom:0;padding-bottom:0}.sec .lab{display:flex;align-items:center;justify-content:space-between;gap:8px}.sec .lab>span{font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.sec .txt{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;padding:4px 6px;margin:0 -6px}.sec .txt:focus{background:var(--sunk);outline:2px solid var(--accent)}pre.full{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;background:var(--sunk);border-radius:14px;padding:14px}.fullrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:10px}details summary{cursor:pointer;font-size:14px;color:var(--muted);min-height:32px}details p{font-size:14px;color:var(--muted);white-space:pre-wrap;margin-top:6px}.foot{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.foot>.btn:not(.ghost){grid-column:1/-1;order:3;min-height:52px}.empty{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;color:var(--muted);padding:6px 16px 20px}.empty img{width:240px;max-width:72%;height:auto;border-radius:24px;background:var(--art);padding:22px 26px}.empty b{font-family:var(--display);color:var(--ink);font-size:17px;margin-top:8px}.skel{height:68px;border-radius:18px;background:var(--sunk)}dialog{border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:10px 20px calc(22px + var(--sab));width:100%;max-width:560px;margin:auto auto 0;border-radius:24px 24px 0 0;border-bottom:0}dialog::backdrop{background:#08100f80}dialog form{display:flex;flex-direction:column;gap:16px}.grab{width:44px;height:5px;border-radius:999px;background:var(--line);align-self:center}@media (min-width:640px){dialog{margin:auto;border-radius:24px;border-bottom:1px solid var(--line);padding:24px;max-width:460px}.grab{display:none}}@media (prefers-reduced-motion:no-preference){dialog[open]{animation:rise .28s cubic-bezier(.2,.8,.2,1)}@keyframes rise{0%{transform:translateY(24px);opacity:0}}}.toast{position:fixed;left:50%;bottom:calc(20px + var(--sab));transform:translate(-50%);background:var(--ink);color:var(--bg);padding:11px 18px;border-radius:999px;font-size:14.5px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90vw;text-align:center;z-index:10}.toast.show{opacity:1}@media (max-width:380px){.note>button.head{grid-template-columns:auto 1fr auto}.note>button.head .pill{display:none}}
