:root{--accent:#ffa94d;--accent-2:#ffc182;--accent-ink:#20160a;--green:#34d399;--yellow:#fbbf24;--red:#f87171;--blue:#7dd3fc;--r-lg:22px;--r-md:16px;--r-sm:12px;--pad:16px;--tab-h:62px}html[data-theme=dark]{--bg:#0a0a0b;--surface:#141417;--surface-2:#1c1c21;--border:#2a2a31;--text:#f4f4f6;--muted:#9b9ba4;--accent-text:#ffa94d;--shadow:0 10px 30px #00000073}html[data-theme=light]{--bg:#f7f4ef;--surface:#fff;--surface-2:#f1ebe1;--border:#e5ddd1;--text:#16161a;--muted:#6c6c74;--accent-text:#b45700;--shadow:0 10px 30px #3c280a1f}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{background:radial-gradient(1200px 600px at 50% -10%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 60%), var(--bg);color:var(--text);background-attachment:fixed;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,system-ui,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45;transition:background .3s,color .3s}.app{max-width:620px;padding:0 var(--pad) calc(var(--tab-h) + 28px + env(safe-area-inset-bottom));min-height:100vh;margin:0 auto}.topbar{padding:calc(12px + env(safe-area-inset-top)) 0 10px;background:linear-gradient(color-mix(in srgb, var(--bg) 88%, transparent), color-mix(in srgb, var(--bg) 60%, transparent));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:5;align-items:center;gap:10px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.2px;margin-right:auto;font-size:19px;font-weight:800}.brand span{color:var(--accent-text)}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:600;display:inline-flex}.chip:active{transform:scale(.97)}h1.title{letter-spacing:-.4px;margin:6px 0 2px;font-size:26px;font-weight:800}p.sub{color:var(--muted);margin:0 0 14px;font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);margin-bottom:12px;padding:16px}.card.tight{padding:13px 14px}.card .k{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px;font-size:12px;font-weight:700}.card h3{letter-spacing:-.2px;margin:0 0 6px;font-size:18px;font-weight:750}.row{border-top:1px solid var(--border);align-items:center;gap:10px;padding:9px 0;display:flex}.row:first-of-type{border-top:0}.row .grow{flex:1;min-width:0}.row .name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.row .meta{color:var(--muted);font-size:13px}.muted{color:var(--muted)}.small{font-size:13px}.dot{border-radius:50%;flex:none;width:10px;height:10px}.dot.green{background:var(--green)}.dot.amber{background:var(--yellow)}.dot.red{background:var(--red)}.dot.none{background:var(--border)}.badge{border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:13px;font-weight:700;display:inline-flex}.badge.green{background:color-mix(in srgb, var(--green) 18%, transparent);color:var(--green)}.badge.amber{background:color-mix(in srgb, var(--yellow) 18%, transparent);color:var(--yellow)}.badge.red{background:color-mix(in srgb, var(--red) 18%, transparent);color:var(--red)}.verdict{border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);margin-bottom:12px;padding:18px 16px}.verdict.green{border-color:color-mix(in srgb, var(--green) 45%, var(--border))}.verdict.amber{border-color:color-mix(in srgb, var(--yellow) 45%, var(--border))}.verdict.red{border-color:color-mix(in srgb, var(--red) 45%, var(--border))}.verdict .big{letter-spacing:-.3px;font-size:21px;font-weight:800}.metrics{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.metric{background:var(--surface-2);border-radius:var(--r-md);padding:11px 12px}.metric .v{letter-spacing:-.3px;font-size:19px;font-weight:750}.metric .l{color:var(--muted);font-size:12px}.week{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.day{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);text-align:center;cursor:pointer;padding:8px 4px}.day.today{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--surface-2))}.day.sel{border-color:var(--accent-text)}.day .dow{color:var(--muted);text-transform:lowercase;font-size:11px}.day .num{font-size:15px;font-weight:700}.day .marks{justify-content:center;gap:3px;min-height:10px;margin-top:5px;display:flex}.day .marks i{border-radius:50%;width:6px;height:6px;display:block}.wd{text-transform:lowercase;color:var(--muted);text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;padding:0 2px 7px;font-size:11px;font-weight:700;display:grid}.mcal{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.mcal .cell{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);min-height:62px;color:inherit;font:inherit;cursor:pointer;flex-direction:column;align-items:center;gap:1px;padding:6px 2px 5px;transition:border-color .15s,transform .1s;display:flex;position:relative;overflow:hidden}.mcal .cell:active{transform:scale(.96)}.mcal .cell.empty{pointer-events:none;background:0 0;border-color:#0000}.mcal .cell .d{letter-spacing:-.4px;font-size:18px;font-weight:800;line-height:1.05}.mcal .cell .e{font-size:14px;line-height:1.1}.mcal .cell .lbl{max-width:100%;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.1;overflow:hidden}.mcal .cell .tss{color:var(--accent-text);font-size:10px;font-weight:700}.mcal .cell.rest .lbl{opacity:.7}.mcal .cell.done{border-color:color-mix(in srgb, var(--green) 45%, var(--border))}.mcal .cell.missed{border-color:color-mix(in srgb, var(--red) 45%, var(--border))}.mcal .cell.today{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--surface-2));box-shadow:0 0 0 1px var(--accent) inset}.mcal .cell.today .d{color:var(--accent-text)}.mcal .cell.sel{border-color:var(--accent-text);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 55%, transparent)}.bars{align-items:flex-end;gap:4px;height:68px;margin-top:6px;display:flex}.bars div{background:linear-gradient(var(--accent), color-mix(in srgb, var(--accent) 40%, transparent));border-radius:5px 5px 3px 3px;flex:1;min-height:3px}.why{border-left:3px solid var(--accent);color:var(--muted);margin-top:10px;padding:2px 0 2px 12px;font-size:14px}.alt{border:1px solid var(--border);background:var(--surface-2);border-radius:var(--r-md);align-items:center;gap:10px;margin-top:8px;padding:12px 13px;display:flex}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);gap:4px;margin-bottom:14px;padding:4px;display:flex}.seg button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;flex:1;padding:9px 6px;font-size:14px;font-weight:650}.seg button.on{background:var(--accent);color:var(--accent-ink)}.btn{border-radius:var(--r-md);background:var(--accent);width:100%;color:var(--accent-ink);cursor:pointer;border:0;padding:14px 16px;font-family:inherit;font-size:16px;font-weight:700}.btn.ghost{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn:active{transform:scale(.985)}.btn[disabled]{opacity:.55}input.field{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);width:100%;color:var(--text);padding:14px;font-family:inherit;font-size:16px}input.field:focus{outline:2px solid var(--accent);outline-offset:-1px}.tabbar{height:calc(var(--tab-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border);z-index:10;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:600;text-decoration:none;display:flex}.tabbar a .ico{font-size:19px;line-height:1}.tabbar a.active{color:var(--accent-text)}.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:60vh;display:flex}.spin{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.err{border:1px solid color-mix(in srgb, var(--red) 50%, var(--border));background:color-mix(in srgb, var(--red) 12%, var(--surface));border-radius:var(--r-md);padding:13px 14px;font-size:14px}.offline{background:color-mix(in srgb, var(--yellow) 16%, var(--surface));border:1px solid color-mix(in srgb, var(--yellow) 45%, var(--border));border-radius:var(--r-md);margin-bottom:10px;padding:10px 12px;font-size:13px}.card.tap{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;border:1px solid var(--border);transition:border-color .15s,transform .1s;display:block;position:relative}.card.tap:active{border-color:color-mix(in srgb, var(--accent) 60%, var(--border));transform:scale(.995)}.row.menu{text-align:left;border:0;border-bottom:1px solid var(--border);width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;align-items:center;gap:10px;padding:12px 2px;display:flex}.row.menu:last-child{border-bottom:0}.row.menu:active{background:color-mix(in srgb, var(--accent) 10%, transparent)}.row.menu .ico{text-align:center;width:26px;font-size:20px}.row.menu .meta,.row.menu .name{display:block}.chev{opacity:.5;margin-left:auto;font-size:20px;line-height:1}.metric.tile{cursor:pointer;border:1px solid var(--border);background:var(--surface-2);color:inherit;font:inherit;text-align:left;transition:border-color .15s;position:relative}.metric.tile:active{border-color:var(--accent)}.metric.tile .u{opacity:.7;margin-left:3px;font-size:13px}.metric.tile .chev{font-size:16px;position:absolute;top:6px;right:8px}.chips{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.chip.on{border-color:var(--accent);color:var(--accent-text)}.advice{border-radius:var(--r-sm);background:color-mix(in srgb, var(--accent) 13%, transparent);margin-top:10px;padding:10px 12px;font-size:14px}.greet{align-items:center;gap:12px;margin-bottom:12px;display:flex}.greet .ico{font-size:22px}.progress{background:var(--surface-2);border-radius:6px;height:10px;overflow:hidden}.progress i{background:var(--accent);height:100%;transition:width .3s;display:block}.section-title{letter-spacing:.04em;text-transform:uppercase;opacity:.6;margin:16px 2px 8px;font-size:13px}.zones{flex-direction:column;gap:7px;margin-top:4px;display:flex}.zone{align-items:center;gap:8px;font-size:13px;display:flex}.zone .zname{opacity:.75;width:26px}.zone .zbar{background:var(--surface-2);border-radius:6px;flex:1;height:9px;overflow:hidden}.zone .zbar i{border-radius:6px;height:100%;display:block}.zone .zval{text-align:right;opacity:.85;width:58px}.card.tap .name,.card.tap .meta{display:block}.card.tap .meta{opacity:.72;margin-top:2px;font-size:13px}.netbar{text-align:left;width:100%;font:inherit;color:inherit;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-2);cursor:pointer;align-items:center;gap:8px;margin-bottom:10px;padding:9px 12px;font-size:13px;display:flex}.netbar .grow{flex:1;min-width:0}.netbar .chev{margin-left:auto}.netbar.offline{background:color-mix(in srgb, var(--yellow) 16%, var(--surface));border-color:color-mix(in srgb, var(--yellow) 45%, var(--border))}.netbar.slow{background:color-mix(in srgb, var(--blue) 14%, var(--surface));border-color:color-mix(in srgb, var(--blue) 40%, var(--border))}.netbar.syncing{background:color-mix(in srgb, var(--accent) 14%, var(--surface));border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.netbar.ok{background:color-mix(in srgb, var(--green) 16%, var(--surface));border-color:color-mix(in srgb, var(--green) 42%, var(--border))}.netbar .progress{margin-top:6px}.fresh{border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:13px;font-weight:600;display:inline-flex}.fresh.green{color:var(--green);background:color-mix(in srgb, var(--green) 15%, transparent)}.fresh.yellow{color:var(--yellow);background:color-mix(in srgb, var(--yellow) 15%, transparent)}.fresh.orange{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 18%, transparent)}.fresh.red{color:var(--red);background:color-mix(in srgb, var(--red) 15%, transparent)}.fresh.small{padding:2px 7px;font-size:11px}.btn.locked,.locked{opacity:.55;cursor:not-allowed}.modal-back{z-index:50;background:#0000008c;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:100%;max-width:440px;box-shadow:var(--shadow);padding:18px}.modal h3{margin:0 0 8px;font-size:19px}.modal .btn{margin-top:12px}ul.plain{margin:6px 0 0;padding-left:18px}ul.plain li{margin:4px 0;font-size:14px}.qrow{align-items:center;gap:10px;display:flex}.badge.status-pending{background:color-mix(in srgb, var(--yellow) 18%, transparent);color:var(--yellow)}.badge.status-sending{background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--accent-text)}.badge.status-failed{background:color-mix(in srgb, var(--red) 18%, transparent);color:var(--red)}.badge.status-done{background:color-mix(in srgb, var(--green) 18%, transparent);color:var(--green)}
