.workspace-nav { display:flex; gap:8px; flex-wrap:wrap; }
.workspace-nav a { text-decoration:none; color:var(--muted); padding:10px 16px; border-radius:7px; border:1px solid var(--line); background:#fff; }
.workspace-nav a.active { background:#e9f5f2; color:#0f695e; border-color:#98c9bc; font-weight:700; }
.offline-layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:18px; padding:22px; max-width:1800px; margin:auto; }
.setup-panel { align-self:start; position:sticky; top:16px; }
.offline-content { display:grid; gap:18px; min-width:0; }
.setup-panel label { display:grid; gap:6px; margin:15px 0; font-size:12px; color:var(--muted); }
.setup-panel select, .setup-panel input { width:100%; min-width:0; }
select, input, button { font:inherit; }
.offline-layout select, .offline-layout input:not([type=range]), .offline-layout button, .inline-control select { border:1px solid var(--line); border-radius:6px; padding:8px; background:white; color:var(--text); }
button { cursor:pointer; }
button:disabled { opacity:.55; cursor:default; }
#offline_start { width:100%; margin-top:18px; background:#137c6c; color:white; border:0; font-weight:650; }
.setup-panel .panel-head { flex-direction:column; align-items:flex-start; gap:10px; }
details { padding:12px 0; border-top:1px solid var(--line); }
summary { cursor:pointer; font-size:13px; }
.input-pair { display:flex; gap:8px; }
.job-status { font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
progress { width:100%; accent-color:#137c6c; }
.offline-chart-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.offline-chart-grid > * { min-width:0; }
.offline-chart-grid canvas { width:100%; background:#fbfcfd; border:1px solid var(--line); border-radius:6px; display:block; }
.summary-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:18px 0; }
.summary-card { padding:14px; border-radius:7px; background:#f4f7f7; }
.summary-card b { display:block; font-size:25px; margin-bottom:6px; font-variant-numeric:tabular-nums; }
.summary-card span { font-size:12px; color:var(--muted); }
.source-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; }
.source-card { overflow-wrap:anywhere; }
.source-card button { margin-top:10px; }
.table-wrap { overflow:auto; margin-top:20px; }
.table-wrap table { border-collapse:collapse; width:100%; font-size:12px; }
.table-wrap td, .table-wrap th { padding:10px; text-align:left; border-bottom:1px solid var(--line); white-space:nowrap; }
.inline-control { display:flex; align-items:center; gap:8px; font-size:12px; }
.sample-controls { display:flex; gap:14px; flex-wrap:wrap; align-items:center; margin:12px 0; }
.sample-controls label { flex:1; display:flex; gap:10px; align-items:center; min-width:180px; font-size:12px; }
.sample-controls input { flex:1; min-width:80px; }
.offline-chart-grid figure { margin:0; background:#f4f7f7; border-radius:7px; padding:10px; }
.offline-chart-grid figure img { width:100%; height:240px; object-fit:contain; }
.offline-chart-grid figcaption { font-size:12px; color:var(--muted); margin-top:8px; }
.export-links { display:flex; gap:8px; flex-wrap:wrap; font-size:12px; }
.export-links a { color:#137c6c; }
.contract-content { max-height:320px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; background:#f7f9fa; padding:14px; border-radius:6px; font-size:12px; }
.model-jobs { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
@media (max-width:1100px) { .offline-layout { grid-template-columns:230px minmax(0,1fr); padding:14px; } .offline-chart-grid { grid-template-columns:1fr; } .summary-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:700px) { .offline-layout { grid-template-columns:1fr; } .setup-panel { position:static; } .workspace-nav a { padding:8px 10px; } }
.weight-actions {display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:18px 0}
.weight-actions button {width:auto}
.weight-check {display:flex;align-items:center;gap:8px}
.weight-check input {width:auto}
#weight_table button {padding:4px 9px;background:#e9f2ef;color:#285d53;border:0}
#weight_cell button {width:auto;margin-top:5px}
#weight_cloud {width:100%;height:auto;cursor:crosshair;background:#f8fbfa;border-radius:8px}
