:root{color-scheme:dark;--bg0: #151009;--bg1: #1d1610;--surface: #201812;--surface-2: #281e15;--well: #171208;--line: #382a1c;--line-soft: #2c2115;--ink: #f3e9d7;--ink-soft: #d9c9ae;--muted: #97846a;--faint: #6b5c48;--ember: #e57a4b;--ember-hot: #f2a276;--ember-ink: #1d0f07;--ember-dim: #c9633a;--sage: #a9c08d;--clay: #e0836b;--amber: #dfb063;--sky: #93b3c7;--shadow: 0 1px 2px rgba(0,0,0,.35), 0 18px 44px -18px rgba(0,0,0,.6);--radius: 20px;--radius-sm: 12px;--display: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace}html[data-theme=light]{color-scheme:light;--bg0: #f4ecdd;--bg1: #efe5d2;--surface: #fdf8ee;--surface-2: #f6efe0;--well: #efe7d5;--line: #e2d5bd;--line-soft: #eae0cb;--ink: #251d13;--ink-soft: #4c4131;--muted: #8b7b62;--faint: #b3a488;--ember: #c05a33;--ember-hot: #a94b28;--ember-ink: #fff6ee;--ember-dim: #a94b28;--sage: #5f7a4b;--clay: #ab4530;--amber: #a1701d;--sky: #4b6f86;--shadow: 0 1px 2px rgba(70,50,25,.06), 0 14px 34px -16px rgba(80,55,30,.22)}*{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--bg0)}body{font-family:var(--sans);color:var(--ink);background:var(--bg0);background-image:radial-gradient(140% 90% at 50% -30%,var(--bg1) 0%,transparent 60%),radial-gradient(80% 50% at 85% 110%,color-mix(in srgb,var(--ember) 7%,transparent) 0%,transparent 70%);background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.45;min-height:100dvh;overflow-x:hidden}button,input{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}::selection{background:color-mix(in srgb,var(--ember) 35%,transparent)}.shell{max-width:480px;margin:0 auto;padding:calc(10px + env(safe-area-inset-top)) 18px calc(96px + env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 2px 16px}.wordmark{font:600 17px/1 var(--display);letter-spacing:.02em;color:var(--ink);display:flex;align-items:baseline;gap:7px}.wordmark .spark{width:7px;height:7px;border-radius:50%;background:var(--ember);box-shadow:0 0 12px 2px color-mix(in srgb,var(--ember) 60%,transparent);align-self:center}.wordmark small{font:500 10px var(--sans);color:var(--faint);letter-spacing:.22em;text-transform:uppercase}.iconbtn{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;border:1px solid var(--line-soft);background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--muted)}.iconbtn:active{transform:scale(.94)}.view{animation:view-in .32s cubic-bezier(.22,.9,.3,1) both}@keyframes view-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.view>*{animation:rise .45s cubic-bezier(.22,.9,.3,1) both}.view>*:nth-child(2){animation-delay:.05s}.view>*:nth-child(3){animation-delay:.1s}.view>*:nth-child(4){animation-delay:.15s}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.tabbar{position:fixed;left:50%;transform:translate(-50%);bottom:calc(12px + env(safe-area-inset-bottom));display:flex;gap:2px;padding:6px;background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);border:1px solid var(--line-soft);border-radius:22px;box-shadow:var(--shadow);z-index:10}.tab{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:74px;padding:8px 10px 7px;border:0;background:transparent;border-radius:16px;color:var(--muted);font-size:10.5px;letter-spacing:.04em;transition:color .2s,background .2s}.tab.on{color:var(--ember-hot);background:color-mix(in srgb,var(--ember) 12%,transparent)}.tab:active{transform:scale(.95)}.card{position:relative;background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px;margin-bottom:14px;overflow:hidden}.card h2{font:600 11px var(--sans);color:var(--faint);letter-spacing:.2em;text-transform:uppercase;margin:0 0 12px}.hero{--tone: var(--muted);padding:24px 22px 22px}.hero:before{content:"";position:absolute;inset:-40% -20% auto;height:130%;background:radial-gradient(60% 60% at 50% 0%,color-mix(in srgb,var(--tone) 16%,transparent),transparent 70%);pointer-events:none}.tone-free{--tone: var(--sage)}.tone-locked{--tone: var(--clay)}.tone-task,.tone-curfew{--tone: var(--amber)}.tone-shadow{--tone: var(--sky)}.tone-unknown{--tone: var(--muted)}.hero .device{position:relative;display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted)}.hero .device .chip{margin-left:auto}.hero .head{position:relative;font:500 44px/1.05 var(--display);letter-spacing:-.01em;color:var(--tone);margin:14px 0 4px}.hero .sub{position:relative;color:var(--ink-soft);font-size:15px}.hero .big{position:relative;display:flex;align-items:baseline;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line-soft)}.hero .big b{font:500 26px/1 var(--display);color:var(--ink);font-variant-numeric:tabular-nums;font-weight:500}.hero .big span{color:var(--muted);font-size:13px}.dot{width:9px;height:9px;border-radius:50%;background:var(--faint);flex:none}.dot.on{background:var(--sage);animation:pulse 2.6s ease-in-out infinite}.dot.on.idle{opacity:.5;animation:none}.dot.off{background:var(--clay)}@keyframes pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--sage) 45%,transparent)}55%{box-shadow:0 0 0 8px transparent}}.glance{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.glance .cell{background:var(--well);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:12px 8px 10px;text-align:center}.glance b{display:block;font:500 21px/1.1 var(--display);color:var(--ink);font-variant-numeric:tabular-nums}.glance span{font-size:10.5px;color:var(--muted);letter-spacing:.03em}.rows{display:grid;grid-template-columns:1fr auto;gap:10px 14px;font-size:14.5px;margin:0}.rows dt{color:var(--muted)}.rows dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-soft)}.rows dd.mono{font-family:var(--mono);font-size:12.5px}.chip{display:inline-block;padding:2.5px 9px;border-radius:999px;font-size:11.5px;background:var(--well);border:1px solid var(--line-soft);color:var(--muted)}.chip.ok{background:color-mix(in srgb,var(--sage) 16%,transparent);color:var(--sage);border-color:transparent}.chip.warn{background:color-mix(in srgb,var(--amber) 16%,transparent);color:var(--amber);border-color:transparent}.chip.bad{background:color-mix(in srgb,var(--clay) 16%,transparent);color:var(--clay);border-color:transparent}.meta{display:flex;justify-content:space-between;font-size:11.5px;color:var(--faint);margin:2px 4px 12px}.meta .err{color:var(--clay)}.btn{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;padding:11px 16px;font-size:14px;color:var(--ink-soft);transition:transform .12s,background .2s}.btn:active{transform:scale(.96)}.btn.primary{background:linear-gradient(180deg,var(--ember-hot),var(--ember));color:var(--ember-ink);border-color:transparent;font-weight:650;box-shadow:0 6px 18px -6px color-mix(in srgb,var(--ember) 55%,transparent)}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn:disabled{opacity:.45;transform:none;cursor:default}.actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.actions.start{justify-content:flex-start}.mt{margin-top:14px}.hint{color:var(--muted);font-size:12.5px;margin-top:12px;line-height:1.5}.error{color:var(--clay);font-size:13.5px;margin:10px 0 0}.skeleton{color:var(--faint);font-size:14px;padding:8px 2px}.foot{color:var(--faint);font-size:11.5px;text-align:center;margin-top:20px;line-height:1.5}.login-stage{min-height:calc(100dvh - 170px);display:flex;flex-direction:column;justify-content:center}.orb-seat{display:grid;place-items:center;margin-bottom:30px}.orb{position:relative;width:148px;height:148px}.orb .halo{position:absolute;inset:-46%;border-radius:50%;background:radial-gradient(50% 50% at 50% 50%,color-mix(in srgb,var(--ember) 26%,transparent),transparent 70%);animation:halo 5.4s ease-in-out infinite}.orb .core{position:absolute;inset:0;border-radius:50%;background:radial-gradient(38% 38% at 38% 32%,var(--ember-hot),transparent 70%),radial-gradient(75% 75% at 55% 62%,var(--ember) 8%,#7e3a1d 52%,#3a1c0e 82%,#241108 100%);box-shadow:inset 0 -14px 30px #00000080,0 10px 44px -8px color-mix(in srgb,var(--ember) 45%,transparent);animation:breathe 5.4s ease-in-out infinite}.orb .flick{position:absolute;inset:0;border-radius:50%;background:radial-gradient(24% 20% at 62% 44%,color-mix(in srgb,var(--ember-hot) 65%,transparent),transparent 70%);mix-blend-mode:screen;animation:flicker 3.7s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.045)}}@keyframes halo{0%,to{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@keyframes flicker{0%,to{opacity:.35}30%{opacity:.8}60%{opacity:.5}80%{opacity:.9}}html[data-theme=light] .orb .flick{mix-blend-mode:normal;opacity:.4}html[data-theme=light] .orb .core{box-shadow:inset 0 -14px 30px #50280f40,0 10px 44px -8px color-mix(in srgb,var(--ember) 40%,transparent)}.login-card h1{font:500 30px/1.15 var(--display);margin:0 0 6px}.login-card p{color:var(--ink-soft);font-size:14.5px;margin:0 0 16px;line-height:1.55}.login-card code{font-family:var(--mono);font-size:13px;background:var(--well);border:1px solid var(--line-soft);padding:1px 7px;border-radius:7px;color:var(--ember-hot)}.code-input{width:100%;font:500 25px/1.2 var(--mono);letter-spacing:.14em;text-align:center;padding:14px 10px;border:1px solid var(--line);border-radius:14px;background:var(--well);outline:none;text-transform:uppercase;color:var(--ink);transition:border-color .2s,box-shadow .2s}.code-input:focus{border-color:var(--ember);box-shadow:0 0 0 5px color-mix(in srgb,var(--ember) 14%,transparent)}.code-input::placeholder{color:var(--faint)}.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:12px}.quick-btn{display:flex;flex-direction:column;gap:2px;align-items:center;padding:12px 6px 10px;font-size:13.5px;border-radius:15px}.quick-btn .lock-mark{color:var(--faint);font-size:10px;letter-spacing:.08em}.quick-btn.danger{border-color:color-mix(in srgb,var(--ember) 40%,var(--line))}.quick-btn.danger .lock-mark{color:var(--ember-dim)}.cmdline{display:flex;gap:9px}.cmd-input{flex:1;min-width:0;font:14.5px var(--mono);padding:11px 13px;border:1px solid var(--line);border-radius:14px;background:var(--well);outline:none;color:var(--ink)}.cmd-input:focus{border-color:var(--ember)}.pinbox{margin-top:14px;padding:14px;border:1px dashed color-mix(in srgb,var(--ember) 55%,var(--line));border-radius:15px;background:color-mix(in srgb,var(--ember) 6%,transparent);animation:rise .3s both}.pin-title{font-size:13.5px;margin-bottom:10px}.pin-title code{font-family:var(--mono)}.pin-input{font-size:21px;letter-spacing:.3em;text-align:center;max-width:140px}.cmdlog,.inbox{list-style:none;margin:14px 0 0;padding:0;font-size:13.5px}.cmdlog li,.inbox li{display:grid;grid-template-columns:42px 1fr;gap:10px;padding:8px 0;border-top:1px solid var(--line-soft)}.cmdlog li:first-child{animation:rise .25s both}.cmdlog .t,.inbox .t{color:var(--faint);font-size:11px;font-variant-numeric:tabular-nums;padding-top:2px}.cmdlog .l-out .m{font-family:var(--mono);color:var(--muted)}.cmdlog .l-in .m{color:var(--ink-soft)}.cmdlog .l-err .m{color:var(--clay)}.cmdlog .l-pin .m{color:var(--amber)}.inbox .m{margin:0;font:inherit;color:var(--ink-soft);white-space:pre-wrap;word-break:break-word}.inbox li:first-child{border-top:0}.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--well)}.seg-btn{border:0;background:transparent;padding:6px 12px;font-size:12.5px;color:var(--muted);transition:background .2s,color .2s}.seg-btn.on{background:var(--ember);color:var(--ember-ink);font-weight:600}.switch{display:inline-flex;align-items:center;gap:7px;cursor:pointer}.switch input{accent-color:var(--ember);width:18px;height:18px}@media(prefers-reduced-motion:reduce){*,:before,:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}
