:root{--bg:#05070a;--panel:#0b0f14;--line:#1c2733;--dim:#6b7c8f;--text:#e8f0f8;--cyan:#00e5ff;--green:#19ff8c;--amber:#ffb020;--red:#ff3b4a;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--sans:-apple-system, "SF Pro Display", "Inter", system-ui, sans-serif;--nav-h:76px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:var(--bg);color:var(--text);font-family:var(--sans);overscroll-behavior:none;margin:0}body{min-height:100dvh}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;background:0 0;border:0}body:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);opacity:.18;background-size:40px 40px;position:fixed;inset:0}#app{z-index:1;padding:calc(env(safe-area-inset-top) + 8px) 16px calc(var(--nav-h) + env(safe-area-inset-bottom) + 16px);max-width:560px;margin:0 auto;position:relative}.top{height:44px;font-family:var(--mono);letter-spacing:.14em;justify-content:space-between;align-items:center;font-size:13px;display:flex}.brand b{color:var(--cyan)}.pill{border:1px solid var(--line);border-radius:999px;align-items:center;gap:8px;padding:6px 10px;font-size:11px;display:flex}.dot{background:var(--green);width:8px;height:8px;color:var(--green);border-radius:50%;box-shadow:0 0 8px}.dot.off{background:var(--amber);color:var(--amber)}.dot.sync{background:var(--cyan);color:var(--cyan);animation:1s infinite blink}@keyframes blink{50%{opacity:.25}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;margin-top:12px;padding:16px;position:relative}.label{font-family:var(--mono);letter-spacing:.18em;color:var(--dim);text-transform:uppercase;font-size:11px}.big{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:700}.row{gap:12px;display:flex}.row>*{flex:1}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ready{border-width:2px;padding:20px 16px}.ready .state{letter-spacing:.06em;margin:8px 0 14px;font-size:44px;line-height:1}.ready.green{border-color:var(--green);box-shadow:0 0 24px -8px var(--green) inset}.ready.green .state{color:var(--green)}.ready.yellow{border-color:var(--amber);box-shadow:0 0 24px -8px var(--amber) inset}.ready.yellow .state{color:var(--amber)}.ready.red{border-color:var(--red);box-shadow:0 0 24px -8px var(--red) inset}.ready.red .state{color:var(--red)}.ready.none .state{color:var(--dim)}.chips{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.chip{border:1px solid var(--line);text-align:center;border-radius:10px;padding:8px 6px}.chip .v{font-family:var(--mono);font-size:22px;font-weight:700}.chip .k{font-family:var(--mono);color:var(--dim);letter-spacing:.12em;font-size:10px}.tminus{letter-spacing:.04em;color:var(--cyan);margin-top:6px;font-size:34px}.tminus small{color:var(--dim);margin:0 6px 0 2px;font-size:12px}.streak .big{margin:6px 0 10px;font-size:48px;line-height:1}.days{grid-template-columns:repeat(14,1fr);gap:3px;display:grid}.days i{background:var(--line);border-radius:3px;height:14px}.days i.on{background:var(--green)}.days i.today{outline:1px solid var(--cyan);outline-offset:1px}.chart svg{width:100%;height:160px;margin-top:8px;display:block}.chart .meta{justify-content:space-between;align-items:baseline;display:flex}.chart .meta .big{font-size:26px}.log{margin:0;padding:0;list-style:none}.log li{border-top:1px solid var(--line);font-family:var(--mono);align-items:center;gap:10px;padding:12px 0;font-size:13px;display:flex}.log li:first-child{border-top:0}.log .when{color:var(--dim);flex:none;width:64px}.log .what{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tag{letter-spacing:.1em;border:1px solid;border-radius:5px;padding:3px 6px;font-size:10px}.tag.pending{color:var(--amber)}.tag.failed{color:var(--red)}.tag.local{color:var(--cyan)}.mini{border:1px solid var(--line);min-width:44px;min-height:44px;font-family:var(--mono);color:var(--dim);border-radius:10px;font-size:11px}.mini.arm{color:var(--red);border-color:var(--red)}.voice{flex-direction:column;align-items:center;padding-top:12px;display:flex}.mic{aspect-ratio:1;border:2px solid var(--cyan);width:min(64vw,260px);color:var(--cyan);font-family:var(--mono);letter-spacing:.2em;background:radial-gradient(circle,#00e5ff14,#0000 70%);border-radius:50%;place-items:center;margin:16px 0 20px;font-size:15px;display:grid;position:relative}.mic svg{width:64px;height:64px}.mic span{position:absolute;bottom:22%}.mic.rec{border-color:var(--red);color:var(--red);background:radial-gradient(circle,#ff3b4a26,#0000 70%);animation:1.4s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 #ff3b4a66}to{box-shadow:0 0 0 28px #ff3b4a00}}textarea{background:var(--panel);border:1px solid var(--line);resize:vertical;border-radius:14px;width:100%;min-height:120px;padding:14px;font-size:17px;line-height:1.4}textarea:focus,input:focus{outline:2px solid var(--cyan);outline-offset:-1px}.hint{font-family:var(--mono);color:var(--dim);letter-spacing:.1em;text-align:center;margin:8px 0 0;font-size:11px}.btn{width:100%;min-height:60px;font-family:var(--mono);letter-spacing:.2em;border-radius:14px;margin-top:12px;font-size:16px;font-weight:700}.btn.primary{background:var(--cyan);color:#00151a}.btn.primary:disabled{opacity:.35}.btn.ghost{border:1px solid var(--line);color:var(--dim)}.btn.go{background:var(--green);color:#001a0c}.kv{grid-template-columns:1fr 1fr;gap:8px;display:grid}.kv>div{border:1px solid var(--line);border-radius:10px;padding:10px}.kv .v{font-family:var(--mono);margin-top:2px;font-size:20px;font-weight:700}.kv .v.null{color:var(--line)}.kv .wide{grid-column:span 2}.kv .wide .v{font-size:15px;font-weight:400}.toggle{border:1px solid var(--line);border-radius:12px;grid-template-columns:1fr 1fr;margin-top:8px;display:grid;overflow:hidden}.toggle button{min-height:56px;font-family:var(--mono);letter-spacing:.14em;color:var(--dim);font-weight:700}.toggle button.on{background:var(--cyan);color:#00151a}.toggle button.on.no{background:var(--red);color:#1a0003}.seg{grid-template-columns:repeat(5,1fr);gap:6px;margin-top:8px;display:grid}.seg button{border:1px solid var(--line);min-height:56px;font-family:var(--mono);color:var(--dim);border-radius:10px;font-size:20px;font-weight:700}.seg button.on{background:var(--cyan);color:#00151a;border-color:var(--cyan)}.stepper{justify-content:space-between;align-items:center;padding:6px 0;display:flex}.stepper .name{font-family:var(--mono);letter-spacing:.14em;color:var(--dim);width:52px;font-size:13px}.stepper .ctl{align-items:center;gap:8px;display:flex}.stepper button{border:1px solid var(--line);width:56px;height:56px;font-size:26px;font-family:var(--mono);border-radius:12px}.stepper .val{text-align:center;width:52px;font-family:var(--mono);font-size:30px;font-weight:700}.numin{gap:8px;margin-top:8px;display:flex}.numin input{background:var(--bg);border:1px solid var(--line);min-height:64px;font-family:var(--mono);border-radius:12px;flex:1;min-width:0;padding:0 16px;font-size:30px;font-weight:700}.numin .toggle{flex:none;width:150px;margin:0}nav{z-index:5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);background:#05070af2;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}nav button{height:var(--nav-h);font-family:var(--mono);letter-spacing:.14em;color:var(--dim);flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:10px;display:flex}nav button svg{width:24px;height:24px}nav button.on{color:var(--cyan)}.auth{flex-direction:column;justify-content:center;gap:12px;min-height:80dvh;display:flex}.auth h1{font-family:var(--mono);letter-spacing:.3em;margin:0 0 12px;font-size:22px}.auth h1 b{color:var(--cyan)}.auth input{background:var(--panel);border:1px solid var(--line);border-radius:14px;min-height:60px;padding:0 16px;font-size:18px}.err{color:var(--red);font-family:var(--mono);min-height:16px;font-size:12px}.toast{left:50%;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 16px);background:var(--panel);border:1px solid var(--cyan);color:var(--cyan);font-family:var(--mono);letter-spacing:.12em;z-index:10;white-space:nowrap;border-radius:12px;padding:12px 18px;font-size:13px;position:fixed;transform:translate(-50%)}.spin{vertical-align:-2px;border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;margin-right:8px;animation:.7s linear infinite r;display:inline-block}@keyframes r{to{transform:rotate(360deg)}}.hidden{display:none!important}input,textarea{-webkit-user-select:text;user-select:text}button:active{transition:transform 60ms;transform:scale(.97)}body.locked{overflow:hidden}.sect{font-family:var(--mono);letter-spacing:.22em;color:var(--cyan);margin:26px 2px 2px;font-size:11px}.tiny{letter-spacing:.12em;margin-top:4px;font-size:10px}.hint.left{text-align:left}.chev{width:20px;height:20px;color:var(--dim);flex:none;transition:transform .2s;display:inline-flex}.chev svg{width:100%;height:100%}.nl{font-family:var(--mono);letter-spacing:.16em;color:var(--dim);border:1px dashed var(--line);border-radius:8px;margin:6px 0 2px;padding:10px 12px;font-size:11px}.hero{padding:10px 2px 4px}.hero.tight{padding-top:14px}.hero .phase,.phase.big{letter-spacing:.04em;margin:4px 0;font-size:28px;line-height:1.1}.rbtns{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;display:grid}.rb{border:2px solid var(--line);min-height:64px;font-family:var(--mono);letter-spacing:.14em;color:var(--dim);border-radius:12px;font-size:14px;font-weight:700}.rb.green.on{background:var(--green);border-color:var(--green);color:#001a0c}.rb.yellow.on{background:var(--amber);border-color:var(--amber);color:#1a1000}.rb.red.on{background:var(--red);border-color:var(--red);color:#1a0003}.rb.on.sug{background:0 0}.rb.green.on.sug{color:var(--green)}.rb.yellow.on.sug{color:var(--amber)}.rb.red.on.sug{color:var(--red)}.auto{color:var(--cyan)}.recovery{border-color:var(--red)}.empty .big{color:var(--dim);margin:6px 0;font-size:24px}.scard,.pcard{padding:0;overflow:hidden}.shead,.ptitle{text-align:left;align-items:center;gap:12px;width:100%;min-height:64px;padding:12px 16px;display:flex}.shead .code{font-family:var(--mono);color:var(--cyan);border:1px solid var(--cyan);letter-spacing:.1em;border-radius:6px;flex:none;padding:4px 6px;font-size:12px;font-weight:700}.sname{flex-direction:column;flex:1;font-size:16px;font-weight:600;display:flex}.sname small,.ptitle small{font-family:var(--mono);letter-spacing:.14em;color:var(--dim);margin-top:3px;font-size:10px;font-weight:400}.ptitle small.met{color:var(--green)}.sbody{padding:0 16px 14px;display:none}.open>.sbody{display:block}.open .chev{transform:rotate(90deg)}.sub{font-family:var(--mono);letter-spacing:.2em;color:var(--dim);margin:14px 0 4px;font-size:10px}.cut{color:var(--amber);margin-left:6px}ul.ex{margin:0;padding:0;list-style:none}ul.ex li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:10px 0;display:flex}ul.ex li:first-child{border-top:0}.exn{flex-direction:column;font-size:15px;display:flex}.exn small,.exd small{font-family:var(--mono);color:var(--dim);letter-spacing:.08em;margin-top:2px;font-size:10px}.exd{font-family:var(--mono);text-align:right;white-space:nowrap;flex-direction:column;align-items:flex-end;font-size:16px;display:flex}.exd s{color:var(--dim);margin-right:4px;font-size:11px}.qlog{align-items:center;gap:16px;display:flex}.qmic{border:2px solid var(--cyan);width:84px;height:84px;color:var(--cyan);background:radial-gradient(circle,#00e5ff1f,#0000 70%);border-radius:50%;flex:none;place-items:center;display:grid}.qmic svg{width:36px;height:36px}.qtxt{flex:1}.qtxt .big{letter-spacing:.14em;margin-top:4px;font-size:22px}.mini.wide{padding:0 14px}.nn{margin-top:6px}.nnrow{border-top:1px solid var(--line);min-height:64px;font-family:var(--mono);letter-spacing:.12em;align-items:center;gap:14px;font-size:13px;display:flex}.nnrow:first-child{border-top:0}.nnrow span{flex:1}.cbox{border:2px solid var(--line);color:#001a0c;border-radius:10px;flex:none;place-items:center;width:44px;height:44px;display:grid}.cbox.on{background:var(--green);border-color:var(--green)}.cbox svg{stroke-width:3px;width:26px;height:26px}.chips{scrollbar-width:none;padding:4px 0 2px;gap:8px;margin:0 -16px;padding-inline:16px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.pchip{border:1px solid var(--line);min-height:44px;font-family:var(--mono);letter-spacing:.16em;color:var(--dim);border-radius:999px;flex:none;padding:0 16px;font-size:12px;position:relative}.pchip.on{background:var(--cyan);color:#00151a;border-color:var(--cyan);font-weight:700}.pchip i{background:var(--green);border-radius:50%;width:6px;height:6px;position:absolute;top:6px;right:6px}.segs{border:1px solid var(--line);border-radius:12px;grid-template-columns:repeat(3,1fr);margin-top:14px;display:grid;overflow:hidden}.segs button{min-height:48px;font-family:var(--mono);letter-spacing:.16em;color:var(--dim);font-size:11px}.segs button.on{color:var(--cyan);background:#00e5ff1a}.wgrid{grid-template-columns:repeat(7,1fr);gap:5px;margin-top:12px;display:grid}.wday{border:1px solid var(--line);min-height:78px;font-family:var(--mono);background:var(--panel);border-radius:10px;flex-direction:column;justify-content:flex-start;align-items:center;gap:4px;padding:8px 2px;display:flex}.wday span{color:var(--dim);letter-spacing:.06em;margin-bottom:2px;font-size:10px}.wday b{color:var(--cyan);letter-spacing:.02em;font-size:10px}.wday.nil b{color:var(--line)}.wday.today{border-color:var(--green)}.wday.on{border-color:var(--cyan);background:#00e5ff1f}.dayl{color:var(--cyan);margin:16px 2px 0}.search{border:1px solid var(--line);background:var(--panel);border-radius:12px;align-items:center;gap:10px;margin-top:12px;padding:0 14px;display:flex}.search svg{width:20px;height:20px;color:var(--dim);flex:none}.search input{min-height:52px;font-family:var(--mono);letter-spacing:.08em;background:0 0;border:0;outline:none;flex:1;font-size:16px}ul.lib{margin:8px 0 0;padding:0;list-style:none}ul.lib li{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:60px;padding:10px 2px;display:flex}ul.lib li>div{flex:1}ul.lib small{font-family:var(--mono);color:var(--dim);letter-spacing:.1em;font-size:10px}ul.lib li.nil{color:var(--dim);font-family:var(--mono)}.phead{align-items:center;padding-left:14px;display:flex}.ptitle{font-family:var(--mono);letter-spacing:.1em;padding-left:12px;font-size:13px}.ptitle>span:first-child{flex-direction:column;flex:1;display:flex}.prog{font-family:var(--mono);letter-spacing:.1em;align-items:baseline;gap:12px;margin:6px 0 4px;display:flex}.prog .big{color:var(--cyan);font-size:24px}ul.steps{font-family:var(--mono);letter-spacing:.1em;color:var(--dim);margin:0 0 6px;padding:0;font-size:11px;list-style:none}ul.steps li{padding:4px 0}ul.steps li.on{color:var(--cyan)}ul.rules{margin:0;padding:0;list-style:none}ul.rules li{border-top:1px solid var(--line);gap:14px;padding:12px 0;display:flex}ul.rules li:first-child{border-top:0}ul.rules b{font-family:var(--mono);letter-spacing:.14em;color:var(--amber);flex:none;width:76px;padding-top:2px;font-size:11px}.ready .state{margin-bottom:0}.cdrow{align-items:baseline;gap:10px;margin-top:4px;display:flex}.cd .days{color:var(--cyan);font-size:72px;line-height:1}.cd .hms{color:var(--dim);margin-left:auto;font-size:16px}.metric{justify-content:space-between;align-items:center;gap:12px;display:flex}.metric .big{margin-top:4px;font-size:32px}.spark{flex:none;width:46%;max-width:170px;height:56px}.grid3{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.stk{text-align:center;padding:14px 6px}.stk .big{margin-bottom:6px;font-size:40px;line-height:1}.log li{cursor:pointer;min-height:56px}.log .chev{width:16px;height:16px}.sheet{z-index:20;background:var(--bg);flex-direction:column;animation:.22s ease-out up;display:flex;position:fixed;inset:0;overflow:hidden}@keyframes up{0%{opacity:0;transform:translateY(24px)}}.shbar{padding-top:env(safe-area-inset-top);min-height:calc(56px + env(safe-area-inset-top));border-bottom:1px solid var(--line);font-family:var(--mono);letter-spacing:.2em;text-align:center;grid-template-columns:56px 1fr 56px;align-items:center;font-size:13px;display:grid}.shbar button{height:56px;color:var(--cyan);place-items:center;display:grid}.shbar button svg{width:26px;height:26px}.shbody{-webkit-overflow-scrolling:touch;padding:8px 16px calc(24px + env(safe-area-inset-bottom));flex:1;width:100%;max-width:560px;margin:0 auto;overflow-y:auto}.form .frow{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:60px;display:flex}.form .frow:first-child{border-top:0}.form .frow.col{flex-direction:column;align-items:stretch;padding:10px 0}.form label{font-family:var(--mono);letter-spacing:.14em;color:var(--dim);font-size:11px}.form input{background:var(--bg);border:1px solid var(--line);width:46%;min-height:48px;font-family:var(--mono);text-align:right;border-radius:10px;padding:0 12px;font-size:18px}.form textarea{min-height:80px;margin-top:8px;font-size:15px}.toggle.sm{width:46%;margin:0}.toggle.sm button{min-height:44px;font-size:12px}.tx{color:var(--dim);-webkit-user-select:text;user-select:text;margin:6px 0 0;font-size:15px;line-height:1.4}.danger{color:var(--red);border-color:#ff3b4a55}ol.cues,ul.cues{margin:8px 0 0;padding-left:20px;line-height:1.6}.linkbtn{place-items:center;text-decoration:none;display:grid}.sheet .voice{padding-top:0}.sheet .mic{margin-top:8px}@media (height>=760px){.sheet .mic{margin-top:24px}}.voice .row{width:100%}
