:root {
  --bg: #f6f6f4; --panel: #ffffff; --line: #e3e2de; --text: #1d1d1b; --muted: #75746f;
  --accent: #2f6fde; --accent-2: #e8effc;
  --a: #ff453a; --b: #0a84ff;
  --sev-critical: #c62828; --sev-major: #ef6c00; --sev-minor: #9e9d24;
  --hard: #e5484d; --clearance: #f5a524; --uncertain: #8e4ec6; --failed: #6f6f6f;
  font: 13px/1.4 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: var(--text);
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; background: var(--bg); }
body { display: flex; flex-direction: column; overflow: hidden; }
button, select, input { font: inherit; }
button, .button { border: 1px solid var(--line); background: var(--panel); border-radius: 6px; padding: 4px 10px; cursor: pointer; color: var(--text); text-decoration: none; display: inline-block; }
button:hover, .button:hover { border-color: #bbb; }
button.primary { background: var(--accent); border-color: var(--accent); color: #fff; }
button.active { background: var(--accent-2); border-color: var(--accent); }
button:disabled { opacity: .5; cursor: default; }
button.small { padding: 1px 7px; font-size: 12px; }
select, input[type=text], input:not([type]), input[type=number] { border: 1px solid var(--line); border-radius: 6px; padding: 3px 6px; background: #fff; min-width: 0; }
a { color: var(--accent); cursor: pointer; }
.muted { color: var(--muted); }
.small-text { font-size: 11px; }
.mono { font-family: ui-monospace, Consolas, monospace; font-size: 12px; word-break: break-all; }
.row { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin: 6px 0; }
.row.end { justify-content: flex-end; }
.check { display: inline-flex; gap: 4px; align-items: center; white-space: nowrap; }
.warn { background: #fff6e0; border: 1px solid #f3d58a; padding: 6px 8px; border-radius: 6px; margin: 4px 0; }
.error { color: #c62828; min-height: 1.2em; }

.topbar { display: flex; align-items: center; gap: 14px; padding: 8px 14px; background: var(--panel); border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.brand { font-weight: 700; font-size: 15px; letter-spacing: .2px; }
.model-pick select { max-width: 360px; }
.tabs { display: flex; gap: 4px; }
.tabs button { border-color: transparent; }
.tabs button.active { background: var(--accent-2); border-color: var(--accent); }
.status-line { margin-left: auto; color: var(--muted); font-size: 12px; max-width: 520px; }
.status-line.err { color: #c62828; }

main { flex: 1; min-height: 0; position: relative; }
.tab { display: none; height: 100%; }
.tab.active { display: flex; }
#tab-dashboard.active, #tab-mapping.active { display: block; overflow: auto; }
.panel { background: var(--panel); border-color: var(--line); }
.left { width: 380px; border-right: 1px solid var(--line); display: flex; flex-direction: column; padding: 8px; gap: 6px; min-height: 0; }
.right { width: 360px; border-left: 1px solid var(--line); padding: 10px 12px; overflow: auto; }
details summary { font-weight: 600; cursor: pointer; padding: 2px 0; }
.job-settings label { font-size: 12px; display: inline-flex; gap: 4px; align-items: center; }
.job-settings input[type=number] { width: 70px; }
.tests-head { margin-top: 6px; font-weight: 600; display: flex; justify-content: space-between; }
.test-row { display: grid; grid-template-columns: 1fr auto 1fr 74px 54px auto; gap: 3px; align-items: center; margin: 3px 0; }
.test-row input { width: 100%; }
.test-row .cross { grid-column: 1 / -1; font-size: 11px; color: var(--muted); }
.test-row .cross input { width: auto; }
.src-tag { color: var(--accent); }

[hidden] { display: none !important; }
/* ---- clean top bar: model dropdown + Upload / Merge / 3D Viewer ---- */
:root { --orange: #f5a65b; --orange-soft: #fff6ee; --orange-text: #b2560f; }
.topbar { gap: 10px; }
.model-select { min-width: 260px; max-width: 420px; padding: 5px 8px; border-radius: 6px; }
.nav-btn { background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 5px 14px; font-weight: 500; }
.nav-btn:hover { border-color: #bbb; background: #fafafa; }
.nav-btn.orange, .tabs .nav-btn.orange.active { background: #fff; border: 1.5px solid var(--orange); color: var(--text); }
.nav-btn.orange.active { box-shadow: inset 0 -2px 0 var(--orange); }
.nav-btn.orange:hover { background: var(--orange-soft); }
.tabs { align-items: center; gap: 8px; }
.more-views { border: 1px solid var(--line); border-radius: 6px; padding: 5px 6px; background: #fff; color: var(--muted); width: 92px; min-width: 0; }
.orange-outline { background: #fff; border: 1.5px solid var(--orange); color: var(--orange-text); font-weight: 600; }
.orange-outline:hover { background: var(--orange-soft); }

/* ---- tests: File A vs File B with clash count ---- */
.test-row.files { grid-template-columns: 1fr auto 1fr 52px; grid-template-areas: "a vs b count" "type clr del del"; row-gap: 3px; padding: 5px; border: 1px solid #eeede9; border-radius: 6px; }
.test-row.files .fa { grid-area: a; } .test-row.files .vs { grid-area: vs; color: var(--muted); font-size: 11px; }
.test-row.files .fb { grid-area: b; } .test-row.files .tcount { grid-area: count; text-align: right; }
.test-row.files .ttype { grid-area: type; } .test-row.files .tclr { grid-area: clr; } .test-row.files .tdel { grid-area: del; justify-self: end; }
.tcount b { display: inline-block; min-width: 30px; text-align: center; padding: 1px 6px; border-radius: 10px; background: #fde8e8; color: #c62828; font-size: 12px; }
.tcount b.zero { background: #e3f4e6; color: #2e7d32; } .tcount b.stale { background: #eee; color: #888; }

/* ---- viewer: hideable toolbar + layers, full screen ---- */
.toolbar { right: 300px; }
.toolbar.hidden, .layers.hidden { display: none; }
.view-controls { position: absolute; top: 8px; right: 8px; display: flex; gap: 4px; z-index: 5; }
.vc-btn { background: rgba(255,255,255,.95); border: 1px solid var(--line); border-radius: 6px; padding: 4px 9px; font-size: 12px; }
.vc-btn.orange { border: 1.5px solid var(--orange); }
.vc-btn.small { padding: 0 6px; font-size: 11px; }
.stage .status-line { position: absolute; right: 8px; bottom: 6px; max-width: 55%; margin: 0; background: rgba(255,255,255,.85); padding: 2px 8px; border-radius: 6px; font-size: 11px; pointer-events: none; text-align: right; }
.layers-head { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.layers-head button { margin-left: auto; }
.stage:fullscreen { background: var(--bg); }
.stage:fullscreen #canvas-host { inset: 0; }
body.focus-mode .left, body.focus-mode .right, body.focus-mode .splitter { display: none; }

/* ---- left panel: resizable, file-pair tests ---- */
.left { width: var(--left-w, 420px); min-width: 300px; max-width: 70vw; overflow: auto; }
.splitter { width: 6px; cursor: col-resize; background: var(--line); flex: none; }
.splitter:hover, .splitter.drag { background: var(--orange); }
.sec-head { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.sec-head button { margin-left: auto; }
.pair-list { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.pair { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 6px; padding: 6px 10px; cursor: pointer; border-bottom: 1px solid #f0efeb; font-size: 13px; }
.pair:last-child { border-bottom: 0; }
.pair:hover { background: #fafaf8; }
.pair.sel { background: var(--orange-soft); box-shadow: inset 3px 0 0 var(--orange); }
.pair .pn { font-weight: 600; } .pair .pn small { font-weight: 400; color: var(--muted); }
.pair .pc { font-size: 12px; padding: 1px 8px; border-radius: 10px; background: #fde8e8; color: #c62828; font-weight: 600; white-space: nowrap; }
.pair .pc.zero { background: #e3f4e6; color: #2e7d32; }
.pair.all .pn { color: var(--muted); }
#tests-edit { margin: 4px 0; } #tests-edit summary { color: var(--muted); }

/* ---- clash table (Name / Status / Assign / Test / Level / Due date) ---- */
.register-wrap { overflow: auto; }
.clash-table { min-width: 600px; }
.clash-table th { cursor: pointer; white-space: nowrap; user-select: none; text-align: left; }
.clash-table th .srt { color: var(--muted); font-size: 10px; }
.clash-table td { white-space: nowrap; vertical-align: middle; }
.clash-table td.cname { color: var(--accent); font-weight: 500; }
.clash-table td.cname .pin-dot { width: 18px; min-width: 18px; height: 18px; font-size: 9px; margin-right: 4px; vertical-align: middle; }
.st-label { font-size: 12px; } .st-label.open { color: #c62828; } .st-label.reviewed { color: #1d3f7a; } .st-label.resolved { color: #2e7d32; } .st-label.ignored { color: #777; }
.due.late { color: #c62828; font-weight: 600; }

/* ---- viewer: Download / Export menus ---- */
.view-actions { position: absolute; top: 8px; left: 8px; display: flex; gap: 6px; z-index: 6; }
.menu { position: relative; }
.menu-pop { position: absolute; top: 30px; left: 0; min-width: 260px; background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.12); padding: 6px; z-index: 20; display: flex; flex-direction: column; }
.menu-pop a { padding: 5px 8px; border-radius: 5px; color: var(--text); text-decoration: none; font-size: 13px; }
.menu-pop a:hover { background: var(--orange-soft); }
.menu-pop .menu-h { font-size: 11px; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); padding: 6px 8px 2px; }
.menu-pop .menu-note { font-size: 11px; color: var(--muted); padding: 4px 8px; max-width: 300px; }
.menu-pop .fmt { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 6px; }
.menu-pop .fmt small { color: var(--muted); }

.app-banner { position: fixed; top: 56px; left: 50%; transform: translateX(-50%); z-index: 50; padding: 8px 16px; border-radius: 8px; font-size: 13px; box-shadow: 0 6px 20px rgba(0,0,0,.15); max-width: 80vw; }
.app-banner.error { background: #fde8e8; color: #8e1b1b; border: 1px solid #f3b4b4; }
.app-banner.ok { background: #e3f4e6; color: #1e5e24; border: 1px solid #b9dfc0; }
.applied-box { border: 1.5px solid #2e9e5b; background: #eef8f1; border-radius: 8px; padding: 8px; margin: 6px 0; font-size: 13px; }
button.applied { background: #e3f4e6; color: #2e7d32; border-color: #b9dfc0; }
.dl-h { font-weight: 600; margin: 10px 0 4px; font-size: 13px; }
.dl-files { display: flex; flex-direction: column; gap: 2px; border: 1px solid var(--line); border-radius: 8px; padding: 4px 8px; }
dialog label.check.dl-file, dialog label.check.dl-fmt { flex-direction: row; align-items: center; gap: 6px; margin: 3px 0; color: var(--text); font-size: 13px; white-space: normal; }
.dl-moved { margin-left: auto; font-size: 11px; padding: 1px 8px; border-radius: 10px; background: #e3f4e6; color: #2e7d32; }
.dl-moved.none { background: #f0f0ee; color: #888; }
/* ---- right panel: Details / Solution ---- */
.ptabs { display: flex; gap: 6px; margin: 8px 0 10px; }
.ptabs button { flex: 1; background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 6px; font-weight: 600; }
.ptabs button.on { border: 1.5px solid var(--orange); background: var(--orange-soft); }
.fix-settings label { font-size: 12px; display: inline-flex; gap: 4px; align-items: center; }
.fix-settings input[type=number] { width: 64px; }
#fix-bar { height: 100%; width: 0; background: #2e7d32; transition: width .2s; }
.moves-head { display: flex; justify-content: space-between; margin-top: 6px; font-size: 12px; }
.moves-list { max-height: 150px; overflow: auto; font-size: 12px; border: 1px solid var(--line); border-radius: 6px; }
.moves-list .mv { display: grid; grid-template-columns: 1fr auto; gap: 4px; padding: 3px 6px; border-bottom: 1px solid #f0efeb; }
.moves-list .mv:last-child { border-bottom: 0; }
.moves-list .who { font-size: 10px; text-transform: uppercase; padding: 0 4px; border-radius: 4px; background: #eee; margin-right: 4px; }
.who.ai { background: #efe6fb; color: #5b2a9b; } .who.rule { background: #e3f4e6; color: #2e7d32; } .who.user { background: #e8effc; color: #1d3f7a; }
.fix-dot { display: inline-block; font-size: 10px; padding: 0 5px; border-radius: 8px; margin-top: 2px; }
.fix-dot.easy { background: #e3f4e6; color: #2e7d32; } .fix-dot.modeler { background: #fff0e0; color: #b25a00; } .fix-dot.none { background: #eee; color: #666; }
.fix-box { border: 1px solid #cfe5cf; background: #f6fbf6; border-radius: 8px; padding: 8px; margin: 6px 0; }
.fix-box.modeler { border-color: #f3d58a; background: #fffaf0; }
.cand { display: grid; grid-template-columns: 1fr auto; gap: 4px; align-items: center; padding: 3px 0; border-bottom: 1px dashed #e4e3df; font-size: 12px; }
.cand:last-child { border-bottom: 0; }
.cand .bad { color: #c62828; }
.move-box { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.move-box label { display: flex; flex-direction: column; font-size: 11px; color: var(--muted); }
.move-box input { width: 100%; }
.nudge { display: flex; flex-wrap: wrap; gap: 3px; margin: 4px 0; }
.nudge button { padding: 1px 6px; font-size: 11px; }
.register tr.group-row td { background: #eef2fb; border-top: 1px solid #d6def0; cursor: pointer; font-size: 12px; }
.register tr.group-row.sel td { background: #dbe6fb; }
.register tr.group-row.loose td { background: #f4f4f2; cursor: default; }
.register tr.member td:first-child { padding-left: 16px; }
.register .caret { display: inline-block; width: 14px; cursor: pointer; }
.exports a { margin-left: 4px; }
dialog.wide { width: min(760px, 96vw); }
.nc-sides { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.nc-side { border: 1px solid var(--line); border-radius: 8px; padding: 6px 10px 10px; min-width: 0; }
.nc-side legend { font-weight: 600; padding: 0 4px; }
.nc-side .check { color: var(--text); font-size: 13px; margin: 2px 8px 2px 0; }
.nc-side select { width: 100%; }
.nc-steps { margin: 8px 0 4px; padding-left: 20px; font-size: 12px; }
.nc-steps li.done { color: #2e7d32; } .nc-steps li.run { font-weight: 600; } .nc-steps li.fail { color: #c62828; }
#nc-bar { height: 100%; width: 0; background: var(--accent); transition: width .2s; }
#nc-result { margin-top: 8px; padding: 8px 10px; background: #f0f7f0; border: 1px solid #cfe5cf; border-radius: 8px; }
.button.primary-link { background: var(--accent); color: #fff; border-color: var(--accent); }
@media (max-width: 700px) { .nc-sides { grid-template-columns: 1fr; } }
.combine-list { display: flex; flex-direction: column; gap: 4px; margin: 8px 0; max-height: 240px; overflow: auto; }
.combine-list .check { white-space: normal; color: var(--text); font-size: 13px; }
.progress { height: 6px; background: #ecebe7; border-radius: 3px; overflow: hidden; margin-top: 6px; }
#job-bar { height: 100%; width: 0; background: var(--accent); transition: width .2s; }
.filters { display: flex; flex-wrap: wrap; gap: 4px; }
.filters select { font-size: 12px; }
.register-head { display: flex; justify-content: space-between; align-items: center; }
.exports a { margin-left: 6px; }
.register-wrap { flex: 1; overflow: auto; border: 1px solid var(--line); border-radius: 6px; min-height: 120px; }
table.register { width: 100%; border-collapse: collapse; font-size: 12px; }
.register th { position: sticky; top: 0; background: #faf9f7; text-align: left; padding: 4px 6px; border-bottom: 1px solid var(--line); }
.register td { padding: 4px 6px; border-bottom: 1px solid #f0efeb; vertical-align: top; }
.register tr[data-id] { cursor: pointer; }
.register tr[data-id]:hover { background: #f7f7f5; }
.register tr.sel { background: var(--accent-2); }
.pin-dot { display: inline-flex; min-width: 22px; height: 22px; border-radius: 11px; color: #fff; align-items: center; justify-content: center; font-weight: 700; font-size: 11px; padding: 0 4px; background: var(--hard); }
.t-hard { background: var(--hard); } .t-clearance { background: var(--clearance); } .t-uncertain { background: var(--uncertain); } .t-failed_test { background: var(--failed); }
.sev { font-size: 11px; font-weight: 600; } .s-critical { color: var(--sev-critical); } .s-major { color: var(--sev-major); } .s-minor { color: var(--sev-minor); }
.st { font-size: 11px; padding: 1px 6px; border-radius: 8px; background: #eee; }
.st-open { background: #fde8e8; } .st-reviewed { background: #e8effc; } .st-resolved { background: #e3f4e6; } .st-ignored { background: #eee; color: #777; }
.cmp { font-size: 10px; text-transform: uppercase; letter-spacing: .4px; margin-top: 2px; }
.c-new { color: #c62828; } .c-continuing { color: #555; } .c-changed { color: #ef6c00; }

.stage { flex: 1; position: relative; min-width: 0; }
#canvas-host { position: absolute; inset: 0; }
#canvas-host canvas { display: block; }
#overlay { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.leader-layer { position: absolute; inset: 0; width: 100%; height: 100%; }
.leader-layer line { stroke: #222; stroke-width: 1.2; }
.markup-label { position: absolute; left: 0; top: 0; pointer-events: auto; background: rgba(255,255,255,.96); border: 1px solid #333; border-radius: 4px; padding: 4px 7px; font-size: 11px; max-width: 260px; box-shadow: 0 2px 6px rgba(0,0,0,.15); cursor: pointer; }
.markup-label.active { border-color: var(--accent); border-width: 2px; }
.markup-label.annotation { background: #fffbd6; border-color: #b59f00; }
.sw { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 4px; vertical-align: middle; }
.sw.a { background: var(--a); } .sw.b { background: var(--b); }
.toolbar { position: absolute; top: 8px; left: 8px; right: 8px; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; background: rgba(255,255,255,.92); border: 1px solid var(--line); border-radius: 8px; padding: 4px 6px; font-size: 12px; }
.toolbar .sep { width: 1px; height: 18px; background: var(--line); margin: 0 3px; }
.toolbar input[type=range] { width: 90px; }
.layers { position: absolute; bottom: 8px; left: 8px; border: 1px solid var(--line); border-radius: 8px; padding: 6px 8px; display: flex; flex-direction: column; gap: 3px; font-size: 12px; max-height: 45%; overflow: auto; }
.legend { margin-top: 4px; color: var(--muted); }
.empty-hint { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--muted); font-size: 15px; pointer-events: none; }

.right h3 { margin: 0; } .right h4 { margin: 14px 0 4px; font-size: 12px; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); }
.clash-head { display: flex; gap: 8px; align-items: center; }
.clash-head .pin-dot { width: 30px; height: 30px; border-radius: 15px; font-size: 13px; }
.badges { display: flex; gap: 4px; flex-wrap: wrap; margin: 8px 0; }
.badge { font-size: 11px; padding: 1px 7px; border-radius: 9px; background: #eee; color: #333; }
.badge.t-hard, .badge.t-clearance, .badge.t-uncertain, .badge.t-failed_test { color: #fff; }
.badge.t-hard { background: var(--hard); } .badge.t-clearance { background: var(--clearance); } .badge.t-uncertain { background: var(--uncertain); } .badge.t-failed_test { background: var(--failed); }
.badge.s-critical { background: #fde8e8; } .badge.s-major { background: #fff0e0; }
dl { display: grid; grid-template-columns: 96px 1fr; gap: 2px 8px; margin: 4px 0; font-size: 12px; }
dt { color: var(--muted); } dd { margin: 0; word-break: break-word; }
.side { border-left: 4px solid; padding: 2px 0 2px 8px; margin: 8px 0; }
.side.a { border-color: var(--a); } .side.b { border-color: var(--b); }
.side h4 { margin: 0 0 4px; }
.comments { max-height: 160px; overflow: auto; }
.comment { border-bottom: 1px solid #f0efeb; padding: 4px 0; }
img.shot { width: 100%; border: 1px solid var(--line); border-radius: 6px; }
.link { cursor: pointer; } .link:hover { background: #f4f6fb; }
#props .link { padding: 2px 0; color: var(--accent); }

.dash, .mapping { padding: 14px; max-width: 1400px; margin: 0 auto; }
.kpis { display: flex; gap: 10px; flex-wrap: wrap; margin: 10px 0; }
.kpi { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px; min-width: 120px; }
.kpi-v { font-size: 24px; font-weight: 700; }
.kpi-k { color: var(--muted); font-size: 12px; }
.kpi.ok .kpi-v { color: #2e7d32; } .kpi.warn .kpi-v { color: #ef6c00; } .kpi.bad .kpi-v { color: #c62828; }
.dash-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 10px; }
.dash-grid.two { grid-template-columns: repeat(auto-fill, minmax(520px, 1fr)); }
.card { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; min-width: 0; }
.card h3 { margin: 0 0 8px; font-size: 13px; display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.bar-row { display: grid; grid-template-columns: 130px 1fr 34px; gap: 6px; align-items: center; margin: 3px 0; }
.bar-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bar { height: 12px; background: #f0efeb; border-radius: 3px; overflow: hidden; }
.bar > span { display: block; height: 100%; }
.bar-val { text-align: right; font-variant-numeric: tabular-nums; }
table.matrix, table.grid { border-collapse: collapse; font-size: 12px; width: 100%; }
.matrix th, .matrix td, .grid th, .grid td { border: 1px solid #eeede9; padding: 3px 6px; text-align: left; }
.matrix td { text-align: center; font-variant-numeric: tabular-nums; }
.grid th { background: #faf9f7; position: sticky; top: 0; }
.scroll { max-height: 420px; overflow: auto; }
#plans { display: grid; grid-template-columns: repeat(auto-fill, minmax(560px, 1fr)); gap: 10px; margin-top: 10px; }
.plan svg { width: 100%; height: auto; background: #fbfbfa; border: 1px solid #eeede9; border-radius: 6px; }
.plan .fp { fill: #e7e6e1; stroke: #b9b8b2; stroke-width: .7; }
.plan .pin { cursor: pointer; }
.plan .pin circle { stroke: #fff; stroke-width: 2; }
.plan .pin.cluster circle { fill: #333; }
.plan .pin text { fill: #fff; font-size: 11px; font-weight: 700; text-anchor: middle; pointer-events: none; }
.plan-list { margin-top: 4px; font-size: 12px; } .plan-list a { margin-right: 6px; }
dialog { border: 1px solid var(--line); border-radius: 10px; width: min(520px, 94vw); padding: 16px 18px; }
dialog h2 { margin: 0 0 10px; font-size: 16px; }
dialog label { display: flex; flex-direction: column; gap: 3px; margin: 8px 0; font-size: 12px; color: var(--muted); }
dialog .row label { flex: 1; }
#reg-search { font-weight: normal; width: 220px; }

@media (max-width: 900px) {
  body { overflow: auto; }
  .tab.active { flex-direction: column; height: auto; }
  .left, .right { width: 100%; border: 0; }
  .stage { height: 70vh; flex: none; }
  .status-line { margin-left: 0; }
  .dash-grid.two, #plans { grid-template-columns: 1fr; }
}
