:root,html[data-theme="light"]{
  --bg:#F2F5F7;--surf:#fff;--ink:#14202B;--onink:#fff;--mute:#4A5B69;
  --line:#DCE3E8;--line2:#E6EBEF;--line3:#B8C4CD;--head:#F7F9FA;--swoff:#8696A3;
  --accent:#0F766E;--accentfg:#0B5F59;--amber:#B45309;
  --ok-bg:#DCF3EA;--ok-fg:#0B5F40;--info-bg:#E1EDFB;--info-fg:#1C4F8F;
  --warn-bg:#FCEBC8;--warn-fg:#7A4A00;--bad-bg:#FADDD9;--bad-fg:#9B1C12;
  --mute-bg:#E6EBEF;--mute-fg:#3B4A57;
}
html[data-theme="dark"]{
  --bg:#0E151B;--surf:#17212A;--ink:#E6EDF2;--onink:#0E151B;--mute:#A3B3C0;
  --line:#2A3844;--line2:#223039;--line3:#3F505D;--head:#1C2832;--swoff:#5A6B78;
  --accent:#2DD4BF;--accentfg:#5EEAD4;--amber:#F59E0B;
  --ok-bg:#123B2E;--ok-fg:#7EE0B5;--info-bg:#13304F;--info-fg:#9CC4F5;
  --warn-bg:#4A3410;--warn-fg:#F5C36B;--bad-bg:#4A1A16;--bad-fg:#FFA9A0;
  --mute-bg:#26333E;--mute-fg:#B8C7D3;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
h1{margin:0 0 6px;font-size:24px;font-weight:600}
a{color:var(--accentfg)}
button{font:inherit;cursor:pointer}
.shell{max-width:1320px;margin:0 auto;padding:0 20px}
.main{padding-top:20px;padding-bottom:48px}
.muted{color:var(--mute)}
.small{font-size:12px}
.lead{margin:0 0 16px}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace}

.top{background:var(--surf);border-bottom:1px solid var(--line)}
.top-in{display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px}
.brand{display:flex;align-items:center;gap:10px;height:56px}
.logo{width:28px;height:28px;border-radius:8px;background:#0F766E;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600}
.nav{display:flex;flex-wrap:wrap}
.tab{padding:0 16px;height:56px;display:flex;align-items:center;color:var(--mute);font-weight:500;text-decoration:none;border-bottom:3px solid transparent}
.tab:hover{color:var(--ink)}
.tab-on{color:var(--accentfg);border-bottom-color:var(--accent)}
.top-right{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.top-right form{margin:0}

.card{background:var(--surf);border:1px solid var(--line);border-radius:12px}
.pad{padding:16px 18px}
.card-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px}
.h{margin:0 0 10px;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--mute)}
.card-head .h{margin:0}

.btn{border:1px solid var(--line3);background:var(--surf);color:var(--ink);border-radius:8px;padding:0 14px;height:40px;font-weight:500;display:inline-flex;align-items:center}
.btn:hover{background:var(--bg)}
.btn-main{background:#0F766E;border-color:#0F766E;color:#fff}
.btn-main:hover{background:#0B5F59}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.chip{border:1px solid var(--line3);background:var(--surf);border-radius:999px;padding:0 14px;height:36px;display:inline-flex;align-items:center;color:var(--ink);text-decoration:none}
.chip-on{background:var(--ink);border-color:var(--ink);color:var(--onink)}

.tag{display:inline-block;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600;white-space:nowrap}
.t-ok{background:var(--ok-bg);color:var(--ok-fg)}
.t-info{background:var(--info-bg);color:var(--info-fg)}
.t-warn{background:var(--warn-bg);color:var(--warn-fg)}
.t-bad{background:var(--bad-bg);color:var(--bad-fg)}
.t-mute{background:var(--mute-bg);color:var(--mute-fg)}

.cols{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}
.col-main{flex:999 1 620px;min-width:0}
.col-side{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:20px}
.row{display:grid;gap:12px;align-items:center;padding:12px 18px;border-top:1px solid var(--line2)}
.task{grid-template-columns:minmax(0,1fr) auto}
.task form{margin:0}
.line{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:2px}
.kv{display:flex;justify-content:space-between;gap:12px;padding:5px 0}
.auto{grid-template-columns:56px minmax(0,2fr) minmax(0,1.4fr) minmax(0,1.6fr);padding-top:16px;padding-bottom:16px}
.auto form{margin:0}
.forbid{margin-top:20px;display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between}

.sw{position:relative;width:48px;height:28px;border-radius:999px;border:0;padding:0}
.sw i{position:absolute;top:3px;width:22px;height:22px;border-radius:50%;background:#fff}
.sw-on{background:var(--accent)}.sw-on i{left:23px}
.sw-off{background:var(--swoff)}.sw-off i{left:3px}

.tbl{overflow-x:auto}
table{width:100%;border-collapse:collapse;min-width:820px}
th{text-align:left;padding:12px 18px;background:var(--head);font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--mute)}
td{padding:12px 18px;border-top:1px solid var(--line2);vertical-align:top}
.bar-head{display:flex;justify-content:space-between;margin-bottom:4px}
.bar{position:relative;height:8px;border-radius:4px;background:var(--line2)}
.bar-fill{height:8px;border-radius:4px}
.bar-mark{position:absolute;left:83.3%;top:-3px;width:2px;height:14px;background:var(--ink)}

.login{max-width:380px;margin:40px auto}
.login label{display:block;margin:12px 0 4px;font-weight:500}
.login input[type=text],.login input[type=password]{width:100%;height:40px;padding:0 12px;border:1px solid var(--line3);border-radius:8px;background:var(--surf);color:var(--ink);font:inherit}
.login .btn{margin-top:16px}
.err{color:var(--bad-fg);background:var(--bad-bg);padding:8px 12px;border-radius:8px}

@media (max-width:760px){
  .auto{grid-template-columns:56px minmax(0,1fr)}
}

.okmsg{color:var(--ok-fg);background:var(--ok-bg);padding:8px 12px;border-radius:8px}
.err,.okmsg{margin:0 0 12px}
.form label{display:block;margin:10px 0 4px;font-weight:500}
.form label.inline{display:flex;gap:8px;align-items:center;font-weight:400}
.form input[type=text],.form input[type=file]{display:block;width:100%;margin-top:4px;min-height:40px;padding:6px 12px;border:1px solid var(--line3);border-radius:8px;background:var(--surf);color:var(--ink);font:inherit}
.form .btn{margin-top:14px}
.form textarea{display:block;width:100%;margin-top:4px;padding:8px 12px;border:1px solid var(--line3);border-radius:8px;background:var(--surf);color:var(--ink);font:inherit;resize:vertical}
.form .btn+.btn{margin-left:8px}
.form select{display:block;width:100%;margin-top:4px;min-height:40px;padding:6px 12px;border:1px solid var(--line3);border-radius:8px;background:var(--surf);color:var(--ink);font:inherit}
.ai-row{display:flex;gap:8px;align-items:center;margin-top:10px}.ai-row select{min-height:40px;padding:6px 12px;border:1px solid var(--line3);border-radius:8px;background:var(--surf);color:var(--ink);font:inherit}
.provgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;align-items:start}
.ai-row form{margin:0}
