/* SableDeck workspace: selected visual patterns from the retained application
   styles.css and ui-refinements.css. No legacy scripts or global app styles load. */
:root {
  font-family: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, sans-serif;
  color-scheme: light;
  color: var(--ink);
  background: var(--bg);
  font-synthesis: none;
  line-height: 1.5;
  --ink: #22262c;
  --bg: #f5f4f1;
  --panel: #fff;
  --surface: #fbfaf8;
  --hover: #eeede9;
  --input: #fff;
  --muted: #616772;
  --line: #e7e5e0;
  --line-strong: #d5d2cc;
  --accent: #b1272d;
  --accent-dark: #8a1b20;
  --accent-hover: #8a1b20;
  --accent-soft: #f7edec;
  --paper: #fff;
  --danger: #a02027;
  --danger-bg: #fff2ee;
  --danger-line: #ddbdb8;
  --success: #28623b;
  --success-bg: #e8f6ec;
  --success-line: #cde1d0;
  --warning: #674e23;
  --warning-bg: #fff8e8;
  --warning-line: #d8c294;
  --star: #8a6000;
  --star-bg: #fff9e8;
  --star-line: #c99d49;
  --blue: #2563eb;
  --shadow: 0 1px 2px #17191d0d, 0 1px 4px #17191d0d;
  --shadow-lift: 0 4px 14px #17191d1a, 0 1px 4px #17191d0f;
}
.models-project { width:100%; min-width:0; }
.models-list { padding:28px 0 0; min-width:0; }
.models-list-header { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:10px; }
.models-list-header h1 { margin:0; padding-left:10px; border-left:5px solid var(--accent); border-radius:2px; font-size:16px; line-height:20px; font-weight:750; }
.models-list-actions { display:flex; align-items:center; gap:8px; flex:none; }
.models-project button { color:var(--ink); background:var(--surface); border:1px solid var(--line-strong); border-radius:10px; cursor:pointer; box-shadow:none; font:650 12px/1.3 system-ui,sans-serif; padding:7px 12px; }
.models-project button:hover { background:var(--hover); }
.models-project button:disabled { opacity:.5; cursor:default; }
.models-project .models-upload { color:#fff; background:var(--accent); border-color:var(--accent); font-size:12px; padding:7px 12px; white-space:nowrap; }
.models-project .models-upload:hover { filter:brightness(1.08); }
.models-project .models-refresh { font-weight:500; padding:7px 9px; }
.models-saved-panel { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:17px 18px 16px; min-width:0; }
.models-saved-rows { display:flex; flex-direction:column; gap:10px; min-width:0; }
.models-model-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; min-width:0; padding:9px 12px; border:1px solid var(--line); background:var(--surface); border-radius:11px; }
.models-model-info { flex:1 1 300px; min-width:0; }
.models-project .models-model-title { display:inline-flex; max-width:100%; align-items:center; gap:5px; padding:6px 10px; font-size:12px; border-radius:10px; overflow-wrap:anywhere; text-align:left; }
.models-project .models-model-title::before { content:'▣'; font-size:14px; color:var(--muted); }
.models-model-upload { margin:4px 0 0; color:var(--muted); font-size:11px; line-height:1.4; }
.models-model-state { display:flex; flex-wrap:wrap; align-items:center; gap:5px 10px; margin-top:5px; color:var(--muted); font-size:11px; }
.models-state-pill { color:var(--ink); }
.models-state-pill[data-state=ready] { color:var(--success); }
.models-state-pill[data-state=preparing],.models-state-pill[data-state=uploaded] { color:var(--warning); }
.models-state-pill[data-state=failed] { color:var(--danger); }
.models-model-actions { display:flex; gap:8px; margin-left:auto; flex:none; }
.models-model-failure { flex-basis:100%; color:var(--muted); font-size:11px; margin:1px 0 2px; line-height:1.5; }
.models-list-help,.models-empty { color:var(--muted); font-size:12px; line-height:1.5; margin:10px 0 0; }
.models-empty { margin:0; }
.models-status:empty { display:none; }
.models-status { padding:8px 12px; margin:8px 0; background:var(--surface); border:1px solid var(--line); border-radius:7px; font-size:12px; }
.models-viewing-banner { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media(max-width:700px) { .models-list { padding-top:18px; }.models-list-header { flex-wrap:wrap; gap:10px; }.models-list-header h1 { font-size:15px; }.models-list-actions { margin-left:auto; }.models-saved-panel { padding:12px; }.models-model-row { padding:10px; gap:8px; }.models-model-info { flex-basis:100%; }.models-model-actions { margin-left:0; }.models-model-available { overflow-wrap:anywhere; } }
.model-viewer { position:relative; height:calc(100dvh - 150px); min-height:360px; overflow:hidden; border:1px solid var(--line); border-radius:11px; background:var(--bg); color:var(--ink); }
.model-viewer:fullscreen { height:100dvh; border:0; border-radius:0; }
.model-viewer-canvas { position:absolute; inset:0; }
.model-viewer-canvas canvas { display:block; touch-action:none; }
.model-viewer-bar { position:absolute; left:0; right:0; top:0; z-index:3; display:flex; align-items:stretch; gap:6px; padding:6px 10px; pointer-events:none; }
.model-viewer button { color:var(--ink); background:var(--surface); border:1px solid var(--line-strong); border-radius:10px; cursor:pointer; box-shadow:none; font-size:12px; padding:7px 10px; }
.model-viewer button:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.model-viewer button:hover { background:var(--hover); }
.model-viewer-bar button { flex:0 0 auto; min-width:64px; width:64px; height:52px; display:flex; flex-direction:column; gap:3px; align-items:center; justify-content:center; font-size:11px; line-height:1.15; font-weight:650; padding:5px 6px; pointer-events:auto; }
.model-viewer-bar button:nth-of-type(4) { width:70px; }
.model-viewer-bar button:last-child { min-width:90px; width:90px; }
.model-viewer-bar button>span:last-child { white-space:nowrap; }
.model-viewer-icon { width:20px; height:20px; display:inline-flex; flex:none; align-items:center; justify-content:center; }
.model-viewer-icon svg { width:20px; height:20px; display:block; }
.model-viewer button.on { color:#fff; background:#4664e8; border-color:#526fe9; }
.model-viewer-title { display:flex; flex:1 1 120px; min-width:0; padding:0 6px; align-items:center; justify-content:center; flex-direction:column; }
.model-viewer-title strong,.model-viewer-title span { max-width:100%; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; }
.model-viewer-title strong { font-size:13px; line-height:18px; }
.model-viewer-title span { font-size:11px; line-height:16px; color:var(--muted); }
.model-viewer-status { position:absolute; top:45%; left:50%; transform:translate(-50%,-50%); max-width:80%; background:var(--panel); padding:12px; z-index:6; }
.model-viewer-properties { position:absolute; top:64px; bottom:0; right:0; z-index:5; width:340px; max-width:88%; background:var(--panel); border-left:1px solid var(--line-strong); display:flex; flex-direction:column; }
.model-viewer-properties[hidden],.model-viewer-search[hidden],.model-viewer-more[hidden],.model-viewer-clip[hidden] { display:none; }
.model-viewer-properties header { display:flex; align-items:center; gap:8px; padding:12px 14px 6px; }
.model-viewer-properties header strong { flex:1; font-size:14px; overflow-wrap:anywhere; }
.model-viewer-properties header button { padding:3px 6px; }
.model-viewer-property-actions { display:flex; flex-wrap:wrap; gap:7px; padding:4px 14px 10px; border-bottom:1px solid var(--line); }
.model-viewer-property-actions button { font-size:12px; padding:6px 9px; }
.model-viewer-property-body { overflow:auto; padding:8px 14px 20px; }
.model-viewer-property-body h3 { margin:14px 0 4px; text-transform:uppercase; color:var(--muted); font-size:10.5px; letter-spacing:.055em; }
.model-viewer-property-row { display:flex; align-items:baseline; gap:8px; padding:5px 0; border-bottom:1px solid var(--line); font-size:12.5px; }
.model-viewer-property-row span { color:var(--muted); flex:1; }
.model-viewer-property-row b { text-align:right; max-width:65%; overflow-wrap:anywhere; }
.model-viewer-search,.model-viewer-more,.model-viewer-clip { position:absolute; top:70px; z-index:4; padding:14px; background:var(--panel); border:1px solid var(--line-strong); border-radius:11px; box-shadow:var(--shadow-lift); }
.model-viewer-search { width:340px; max-width:90%; left:50%; transform:translateX(-50%); }
.model-viewer-search input { width:100%; box-sizing:border-box; }
.model-viewer-search>div { max-height:40vh; overflow:auto; }
.model-viewer-search>div button { display:block; width:100%; text-align:left; margin-top:5px; }
.model-viewer-more { right:10px; width:496px; max-width:calc(100% - 20px); box-sizing:border-box; max-height:calc(100% - 70px - var(--model-dock-height,44px)); overflow:auto; }
.model-viewer-more-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 14px; }
.model-viewer-more-group { min-width:0; display:flex; flex-direction:column; gap:6px; }
.model-viewer-more-group>button { display:flex; align-items:center; justify-content:flex-start; gap:9px; height:44px; flex:none; text-align:left; font-size:13px; line-height:18px; font-weight:600; padding:10px; }
.model-viewer button[hidden] { display:none; }
.model-viewer button:disabled { opacity:.6; cursor:default; }
.model-viewer button:disabled:hover { background:var(--surface); }
.model-viewer button.model-viewer-bolts-on:disabled { opacity:1; background:var(--surface); color:var(--ink); border-color:var(--line-strong); }
.model-viewer-more>button { margin-right:7px; }
.model-viewer-more h3 { margin:0 0 2px; height:16px; line-height:16px; color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.045em; text-transform:uppercase; }
.model-viewer-view-options { display:flex; gap:6px; flex-wrap:wrap; }
.model-viewer-clip { right:10px; width:226px; max-width:calc(100% - 20px); box-sizing:border-box; padding:6px; max-height:calc(100% - 80px - var(--model-dock-height,44px)); overflow:auto; }
.model-viewer-clip>button { display:block; width:100%; min-height:33px; padding:7px 10px; text-align:left; font-size:12px; font-weight:600; border:0; border-radius:7px; background:transparent; }
.model-viewer-clip>button:disabled:hover { background:transparent; }
.model-viewer-cut-snap { display:flex; align-items:center; gap:5px; margin:8px 3px; padding:8px 6px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-size:11px; color:var(--muted); }
.model-viewer-cut-snap>span { flex:1; }
.model-viewer-cut-snap button { padding:3px 8px; font-size:11px; border-radius:7px; }
.model-viewer-cut-adjustments { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin:7px 6px 4px; padding-top:9px; border-top:1px solid var(--line); }
.model-viewer-cut-adjustments[hidden] { display:none; }
.model-viewer-cut-adjustments>label:first-child { flex-basis:100%; font-weight:600; }
.model-viewer-clip label { display:flex; align-items:center; gap:5px; font-size:11px; }
.model-viewer-clip input[type=range] { width:100%; }
.model-viewer-clip select { max-width:100%; }
.model-viewer-dock { position:absolute; left:10px; right:10px; bottom:10px; z-index:3; display:flex; align-items:flex-end; gap:7px; flex-wrap:wrap; width:fit-content; max-width:calc(100% - 20px); pointer-events:none; }
.model-viewer-hint { display:flex; flex-wrap:wrap; align-items:center; gap:3px 10px; margin:0; font-size:11px; line-height:17px; color:var(--muted); background:var(--panel); border:1px solid var(--line); border-radius:9px; padding:6px 10px; }
.model-viewer-interaction-hint:empty { display:none; }
.model-viewer-reference-grids { flex-basis:100%; }
.model-viewer-geometry-notice { display:flex; align-items:center; gap:9px; padding:5px 7px 5px 10px; border:1px solid var(--warning-line); border-radius:9px; background:var(--panel); color:var(--muted); pointer-events:auto; }
.model-viewer-geometry-notice p { flex:1; margin:0; font-size:11px; line-height:17px; }
.model-viewer-geometry-notice button { flex:none; font-size:11px; padding:4px 7px; }
.model-viewer-geometry-list { position:absolute; bottom:var(--model-dock-height,70px); left:10px; z-index:5; width:370px; max-width:calc(100% - 20px); max-height:calc(100% - 80px - var(--model-dock-height,70px)); box-sizing:border-box; overflow:auto; padding:12px; border:1px solid var(--line-strong); border-radius:10px; background:var(--panel); box-shadow:var(--shadow-lift); }
.model-viewer-geometry-list[hidden] { display:none; }
.model-viewer-geometry-list header { display:flex; align-items:center; gap:10px; }
.model-viewer-geometry-list h2 { flex:1; margin:0; font-size:14px; }
.model-viewer-geometry-objects { max-height:35vh; overflow:auto; }
.model-viewer-geometry-objects button { display:block; width:100%; text-align:left; margin:5px 0; overflow-wrap:anywhere; }
.model-viewer-geometry-paging { display:flex; align-items:center; justify-content:space-between; gap:7px; margin-top:8px; font-size:11px; }
.model-viewer-property-warning { border-left:3px solid #b88a35; padding:7px 9px; font-size:12px; }
.model-viewer-phases,.model-viewer-saved-views,.model-viewer-workflow { position:absolute; top:70px; z-index:5; background:var(--panel); border:1px solid var(--line-strong); border-radius:12px; box-shadow:var(--shadow-lift); overflow:hidden; box-sizing:border-box; }
.model-viewer-phases[hidden],.model-viewer-saved-views[hidden],.model-viewer-workflow[hidden],.model-pick-bar[hidden],.model-pick-preview[hidden],.model-pick-legend[hidden],.model-pick-badge[hidden] { display:none; }
.model-viewer-phases,.model-pick-chooser { width:360px; max-width:calc(100% - 20px); left:50%; transform:translateX(-50%); }
.model-viewer-phases header,.model-viewer-saved-views header,.model-viewer-workflow header { display:flex; gap:8px; align-items:center; min-height:46px; padding:8px 14px; box-sizing:border-box; border-bottom:1px solid var(--line); }
.model-viewer-phases header h2,.model-viewer-saved-views header strong,.model-viewer-workflow header strong { font-size:13px; flex:1; margin:0; }
.model-viewer-phases header button,.model-viewer-saved-views header button,.model-viewer-workflow header button { font-size:11px; padding:3px 7px; }
.model-viewer-phase-list,.model-workflow-scroll { max-height:min(300px,50vh); overflow:auto; }
.model-viewer-phase-list>button { display:flex; align-items:center; gap:9px; width:100%; border:0; border-radius:0; border-bottom:1px solid var(--line); background:transparent; text-align:left; padding:12px 14px; font-size:12px; }
.model-viewer-phase-list>button b { display:flex; align-items:center; gap:4px; }.model-viewer-phase-count { color:var(--muted); font-size:11px; }.model-viewer-phase-dot { height:10px; width:10px; border-radius:50%; margin-right:3px; }.model-viewer-phase-check:empty { display:none; }
.model-viewer-phase-empty { padding:0 14px; font-size:12px; color:var(--muted); }
.model-viewer-saved-views { right:10px; width:440px; max-width:calc(100% - 20px); padding:18px; max-height:calc(100% - 85px); overflow:auto; }
.model-viewer-saved-views header { border:0; padding:0; min-height:28px; }.model-viewer-saved-views header strong { font-size:16px; }
.model-viewer-view-note { color:var(--muted); font-size:11px; line-height:17px; margin:14px 12px 20px; }
.model-viewer-view-form>label:first-child { display:flex; flex-direction:column; gap:5px; font-size:14px; }.model-viewer-view-form>label:first-child input { width:100%; box-sizing:border-box; padding:11px; font-size:14px; }
.model-viewer-view-shared { display:flex; align-items:center; gap:8px; margin:13px 0; font-size:13px; }.model-viewer-view-shared input { margin:0; width:18px; height:18px; }
.model-viewer-view-form>button { font-size:12px; padding:5px 8px; margin-right:7px; }.model-viewer-views-error:empty { display:none; }.model-viewer-views-error { font-size:12px; color:var(--muted); }
.model-viewer-views-list { margin-top:15px; font-size:14px; }.model-viewer-view-row { display:flex; gap:6px; align-items:center; padding:7px 0; border-top:1px solid var(--line); }.model-viewer-view-row>button { padding:6px; font-size:11px; }.model-viewer-view-row>button:first-child { flex:1; min-width:0; border:0; background:transparent; text-align:left; }.model-viewer-view-row b,.model-viewer-view-row small { display:block; overflow-wrap:anywhere; }.model-viewer-view-row small { margin-top:3px; color:var(--muted); font-size:10px; }
.model-pick-chooser .model-workflow-feedback { padding:0 14px; font-size:12px; }.model-workflow-feedback:empty { display:none; }.model-pick-new { width:100%; background:#4263e6; border:0; border-radius:0; padding:13px; font-size:13px; color:white; font-weight:700; }
.model-pick-day { display:flex; align-items:center; gap:10px; width:100%; text-align:left; background:transparent; border:0; border-bottom:1px solid var(--line); border-radius:0; padding:13px 14px; font-size:12px; }.model-pick-day b { flex:0 0 92px; }.model-pick-day>span { color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
.model-workflow-note { color:var(--muted); font-size:11px; padding:0 14px; }.model-workflow-form { padding:14px; display:flex; flex-wrap:wrap; gap:9px; }.model-workflow-form label { flex-basis:100%; font-size:12px; display:flex; flex-direction:column; gap:4px; }.model-workflow-form input { width:100%; box-sizing:border-box; }.model-workflow-form button { font-size:12px; padding:6px 9px; }
.model-pick-panel { right:10px; width:510px; max-width:calc(100% - 20px); max-height:calc(100% - 180px); display:flex; flex-direction:column; }.model-pick-panel .model-workflow-scroll { max-height:none; min-height:80px; }.model-pick-actions { display:flex; flex-wrap:wrap; align-items:center; gap:6px; padding:10px; border-bottom:1px solid var(--line); font-size:11px; }.model-pick-actions button { font-size:11px; padding:5px 7px; }.model-pick-actions>span { flex-basis:100%; color:var(--muted); }
.model-pick-row { display:flex; align-items:center; gap:6px; padding:9px 12px; font-size:11px; }.model-pick-seq { width:22px; color:var(--muted); }.model-pick-who { flex:1; min-width:0; }.model-pick-who button { border:0; background:transparent; padding:0; font-size:12px; text-align:left; font-weight:700; }.model-pick-who>span { display:block; color:var(--muted); font-size:10px; margin-top:3px; }.model-pick-weight { white-space:nowrap; }.model-pick-row-actions { display:flex; }.model-pick-row button { padding:4px; }.model-pick-row-actions button { font-size:10px; }.model-pick-tree { display:block; width:calc(100% - 48px); margin:0 24px; border:0; border-top:1px solid var(--line); border-radius:0; font-size:10px; padding:3px; background:transparent; color:var(--muted); }.model-pick-panel footer { padding:10px 14px; border-top:1px solid var(--line); font-size:11px; }.model-workflow-error { color:var(--muted); font-size:11px; }
.model-pick-bar,.model-pick-preview,.model-pick-legend { position:absolute; z-index:4; display:flex; align-items:center; gap:7px; border:1px solid #5b78cc; border-radius:10px; padding:5px 8px; background:var(--panel); font-size:11px; }
.model-pick-bar { bottom:7px; right:10px; max-width:calc(100% - 20px); box-sizing:border-box; flex-wrap:wrap; }.model-pick-bar button { padding:5px 8px; font-size:11px; }.model-pick-bar button:last-child { color:white; background:#4263e6; }.model-pick-bar strong { font-size:11px; }.model-pick-grip { color:var(--muted); }.model-pick-preview { bottom:12px; left:10px; right:10px; z-index:6; min-height:44px; }.model-pick-preview button { padding:6px 9px; }.model-pick-preview input[type=range] { flex:1; min-width:40px; }.model-pick-preview select { font-size:11px; width:75px; padding:5px; }
.model-pick-legend { left:10px; bottom:53px; font-size:10px; gap:10px; border-color:var(--line-strong); flex-wrap:wrap; max-width:calc(100% - 40px); }.model-pick-legend>span:before { content:''; display:inline-block; vertical-align:middle; width:9px; height:9px; border-radius:50%; margin-right:4px; background:#747b87; }.model-pick-legend [data-pick-state=set]:before { background:#60bf70; }.model-pick-legend [data-pick-state=current]:before { background:#4d79ed; }.model-pick-legend [data-pick-state=planned]:before { background:#e58b3a; }.model-dock-with-picks { bottom:85px; }
.model-pick-badge { position:absolute; z-index:2; transform:translate(-50%,-50%); border:1px solid white; border-radius:16px; min-width:26px; height:25px; padding:3px 7px; color:white; font-size:10px; box-shadow:0 1px 3px #0009; }
.model-auto-pick-panel { width:420px; max-width:calc(100% - 20px); left:50%; transform:translateX(-50%); }.model-auto-pick-panel .model-workflow-scroll { max-height:calc(100vh - 300px); }.model-auto-pick-panel .model-workflow-form>p { margin:2px 0; font-size:12px; line-height:18px; }.model-auto-starts { flex-basis:100%; display:flex; flex-wrap:wrap; gap:5px; }.model-auto-starts>p { color:var(--muted); }.model-auto-review { color:var(--muted); }.model-auto-review-accept { display:flex; gap:6px; align-items:flex-start; padding:8px; font-size:11px; }.model-auto-review-accept input { flex:none; }
.model-pick-auto { width:100%; background:transparent; border:0; border-bottom:1px solid var(--line); border-radius:0; padding:12px 14px; text-align:left; font-size:12px; }
@media(max-width:540px) { .model-viewer-phases,.model-viewer-saved-views,.model-viewer-workflow { top:116px; }.model-viewer-phase-list,.model-pick-chooser .model-workflow-scroll { max-height:32vh; }.model-viewer-saved-views { padding:12px; max-height:calc(100% - 132px); }.model-pick-panel { max-height:calc(100% - 240px); }.model-pick-bar { left:6px; right:6px; gap:5px; }.model-pick-bar>strong { flex-basis:calc(100% - 30px); }.model-pick-bar button { flex:1; padding:5px; }.model-pick-legend { bottom:111px; }.model-dock-with-picks { bottom:158px; }.model-pick-preview { gap:3px; left:6px; right:6px; }.model-pick-preview button { padding:5px; } }
:root[data-theme=dark] .model-viewer { --panel:#20232c; --surface:#262a34; --hover:#303543; --line:#30333e; --line-strong:#3a3f4d; --muted:#adb4c3; --ink:#e6e9f0; }
@media(max-width:700px) { .model-viewer-bar { gap:4px; padding:6px; }.model-viewer-bar button { min-width:53px; width:53px; padding:5px 4px; font-size:10px; }.model-viewer-bar button:nth-of-type(4) { width:60px; }.model-viewer-bar button:last-child { min-width:78px; width:78px; }.model-viewer-title { padding:0 3px; }.model-viewer-title strong { font-size:11px; }.model-viewer-title span { font-size:10px; }.model-viewer-more { right:6px; max-width:calc(100% - 12px); }.model-viewer-geometry-notice { max-width:100%; box-sizing:border-box; } }
@media(max-width:540px) { .model-viewer-properties { top:116px; } .model-viewer-bar { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:5px; }.model-viewer-bar .model-viewer-back { grid-row:1; grid-column:1; min-width:0; width:52px; }.model-viewer-title { grid-row:1; grid-column:2 / 6; align-items:flex-start; padding:0 8px; }.model-viewer-bar button,.model-viewer-bar button:nth-of-type(4),.model-viewer-bar button:last-child { min-width:0; width:auto; height:48px; }.model-viewer-search,.model-viewer-more,.model-viewer-clip { top:116px; }.model-viewer-more { max-height:calc(100% - 116px - var(--model-dock-height,44px)); padding:11px; }.model-viewer-more-grid { gap:14px 10px; }.model-viewer-more-group>button { gap:7px; padding:8px; font-size:11px; }.model-viewer-more h3 { font-size:10px; }.model-viewer-geometry-list { max-height:calc(100% - 125px - var(--model-dock-height,70px)); }.model-viewer-hint { font-size:10px; line-height:15px; }.model-viewer-reference-grids { max-width:320px; }.model-viewer-geometry-notice { flex-wrap:wrap; }.model-viewer-geometry-notice p { flex-basis:190px; } }
:root[data-theme=dark] {
  color-scheme: dark;
  --bg: #14181d;
  --paper: #1f2329;
  --panel: #1e232b;
  --surface: #1b2026;
  --hover: #2b323c;
  --input: #25292f;
  --ink: #e4e8ee;
  --muted: #a1acba;
  --line: #303844;
  --line-strong: #46515e;
  --accent: #bb3038;
  --accent-dark: #ff8d93;
  --accent-hover: #9f252c;
  --accent-soft: #382125;
  --danger: #ff9a9f;
  --danger-bg: #382126;
  --danger-line: #87444b;
  --success: #8ad8a5;
  --success-bg: #193429;
  --success-line: #345c47;
  --warning: #ebcd8f;
  --warning-bg: #342b1d;
  --warning-line: #76603a;
  --star: #f0b800;
  --star-bg: #332b1d;
  --star-line: #947019;
  --blue: #568cff;
  --shadow: 0 1px 4px #0003;
  --shadow-lift: 0 4px 14px #0005;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-y: scroll; }
body { margin: 0; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea, summary { touch-action: manipulation; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .55; }
a { color: var(--accent-dark); }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
[hidden] { display: none !important; }
.skip-link { position: absolute; left: 1rem; top: -5rem; background: var(--paper); padding: .7rem; z-index: 100; }
.skip-link:focus { top: 1rem; }

/* Compact brand header; the company toolbar carries the familiar app controls. */
.site-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .7rem 1.5rem; background: var(--paper); color: var(--ink); border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: .6rem; min-width: 0; font-size: 1.05rem; font-weight: 750; letter-spacing: -.02em; }
.brand-mark { display: grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 7px; background: var(--accent); color: #fff; font-size: 1.1rem; font-weight: 800; }
.environment { color: var(--muted); font-size: .74rem; text-align: right; margin-left: auto; }
.theme-toggle { flex: none; white-space: nowrap; }
.theme-icon { font-size: 1.2rem; line-height: 1; }
main { width: 100%; min-height: 74vh; margin: auto; padding: 1.5rem 1.5rem 3rem; }
.narrow { max-width: 640px; margin: 2.2rem auto; }
.card.narrow { border-top: 3px solid var(--accent); padding: 1.8rem 2rem; }
.welcome-card { max-width: 560px; }
.welcome-card > .eyebrow, .welcome-card > h1 { text-align: center; }
.welcome-card > form > .button[type=submit] { width: 100%; }
.onboarding-wrap { max-width: 1040px; margin: 1rem auto; }
.onboarding-wrap .page-heading { max-width: 760px; }
.onboarding-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; align-items: start; }
.onboarding-grid > .card { height: 100%; margin: 0; }
.onboarding-wrap form > .card { margin-top: 1.2rem; }
.onboarding-wrap form > .card .field { max-width: 560px; }
.onboarding-actions { padding: .3rem 0 1rem; }
.onboarding-error { padding: .8rem 1rem; border-left: 3px solid var(--accent); border-radius: 6px; background: var(--accent-soft); color: var(--accent-dark); font-size: .9rem; margin: 1rem 0; }
.onboarding-review .summary { margin: 1.5rem 0; }
.app-shell, .workspace-content { min-width: 0; }
.app-toolbar { position: relative; display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; padding: .85rem 1rem; margin-bottom: 1.55rem; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); box-shadow: var(--shadow); }
.app-toolbar > .brand { flex: 0 0 auto; padding-right: .6rem; }
.app-toolbar .brand-mark { width: 32px; height: 32px; }
.tool-launcher { position: static; flex: 0 0 auto; margin: 0; }
.tool-launcher > summary { display: flex; align-items: center; justify-content: space-between; gap: .65rem; min-height: 44px; padding: .55rem .8rem; border: 1px solid var(--line-strong); border-radius: 9px; list-style: none; color: var(--ink); background: var(--paper); font-size: .84rem; }
.tool-launcher > summary::-webkit-details-marker { display: none; }
.tool-launcher > summary > span:first-child { font-size: 1rem; line-height: 1; }
.tool-launcher > summary::after { content: "▾"; color: var(--muted); font-size: .8rem; }
.tool-launcher[open] > summary { background: var(--accent-soft); color: var(--accent-dark); border-color: var(--accent); }
.tool-menu { position: absolute; top: calc(100% - .3rem); left: 1rem; z-index: 40; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .3rem; width: 520px; max-width: calc(100% - 2rem); max-height: min(70vh, 600px); overflow: auto; padding: .65rem; border: 1px solid var(--line-strong); border-radius: 10px; background: var(--paper); box-shadow: var(--shadow-lift); }
.tool-menu .eyebrow { grid-column: 1 / -1; margin: .4rem .65rem .7rem; color: var(--muted); }
.tool-menu nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .3rem; grid-column: 1 / -1; }
.tool-menu .button.secondary { width: 100%; justify-content: flex-start; text-align: left; border-color: transparent; background: transparent; color: var(--ink); padding: .65rem .75rem; }
.tool-menu .button:hover { background: var(--bg); }
.tool-menu .button[aria-current=page] { background: var(--accent-soft); color: var(--accent-dark); border-color: var(--accent); }
.workspace-tabs { display: flex; flex-wrap: nowrap; gap: .5rem; max-width: 100%; overflow-x: auto; margin: 0 0 1.4rem; padding: .3rem .25rem .5rem; border: 0; }
.tool-icon { width: 19px; height: 19px; flex: none; }
.workspace-tabs .button { flex: none; white-space: nowrap; }
.workspace-tabs .button[aria-current=page] { background: var(--accent-soft); color: var(--accent-dark); border-color: var(--accent); }
.toolbar-context { display: flex; flex-direction: column; gap: .1rem; flex: 1 1 180px; min-width: 0; padding-left: .9rem; border-left: 1px solid var(--line); }
.toolbar-context strong { font-size: .85rem; overflow-wrap: anywhere; }
.toolbar-context small, .toolbar-context .help { margin: 0; font-size: .74rem; color: var(--muted); overflow-wrap: anywhere; }
.app-toolbar .actions { margin: 0; gap: .4rem; }
.app-toolbar .actions .button { font-size: .78rem; padding: .5rem .7rem; }
.tool-shortcuts { display: flex; align-items: center; flex-wrap: nowrap; gap: .5rem; margin: -.4rem 0 1.1rem; }
.tool-shortcuts .button { min-height: 44px; padding: .5rem .9rem; font-size: .83rem; }
.tool-shortcuts .button[aria-current=page], .tool-shortcuts .button[aria-pressed=true] { color: var(--accent-dark); background: var(--accent-soft); border-color: var(--accent); }

/* Floating content cards, compact headings and familiar primary actions. */
h1 { font-size: clamp(1.6rem, 2.6vw, 2rem); line-height: 1.2; letter-spacing: -.035em; margin: .2rem 0 .6rem; overflow-wrap: anywhere; }
h2 { font-size: 1.12rem; line-height: 1.35; margin: .1rem 0 1rem; letter-spacing: -.015em; overflow-wrap: anywhere; }
h3 { font-size: .98rem; margin: 0 0 .45rem; overflow-wrap: anywhere; }
p { margin: .4rem 0 1rem; overflow-wrap: anywhere; }
.eyebrow { font-size: .66rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 750; color: var(--accent-dark); margin: 0 0 .5rem; }
.muted, .help { color: var(--muted); }
.help { font-size: .81rem; margin: .4rem 0; }
.page-heading, .module-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.35rem; }
.page-heading > div, .module-heading > div { min-width: 0; }
.page-heading .actions, .module-heading .actions { margin-top: .3rem; }
.page-heading p:last-child, .module-heading p:last-child { margin-bottom: 0; }
.card { min-width: 0; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 1.4rem 1.5rem; margin-bottom: 1.2rem; box-shadow: var(--shadow); }
.card > h2 { display: flex; align-items: baseline; gap: .6rem; }
.card > h2::before { content: ""; flex: 0 0 4px; align-self: center; height: 1rem; border-radius: 4px; background: var(--accent); }
.card.subtle { background: var(--surface); box-shadow: none; }
.card > form, #jobs-list-controls > form, #job-detail-controls > form { max-width: 760px; }
.card .card { box-shadow: none; }
.actions { display: flex; gap: .55rem; align-items: center; flex-wrap: wrap; margin-top: 1rem; }
.button { display: inline-flex; justify-content: center; align-items: center; gap: .5rem; min-height: 44px; max-width: 100%; border: 1px solid transparent; border-radius: 9px; background: var(--accent); color: #fff; padding: .6rem 1rem; font-size: .84rem; font-weight: 650; line-height: 1.4; text-align: center; text-decoration: none; overflow-wrap: anywhere; }
.button:hover:not(:disabled) { background: var(--accent-hover); }
.button.secondary { background: var(--paper); color: var(--ink); border-color: var(--line-strong); }
.button.secondary:hover:not(:disabled) { background: var(--bg); border-color: var(--muted); }
.button.danger { background: var(--paper); color: var(--danger); border-color: var(--danger-line); }
.button.danger:hover:not(:disabled) { background: var(--danger-bg); border-color: var(--danger); }
.button.quiet { background: transparent; color: var(--accent-dark); border-color: transparent; padding: .4rem .2rem; }
.button.quiet:hover:not(:disabled) { background: var(--accent-soft); }
.button.job-context { position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: .08rem; flex: 1 1 220px; min-width: 0; max-width: 340px; min-height: 54px; padding: .45rem 2rem .45rem .8rem; border: 1px dashed var(--line-strong); border-radius: 9px; background: var(--surface); color: var(--ink); text-align: left; }
.job-context::after { position: absolute; right: .8rem; top: 50%; transform: translateY(-50%); content: "▾"; color: var(--muted); }
.job-context small { display: block; font-size: .63rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.job-context strong { display: block; max-width: 100%; font-size: .82rem; font-weight: 700; line-height: 1.35; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.button.job-context.selected, .button.job-context[data-selected=true] { background: var(--accent-soft); color: var(--accent-dark); border: 1px solid var(--accent); }
.job-context.selected small, .job-context[data-selected=true] small { color: var(--accent-dark); }
.field { display: flex; flex-direction: column; gap: .35rem; margin-bottom: 1rem; min-width: 0; }
.field > label { font-size: .8rem; font-weight: 650; }
.field input, .field select, .field textarea, .project-team-editor select, .project-role-settings select { width: 100%; min-width: 0; min-height: 44px; color: var(--ink); background: var(--input); border: 1px solid var(--line-strong); border-radius: 9px; padding: .6rem .7rem; font-size: .9rem; }
.field input::placeholder, .field textarea::placeholder { color: var(--muted); opacity: 1; }
.field textarea { resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--accent); }
.field input[type=checkbox] { width: 1.2rem; min-height: 1.2rem; }
.field input[type=file] { padding: .5rem; font-size: .8rem; }
.field input[type=file]::file-selector-button { min-height: 30px; margin-right: .6rem; border: 1px solid var(--line-strong); border-radius: 5px; padding: .2rem .55rem; background: var(--bg); color: var(--ink); font: inherit; }
.field small { color: var(--muted); font-size: .78rem; }
.check-field { display: flex; gap: .65rem; align-items: center; min-height: 44px; font-size: .84rem; margin: .6rem 0; }
.check-field input { width: 1.15rem; height: 1.15rem; flex: none; accent-color: var(--accent); }
.grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.workspace-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, 1fr); gap: 1.3rem; }

/* Company entry, job cards and member controls retain their existing DOM IDs. */
.company-list, .job-list, .member-list { list-style: none; margin: 0; padding: 0; }
.company-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 1rem; }
.company-list .card { margin: 0; display: flex; flex-direction: column; align-items: flex-start; }
.company-list .card > .actions { margin-top: auto; padding-top: .7rem; }
.job-list > li, .member-list > li { padding: 1.2rem 0; border-top: 1px solid var(--line); }
.job-list > li:first-child, .member-list > li:first-child { border-top: 0; padding-top: .25rem; }
.job-line { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.job-line > div { min-width: 0; }
.job-line strong { overflow-wrap: anywhere; }
.job-line .button { flex: none; }
.jobs-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin: .5rem 0 1.2rem; }
.jobs-toolbar .field { flex: 1; max-width: 440px; margin-bottom: 0; }
.jobs-toolbar > input { flex: 1; min-width: 0; min-height: 44px; border: 1px solid var(--line-strong); border-radius: 9px; padding: .6rem .7rem; background: var(--input); color: var(--ink); }
.result-count { flex: none; color: var(--muted); font-size: .78rem; padding-bottom: .7rem; }
.job-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: .9rem; }
.job-list.job-grid > li, .job-card { padding: 1.15rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); min-width: 0; }
.job-list.job-grid > li:first-child { padding-top: 1.15rem; border-top: 1px solid var(--line); }
.job-card .job-line { display: flex; align-items: stretch; flex-direction: column; height: 100%; gap: .75rem; }
.job-card .job-line > .button { align-self: flex-start; margin-top: auto; }
.job-card strong { font-size: .98rem; }
.module-actions { display: flex; justify-content: flex-end; gap: .6rem; margin: -.3rem 0 1rem; }
/* Retained full-width Jobs rows. Personal favorites never imply job access. */
.rich-workspace-shell > .app-toolbar { position: sticky; top: 0; z-index: 20; margin-bottom: 1rem; }
.rich-jobs-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem; margin-bottom: 1rem; }
.rich-jobs-heading > h1 { display: flex; align-items: center; gap: .6rem; margin: 0; font-size: 1.12rem; line-height: 1.35; letter-spacing: -.015em; }
.rich-jobs-heading > h1::before { content: ""; width: 4px; height: 1rem; border-radius: 4px; background: var(--accent); }
.rich-jobs-heading > .module-actions { margin: 0; }
.rich-job-list { display: block; }
.rich-job-list > .rich-job-row { padding: 0; margin: 0 0 .8rem; border: 0; }
.rich-job-line { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.rich-job-info { flex: 1 1 260px; min-width: 0; }
.rich-job-title { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem; }
.rich-job-info h3 { margin: 0; overflow-wrap: anywhere; }
.badge.job-area-badge { flex: none; padding: .2rem .75rem; margin: 0; font-size: .78rem; font-weight: 700; }
.badge.job-area-badge[data-area-color] { background: var(--area-light-background); color: var(--area-light-text); border-color: transparent; }
:root[data-theme=dark] .badge.job-area-badge[data-area-color] { background: var(--area-dark-background); color: var(--area-dark-text); }
.rich-job-info .help { margin: .2rem 0 0; }
.rich-job-actions { margin: 0; justify-content: flex-end; }
.rich-job-actions .button { min-height: 44px; padding: .45rem .7rem; }
.rich-job-actions .button[aria-pressed=true] { color: var(--star); border-color: var(--star-line); background: var(--star-bg); }
/* An expanded editor remains visibly attached to its job, including when more
   than one of Settings, Team and People is open. Keep overflow visible for the
   search suggestions and dialogs rather than clipping them to this outline. */
.rich-job-list > .rich-job-row:has(> .rich-job-panel:not([hidden])) {
  margin-bottom: 1.15rem; border: 1px solid var(--line-strong);
  border-inline-start: 3px solid var(--accent); border-radius: 10px; background: var(--paper);
}
.rich-job-row:has(> .rich-job-panel:not([hidden])) > .rich-job-line {
  border: 0; border-radius: 8px 8px 0 0; background: var(--accent-soft);
}
.rich-job-row > .rich-job-panel {
  width: 100%; max-width: none; margin: 0; padding: 1.1rem 1rem 1.25rem;
  border: 0; border-top: 1px solid var(--line-strong); border-radius: 0 0 8px 8px;
  background: var(--paper); box-shadow: none;
}
.rich-job-panel > .rich-job-editor {
  width: 100%; max-width: none; margin: 0; padding: .25rem 0 0;
  border: 0; border-radius: 0; background: transparent; box-shadow: none;
}
.rich-job-panel-context {
  margin: 0 0 .85rem; color: var(--accent-dark); font-size: .85rem;
  font-weight: 700; overflow-wrap: anywhere;
}
.rich-job-actions .button[aria-expanded=true] {
  background: var(--accent-soft); color: var(--accent-dark); border-color: var(--accent);
}
.rich-job-actions .button[aria-expanded=true]::after { content: "▾"; font-size: .75rem; }
.rich-jobs-toolbar { justify-content: flex-start; flex-wrap: wrap; }
.rich-jobs-toolbar .field:first-child { flex: 2 1 260px; }
.rich-jobs-toolbar .field:not(:first-child) { flex: 1 1 150px; max-width: 230px; }
.rich-jobs-toolbar .field > label, .jobs-page-size > label { padding-inline: .75rem; }
.rich-jobs-toolbar > .button { flex: none; margin-bottom: 0; }
.jobs-list-footer { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: end; gap: 1rem; margin-top: 1.25rem; }
.jobs-pagination { grid-column: 2; display: flex; align-items: center; justify-content: center; gap: .75rem; }
.jobs-pagination > span { white-space: nowrap; color: var(--muted); font-size: .85rem; }
.jobs-page-size { grid-column: 3; justify-self: end; width: auto; margin: 0; }
.jobs-page-size select { width: 5.25rem; align-self: center; }
.jobs-page-size > label { white-space: nowrap; text-align: center; }
@media (max-width: 640px) {
  .jobs-list-footer { grid-template-columns: 1fr; }
  .jobs-pagination { grid-column: 1; flex-wrap: wrap; gap: .5rem; }
  .jobs-page-size { grid-column: 1; }
}
.inline-editor.rich-job-editor,
#job-detail-controls > form.rich-job-editor { width: 100%; max-width: none; margin: .5rem 0 1rem; }
#job-preserved-settings > section { border-top: 1px solid var(--line); padding-top: .8rem; }
.rich-create-overlay { position: fixed; inset: 0; z-index: 220; display: flex; align-items: center; justify-content: center; padding: 1.5rem 1rem; background: #171d2673; overscroll-behavior: contain; }
.rich-create-dialog { position: relative; width: min(860px, 100%); max-width: none !important; max-height: calc(100dvh - 3rem); overflow-y: auto; overscroll-behavior: contain; margin: 0; padding: 1.4rem; background: var(--paper); border: 1px solid var(--line-strong); border-radius: 12px; box-shadow: var(--shadow-lift); }
.rich-create-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .6rem; }
.rich-create-heading h3 { margin: 0; font-size: 1.12rem; }
.rich-create-heading .button { flex: none; }
.rich-create-dialog > .button { margin: .4rem .5rem .2rem 0; }
.rich-job-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rich-job-address-fields { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rich-job-setup-section { border-top: 1px solid var(--line); padding-top: .6rem; }
.rich-job-setup-section > summary { font-weight: 650; cursor: pointer; padding: .35rem 0; }
.rich-job-setup-section > .job-staff-editor > h3 { display: none; }
.rich-job-setup-section > .grid { padding-top: .5rem; }
.job-directory-actions, .job-option-add { display: flex; align-items: flex-end; flex-wrap: wrap; gap: .6rem; margin: .5rem 0 1rem; }
.job-directory-actions .button { margin: 0; }
.job-directory-combobox { position: relative; min-width: 0; }
.job-directory-combobox > .field { margin-bottom: 0; }
.job-people-editor { width: 100%; max-width: none; }
.job-people-search { position: relative; margin: 1rem 0 1.25rem; }
.job-people-search > .field { margin-bottom: 0; }
.job-people-search .field > label { margin-left: .7rem; }
.job-people-suggestions {
  position: absolute; top: 100%; inset-inline: 0; z-index: 30;
  margin-top: 3px; padding: .3rem; max-height: min(360px, 45dvh); overflow-y: auto;
  overscroll-behavior: contain; background: var(--paper); color: var(--ink);
  border: 1px solid var(--line-strong); border-radius: 0 0 9px 9px; box-shadow: var(--shadow-lift);
}
.job-people-suggestions [role="option"]:disabled { opacity: .65; cursor: default; }
.job-people-match-pages { justify-content: space-between; margin: .3rem .5rem; }
.job-people-pagination { justify-content: center; }
.job-people-recovery:has(> [hidden]):not(:has(> :not([hidden]))) { display: none; }
.job-people-table td:last-child { width: 1%; white-space: nowrap; }
.job-directory-suggestions {
  position: absolute; top: 100%; inset-inline: 0; z-index: 30;
  margin: 3px 0 0; padding: .3rem; list-style: none;
  max-height: min(280px, 40dvh); overflow-y: auto; overscroll-behavior: contain;
  background: var(--paper); color: var(--ink); border: 1px solid var(--line-strong);
  border-radius: 0 0 9px 9px; box-shadow: var(--shadow-lift);
}
.job-directory-suggestion, .job-directory-picker-row {
  display: flex; flex-direction: column; align-items: flex-start; gap: .25rem;
  width: 100%; min-width: 0; padding: .75rem .85rem; margin: 0;
  background: transparent; color: var(--ink); border: 0; border-radius: 5px;
  text-align: left; font: inherit; cursor: pointer; white-space: normal; overflow-wrap: anywhere;
}
.job-directory-suggestion:hover, .job-directory-suggestion[aria-selected=true],
.job-directory-picker-row:hover, .job-directory-picker-row:focus-visible {
  background: var(--accent-soft);
}
.job-directory-suggestion strong, .job-directory-picker-row strong { font-weight: 650; }
.job-directory-suggestion small, .job-directory-picker-row small,
.job-directory-suggestion > span, .job-directory-picker-row > span,
.job-directory-suggestion .help, .job-directory-picker-row .help {
  margin: 0; color: var(--muted); font-size: .8rem;
}
.job-directory-search-status { padding: .45rem .65rem; margin: 0; color: var(--muted); font-size: .8rem; }
.job-directory-picker-overlay {
  position: fixed; inset: 0; z-index: 240; display: flex; align-items: center; justify-content: center;
  padding: 1.5rem 1rem; background: #11192399; overscroll-behavior: contain;
}
.job-directory-picker-dialog {
  display: flex; flex-direction: column; width: min(860px, 100%);
  max-height: calc(100dvh - 3rem); min-height: 0; overflow-y: auto;
  padding: 1.25rem; background: var(--paper); color: var(--ink);
  border: 1px solid var(--line-strong); border-radius: 12px; box-shadow: var(--shadow-lift);
}
.job-directory-picker-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.job-directory-picker-header h3 { margin: 0; }
.job-directory-picker-header .button { flex: none; }
.job-directory-picker-search { margin: 1rem 0 .5rem; }
.job-directory-picker-search .field { margin: 0; }
.job-directory-picker-results {
  flex: 1 1 auto; min-height: 80px; overflow-y: auto; overscroll-behavior: contain;
  margin: .5rem 0; padding: 0; list-style: none;
}
.job-directory-picker-row { border-bottom: 1px solid var(--line); border-radius: 0; }
.job-directory-picker-pagination { display: flex; justify-content: space-between; gap: .6rem; flex-wrap: wrap; padding-top: .6rem; }
.directory-contractor-types { border: 0; padding: 0; margin: .8rem 0; }
.directory-contractor-types legend { font-weight: 650; margin-bottom: .4rem; }
.job-option-add .field { flex: 1 1 240px; margin: 0; }
.job-option-section { min-width: 0; }
.job-option-list { list-style: none; margin: .75rem 0; padding: 0; }
.job-option-row { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .4rem 0; border-bottom: 1px solid var(--line); }
.job-option-row > span { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.job-option-color { flex: 0 0 auto; width: 7.5rem; display: flex; flex-direction: column; gap: .3rem; font-size: .8rem; }
.job-option-color input[type="color"] { width: 100%; height: 44px; padding: .25rem; cursor: pointer; }
.job-option-add .job-option-color { flex: 0 0 auto; margin: 0; }
.account-appearance { max-width: 32rem; margin-block: 1.5rem; }
.job-option-row .button { flex: none; }
.job-options-editor { max-width: 1100px; }
.rich-job-setup-section textarea { resize: vertical; min-height: 44px; white-space: pre-wrap; }
.rich-import-row { border-top: 1px solid var(--line); padding: .75rem 0; }
.rich-import-row h4 { margin: 0 0 .5rem; overflow-wrap: anywhere; }
.rich-import-values { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: .8rem; }
.rich-import-values th, .rich-import-values td { text-align: left; vertical-align: top; padding: .4rem; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; white-space: pre-wrap; }
.rich-import-values th:first-child { width: 28%; }
.inline-editor { padding: 1.2rem; margin-top: 1.2rem; border: 1px solid var(--line-strong); border-radius: 10px; background: var(--surface); max-width: 760px; }
.inline-editor .actions { flex-wrap: wrap; }
#job-detail-controls > .button { margin: .2rem .5rem .2rem 0; }
.job-workspace > .card { margin-bottom: 1.2rem; }
.documents-toolbar { display: flex; gap: 1rem; justify-content: space-between; align-items: flex-end; margin: .5rem 0 .7rem; }
.documents-toolbar .field { margin: 0; flex: 1; max-width: 440px; }
.documents-toolbar > .actions { flex-wrap: wrap; }
.document-list { list-style: none; padding: 0; margin: 0; }
.document-row { display: flex; align-items: center; gap: 1rem; padding: 1rem 0; border-top: 1px solid var(--line); }
.document-info { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.document-info strong { font-size: .9rem; font-weight: 650; }
.document-info .help { margin: .25rem 0 0; }
.document-mark { display: grid; place-items: center; width: 38px; height: 44px; flex: none; border: 1px solid var(--line); border-radius: 7px; background: var(--bg); color: var(--muted); font-size: 1.2rem; }
.document-actions { flex: none; flex-wrap: wrap; }
.management-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(240px, .8fr); gap: 1.3rem; align-items: start; }
.management-grid .card { min-width: 0; }
#settings-project-roles { grid-column: 1 / -1; }
#settings-project-roles > form { max-width: none; }
#settings-permission-profiles { grid-column: 1 / -1; }
#settings-permission-profiles > form { max-width: none; }
.permission-profile-settings { display: grid; gap: .8rem; }
.permission-profile-content > .field { max-width: 34rem; margin-bottom: 0; }
.permission-profile-options { padding: 1rem; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; }
.permission-profile-options > .field { max-width: 34rem; }
.permission-profile-tool-options, .permission-profile-area-options { display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; }
.permission-profile-tool-options > .help { flex-basis: 100%; margin: 0 0 .75rem; }
.permission-profile-options h4 { margin: 0 0 .5rem; }
.permission-profile-job-options { display: grid; gap: .35rem; max-height: 22rem; overflow-y: auto; }
.permission-profile-settings .check { display: flex; align-items: center; gap: .6rem; min-height: 40px; }
.permission-profile-settings .check input { flex: none; width: 1.15rem; height: 1.15rem; accent-color: var(--accent); }
.permission-profile-settings select { min-height: 44px; width: 100%; padding: .6rem .7rem; color: var(--ink); background: var(--input); border: 1px solid var(--line-strong); border-radius: 9px; }
.project-role-list, .project-role-user-list { display: grid; gap: .7rem; }
.project-role-row, .project-role-add { display: grid; grid-template-columns: minmax(12rem, 1fr) minmax(12rem, auto) auto; align-items: end; gap: .75rem; }
.project-role-user-row { display: grid; grid-template-columns: minmax(12rem, 1fr) minmax(12rem, 1fr) minmax(12rem, 1fr); gap: .75rem; align-items: center; }
.project-role-add { margin: 1rem 0 1.5rem; }
.project-role-row .field, .project-role-add .field, .project-role-user-row .field { margin-bottom: 0; }
.project-role-row label, .project-role-add label { margin-bottom: 0; }
.project-role-row input[type="checkbox"], .project-role-add input[type="checkbox"] { width: auto; }
.project-team-role > label, .project-team-editor > label { display: block; margin: .6rem 0 .4rem .7rem; font-size: .8rem; font-weight: 650; }
.project-role-settings .check { display: flex; align-items: center; gap: .5rem; min-height: 44px; font-size: .8rem; }
.project-role-settings .check input { width: 1.15rem; height: 1.15rem; accent-color: var(--accent); }
.project-team-role > select { width: 100%; }
.project-team-additional-controls > select { flex: 1 1 18rem; min-width: 0; }
.project-team-additional-controls { margin: .4rem 0 .7rem; }
.project-team-additional-list { padding: 0; list-style: none; }
.project-team-additional-list li { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin: .5rem 0; }
@media (max-width: 720px) {
  .project-role-row, .project-role-add, .project-role-user-row { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
}
.settings-refresh { margin-top: 1.4rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.settings-refresh .help { margin-bottom: 0; }
.team-toolbar { display: flex; align-items: flex-end; flex-wrap: wrap; gap: .8rem; margin: 1.2rem 0 .7rem; }
.team-toolbar .field { margin-bottom: 0; flex: 1 1 200px; }
.team-toolbar .field:has(select) { flex: 0 1 200px; }
.team-list { list-style: none; padding: 0; margin: 0; }
.team-row, .invitation-row { border-top: 1px solid var(--line); padding: 1.2rem 0; min-width: 0; }
.team-row-heading { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: .8rem; }
.team-row-heading > div:first-child { flex: 1 1 200px; min-width: 0; }
.team-row h3, .invitation-row h3 { margin: 0 0 .35rem; font-size: .95rem; overflow-wrap: anywhere; }
.team-badges { display: flex; flex-wrap: wrap; gap: .25rem; }
.team-row .inline-editor { max-width: 850px; }
.team-row .inline-editor h4 { margin: 0 0 1rem; }
.team-advanced { margin: .6rem 0 0; }
.team-advanced > summary { color: var(--muted); font-size: .78rem; font-weight: 500; }
.team-workspace .actions { flex-wrap: wrap; }
.invitation-list .help { margin: .2rem 0; }
.workspace-content > .notice, .card > .notice { margin: .8rem 0 1rem; }
.member-list > li { max-width: 850px; }
.member-list > li > .button { margin: .75rem .5rem 0 0; }
.member-list .grid { max-width: 760px; margin-top: .85rem; }
.badge { display: inline-block; font-size: .71rem; letter-spacing: .01em; background: var(--success-bg); color: var(--success); border: 1px solid var(--success-line); border-radius: 100px; padding: .15rem .6rem; margin: .15rem .25rem .3rem 0; overflow-wrap: anywhere; }
.badge.neutral { background: var(--bg); color: var(--muted); border-color: var(--line); }
.divider { border: 0; border-top: 1px solid var(--line); margin: 1.5rem 0; }
.summary { display: grid; grid-template-columns: 10rem minmax(0, 1fr); gap: .45rem 1rem; margin: 1rem 0; }
.summary dt { color: var(--muted); font-size: .85rem; }
.summary dd { margin: 0; font-weight: 600; font-size: .9rem; overflow-wrap: anywhere; }
.tabs:not(.workspace-tabs) { display: flex; gap: .3rem; flex-wrap: wrap; padding-bottom: .7rem; border-bottom: 1px solid var(--line); margin-bottom: 1.4rem; }
.tabs:not(.workspace-tabs) .button[aria-current=page] { background: var(--accent-soft); color: var(--accent-dark); border-color: var(--accent); }
.empty { padding: 1.5rem 0; color: var(--muted); }
.read-only { background: var(--bg); border-left: 3px solid var(--line-strong); border-radius: 6px; padding: .8rem 1rem; font-size: .83rem; }
.step-indicator { list-style: none; display: flex; flex-wrap: wrap; gap: .55rem; font-size: .76rem; color: var(--muted); margin: 1rem 0 1.5rem; padding: .8rem 1rem; border-radius: 8px; background: var(--bg); }
.step-indicator strong { color: var(--accent-dark); }

/* Shared existing business, offline and recovery surfaces. */
.notice, .feedback { margin: 1rem 1.5rem 0; padding: .8rem 1rem; border: 1px solid var(--warning-line); background: var(--warning-bg); color: var(--warning); border-radius: 9px; font-size: .85rem; white-space: pre-line; overflow-wrap: anywhere; }
.feedback { background: var(--success-bg); border-color: var(--success-line); color: var(--success); }
.feedback.error { background: var(--danger-bg); border-color: var(--danger-line); color: var(--danger); }
.build-notes { margin: 1rem 0 .5rem; border-top: 1px solid var(--line-strong); padding-top: .35rem; }
.build-notes > summary { font-size: .8rem; color: var(--muted); }
.build-notes .card { margin-top: .5rem; box-shadow: none; background: var(--surface); }
.unavailable { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .8rem; }
.unavailable span { background: var(--hover); border-radius: 5px; padding: .25rem .6rem; color: var(--muted); font-size: .76rem; }
.danger-zone { border-color: var(--danger-line); }
.inline-confirm { border-left: 3px solid var(--warning-line); padding: 1rem; background: var(--warning-bg); color: var(--warning); margin-top: 1rem; overflow-wrap: anywhere; }
.unsaved-navigation { position: fixed; z-index: 300; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(560px, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); overflow: auto; margin: 0; border-radius: 10px; box-shadow: 0 0 0 100vmax #171d2673, var(--shadow-lift); }
.token-output { width: 100%; font: .85rem ui-monospace, SFMono-Regular, Consolas, monospace; word-break: break-all; }
code { font: .85em ui-monospace, SFMono-Regular, Consolas, monospace; background: var(--hover); padding: .15rem .3rem; border-radius: 3px; overflow-wrap: anywhere; }
.form-status { font-size: .83rem; color: var(--muted); }
details { margin: .8rem 0; }
summary { cursor: pointer; font-weight: 650; min-height: 44px; padding-block: .55rem; }
.settings-footnote { margin-top: 1rem; font-size: .81rem; color: var(--muted); }
.table-scroll { overflow-x: auto; max-width: 100%; margin: 1rem 0; }
.table-scroll table { width: 100%; border-collapse: collapse; font-size: .83rem; text-align: left; }
.table-scroll th, .table-scroll td { padding: .7rem .8rem; border-bottom: 1px solid var(--line); vertical-align: top; overflow-wrap: anywhere; min-width: 7rem; }
.table-scroll th { color: var(--muted); font-weight: 650; background: var(--bg); white-space: nowrap; }
.table-hint { display: none; font-size: .78rem; color: var(--muted); margin: .6rem 0 0; }
.record-entry { padding: 1rem 0; border-top: 1px solid var(--line); }
.record-entry > .button { margin-right: .5rem; margin-bottom: .4rem; }
.document-preview { white-space: pre-wrap; overflow-wrap: anywhere; font: .85rem/1.6 ui-monospace, SFMono-Regular, Consolas, monospace; background: var(--bg); padding: 1rem; border: 1px solid var(--line); border-radius: 6px; }
.documents-panel { min-width: 0; padding: 1rem; background: var(--paper); border: 1px solid var(--line); border-radius: 8px; }
.documents-panel .document-preview[role="dialog"] { position: fixed; z-index: 100; inset: 4vh max(1rem, calc((100vw - 1120px) / 2)); display: flex; flex-direction: column; gap: .65rem; white-space: normal; font: inherit; background: var(--paper); box-shadow: 0 0 0 100vmax #18232d88; overflow: auto; }
.documents-panel .document-preview[role="dialog"] > h3 { margin: 0; }
.document-preview-content { min-width: 0; }
.document-preview-content .ct-pv-body { overflow: auto; max-height: 70vh; background: var(--bg); text-align: center; }
.document-preview-content canvas, .document-preview-content img { max-width: 100%; height: auto; display: block; margin: auto; }
.document-preview-text { white-space: pre-wrap; overflow-wrap: anywhere; text-align: left; font: .85rem/1.5 ui-monospace, SFMono-Regular, Consolas, monospace; padding: .75rem; }
.site-footer { display: flex; justify-content: space-between; gap: 1rem; margin: 0 1.5rem; padding: 1rem 0 1.8rem; border-top: 1px solid var(--line-strong); font-size: .72rem; color: var(--muted); }

@media (max-width: 1100px) {
  .app-toolbar { gap: .65rem; }
  .app-toolbar > .brand { font-size: .95rem; }
  .button.job-context { flex: 1 1 200px; max-width: none; }
  .toolbar-context { flex-basis: 180px; }
  .app-toolbar > .actions { margin-left: auto; }
  .site-footer { margin-inline: 1.5rem; }
}
@media (max-width: 760px) {
  .rich-job-line { align-items: flex-start; flex-wrap: wrap; }
  .rich-job-actions { justify-content: flex-start; }
  .rich-job-row > .rich-job-panel { padding: 1rem .8rem; }
  .rich-job-fields { grid-template-columns: minmax(0, 1fr); }
  .rich-job-address-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rich-create-dialog { padding: 1rem; }
  main { padding: 1.1rem 1rem 2rem; }
  .site-header { padding: .65rem 1rem; }
  .environment { max-width: 175px; font-size: .68rem; }
  .app-toolbar { gap: .7rem; padding: .8rem; margin-bottom: 1.25rem; }
  .app-toolbar > .brand { flex: 1; }
  .tool-launcher { margin-left: auto; }
  .tool-menu { left: .8rem; width: calc(100% - 1.6rem); max-width: none; }
  .button.job-context { flex-basis: 100%; max-width: none; }
  .job-context strong { white-space: normal; overflow-wrap: anywhere; }
  .toolbar-context { padding: 0; border: 0; flex: 1 1 150px; }
  .app-toolbar > .actions { flex: 0 1 auto; }
  .app-toolbar .actions .button { padding-inline: .65rem; }
  .tool-shortcuts { gap: .4rem; margin-bottom: 1.1rem; }
  .tool-shortcuts .button { flex: none; font-size: .8rem; padding-inline: .7rem; }
  .workspace-grid, .grid { grid-template-columns: minmax(0, 1fr); }
  .management-grid { grid-template-columns: minmax(0, 1fr); }
  .onboarding-grid { grid-template-columns: minmax(0, 1fr); }
  .onboarding-wrap { margin-top: .3rem; }
  .team-toolbar .field, .team-toolbar .field:has(select) { flex-basis: 100%; }
  .team-row-heading > .actions { flex-basis: 100%; }
  .page-heading, .module-heading { display: block; }
  .page-heading > .actions, .module-heading > .actions { margin-top: .85rem; }
  .card { padding: 1.2rem; }
  .card.narrow { padding: 1.4rem; }
  .narrow { margin: .7rem auto; }
  .site-footer { display: block; margin: 0 1rem; padding-left: 0; padding-right: 0; }
  .site-footer span { display: block; margin: .3rem 0; }
  .notice, .feedback { margin: 1rem 1rem 0; }
  .summary { grid-template-columns: minmax(0, 1fr); gap: .1rem; }
  .summary dd { margin-bottom: .6rem; }
  .job-line { align-items: flex-start; }
  .jobs-toolbar { flex-wrap: wrap; gap: .4rem; }
  .jobs-toolbar .field { flex-basis: 100%; max-width: none; }
  .documents-toolbar { flex-wrap: wrap; }
  .documents-toolbar .field { flex-basis: 100%; max-width: none; }
  .document-row { flex-wrap: wrap; gap: .65rem; }
  .document-actions { flex-basis: 100%; }
  .inline-editor { padding: .9rem; }
  .result-count { padding-bottom: 0; }
  .table-hint { display: block; }
  .field input:not([type=checkbox]):not([type=file]), .field select, .field textarea { font-size: 16px; }
}
@media (max-width: 380px) {
  main { padding-inline: .75rem; }
  .site-header { padding-inline: .75rem; gap: .65rem; }
  .brand { font-size: .95rem; }
  .brand-mark { width: 26px; height: 26px; }
  .environment { max-width: 140px; }
  .app-toolbar > .brand { font-size: .85rem; gap: .4rem; padding-right: 0; }
  .tool-launcher > summary { padding-inline: .65rem; }
  .tool-menu, .tool-menu nav { grid-template-columns: minmax(0, 1fr); }
  .card, .card.narrow { padding: 1rem; }
  .job-line:not(.job-card .job-line) { flex-wrap: wrap; }
  .actions > .button { flex-shrink: 1; }
}
@media (prefers-reduced-motion: no-preference) {
  button, a, .tool-launcher > summary { transition: background-color .12s, border-color .12s; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
@media print {
  .site-header, .app-toolbar, .tool-shortcuts, .site-footer, .skip-link { display: none; }
  main { max-width: none; padding: 0; }
  .card { box-shadow: none; break-inside: avoid; }
}

/* Scoped All Tools preserves the familiar compact launcher inside the toolbar. */
.current-tool { color: var(--muted); font-size: .85rem; font-weight: 650; }
.tool-menu > .workspace-tool-launcher { grid-column: 1 / -1; min-width: 0; padding: .4rem; }
.workspace-tool-launcher h2 { margin: .25rem 0; font-size: 1rem; }
.workspace-tool-launcher h3 { margin: .8rem 0 .35rem; font-size: .8rem; color: var(--muted); }
.workspace-tool-launcher .help { font-size: .75rem; margin: .35rem 0; }
.workspace-tool-launcher .tools-grid { display: grid; gap: .25rem; }
.workspace-tool-launcher .tool-with-star { display: grid; grid-template-columns: minmax(0, 1fr) repeat(3, 2rem); align-items: center; gap: .2rem; }
.workspace-tool-launcher .tools-item, .workspace-tool-launcher .tool-star { border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--ink); padding: .5rem; min-width: 0; text-align: left; cursor: pointer; }
.workspace-tool-launcher .tools-item.active { background: var(--accent-soft); color: var(--accent-dark); font-weight: 650; }
.workspace-tool-launcher .tools-item:hover, .workspace-tool-launcher .tool-star:hover { background: var(--bg); }
.workspace-tool-launcher .tool-star { text-align: center; font-size: 1.15rem; }
.workspace-tool-launcher .tool-with-star > .button { padding: .4rem; justify-content: center; text-align: center; }
.workspace-tool-launcher .tool-launcher-recovery { overflow-wrap: anywhere; }
.workspace-current-dropdown { position: relative; flex: 0 0 auto; margin: 0; }
.workspace-current-dropdown > summary { cursor: pointer; list-style: none; padding: .55rem .65rem; border: 1px solid var(--line-strong); border-radius: 5px; }
.workspace-current-dropdown > .tool-menu { width: 320px; max-width: min(320px, 80vw); left: 0; top: calc(100% + .25rem); grid-template-columns: 1fr; }
.workspace-tool-favorites { display: flex; align-items: center; flex: 1 1 120px; flex-wrap: wrap; gap: .3rem; }
.workspace-tool-favorites .button { padding: .4rem .6rem; font-size: .8rem; }
@media(max-width: 700px) { .workspace-current-dropdown > .tool-menu { left: auto; right: 0; } }

/* Current shell only. Ported from retained styles.css (picker, tools-jobrow,
   toolLaunch and favbar) and ui-refinements.css (header/current-tool menu).
   The hosted controller keeps the same controls on mobile instead of loading
   the legacy mobilebar and its separate navigation/controller. */
.retained-shell {
  --red: var(--accent);
  --ui-selected-bg: var(--accent-soft);
  --ui-selected-ink: var(--accent-dark);
  --ui-selected-border: var(--red);
}
.retained-shell .app-toolbar.favbar {
  position: sticky;
  top: 0;
  z-index: 54;
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 12px;
  height: 76px;
  min-height: 76px;
  padding: 10px 18px;
  margin: 0 0 24px;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: var(--bg);
  box-shadow: none;
}
.retained-shell .favbar > .tl-fab {
  position: static;
  flex: 0 0 44px;
  margin: 0;
}
.retained-shell .tl-fab > .tl-burger {
  display: grid;
  place-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  border: 1px solid #33363c;
  border-radius: 10px;
  background: #17191d;
  color: #e6e8ee;
  font-size: 16px;
  font-weight: 800;
  line-height: 1;
  list-style: none;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .25);
}
.retained-shell .tl-fab > .tl-burger::after { content: none; }
.retained-shell .tl-fab > .tl-burger::-webkit-details-marker { display: none; }
.retained-shell .tl-fab > .tl-burger:hover { border-color: var(--blue); }
.retained-shell .favbar > .favbar-brand {
  /* The retained logo has a 96px chip; the hosted text wordmark may be wider. */
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  gap: 8px;
  min-width: 96px;
  height: 44px;
  padding: 0;
  border-radius: 8px;
  background: var(--paper);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -.02em;
}
.retained-shell .favbar-brand .logo { display: block; width: 84px; height: 38px; }
.retained-shell .favbar-jobcol {
  display: flex;
  align-items: center;
  align-self: center;
  flex: 0 0 clamp(280px, 24%, 370px);
  min-width: 0;
  width: auto;
  padding: 0;
  margin: 0;
  border: 0;
}
.retained-shell .favbar .favbar-job {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 18px;
  align-items: center;
  gap: 2px 10px;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  max-width: none;
  height: 54px;
  min-height: 54px;
  padding: 8px 12px;
  border: 1px solid var(--ui-selected-border);
  border-radius: 9px;
  background: var(--ui-selected-bg);
  color: var(--ui-selected-ink);
  font-family: inherit;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: -.1px;
  text-align: left;
  cursor: pointer;
}
.retained-shell .favbar .favbar-job::after { content: none; }
.retained-shell .favbar .favbar-job:hover:not(:disabled) {
  background: var(--ui-selected-bg);
  box-shadow: 0 0 0 1px var(--ui-selected-border);
}
.retained-shell .favbar .favbar-job.none {
  border: 1px dashed var(--line-strong);
  background: var(--panel);
  color: var(--ink);
}
.retained-shell .favbar-job .jb-k {
  grid-column: 1;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: .6px;
  text-transform: uppercase;
  opacity: .85;
}
.retained-shell .favbar-job.none .jb-k { color: var(--muted); }
.retained-shell .favbar-job .jb-name {
  grid-column: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  line-height: 1.35;
}
.retained-shell .favbar-job .jb-chev {
  grid-column: 2;
  grid-row: 1 / 3;
  align-self: center;
  font-size: 17px;
  opacity: .7;
}
.retained-shell .favbar-divider {
  align-self: center;
  flex: none;
  width: 1px;
  height: 44px;
  margin: 0 3px;
  background: var(--line-strong);
}
.retained-shell .favbar-current { position: static; flex: 0 0 156px; width: 156px; margin: 0; }
.retained-shell .favbar-current > summary { width: 100%; list-style: none; }
.retained-shell .favbar-current > summary::-webkit-details-marker { display: none; }
.retained-shell .favbar-current-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.retained-shell .favbar-chevron { flex: none; margin-left: auto; padding-left: 9px; font-size: 12px; }
.retained-shell .favbar-tools {
  display: flex;
  align-items: center;
  flex: 1 1 0;
  flex-wrap: nowrap;
  gap: 8px;
  min-width: 0;
  height: 54px;
  padding: 0;
  overflow-x: auto;
  /* Keep every allowed favorite reachable without the legacy clipping script. */
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
}
.retained-shell .favbar .favbar-pill {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  flex: none;
  gap: 6px;
  min-height: 38px;
  padding: 8px 11px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--paper);
  color: var(--ink);
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
  text-align: left;
  white-space: nowrap;
  cursor: pointer;
}
.retained-shell .favbar-pill svg { flex: none; width: 14px; height: 14px; }
.retained-shell .favbar .favbar-pill:hover:not(:disabled) { background: var(--paper); border-color: var(--red); }
.retained-shell .favbar .favbar-pill.on,
.retained-shell .favbar .favbar-pill[aria-current=page] {
  border-color: var(--ui-selected-border);
  background: var(--ui-selected-bg);
  color: var(--ui-selected-ink);
}
.retained-shell .favbar-menu {
  position: absolute;
  top: calc(100% - 12px);
  left: 50%;
  z-index: 60;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  width: 960px;
  max-width: calc(100% - 32px);
  max-height: calc(100dvh - 100px);
  overflow: auto;
  padding: 12px 8px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  background: var(--panel);
  box-shadow: var(--shadow-lift);
  transform: translateX(-50%);
}
.retained-shell .favbar-menu-group { min-width: 0; padding: 0 8px; }
.retained-shell .favbar-menu-group + .favbar-menu-group { border-left: 1px solid var(--line); }
.retained-shell .favbar-menu-heading {
  margin: 0 0 6px;
  padding: 6px 12px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .5px;
  text-transform: uppercase;
}
.retained-shell .favbar-menu-tool {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  width: 100%;
  min-height: 44px;
  padding: 9px 12px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--ink);
  font-family: inherit;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.45;
  text-align: left;
  cursor: pointer;
}
.retained-shell .favbar-menu-tool svg { flex: none; width: 18px; height: 18px; }
.retained-shell .favbar-menu-tool:hover:not(:disabled) { background: var(--bg); }
.retained-shell .favbar-menu-tool.on,
.retained-shell .favbar-menu-tool[aria-current=page] { background: var(--ui-selected-bg); color: var(--ui-selected-ink); }

/* Full-screen All Tools, using the existing preference controller and nodes. */
.retained-shell.tl-overlay {
  color: var(--ink);
  position: fixed;
  inset: 0;
  z-index: 80;
  overflow: auto;
  background: var(--bg);
  font-size: 14px;
  line-height: 1.45;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
.retained-shell .tl-panel { max-width: 980px; min-width: 0; margin: 0 auto; padding: 18px 18px 40px; }
.retained-shell .tl-head { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
.retained-shell .tl-head h2 { flex: 1; margin: 0; font-size: 20px; }
.retained-shell .tl-hint { margin: 0 0 14px; color: var(--muted); font-size: 12.5px; }
.retained-shell .tl-close {
  flex: none;
  min-height: 44px;
  padding: 8px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: transparent;
  color: var(--ink);
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
}
.retained-shell .tl-panel .workspace-tool-launcher { min-width: 0; padding: 0; }
.retained-shell .tl-panel .workspace-tool-launcher > h2 { display: none; }
.retained-shell .tl-panel .workspace-tool-launcher h3 {
  margin: 18px 0 8px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .7px;
  text-transform: uppercase;
}
.retained-shell .tl-panel .workspace-tool-launcher .help { font-size: 12.5px; }
.retained-shell .tl-panel .field { margin: 12px 0 8px; }
.retained-shell .tl-panel label { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .7px; text-transform: uppercase; }
.retained-shell .tl-panel input:not([type=checkbox]) { background: var(--input); color: var(--ink); border-color: var(--line); min-height: 40px; }
.retained-shell .tl-panel input::placeholder { color: var(--muted); }
.retained-shell .tl-panel .button.secondary { background: var(--paper); color: var(--ink); border-color: var(--line); }
.retained-shell .tl-panel .button.secondary:hover:not(:disabled) { background: var(--hover); }
.retained-shell .tl-panel .tool-job-context { margin: 8px 0 16px; }
.retained-shell .tl-panel .workspace-tool-launcher > [role=status] { margin-top: 18px; }
.retained-shell .tl-panel #tool-launcher-refresh { min-height: 32px; padding: 5px 10px; font-size: 12px; }
.retained-shell .tl-panel .tools-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}
.retained-shell .tl-panel .tool-with-star {
  position: relative;
  display: block;
  min-width: 0;
  padding: 0;
  border: 1.5px solid var(--line);
  border-radius: 14px;
  background: var(--panel);
  touch-action: pan-y;
}
.retained-shell .tl-panel .tool-with-star:hover { border-color: var(--blue); }
.retained-shell .tl-panel .tool-with-star[draggable=true],
.retained-shell .tl-panel .tool-with-star[draggable=true] .tools-item { cursor: grab; }
.retained-shell .tl-panel .tool-with-star[data-dragging=true] { opacity: .45; }
.workspace-tool-launcher .tool-drag-preview {
  position: fixed;
  z-index: 250;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 18px 10px 14px;
  border: 2px solid var(--blue, #3975f6);
  border-radius: 14px;
  background: var(--panel, #1e232b);
  color: var(--ink);
  box-shadow: 0 12px 28px #0005;
  opacity: .82;
  pointer-events: none;
  user-select: none;
  font-size: 13.5px;
  text-align: center;
}
.workspace-tool-launcher .tool-drag-preview svg { width: 30px; height: 30px; flex: none; }
.workspace-tool-launcher .tool-drag-star {
  position: absolute;
  top: 3px;
  right: 3px;
  padding: 9px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--bg);
  color: var(--muted);
  font-size: 19px;
  line-height: 1;
}
.workspace-tool-launcher .tool-drag-star[data-starred=true] { color: var(--star); }
.retained-shell .tl-panel .tool-with-star[data-drop-position=before] { box-shadow: -4px 0 var(--blue); }
.retained-shell .tl-panel .tool-with-star[data-drop-position=after] { box-shadow: 4px 0 var(--blue); }
.retained-shell .tl-panel .tools-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 94px;
  padding: 18px 10px 14px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--ink);
  font-size: 13.5px;
  font-weight: 700;
  text-align: center;
}
.retained-shell .tl-panel .tools-item svg { width: 30px; height: 30px; flex: none; }
.retained-shell .tl-panel .tools-item:hover { background: var(--hover); }
.retained-shell .tl-panel .tools-item.active { box-shadow: 0 0 0 2px var(--blue) inset; }
.retained-shell .tl-panel .tool-star {
  position: absolute;
  top: 3px;
  right: 3px;
  min-width: 38px;
  min-height: 38px;
  padding: 9px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--bg);
  color: var(--muted);
  font-size: 19px;
  line-height: 1;
  text-align: center;
}
.retained-shell .tl-panel .tool-star:hover { background: var(--hover); }
.retained-shell .tl-panel .tool-star[aria-pressed=true] { color: var(--star); }
/* Keep keyboard reordering without the old permanent arrow row. */
.retained-shell .tl-panel .tool-move { position: absolute; width: 1px; height: 1px; min-height: 0; padding: 0; overflow: hidden; clip-path: inset(50%); }
.retained-shell .tl-panel .tool-move-earlier { left: 3px; bottom: 3px; }
.retained-shell .tl-panel .tool-move-later { right: 3px; bottom: 3px; }
.retained-shell .tl-panel .tool-move:focus-visible { width: 36px; height: 30px; min-height: 30px; clip-path: none; z-index: 1; }
.retained-shell .tl-panel .tools-utilities { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.retained-shell .tl-foot {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 26px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 12.5px;
}
.retained-shell .tl-foot .toolbar-context { flex: 1 1 220px; padding-left: 0; border: 0; }
.retained-shell .tl-foot .actions { margin: 0; }

/* The job-only picker is body-mounted, so it carries its own shell scope. */
.retained-shell.picker-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow: auto;
  padding: 20px;
  background: rgba(23, 25, 29, .5);
  font-size: 14px;
  line-height: 1.45;
  overscroll-behavior: contain;
}
.retained-shell.picker-overlay .picker-box {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  max-width: 640px;
  max-height: 80vh;
  margin: auto;
  border-radius: 14px;
  background: var(--panel);
  box-shadow: 0 18px 60px rgba(23, 25, 29, .32);
}
.retained-shell.picker-overlay .picker-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: none;
  gap: 10px;
  padding: 15px 18px;
  border-bottom: 1px solid var(--line);
  font-size: 15px;
  font-weight: 700;
}
.retained-shell.picker-overlay .picker-head h2 { margin: 0; font-size: inherit; }
.retained-shell.picker-overlay .picker-head .button,
.retained-shell.picker-overlay .picker-head .btn { flex: none; }
.retained-shell.picker-overlay .btn {
  min-height: 44px;
  padding: 9px 17px;
  border: 0;
  border-radius: 9px;
  background: var(--red);
  color: #fff;
  font-size: 13px;
  font-weight: 650;
  letter-spacing: .1px;
  cursor: pointer;
}
.retained-shell.picker-overlay .btn.ghost { border: 1px solid var(--line-strong); background: var(--paper); color: var(--ink); }
.retained-shell.picker-overlay .btn.ghost:hover:not(:disabled) { border-color: var(--muted); background: var(--bg); }
.retained-shell.picker-overlay .btn.sm { padding: 6px 11px; font-size: 12px; }
.retained-shell.picker-overlay .btn.x {
  min-width: 44px;
  padding: 0 6px;
  border: 0;
  background: none;
  color: var(--danger);
  font-size: 18px;
  line-height: 1;
}
.retained-shell.picker-overlay .btn.x:hover:not(:disabled) { color: var(--accent-dark); }
.retained-shell.picker-overlay .footnote { margin: 8px 0 0; color: var(--muted); font-size: 12px; font-weight: 400; }
.retained-shell.picker-overlay .picker-head .footnote { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.retained-shell.picker-overlay .pill {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent-dark);
  font-size: 10px;
  font-weight: 700;
}
.retained-shell.picker-overlay .job-pick-star { color: var(--star); }
.retained-shell.picker-overlay .picker-search { flex: none; padding: 10px 14px 0; margin: 0; }
.retained-shell.picker-overlay .picker-search .field { margin: 0; }
.retained-shell.picker-overlay .picker-list {
  flex: 1 1 auto;
  min-height: 180px;
  max-height: 62vh;
  overflow-y: auto;
  padding: 8px 14px 12px;
}
.retained-shell.picker-overlay .picker-foot {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  flex: none;
  gap: 8px;
  padding: 12px 18px;
  border-top: 1px solid var(--line);
}
.retained-shell.picker-overlay .picker-foot .help { flex: 1 1 220px; margin: 0; }
.retained-shell.picker-overlay .picker-foot .footnote { flex: 1 1 220px; margin: 0; }
.retained-shell.picker-overlay .picker-pages {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  flex: none;
  gap: 8px;
  padding: 0 18px 12px;
}
.retained-shell.picker-overlay .picker-pages .footnote { flex: 1 1 160px; margin: 0; }
.retained-shell.picker-overlay .tools-jobrow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  min-height: 44px;
  padding: 11px 13px;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: none;
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.retained-shell.picker-overlay .tools-jobrow:last-child { border-bottom: 0; }
.retained-shell.picker-overlay .tools-jobrow > b { min-width: 0; overflow-wrap: anywhere; }
.retained-shell.picker-overlay .tools-jobrow > span { color: var(--muted); white-space: nowrap; }
.retained-shell.picker-overlay .tools-jobrow:hover:not(:disabled) { background: var(--accent-soft); }
.retained-shell.picker-overlay .tools-jobrow.cur { background: var(--accent-soft); }

@media (min-width: 901px) and (max-width: 1100px) {
  .retained-shell .app-toolbar.favbar { gap: 9px; padding-right: 12px; }
  .retained-shell .favbar > .favbar-brand { min-width: 80px; font-size: 12px; }
  .retained-shell .favbar-brand .logo { width: 70px; }
  .retained-shell .favbar-jobcol { flex-basis: 250px; }
  .retained-shell .favbar .favbar-pill { padding: 8px 10px; }
}
@media (pointer: coarse), (max-width: 1100px) {
  .retained-shell .favbar .favbar-pill,
  .retained-shell .tl-panel .tool-star { min-height: 44px; }
}
@media (pointer: coarse) {
  .retained-shell .tl-panel .tools-item { padding-bottom: 52px; }
  .retained-shell .tl-panel .tool-move { width: 44px; height: 44px; min-height: 44px; clip-path: none; }
}
@media (max-width: 700px) {
  .retained-shell .tl-panel .tools-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .retained-shell .tl-panel .tools-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  /* Retained mobilebar: compact top controls, selected job below. Same hosted
     DOM order/handlers; no duplicate navigation or alternate job authority. */
  .retained-shell .app-toolbar.favbar {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) minmax(100px, 156px);
    gap: 8px 10px;
    height: auto;
    min-height: 0;
    padding: 8px 12px;
    background: var(--panel);
    box-shadow: var(--shadow);
  }
  .retained-shell .favbar > .tl-fab { grid-column: 1; grid-row: 1; margin: 0; }
  .retained-shell .favbar > .favbar-brand {
    grid-column: 2;
    grid-row: 1;
    justify-content: flex-start;
    min-width: 0;
    font-size: 13px;
  }
  .retained-shell .favbar-brand .brand-mark { width: 24px; height: 24px; font-size: 14px; }
  .retained-shell .favbar-current { grid-column: 3; grid-row: 1; width: 100%; min-width: 0; }
  .retained-shell .favbar-jobcol { grid-column: 1 / -1; grid-row: 2; width: 100%; }
  .retained-shell .favbar .favbar-job { height: auto; min-height: 54px; padding: 9px 12px; }
  .retained-shell .favbar-job .jb-name { white-space: normal; overflow-wrap: anywhere; }
  .retained-shell .favbar-divider { display: none; }
  .retained-shell .favbar-tools { grid-column: 1 / -1; grid-row: 3; width: calc(100% - 54px); height: auto; min-height: 44px; }
  .retained-shell .favbar-tools:empty { display: none; }
  .retained-shell .favbar-menu {
    top: calc(100% - 4px);
    grid-auto-flow: row;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 0;
    max-width: calc(100% - 16px);
    max-height: 60dvh;
  }
  .retained-shell .favbar-menu-group + .favbar-menu-group { border-left: 0; }
  .retained-shell .favbar-menu-group:nth-child(even) { border-left: 1px solid var(--line); }
  .retained-shell .tl-panel { padding: 14px 14px 32px; }
  .retained-shell .tl-panel input:not([type=checkbox]) { font-size: 16px; }
  .retained-shell.picker-overlay { padding: 12px 12px calc(12px + env(safe-area-inset-bottom)); }
  .retained-shell.picker-overlay .picker-search input { font-size: 16px; }
  .retained-shell.picker-overlay .tools-jobrow { flex-wrap: wrap; gap: 4px 10px; }
  .retained-shell.picker-overlay .tools-jobrow > span { white-space: normal; overflow-wrap: anywhere; }
}
@media (max-width: 380px) {
  .retained-shell .app-toolbar.favbar { grid-template-columns: 44px minmax(0, 1fr) 112px; gap: 8px; }
  .retained-shell .favbar > .favbar-brand { font-size: 12px; gap: 5px; }
  .retained-shell .favbar-menu { grid-template-columns: minmax(0, 1fr); }
  .retained-shell .favbar-menu-group:nth-child(even) { border-left: 0; }
  .retained-shell .tl-panel .tools-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-height: 520px) {
  .retained-shell.picker-overlay .picker-box { max-height: none; }
}
@media print {
  :root[data-theme] { color-scheme: light; --bg: #fff; --paper: #fff; --panel: #fff; --surface: #fff; --ink: #222; --muted: #555; --input: #fff; --line: #ddd; --line-strong: #aaa; }
  .retained-shell .favbar, .retained-shell.tl-overlay, .retained-shell.picker-overlay { display: none; }
}

/* Drawings retains its compact tabs, discipline groups, set list and sheet
   review while inheriting the account's current app-wide appearance. */
.drawings-editor { width: 100%; min-width: 0; }
.drawings-tabs { display: flex; gap: 4px; margin: -3px 0 16px; border-bottom: 1px solid var(--line-strong); }
.drawings-tabs .button { border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: transparent; padding: 9px 16px; box-shadow: none; }
.drawings-tabs .button[aria-current=page] { border-bottom-color: var(--accent); color: var(--accent-dark); background: var(--accent-soft); }
.drawings-filters, .drawings-set-fields { display: grid; grid-template-columns: minmax(220px, 2fr) minmax(160px, 1fr) minmax(180px, 1fr); gap: 12px; align-items: end; margin-bottom: 10px; }
.drawings-set-fields { grid-template-columns: minmax(220px, 2fr) minmax(180px, 1fr); max-width: 800px; }
.drawings-editor .field { min-width: 0; margin: 0; }
.drawings-editor .field > label { padding-left: 9px; font-size: .79rem; }
.drawings-editor .field input, .drawings-editor .field select { width: 100%; min-width: 0; }
.drawings-editor .button { min-height: 36px; padding: 6px 12px; font-size: .82rem; }
.drawings-group { margin: 0 0 12px; border: 1px solid var(--line); border-radius: 7px; overflow: hidden; background: var(--panel); }
.drawings-group-toggle { width: 100%; padding: 9px 12px; border: 0; text-align: left; font-weight: 650; font-size: .84rem; color: var(--ink); background: var(--surface); }
.drawings-sheet-row { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(150px, auto) 58px auto; gap: 14px; align-items: center; padding: 9px 12px; border-top: 1px solid var(--line); font-size: .82rem; }
.drawings-sheet-label { display: grid; grid-template-columns: minmax(60px, 110px) minmax(0, 1fr); gap: 12px; align-items: center; }
.drawings-sheet-label > *, .drawings-sheet-set { overflow-wrap: anywhere; }
.drawings-sheet-set { color: var(--muted); font-size: .76rem; }
.drawings-revision-badge { color: var(--muted); font-size: .73rem; white-space: nowrap; }
.drawings-set-list { border-top: 1px solid var(--line); }
.drawings-set-row { display: grid; grid-template-columns: 1fr auto auto; gap: 20px; align-items: center; padding: 12px 8px; border-bottom: 1px solid var(--line); font-size: .86rem; }
.drawings-set-row p { margin: 3px 0 0; }
.drawings-file-picker { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; margin: 16px 0; padding: 16px; border: 1px dashed var(--line-strong); border-radius: 7px; background: var(--surface); }
.drawings-file-picker .field { flex: 1 1 300px; max-width: 560px; }
.drawings-file-picker .help { flex-basis: 100%; margin: 0; }
.drawings-upload-sheets { margin: 16px 0; }
.drawings-upload-row { display: grid; grid-template-columns: 55px minmax(95px, .7fr) minmax(180px, 1.5fr) minmax(120px, 1fr) minmax(170px, 1.3fr); gap: 10px; align-items: end; padding: 10px 0; border-bottom: 1px solid var(--line); }
.drawings-upload-page { align-self: center; font-size: .78rem; color: var(--muted); }
.drawings-upload-page .button { padding: 3px 5px; min-height: 30px; margin-top: 4px; font-size: .72rem; }
.drawings-upload-preview:not(:empty) { padding: 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); }
.drawings-review { margin-top: 16px; }
.drawings-review:empty { margin: 0; }
.drawings-review-rows { border: 1px solid var(--line); border-radius: 6px; overflow: hidden; margin: 10px 0; }
.drawings-review-row { display: grid; grid-template-columns: 65px 100px 1fr 130px; gap: 12px; padding: 9px 12px; border-bottom: 1px solid var(--line); font-size: .82rem; overflow-wrap: anywhere; }
.drawings-review-row:last-child { border-bottom: 0; }
.drawings-viewer-heading, .drawings-viewer-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 10px; }
.drawings-viewer-heading h2 { flex: 1 1 250px; margin: 0 10px; font-size: 1rem; }
.drawings-viewer-controls { align-items: end; }
.drawings-viewer-controls .field { flex: 1 1 290px; max-width: 550px; }
.drawings-canvas-host { min-height: 240px; max-height: 75vh; padding: 12px; overflow: auto; background: var(--hover); border: 1px solid var(--line-strong); border-radius: 6px; }
.drawings-canvas-host canvas { display: block; margin: 0 auto; box-shadow: var(--shadow-lift); background: #fff; }
.drawings-editor > .help:empty { display: none; }
@media (max-width: 900px) {
  .drawings-sheet-row { grid-template-columns: minmax(180px, 1fr) 48px auto; gap: 10px; }
  .drawings-sheet-set { grid-column: 1; grid-row: 2; }
  .drawings-sheet-row > .button { grid-column: 3; grid-row: 1 / 3; }
  .drawings-upload-row { grid-template-columns: 50px minmax(90px, 1fr) minmax(150px, 2fr); }
  .drawings-upload-row > .field:nth-last-child(2) { grid-column: 2; }
  .drawings-upload-row > .field:last-child { grid-column: 3; }
}
@media (max-width: 600px) {
  .drawings-filters { grid-template-columns: 1fr 1fr; }
  .drawings-filters > .field:first-child { grid-column: 1 / -1; }
  .drawings-set-fields { grid-template-columns: 1fr; }
  .drawings-sheet-row { grid-template-columns: minmax(0, 1fr) 40px auto; padding: 9px; gap: 8px; }
  .drawings-sheet-label { grid-template-columns: 1fr; gap: 2px; }
  .drawings-set-row { gap: 8px; }
  .drawings-upload-row { grid-template-columns: minmax(85px, 1fr) minmax(140px, 2fr); }
  .drawings-upload-page { grid-column: 1 / -1; }
  .drawings-upload-row > .field:nth-last-child(2) { grid-column: 1; }
  .drawings-upload-row > .field:last-child { grid-column: 2; }
  .drawings-review-row { grid-template-columns: 48px 75px 1fr; gap: 8px; }
  .drawings-review-row > span:last-child { grid-column: 2 / -1; }
  .drawings-viewer-heading h2 { order: -1; flex-basis: 100%; margin: 0 0 5px; }
  .drawings-viewer-controls .field { flex-basis: 100%; max-width: none; }
}

/* Screenshot-guided Drawings project. App theme and existing shared shell stay
   authoritative; only sheet pixels and overlay colors use fixed colors. */
.drawings-project { width: 100%; max-width: none; margin: 0; color: var(--ink); font-size: .85rem; }
.drawings-project .field { margin: 0; }
.drawings-project .field input, .drawings-project .field select, .drawings-project .field textarea { min-height: 38px; padding: .5rem .7rem; font-size: .85rem; border-radius: 8px; }
.drawings-project button { cursor: pointer; }
.drawings-project button:disabled { cursor: default; opacity: .5; }
.drawings-project .button { min-height: 38px; padding: .5rem .7rem; border-radius: 8px; font-size: .82rem; white-space: nowrap; }
.drawings-project input[type=checkbox] { width: 16px; height: 16px; min-height: 0; flex: none; accent-color: var(--accent); cursor: pointer; }
.drawings-project .help { font-size: .78rem; color: var(--muted); margin: .3rem 0; }
.drawings-project h3 { font-size: 1rem; margin: 0 0 .4rem; }
.drawings-project-offbar { display: flex; justify-content: flex-end; align-items: center; gap: 16px; min-height: 70px; padding: 8px 0 14px; }
.drawings-project-frame { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; box-shadow: var(--shadow); scroll-margin-top: 88px; }
.drawings-project-header { background: var(--panel); border-bottom: 1px solid var(--line); padding: 16px max(18px, calc((100% - 1120px) / 2)) 0; }
.drawings-project-header h2 { margin: 0 0 6px; font-size: 1.12rem; line-height: 1.6; }
.drawings-project .drawings-tabs { margin: 0; gap: 4px; border: 0; display: flex; overflow-x: auto; padding: 0; }
.drawings-project .drawings-tabs .button { background: transparent; border: 0; border-bottom: 3px solid transparent; border-radius: 0; color: var(--muted); padding: 10px 12px; }
.drawings-project .drawings-tabs .button[aria-current=page] { color: var(--accent-dark); border-bottom-color: var(--accent); }
.drawings-project-content { min-height: 380px; max-height: calc(100vh - 270px); overflow: auto; }
.drawings-project-list, .drawings-project-sets, .drawings-project-subsets, .drawings-project-settings { max-width: 1156px; margin: 0 auto; padding: 20px 18px; }
.drawings-project-status, .drawings-project-retry { max-width: 1120px; margin: 0 auto; padding: 8px 18px; color: var(--muted); }
.drawings-project-status:empty, .drawings-project-retry:empty { display: none; }
.drawings-project-recovery { max-width: 1120px; margin: 8px auto; padding: 12px 18px; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--panel); }
.drawings-project-recovery > button { margin: 4px 8px 4px 0; }
.drawings-project-recovery h3 { margin: 0 0 10px; }
.drawings-project-recovery td { overflow-wrap: anywhere; max-width: 360px; vertical-align: top; }
.drawings-project-filters { display: grid; grid-template-columns: minmax(180px, 1.35fr) auto minmax(160px, 1fr) minmax(180px, 1.15fr) auto; gap: 8px; align-items: center; }
.drawings-project-filters .field > label, .drawings-project-subset-create .field > label, .drawings-project-disciplines .field > label, .drawings-project-sets > .field > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.drawings-project-selection { display: flex; justify-content: space-between; align-items: center; padding: 7px 0 12px; border-bottom: 1px solid var(--line); color: var(--muted); }
.drawings-project-selection label, .drawings-discipline-choices label, .drawings-project-archive-toggle { display: inline-flex; gap: 8px; align-items: center; }
.drawings-discipline-menu { position: relative; }
.drawings-discipline-menu > summary { list-style: none; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--input); padding: 8px 12px; cursor: pointer; white-space: nowrap; }
.drawings-discipline-menu > summary::after { content: ' ▼'; margin-left: 6px; font-size: .75em; }
.drawings-discipline-choices { position: absolute; right: 0; z-index: 15; width: 260px; max-height: 340px; overflow: auto; padding: 8px; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--panel); box-shadow: var(--shadow-lift); }
.drawings-discipline-choices label { display: flex; padding: 9px 5px; }
.drawings-project-group { margin-top: 15px; }
.drawings-project-group-heading { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; }
.drawings-project-group-heading .button { border: 0; padding: 0; background: transparent; color: var(--muted); min-height: 25px; font-weight: 700; }
.drawings-project-group-rows { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.drawings-project-sheet-row { display: flex; align-items: center; gap: 12px; min-height: 72px; padding: 10px 14px; border-bottom: 1px solid var(--line); background: var(--panel); }
.drawings-project-sheet-row:last-child { border-bottom: 0; }
.drawings-project-sheet-open { flex: 1; min-width: 0; display: flex; align-items: center; gap: 14px; text-align: left; background: transparent; color: var(--ink); border: 0; padding: 0; }
.drawings-project-sheet-open > span { display: grid; gap: 2px; min-width: 0; }
.drawings-project-sheet-open strong { font: 700 .82rem ui-monospace, Consolas, monospace; }
.drawings-project-sheet-open span > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .82rem; }
.drawings-project-sheet-open canvas { max-width: 64px; max-height: 50px; width: 64px; height: auto; object-fit: contain; background: #fff; border: 1px solid var(--line-strong); border-radius: 3px; }
.drawings-project-sheet-revision { display: grid; justify-items: end; gap: 3px; color: var(--muted); }
.drawings-project-sheet-row > .button { border: 0; padding: 5px; min-width: 26px; background: transparent; color: var(--muted); }
.drawings-project .drawings-revision-badge { font-size: .69rem; white-space: nowrap; padding: 2px 9px; border-radius: 20px; background: var(--accent-soft); color: var(--accent-dark); }
.drawings-project-sets > .field { max-width: 320px; margin: 16px 0 10px; }
.drawings-project-archive-toggle { font-size: .75rem; color: var(--muted); }
.drawings-project-set-list { display: grid; gap: 12px; margin-top: 16px; }
.drawings-project-set-row, .drawings-project-auto-rule { background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 16px; }
.drawings-project-set-summary { display: flex; align-items: center; gap: 14px; }
.drawings-project-set-summary > div { flex: 1; }
.drawings-project-text-button { color: var(--ink); font: inherit; font-weight: 650; background: transparent; border: 0; padding: 0; text-align: left; }
.drawings-project-set-edit { display: grid; grid-template-columns: minmax(160px, 250px) 145px auto; gap: 12px; align-items: end; justify-content: start; border-top: 1px solid var(--line); margin-top: 14px; padding-top: 12px; }
.drawings-project-auto-rule { display: flex; align-items: end; gap: 12px; margin: 16px 0; }
.drawings-project-auto-rule > div:first-child { flex: 1; max-width: 450px; margin-right: 20px; }
.drawings-project-auto-rule .field { width: 96px; flex: none; }
.drawings-project-subset-create { display: grid; grid-template-columns: minmax(180px, 320px) 112px 125px auto auto; gap: 8px; align-items: center; justify-content: start; margin-bottom: 20px; }
.drawings-project-subset-tree, .drawings-project-ordered-sheets { border: 1px solid var(--line); background: var(--panel); border-radius: 10px; overflow: hidden; }
.drawings-project-folder-row, .drawings-project-subset-row { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.drawings-project-folder-row > .button:first-child, .drawings-project-subset-row > .button:first-child { flex: 1; min-width: 0; align-items: flex-start; text-align: left; border: 0; background: transparent; }
.drawings-project-subset-row > .button:first-child { display: grid; justify-content: start; gap: 4px; }
.drawings-project-subset-row small { color: var(--muted); font-weight: 400; }
.drawings-project-folder-row > .button:last-child, .drawings-project-subset-row > .button:not(:first-child) { border: 0; background: transparent; color: var(--muted); }
.drawings-project-tree-label { display: block; color: var(--muted); font-size: .68rem; padding: 5px 12px; border-bottom: 1px solid var(--line); }
.drawings-project-subset-heading { display: flex; gap: 10px; align-items: end; margin-top: 16px; }
.drawings-project-subset-heading > .field:first-child { flex: 1; max-width: 380px; }
.drawings-project-subset-heading > .field:nth-child(2) { width: 96px; }
.drawings-project-prefixes { display: flex; flex-wrap: wrap; gap: 5px; }
.drawings-project-prefixes label { position: relative; cursor: pointer; }
.drawings-project-prefixes input { position: absolute; opacity: 0; }
.drawings-project-prefixes span { display: block; border: 1px solid var(--line); border-radius: 50%; padding: 2px 7px; font-size: .75rem; }
.drawings-project-prefixes input:checked + span { background: var(--accent-soft); color: var(--accent-dark); border-color: var(--accent); }
.drawings-project-prefixes input:focus-visible + span { outline: 2px solid var(--accent); }
.drawings-project-subset-actions { display: flex; gap: 10px; align-items: center; margin: 15px 0; }
.drawings-project-subset-actions .help { flex: 1; }
.drawings-project-ordered-row { display: flex; gap: 12px; align-items: center; border-bottom: 1px solid var(--line); padding: 12px 16px; }
.drawings-project-ordered-row > .button:nth-child(2) { flex: 1; justify-content: flex-start; text-align: left; border: 0; background: transparent; }
.drawings-project-settings-section { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 20px; margin-bottom: 22px; }
.drawings-project-disciplines { display: grid; gap: 8px; margin: 18px 0; }
.drawings-project-discipline-row { display: grid; grid-template-columns: 56px 1fr 34px 34px 38px; gap: 8px; }
.drawings-project-discipline-row .field:first-child input { font: 700 .78rem ui-monospace, Consolas, monospace; text-align: center; }
.drawings-project-layout-row { display: flex; align-items: center; gap: 16px; margin-top: 10px; }
.drawings-project-layout-row { flex-wrap: wrap; gap: 8px; }
.drawings-project-layout-row > strong { min-width: 140px; margin-right: auto; }
.drawings-storage-table { width: 100%; margin-block: 10px; border-collapse: collapse; }
.drawings-storage-table th, .drawings-storage-table td { padding: 7px 9px; text-align: left; border-bottom: 1px solid var(--line); }
.drawings-storage-table td { font-variant-numeric: tabular-nums; }
.drawings-storage-warning { border-left: 3px solid var(--accent); padding-left: 10px; font-weight: 600; }
.drawings-register-bulk { padding: 10px 0; flex-wrap: wrap; }
.drawings-bulk-review-list { max-height: 240px; overflow: auto; padding-left: 24px; }
.drawings-project-dialog.drawings-layout-editor { width: min(1180px, 94vw); }
.drawings-layout-editor .drawings-region-surface { height: 52vh; min-height: 280px; }
.drawings-project-backdrop { position: fixed; inset: 0; background: #0008; display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 24px; }
.drawings-project-dialog { background: var(--panel); border: 1px solid var(--line-strong); box-shadow: var(--shadow-lift); border-radius: 12px; padding: 22px; width: 440px; max-width: 100%; max-height: 85vh; overflow: auto; }
.drawings-project-dialog .field { margin: 14px 0; }
.drawings-project-dialog > .actions { margin-top: 22px; justify-content: flex-end; }
.drawings-project-add-list { display: grid; max-height: 48vh; overflow: auto; }
.drawings-project-add-list label { display: flex; gap: 10px; padding: 8px 0; align-items: center; }
.drawings-history-row { display: flex; gap: 12px; align-items: center; border: 1px solid var(--line); border-radius: 8px; padding: 12px; margin-top: 10px; }
.drawings-history-row > div { flex: 1; }

.drawings-upload-parity { padding: 20px 18px; }
.drawings-upload-parity h2 { font-size: 1.1rem; margin: 0 0 20px; }
.drawings-upload-set-panel, .drawings-upload-layout-bar, .drawings-upload-pending, .drawings-label-regions { border: 1px solid var(--line); border-radius: 12px; padding: 22px; background: var(--panel); margin-bottom: 14px; }
.drawings-upload-set-fields { display: grid; grid-template-columns: minmax(200px, 450px) minmax(150px, 260px) 145px; gap: 20px; align-items: end; margin-bottom: 20px; }
.drawings-upload-set-fields .field:last-child { margin-left: auto; }
.drawings-upload-dropzone { margin-top: 20px; min-height: 185px; padding: 30px; border: 2px dashed var(--danger-line); border-radius: 10px; background: var(--accent-soft); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; cursor: pointer; }
.drawings-upload-dropzone[aria-disabled=true] { cursor: default; opacity: .55; }
.drawings-upload-drop-icon { font-size: 2.3rem; color: var(--muted); }
.drawings-upload-layout-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 12px 16px; }
.drawings-upload-layout-bar .field { display: flex; flex-direction: row; align-items: center; gap: 10px; }
.drawings-upload-layout-bar select { width: auto; }
.drawings-upload-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 16px 0; }
.drawings-upload-actions > p { flex: 1; }
.drawings-upload-bulk { display: flex; gap: 10px; align-items: center; margin: 10px 0; }
.drawings-upload-bulk > .field { width: 385px; }
.drawings-upload-bulk .field label { display: none; }
.drawings-upload-requirements { color: var(--danger); font-size: .85rem; }
.drawings-upload-review-grid { display: grid; grid-template-columns: minmax(650px, 2.1fr) minmax(280px, 1fr); gap: 20px; align-items: start; }
.drawings-upload-table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 12px; }
.drawings-upload-review-table { width: 100%; border-collapse: collapse; font-size: .8rem; background: var(--panel); }
.drawings-upload-review-table th { color: var(--muted); text-transform: uppercase; font-size: .72rem; text-align: left; padding: 12px 10px; }
.drawings-upload-review-table td { border-top: 1px solid var(--line); padding: 12px 10px; vertical-align: middle; }
.drawings-upload-review-table td:first-child { width: 28px; }
.drawings-upload-review-table td:nth-child(2) { min-width: 150px; }
.drawings-upload-review-table input:not([type=checkbox]), .drawings-upload-review-table select { width: 100%; min-width: 0; min-height: 40px; padding: 9px 10px; color: var(--ink); background: var(--input); border: 1px solid var(--line-strong); border-radius: 8px; font: inherit; }
.drawings-upload-review-table td .field { margin: 0; }
.drawings-upload-review-table td .field label { display: none; }
.drawings-upload-review-table td:nth-child(4) { min-width: 130px; }
.drawings-upload-review-table td:nth-child(5) { min-width: 170px; }
.drawings-upload-review-table td:nth-child(6) { min-width: 150px; }
.drawings-upload-review-table td:last-child { min-width: 145px; }
.drawings-upload-review-table small { display: block; color: var(--muted); }
.drawings-upload-filename { display: block; max-width: 160px; overflow-wrap: anywhere; }
.drawings-upload-thumbnail { width: 84px; height: auto; background: #fff; border: 1px solid var(--line-strong); border-radius: 3px; }
.drawings-upload-review-table .button { padding: 0; min-height: 0; background: transparent; border: 0; }
.drawings-title-preview { border: 1px solid var(--line); border-radius: 14px; padding: 20px; background: var(--panel); }
.drawings-title-preview-image { min-height: 180px; display: grid; align-items: center; background: #fff; color: #727a87; border-radius: 7px; overflow: hidden; margin: 16px 0; }
.drawings-title-preview-image canvas { display: block; width: 100%; height: auto; }
.drawings-title-preview dt { color: var(--muted); font-size: .72rem; text-transform: uppercase; margin-top: 12px; }
.drawings-title-preview dd { margin: 4px 0; font-weight: 650; }
.drawings-upload-confirmation { margin: 16px 0; padding: 12px; background: var(--accent-soft); border-radius: 8px; }
.drawings-upload-confirmation:empty { display: none; }
.drawings-upload-confidence { max-width: 230px; margin-top: 5px; font-size: .7rem; color: var(--muted); }
.drawings-upload-confidence summary { cursor: pointer; }
.drawings-upload-confidence .help { font-size: inherit; margin: 5px 0; }
.drawings-upload-review-table tr[data-label-review=true] .drawings-upload-confidence summary { color: var(--accent-dark); font-weight: 600; }
.drawings-upload-batch-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; border-top: 1px solid var(--line); padding: 8px 0; }
.drawings-upload-batch-row p { flex: 1; }
#drawings-upload-batches:empty, #drawings-upload-pending:empty { display: none; }
#drawings-upload-new-batch { margin-bottom: 12px; }
#drawings-upload-page-range { max-width: 360px; }
.drawings-label-regions > .field { max-width: 280px; margin: 16px 0; }
.drawings-region-controls { display: flex; gap: 10px; align-items: center; margin-top: 22px; }
.drawings-region-instruction { flex: 1; font-weight: 650; }
.drawings-region-surface { position: relative; overflow: hidden; height: 60vh; min-height: 400px; background: #2e343a; border: 1px solid var(--line-strong); border-radius: 10px; touch-action: none; }
.drawings-region-stage { position: relative; transform-origin: 0 0; }
.drawings-region-stage canvas { display: block; width: 100%; }
.drawings-region-boxes { position: absolute; inset: 0; pointer-events: none; }
.drawings-region-box { position: absolute; border: 1px solid #be3c34; background: #be3c3425; color: #fff; font-size: 12px; }
.drawings-region-box-title { border-color: #51a04c; background: #51a04c25; }
.drawings-region-zoom { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }

.drawings-project .drawings-viewer { padding: 0; margin: 0; width: 100%; display: flex; flex-direction: column; height: calc(100vh - 205px); min-height: 400px; }
.drawings-viewer-topbar, .drawings-viewer-overlay-top, .drawings-viewer-overlay-tools { display: flex; align-items: center; gap: 8px; padding: 8px; background: var(--surface); border-bottom: 1px solid var(--line); }
.drawings-viewer-title { display: grid; text-align: center; min-width: 140px; flex: 1; font-size: .74rem; }
.drawings-viewer-title strong { font-family: ui-monospace, Consolas, monospace; }
.drawings-viewer-topbar select { max-width: 260px; }
.drawings-viewer-button, .drawings-viewer select { min-height: 34px; border: 1px solid var(--line-strong); background: var(--input); color: var(--ink); border-radius: 8px; padding: 6px 10px; white-space: nowrap; font-size: .8rem; }
.drawings-viewer-button[aria-pressed=true] { background: var(--accent); border-color: var(--accent); color: #fff; }
.drawings-viewer-markup-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; padding: 6px 8px; background: var(--panel); }
.drawings-viewer-markup-bar .drawings-viewer-button { padding: 4px 9px; min-height: 32px; border-radius: 4px; }
.drawings-viewer-viewport { position: relative; overflow: hidden; touch-action: none; flex: 1; min-height: 240px; background: #2e343a; }
.drawings-viewer-topbar, .drawings-viewer-markup-bar, .drawings-viewer-thumbnails, .drawings-viewer-overlay-top, .drawings-viewer-overlay-tools { flex-shrink: 0; }
.drawings-viewer-stage { position: absolute; left: 0; top: 0; transform-origin: 0 0; }
.drawings-viewer-stage canvas { display: block; }
.drawings-viewer-annotations { position: absolute; inset: 0; width: 100%; height: 100%; }
.drawings-viewer-floating { position: absolute; right: 16px; bottom: 16px; display: grid; gap: 7px; z-index: 4; }
.drawings-viewer-floating button { border-radius: 50%; width: 42px; height: 42px; padding: 0; background: var(--panel); box-shadow: var(--shadow); }
.drawings-viewer-thumbnails { display: flex; gap: 8px; padding: 8px; overflow-x: auto; background: var(--panel); }
.drawings-viewer-thumbnails button { display: flex; flex-direction: column; align-items: center; gap: 6px; flex: none; width: 88px; font: 600 .62rem ui-monospace, Consolas, monospace; padding: 6px; }
.drawings-viewer-thumbnails canvas { width: 76px; max-height: 65px; object-fit: contain; background: #fff; }
.drawings-viewer-style-panel, .drawings-viewer-scale-panel, .drawings-viewer-text-panel, .drawings-viewer-link-panel { position: absolute; right: 12px; top: 12px; z-index: 5; width: 320px; max-width: calc(100% - 24px); padding: 16px; color: var(--ink); background: var(--panel); border: 1px solid var(--line-strong); border-radius: 10px; box-shadow: var(--shadow-lift); }
.drawings-viewer-style-panel label, .drawings-viewer-scale-panel label { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 16px; }
.drawings-viewer-style-panel { max-height: calc(100% - 24px); overflow-y: auto; touch-action: auto; }
.drawings-viewer-style-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.drawings-viewer-style-colors { display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.drawings-viewer .drawings-viewer-color { width: 24px; height: 24px; min-height: 24px; padding: 0; border: 2px solid transparent; border-radius: 50%; }
.drawings-viewer .drawings-viewer-color[aria-pressed=true] { border-color: var(--ink); outline: 1px solid var(--panel); }
.drawings-viewer-style-colors .drawings-viewer-color { width: 32px; height: 32px; min-height: 32px; }
.drawings-viewer-style-colors input[type=color] { width: 36px; height: 32px; padding: 2px; margin-left: auto; }
.drawings-viewer-style-value { display: flex; align-items: center; gap: 5px; }
.drawings-viewer .drawings-viewer-style-panel > input[type=range] { width: 100%; padding: 0; margin-top: 8px; min-height: 24px; }
.drawings-viewer-style-preview { display: block; width: 100%; height: 100px; overflow: hidden; margin-top: 16px; background: #fff; border: 1px solid var(--line-strong); border-radius: 5px; }
.drawings-viewer-style-caption { color: var(--muted); font-size: .7rem; margin: 6px 0 0; }
.drawings-viewer input, .drawings-viewer textarea { color: var(--ink); background: var(--input); border: 1px solid var(--line-strong); border-radius: 5px; padding: 8px; }
.drawings-viewer input[type=number] { width: 90px; }
.drawings-viewer input[type=range] { width: 150px; accent-color: var(--accent); }
.drawings-viewer textarea { width: 100%; min-height: 100px; margin: 10px 0; }
.drawings-viewer-overlay-top > select:first-of-type { margin-left: auto; }
#drawings-viewer-blue { background: #3647ce; color: #fff; }
#drawings-viewer-red { background: #c2362b; color: #fff; }
.drawings-viewer-overlay-tools { flex-wrap: wrap; }
.drawings-viewer-overlay-tools label { display: flex; align-items: center; gap: 8px; }

/* Optional Drawings editing and comparison controls stay within the viewer. */
.drawings-viewer .drawings-viewer-detail-raster { position: absolute; pointer-events: none; }
.drawings-viewer-sheet-finder { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px; background: var(--surface); border-bottom: 1px solid var(--line); flex-shrink: 0; }
.drawings-viewer-sheet-finder input { width: 240px; }
.drawings-viewer-sheet-finder select { width: min(440px, 100%); }
.drawings-viewer-sheet-finder span { font-size: 12px; color: var(--muted); }
.drawings-viewer-measure-panel { position: absolute; right: 12px; top: 12px; z-index: 6; width: 390px; max-width: calc(100% - 24px); max-height: calc(100% - 24px); overflow-y: auto; padding: 16px; color: var(--ink); background: var(--panel); border: 1px solid var(--line-strong); border-radius: 10px; box-shadow: var(--shadow-lift); touch-action: auto; }
.drawings-viewer-measure-panel > button:first-of-type { float: right; }
.drawings-viewer-measure-panel p { font-size: 12px; color: var(--muted); }
.drawings-viewer-measure-panel label { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 12px 0; }
.drawings-viewer-measurement-row { display: grid; gap: 5px; border-top: 1px solid var(--line); padding: 12px 0; font-size: 13px; }
.drawings-viewer-measurement-row button { text-align: left; font-weight: 600; }
.drawings-viewer-overlay-tools input[type=number] { width: 76px; min-width: 0; }
.drawings-viewer-sheet-finder[hidden], .drawings-viewer-measure-panel[hidden], .drawings-viewer-detail-raster[hidden] { display: none; }
.drawings-viewer-status { padding: 0 12px; font-size: .78rem; color: var(--muted); }
.drawings-viewer-status:empty { display: none; }
.drawings-viewer > .drawings-viewer-button { margin: 8px; }
.drawings-viewer:fullscreen { background: var(--bg); height: 100vh; }
.drawings-viewer:fullscreen .drawings-viewer-viewport { height: calc(100vh - 110px); }
@media (max-width: 1200px) {
  .drawings-viewer-topbar { flex-wrap: wrap; }
  .drawings-upload-review-grid { grid-template-columns: minmax(0, 1fr); }
  .drawings-title-preview { max-width: 600px; }
  .drawings-project-filters { grid-template-columns: minmax(180px, 1fr) auto 1fr; }
  .drawings-project-auto-rule { flex-wrap: wrap; }
}
@media (max-width: 700px) {
  .drawings-project-header { padding-inline: 12px; }
  .drawings-project-list, .drawings-project-sets, .drawings-project-subsets, .drawings-project-settings, .drawings-upload-parity { padding: 14px 10px; }
  .drawings-project-filters { grid-template-columns: 1fr auto; }
  .drawings-project-filters > .field:nth-last-child(2) { grid-column: 1; }
  .drawings-project-sheet-row { gap: 7px; padding: 8px; }
  .drawings-project-sheet-open { gap: 8px; }
  .drawings-project-sheet-open canvas { width: 42px; }
  .drawings-project-subset-create { grid-template-columns: 1fr 100px; }
  .drawings-project-subset-heading, .drawings-region-controls { flex-wrap: wrap; }
  .drawings-upload-set-fields { grid-template-columns: 1fr; }
  .drawings-upload-set-fields .field:last-child { margin-left: 0; }
  .drawings-upload-set-panel, .drawings-label-regions { padding: 14px; }
  .drawings-project-set-summary { flex-wrap: wrap; }
  .drawings-project-set-edit { grid-template-columns: 1fr 145px; }
  .drawings-project-offbar { flex-wrap: wrap; gap: 7px; }
}

/* Keep model warnings visible above the retained bottom progress controls. */
.model-with-timeline .model-viewer-dock,.model-with-paint .model-viewer-dock { bottom:70px; }
@media(max-width:540px) { .model-with-timeline .model-viewer-dock,.model-with-paint .model-viewer-dock { bottom:114px; } }

/* Supplied 3D references 03/04: one centered report, two tabs and a scroll body. */
.model-viewer-reports { position:absolute; z-index:8; top:70px; left:50%; transform:translateX(-50%); width:560px; max-width:calc(100% - 24px); max-height:calc(100% - 90px); display:flex; flex-direction:column; box-sizing:border-box; background:var(--panel); color:var(--ink); border:1px solid var(--line-strong); border-radius:12px; box-shadow:0 14px 40px #0006; overflow:hidden; }
.model-viewer-reports[hidden] { display:none; }
.model-viewer-reports>header { display:flex; align-items:center; gap:9px; min-height:51px; padding:0 14px; border-bottom:1px solid var(--line); flex:none; }
.model-viewer-reports>header>strong { font-size:13px; margin-right:auto; }
.model-viewer-reports>header>button { border:0; background:transparent; padding:4px 6px; color:var(--muted); font-size:17px; }
.model-report-tabs { display:flex; gap:7px; }
.model-report-tabs button { padding:7px 10px; font-size:12px; font-weight:700; border:1px solid var(--line); border-radius:8px; background:var(--panel-2,var(--panel)); }
.model-report-tabs button.on { background:#4263e6; color:#fff; border-color:#4263e6; }
.model-report-body { padding:12px 14px 8px; overflow:auto; min-height:60px; max-height:450px; overscroll-behavior:contain; font-size:12px; }
.model-report-table { width:100%; border-collapse:collapse; font-size:11px; line-height:17px; margin:0 0 12px; }
.model-report-table th { padding:7px 7px; color:var(--muted); font-size:9px; letter-spacing:.045em; text-transform:uppercase; text-align:right; white-space:nowrap; border-bottom:1px solid var(--line); }
.model-report-table th:first-child { text-align:left; }
.model-report-table td { padding:6px 7px; border-bottom:1px solid color-mix(in srgb,var(--line) 65%,transparent); vertical-align:top; overflow-wrap:anywhere; }
.model-report-table td.n { text-align:right; white-space:nowrap; }
.model-report-section { margin:5px 0 9px; font-size:12px; line-height:18px; }
.model-report-note { margin:9px 0; color:var(--muted); font-size:11px; line-height:16px; }
.model-report-feedback { flex:none; margin:0; padding:8px 14px; font-size:12px; color:var(--muted); border-bottom:1px solid var(--line); }
.model-report-feedback:empty { display:none; }
.model-viewer-reports>footer { display:flex; align-items:center; gap:8px; padding:9px 14px; border-top:1px solid var(--line); flex:none; }
.model-viewer-reports>footer button,.model-report-body>button { padding:7px 10px; font-size:12px; }
@media(max-width:540px) { .model-viewer-reports { top:116px; max-height:calc(100% - 130px); max-width:calc(100% - 16px); }.model-viewer-reports>header { padding:0 9px; gap:5px; }.model-report-tabs { gap:4px; }.model-report-tabs button { padding:7px 6px; font-size:11px; }.model-report-body { padding:8px; max-height:calc(100vh - 340px); }.model-report-table { font-size:10px; }.model-report-table th,.model-report-table td { padding:5px 4px; }.model-report-table th { font-size:8px; } }

/* Supplied 3D references 11/13 and retained viewer: compact status legend,
   full-width day playback, centered paint controls and 44px photo thumbnails. */
.model-viewer .model-progress-legend { display:flex; align-items:center; flex-wrap:wrap; gap:7px 12px; max-width:100%; padding:7px 11px; font-size:11px; line-height:16px; color:var(--muted); background:var(--panel); border:1px solid var(--line-strong); border-radius:10px; pointer-events:auto; text-align:left; }
.model-progress-legend>span { display:inline-flex; align-items:center; gap:3px; white-space:nowrap; }
.model-progress-legend b { color:var(--ink); }
.model-progress-dot { display:inline-block; flex:none; width:9px; height:9px; border-radius:50%; margin-right:2px; }
.model-progress-timeline,.model-progress-paint { position:absolute; z-index:6; bottom:10px; display:flex; align-items:center; gap:8px; box-sizing:border-box; padding:8px 11px; color:var(--ink); background:var(--panel); border:1px solid var(--line-strong); border-radius:12px; box-shadow:0 4px 18px #0002; }
.model-progress-timeline { left:10px; right:10px; min-height:50px; }
.model-viewer .model-progress-timeline>button { flex:none; min-width:32px; min-height:31px; padding:5px 9px; border-radius:8px; font-size:12px; font-weight:700; }
.model-progress-timeline>input[type=range] { flex:1 1 140px; min-width:70px; width:auto; height:24px; margin:0; padding:0; accent-color:#5280ea; cursor:pointer; }
.model-progress-timeline>strong { flex:none; font-size:12px; line-height:17px; white-space:nowrap; }
.model-progress-paint { left:50%; transform:translateX(-50%); max-width:calc(100% - 20px); border-color:#3b82f6; padding:8px 12px; }
.model-progress-paint>strong { flex:none; font-size:13px; }
.model-progress-paint>span { color:var(--muted); font-size:11px; white-space:nowrap; }
.model-viewer .model-progress-paint>button { flex:none; min-height:34px; padding:6px 11px; font-size:12px; font-weight:700; }
.model-viewer .model-progress-paint>button:nth-last-child(2) { background:#3566d7; border-color:#3566d7; color:#fff; }
.model-progress-history { left:50%; transform:translateX(-50%); width:360px; max-width:calc(100% - 24px); max-height:calc(100% - 100px); }
.model-progress-history>.model-workflow-scroll { max-height:320px; overflow:auto; padding:8px 0; }
.model-progress-total { margin:4px 14px 10px; font-size:12px; color:var(--muted); }
.model-viewer .model-progress-day { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; min-height:39px; border:0; border-bottom:1px solid var(--line); border-radius:0; padding:9px 14px; background:transparent; font-size:12px; text-align:left; }
.model-progress-day b { font-size:11px; }
.model-progress-editor { margin:13px 0 8px; padding:10px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.model-progress-unit-note,.model-progress-record { margin:3px 0 7px; color:var(--muted); font-size:11px; line-height:16px; }
.model-progress-status-row { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:7px 0; }
.model-viewer .model-progress-status { min-height:32px; padding:6px 8px; border:1px solid var(--status-color,var(--line-strong)); border-radius:8px; font-size:11px; }
.model-viewer .model-progress-status[aria-pressed=true] { background:var(--status-color); color:#fff; font-weight:750; }
.model-viewer .model-progress-status[data-progress-status=delivered][aria-pressed=true] { color:#292411; }
.model-progress-date,.model-progress-photo-form { z-index:9; top:50%; left:50%; transform:translate(-50%,-50%); width:380px; max-width:calc(100% - 24px); max-height:calc(100% - 30px); overflow:auto; padding-bottom:12px; }
.model-progress-date>p,.model-progress-date>input,.model-progress-date-actions,.model-progress-photo-form>label,.model-progress-photo-form>p { margin:12px 16px; }
.model-progress-date>p { font-size:13px; line-height:19px; }
.model-progress-date>input,.model-progress-photo-form input { box-sizing:border-box; min-height:40px; min-width:0; padding:8px 10px; border:1px solid var(--line-strong); border-radius:7px; background:var(--input); color:var(--ink); font:inherit; font-size:13px; }
.model-progress-date>input { width:calc(100% - 32px); }
.model-progress-date-actions { display:flex; flex-wrap:wrap; gap:7px; }
.model-progress-photo-form>label { display:flex; flex-direction:column; gap:5px; color:var(--muted); font-size:12px; }
.model-progress-photo-form input { width:100%; }
.model-progress-photo-form input[type=file] { padding:6px; font-size:11px; }
.model-progress-photo-form>button { margin:0 0 0 16px; }
.model-progress-photo-feedback { color:var(--muted); font-size:12px; line-height:17px; }
.model-progress-photo-feedback:empty { display:none; }
.model-progress-photos { position:absolute; right:10px; bottom:70px; z-index:6; box-sizing:border-box; max-width:calc(100% - 20px); padding:6px; color:var(--ink); background:var(--panel); border:1px solid var(--line-strong); border-radius:10px; box-shadow:0 4px 18px #0002; }
.model-progress-photo-images { display:flex; gap:6px; overflow-x:auto; max-width:min(44vw,480px); }
.model-viewer .model-progress-photo-images>button { flex:none; width:44px; height:44px; min-height:44px; border-radius:7px; padding:0; font-size:8px; overflow:hidden; }
.model-progress-photo-images img { display:block; width:44px; height:44px; object-fit:cover; }
.model-progress-photo-paging { display:flex; align-items:center; justify-content:space-between; gap:7px; font-size:10px; }
.model-progress-photo-paging:empty { display:none; }
.model-viewer .model-progress-photo-paging>button { margin-top:5px; padding:4px 6px; font-size:10px; }
.model-progress-lightbox { position:absolute; inset:0; z-index:12; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; box-sizing:border-box; padding:36px 20px 20px; background:#080a0feF; color:#e8ecf5; }
.model-progress-lightbox>img { display:block; max-width:100%; max-height:calc(100% - 110px); object-fit:contain; border-radius:8px; }
.model-progress-lightbox>p { margin:0; max-width:100%; color:#e8ecf5; text-align:center; font-size:12px; line-height:18px; }
.model-progress-lightbox>button:first-child { position:absolute; top:10px; right:10px; min-width:36px; min-height:36px; }
.model-progress-feedback { position:absolute; left:50%; transform:translateX(-50%); bottom:calc(var(--model-dock-height,50px) + 6px); z-index:8; max-width:calc(100% - 30px); box-sizing:border-box; margin:0; padding:8px 12px; border:1px solid var(--line-strong); border-radius:8px; background:var(--panel); color:var(--ink); font-size:12px; line-height:17px; pointer-events:none; }
.model-with-paint .model-progress-feedback,.model-with-timeline .model-progress-feedback { bottom:128px; }
.model-progress-feedback:empty { display:none; }
.model-progress-timeline[hidden],.model-progress-paint[hidden],.model-progress-editor[hidden],.model-progress-photos[hidden],.model-progress-lightbox[hidden] { display:none; }
.model-with-timeline:has(.model-progress-photos:not([hidden])) .model-viewer-dock { bottom:150px; }
@media(max-width:800px) { .model-progress-timeline { flex-wrap:wrap; }.model-progress-timeline>strong { margin-left:auto; font-size:11px; }.model-progress-timeline>input[type=range] { min-width:100px; }.model-progress-paint>span { display:none; } }
@media(max-width:540px) {
  .model-progress-timeline { display:grid; grid-template-columns:repeat(4,44px) minmax(0,1fr) 44px; left:6px; right:6px; bottom:6px; gap:4px; padding:6px; }
  .model-viewer .model-progress-timeline>button { width:44px; height:44px; padding:5px; }
  .model-progress-timeline>input[type=range] { grid-column:1 / 6; grid-row:2; width:100%; min-width:0; }
  .model-progress-timeline>strong { grid-column:5 / 7; grid-row:1; margin:0; min-width:0; font-size:10px; line-height:14px; white-space:normal; text-align:right; }
  .model-progress-timeline>button:last-child { grid-column:6; grid-row:2; }
  .model-progress-paint { bottom:6px; flex-wrap:wrap; justify-content:center; gap:6px; padding:7px; width:max-content; max-width:calc(100% - 12px); }
  .model-progress-paint>strong { flex-basis:100%; text-align:center; font-size:12px; }
  .model-viewer .model-progress-paint>button { min-height:40px; padding:6px 12px; }
  .model-progress-history { max-width:calc(100% - 16px); max-height:calc(100% - 132px); }
  .model-progress-history>.model-workflow-scroll { max-height:32vh; }
  .model-progress-date,.model-progress-photo-form { width:360px; max-width:calc(100% - 16px); }
  .model-progress-status-row { gap:5px; }
  .model-viewer .model-progress-status { min-height:38px; }
  .model-progress-photos { left:6px; right:6px; bottom:114px; max-width:none; }
  .model-progress-photo-images { max-width:100%; }
  .model-with-timeline:has(.model-progress-photos:not([hidden])) .model-viewer-dock { bottom:206px; }
  .model-progress-feedback,.model-with-paint .model-progress-feedback,.model-with-timeline .model-progress-feedback { bottom:160px; width:calc(100% - 22px); text-align:center; }
  .model-progress-lightbox { padding:50px 10px 14px; }
}

/* Same-origin stylesheet for the standalone report Print window; inline
   styles would be blocked by the inherited workspace content policy. */
body.model-report-print { display:block; min-width:0; max-width:none; font:12px system-ui,sans-serif; color:#111; background:#fff; margin:24px; }
.model-report-print h2 { font-size:16px; }
.model-report-print .model-report-table { width:100%; border-collapse:collapse; font-size:12px; margin:6px 0 14px; }
.model-report-print .model-report-table td,.model-report-print .model-report-table th { border:1px solid #bbb; padding:5px 8px; text-align:left; color:#111; }
.model-report-print .model-report-table td.n { text-align:right; }
.model-report-print .model-report-section { font-size:13px; margin-top:14px; }
.model-report-print .model-report-note { font-size:11px; color:#444; }
@media print { .model-report-print tr { break-inside:avoid; } }
body.model-pick-print { display:block; min-width:0; max-width:none; font:14px Arial,sans-serif; color:#111; background:#fff; margin:28px; }
.model-pick-print h1 { font-size:22px; }
.model-pick-print table { border-collapse:collapse; width:100%; }
.model-pick-print th,.model-pick-print td { text-align:left; padding:7px; border-bottom:1px solid #aaa; }
.model-pick-print th { background:#eee; }
@media print { .model-pick-print tr { break-inside:avoid; } }
/* Screenshot 12: compact menu; retained yellow editing bar and on-model handles. */
.model-cut-options{width:226px;min-width:0;padding:6px!important;gap:0!important}
.model-cut-options>button{display:block;width:100%;padding:9px 10px!important;border:0!important;border-radius:7px;text-align:left;font-size:13px;font-weight:700;background:transparent}
.model-cut-options>button.on,.model-cut-options .model-viewer-cut-snap button.on{background:#4563df!important;color:#fff!important}
.model-cut-options .model-viewer-cut-snap{display:flex;align-items:center;gap:6px;padding:8px 10px;margin:5px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.model-cut-options .model-viewer-cut-snap span{flex:1;font-size:12px;font-weight:700;color:var(--muted)}
.model-cut-options .model-viewer-cut-snap button{padding:4px 11px;font-size:12px;font-weight:700}
.model-cut-options .model-cut-delete-all{margin:0}
.model-cut-handles{position:absolute;inset:0;pointer-events:none;z-index:6}
.model-cut-handle{position:absolute;transform:translate(-50%,-50%);width:30px;height:30px;padding:0;display:flex;align-items:center;justify-content:center;border:2px solid #3b82f6!important;border-radius:7px;background:var(--panel)!important;color:#3b82f6;font-size:21px;font-weight:700;box-shadow:0 2px 10px #0006;pointer-events:auto;touch-action:none;cursor:grab}
.model-cut-handle:active{cursor:grabbing}
.model-cut-handle.selected{border-color:#fbbf24!important;color:#fbbf24}
.model-cut-handle.box{border-color:#facc15!important;color:#facc15}
.model-cut-bar{position:absolute;left:50%;transform:translateX(-50%);bottom:10px;z-index:12;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;width:max-content;max-width:calc(100% - 24px);padding:8px 12px;border:1.5px solid #fbbf24;border-radius:12px;background:var(--panel);box-shadow:0 3px 12px #0004}
.model-cut-bar>strong{font-size:13px;font-weight:800;color:var(--ink)}
.model-cut-bar button{padding:7px 12px;border-radius:8px;font-size:13px;font-weight:700;white-space:nowrap}
.model-cut-bar button.on{background:#4563df;color:#fff;border-color:#4563df}
.model-cut-bar .model-cut-delete{color:var(--danger,#b42318)}
.model-cut-done{position:absolute;top:70px;left:50%;transform:translateX(-50%);z-index:12}
.model-cut-done button{padding:8px 20px;font-size:13px;font-weight:800;background:#4563df;color:#fff;border-color:#4563df;border-radius:9px}
.model-cut-precision{position:absolute;right:12px;bottom:80px;z-index:13;max-width:calc(100% - 24px);width:420px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 6px 24px #0004}
.model-cut-precision header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:13px}
.model-cut-precision-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;margin-top:8px}
.model-cut-precision-row label{display:flex;flex-direction:column;gap:4px;font-size:12px;max-width:110px}
.model-cut-precision-row input{width:100%;min-width:0;box-sizing:border-box}
.model-cut-precision-row button,.model-cut-precision-row select{font-size:12px;padding:7px 9px}
.model-with-timeline .model-cut-bar,.model-with-paint .model-cut-bar{bottom:70px}
.model-with-timeline .model-cut-precision{bottom:140px}
.model-cut-options[hidden],.model-cut-handle[hidden],.model-cut-bar[hidden],.model-cut-bar button[hidden],.model-cut-done[hidden],.model-cut-precision[hidden]{display:none!important}
@media(max-width:700px){.model-cut-options{max-width:calc(100% - 24px)}.model-cut-bar{gap:5px;padding:7px;bottom:70px}.model-cut-bar button{padding:7px 8px;font-size:12px}.model-cut-precision{bottom:170px;max-height:55%;overflow:auto}.model-with-timeline .model-cut-bar{bottom:114px}.model-with-timeline .model-cut-precision{bottom:210px}.model-cut-done{top:114px}}

.model-viewer-measurements { right:10px; width:330px; max-width:calc(100% - 20px); max-height:calc(100% - 85px - var(--model-dock-height,44px)); overflow:auto; }
.model-measurement-snaps { display:flex; align-items:center; gap:5px; margin:0 10px; padding:10px 0; border-bottom:1px solid var(--line); }
.model-measurement-snaps>span { flex:1; font-size:11px; color:var(--muted); }
.model-measurement-snaps button { padding:4px 7px; font-size:11px; border-radius:7px; }
.model-measurement-snaps button[aria-pressed=true] { color:white; background:#4263e6; border-color:#4263e6; }
.model-measurement-feedback { margin:10px 12px; min-height:30px; font-size:12px; line-height:17px; }
.model-measurement-actions { display:flex; gap:5px; flex-wrap:wrap; padding:0 12px 10px; border-bottom:1px solid var(--line); }
.model-measurement-actions button { font-size:11px; padding:5px 8px; }
.model-measurement-list { max-height:260px; overflow:auto; }
.model-measurement-row { padding:10px 12px; border-bottom:1px solid var(--line); font-size:12px; }
.model-measurement-row>div:first-child { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.model-measurement-row button { padding:3px 6px; font-size:10px; }
.model-measurement-deltas { display:flex; flex-wrap:wrap; gap:4px 12px; margin:7px 0; font-size:11px; }
.model-measurement-row small { color:var(--muted); font-size:10px; }
.model-measurement-note,.model-measurement-empty { font-size:11px; line-height:16px; color:var(--muted); margin:10px 12px; }
.model-measurement-labels { position:absolute; inset:0; z-index:2; pointer-events:none; overflow:hidden; }
.model-measurement-label { position:absolute; transform:translate(-50%,-120%); white-space:nowrap; background:var(--panel); color:var(--ink); border:1px solid #c28a36; border-radius:5px; box-shadow:0 1px 4px #0005; font-size:11px; font-weight:600; padding:3px 5px; }
.model-measurement-label[hidden] { display:none; }
@media(max-width:540px) { .model-viewer-measurements { right:6px; max-width:calc(100% - 12px); max-height:calc(100% - 126px - var(--model-dock-height,44px)); }.model-measurement-list { max-height:160px; }.model-measurement-snaps { gap:4px; }.model-measurement-snaps button { padding:5px 7px; } }

/* Keep source disclosures readable below the cut editing controls. */
.model-viewer{--model-cut-bottom:10px}
.model-with-timeline{--model-cut-bottom:70px}
.model-with-timeline:has(.model-progress-photos:not([hidden])){--model-cut-bottom:150px}
.model-cut-bar,.model-with-timeline .model-cut-bar{bottom:calc(var(--model-cut-bottom) + var(--model-dock-height,44px))}
.model-cut-precision,.model-with-timeline .model-cut-precision{bottom:calc(var(--model-cut-bottom) + var(--model-dock-height,44px) + var(--model-cut-bar-height,60px) + 10px);max-height:calc(100% - 140px);overflow:auto}
@media(max-width:540px){.model-with-timeline{--model-cut-bottom:114px}.model-with-timeline:has(.model-progress-photos:not([hidden])){--model-cut-bottom:206px}.model-cut-precision{max-height:40%}}

/* Retained compact property rows with account-owned stars and a pinned block. */
.model-property-pinned { margin:6px 0 12px; padding:0 9px 8px; border:1px solid var(--line-strong); border-radius:7px; background:var(--panel); }
.model-viewer-property-body .model-property-pinned h3 { margin:9px 0 5px; color:var(--ink); }
.model-property-all-label { margin:9px 0 2px; color:var(--muted); font-size:10.5px; text-transform:uppercase; letter-spacing:.055em; }
.model-viewer-property-row.model-property-favorite-row { gap:6px; align-items:flex-start; }
.model-property-favorite-row .model-property-star { flex:none; min-width:23px; width:23px; height:23px; padding:0; margin:-3px 0 0 -3px; font-size:18px; line-height:23px; border:0; border-radius:4px; background:transparent; color:var(--muted); box-shadow:none; }
.model-property-favorite-row .model-property-star.on { color:var(--star); background:transparent; border:0; }
.model-property-favorite-row .model-property-star:focus-visible { outline:2px solid #4263e6; outline-offset:1px; }
.model-property-favorite-row .model-property-star:disabled { opacity:.5; }
.model-property-favorite-row .model-property-name { min-width:0; overflow-wrap:anywhere; }
.model-property-name>span { display:block; }
.model-property-name>small { display:block; font-size:9.5px; margin-top:2px; color:var(--muted); }
.model-property-favorite-row>b { max-width:57%; }
.model-property-favorite-feedback,.model-property-favorite-help { margin:6px 0; font-size:11px; color:var(--muted); line-height:16px; }
.model-property-favorite-feedback { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.model-property-favorite-feedback button { padding:3px 6px; font-size:11px; }

/* Append to the scoped workspace stylesheet; do not load a global UI theme. */
.model-viewer .model-viewer-view-notes{grid-column:1/-1;display:flex;flex-direction:column;gap:4px}
.model-viewer .model-viewer-view-notes textarea{box-sizing:border-box;width:100%;min-height:68px;resize:vertical;font:inherit;font-size:12px;line-height:1.4;color:inherit;background:var(--input-bg,transparent);border:1px solid var(--border,#8a929d);border-radius:4px;padding:6px 8px}
.model-viewer .model-bolt-summary{padding:0 0 10px;margin:0 0 10px;border-bottom:1px solid var(--border,#8a929d)}
.model-viewer .model-bolt-summary h3{margin:5px 0;font-size:12px}
.model-viewer .model-bolt-summary-source,.model-viewer .model-bolt-summary-note{font-size:10px;line-height:1.35;margin:4px 0;opacity:.8}
.model-viewer .model-bolt-summary-row{display:grid;grid-template-columns:94px minmax(0,1fr);gap:3px 6px;padding:5px 0;font-size:12px;border-top:1px solid #8883}
.model-viewer .model-bolt-summary-row b{font-weight:600;overflow-wrap:anywhere}
.model-viewer .model-bolt-summary-provenance{grid-column:1/-1;font-size:10px;line-height:1.35;opacity:.75;overflow-wrap:anywhere}
.model-viewer .model-bolt-summary-issues{font-size:10px;line-height:1.35;padding:5px 7px;background:#c7902220;border-left:2px solid #b98726;border-radius:3px;margin-top:5px}
.model-viewer .model-bolt-summary-issues p{margin:3px 0}
.model-viewer .model-bolt-summary-conflict b,.model-viewer .model-bolt-summary-missing b{font-weight:500}
.model-viewer-field-note{position:absolute;z-index:2;bottom:var(--model-dock-height,60px);left:14px;max-width:min(350px,calc(100% - 28px));max-height:130px;overflow:auto;padding:8px 10px;border:1px solid var(--line-strong);border-radius:6px;background:var(--panel);color:var(--ink);font-size:12px;box-shadow:0 3px 12px #0002}
.model-viewer-field-note p{margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.model-viewer .model-viewer-revisions{right:10px;width:560px;max-width:calc(100% - 24px);max-height:calc(100% - 85px);overflow:auto;padding:14px}
.model-viewer-revisions header{padding:0 0 6px;min-height:30px;border:0}
@media(max-width:540px){.model-viewer .model-viewer-revisions{max-height:calc(100% - 132px);padding:10px}}
.model-viewer-revisions .model-viewer-views-list{max-height:230px;overflow:auto}
.model-revision-carry{border-top:1px solid var(--line-strong);padding-top:7px;font-size:12px}
.model-revision-carry h4{margin:10px 0 5px}
.model-revision-carry label{display:flex;align-items:flex-start;gap:6px;padding:4px 0;line-height:1.45}
.model-revision-carry input[type=checkbox]{width:15px;height:15px;margin:2px 0;flex:none}
.model-revision-carry small{display:block;color:var(--muted);margin:3px 0}
.model-revision-progress,.model-revision-picks{max-height:175px;overflow:auto}
.model-revision-carry button{margin-top:7px}
.models-revision-history{border:1px solid var(--line-strong);padding:14px;border-radius:6px;margin-top:16px;background:var(--panel)}
.models-revision-history h2{font-size:16px;margin:0 0 10px}
.models-revision-row{display:flex;gap:16px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:8px 0;max-width:550px}
.model-drawing-links{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:12px}
.model-drawing-links>header{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.model-drawing-links>header h2{margin:0;font-size:17px}
.model-drawing-link-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:7px;margin:10px 0}
.model-drawing-link-results button{text-align:left;padding:10px;font-size:13px}
.model-drawing-links .drawings-viewer{padding:0;margin:0;width:100%;display:flex;flex-direction:column;height:calc(100dvh - 265px);min-height:400px}
.model-drawing-links .drawings-viewer[hidden]{display:none}
@media(max-width:540px){.model-drawing-links{padding:7px}.model-drawing-links .drawings-viewer{height:calc(100dvh - 285px);min-height:340px}.model-drawing-links .drawings-viewer-topbar{flex-wrap:wrap}.model-drawing-links .drawings-viewer-topbar select{max-width:100%}}

/* View cube: workspace-view-cube.css */
/* Selected-member orientation, falling back to model axes; no geographic north. */
.model-viewer{--model-cube-size:74px;--model-cube-bottom:14px;--model-cube-left:12px;--model-cube-dock-left:calc(var(--model-cube-left) + var(--model-cube-size) + 10px)}
.model-view-cube{position:absolute;left:var(--model-cube-left);bottom:var(--model-cube-bottom);z-index:6;width:var(--model-cube-size);height:var(--model-cube-size);box-sizing:border-box;isolation:isolate;user-select:none;touch-action:none;color:var(--ink);--cube-face:#e5e8ec;--cube-edge:#d5dae0;--cube-corner:#c9cfd7;--cube-line:#a9b1bd;--cube-text:#4b5563;--cube-hover:#c6ddf2;--cube-current:#b9d3e9}
.model-view-cube[hidden]{display:none}
.model-view-cube-svg{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 1px 1px #0002);outline:none}
.model-view-cube-svg:focus-visible{outline:2px solid #397bb5;outline-offset:2px;border-radius:4px}
.model-view-cube-ring{fill:none;stroke:var(--cube-line);stroke-width:1;pointer-events:none;opacity:.8}
.model-view-cube-zone{cursor:pointer;outline:none}
.model-view-cube-zone polygon{fill:var(--cube-face);stroke:var(--cube-line);stroke-width:.7;stroke-linejoin:round}
.model-view-cube-edge polygon{fill:var(--cube-edge)}
.model-view-cube-corner polygon{fill:var(--cube-corner)}
.model-view-cube-zone text{font:600 11px system-ui,sans-serif;letter-spacing:.1px;fill:var(--cube-text);pointer-events:none}
.model-view-cube-zone[aria-pressed=true] polygon{fill:var(--cube-current)}
.model-view-cube-zone:hover polygon,.model-view-cube-zone:focus-visible polygon{fill:var(--cube-hover);stroke:#397bb5;stroke-width:1.6}
.model-view-cube button{box-sizing:border-box;box-shadow:none;font:inherit;color:inherit}
.model-view-cube .model-view-cube-home{position:absolute;bottom:0;left:0;width:20px;height:20px;min-height:0;padding:2px;border:1px solid transparent;border-radius:4px;background:var(--panel);opacity:.9}
.model-view-cube .model-view-cube-home svg{display:block;width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.model-view-cube .model-view-cube-home:hover,.model-view-cube .model-view-cube-home[aria-pressed=true]{background:var(--cube-hover);border-color:var(--cube-line);opacity:1;color:#224b6a}
.model-view-cube button:focus-visible{outline:2px solid #397bb5;outline-offset:2px}
.model-viewer:has(.model-view-cube:not([hidden])) .model-viewer-dock{left:var(--model-cube-dock-left);bottom:var(--model-cube-bottom);max-width:calc(100% - var(--model-cube-dock-left) - 10px)}
.model-viewer:has(.model-view-cube:not([hidden])) .model-viewer-field-note{left:var(--model-cube-dock-left);max-width:min(350px,calc(100% - var(--model-cube-dock-left) - 14px))}
.model-viewer-hint:has(.model-viewer-interaction-hint:empty){display:none}
.model-with-timeline,.model-with-paint{--model-cube-bottom:74px}
.model-with-timeline:has(.model-progress-photos:not([hidden])){--model-cube-bottom:154px}
.model-viewer:has(.model-pick-bar:not([hidden])){--model-cube-bottom:90px}
[data-theme=dark] .model-view-cube{--cube-face:#c2c8d0;--cube-edge:#aeb7c3;--cube-corner:#9aa5b4;--cube-line:#7c8898;--cube-text:#253344;--cube-hover:#a5d0f2;--cube-current:#9cbfdd}
@media(max-width:540px){.model-viewer{--model-cube-size:56px;--model-cube-bottom:12px;--model-cube-left:8px}.model-with-timeline,.model-with-paint{--model-cube-bottom:118px}.model-with-timeline:has(.model-progress-photos:not([hidden])){--model-cube-bottom:210px}.model-viewer:has(.model-pick-bar:not([hidden])){--model-cube-bottom:164px}}
