:root{
  --bg:#111315;
  --panel:#181b1f;
  --panel-alt:#1d2126;
  --panel-hover:#22272d;
  --line:#32373d;
  --line-strong:#464c54;
  --text:#eef0f2;
  --muted:#9ba2aa;
  --accent:#4d8fc9;
  --accent-hover:#5d9bd2;
  --accent-soft:#1d3345;
  --success:#62b58d;
  --danger:#d36b73;
  --warning:#c99a52;
}
*{box-sizing:border-box}
html{color-scheme:dark}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:#80b8e5;text-decoration:none}a:hover{color:#a5cff0;text-decoration:underline}
button,input,select,textarea{font:inherit}code,.mono,pre{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #78aee0;outline-offset:2px}

.topbar{position:sticky;top:0;z-index:20;height:56px;padding:0 max(18px,calc((100vw - 1400px)/2));display:flex;align-items:center;gap:24px;background:#15181b;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;color:#fff;font-size:15px;font-weight:700;white-space:nowrap}.brand:hover{text-decoration:none;color:#fff}
.brand-mark{display:grid;place-items:center;width:30px;height:30px;border:1px solid #5f6a74;background:#22272c;color:#dce5ec;border-radius:2px;font-size:11px;letter-spacing:.04em}
.nav{display:flex;align-items:stretch;height:100%;margin-left:auto}.nav>a,.link-button{display:flex;align-items:center;color:#aeb4bb;padding:0 13px;border:0;border-bottom:2px solid transparent;background:transparent;cursor:pointer;border-radius:0}.nav>a.active,.nav>a:hover,.link-button:hover{color:#fff;background:#1b1f23;border-bottom-color:var(--accent);text-decoration:none}.nav-logout{display:flex;margin:0}.nav-toggle{display:none;margin-left:auto;border:1px solid var(--line);background:#1d2125;color:#fff;font-size:19px;width:34px;height:34px;border-radius:2px}

.page-shell{width:min(1400px,calc(100% - 32px));margin:28px auto 64px}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;margin-bottom:20px}.page-heading h1{font-size:30px;line-height:1.15;margin:2px 0 6px;font-weight:700;letter-spacing:-.02em}.eyebrow{text-transform:uppercase;letter-spacing:.09em;font-weight:700;font-size:10px;color:#7f8994;margin:0}.muted,.subtle{color:var(--muted)}.subtle{font-size:12px}.narrow{max-width:880px;margin:auto}

.card{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:18px;margin-bottom:16px}.card h2{margin:0 0 12px;font-size:18px;font-weight:650}.card-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}.card-head h2{margin:1px 0}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.results-grid{grid-template-columns:1fr}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.stat-card{background:#171a1d;border:1px solid var(--line);border-left:3px solid #4b5660;border-radius:2px;padding:14px}.stat-card span{display:block;color:var(--muted);font-size:12px}.stat-card strong{display:block;font-size:26px;margin:2px 0;font-variant-numeric:tabular-nums}.stat-card small{color:#7f8790}

.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;border:1px solid #4a5159;background:#24282d;color:#edf0f2;border-radius:0;padding:8px 12px;font-weight:650;cursor:pointer;text-decoration:none}.button:hover{background:#2b3036;border-color:#5b636c;text-decoration:none;color:#fff}.button-primary{background:#356d9b;border-color:#4d8fc9;color:#fff}.button-primary:hover{background:#407dab;border-color:#62a0d3}.button-danger{background:#572a30;border-color:#8b464f;color:#ffdadd}.button-danger:hover{background:#663139}.button-wide{width:100%}.button-large{padding:10px 17px;font-size:15px}.button-small{min-height:30px;padding:5px 8px;font-size:12px}.button-row,.actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.icon-button{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);background:#22262a;color:#fff;font-size:19px;cursor:pointer;border-radius:2px}

.flash-stack{display:grid;gap:7px;margin-bottom:14px}.flash{padding:10px 12px;border:1px solid;border-radius:2px}.flash-success{border-color:#3e705a;background:#182b23}.flash-danger{border-color:#744047;background:#341d21}.flash-warning{border-color:#735d37;background:#332b1d}.error-text{color:#ef9199}.callout{background:#151a1f;border:1px solid #35404a;border-left:3px solid var(--accent);border-radius:2px;padding:12px 14px;margin:14px 0}.callout.warning{border-left-color:var(--warning)}.callout code{display:block;margin:7px 0;color:#dce4ea}

label{display:grid;gap:6px;color:#d7dadd;font-weight:600}input,select,textarea{width:100%;min-height:38px;border:1px solid #41474e;border-radius:0;background:#111417;color:#f3f4f5;padding:8px 9px;outline:none}textarea{min-height:160px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#6a9bc2;box-shadow:none}input[type=checkbox],input[type=radio]{width:16px;min-height:16px;accent-color:#5e9ad0}.form-card>label,.form-card>.form-grid{margin-bottom:13px}.form-grid{display:grid;gap:12px}.form-grid.two{grid-template-columns:repeat(2,1fr)}.form-grid.four{grid-template-columns:repeat(4,1fr)}.check-control{display:flex;align-items:center;gap:7px;font-weight:550}.check-control input{width:auto}.filter-bar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;background:#171a1d;border:1px solid var(--line);padding:12px;border-radius:3px;margin-bottom:12px}.filter-bar .search-field{min-width:220px}.rank-filter{flex:1;min-width:260px}.rank-filter>span{display:block;font-size:12px;font-weight:700;margin-bottom:6px}.chip-row{display:flex;flex-wrap:wrap;gap:5px}.chip{display:flex;align-items:center;gap:5px;border:1px solid #424950;border-radius:2px;padding:5px 8px;background:#191d21;font-size:12px;cursor:pointer}.chip:has(input:checked){background:var(--accent-soft);border-color:#4679a3}.chip input{width:14px;min-height:14px}.sim-ranks{margin-top:12px}

.table-wrap{overflow:auto;padding:0}.table-wrap table{width:100%;border-collapse:collapse;min-width:760px}.table-wrap th{position:sticky;top:0;background:#202429;color:#b6bcc3;text-transform:uppercase;letter-spacing:.045em;font-size:10px;text-align:left;padding:9px 11px;border-bottom:1px solid var(--line-strong);z-index:1}.table-wrap td{padding:10px 11px;border-bottom:1px solid #2a2f34;vertical-align:middle}.table-wrap tr:hover td{background:#1d2125}.roster-table{max-height:68vh}.check-col{width:42px}.rank-badge{display:inline-grid;place-items:center;min-width:26px;height:24px;border-radius:2px;background:#252a30;border:1px solid #3b424a;font-weight:750}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 10px}.selection-count{color:var(--muted);margin-right:auto}.table-input{border:1px solid transparent;background:transparent;padding:5px;min-height:32px}.table-input:focus{border-color:#48525c;background:#111417}.badge{display:inline-flex;border-radius:2px;padding:3px 7px;background:#30353b;color:#c8cdd2;font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.badge-complete,.badge-running{background:#1d4032;color:#8ed7b4}.badge-queued{background:#293449;color:#afc4e6}.badge-failed,.badge-cancelled{background:#4a252b;color:#f0a0a8}.badge-warning{background:#493b22;color:#e5bf77}.status-dot{border-radius:2px;padding:4px 7px;font-size:11px;font-weight:750}.status-ok{background:#1d4032;color:#8ed7b4}.status-bad{background:#4a252b;color:#f0a0a8}

.detail-list{display:grid;gap:7px;margin:0}.detail-list>div{display:flex;justify-content:space-between;border-bottom:1px solid #30353a;padding:7px 0;gap:15px}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;font-weight:650;text-align:right}.steps.compact{padding-left:18px}.steps.compact li{margin:7px 0}.empty-state{text-align:center;padding:28px;color:var(--muted)}

.sim-builder{display:grid;gap:0}.step-number{float:left;display:grid;place-items:center;width:25px;height:25px;border:1px solid #56616a;border-radius:2px;background:#252a2f;color:#dbe0e4;font-weight:800;margin-right:9px;font-size:12px}.choice-grid{display:grid;gap:9px}.choice-grid.three{grid-template-columns:repeat(3,1fr)}.choice-card{position:relative;display:block;padding:13px;border:1px solid #41484f;border-radius:0;background:#171b1f;cursor:pointer}.choice-card:hover{background:#1d2227}.choice-card:has(input:checked){border-color:#568ab5;background:#182734;border-left-width:3px}.choice-card input{position:absolute;top:12px;right:12px}.choice-card strong{display:block;font-size:14px;margin-right:22px}.choice-card span{display:block;color:var(--muted);font-weight:400;font-size:12px;margin-top:4px}.submit-bar{position:sticky;bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:14px;background:#171b1fee;border:1px solid #41484f;padding:11px 12px;border-radius:0;z-index:5}

.progress-meta{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.progress{height:10px;border-radius:1px;background:#0c0f11;overflow:hidden;border:1px solid #33383d}.progress-bar{height:100%;background:#4f8fc3;transition:width .3s ease}.job-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0}.job-stats>div{background:#14171a;border:1px solid #2d3237;border-radius:2px;padding:9px}.job-stats span{display:block;color:var(--muted);font-size:11px}.job-stats strong{font-size:18px}.error-panel{white-space:pre-wrap;background:#28181b;color:#f0a1a8;border:1px solid #693a40;padding:12px;border-radius:2px;max-height:360px;overflow:auto}

.tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:14px;gap:0}.tab-button{border:0;border-right:1px solid #32373c;border-top:1px solid #32373c;background:#181b1e;color:#aeb4ba;padding:9px 13px;cursor:pointer;border-radius:0}.tab-button:first-child{border-left:1px solid #32373c}.tab-button.active{color:#fff;background:#22272c;border-bottom:2px solid var(--accent);margin-bottom:-1px}.tab-panel[hidden]{display:none!important}
.chart-card select{max-width:320px}.chart-wrap{position:relative;height:420px}.chart-wrap.tall{height:600px}.chart-empty{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:var(--muted);padding:30px;pointer-events:none}.chart-empty.hidden{display:none}.code-card summary{cursor:pointer;font-weight:700}.code-card pre{max-height:620px;overflow:auto;background:#0e1113;padding:12px;border:1px solid #2b3035;border-radius:2px;color:#d8dde1}.modal{width:min(600px,calc(100% - 30px));border:1px solid #49515a;border-radius:0;background:#181c20;color:#fff;padding:18px}.modal::backdrop{background:#090b0dcc}.modal form{display:grid;gap:12px}
.login-page{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(420px,100%);background:#181b1f;border:1px solid #3c4248;border-radius:0;padding:24px}.login-brand{margin-bottom:22px}.login-card h1{font-size:25px;margin:0 0 6px}.login-card label{margin:17px 0}.login-card .flash{margin:10px 0}

.profile-source{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.profile-editor textarea{min-height:360px;font-size:12px;line-height:1.35}.inline-note{font-size:12px;color:var(--muted);margin:7px 0}.compat-warning{border-left-color:#c99a52}.form-section-title{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#929aa2;margin:18px 0 8px}

.job-stats-four{grid-template-columns:repeat(4,minmax(0,1fr))}.job-stats-five{grid-template-columns:repeat(5,minmax(0,1fr))}.cpu-note{margin:12px 0 15px;padding:9px 11px;border-radius:2px;background:#151a1f;border:1px solid #34404a;color:var(--muted)}
.task-card-head{align-items:flex-start}.task-summary-pills{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.task-pill{display:inline-flex;gap:5px;align-items:center;padding:5px 8px;border-radius:2px;border:1px solid #3a4148;background:#22272c;color:#c1c7cd;font-size:11px}.task-pill-running{background:#1c3535;color:#92d4ce}.task-pill-complete{background:#1d3b30;color:#8fd4b4}.task-pill-failed{background:#49252a;color:#efa0a8}.task-filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:13px 0}.task-filters label:not(.check-control){min-width:180px}.task-baseline-toggle{padding-bottom:8px}.task-table-wrap{max-height:58vh;border:1px solid #343a40;border-radius:2px}.task-table{min-width:780px!important}.task-table tbody tr.task-running td{background:#1c2d2d}.task-table tbody tr.task-failed td{background:#321e22}.task-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:750;text-transform:uppercase}.task-status-dot{width:7px;height:7px;border-radius:1px;background:#7f8790}.task-status-running .task-status-dot{background:#62b6a5}.task-status-complete .task-status-dot{background:#62b58d}.task-status-failed .task-status-dot{background:#d36b73}.task-status-queued .task-status-dot{background:#8797b0}.task-duration{font-variant-numeric:tabular-nums;color:var(--muted)}

@media(max-width:980px){.stat-grid{grid-template-columns:repeat(2,1fr)}.grid.two,.choice-grid.three{grid-template-columns:1fr}.form-grid.four{grid-template-columns:repeat(2,1fr)}.nav-toggle{display:block}.nav{display:none;position:absolute;top:56px;left:0;right:0;height:auto;background:#15181b;border-bottom:1px solid var(--line);padding:7px 12px;flex-direction:column;align-items:stretch}.nav.open{display:flex}.nav>a,.link-button{padding:10px 8px;border-bottom:0;border-left:2px solid transparent}.nav>a.active{border-left-color:var(--accent)}.page-shell{width:min(100% - 22px,1400px)}}
@media(max-width:620px){.page-heading{flex-direction:column}.stat-grid{grid-template-columns:1fr 1fr}.form-grid.two,.form-grid.four{grid-template-columns:1fr}.submit-bar{position:static;flex-direction:column;align-items:stretch}.button-large{width:100%}.chart-wrap.tall{height:480px}.topbar{height:52px;padding:0 10px}.nav{top:52px}.page-shell{margin-top:18px}.card{padding:13px}.stat-card strong{font-size:23px}.job-stats-four,.job-stats-five{grid-template-columns:repeat(2,1fr)}.task-summary-pills{justify-content:flex-start}.task-card-head{flex-direction:column}.tabs{overflow-x:auto}.tab-button{white-space:nowrap}}

/* Character profile override editor */
.top-gap{margin-top:12px}
.override-section{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}
.override-section:first-of-type{border-top:0;padding-top:0;margin-top:0}
.override-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}
.override-heading h3{margin:0 0 3px;font-size:15px}
.override-heading p{margin:0}
.field-source{display:grid;grid-template-columns:54px minmax(0,1fr);gap:8px;align-items:start;margin:8px 0 0;color:var(--muted);font-size:12px}
.field-source code{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c8ced5}
.gear-override-grid{display:grid;border:1px solid var(--line);border-bottom:0}
.gear-override-row{display:grid;grid-template-columns:120px minmax(0,.9fr) minmax(280px,1.1fr);gap:12px;align-items:center;padding:9px 10px;border-bottom:1px solid var(--line);background:#15181b}
.gear-override-row:nth-child(even){background:#171b1f}
.gear-slot{display:grid;gap:1px}.gear-slot strong{font-size:13px}.gear-slot span{font-size:10px;color:var(--muted);font-family:"SFMono-Regular",Consolas,monospace}
.gear-base{min-width:0;display:grid;gap:2px}.gear-base span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#757e87}.gear-base code{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#aeb6be;font-size:11px}
.gear-input{display:grid;grid-template-columns:60px minmax(0,1fr);align-items:center;gap:8px;font-size:11px;color:var(--muted)}
.gear-input input{min-width:0}
.inline-danger-form{display:inline-block;margin-top:8px}
.button:disabled{opacity:.42;cursor:not-allowed;background:#23272b;border-color:#3b4147;color:#8d949b}
@media(max-width:900px){.gear-override-row{grid-template-columns:100px 1fr}.gear-input{grid-column:1/-1;grid-template-columns:100px 1fr}.gear-base{min-width:0}}
@media(max-width:620px){.gear-override-row{grid-template-columns:1fr}.gear-input{grid-column:auto;grid-template-columns:1fr}.field-source{grid-template-columns:1fr}.override-heading{display:grid}}
.effective-profile-preview{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.effective-profile-preview summary{cursor:pointer;font-weight:650;color:#cbd2d8}.effective-profile-preview pre{margin:10px 0 0;max-height:420px;overflow:auto;background:#101316;border:1px solid var(--line);padding:12px;font-size:11px;white-space:pre-wrap}
.compact-textarea{min-height:96px}.quick-paste{background:#14181c;border:1px solid var(--line);padding:12px;margin-top:0}.quick-paste + .override-section{margin-top:16px}

/* v1.4 — spec talent library */
.section-rule{border:0;border-top:1px solid var(--line);margin:22px 0}
.spec-fallback-form{display:grid;gap:12px}.spec-group{padding:0}.spec-group .card-head{padding:14px 16px;border-bottom:1px solid var(--line);margin:0}.spec-fallback-list{display:grid}.spec-fallback-row{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:16px;padding:11px 16px;border-bottom:1px solid var(--line);font-weight:400}.spec-fallback-row:last-child{border-bottom:0}.spec-label{display:grid;gap:2px}.spec-label small{color:var(--muted);font-size:11px}.spec-fallback-row input{min-width:0}
@media(max-width:700px){.spec-fallback-row{grid-template-columns:1fr;gap:7px}}

/* v1.5 — per-task SimulationCraft HTML reports */
.task-report-cell{white-space:nowrap;width:1%}
.task-report-button{min-height:30px;padding:5px 9px;font-size:12px;border-radius:2px}
.task-table th:last-child,.task-table td:last-child{text-align:right}

/* v1.6: trinket/spec eligibility */
.compatibility-mode { margin-bottom: 18px; }
.compat-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); margin-bottom:16px; }
.spec-compat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px; }
.spec-compat-group { min-width:0; margin:0; padding:12px; border:1px solid var(--border); border-radius:2px; }
.spec-compat-group legend { padding:0 6px; font-weight:700; }
.spec-check { display:flex; align-items:flex-start; gap:9px; padding:7px 4px; cursor:pointer; }
.spec-check input { margin-top:3px; }
.spec-check span { display:flex; flex-direction:column; line-height:1.2; }
.spec-check small { color:var(--muted); margin-top:3px; }
.spec-check:hover { background:rgba(255,255,255,.025); }
@media (max-width:700px){ .compat-toolbar { align-items:flex-start; flex-direction:column; } }
