:root{color-scheme:light;font-family:Space Grotesk,Segoe UI,sans-serif;background:radial-gradient(circle at top left,rgba(106,140,197,.18),transparent 28%),linear-gradient(180deg,#eef4fb,#e6eef8 40%,#dee8f3);color:#17263a}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}.takeoff-app{min-height:100vh;display:flex;flex-direction:column;gap:16px;padding:20px}.takeoff-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:20px 24px;border-radius:24px;background:linear-gradient(135deg,#24364f,#334a67);color:#f8fbff;box-shadow:0 22px 50px #1b2e4a2e}.takeoff-eyebrow{margin:0 0 10px;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#f8fbffb8}.takeoff-brand-row{display:flex;gap:14px;align-items:center}.takeoff-brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#ffffff24;border:1px solid rgba(255,255,255,.12);font-weight:700;letter-spacing:.04em}.takeoff-brand-row h1{margin:0;font-size:clamp(1.8rem,3vw,2.4rem)}.takeoff-brand-row p{margin:4px 0 0;color:#f8fbffc7}.takeoff-header-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.ghost-button,.primary-button,.danger-button,.icon-button,.tool-button,.item-card,.tab-button{border:0;border-radius:12px;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,opacity .16s ease}.ghost-button{padding:11px 14px;background:#ffffff1a;color:inherit}.ghost-button:hover:not(:disabled),.icon-button:hover:not(:disabled),.tool-button:hover:not(:disabled),.item-card:hover,.tab-button:hover{transform:translateY(-1px)}.primary-button{padding:11px 14px;background:#3a7ef6;color:#fff;box-shadow:0 12px 24px #3a7ef63d}.danger-button{padding:11px 14px;background:#d45363;color:#fff}.icon-button{width:36px;height:36px;background:#f7fafd;color:#203146;border:1px solid rgba(27,46,74,.08)}.ghost-button:disabled,.primary-button:disabled,.danger-button:disabled,.icon-button:disabled,.tool-button:disabled{cursor:not-allowed;opacity:.48}.status-strip{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.status-chip{padding:8px 12px;border-radius:999px;font-size:.88rem;font-weight:700;background:#24364f14;color:#203146}.status-export-ready,.status-measurement-in-progress{background:#3a7ef61f;color:#295ec0}.status-copy{margin:0;color:#5c6c82}.error-banner{display:flex;justify-content:space-between;gap:16px;padding:14px 16px;border-radius:18px;background:#fff1f1;border:1px solid rgba(212,83,99,.2);color:#6b2230}.error-banner p{margin:4px 0 0}.takeoff-shell{display:grid;grid-template-columns:260px minmax(0,1fr) 320px;gap:16px;align-items:start;min-height:calc(100vh - 210px)}.left-rail,.right-rail,.workspace-column{min-height:0}.workspace-column{display:grid;grid-template-rows:auto minmax(0,1fr) minmax(220px,auto);gap:14px;height:calc(100vh - 210px)}.panel,.workspace-toolbar,.bottom-panel{border-radius:22px;background:#ffffffc2;backdrop-filter:blur(14px);border:1px solid rgba(58,82,112,.08);box-shadow:0 18px 40px #22375314}.left-rail,.right-rail{display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 210px);overflow:auto}.panel{padding:16px}.panel-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-header h2{margin:0;font-size:1rem}.panel-header span{color:#74839a;font-size:.88rem}.item-list,.tool-grid,.session-metrics,.saved-sessions,.summary-list,.measurement-editor,.calibration-form{display:grid;gap:10px}.qs-protocol-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.qs-protocol-step{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid rgba(36,54,79,.08)}.qs-protocol-step:last-child{border-bottom:0}.qs-protocol-step>span{display:inline-flex;justify-content:center;padding:4px 6px;border-radius:8px;background:#e9eef6;color:#57687f;font-size:.72rem;font-weight:800}.qs-protocol-step.active>span{background:#d8e5ff;color:#1f5ac8}.qs-protocol-step.done>span{background:#dcefe5;color:#1d7443}.qs-protocol-step strong{display:block;color:#1d2d43;font-size:.92rem}.qs-protocol-step p,.qs-protocol-note{margin:4px 0 0;color:#67788e;font-size:.84rem;line-height:1.4}.qs-protocol-note{margin-top:12px;font-weight:700}.item-card{padding:12px 14px;background:#f6f9fd;text-align:left;display:grid;gap:4px;border:1px solid transparent}.item-card.active{background:#3a7ef61f;border-color:#3a7ef63d}.item-label{font-weight:700}.item-meta{color:#67788e;font-size:.88rem}.tool-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tool-button{padding:10px;background:#f6f9fd;color:#203146}.tool-button.active{background:#2f72ea;color:#fff}.session-metrics{grid-template-columns:minmax(0,1fr)}.session-metrics dt{color:#6c7d92;font-size:.84rem}.session-metrics dd{margin:4px 0 0;font-weight:700}.saved-sessions label{display:grid;gap:6px;font-weight:700;color:#22354f}.saved-sessions input{width:100%;padding:11px 12px;border-radius:12px;border:1px solid rgba(36,54,79,.14);background:#fff}.saved-sessions-empty{margin:0;color:#6d7c91}.saved-sessions-list{display:grid;gap:10px}.saved-session-card{display:grid;gap:10px;padding:12px;border-radius:14px;background:#f8fbff;border:1px solid rgba(36,54,79,.08)}.saved-session-status{width:-moz-fit-content;width:fit-content;padding:5px 9px;border-radius:999px;font-size:.74rem;font-weight:700;letter-spacing:.02em}.saved-session-status.current{background:#2a84581f;color:#1f6a46}.saved-session-status.changed{background:#d68c2324;color:#8f5a08}.saved-session-status.idle{background:#5c6c8224;color:#52657d}.saved-session-copy{display:grid;gap:4px}.saved-session-copy span{color:#6d7c91;font-size:.88rem}.saved-session-origin{width:-moz-fit-content;width:fit-content;padding:4px 8px;border-radius:999px;background:#3a7ef61f;color:#295ec0;font-size:.74rem;font-weight:700;letter-spacing:.02em}.saved-session-meta{line-height:1.5}.saved-session-actions{display:flex;gap:8px;flex-wrap:wrap}.workspace-toolbar{display:flex;justify-content:space-between;padding:10px 12px;gap:16px}.zoom-controls,.history-controls,.bottom-tabs{display:flex;gap:8px}.workspace-canvas{position:relative;overflow:hidden;border-radius:28px;background:linear-gradient(180deg,#fffffff0,#f6fafdf5),radial-gradient(circle at top,rgba(58,126,246,.08),transparent 52%);border:1px solid rgba(31,51,77,.08);min-height:0}.workspace-canvas.pan-enabled{cursor:grab}.workspace-empty{max-width:560px;padding:42px}.workspace-empty h2{margin:0 0 10px;font-size:clamp(1.4rem,2.3vw,2rem)}.workspace-empty p{margin:0;color:#657892;line-height:1.6}.page-frame{position:absolute;top:0;left:0;border-radius:20px;box-shadow:0 24px 50px #19273e29;overflow:hidden;background:#fff}.pdf-canvas,.measurement-overlay{position:absolute;inset:0;width:100%;height:100%}.measurement-overlay{pointer-events:none}.calibration-anchor-layer{stroke:#f59e0bbf;fill:#f59e0b33;stroke-width:2px}.measurement-layer,.draft-layer{pointer-events:auto}.measurement-layer line,.measurement-layer polyline,.measurement-layer circle{stroke:#2f72ea;fill:#fff;stroke-width:2.5px}.measurement-layer.active line,.measurement-layer.active polyline,.measurement-layer.active circle{stroke:#d45363}.measurement-vertex-handle{cursor:grab}.measurement-vertex-handle.selected{fill:#d45363;stroke:#8c2432}.measurement-vertex-handle:active{cursor:grabbing}.measurement-insert-handle{cursor:copy;fill:#fff6f7;stroke:#d45363;stroke-dasharray:2 2}.measurement-insert-handle:hover{fill:#ffd8dd}.snap-preview-layer,.snap-preview-segment{pointer-events:none}.snap-preview-segment{stroke:#f59e0bd1;stroke-width:4px;stroke-linecap:round;stroke-dasharray:8 5}.snap-preview-ring{pointer-events:none;stroke:#f59e0b;fill:#f59e0b1f;stroke-width:2px;stroke-dasharray:3 3}.draft-layer.calibration line,.draft-layer.calibration polyline,.draft-layer.calibration circle{stroke:#f59e0b;fill:#f59e0b24;stroke-width:2.5px}.draft-layer.measurement line,.draft-layer.measurement polyline,.draft-layer.measurement circle{stroke:#1f9d6b;fill:#1f9d6b24;stroke-width:2.5px}.bottom-panel{display:grid;gap:10px;padding:12px;min-height:0}.tab-button{padding:10px 12px;background:transparent;color:#54657b}.tab-button.active{background:#3a7ef61f;color:#295ec0}.table-shell{overflow:auto}.table-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;margin-bottom:12px}.valuation-toolbar{justify-content:space-between}.valuation-toolbar span{color:#617186;font-weight:700}.rate-context-panel{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) minmax(190px,1.2fr);gap:10px;margin-bottom:12px}.rate-approval-pill{display:grid;align-content:center;gap:4px;min-height:58px;padding:10px 12px;border:1px solid rgba(36,54,79,.14);border-radius:8px;background:#fff;color:#53657a}.rate-approval-pill strong{color:#1e314b}.rate-approval-pill span{font-size:.78rem;line-height:1.35}.rate-approval-pill.approved{border-color:#2789594d;background:#eef8f2}.rate-approval-pill.unapproved{border-color:#c85b694d;background:#fff4f5}.inline-rate-field{display:grid;gap:6px;min-width:132px;color:#52657c;font-size:.78rem;font-weight:700}.inline-rate-field input{width:100%;min-width:0;padding:9px 10px;border:1px solid rgba(36,54,79,.14);border-radius:8px;background:#fff;color:#16243a;font:inherit}.table-actions{display:flex;gap:8px}.row-action-button{padding:8px 10px;border-radius:10px;box-shadow:none;font-size:.84rem}table{width:100%;border-collapse:collapse;font-size:.94rem}th,td{padding:12px;text-align:left;border-bottom:1px solid rgba(36,54,79,.08)}thead th{position:sticky;top:0;background:#ffffffe0}.selected-row{background:#3a7ef614}.empty-table-cell{color:#78889c;text-align:center}.audit-list{display:grid;gap:8px}.audit-entry{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:10px 12px;border-radius:14px;background:#f8fbff}.audit-entry-copy{min-width:0;display:grid}.audit-entry p{margin:4px 0 0;color:#617186}.audit-entry-time{flex-shrink:0;padding-top:2px;color:#6d7c91;font-size:.82rem;white-space:nowrap}.audit-metadata-list{display:grid;gap:6px;margin:10px 0 0}.audit-metadata-row{display:grid;grid-template-columns:minmax(112px,auto) minmax(0,1fr);align-items:start;-moz-column-gap:10px;column-gap:10px;row-gap:2px;font-size:.88rem}.audit-metadata-list dt{margin:0;color:#4f6178;font-weight:600}.audit-metadata-list dd{margin:0;min-width:0;color:#1f2e43;overflow-wrap:anywhere}.summary-list{display:grid;gap:8px}.summary-list div{display:flex;justify-content:space-between;gap:12px}.summary-list dt{color:#4f6178}.summary-list dd{margin:0;font-weight:700}.summary-total{padding-top:8px;margin-top:4px;border-top:1px solid rgba(36,54,79,.08)}.calibration-readout,.selected-empty{display:grid;gap:10px}.calibration-readout p,.selected-empty p{margin:0;color:#5f7188}.draft-copy{margin:0;color:#5f7188;line-height:1.5}.snap-copy{margin:0;color:#8a5a17;line-height:1.5}.calibration-form p{margin:0;color:#5f7188;line-height:1.5}.calibration-form label,.measurement-editor label{display:grid;gap:6px;font-weight:700;color:#22354f}.calibration-form input,.measurement-editor select,.measurement-editor textarea{width:100%;padding:11px 12px;border-radius:12px;border:1px solid rgba(36,54,79,.14);background:#fff}.vo-trigger-fieldset{display:grid;gap:8px;margin:0;padding:10px 12px;border:1px solid rgba(36,54,79,.14);border-radius:8px}.vo-trigger-fieldset legend{padding:0 4px;font-weight:800;color:#22354f}.measurement-editor .checkbox-field{display:flex;align-items:center;gap:8px;font-weight:700}.measurement-editor .checkbox-field input{width:auto}.selected-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.selected-stats dt{color:#6d7c91;font-size:.85rem}.selected-stats dd{margin:4px 0 0;font-weight:700}.draft-actions{display:flex;flex-wrap:wrap;gap:8px}@media (max-width: 1240px){.takeoff-shell{grid-template-columns:220px minmax(0,1fr)}.rate-context-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.rate-approval-pill{grid-column:1 / -1}.right-rail{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 960px){.takeoff-app{padding:14px}.takeoff-header{flex-direction:column}.takeoff-shell,.right-rail{grid-template-columns:1fr}.workspace-column{grid-template-rows:auto minmax(420px,1fr) minmax(220px,auto)}.rate-context-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.rate-approval-pill{grid-column:1 / -1}.audit-entry{flex-direction:column;gap:12px}.audit-entry-time{padding-top:0}}.takeoff-mode-shell{display:flex;flex-direction:column;gap:16px}.takeoff-mode-switch{display:flex;justify-content:space-between;gap:16px;padding:16px 20px;border:1px solid #d8dee8;border-radius:18px;background:linear-gradient(135deg,#f7fafc,#eef4fb)}.takeoff-mode-switch h2{margin:4px 0 8px;font-size:1.1rem}.mode-switch-kicker{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:#526277}.mode-switch-actions,.tool-row,.workspace-tabs,.header-actions,.surface-toolbar,.table-toolbar,.snapshot-row,.button-cluster{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.mode-switch-actions button,.tool-row button,.workspace-tabs button,.expanded-core-workspace .sidebar button,.button-cluster button{border:1px solid #cad5e2;border-radius:999px;padding:10px 14px;background:#fff;color:#1f2f46;font-weight:600}.mode-switch-actions button.active,.tool-row button.active,.workspace-tabs button.active{background:#24364f;color:#fff;border-color:#24364f}.expanded-core-shell{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px}.expanded-core-workspace .sidebar{display:flex;flex-direction:column;gap:16px}.expanded-core-workspace .sidebar-card,.expanded-core-workspace .workspace-card{border:1px solid #d8dee8;border-radius:18px;background:#fff;padding:16px;box-shadow:0 14px 36px #1c2b400f}.expanded-core-workspace .sidebar-card h2,.expanded-core-workspace .workspace-card h2,.expanded-core-workspace .selected-measurement-panel h3{margin-top:0}.expanded-core-workspace .sidebar-card,.expanded-core-workspace .workspace-card,.expanded-core-workspace .selected-measurement-panel,.expanded-core-workspace .draft-panel,.expanded-core-workspace .page-switcher,.expanded-core-workspace .vo-trigger-list{display:flex;flex-direction:column;gap:12px}.expanded-core-workspace .workspace-main{display:flex;flex-direction:column;gap:16px}.workspace-surface{min-height:560px}.header-actions,.surface-toolbar,.table-toolbar,.snapshot-row{justify-content:space-between}.workspace-stage{min-height:460px;border-radius:16px;background:linear-gradient(180deg,#0f1724,#1d2735);display:flex;align-items:center;justify-content:center;overflow:auto;padding:16px}.expanded-page-frame{position:relative;background:#fff;box-shadow:0 16px 40px #00000047}.comparison-layer{position:absolute;inset:0}.measurement-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.measurement-overlay text{fill:#fff;font-size:12px;font-weight:700;paint-order:stroke;stroke:#111827b3;stroke-width:2px}.line-draft,.draft-preview{fill:none;stroke:#38bdf8;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.area-draft,.draft-preview.area{fill:#38bdf82e;stroke:#38bdf8;stroke-width:3}.count-dot{fill:#f8717147;stroke:#ef4444;stroke-width:3}.calibration-point{fill:#f8fafc;stroke:#22c55e;stroke-width:3}.calibration-line{stroke:#22c55e;stroke-width:3;stroke-dasharray:8 5}.selected-measurement-panel{margin-top:16px;padding-top:16px;border-top:1px solid #d8dee8}.rate-context-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.rate-approval.approved{color:#166534}.rate-approval.unapproved{color:#991b1b}.application-package-meta{margin:8px 0 12px;color:#475569;font-size:.95rem}.expanded-core-workspace table{width:100%;border-collapse:collapse}.expanded-core-workspace th,.expanded-core-workspace td{padding:10px 12px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:top}.expanded-core-workspace .selected-row{background:#24364f14}.audit-trail{display:flex;flex-direction:column;gap:10px;padding-left:20px}.audit-trail li{display:flex;flex-direction:column;gap:4px}@media (max-width: 1100px){.expanded-core-shell{grid-template-columns:1fr}.takeoff-mode-switch{flex-direction:column}}@media (max-width: 720px){.rate-context-grid{grid-template-columns:1fr}.mode-switch-actions,.tool-row,.workspace-tabs,.header-actions,.surface-toolbar,.table-toolbar,.snapshot-row{flex-direction:column;align-items:stretch}}@media (max-width: 640px){.audit-metadata-row{grid-template-columns:1fr}}
