:root{color-scheme:light dark;--bg:#f3efe4;--surface:#fffdf8;--surface-alt:#ebe6da;--surface-raised:#fffdf8;--ink:#1b1712;--muted:#6b6358;--line:#d9d1c3;--brand:#1f5c45;--brand-alt:#164736;--brand-soft:#e4efe9;--ok:#1f5c45;--ok-soft:#e4efe9;--warn:#b4780f;--warn-soft:#fff4e5;--danger:#b0402a;--danger-soft:#fff4f2;--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-in-out:cubic-bezier(0.77,0,0.175,1);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--tg-top:var(--tg-content-safe-area-inset-top,0px);--tg-bottom:var(--tg-content-safe-area-inset-bottom,0px);--font:system-ui,-apple-system,"SF Pro Text","Segoe UI",sans-serif;--touch-min:44px}html[data-theme=dark]{--bg:#141210;--surface:#1e1b17;--surface-alt:#25211c;--surface-raised:#25211c;--ink:#f3efe4;--muted:#a39a8c;--line:#2f2b26;--brand:#3d9a72;--brand-alt:#1f5c45;--brand-soft:#164736;--ok:#6ec99a;--ok-soft:#164736;--warn:#e0ac4a;--warn-soft:#3a2e14;--danger:#e0705c;--danger-soft:#3a1c18}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.45;min-height:100dvh;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.02em}h1{font-size:24px;line-height:1.15}h2{font-size:17px}p{margin:0}.app{min-height:100dvh;padding:calc(12px + var(--safe-top) + var(--tg-content-safe-area-inset-top, 0px) + var(--tg-safe-top, 0px)) calc(16px + var(--tg-content-safe-area-inset-right, 0px) + var(--tg-safe-right, 0px)) calc(84px + var(--safe-bottom) + var(--tg-content-safe-area-inset-bottom, 0px) + var(--tg-safe-bottom, 0px)) calc(16px + var(--tg-content-safe-area-inset-left, 0px) + var(--tg-safe-left, 0px));max-width:480px;margin:0 auto}.brand-mark{display:grid;grid-gap:2px;gap:2px;margin-bottom:4px}.brand-mark .word{font-size:28px;font-weight:750;letter-spacing:-.04em;line-height:1;color:var(--ink)}.brand-mark .tag{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.02em}.stack{display:grid;grid-gap:16px;gap:16px}.section{display:grid;grid-gap:8px;gap:8px}.gap-sm{gap:8px}.hero{background:var(--surface-raised);border:1px solid var(--line);border-radius:20px;padding:20px 18px;display:grid;grid-gap:12px;gap:12px}.panel{padding:16px}.list,.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px}.list{padding:4px 16px}.muted{font-size:14px}.meta,.muted{color:var(--muted)}.meta{font-size:12px}.lead{font-size:15px;color:var(--muted);max-width:34ch}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:650;padding:5px 10px;border-radius:999px;width:-moz-fit-content;width:fit-content}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.brand{background:var(--brand-soft);color:var(--brand)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.neutral{background:var(--surface-alt);color:var(--muted)}.pill.danger{background:var(--danger-soft);color:var(--danger)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:12px;min-height:var(--touch-min);padding:12px 16px;background:var(--brand);color:#f3efe4;font:inherit;font-weight:650;cursor:pointer;width:100%;transition:transform .14s var(--ease-out),opacity .14s var(--ease-out),background .16s var(--ease-out)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.danger{background:var(--danger)}.btn.ghost{background:transparent;color:var(--muted)}.btn.compact,.btn.ghost{min-height:var(--touch-min)}.btn.compact{width:auto;padding:8px 14px;white-space:nowrap}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--touch-min);padding:12px 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.shortcut-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.shortcut{display:grid;grid-gap:4px;gap:4px;align-content:start;min-height:72px;padding:14px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:inherit;text-align:left;transition:transform .14s var(--ease-out),background .16s var(--ease-out)}.shortcut:active{transform:scale(.97)}.shortcut strong{font-size:14px}.shortcut span{font-size:12px;color:var(--muted)}input,textarea{font:inherit;width:100%;min-height:var(--touch-min);padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}textarea{min-height:120px;resize:vertical}.err{border:1px solid color-mix(in srgb,var(--danger) 35%,var(--line));background:var(--danger-soft);color:var(--ink);border-radius:12px}.banner,.err{padding:12px 14px;font-size:14px}.banner{border:1px solid var(--line);background:var(--surface-alt);border-radius:12px}.banner.warn{border-color:color-mix(in srgb,var(--warn) 35%,var(--line));background:var(--warn-soft)}.nav{position:fixed;left:0;right:0;bottom:0;padding:8px 12px calc(8px + var(--safe-bottom) + var(--tg-bottom));background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);grid-template-columns:repeat(5,1fr);grid-gap:4px;gap:4px;max-width:480px;margin:0 auto}.nav,.nav a{display:grid}.nav a{color:var(--muted);text-align:center;font-size:11px;font-weight:650;min-height:var(--touch-min);place-content:center;padding:6px 4px;border-radius:12px;transition:background .16s var(--ease-out),color .16s var(--ease-out)}.nav a[aria-current=page]{color:var(--brand);background:var(--brand-soft)}.skeleton{background:linear-gradient(90deg,var(--surface-alt),var(--line),var(--surface-alt));background-size:200% 100%;animation:shimmer 1.1s linear infinite;border-radius:10px;height:14px}.skeleton.lg{height:28px}.skeleton.block{height:96px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.seg{grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.empty,.seg{display:grid}.empty{grid-gap:6px;gap:6px;padding:20px 4px;text-align:center}.empty strong{font-size:15px}.empty p{color:var(--muted);font-size:14px}@media (prefers-reduced-motion:reduce){.btn,.nav a,.shortcut{transition:none}.btn:active,.shortcut:active{transform:none}.skeleton{animation:none;background:var(--surface-alt)}}@media (hover:hover) and (pointer:fine){.nav a:hover{color:var(--ink)}}