:root{--bg:#f6f3ec;--panel:#ffffff;--ink:#1c1a17;--ink-2:#6b665e;--line:#ddd8ce;--amber:#c98a12;--amber-ink:#1c1a17;--ok:#2f7d4f;--warn:#b3362a;--tap:48px;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--bg:#171512;--panel:#221f1a;--ink:#f2ede3;--ink-2:#a39c8f;--line:#3a352c;--amber:#e8a323;--amber-ink:#1c1a17;--ok:#6fc28d;--warn:#ef7a6c}}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font:17px/1.45 -apple-system,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:1.5rem}h2{font-size:1.15rem}p{margin:0}.shell{max-width:520px;margin:0 auto;padding:16px 16px calc(84px + env(safe-area-inset-bottom))}.auth-shell{max-width:420px;margin:0 auto;padding:48px 20px 40px;display:grid;grid-gap:24px;gap:24px}.topbar{display:flex;align-items:baseline;justify-content:space-between;padding:8px 0 20px}.topbar .who{color:var(--ink-2);font-size:.95rem}.brand{font-weight:700;letter-spacing:-.02em}.stack{display:grid;grid-gap:16px;gap:16px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px}.muted{color:var(--ink-2)}.small{font-size:.9rem}.turn{border-radius:18px;padding:22px 20px;background:var(--amber);color:var(--amber-ink);display:grid;grid-template-columns:auto 1fr;grid-gap:18px;gap:18px;align-items:center}.turn .letter{font-size:5.5rem;line-height:.85;font-weight:800;letter-spacing:-.05em}.turn .caption{font-size:.95rem;opacity:.8}.turn .name{font-size:1.35rem;font-weight:700;line-height:1.15}.window{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--panel)}.window .dot{width:10px;height:10px;border-radius:50%;background:var(--ink-2);flex:none}.window.on .dot{background:var(--ok);box-shadow:0 0 0 4px color-mix(in srgb,var(--ok) 25%,transparent)}.actions{display:grid;grid-gap:10px;gap:10px}.btn{display:flex;align-items:center;justify-content:center;min-height:var(--tap);padding:0 18px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.primary:disabled,.btn:disabled{opacity:.45;cursor:not-allowed}.btn.big{min-height:64px;font-size:1.1rem}.btn.link{border:none;background:none;min-height:40px;color:var(--ink-2);text-decoration:underline;font-weight:500}.btn:focus-visible{outline:3px solid var(--amber);outline-offset:2px}form.stack label{display:grid;grid-gap:6px;gap:6px;font-weight:500}input,select{font:inherit;min-height:var(--tap);padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);width:100%}input:focus-visible,select:focus-visible{outline:3px solid var(--amber);outline-offset:1px}.hint{color:var(--ink-2);font-size:.9rem;font-weight:400}.msg{padding:12px 14px;border-radius:10px;font-size:.95rem}.msg.error{background:color-mix(in srgb,var(--warn) 14%,transparent);color:var(--warn)}.msg.ok{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}.msg code{word-break:break-all;font-size:.85rem}.rule{border:0;border-top:1px solid var(--line);margin:4px 0}.list{grid-gap:0;gap:0}.list,.row{display:grid}.row{grid-template-columns:1fr auto;grid-gap:12px;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.row:first-child{border-top:0}.row .sub{font-size:.9rem}.row .sub,.tag{color:var(--ink-2)}.tag{display:inline-block;padding:2px 8px;border-radius:999px;border:1px solid var(--line);font-size:.8rem}.bottom-nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);background:var(--panel);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav a{display:grid;justify-items:center;grid-gap:2px;gap:2px;padding:10px 4px 8px;min-height:56px;color:var(--ink-2);text-decoration:none;font-size:.75rem;font-weight:500}.bottom-nav a.active{color:var(--ink)}.bottom-nav a.active svg{stroke:var(--amber)}.bottom-nav svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.empty{padding:40px 0;text-align:center;color:var(--ink-2)}@media (prefers-reduced-motion:no-preference){.turn{animation:settle .32s ease-out}@keyframes settle{0%{transform:translateY(6px);opacity:0}to{transform:none;opacity:1}}}.topbar .who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:55vw;display:inline-block;vertical-align:bottom}.topbar form{display:flex;align-items:baseline;gap:6px;min-width:0}.chip{top:calc(8px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);background:var(--amber);color:var(--amber-ink);border:0;border-radius:999px;padding:8px 14px;font:inherit;font-size:.85rem;font-weight:600}.chip,.install{position:fixed;z-index:20}.install{left:16px;right:16px;bottom:calc(76px + env(safe-area-inset-bottom));background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;grid-gap:10px;gap:10px;font-size:.95rem;box-shadow:0 8px 24px rgba(0,0,0,.25)}.install-actions{display:flex;gap:8px;justify-content:flex-end}.steps{display:flex;gap:6px}.steps span{flex:1 1;height:4px;border-radius:2px;background:var(--line)}.steps span.done{background:var(--amber)}.step-title{display:grid;grid-gap:4px;gap:4px}.step-title .n{color:var(--ink-2);font-size:.9rem}.big-input{font-size:2rem;font-weight:600;min-height:64px;text-align:center;letter-spacing:-.02em}.pct-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.pct-grid button{min-height:var(--tap);border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;font-weight:600}.pct-grid button.on{background:var(--amber);color:var(--amber-ink);border-color:var(--amber)}.choice{display:grid;grid-gap:8px;gap:8px}.choice button{min-height:56px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;font-weight:600;text-align:left;padding:0 16px}.choice button.on{background:var(--amber);color:var(--amber-ink);border-color:var(--amber)}.check{display:flex;gap:10px;align-items:center;font-weight:500}.check input{width:22px;height:22px;min-height:0}.nav-row{display:grid;grid-template-columns:1fr 2fr;grid-gap:10px;gap:10px}.photo-preview{width:100%;border-radius:12px;border:1px solid var(--line)}.file-btn{position:relative;overflow:hidden}.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}textarea{font:inherit;padding:12px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);width:100%;min-height:80px}.fill-row{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px;padding:14px 0;border-top:1px solid var(--line);text-decoration:none;color:inherit}.fill-row:first-child{border-top:0}.fill-row.voided{opacity:.55;text-decoration:line-through}.fill-row .main{font-weight:600}.fill-row .sub{color:var(--ink-2);font-size:.9rem}.fill-row .code{font-size:1.6rem;font-weight:800;color:var(--amber);align-self:center}.kv{display:grid;grid-template-columns:1fr auto;grid-gap:6px 16px;gap:6px 16px}.kv dt{color:var(--ink-2)}.kv dd{margin:0;text-align:right;font-weight:500}.receipt{width:100%;border-radius:12px;border:1px solid var(--line)}.tag.warn{color:var(--warn);border-color:var(--warn)}.chart{width:100%;height:auto;display:block}.chart .grid{stroke:var(--line);stroke-width:1}.chart .tick{fill:var(--ink-2);font-size:11px}.chart .val{fill:var(--ink);font-size:11px;font-weight:600}.chart .line{fill:none;stroke:var(--amber);stroke-width:2.5;stroke-linejoin:round}.chart .dot{fill:var(--amber)}.chart .baseline{stroke:var(--ink-2);stroke-width:1.5;stroke-dasharray:6 4}.chart .alert{stroke:var(--warn);stroke-width:1;stroke-dasharray:2 4}.chart .bar-0{fill:var(--amber)}.chart .bar-1{fill:var(--ink-2)}.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.9rem;color:var(--ink-2)}.legend span{display:inline-flex;align-items:center;gap:6px}.swatch{width:12px;height:12px;border-radius:3px;display:inline-block}.swatch.bar-0{background:var(--amber)}.swatch.bar-1{background:var(--ink-2)}.sched-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sched-row input[type=time]{width:auto;min-width:110px}.sched-row input[name=name]{flex:1 1;min-width:160px}.code-sm{font-weight:800;color:var(--amber);width:24px}