/* Readable, field-oriented additions; existing QA/QC modules stay intact. */
.qc-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:14px 18px; background:#102321; border-bottom:1px solid #355149; }
.qc-toolbar button,.qc-panel button,.qc-editor button,.cala-detail .qc-file-actions button { min-height:44px; padding:9px 14px; font:600 14px system-ui; border:1px solid #38564c; border-radius:9px; background:#152d26; color:#edf7f1; cursor:pointer; }
.qc-toolbar button:hover,.qc-panel button:hover { border-color:#c7f36a; }
.qc-toolbar button:focus-visible,.qc-panel button:focus-visible,.qc-panel input:focus-visible { outline:3px solid #b9ec76; outline-offset:3px; }
.qc-toolbar button[aria-pressed="true"] { color:#09211b; background:#c7f36a; border-color:#c7f36a; }
.qc-clock { display:flex; align-items:center; gap:11px; margin-right:auto; }
.qc-clock > span { color:#ffd786; font-size:30px; }
.qc-clock strong,.qc-clock small { display:block; }.qc-clock strong { font-size:16px; }.qc-clock small { color:#acc2b6; font-size:12px; margin-top:3px; }
.qc-view-buttons { display:flex; gap:5px; }
.qc-toolbar button[aria-expanded="true"] { border-color:#c7f36a; }
.qc-timeline { display:grid; gap:8px; margin:18px 0; font-size:14px; color:#d2e3d7; }.qc-timeline input { accent-color:#c7f36a; width:100%; padding:0; }.qc-timeline small { font-size:12px; color:#adc5b5; }
.qc-show-base .layer-stack { display:block!important; position:absolute!important; left:12px!important; bottom:12px!important; width:240px!important; border-radius:12px!important; }
.canvas-wrap { height:620px; }
.qc-panel { padding:22px; background:#0d211c; border-top:1px solid #345246; }
.qc-panel h3 { margin:5px 0; font-size:22px; }.qc-panel-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; }
.qc-panel .primary-button { background:#c7f36a; color:#102319; }
.qc-legend { display:flex; flex-wrap:wrap; gap:15px; margin:20px 0; font-size:14px; color:#cfddd5; }.qc-legend span { display:flex; gap:7px; align-items:center; }.qc-legend i { width:9px; height:9px; border-radius:50%; }
.qc-options { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:16px; border:1px solid #345046; border-radius:12px; background:#122a22; }
.qc-options label,.qc-form-grid label,.qc-editor form>label { display:grid; gap:9px; font-size:14px; color:#d7e4dd; }
.qc-options small { color:#b0c9bd; font-size:12px; }.qc-options input { width:100%; min-width:0; }.qc-options input[type=range] { accent-color:#c7f36a; padding:0; }
.qc-built-layers { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:14px 0; }.qc-built-layers button { display:grid; grid-template-columns:7px 1fr 16px; gap:8px; align-items:center; min-height:48px; padding:8px 10px; border:1px solid #345247; border-radius:9px; background:#10251e; color:#8da69b; text-align:left; opacity:.48; cursor:pointer; }.qc-built-layers button.active { opacity:1; border-color:#4c7767; color:#e8f4ee; }.qc-built-layers i { width:7px; height:30px; border-radius:4px; }.qc-built-layers span { display:grid; gap:2px; font-size:14px; font-weight:800; }.qc-built-layers small { color:#9eb5aa; font-size:11px; font-weight:500; }.qc-built-layers b { color:#c7f36a; font-size:12px; }
.qc-notice { color:#abc1b5; font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
.qc-empty { padding:25px 20px; margin:18px 0; border:1px dashed #496359; border-radius:12px; }.qc-empty strong { color:#e1efe8; font-size:16px; }.qc-empty p { font-size:14px; color:#abc1b5; line-height:1.6; }
.qc-layer-row { display:grid; grid-template-columns:24px minmax(0,1fr) auto; gap:12px; align-items:center; border:1px solid #355045; border-radius:10px; margin:10px 0; padding:12px; }.qc-layer-row input { width:22px; height:22px; accent-color:#c7f36a; }.qc-layer-row .qc-layer-open { background:transparent; border:0; text-align:left; min-width:0; padding:4px; }.qc-layer-row strong { display:block; font-size:16px; overflow-wrap:anywhere; }.qc-layer-row small { display:block; font-size:12px; color:#a9c1b4; line-height:1.5; margin-top:5px; }.qc-layer-row>span { font-size:14px; }
.qc-layer-row.qc-documented { border-color:#3d6657; background:rgba(32,89,67,.14); }.qc-doc-dot { display:grid; place-items:center; width:24px; height:24px; border-radius:6px; background:#1e5543; color:#91f1c4!important; font-size:8px!important; font-weight:900; }
.qc-file-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:16px 0; }.qc-file-label { display:flex; align-items:center; min-height:44px; padding:10px 14px; background:#173127; border:1px solid #38564c; border-radius:9px; cursor:pointer; font-size:14px; }.qc-file-label input { max-width:190px; margin-left:10px; font-size:12px; }#qc-save-state { font-size:12px; color:#bfd1c4; }
.qc-editor { background:#152c24; border:1px solid #99c876; border-radius:12px; margin:20px 0; padding:20px; scroll-margin:20px; }.qc-editor[hidden] { display:none; }.qc-editor p { font-size:14px; line-height:1.6; color:#c7dccd; }.qc-editor input,.qc-editor select,.qc-editor textarea { width:100%; min-width:0; font-size:16px; min-height:44px; }.qc-editor small { font-size:12px; color:#b9cdbf; line-height:1.5; }.qc-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }.qc-editor details { padding:14px; margin:15px 0; border:1px solid #486050; border-radius:9px; }.qc-editor summary { font-size:14px; cursor:pointer; }.qc-editor details button { margin-top:10px; }.qc-drawing #terrain-canvas { cursor:crosshair; }.qc-drawing .layer-stack,.qc-drawing .area-hud,.qc-drawing .terraplen-hud { pointer-events:none; opacity:.2; }
.qc-details { display:grid; grid-template-columns:1fr; gap:4px; }.qc-details dt { font-size:14px; color:#9bb4a7; margin-top:12px; }.qc-details dd { font-size:16px; margin:0; color:#eff6f2; overflow-wrap:anywhere; }.qc-evidence { width:100%; max-height:400px; object-fit:contain; background:#07140f; border-radius:10px; margin:14px 0; }.qc-history { padding-left:22px; font-size:14px; line-height:1.9; color:#b8cdbf; }
.qc-presenting { overflow:hidden; }.qc-presentation { position:fixed; z-index:90; inset:0; border:0; border-radius:0; display:flex; flex-direction:column; padding-top:env(safe-area-inset-top); background:#0d211c; }.qc-presentation .viewer-header,.qc-presentation .quality-strip,.qc-presentation .qc-panel { display:none; }.qc-presentation .canvas-wrap { flex:1; height:auto; min-height:0; }.qc-presentation .qc-toolbar { flex-shrink:0; }
#qc-print-sheet { display:none; }
/* Improve existing model labels without changing the underlying terrain. */
.layer-stack { width:240px; }.layer-stack button { min-height:46px; }.layer-stack button>span { font-size:14px; }.layer-stack button small { font-size:12px; }.layer-stack-title span,.layer-stack-title small { font-size:12px; }.layer-stack-title { gap:10px; }.layer-stack-title small { display:none; }
.area-hud { width:222px; }.area-hud>span,.area-hud small,.area-hud em { font-size:12px; }.area-hud strong { font-size:14px; }.gesture-hint { font-size:12px; color:#e2ece2; padding:5px; background:#0b242b9c; }
@media(max-width:760px) { .qc-toolbar { padding:12px; gap:8px; }.qc-clock { width:100%; }.qc-toolbar button { padding:8px 10px; }.qc-panel { padding:15px; }.qc-options,.qc-form-grid { grid-template-columns:1fr; }.qc-built-layers { grid-template-columns:repeat(2,minmax(0,1fr)); }.qc-layer-row { grid-template-columns:24px minmax(0,1fr); }.qc-layer-row>span { grid-column:2; }.qc-editor { padding:14px; }.canvas-wrap { height:590px; }.layer-stack { position:relative; inset:auto; width:auto; margin:0; border-radius:0; display:none; }.canvas-wrap .area-hud { left:10px; top:65px; width:200px; }.canvas-wrap .terraplen-hud { left:10px; bottom:42px; }.qc-toolbar .qc-view-buttons { flex:1; }.qc-toolbar .qc-view-buttons button { flex:1; }.qc-presenting .qc-toolbar { padding-top:12px; }.qc-panel-head .primary-button { width:100%; } }
@media print { body.qc-printing>.app-shell,body.qc-printing>.modal-backdrop,body.qc-printing>.toast { display:none!important; }body.qc-printing #qc-print-sheet { display:block!important; color:#17221c; font:14px system-ui; padding:15mm; background:white; }body.qc-printing .qc-details dt,body.qc-printing .qc-details dd,body.qc-printing .qc-notice { color:#17221c; }body.qc-printing .qc-evidence { max-height:85mm; background:white; }body.qc-printing .qc-details { display:grid; grid-template-columns:1fr 1fr; }body.qc-printing .qc-details dt { margin:0; }body.qc-printing h1 { font-size:24px; }.qc-presenting { overflow:visible; } }
