@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600&family=JetBrains+Mono:wght@400;500&display=swap');
:root{
  --bg:#0f1114;--panel:#171a1f;--raise:#1f232a;--line:#2a2f37;--line-hi:#3a4150;
  --ink:#e8e9eb;--ink-2:#9aa0aa;--ink-3:#5f6672;
  --orange:#f97316;--orange-ink:#12100d;--orange-dim:rgba(249,115,22,.14);
  --green:#34d399;--red:#f87171;--amber:#fbbf24;
  --sans:'DM Sans',system-ui,sans-serif;--mono:'JetBrains Mono',ui-monospace,monospace;
  --r:10px;
}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 var(--sans)}
body{-webkit-font-smoothing:antialiased;padding-bottom:env(safe-area-inset-bottom)}
a{color:var(--orange)}button,input,select,textarea{font:inherit;color:inherit}
input,select,textarea{width:100%;min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:11px 12px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--orange)}
input::placeholder,textarea::placeholder{color:var(--ink-3)}
label{display:block;font-size:14px;color:var(--ink-2);margin:14px 0 6px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--raise);border:1px solid var(--line-hi);border-radius:8px;padding:11px 16px;cursor:pointer;font-weight:500;text-decoration:none}
.btn:hover{border-color:var(--ink-3)}.btn:disabled{opacity:.45;cursor:default}
.btn.primary{background:var(--orange);color:var(--orange-ink);border-color:var(--orange);font-weight:600}
.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}
.btn.danger{color:var(--red);border-color:rgba(248,113,113,.35)}.btn.sm{padding:6px 10px;font-size:14px}
.mono{font-family:var(--mono);font-size:.92em}
.muted{color:var(--ink-2)}.dim{color:var(--ink-3)}
.err{color:var(--red);font-size:14px;margin-top:8px;min-height:1.2em}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:8px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .2s}
.toast.on{opacity:1}
:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
