:root{
  --bg:#0b0e14;--panel:#151922;--panel-2:#1b202b;--panel-3:#11151d;
  --line:#2b3240;--line-soft:#232936;--text:#f4f6fb;--muted:#929aaa;
  --accent:#6d5dfc;--accent-2:#8a7dff;--green:#7bd321;--danger:#ff6b78;
  --shadow:0 14px 34px rgba(0,0,0,.28)
}
html,body{background:var(--bg);color:var(--text)}
body{font-family:"Microsoft YaHei",system-ui,-apple-system,Segoe UI,sans-serif;font-size:13px}
.app{min-height:100vh;background:var(--bg)}
.topbar{height:72px;padding:0 24px;background:#0d1017;border-bottom:1px solid var(--line-soft);box-shadow:none;position:sticky;top:0}
.brand-mini{font-size:20px;letter-spacing:.2px;color:#fff}
.brand-mini::first-letter{color:var(--accent-2)}
.auth-card{gap:8px}.auth-card input,.auth-card select{height:36px;min-width:112px;background:#171c26;border:1px solid #343b49;color:var(--text);border-radius:8px;color-scheme:dark}.auth-card input::placeholder{color:#7f8796}
select{background-color:#171c26;color:var(--text);color-scheme:dark}
select option,select optgroup{background-color:#151922;color:#f4f6fb}
select option:checked,select option:hover{background-color:#28214b;color:#fff}
.btn{border-color:#343c4c;background:#1a202b;color:#e7eaf0;border-radius:8px;padding:9px 13px;box-shadow:none;transition:.18s ease}
.btn:hover{border-color:#596277;background:#222a38}.btn.primary{background:var(--accent);border-color:var(--accent);box-shadow:0 5px 14px rgba(109,93,252,.25)}.btn.primary:hover{background:var(--accent-2);border-color:var(--accent-2)}.btn.purple{background:#283057;border-color:#4b5fc4;box-shadow:none}.btn.danger{background:#28171d;color:#ff9aa4;border-color:#5f2c37}.btn.ghost{background:#1a202b;border-color:#343c4c}
.layout{grid-template-columns:300px minmax(0,1fr);min-height:calc(100vh - 72px)}
.sidebar{background:#11151d;border-right:1px solid var(--line-soft);height:calc(100vh - 72px);top:72px}
.side-top{height:72px;padding:0 18px;background:#121720;border-bottom:1px solid var(--line-soft)}
.brand{font-size:18px;color:#f7f8fb}.clear-all{padding:7px 9px;border-radius:7px;background:#191f2a;color:#aab2c1;border-color:#303846;font-size:12px}
.side-section{padding:17px 18px;border-bottom:1px solid var(--line-soft)}
.project-row{font-size:15px;margin-bottom:10px}.project-row input{font-size:15px;color:#fff;width:150px}.project-select,.api-row input{height:36px;background:#171c26;color:var(--text);border-color:#343c4c;border-radius:8px}.side-actions{grid-template-columns:1fr 1fr 1fr;gap:6px}.side-actions .btn{padding:8px 5px;font-size:12px}
.section-title{font-size:14px;margin-bottom:10px;color:#edf0f6}.hint,.autosave{color:var(--muted);font-size:12px}.icon-btn{background:#1c2330;color:#9fa8b8;border:1px solid #303846}
.ratio-grid{grid-template-columns:repeat(5,1fr);gap:6px}.ratio{min-height:70px;border:1px solid #303846;background:#171c26;border-radius:8px;color:#aab2c1;font-size:11px}.ratio.active{border-color:var(--accent);background:#201d3e;color:#c6c0ff}.ratio-shape{border-width:1px}
.big-import{font-size:13px;padding:12px 10px;border-radius:9px}.reference-drop{border-color:#394355;background:#151b25;color:#abb3c2}.reference-drop.has{border-color:#547f22;background:#172218}.ref-thumb{border-color:#354052;background:#10151d}
.script-import textarea{height:220px;background:#0f141c;color:#e8ebf2;border:1px solid #3b4658;border-radius:9px;font-size:13px}.script-import textarea::placeholder{color:#737d8d}
.workspace-nav{padding:14px 12px;border-bottom:1px solid var(--line-soft)}.workspace-nav-label{padding:0 7px 8px;color:#778193;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.workspace-nav-item{display:flex;align-items:center;gap:9px;width:100%;padding:9px 9px;border:0;border-radius:7px;background:transparent;color:#aeb6c5;text-align:left;font-size:13px}.workspace-nav-item:hover{background:#1a202b;color:#fff}.workspace-nav-item.active{background:#211f45;color:#d8d4ff}.workspace-nav-dot{width:6px;height:6px;border-radius:50%;background:#566174}.workspace-nav-item.active .workspace-nav-dot{background:var(--accent-2);box-shadow:0 0 0 3px rgba(138,125,255,.16)}
.main{padding:24px 26px 48px;background:#0b0e14}.main-head{margin-bottom:16px}.main-head h1{font-size:24px;color:#f7f8fb}.main-head p{color:var(--muted);font-size:12px}.top-tools{gap:8px}
.settings{grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;margin-bottom:16px}.setting-card{background:#151922;border:1px solid var(--line-soft);border-radius:9px;padding:12px 14px;box-shadow:none}.setting-card span{color:#8f98a9;font-size:11px}.setting-card strong{font-size:20px;color:#f4f6fb}
.shot-list{gap:14px}.shot{background:#151922;border:1px solid #2c3441;border-radius:10px;box-shadow:none}.shot:focus-within{border-color:#4f46a8}.shot-head{padding:12px 15px;background:#1a202b;border-bottom:1px solid var(--line-soft)}.shot-no{width:30px;height:30px;border-radius:7px;background:#28214b;color:#bdb6ff}.shot-title{font-size:15px}.shot-meta{font-size:11px;color:#8e98a8}.shot-actions{gap:6px}.shot-actions .btn{padding:6px 9px;font-size:11px}
.shot-body{grid-template-columns:minmax(300px,1fr) minmax(390px,1.2fr);gap:16px;padding:15px}.field-label{color:#aeb6c5;font-size:12px}.shot textarea{min-height:145px;background:#0f141c;color:#eef1f7;border-color:#354052;border-radius:8px}.shot textarea::placeholder{color:#707a8b}.duration input{background:#0f141c;color:#fff;border-color:#354052}.status{background:#10151d;border-color:#2b3442;color:#8792a4;border-radius:7px}.status.ok{color:#a8e47c;background:#162617;border-color:#355c2c}.status.error{color:#ff9aa4;background:#29171d;border-color:#63313b}
.grid7{gap:7px}.grid3{gap:7px}.slot-name{color:#8c96a7}.tile{border-color:#3b4657;background:#10151d;border-radius:7px}.tile .plus{color:#677285}.file-name{color:#7d8798}
.preview{padding:13px 15px;grid-template-columns:minmax(260px,1fr) 210px;background:#11161e;border-top-color:var(--line-soft)}.preview-box{background:#090c11;border-color:#303846;color:#707b8d;border-radius:7px;min-height:155px}.preview-tools{gap:8px}.progress-line{color:#8f98a9}.bar{background:#252c37}.bar i{background:linear-gradient(90deg,var(--accent),var(--accent-2))}.debug{background:#11161e;border-top-color:var(--line-soft);padding-bottom:14px}.debug details{border-color:#2e3745;background:#151b24}.debug summary{color:#aeb7c6;padding:9px 11px}.debug pre{background:#0b0f15;color:#cdd4df}
.toast{background:#eef0f6;color:#161a23;border-radius:8px}.guest{background:#151922;border-color:var(--line);box-shadow:var(--shadow);color:var(--text)}.guest p{color:var(--muted)}.warn,.file-warning{background:#2a2115;color:#f5c780;border-color:#634923}
@media(max-width:1100px){.layout{grid-template-columns:270px 1fr}.shot-body{grid-template-columns:1fr}.preview{grid-template-columns:1fr}}
@media(max-width:760px){.topbar{height:auto;min-height:68px;background:#0d1017}.layout{display:block}.sidebar{height:auto;position:static}.main{padding:16px 12px 32px}.settings{grid-template-columns:repeat(2,1fr)}.shot-body{padding:12px}.grid7{grid-template-columns:repeat(4,1fr)}.grid3{grid-template-columns:repeat(3,1fr)}}
