/* Tokens, page layout, form controls and shared overlays. Components live in components.css. */
:root{--bg:#f6f5f2;--card:#fff;--ink:#17171a;--mute:#6b6a70;--line:#e4e2dc;--acc:#2f5bea;--acc2:#e8eefe;--warn:#a35a00;--warnbg:#fff3df;--ok:#12784a;--okbg:#e3f5ec;--bad:#a8321f;--badbg:#fbe7e3;color-scheme:light;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#121214;--card:#1c1c20;--ink:#ececef;--mute:#9a99a2;--line:#2c2c33;--acc:#7f9cff;--acc2:#1f2740;--warn:#f0b35c;--warnbg:#3a2a12;--ok:#5fd39b;--okbg:#14301f;--bad:#ff8a74;--badbg:#3a1c17;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#121214;--card:#1c1c20;--ink:#ececef;--mute:#9a99a2;--line:#2c2c33;--acc:#7f9cff;--acc2:#1f2740;--warn:#f0b35c;--warnbg:#3a2a12;--ok:#5fd39b;--okbg:#14301f;--bad:#ff8a74;--badbg:#3a1c17;color-scheme:dark}
*{box-sizing:border-box}
[hidden]:not([hidden=until-found i]){display:none!important}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
img{max-width:100%}
.wrap{max-width:1280px;margin:0 auto;padding:20px 16px 60px}
.head{display:flex;gap:8px;align-items:flex-start}
h1{font-size:22px;margin:0 0 2px;flex:1}
.sub{color:var(--mute);margin:0 0 16px}
.tabs{display:flex;gap:6px;margin:0 0 14px;flex-wrap:wrap}
.tab{border:1px solid var(--line);background:var(--card);color:var(--ink);padding:7px 14px;border-radius:999px;cursor:pointer;font:inherit}
.tab[aria-selected="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;align-items:center}
input,select,textarea{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 9px}
.bar input[type=search]{flex:1 1 220px;min-width:0}
.bar label{display:flex;gap:6px;align-items:center;color:var(--mute)}
.btn{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:7px 12px;cursor:pointer;font:inherit}
.btn.pri{background:var(--acc);border-color:var(--acc);color:#fff}
.btn:disabled{opacity:.6;cursor:default}
.count{color:var(--mute);margin-left:auto}
.mute{color:var(--mute)}
.empty{padding:30px;text-align:center;color:var(--mute);background:var(--card);border:1px dashed var(--line);border-radius:12px}
.note{background:var(--warnbg);color:var(--warn);padding:10px 12px;border-radius:10px;margin-bottom:12px;font-size:13px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;padding:16px;z-index:9}
.mbox{background:var(--card);border-radius:14px;padding:18px;width:100%;max-width:520px;max-height:90vh;overflow:auto}
.mbox h2{margin:0 0 12px;font-size:17px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--mute)}
.grid .full{grid-column:1/-1}
.actions{display:flex;gap:8px;justify-content:flex-end}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:8px;opacity:0;transition:opacity .2s;pointer-events:none;max-width:calc(100% - 32px)}
.toast.on{opacity:1}
@media (max-width:820px){.grid{grid-template-columns:1fr}}
