:root{--surface-0: #1E1F22;--surface-1: #26272B;--surface-well: #141518;--accent: #2E90FA;--danger: #EF4444;--text-1: #E8E9EB;--text-2: #9DA0A8;--text-3: #5C5F66;--border: #33353A;--sync-live: #22C55E;--sync-queued: #F59E0B;--detect-high: #22C55E;--detect-med: #F59E0B;--detect-low: #EF4444;--detect-review: #F59E0B;--detect-missing: #F59E0B;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--text-dense: 13px;--text-body: 14px;--text-heading: 16px;--text-display: 20px;--weight-regular: 400;--weight-semibold: 600;--font-family: -apple-system, "Segoe UI", system-ui, sans-serif;--h-menubar: 32px;--h-toolbar: 40px;--h-statusbar: 24px;--h-panel-header: 32px;--w-thumbs: 200px;--w-thumbs-rail: 32px;--w-legend: 320px;--w-legend-min: 240px;--w-legend-max: 480px;--tree-indent: 14px;--tree-row-h: 24px;--tree-hover-highlight: color-mix(in srgb, var(--accent) 14%, transparent);--stroke-linear: #1a6fd6;--stroke-perimeter: #1f9d55;--stroke-area: #b8860b;--stroke-hatch: #8a1f8a;--stroke-freehand: #d6491a;--stroke-markup-shape: #1a1a1a;--stroke-markup-dimension: #1a6fd6;--fill-markup-highlight: #f6c343;--ink-paper: #1a1a1a;--ink-paper-muted: #555555;--paper-white: #ffffff;--crosshair-guide: #2E90FA;--snap-indicator: #12B76A;--motion-fast: .12s;--motion-med: .18s;--motion-ease: cubic-bezier(.16, 1, .3, 1)}@media(prefers-reduced-motion:reduce){:root{--motion-fast: 0ms;--motion-med: 0ms}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}html,body,#root{background:var(--surface-0);color:var(--text-1);font-family:var(--font-family);font-size:var(--text-body);font-weight:var(--weight-regular);margin:0;height:100%}@font-face{font-family:Liberation Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/LiberationSans-Regular.woff2) format("woff2")}@font-face{font-family:Liberation Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/LiberationSans-Bold.woff2) format("woff2")}@font-face{font-family:Liberation Sans;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/LiberationSans-Italic.woff2) format("woff2")}@font-face{font-family:Liberation Sans;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/LiberationSans-BoldItalic.woff2) format("woff2")}@font-face{font-family:"Liberation Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/LiberationSerif-Regular.woff2) format("woff2")}@font-face{font-family:"Liberation Serif";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/LiberationSerif-Bold.woff2) format("woff2")}@font-face{font-family:"Liberation Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/LiberationSerif-Italic.woff2) format("woff2")}@font-face{font-family:"Liberation Serif";font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/LiberationSerif-BoldItalic.woff2) format("woff2")}@font-face{font-family:Liberation Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/LiberationMono-Regular.woff2) format("woff2")}@font-face{font-family:Liberation Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/LiberationMono-Bold.woff2) format("woff2")}@font-face{font-family:Liberation Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/LiberationMono-Italic.woff2) format("woff2")}@font-face{font-family:Liberation Mono;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/LiberationMono-BoldItalic.woff2) format("woff2")}@font-face{font-family:Carlito;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Carlito-Regular.woff2) format("woff2")}@font-face{font-family:Carlito;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Carlito-Bold.woff2) format("woff2")}@font-face{font-family:Carlito;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/Carlito-Italic.woff2) format("woff2")}@font-face{font-family:Carlito;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/Carlito-BoldItalic.woff2) format("woff2")}@font-face{font-family:Caladea;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Caladea-Regular.woff2) format("woff2")}@font-face{font-family:Caladea;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Caladea-Bold.woff2) format("woff2")}@font-face{font-family:Caladea;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/Caladea-Italic.woff2) format("woff2")}@font-face{font-family:Caladea;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/Caladea-BoldItalic.woff2) format("woff2")}@font-face{font-family:Noto Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/NotoSans-Regular.woff2) format("woff2")}@font-face{font-family:Noto Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/NotoSans-Bold.woff2) format("woff2")}@font-face{font-family:Noto Sans;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/NotoSans-Italic.woff2) format("woff2")}@font-face{font-family:Noto Sans;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/NotoSans-BoldItalic.woff2) format("woff2")}.app-shell{display:flex;flex-direction:column;height:100vh;width:100vw;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px)}.app-calibration-status{padding:var(--space-xs) var(--space-md);border-bottom:1px solid var(--border);font-size:var(--text-dense);color:var(--text-2);font-variant-numeric:tabular-nums}.app-projects-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900}.app-projects-popover{position:absolute;top:var(--h-toolbar);left:var(--space-md)}.app-detect-status{padding:var(--space-xs) var(--space-md);border-bottom:1px solid var(--border);font-size:var(--text-dense);color:var(--text-2)}.app-detect-status--error{color:var(--danger)}.app-toast{position:fixed;bottom:var(--space-lg);left:50%;transform:translate(-50%);z-index:100;max-width:480px;padding:var(--space-sm) var(--space-md);background:var(--surface-1);border:1px solid var(--border);color:var(--text-1);font-size:var(--text-body);cursor:pointer}.app-toast--error{border-color:var(--danger);color:var(--danger)}.app-ai-linear-control{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);border-bottom:1px solid var(--border)}.app-ai-linear-toggle{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:4px;background:var(--surface-1);color:var(--text-1);font-size:var(--text-dense);cursor:pointer}.app-ai-linear-toggle--active{border-color:var(--accent);color:var(--accent)}.app-ai-linear-trade{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:4px;background:var(--surface-1);color:var(--text-1);font-size:var(--text-dense)}.calibrate-tool-overlay{position:absolute;top:var(--space-md);right:var(--space-md);z-index:1;background:var(--surface-1);color:var(--text-1);padding:var(--space-sm);border-radius:4px;box-shadow:0 1px 4px #0006;max-width:20rem}.calibrate-tool-error{color:var(--danger)}.calibrate-tool-title{margin:0 0 var(--space-xs);font-weight:var(--weight-semibold)}.calibrate-tool-btn{display:block;width:100%;margin-bottom:var(--space-xs);padding:var(--space-xs) var(--space-sm);border:thin solid var(--border);border-radius:4px;background:var(--surface-well);color:var(--text-1);font-family:var(--font-family);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer}.calibrate-tool-btn--primary{background:var(--accent);border-color:var(--accent);color:var(--surface-0)}.calibrate-tool-btn:disabled{cursor:default;opacity:.6}.app-main-row{flex:1;display:flex;flex-direction:row;min-height:0}.app-canvas-column{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}.app-canvas-column>.digitizer-bar{position:absolute;left:0;right:0;bottom:0;z-index:3}.pdf-canvas-root{position:relative;flex:1;background:var(--surface-well);display:flex;min-height:0;overflow:hidden}.pdf-canvas-root>.empty-state{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2}.pdf-canvas-container{position:relative;flex:1;overflow:visible}.pdf-canvas-transform,.pdf-overlay-transform{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:0 0;will-change:transform}.pdf-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.pdf-canvas--tool-active{cursor:crosshair}.pdf-canvas-tile-render-failure{position:absolute;top:var(--space-md);left:var(--space-md);z-index:1;background:color-mix(in srgb,var(--danger) 20%,var(--surface-1));color:var(--danger);padding:var(--space-sm) var(--space-sm);border-radius:4px;max-width:30rem;font-size:var(--text-body)}.measure-tool-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.measure-tool-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.measure-tool-path{fill:none;stroke:var(--accent);stroke-width:2}.measure-tool-path--perimeter{stroke:var(--stroke-perimeter)}.measure-tool-path--area{stroke:var(--stroke-area);fill:color-mix(in srgb,var(--stroke-area) 12%,transparent)}.measure-tool-point{fill:var(--accent)}.measure-tool-label{position:absolute;background:#fffffff2;padding:.15rem .4rem;border-radius:3px;font-size:var(--text-dense);font-variant-numeric:tabular-nums;box-shadow:0 1px 3px #0006;transform:translateY(-50%)}.cursor-qty-chip-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.cursor-qty-chip{position:absolute;background:var(--surface-0);color:var(--text-1);border:1px solid var(--border);padding:var(--space-xs) var(--space-sm);border-radius:4px;font-size:var(--text-dense);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap;box-shadow:0 1px 4px #00000080}.measure-tool-panel{position:absolute;top:var(--space-md);right:var(--space-md);pointer-events:auto;background:var(--surface-1);color:var(--text-1);padding:var(--space-sm);border-radius:4px;box-shadow:0 1px 4px #0006;max-width:20rem}.measure-tool-error{color:var(--danger)}.count-tool-field{display:flex;align-items:center;gap:var(--space-sm);margin:var(--space-xs) 0;font-size:var(--text-dense)}.count-tool-field>span{flex-shrink:0;min-width:5rem;color:var(--text-2)}.count-tool-field>input{flex:1;min-width:0;font:inherit;font-size:var(--text-body);color:var(--text-1);background:var(--surface-0);border:1px solid var(--border);border-radius:3px;padding:.2rem var(--space-xs)}.measure-tool-verify{display:flex;align-items:center;gap:var(--space-sm);margin:var(--space-xs) 0;font-size:var(--text-dense)}.measure-tool-verify>span{flex-shrink:0;min-width:5rem;color:var(--text-2)}.measure-tool-verify>input{flex:1;min-width:0;font:inherit;font-size:var(--text-body);color:var(--text-1);background:var(--surface-0);border:1px solid var(--border);border-radius:3px;padding:.2rem var(--space-xs)}.live-cursors-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none}.live-cursor-marker{position:absolute;transform:translate(-2px,-2px);display:flex;align-items:center;gap:.25rem}.live-cursor-dot{width:10px;height:10px;border-radius:50%;border:1px solid var(--text-1);box-shadow:0 1px 3px #0006}.live-cursor-label{color:var(--text-1);font-size:var(--text-dense);padding:.1rem .35rem;border-radius:3px;white-space:nowrap}.status-bar{display:flex;align-items:center;gap:1.25rem;padding:.35rem var(--space-md);border-top:1px solid var(--border);font-size:var(--text-dense);color:var(--text-2);background:var(--surface-0);font-variant-numeric:tabular-nums}.status-bar-item{white-space:nowrap}.status-bar-unit-toggle,.status-bar-snap-toggle,.status-bar-scale-detect{font:inherit;color:inherit;background:none;border:1px solid var(--border);border-radius:3px;padding:.1rem var(--space-xs);cursor:pointer}.status-bar-scale-detect{border-color:var(--accent);color:var(--accent)}.status-bar-scale-detect:disabled{color:var(--text-3);border-color:var(--border);cursor:default}.status-bar-scale-detect-msg{color:var(--text-3)}.status-bar-snap-toggle--active{background:var(--accent);border-color:var(--accent);color:var(--text-1)}.status-bar-page-group{display:flex;align-items:center;gap:var(--space-xs);font-variant-numeric:tabular-nums}.status-bar-page-nav,.status-bar-page-label{font:inherit;color:inherit;background:none;border:1px solid var(--border);border-radius:3px;padding:.1rem var(--space-xs);cursor:pointer;font-variant-numeric:tabular-nums}.status-bar-page-nav:disabled{color:var(--text-3);cursor:default}.status-bar-page-input{font:inherit;color:var(--text-1);background:var(--surface-1);border:1px solid var(--border);border-radius:3px;padding:.1rem var(--space-xs);width:3rem;font-variant-numeric:tabular-nums}.status-bar-sync{margin-left:auto}.status-bar-sync--live{color:var(--sync-live)}.status-bar-sync--queued{color:var(--sync-queued)}.app-right-rail{display:flex;flex-direction:column;min-height:0}.app-right-rail-panels{display:flex;flex-direction:column;min-height:0;max-height:40%;border-left:1px solid var(--border)}.app-right-rail-tabs{display:flex;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--surface-0);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.app-right-rail-tab{font:inherit;font-size:var(--text-dense);color:var(--text-2);background:none;border:none;border-bottom:2px solid transparent;padding:2px var(--space-xs);cursor:pointer}.app-right-rail-tab--active{color:var(--text-1);border-bottom-color:var(--accent)}.app-hidden-file-input{display:none}.app-estimating-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-well);opacity:.98;display:flex;align-items:center;justify-content:center;z-index:1000;animation:app-overlay-in var(--motion-fast) var(--motion-ease)}@keyframes app-overlay-in{0%{opacity:0}to{opacity:.98}}.app-estimating-panel{position:relative;background:var(--surface-1);border:1px solid var(--border);color:var(--text-1);font-family:var(--font-family);font-size:var(--text-body);animation:app-panel-in var(--motion-med) var(--motion-ease);width:min(960px,92vw);height:min(720px,88vh);min-width:460px;min-height:340px;max-width:96vw;max-height:92vh;overflow:auto;resize:both;padding:var(--space-md)}@keyframes app-panel-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.app-estimating-close{position:absolute;top:var(--space-xs);right:var(--space-xs);font:inherit;color:var(--text-1);background:none;border:none;cursor:pointer;padding:0 var(--space-xs)}.lazy-fallback{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-lg);color:var(--text-2);font-size:var(--text-dense)}.lazy-fallback-spinner{width:var(--space-md);height:var(--space-md);border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:lazy-fallback-spin .7s linear infinite}@keyframes lazy-fallback-spin{to{transform:rotate(360deg)}}.context-menu{position:absolute;z-index:10;min-width:12rem;display:flex;flex-direction:column;padding:var(--space-xs);background:var(--surface-1);border:1px solid var(--border);border-radius:4px;box-shadow:0 2px 8px #00000080;animation:context-menu-in var(--motion-fast) var(--motion-ease)}@keyframes context-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.context-menu-item{display:block;width:100%;text-align:left;font:inherit;font-size:var(--text-body);color:var(--text-1);background:none;border:none;border-radius:3px;padding:var(--space-xs) var(--space-sm);cursor:pointer;transition:background var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease)}.context-menu-item:hover:not(:disabled){background:var(--accent);color:var(--text-1)}.context-menu-item:disabled{color:var(--text-3);cursor:default}.crosshair-guides{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;overflow:hidden}.crosshair-guide{position:absolute;background:var(--crosshair-guide);opacity:.7}.crosshair-guide--snapped{background:var(--snap-indicator);opacity:.9}.crosshair-guide--v{top:0;bottom:0;width:1px;transform:translate(-.5px)}.crosshair-guide--h{left:0;right:0;height:1px;transform:translateY(-.5px)}.snap-indicator{position:absolute;z-index:5;width:10px;height:10px;border:1.5px solid var(--snap-indicator);background:transparent;transform:translate(-5px,-5px);pointer-events:none}.detection-layer-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.detection-geometry-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.detection-box,.detection-polyline,.detection-dot{pointer-events:auto;cursor:pointer}.detection-polyline{fill:none;stroke:var(--detect-med);stroke-width:2}.detection-box{fill:#ffffff0a;stroke:var(--detect-med);stroke-width:2}.detection-box--selected{stroke-width:3;fill:#ffffff1a}.detection-dot{fill:var(--detect-med);stroke:var(--surface-0);stroke-width:1}.detection-box.detection--high,.detection-polyline.detection--high{stroke:var(--detect-high)}.detection-dot.detection--high{fill:var(--detect-high)}.detection-box.detection--med,.detection-polyline.detection--med{stroke:var(--detect-med)}.detection-dot.detection--med{fill:var(--detect-med)}.detection-box.detection--low,.detection-polyline.detection--low{stroke:var(--detect-low)}.detection-dot.detection--low{fill:var(--detect-low)}.detection-box.detection--review,.detection-polyline.detection--review{stroke:var(--detect-review);stroke-dasharray:6 4}.detection-dot.detection--review{fill:var(--detect-review)}.detection-card{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--surface-1);border:var(--space-xs) solid var(--accent);border-width:thin;border-radius:var(--space-xs);color:var(--text-1);font-size:var(--text-dense);font-weight:var(--weight-semibold);pointer-events:auto}.detection-card-close{display:inline-flex;align-items:center;justify-content:center;width:var(--space-md);height:var(--space-md);padding:0;background:transparent;border:none;border-radius:var(--space-xs);color:var(--text-2);font-size:var(--text-body);font-weight:var(--weight-semibold);line-height:1;cursor:pointer}.detection-card-close:hover{background:var(--surface-well);color:var(--text-1)}.detection-marker{display:inline-flex;align-items:center;justify-content:center;min-width:var(--space-md);height:var(--space-md);padding:0 var(--space-xs);background:var(--accent);color:var(--surface-0);border-radius:var(--space-md);font-size:var(--text-dense);font-weight:var(--weight-semibold)}.detection-marker.detection--high{background:var(--detect-high)}.detection-marker.detection--med{background:var(--detect-med)}.detection-marker.detection--low{background:var(--detect-low)}.detection-marker.detection--review{background:var(--detect-review)}.detection-review-flag{color:var(--sync-queued);font-size:var(--text-dense);font-weight:var(--weight-semibold);text-transform:uppercase}.detection-subject{color:var(--text-2);font-size:var(--text-dense);font-weight:var(--weight-regular)}.detection-controls{display:inline-flex;gap:var(--space-xs)}.detection-btn{padding:var(--space-xs) var(--space-sm);border-radius:var(--space-xs);border-width:thin;border-style:solid;font-size:var(--text-dense);font-weight:var(--weight-semibold);font-family:var(--font-family);cursor:pointer}.detection-btn--accept{background:var(--accent);border-color:var(--accent);color:var(--surface-0)}.detection-btn--reject{background:var(--surface-well);border-color:var(--border);color:var(--text-2)}.detection-summary{position:absolute;top:var(--space-md);right:var(--space-md);z-index:2;width:var(--w-legend-min);max-height:60%;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--surface-1);border:thin solid var(--border);border-radius:var(--space-xs);color:var(--text-1);font-size:var(--text-body);pointer-events:auto}.detection-summary-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm)}.detection-summary-title{font-size:var(--text-heading);font-weight:var(--weight-semibold)}.detection-summary-counts{color:var(--text-2);font-size:var(--text-dense)}.detection-summary-toggle{display:flex;align-items:center;gap:var(--space-xs);color:var(--text-2);font-size:var(--text-dense)}.detection-summary-bulk{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.detection-bulk-btn,.detection-row-btn{padding:var(--space-xs) var(--space-sm);border-radius:var(--space-xs);border:thin solid var(--accent);background:var(--accent);color:var(--surface-0);font-size:var(--text-dense);font-weight:var(--weight-semibold);font-family:var(--font-family);cursor:pointer}.detection-bulk-btn--reject,.detection-row-btn--reject{background:var(--surface-well);border-color:var(--border);color:var(--text-2)}.detection-bulk-btn:disabled{opacity:.5;cursor:default}.detection-summary-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.detection-summary-row{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-xs) 0;border-top:thin solid var(--border)}.detection-summary-row-main{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm)}.detection-summary-subject{font-weight:var(--weight-semibold)}.detection-summary-breakdown,.detection-summary-recon{color:var(--text-2);font-size:var(--text-dense)}.detection-summary-recon--flag{color:var(--detect-review);font-weight:var(--weight-semibold)}.detection-summary-row-actions{display:flex;gap:var(--space-xs)}.detection-summary-samples{width:var(--space-xl);margin-left:var(--space-xs);background:var(--surface-well);color:var(--text-1);border:thin solid var(--border);border-radius:var(--space-xs);font-size:var(--text-dense);font-family:var(--font-family)}.detection-summary-missing{color:var(--detect-missing);font-size:var(--text-dense);border:thin solid var(--detect-missing);border-radius:var(--space-xs);padding:var(--space-xs) var(--space-sm)}.detection-summary-missing-summary{font-weight:var(--weight-semibold);cursor:pointer}.detection-summary-missing-list{list-style:none;margin:var(--space-xs) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.detection-summary-missing-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm)}.detection-summary-missing-meta{color:var(--text-2)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;background:var(--surface-well);text-align:center;padding:var(--space-xl)}.empty-state-heading{font-size:var(--text-display);font-weight:var(--weight-semibold);line-height:1.2;color:var(--text-1);margin:0 0 var(--space-lg)}.empty-state-body{font-size:var(--text-body);font-weight:var(--weight-regular);line-height:1.4;color:var(--text-2);max-width:420px;margin:0 0 var(--space-xl)}.empty-state-cta{font:inherit;font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--paper-white);background:var(--accent);border:none;border-radius:4px;cursor:pointer;padding:var(--space-sm) var(--space-md)}.empty-state-cta:disabled{background:var(--text-3);cursor:default}.empty-state-cta:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.empty-state-error{margin-top:var(--space-lg);max-width:420px;font-size:var(--text-body);color:var(--text-1);background:var(--surface-1);border-left:3px solid var(--danger);padding:var(--space-sm) var(--space-md);text-align:left}.empty-state-advanced{margin-top:var(--space-xl);font-size:var(--text-dense);color:var(--text-2)}.empty-state-advanced summary{cursor:pointer}.empty-state-advanced form{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm)}.empty-state-advanced label{display:none}.empty-state-advanced input{font:inherit;font-size:var(--text-body);color:var(--text-1);background:var(--surface-1);border:1px solid var(--border);border-radius:4px;padding:var(--space-xs) var(--space-sm);min-width:260px}.empty-state-advanced button{font:inherit;font-size:var(--text-body);color:var(--text-1);background:var(--surface-1);border:1px solid var(--border);border-radius:4px;cursor:pointer;padding:var(--space-xs) var(--space-sm)}.markup-layer-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.markup-layer-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.measure-layer-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.measure-layer-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.measure-layer-overlay--interactive .measure-layer-shape,.measure-layer-overlay--interactive .measure-layer-marker,.measure-layer-overlay--interactive .measure-layer-vertex,.measure-layer-overlay--interactive .measure-layer-insert-dot{pointer-events:auto}.measure-layer-shape{fill:none;stroke-width:2;cursor:pointer}.measure-layer-shape--linear{stroke:var(--stroke-linear)}.measure-layer-shape--perimeter{stroke:var(--stroke-perimeter)}.measure-layer-shape--area,.measure-layer-shape--volume{stroke:var(--stroke-area);fill:var(--stroke-area);fill-opacity:.12}.measure-layer-shape--selected{stroke:var(--accent);stroke-width:3}.measure-layer-shape--hover{stroke:var(--accent);stroke-width:3;fill-opacity:.22}.measure-layer-marker{fill:var(--stroke-linear);stroke:var(--surface-0);stroke-width:1;cursor:pointer}.measure-layer-marker--stroked{fill:none;stroke:var(--stroke-linear)}.measure-layer-marker--selected{fill:var(--accent)}.measure-layer-marker--stroked.measure-layer-marker--selected,.measure-layer-marker--stroked.measure-layer-marker--hover{fill:none;stroke:var(--accent)}.measure-layer-marker--hover{fill:var(--accent);stroke:var(--accent)}.measure-layer-vertex{fill:var(--surface-1);stroke:var(--accent);stroke-width:2;cursor:grab}.measure-layer-vertex--active{fill:var(--accent)}.measure-layer-vertex--locked{fill:var(--surface-1);stroke:var(--text-3);stroke-width:2;pointer-events:none;cursor:not-allowed}.measure-layer-insert-dot{fill:var(--surface-1);stroke:var(--accent);stroke-width:1;stroke-dasharray:2 2;cursor:copy}.measure-layer-label{position:absolute;transform:translateY(-50%);padding:0 var(--space-xs);background:var(--surface-1);color:var(--text-1);font-size:var(--text-dense);font-weight:var(--weight-semibold);border-radius:var(--space-xs);pointer-events:none;white-space:nowrap}.onpage-legend{position:absolute;z-index:1;box-sizing:border-box;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--space-xs);background:color-mix(in srgb,var(--surface-well) 88%,transparent);color:var(--text-1);font-family:var(--font-family);overflow:hidden;pointer-events:none;box-shadow:0 var(--space-xs) var(--space-md) #00000073}.onpage-legend--dragging{-webkit-user-select:none;user-select:none}.onpage-legend-header{display:flex;align-items:center;padding:0 var(--space-sm);background:color-mix(in srgb,var(--accent) 22%,transparent);border-bottom:1px solid var(--border);cursor:grab;pointer-events:auto;flex:0 0 auto}.onpage-legend--dragging .onpage-legend-header{cursor:grabbing}.onpage-legend-title{font-size:var(--text-dense);font-weight:var(--weight-semibold);color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.onpage-legend-body{flex:1 1 auto;overflow:hidden}.onpage-legend-empty{font-size:var(--text-dense);color:var(--text-2)}.onpage-legend-rows{list-style:none;margin:0;padding:0}.onpage-legend-row{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-dense)}.onpage-legend-swatch{flex:0 0 auto;border:1px solid var(--border);border-radius:2px}.onpage-legend-label{flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-1)}.onpage-legend-qty{flex:0 0 auto;color:var(--text-2);font-variant-numeric:tabular-nums}.prompt-modal__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#00000080}.prompt-modal__card{width:100%;max-width:440px;padding:var(--space-lg);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--space-xs);box-shadow:0 12px 32px #0006}.prompt-modal__label{display:block}.prompt-modal__message{display:block;margin-bottom:var(--space-sm);font-size:var(--text-body);color:var(--text-1)}.prompt-modal__input{width:100%;padding:var(--space-sm);background:var(--surface-well);border:1px solid var(--border);border-radius:var(--space-xs);font-size:var(--text-body);color:var(--text-1)}.prompt-modal__input:focus{outline:none;border-color:var(--accent)}.prompt-modal__actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-md)}.prompt-modal__btn{padding:var(--space-sm) var(--space-md);background:var(--surface-well);border:1px solid var(--border);border-radius:var(--space-xs);font-size:var(--text-body);color:var(--text-1);cursor:pointer}.prompt-modal__btn--primary{background:var(--accent);border-color:var(--accent)}.style-editor-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;background:transparent}.style-editor{width:18rem;max-width:90vw;max-height:80vh;overflow-y:auto;background:var(--surface-1);color:var(--text-1);border:1px solid var(--border);border-radius:var(--space-xs);box-shadow:0 4px 16px #0000004d}.style-editor-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border)}.style-editor-title{font-size:var(--text-body);font-weight:var(--weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.style-editor-close{flex:0 0 auto;background:transparent;border:none;color:var(--text-2);font-size:var(--text-heading);line-height:1;cursor:pointer;padding:0 var(--space-xs)}.style-editor-close:hover{color:var(--text-1)}.style-editor-body{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md)}.style-editor-field{display:flex;flex-direction:column;gap:var(--space-xs)}.style-editor-label{font-size:var(--text-dense);color:var(--text-2);font-weight:var(--weight-semibold)}.style-editor-value{font-size:var(--text-dense);color:var(--text-3)}.style-editor-select,.style-editor-color{background:var(--surface-0);color:var(--text-1);border:1px solid var(--border);border-radius:var(--space-xs);padding:var(--space-xs);font-size:var(--text-body)}.style-editor-color{height:var(--space-lg);padding:0;cursor:pointer}.style-editor-shape-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-xs)}.style-editor-shape{display:flex;align-items:center;justify-content:center;aspect-ratio:1;background:var(--surface-0);color:var(--text-2);border:1px solid var(--border);border-radius:var(--space-xs);cursor:pointer}.style-editor-shape:hover{color:var(--text-1);border-color:var(--accent)}.style-editor-shape--active{color:var(--accent);border-color:var(--accent)}.style-editor-preset-row{display:flex;gap:var(--space-xs)}.style-editor-preset{flex:1 1 auto;background:var(--surface-0);color:var(--text-2);border:1px solid var(--border);border-radius:var(--space-xs);padding:var(--space-xs);font-size:var(--text-dense);cursor:pointer}.style-editor-preset:hover{color:var(--text-1);border-color:var(--accent)}.style-editor-preset--active{color:var(--accent);border-color:var(--accent)}.style-editor-footer{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-md) var(--space-md);border-top:1px solid var(--border)}.style-editor-apply-row{display:flex;gap:var(--space-xs);align-items:stretch}.style-editor-apply-row .style-editor-select{flex:1 1 auto;min-width:0}.style-editor-apply-btn{flex:0 0 auto;background:var(--surface-0);color:var(--text-1);border:1px solid var(--accent);border-radius:var(--space-xs);padding:var(--space-xs) var(--space-sm);font-size:var(--text-body);cursor:pointer}.style-editor-apply-btn:hover{color:var(--accent)}.takeoff-tree{position:relative;overflow-y:auto;flex:1 1 auto;min-height:0;font-size:var(--text-dense);color:var(--text-1)}.takeoff-tree-node{display:block}.takeoff-tree-row{display:flex;align-items:center;gap:var(--space-xs);min-height:var(--tree-row-h);padding-right:var(--space-sm);border-bottom:1px solid var(--surface-well);cursor:default;-webkit-user-select:none;user-select:none;transition:background var(--motion-fast) var(--motion-ease)}.takeoff-tree-row:hover{background:var(--surface-1)}.takeoff-tree-row--selected{background:color-mix(in srgb,var(--accent) 22%,transparent)}.takeoff-tree-row--hover-highlight{background:var(--tree-hover-highlight);box-shadow:inset 2px 0 0 var(--accent)}.takeoff-tree-row--drop-target{outline:1px dashed var(--accent);outline-offset:-1px;background:color-mix(in srgb,var(--accent) 12%,transparent)}.takeoff-tree-row--hidden .takeoff-tree-name{color:var(--text-3);font-style:italic}.takeoff-tree-row--project,.takeoff-tree-row--sheet{font-weight:var(--weight-semibold);background:var(--surface-well)}.takeoff-tree-row--folder{font-weight:var(--weight-semibold)}.takeoff-tree-row--item[draggable=true],.takeoff-tree-row--folder[draggable=true]{cursor:grab}.takeoff-tree-disclosure{flex:0 0 auto;width:var(--space-md);height:var(--space-md);display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:var(--text-2);font-size:var(--text-dense);line-height:1;cursor:pointer;transition:color var(--motion-fast) var(--motion-ease)}.takeoff-tree-disclosure:hover{color:var(--text-1)}.takeoff-tree-disclosure--leaf{cursor:default}.takeoff-tree-type-icon{flex:0 0 auto;width:var(--space-md);text-align:center;color:var(--text-2);font-size:var(--text-dense);line-height:1}.takeoff-tree-swatch{flex:0 0 auto;width:var(--space-sm);height:var(--space-sm);border-radius:2px;border:1px solid var(--border);position:relative;padding:0;cursor:pointer}.takeoff-tree-swatch-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;border:none;opacity:0;cursor:pointer}.takeoff-tree-swatch-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.takeoff-tree-swatch--linear{background:var(--stroke-linear)}.takeoff-tree-swatch--perimeter{background:var(--stroke-perimeter)}.takeoff-tree-swatch--area,.takeoff-tree-swatch--volume{background:var(--stroke-area)}.takeoff-tree-swatch--count{background:var(--stroke-linear)}.takeoff-tree-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.takeoff-tree-rename-input{flex:1 1 auto;min-width:0;height:calc(var(--tree-row-h) - var(--space-xs));padding:0 var(--space-xs);background:var(--surface-well);color:var(--text-1);border:1px solid var(--accent);border-radius:3px;font-size:var(--text-dense);font-family:var(--font-family)}.takeoff-tree-qty{flex:0 0 auto;color:var(--text-2);font-variant-numeric:tabular-nums}.takeoff-tree-measure{flex:0 0 auto;margin-left:auto;display:inline-flex;align-items:baseline;gap:2px;text-align:right;font-variant-numeric:tabular-nums}.takeoff-tree-qty-value{color:var(--accent);font-weight:var(--weight-semibold)}.takeoff-tree-qty-unit{color:var(--text-3)}.takeoff-tree-qty-adjustment{margin-left:4px;font-size:.65rem;font-weight:var(--weight-regular, 400);color:var(--accent);border:1px solid currentColor;border-radius:3px;padding:0 .3em}.takeoff-tree-row--hidden .takeoff-tree-qty-value{color:var(--text-3);font-weight:var(--weight-regular)}.takeoff-tree-count{flex:0 0 auto;min-width:var(--space-md);text-align:right;color:var(--text-3);font-variant-numeric:tabular-nums}.takeoff-tree-cost{flex:0 0 auto;color:var(--text-1);font-variant-numeric:tabular-nums}.takeoff-tree-actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:2px}.takeoff-tree-action{width:var(--space-md);height:var(--space-md);display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:var(--text-2);font-size:var(--text-dense);line-height:1;cursor:pointer;border-radius:3px}.takeoff-tree-action:hover{background:var(--surface-well);color:var(--text-1)}.takeoff-tree-action--active{color:var(--accent)}.takeoff-tree-assembly-badge{flex:0 0 auto;display:inline-flex;align-items:center;gap:2px;padding:0 var(--space-xs);border:1px solid var(--accent);border-radius:3px;color:var(--accent);font-size:var(--text-dense);font-variant-numeric:tabular-nums;line-height:1.4}.takeoff-tree-children{display:block}.takeoff-tree-grand-total{position:sticky;bottom:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-xs) var(--space-sm);padding:var(--space-sm);border-top:1px solid var(--border);background:var(--surface-well)}.takeoff-tree-cost-breakdown{flex:1 1 100%;display:grid;grid-template-columns:auto 1fr auto 1fr;gap:var(--space-xs) var(--space-sm);color:var(--text-2)}.takeoff-tree-cost-breakdown-value{text-align:right;color:var(--text-1);font-variant-numeric:tabular-nums}.takeoff-tree-grand-total-label{flex:1 1 auto;font-weight:var(--weight-semibold)}.takeoff-tree-grand-total-value{flex:0 0 auto;font-weight:var(--weight-semibold);color:var(--accent);font-variant-numeric:tabular-nums}.takeoff-tree-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.takeoff-tree-menu{position:fixed;z-index:41;min-width:160px;margin:0;padding:var(--space-xs) 0;list-style:none;background:var(--surface-1);border:1px solid var(--border);border-radius:4px;box-shadow:0 4px 16px var(--surface-well)}.takeoff-tree-menu button{display:block;width:100%;padding:var(--space-xs) var(--space-sm);border:none;background:transparent;color:var(--text-1);font-size:var(--text-dense);font-family:var(--font-family);text-align:left;cursor:pointer}.takeoff-tree-menu button:hover{background:var(--accent);color:var(--paper-white)}.takeoff-tree-menu-group{border-bottom:1px solid var(--border);padding-bottom:var(--space-xs);margin-bottom:var(--space-xs)}.takeoff-tree-menu-label{display:block;padding:var(--space-xs) var(--space-sm);color:var(--text-3);font-size:var(--text-dense)}.panel-overflow{position:relative;flex:0 0 auto;display:inline-flex}.panel-overflow-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;color:var(--text-2);background:var(--surface-1);border:1px solid var(--border);border-radius:3px;padding:.1rem var(--space-xs);cursor:pointer}.panel-overflow-toggle:hover{color:var(--text-1);background:var(--surface-0)}.panel-overflow-menu{position:absolute;top:100%;right:0;z-index:5;min-width:140px;margin-top:var(--space-xs);display:flex;flex-direction:column;background:var(--surface-1);border:1px solid var(--border);border-radius:3px;box-shadow:0 4px 12px #0006;overflow:hidden}.panel-overflow-item{font:inherit;font-size:var(--text-body);color:var(--text-1);background:none;border:none;text-align:left;white-space:nowrap;padding:var(--space-xs) var(--space-sm);cursor:pointer}.panel-overflow-item:hover{background:var(--surface-0)}.panel-overflow-item--danger{color:var(--danger)}.quantity-legend{position:relative;display:flex;flex-direction:column;width:var(--w-legend);min-width:var(--w-legend-min);max-width:var(--w-legend-max);flex-shrink:0;border-left:1px solid var(--border);background:var(--surface-0);color:var(--text-1);overflow:hidden}.quantity-legend--collapsed{width:var(--w-thumbs-rail);align-items:center;padding-top:var(--space-sm)}.quantity-legend-resize-handle{position:absolute;top:0;left:0;bottom:0;width:4px;cursor:col-resize;background:transparent;touch-action:none;z-index:2}.quantity-legend-resize-handle:hover,.quantity-legend-resize-handle:active{background:var(--accent)}.quantity-legend-header{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-sm);min-height:var(--h-panel-header);border-bottom:1px solid var(--border)}.quantity-legend-title{font-size:var(--text-heading);font-weight:var(--weight-semibold);margin:0;white-space:nowrap}.quantity-legend-header-actions{display:flex;align-items:center;gap:var(--space-xs);margin-left:auto}.quantity-legend-collapse-toggle{font:inherit;color:inherit;background:none;border:1px solid var(--border);border-radius:3px;padding:.1rem var(--space-xs);cursor:pointer}.quantity-legend-axis-tabs{display:flex;gap:var(--space-xs)}.quantity-legend-axis-tab{font:inherit;font-size:var(--text-dense);color:inherit;background:none;border:1px solid var(--border);border-radius:3px;padding:.2rem var(--space-sm);cursor:pointer}.quantity-legend-axis-tab--active{background:var(--accent);border-color:var(--accent);color:var(--text-1)}.quantity-legend-export{position:relative}.quantity-legend-export-toggle{font:inherit;font-size:var(--text-dense);color:inherit;background:var(--surface-1);border:1px solid var(--border);border-radius:3px;padding:.2rem var(--space-sm);cursor:pointer}.quantity-legend-export-menu{position:absolute;top:100%;right:0;margin-top:var(--space-xs);display:flex;flex-direction:column;min-width:120px;background:var(--surface-1);border:1px solid var(--border);border-radius:3px;overflow:hidden;z-index:3}.quantity-legend-export-menu button{font:inherit;font-size:var(--text-body);color:var(--text-1);background:none;border:none;text-align:left;padding:var(--space-xs) var(--space-sm);cursor:pointer}.quantity-legend-export-menu button:hover{background:var(--surface-0)}.quantity-legend-groups{flex:1;overflow-y:auto}.quantity-legend-empty{padding:var(--space-sm);color:var(--text-2);font-size:var(--text-body)}.quantity-legend-group-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:.4rem var(--space-sm);background:var(--surface-1);border-bottom:1px solid var(--border);font-size:var(--text-dense);font-weight:var(--weight-semibold)}.quantity-legend-group-total{font-variant-numeric:tabular-nums;font-weight:var(--weight-semibold)}.quantity-legend-group-cost{font-variant-numeric:tabular-nums;font-weight:var(--weight-semibold);color:var(--sync-live);white-space:nowrap}.quantity-legend-group-clear{font:inherit;font-size:var(--text-dense);color:var(--text-2);background:none;border:1px solid var(--border);border-radius:3px;padding:.1rem var(--space-xs);cursor:pointer;white-space:nowrap}.quantity-legend-confirm{padding:var(--space-sm);background:var(--surface-1);border-bottom:1px solid var(--border)}.quantity-legend-confirm-copy{margin:0 0 var(--space-sm);font-size:var(--text-body);color:var(--text-1)}.quantity-legend-confirm-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.quantity-legend-confirm-cancel{font:inherit;font-size:var(--text-body);color:var(--text-1);background:none;border:1px solid var(--border);border-radius:3px;padding:.2rem var(--space-sm);cursor:pointer}.quantity-legend-confirm-delete{font:inherit;font-size:var(--text-body);color:var(--text-1);background:var(--danger);border:1px solid var(--danger);border-radius:3px;padding:.2rem var(--space-sm);cursor:pointer}.quantity-legend-item-list{list-style:none;margin:0;padding:0}.quantity-legend-item{display:flex;align-items:center;gap:var(--space-sm);padding:.3rem var(--space-sm);border-bottom:1px solid var(--border);font-size:var(--text-dense)}.quantity-legend-item-subject{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quantity-legend-item-tool{color:var(--text-2)}.quantity-legend-item-value{white-space:nowrap;font-variant-numeric:tabular-nums}.quantity-legend-item-cost{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-2);min-width:3.5rem;text-align:right}.quantity-legend-item-adjustment{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.7rem;color:var(--accent, #2f81f7);border:1px solid currentColor;border-radius:var(--radius-sm, 3px);padding:0 .3em}.quantity-legend-grand-total{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm);border-top:1px solid var(--border);background:var(--surface-1);font-size:var(--text-body);font-weight:var(--weight-semibold)}.quantity-legend-grand-total-value{font-variant-numeric:tabular-nums;color:var(--sync-live)}.quantity-legend-cost-breakdown{display:grid;grid-template-columns:1fr auto;gap:var(--space-xs) var(--space-sm);width:100%;font-size:var(--text-dense);font-weight:var(--weight-regular);color:var(--text-2)}.quantity-legend-cost-breakdown-value{font-variant-numeric:tabular-nums;text-align:right}.quantity-legend-item-delete{font:inherit;color:var(--danger);background:none;border:none;cursor:pointer;padding:0 .2rem}.quantity-legend-item-visibility{font:inherit;background:none;border:none;cursor:pointer;padding:0 .2rem;opacity:.85}.quantity-legend-item-visibility:hover{opacity:1}.quantity-legend-item-properties,.quantity-legend-item-assembly{font:inherit;font-style:italic;color:var(--accent);background:none;border:none;cursor:pointer;padding:0 .2rem;opacity:.85}.quantity-legend-item-assembly{font-style:normal}.quantity-legend-item-properties:hover,.quantity-legend-item-assembly:hover{opacity:1}.quantity-legend-item--hidden .quantity-legend-item-subject,.quantity-legend-item--hidden .quantity-legend-item-tool,.quantity-legend-item--hidden .quantity-legend-item-value{opacity:.45}.quantity-legend-item--clickable{cursor:pointer}.quantity-legend-item--clickable:hover{background:var(--surface-1)}.quantity-legend-add-item,.quantity-legend-lib-btn{font:inherit;font-size:var(--text-dense);color:var(--text-1);background:var(--surface-1);border:1px solid var(--border);border-radius:3px;padding:.1rem var(--space-xs);cursor:pointer;white-space:nowrap}.quantity-legend-item--editing{flex-wrap:wrap}.quantity-legend-edit-input{flex:1;min-width:4rem;font:inherit;font-size:var(--text-dense);color:var(--text-1);background:var(--surface-0);border:1px solid var(--border);border-radius:3px;padding:.15rem var(--space-xs)}.quantity-legend-edit-input--value{flex:0 0 4rem;min-width:0}.quantity-legend-edit-input--unit{flex:0 0 3rem;min-width:0}.quantity-legend-edit-save,.quantity-legend-edit-cancel{font:inherit;font-size:var(--text-dense);color:var(--text-1);border:1px solid var(--border);border-radius:3px;padding:.15rem var(--space-sm);cursor:pointer}.quantity-legend-edit-save{background:var(--accent);border-color:var(--accent)}.quantity-legend-edit-cancel{background:none}.thumbnails-panel{display:flex;flex-direction:column;width:var(--w-thumbs);flex-shrink:0;border-right:1px solid var(--border);background:var(--surface-0);color:var(--text-1);overflow:hidden}.thumbnails-panel--collapsed{width:var(--w-thumbs-rail);align-items:center;padding-top:var(--space-sm)}.thumbnails-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-sm);height:var(--h-panel-header);border-bottom:1px solid var(--border)}.thumbnails-panel-title{font-size:var(--text-heading);font-weight:var(--weight-semibold);margin:0}.thumbnails-panel-collapse-toggle{font:inherit;color:inherit;background:none;border:1px solid var(--border);border-radius:3px;padding:.1rem var(--space-xs);cursor:pointer}.thumbnails-panel-empty{padding:var(--space-sm);color:var(--text-2);font-size:var(--text-body)}.thumbnails-panel-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-sm)}.thumbnails-panel-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);cursor:pointer;padding:var(--space-xs);border:2px solid transparent;border-radius:3px}.thumbnails-panel-item--current{border-color:var(--accent)}.thumbnails-panel-item-image{width:160px;height:auto;object-fit:contain;background:var(--surface-1);display:block}.thumbnails-panel-item-placeholder{width:160px;aspect-ratio:1.5;background:var(--surface-1);display:block}.thumbnails-panel-item-label{font-size:var(--text-dense);color:var(--text-2);font-variant-numeric:tabular-nums}.text-markup-editor{position:absolute;z-index:5;pointer-events:auto;display:flex;flex-direction:column;gap:var(--space-xs, .25rem);transform:translateY(-.15em)}.text-markup-editor__input{pointer-events:auto;min-height:1.6em;padding:2px 4px;margin:0;border:1px solid var(--accent);border-radius:3px;background:var(--paper-white);color:var(--ink-paper);line-height:1.25;resize:none;overflow:hidden;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent);box-sizing:border-box}.text-markup-editor__input:focus{outline:none}.text-markup-toolbar{pointer-events:auto;display:flex;align-items:center;gap:2px;padding:3px;background:var(--surface-1);border:1px solid var(--border);border-radius:5px;box-shadow:0 2px 8px #00000073;position:absolute;bottom:calc(100% + var(--space-xs, .25rem));left:0;white-space:nowrap}.text-markup-toolbar__select{height:22px;font-size:var(--text-dense);background:var(--surface-2, var(--surface-1));color:var(--text-1);border:1px solid var(--border);border-radius:3px;padding:0 2px}.text-markup-toolbar__size{width:3rem}.text-markup-toolbar__btn{min-width:22px;height:22px;padding:0 4px;font-size:var(--text-dense);line-height:1;background:var(--surface-2, var(--surface-1));color:var(--text-1);border:1px solid var(--border);border-radius:3px;cursor:pointer}.text-markup-toolbar__btn:hover{background:var(--surface-3, var(--surface-1))}.text-markup-toolbar__btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.text-markup-toolbar__btn.is-active{background:var(--accent);color:var(--accent-contrast, var(--paper-white));border-color:var(--accent)}.text-markup-toolbar__btn--italic{font-style:italic}.text-markup-toolbar__btn--underline{text-decoration:underline}.text-markup-toolbar__btn--strike{text-decoration:line-through}.text-markup-toolbar__color{width:24px;height:22px;padding:0;border:1px solid var(--border);border-radius:3px;background:var(--surface-2, var(--surface-1));cursor:pointer}.markup-tool-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.markup-tool-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.markup-tool-path{fill:none;stroke:var(--accent);stroke-width:2}.markup-tool-path--in-progress{stroke-dasharray:4 3}.markup-tool-path--arrow{stroke:var(--stroke-area)}.markup-tool-arrowhead{fill:var(--stroke-area);stroke:none}.markup-tool-line-ending--shape{fill:var(--stroke-markup-shape);stroke:var(--stroke-markup-shape)}.markup-tool-line-ending--dimension{fill:var(--stroke-markup-dimension);stroke:var(--stroke-markup-dimension)}.markup-tool-line-ending--callout{fill:var(--accent);stroke:var(--accent)}.markup-tool-path--cloud{stroke:var(--stroke-perimeter);fill:color-mix(in srgb,var(--stroke-perimeter) 8%,transparent)}.markup-tool-path--hatch{stroke:var(--stroke-hatch);fill:color-mix(in srgb,var(--stroke-hatch) 6%,transparent)}.markup-tool-hatch-line{stroke:var(--stroke-hatch);stroke-width:1}.markup-tool-path--freehand{stroke:var(--stroke-freehand)}.markup-tool-path--line,.markup-tool-path--rectangle,.markup-tool-path--ellipse,.markup-tool-path--polygon,.markup-tool-path--polyline,.markup-tool-path--pen{stroke:var(--stroke-markup-shape)}.markup-tool-path--dimension{stroke:var(--stroke-markup-dimension)}.markup-tool-path--highlight{stroke:var(--fill-markup-highlight);stroke-width:10;stroke-linecap:round;stroke-linejoin:round;opacity:.4}.markup-tool-dimension-label{font-size:var(--text-dense);font-weight:var(--weight-semibold);fill:var(--stroke-markup-dimension);pointer-events:none}.markup-tool-path--callout-leader{stroke:var(--accent);stroke-width:1}.markup-tool-point{fill:var(--accent)}.markup-tool-vertex-handle{fill:var(--paper-white);stroke:var(--accent);stroke-width:1.5;pointer-events:auto;cursor:pointer}.markup-tool-vertex-handle--locked{fill:var(--paper-white);stroke:var(--text-3);stroke-width:1.5;pointer-events:none;cursor:not-allowed}.markup-tool-text{font-size:var(--text-dense);fill:var(--ink-paper);pointer-events:none}.markup-tool-stamp-box{fill:none;stroke:var(--stroke-linear);stroke-width:2}.markup-tool-stamp-label{font-size:var(--text-body);font-weight:var(--weight-semibold);fill:var(--stroke-linear);pointer-events:none}.markup-tool-stamp-meta{font-size:var(--text-dense);fill:var(--ink-paper-muted);pointer-events:none}.markup-tool-image,.markup-tool-redaction{pointer-events:auto;cursor:pointer}.markup-tool-signature-ink{fill:none;stroke:var(--ink-paper);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.markup-tool-signature-typed{font-size:var(--text-heading);fill:var(--ink-paper);pointer-events:none}.markup-tool-symbol-path{fill:none;stroke:var(--stroke-linear);stroke-width:1.5;pointer-events:none}.markup-tool-symbol-text{fill:var(--ink-paper);pointer-events:none}.markup-tool-shape{pointer-events:auto;cursor:pointer}.markup-tool-shape--selected .markup-tool-path{stroke-width:3}.markup-tool-panel{position:absolute;top:var(--space-md);right:var(--space-md);pointer-events:auto;background:var(--surface-1);color:var(--text-1);padding:var(--space-sm);border-radius:4px;box-shadow:0 1px 4px #0006;max-width:20rem}.markup-tool-selection-panel{position:absolute;pointer-events:auto;background:var(--surface-1);color:var(--text-1);padding:.5rem var(--space-sm);border-radius:4px;box-shadow:0 1px 4px #00000080;max-width:14rem;display:flex;flex-direction:column;gap:.35rem}.markup-tool-hint{font-size:var(--text-dense);color:var(--text-2)}.markup-tool-error{color:var(--danger)}.markup-properties{display:flex;flex-direction:column;background:var(--surface-0);color:var(--text-1);border-top:1px solid var(--border);overflow:hidden}.markup-properties-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);min-height:var(--h-panel-header);border-bottom:1px solid var(--border)}.markup-properties-title{font-size:var(--text-heading);font-weight:var(--weight-semibold);margin:0;white-space:nowrap}.markup-properties-type{margin-left:auto;font-size:var(--text-dense);color:var(--text-2);text-transform:capitalize}.markup-properties-comments{font-size:var(--text-dense);color:var(--accent);background:transparent;border:1px solid var(--border);border-radius:var(--space-xs);padding:var(--space-xs) var(--space-sm);cursor:pointer}.markup-properties-comments:hover{background:var(--surface-well)}.markup-properties-body{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm)}.markup-properties-field{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-body)}.markup-properties-label{flex:0 0 5.5rem;color:var(--text-2);font-size:var(--text-dense)}.markup-properties-field input[type=range]{flex:1;min-width:0;accent-color:var(--accent);cursor:pointer}.markup-properties-color{width:var(--space-lg);height:var(--space-md);padding:0;border:1px solid var(--border);border-radius:3px;background:none;cursor:pointer}.markup-properties-select{flex:1;min-width:0;font:inherit;font-size:var(--text-dense);color:var(--text-1);background:var(--surface-well);border:1px solid var(--border);border-radius:3px;padding:1px var(--space-xs);cursor:pointer;text-transform:capitalize}.markup-properties-value{flex:0 0 2.5rem;text-align:right;font-size:var(--text-dense);color:var(--text-2);font-variant-numeric:tabular-nums}.takeoff-item-properties{display:flex;flex-direction:column;background:var(--surface-0);color:var(--text-1);border-top:1px solid var(--border);overflow:hidden}.takeoff-item-properties-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);min-height:var(--h-panel-header);border-bottom:1px solid var(--border)}.takeoff-item-properties-title{font-size:var(--text-heading);font-weight:var(--weight-semibold);margin:0;white-space:nowrap}.takeoff-item-properties-subject{margin-left:auto;font-size:var(--text-dense);color:var(--text-2)}.takeoff-item-properties-style-btn{font-size:var(--text-dense);color:var(--accent);background:transparent;border:1px solid var(--border);border-radius:var(--space-xs);padding:var(--space-xs) var(--space-sm);cursor:pointer}.takeoff-item-properties-style-btn:hover{background:var(--surface-well)}.takeoff-item-properties-body{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);overflow-y:auto}.takeoff-item-properties-field{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-body)}.takeoff-item-properties-checkbox-field{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-dense);color:var(--text-1);cursor:pointer}.takeoff-item-properties-label{flex:0 0 6rem;color:var(--text-2);font-size:var(--text-dense)}.takeoff-item-properties-field input[type=range]{flex:1;min-width:0;accent-color:var(--accent);cursor:pointer}.takeoff-item-properties-field input[type=number]{flex:1;min-width:0;font:inherit;font-size:var(--text-dense);color:var(--text-1);background:var(--surface-well);border:1px solid var(--border);border-radius:3px;padding:1px var(--space-xs)}.takeoff-item-properties-slider-row,.takeoff-item-properties-dual-row{flex:1;display:flex;align-items:center;gap:var(--space-xs);min-width:0}.takeoff-item-properties-dual-input{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-dense);color:var(--text-2)}.takeoff-item-properties-sublabel{white-space:nowrap}.takeoff-item-properties-swatch-row{flex:1;display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.takeoff-item-properties-swatch{width:1.1rem;height:1.1rem;border-radius:50%;border:1px solid var(--border);padding:0;cursor:pointer}.takeoff-item-properties-swatch--active{outline:2px solid var(--accent);outline-offset:1px}.takeoff-item-properties-color-input{width:var(--space-lg);height:var(--space-md);padding:0;border:1px solid var(--border);border-radius:3px;background:none;cursor:pointer}.takeoff-item-properties-value{flex:0 0 2.5rem;text-align:right;font-size:var(--text-dense);color:var(--text-2);font-variant-numeric:tabular-nums}.takeoff-item-properties-readonly{flex:1;font-size:var(--text-dense);color:var(--text-1);font-variant-numeric:tabular-nums}.takeoff-item-properties-reset{flex:0 0 auto;font-size:var(--text-dense);color:var(--text-2);background:transparent;border:1px solid var(--border);border-radius:3px;padding:0 var(--space-xs);cursor:pointer}.takeoff-item-properties-reset:hover{background:var(--surface-well);color:var(--text-1)}.takeoff-item-properties-section{display:flex;flex-direction:column;gap:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--border)}.takeoff-item-properties-section-title{font-size:var(--text-dense);font-weight:var(--weight-semibold);color:var(--text-2)}.takeoff-item-properties-effective{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-dense);font-family:var(--font-mono, monospace);color:var(--accent)}.takeoff-item-properties-effective-value{font-variant-numeric:tabular-nums}.takeoff-item-properties-effective-badge{font-size:.65rem;border:1px solid currentColor;border-radius:3px;padding:0 .3em}.takeoff-item-properties-notes{flex:1;min-width:0;font:inherit;font-size:var(--text-dense);color:var(--text-1);background:var(--surface-well);border:1px solid var(--border);border-radius:3px;padding:var(--space-xs);resize:vertical}.digitizer-bar{display:flex;align-items:center;gap:var(--space-md);height:28px;padding:0 var(--space-sm);background:var(--surface-1);border-top:1px solid var(--border);font-size:var(--text-dense);color:var(--text-2);flex-shrink:0}.digitizer-bar-record{display:inline-flex;align-items:center;gap:var(--space-xs);font-weight:var(--weight-semibold);color:var(--text-3)}.digitizer-bar-record-dot{color:var(--text-3);font-size:var(--text-dense)}.digitizer-bar-record--on{color:var(--danger)}.digitizer-bar-record--on .digitizer-bar-record-dot{color:var(--danger);animation:digitizer-record-pulse 1s ease-in-out infinite}@keyframes digitizer-record-pulse{0%,to{opacity:1}50%{opacity:.35}}.digitizer-bar-toggles{display:flex;align-items:center;gap:var(--space-xs)}.digitizer-bar-toggle{font:inherit;color:var(--text-2);background:var(--surface-0);border:1px solid var(--border);border-radius:4px;padding:2px var(--space-sm);cursor:pointer}.digitizer-bar-toggle:hover{color:var(--text-1);border-color:var(--text-3)}.digitizer-bar-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.digitizer-bar-toggle--on{color:var(--paper-white);background:var(--accent);border-color:var(--accent)}.digitizer-bar-toggle--on:hover{color:var(--paper-white);border-color:var(--accent)}.digitizer-bar-recordmode{display:flex;align-items:center;margin-left:auto;border:1px solid var(--border);border-radius:4px;overflow:hidden}.digitizer-bar-seg{font:inherit;color:var(--text-2);background:var(--surface-0);border:none;padding:2px var(--space-sm);cursor:pointer}.digitizer-bar-seg+.digitizer-bar-seg{border-left:1px solid var(--border)}.digitizer-bar-seg:hover{color:var(--text-1)}.digitizer-bar-seg:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.digitizer-bar-seg--on{color:var(--paper-white);background:var(--accent)}.magnifier{position:absolute;z-index:6;border:1px solid var(--accent);border-radius:50%;overflow:hidden;pointer-events:none;box-shadow:0 0 0 1px var(--surface-well);background:var(--surface-well)}.magnifier-canvas{display:block;width:100%;height:100%}.magnifier-crosshair{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.magnifier-crosshair:before,.magnifier-crosshair:after{content:"";position:absolute;background:var(--crosshair-guide);opacity:.7}.magnifier-crosshair:before{left:50%;top:0;bottom:0;width:1px;transform:translate(-.5px)}.magnifier-crosshair:after{top:50%;left:0;right:0;height:1px;transform:translateY(-.5px)}.layers-panel{display:flex;flex-direction:column;background:var(--surface-0);color:var(--text-1);border-top:1px solid var(--border);overflow:hidden}.layers-panel-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);min-height:var(--h-panel-header);border-bottom:1px solid var(--border)}.layers-panel-title{font-size:var(--text-heading);font-weight:var(--weight-semibold);margin:0;white-space:nowrap}.layers-panel-add{margin-left:auto;font:inherit;font-size:var(--text-dense);color:inherit;background:none;border:1px solid var(--border);border-radius:4px;padding:2px var(--space-sm);cursor:pointer}.layers-panel-add:hover{border-color:var(--accent);color:var(--accent)}.layers-panel-list{list-style:none;margin:0;padding:0;overflow-y:auto}.layers-panel-row{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--border);font-size:var(--text-body)}.layers-panel-row--current{background:var(--surface-1)}.layers-panel-current{accent-color:var(--accent);cursor:pointer}.layers-panel-eye,.layers-panel-lock{font:inherit;font-size:var(--text-dense);color:var(--text-2);background:none;border:none;cursor:pointer;padding:0 2px}.layers-panel-eye[aria-pressed=false]{color:var(--text-3)}.layers-panel-swatch-wrap{position:relative;display:inline-flex;width:var(--space-md);height:var(--space-md);cursor:pointer}.layers-panel-swatch{width:var(--space-md);height:var(--space-md);border-radius:3px;border:1px solid var(--border)}.layers-panel-color-input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;border:none;padding:0}.layers-panel-name{flex:1;min-width:0;text-align:left;font:inherit;color:inherit;background:none;border:none;cursor:text;padding:2px var(--space-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layers-panel-name-input{flex:1;min-width:0;font:inherit;color:var(--text-1);background:var(--surface-well);border:1px solid var(--accent);border-radius:3px;padding:1px var(--space-xs)}.layers-panel-delete{font:inherit;font-size:var(--text-body);color:var(--text-3);background:none;border:none;cursor:pointer;padding:0 var(--space-xs)}.layers-panel-delete:hover:not(:disabled){color:var(--danger)}.layers-panel-delete:disabled{opacity:.4;cursor:default}.markups-list{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;overflow:hidden;background:var(--surface-0);color:var(--text-1);font-size:var(--text-dense)}.markups-list-filters{display:flex;flex-wrap:wrap;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--border)}.markups-list-search,.markups-list-layer-filter{font:inherit;color:var(--text-1);background:var(--surface-well);border:1px solid var(--border);border-radius:3px;padding:1px var(--space-xs)}.markups-list-search{flex:1;min-width:0}.markups-list-scroll{flex:1;min-height:0;overflow:auto}.markups-list-table{width:100%;border-collapse:collapse}.markups-list-table th{position:sticky;top:0;text-align:left;background:var(--surface-1);border-bottom:1px solid var(--border);font-weight:var(--weight-semibold)}.markups-list-sort{font:inherit;font-weight:var(--weight-semibold);color:inherit;background:none;border:none;cursor:pointer;padding:var(--space-xs);width:100%;text-align:left}.markups-list-table td{padding:2px var(--space-xs);border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.markups-list-measurement{font-variant-numeric:tabular-nums;text-align:right}.markups-list-row{cursor:pointer}.markups-list-row:hover{background:var(--surface-1)}.markups-list-row--selected{background:var(--surface-1);box-shadow:inset 2px 0 0 var(--accent)}.markups-list-empty{color:var(--text-3);text-align:center;padding:var(--space-sm)}.markups-list-subtotals{border-top:1px solid var(--border);padding:var(--space-xs) var(--space-sm)}.markups-list-subtotal{display:flex;justify-content:space-between;gap:var(--space-sm);color:var(--text-2)}.markups-list-subtotal-total{font-variant-numeric:tabular-nums;color:var(--text-1)}.markups-list-lock-col{width:40px;text-align:center}.markups-list-lock{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-xs);border:none;background:transparent;color:var(--text-3);cursor:pointer}.markups-list-lock--on{color:var(--accent)}.markups-list-color-col{width:44px;text-align:center}.markups-list-swatch{display:inline-block;width:14px;height:14px;border-radius:3px;border:1px solid var(--border);vertical-align:middle}.markups-list-status{font:inherit;color:var(--text-1);background:var(--surface-well);border:1px solid var(--border);border-radius:3px;padding:0 var(--space-xs);max-width:120px}.markups-list-grand{font-weight:var(--weight-semibold);color:var(--text-1)}.templates-panel{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;background:var(--surface-0);color:var(--text-1);border-top:1px solid var(--border);overflow:hidden}.templates-panel-header{flex-wrap:wrap}.templates-panel-list{flex:1}.templates-panel-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);min-height:var(--h-panel-header);border-bottom:1px solid var(--border)}.templates-panel-kind-label{font-size:var(--text-heading);font-weight:var(--weight-semibold)}.templates-panel-kind{font:inherit;font-size:var(--text-dense);color:var(--text-1);background:var(--surface-well);border:1px solid var(--border);border-radius:3px;padding:1px var(--space-xs)}.templates-panel-new{margin-left:auto;font:inherit;font-size:var(--text-dense);color:var(--text-1);background:var(--surface-1);border:1px solid var(--border);border-radius:3px;padding:1px var(--space-sm);cursor:pointer}.templates-panel-armed{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);font-size:var(--text-dense);color:var(--text-1);background:var(--surface-1);border-bottom:1px solid var(--border);border-left:3px solid var(--sync-live)}.templates-panel-armed-text{font-weight:var(--weight-semibold)}.templates-panel-armed-cancel{margin-left:auto;font:inherit;font-size:var(--text-dense);color:var(--text-2);background:none;border:1px solid var(--border);border-radius:3px;padding:0 var(--space-xs);cursor:pointer}.templates-panel-search-row{padding:var(--space-sm);border-bottom:1px solid var(--border)}.templates-panel-search{width:100%;box-sizing:border-box;font:inherit;font-size:var(--text-dense);color:var(--text-1);background:var(--surface-well);border:1px solid var(--border);border-radius:3px;padding:1px var(--space-xs)}.templates-panel-list{display:flex;flex-direction:column;gap:1px;margin:0;padding:var(--space-xs);list-style:none;overflow-y:auto;min-height:0}.templates-panel-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs);border:1px solid transparent;border-radius:3px}.templates-panel-row:hover{border-color:var(--border);background:var(--surface-1)}.templates-panel-row--builtin .templates-panel-row-name{color:var(--text-2)}.templates-panel-arm{flex:none;font:inherit;font-size:var(--text-dense);color:var(--paper-white);background:var(--sync-live);border:none;border-radius:3px;padding:0 var(--space-xs);cursor:pointer;line-height:var(--tree-row-h)}.templates-panel-arm:hover{filter:brightness(1.1)}.templates-panel-row-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-dense)}.templates-panel-row-unit{flex:none;font-size:var(--text-dense);color:var(--text-2)}.templates-panel-row-cost{flex:none;font-size:var(--text-dense);color:var(--text-1)}.templates-panel-row-actions{flex:none;display:flex;gap:var(--space-xs)}.templates-panel-action{font:inherit;font-size:var(--text-dense);color:var(--text-2);background:none;border:1px solid var(--border);border-radius:3px;padding:0 var(--space-xs);cursor:pointer}.templates-panel-action--danger{color:var(--danger)}.templates-panel-empty{padding:var(--space-sm);font-size:var(--text-dense);color:var(--text-3)}.templates-panel-explainer{margin:0;padding:var(--space-xs) var(--space-sm);font-size:var(--text-dense);color:var(--text-2);border-bottom:1px solid var(--border)}.templates-panel-search-row{display:flex;align-items:center;gap:var(--space-sm)}.templates-panel-search{flex:1 1 auto}.templates-panel-group-toggle{flex:none;font:inherit;font-size:var(--text-dense);color:var(--text-2);background:var(--surface-1);border:1px solid var(--border);border-radius:3px;padding:1px var(--space-sm);cursor:pointer;white-space:nowrap}.templates-panel-group-toggle[aria-pressed=true]{color:var(--text-1)}.templates-panel-div-header{padding:0}.templates-panel-div-toggle{display:flex;align-items:center;gap:var(--space-xs);width:100%;font:inherit;font-size:var(--text-dense);font-weight:var(--weight-semibold);color:var(--text-2);background:var(--surface-well);border:none;border-radius:3px;padding:var(--space-xs);cursor:pointer;text-align:left}.templates-panel-div-caret{flex:none;color:var(--text-3)}.templates-panel-div-count{margin-left:auto;color:var(--text-3)}.templates-panel-preview-toggle{flex:none;font:inherit;font-size:var(--text-dense);color:var(--text-2);background:none;border:1px solid var(--border);border-radius:3px;padding:0 var(--space-xs);cursor:pointer;line-height:var(--tree-row-h)}.templates-panel-preview-toggle:hover{color:var(--text-1);border-color:var(--text-3)}.templates-panel-preview{display:flex;flex-direction:column;gap:1px;margin:0 0 var(--space-xs) var(--space-lg);padding:var(--space-xs);background:var(--surface-well);border:1px solid var(--border);border-radius:3px}.templates-panel-preview-hint{font-size:var(--text-dense);color:var(--text-3);padding-bottom:var(--space-xs)}.templates-panel-preview-part{display:flex;align-items:baseline;gap:var(--space-sm);font-size:var(--text-dense);color:var(--text-2)}.templates-panel-preview-part-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-1)}.templates-panel-preview-part-formula{flex:none;font-family:monospace;color:var(--text-3)}.templates-panel-preview-part-qty{flex:none;color:var(--text-2)}.templates-panel-preview-part-cost{flex:none;color:var(--text-1)}.tool-chest{display:flex;flex-direction:column;min-height:0;background:var(--surface-0);color:var(--text-1);border-top:1px solid var(--border);overflow:hidden;position:relative}.tool-chest-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);min-height:var(--h-panel-header);border-bottom:1px solid var(--border)}.tool-chest-title{font-size:var(--text-heading);font-weight:var(--weight-semibold)}.tool-chest-explainer{margin:0;padding:var(--space-xs) var(--space-sm);font-size:var(--text-dense);color:var(--text-2);border-bottom:1px solid var(--border)}.tool-chest-new{font:inherit;font-size:var(--text-dense);color:var(--text-1);background:var(--surface-1);border:1px solid var(--border);border-radius:3px;padding:1px var(--space-sm);cursor:pointer}.tool-chest-new:last-of-type{margin-left:0}.tool-chest-header .tool-chest-new:nth-of-type(1){margin-left:auto}.tool-chest-new:hover{border-color:var(--accent)}.tool-chest-create{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--border)}.tool-chest-create-input,.tool-chest-rename-input{width:100%;box-sizing:border-box;font:inherit;font-size:var(--text-dense);color:var(--text-1);background:var(--surface-well);border:1px solid var(--accent);border-radius:3px;padding:1px var(--space-xs)}.tool-chest-rename-input{min-width:0;flex:1 1 auto}.tool-chest-section{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--border)}.tool-chest-section-title{font-size:var(--text-dense);font-weight:var(--weight-semibold);color:var(--text-2);margin-bottom:var(--space-xs);text-transform:uppercase;letter-spacing:.04em}.tool-chest-recent{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.tool-chest-recent-chip{display:inline-flex;align-items:center;gap:var(--space-xs);font:inherit;font-size:var(--text-dense);color:var(--text-1);background:var(--surface-1);border:1px solid var(--border);border-radius:3px;padding:1px var(--space-xs);cursor:pointer}.tool-chest-recent-chip:hover{border-color:var(--accent)}.tool-chest-chip-icon{color:var(--text-2);font-size:var(--text-dense)}.tool-chest-sets{display:flex;flex-direction:column;min-height:0;overflow-y:auto}.tool-chest-set{border-bottom:1px solid var(--border)}.tool-chest-set-header{display:flex;align-items:center;gap:var(--space-xs);padding:0 var(--space-sm);min-height:var(--tree-row-h)}.tool-chest-set-toggle{flex:1 1 auto;display:flex;align-items:center;gap:var(--space-xs);font:inherit;font-size:var(--text-dense);font-weight:var(--weight-semibold);color:var(--text-1);background:none;border:none;cursor:pointer;text-align:left;padding:0}.tool-chest-set-caret{color:var(--text-2);width:var(--space-md)}.tool-chest-set-count{color:var(--text-3);font-weight:var(--weight-regular)}.tool-chest-set-del{flex:none;font:inherit;font-size:var(--text-dense);color:var(--text-3);background:none;border:none;cursor:pointer}.tool-chest-set-del:hover{color:var(--danger)}.tool-chest-list{display:flex;flex-direction:column;gap:1px;margin:0;padding:0 var(--space-xs) var(--space-xs);list-style:none}.tool-chest-tool{border:1px solid transparent;border-radius:3px}.tool-chest-tool--dragging{opacity:.5}.tool-chest-tool-arm{width:100%;display:flex;align-items:center;gap:var(--space-xs);font:inherit;font-size:var(--text-dense);color:var(--text-1);background:none;border:none;border-radius:3px;padding:var(--space-xs);cursor:pointer;text-align:left}.tool-chest-tool-arm:hover{background:var(--surface-1)}.tool-chest-tool-swatch{flex:none;width:var(--space-sm);height:var(--space-sm);border-radius:2px;border:1px solid var(--border)}.tool-chest-tool-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-chest-tool-badge{flex:none;font-size:var(--text-dense);color:var(--paper-white);background:var(--accent);border-radius:2px;padding:0 var(--space-xs);line-height:var(--space-md)}.tool-chest-empty{padding:var(--space-xs) var(--space-sm);font-size:var(--text-dense);color:var(--text-3)}.tool-chest-menu{position:fixed;z-index:50;display:flex;flex-direction:column;min-width:var(--w-legend-min);background:var(--surface-1);border:1px solid var(--border);border-radius:3px;padding:var(--space-xs);box-shadow:0 4px 12px var(--surface-well)}.tool-chest-menu-item{font:inherit;font-size:var(--text-dense);color:var(--text-1);background:none;border:none;border-radius:3px;padding:var(--space-xs);cursor:pointer;text-align:left}.tool-chest-menu-item:hover{background:var(--surface-0)}.tool-chest-menu-item--indent{padding-left:var(--space-md);color:var(--text-2)}.tool-chest-menu-item--danger{color:var(--danger)}.tool-chest-menu-sub{display:flex;flex-direction:column;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:var(--space-xs) 0;padding:var(--space-xs) 0}.tool-chest-menu-sub-label{font-size:var(--text-dense);color:var(--text-3);padding:0 var(--space-xs) var(--space-xs)}.tool-chest-editor{position:absolute;left:var(--space-sm);right:var(--space-sm);bottom:var(--space-sm);z-index:40;display:flex;flex-direction:column;gap:var(--space-xs);background:var(--surface-1);border:1px solid var(--accent);border-radius:3px;padding:var(--space-sm);box-shadow:0 4px 12px var(--surface-well)}.tool-chest-editor-field{display:flex;flex-direction:column;gap:var(--space-xs);font-size:var(--text-dense);color:var(--text-2)}.tool-chest-editor-input{font:inherit;font-size:var(--text-dense);color:var(--text-1);background:var(--surface-well);border:1px solid var(--border);border-radius:3px;padding:1px var(--space-xs)}.tool-chest-editor-actions{display:flex;gap:var(--space-xs);justify-content:flex-end}.tool-chest-editor-btn{font:inherit;font-size:var(--text-dense);color:var(--paper-white);background:var(--accent);border:none;border-radius:3px;padding:var(--space-xs) var(--space-sm);cursor:pointer}.tool-chest-editor-btn--ghost{color:var(--text-2);background:none;border:1px solid var(--border)}.bookmarks-panel{display:flex;flex-direction:column;width:var(--w-thumbs);flex-shrink:0;border-right:1px solid var(--border);background:var(--surface-0);color:var(--text-1);overflow:hidden}.bookmarks-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-sm);height:var(--h-panel-header);border-bottom:1px solid var(--border)}.bookmarks-panel-title{font-size:var(--text-heading);font-weight:var(--weight-semibold);margin:0}.bookmarks-panel-add{display:flex;gap:var(--space-xs);padding:var(--space-sm);border-bottom:1px solid var(--border)}.bookmarks-panel-add-input{flex:1;min-width:0;font:inherit;color:inherit;background:var(--surface-1);border:1px solid var(--border);border-radius:3px;padding:var(--space-xs)}.bookmarks-panel-add-button{font:inherit;color:inherit;background:none;border:1px solid var(--border);border-radius:3px;padding:var(--space-xs) var(--space-sm);cursor:pointer}.bookmarks-panel-empty{padding:var(--space-sm);color:var(--text-2);font-size:var(--text-body)}.bookmarks-panel-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm)}.bookmarks-panel-item{display:flex;align-items:stretch;gap:var(--space-xs)}.bookmarks-panel-item-nav{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xs);font:inherit;color:inherit;text-align:left;background:none;border:1px solid transparent;border-radius:3px;padding:var(--space-xs);cursor:pointer}.bookmarks-panel-item-nav:hover{border-color:var(--accent);background:var(--surface-1)}.bookmarks-panel-item-sheet{font-size:var(--text-dense);color:var(--text-2);font-variant-numeric:tabular-nums}.bookmarks-panel-item-label{font-size:var(--text-body);color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.bookmarks-panel-item-remove{flex-shrink:0;font:inherit;color:var(--text-2);background:none;border:1px solid var(--border);border-radius:3px;padding:0 var(--space-sm);cursor:pointer}.bookmarks-panel-item-remove:hover{color:var(--danger);border-color:var(--danger)}.ribbon{display:flex;flex-direction:column;background:var(--surface-0);border-bottom:1px solid var(--border);flex:0 0 auto}.ribbon-tabs{display:flex;align-items:stretch;height:var(--h-menubar);padding:0 var(--space-xs);background:var(--surface-well);border-bottom:1px solid var(--border)}.ribbon-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--text-2);font-family:var(--font-family);font-size:var(--text-body);font-weight:var(--weight-regular);padding:0 var(--space-md);cursor:pointer;border-bottom:2px solid transparent;transition:color var(--motion-fast) var(--motion-ease),border-bottom-color var(--motion-fast) var(--motion-ease)}.ribbon-tab:hover{color:var(--text-1)}.ribbon-tab--active{color:var(--text-1);font-weight:var(--weight-semibold);border-bottom-color:var(--accent)}.ribbon-bar{display:flex;align-items:stretch;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);overflow-x:auto;min-height:68px}.ribbon-group{display:flex;flex-direction:column;align-items:stretch;padding:0 var(--space-sm);border-right:1px solid var(--border)}.ribbon-group:last-child{border-right:none}.ribbon-group-body{display:flex;gap:var(--space-xs);flex:1;align-items:flex-start}.ribbon-group-label{text-align:center;color:var(--text-3);font-size:var(--text-dense);padding-top:var(--space-xs)}.ribbon-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:var(--space-xs);min-width:52px;padding:var(--space-xs) var(--space-sm);border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text-1);font-family:var(--font-family);font-size:var(--text-dense);cursor:pointer;transition:background var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease)}.ribbon-button:hover:not(:disabled){background:var(--surface-1);border-color:var(--border)}.ribbon-button:disabled{color:var(--text-3);cursor:default}.ribbon-button--active{border-color:var(--accent);color:var(--accent)}.ribbon-button-icon{flex:0 0 auto}.ribbon-button-label{display:inline-flex;align-items:center;gap:2px;white-space:nowrap}.ribbon-profile{position:relative}.ribbon-profile-button{min-width:72px}.ribbon-profile-chevron{flex:0 0 auto}.ribbon-profile-menu{position:fixed;z-index:200;min-width:140px;background:var(--surface-1);border:1px solid var(--border);border-radius:4px;box-shadow:0 4px 12px #0006;padding:var(--space-xs)}.ribbon-profile-item{display:block;width:100%;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--text-1);font-family:var(--font-family);font-size:var(--text-body);padding:var(--space-xs) var(--space-sm);border-radius:4px;cursor:pointer}.ribbon-profile-item:hover{background:var(--surface-0)}.ribbon-profile-item--active{color:var(--accent);font-weight:var(--weight-semibold)}.ribbon-split{position:relative;display:flex;align-items:flex-start}.ribbon-split-caret{-webkit-appearance:none;-moz-appearance:none;appearance:none;align-self:stretch;display:inline-flex;align-items:center;padding:0 2px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text-2);cursor:pointer}.ribbon-split-caret:hover{background:var(--surface-1);border-color:var(--border);color:var(--text-1)}.ribbon-split-menu{position:fixed;z-index:200;min-width:160px;background:var(--surface-1);border:1px solid var(--border);border-radius:4px;box-shadow:0 4px 12px #0006;padding:var(--space-xs)}.ribbon-split-menu--grouped{max-height:340px;overflow-y:auto}.ribbon-split-group+.ribbon-split-group{margin-top:var(--space-xs)}.ribbon-split-group-label{color:var(--text-3);font-size:var(--text-dense);padding:var(--space-xs) var(--space-sm) 2px}.ribbon-split-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--text-1);font-family:var(--font-family);font-size:var(--text-body);padding:var(--space-xs) var(--space-sm);border-radius:4px;cursor:pointer}.ribbon-split-item:hover{background:var(--surface-0)}.ribbon-split-item-icon{flex:0 0 auto;color:var(--text-2)}.ribbon-color{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:var(--space-xs);min-width:52px;padding:var(--space-xs) var(--space-sm);border:1px solid transparent;border-radius:4px;color:var(--text-1);font-size:var(--text-dense);cursor:pointer}.ribbon-color:hover{background:var(--surface-1);border-color:var(--border)}.ribbon-color-swatch{width:20px;height:20px;border-radius:4px;border:1px solid var(--border)}.ribbon-color-input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.project-switcher{display:flex;flex-direction:column;gap:var(--space-xs);min-width:var(--w-legend-min);padding:var(--space-xs);background:var(--surface-1);border:1px solid var(--border);color:var(--text-1);font-family:var(--font-family);font-size:var(--text-body)}.project-switcher-new{font:inherit;text-align:left;color:var(--accent);background:none;border:none;cursor:pointer;padding:var(--space-xs) var(--space-sm)}.project-switcher-new:hover{background:var(--surface-well)}.project-switcher-section{font-size:var(--text-dense);font-weight:var(--weight-semibold);color:var(--text-2);padding:var(--space-xs) var(--space-sm);border-top:1px solid var(--border)}.project-switcher-empty{color:var(--text-2);font-size:var(--text-dense);padding:var(--space-xs) var(--space-sm)}.project-switcher-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-xs)}.project-switcher-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.project-switcher-pick{font:inherit;flex:1;display:flex;align-items:center;gap:var(--space-xs);text-align:left;color:var(--text-1);background:none;border:1px solid transparent;cursor:pointer;padding:var(--space-xs) var(--space-sm)}.project-switcher-pick:hover{background:var(--surface-well)}.project-switcher-pick--active{border-color:var(--border);background:var(--surface-well);font-weight:var(--weight-semibold)}.project-switcher-check{color:var(--accent)}.project-switcher-name{font:inherit;color:inherit}.project-switcher-delete{font:inherit;color:var(--danger);background:none;border:none;cursor:pointer;padding:var(--space-xs) var(--space-sm)}.project-switcher-delete:hover{background:var(--surface-0)}.project-menu-row{gap:var(--space-md)}.project-menu-name{font:inherit;color:inherit}.project-menu-delete{font:inherit;color:var(--danger);background:none;border:none;cursor:pointer;padding:var(--space-xs) var(--space-sm)}.project-menu-delete:hover{background:var(--surface-0)}.project-menu-empty{display:block;color:var(--text-2);font-size:var(--text-dense);padding:var(--space-xs) var(--space-sm)}.create-project-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-well);opacity:.98;display:flex;align-items:center;justify-content:center;z-index:1000}.create-project-dialog{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--surface-1);border:1px solid var(--border);color:var(--text-1);font-family:var(--font-family);font-size:var(--text-body);min-width:var(--w-legend-min);max-width:var(--w-legend)}.create-project-header{display:flex;align-items:center;justify-content:space-between;height:var(--h-panel-header);border-bottom:1px solid var(--border)}.create-project-title{font-size:var(--text-heading);font-weight:var(--weight-semibold);color:var(--text-1)}.create-project-close{font:inherit;color:var(--text-2);background:none;border:none;cursor:pointer;padding:var(--space-xs) var(--space-sm)}.create-project-close:hover{color:var(--text-1)}.create-project-label{font-size:var(--text-dense);font-weight:var(--weight-semibold);color:var(--text-2)}.create-project-input{font:inherit;color:var(--text-1);background:var(--surface-well);border:1px solid var(--border);padding:var(--space-sm)}.create-project-input:focus{outline:none;border-color:var(--accent)}.create-project-input:disabled{color:var(--text-3)}.create-project-error{margin:0;font-size:var(--text-dense);color:var(--danger)}.create-project-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-sm)}.create-project-btn{font:inherit;cursor:pointer;border:1px solid var(--border);padding:var(--space-xs) var(--space-md)}.create-project-btn:disabled{cursor:default;color:var(--text-3)}.create-project-btn--secondary{color:var(--text-2);background:var(--surface-0)}.create-project-btn--secondary:hover:not(:disabled){color:var(--text-1)}.create-project-btn--primary{color:var(--text-1);background:var(--accent);border-color:var(--accent)}.create-project-btn--primary:disabled{background:var(--surface-0);border-color:var(--border)}.dock-layout{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;position:relative}.dock-main-row{flex:1;display:flex;flex-direction:row;min-height:0;min-width:0}.dock-center{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.dock-edge{position:relative;display:flex;background:var(--surface-0);flex:0 0 auto}.dock-edge--left,.dock-edge--right{flex-direction:row;height:100%}.dock-edge--left{border-right:1px solid var(--border)}.dock-edge--right{border-left:1px solid var(--border)}.dock-edge--bottom{flex-direction:column;border-top:1px solid var(--border);width:100%}.dock-edge-panes{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:auto}.dock-edge--bottom .dock-edge-panes{flex-direction:row}.dock-resizer{flex:0 0 auto;background:transparent;z-index:4}.dock-resizer--x{width:4px;cursor:col-resize}.dock-resizer--y{height:4px;cursor:row-resize}.dock-resizer{transition:background var(--motion-fast) var(--motion-ease)}.dock-resizer:hover{background:var(--accent)}.dock-pane{display:flex;flex-direction:column;min-height:0;border-bottom:1px solid var(--border)}.dock-edge--bottom .dock-pane{flex:1;border-bottom:none;border-right:1px solid var(--border)}.dock-pane-header{display:flex;align-items:center;gap:var(--space-xs);height:var(--h-panel-header);padding:0 var(--space-xs) 0 var(--space-sm);background:var(--surface-well);border-bottom:1px solid var(--border);flex:0 0 auto}.dock-pane-collapse{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--text-2);cursor:pointer;display:inline-flex;align-items:center;padding:0}.dock-pane-title{flex:1;min-width:0;color:var(--text-1);font-size:var(--text-dense);font-weight:var(--weight-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dock-pane-actions{display:inline-flex;align-items:center;gap:2px;flex:0 0 auto}.dock-pane-action{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--text-3);cursor:pointer;display:inline-flex;align-items:center;padding:var(--space-xs);border-radius:4px;transition:color var(--motion-fast) var(--motion-ease),background var(--motion-fast) var(--motion-ease)}.dock-pane-action:hover{color:var(--text-1);background:var(--surface-1)}.dock-pane{animation:dock-pane-in var(--motion-med) var(--motion-ease)}@keyframes dock-pane-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.dock-pane-body{flex:1;min-height:0;min-width:0;overflow:auto}.dock-float{position:absolute;z-index:41;display:flex;flex-direction:column;background:var(--surface-0);border:1px solid var(--border);border-radius:4px;box-shadow:0 8px 24px #00000080;overflow:hidden}.dock-float-header{cursor:move}.print-dialog{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background:var(--surface-1);border:1px solid var(--border);color:var(--text-1);font-family:var(--font-family);font-size:var(--text-body);min-width:var(--w-legend-min)}.print-dialog-header{display:flex;align-items:center;justify-content:space-between;height:var(--h-panel-header);border-bottom:1px solid var(--border)}.print-dialog-title{font-size:var(--text-heading);font-weight:var(--weight-semibold);color:var(--text-1)}.print-dialog-close{font:inherit;color:var(--text-2);background:none;border:none;cursor:pointer;padding:var(--space-xs) var(--space-sm)}.print-dialog-close:hover{color:var(--text-1)}.print-dialog-close:disabled{color:var(--text-3);cursor:not-allowed}.print-dialog-modes{display:flex;flex-direction:column;gap:var(--space-xs);border:1px solid var(--border);padding:var(--space-sm);margin:0}.print-dialog-legend{color:var(--text-2);font-size:var(--text-dense);padding:0 var(--space-xs)}.print-dialog-radio{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer}.print-dialog-custom{display:flex;flex-direction:column;gap:var(--space-xs)}.print-dialog-custom-label{color:var(--text-2);font-size:var(--text-dense)}.print-dialog-custom-input{font:inherit;color:var(--text-1);background:var(--surface-well);border:1px solid var(--border);padding:var(--space-xs) var(--space-sm)}.print-dialog-custom-input:disabled{color:var(--text-3)}.print-dialog-toggle{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer}.print-dialog-summary{margin:0;color:var(--text-2);font-size:var(--text-dense)}.print-dialog-actions{display:flex;gap:var(--space-sm);justify-content:flex-end;border-top:1px solid var(--border);padding-top:var(--space-sm)}.print-dialog-button{font:inherit;color:var(--text-1);background:var(--accent);border:none;cursor:pointer;padding:var(--space-sm) var(--space-md)}.print-dialog-button--secondary{background:var(--surface-well);color:var(--text-2)}.print-dialog-button:disabled{background:var(--surface-well);color:var(--text-3);cursor:not-allowed}.pdf-edit-panel{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background:var(--surface-1);border:1px solid var(--border);color:var(--text-1);font-family:var(--font-family);font-size:var(--text-body);min-width:var(--w-legend-min);max-width:var(--w-legend-max)}.pdf-edit-header{display:flex;align-items:center;justify-content:space-between;height:var(--h-panel-header);border-bottom:1px solid var(--border)}.pdf-edit-title{font-size:var(--text-heading);font-weight:var(--weight-semibold);color:var(--text-1)}.pdf-edit-close{font:inherit;color:var(--text-2);background:none;border:none;cursor:pointer;padding:var(--space-xs) var(--space-sm)}.pdf-edit-close:hover{color:var(--text-1)}.pdf-edit-tabs{display:flex;gap:var(--space-xs);border-bottom:1px solid var(--border)}.pdf-edit-tab{font:inherit;color:var(--text-2);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;padding:var(--space-xs) var(--space-sm)}.pdf-edit-tab--active{color:var(--text-1);border-bottom-color:var(--accent)}.pdf-edit-section{display:flex;flex-direction:column;gap:var(--space-sm)}.pdf-edit-field{display:flex;flex-direction:column;gap:var(--space-xs)}.pdf-edit-field-row{display:flex;gap:var(--space-sm)}.pdf-edit-field-row>.pdf-edit-field{flex:1}.pdf-edit-label{color:var(--text-2);font-size:var(--text-dense)}.pdf-edit-input,.pdf-edit-select{font:inherit;color:var(--text-1);background:var(--surface-well);border:1px solid var(--border);padding:var(--space-xs) var(--space-sm);width:100%}.pdf-edit-input:disabled{color:var(--text-3)}.pdf-edit-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.pdf-edit-button{font:inherit;color:var(--text-1);background:var(--accent);border:none;cursor:pointer;padding:var(--space-sm) var(--space-md)}.pdf-edit-button--secondary{background:var(--surface-well);color:var(--text-2)}.pdf-edit-button--danger{background:var(--danger)}.pdf-edit-button:disabled{background:var(--surface-well);color:var(--text-3);cursor:not-allowed}.pdf-edit-status{margin:0;color:var(--text-2);font-size:var(--text-dense)}.pdf-edit-status--error{color:var(--danger)}.pdf-edit-hint{margin:0;color:var(--text-3);font-size:var(--text-dense)}.pdf-compare-panel{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background:var(--surface-1);border:1px solid var(--border);color:var(--text-1);font-family:var(--font-family);font-size:var(--text-body);min-width:var(--w-legend-min)}.pdf-compare-header{display:flex;align-items:center;justify-content:space-between;height:var(--h-panel-header);border-bottom:1px solid var(--border)}.pdf-compare-title{font-size:var(--text-heading);font-weight:var(--weight-semibold)}.pdf-compare-close{font:inherit;color:var(--text-2);background:none;border:none;cursor:pointer;padding:var(--space-xs) var(--space-sm)}.pdf-compare-controls{display:flex;flex-direction:column;gap:var(--space-sm)}.pdf-compare-row{display:flex;align-items:center;gap:var(--space-sm)}.pdf-compare-label{color:var(--text-2);font-size:var(--text-dense);min-width:var(--w-thumbs-rail)}.pdf-compare-input,.pdf-compare-select{font:inherit;color:var(--text-1);background:var(--surface-well);border:1px solid var(--border);padding:var(--space-xs) var(--space-sm)}.pdf-compare-mode{display:flex;gap:var(--space-xs)}.pdf-compare-mode-button{font:inherit;color:var(--text-2);background:var(--surface-well);border:1px solid var(--border);cursor:pointer;padding:var(--space-xs) var(--space-sm)}.pdf-compare-mode-button--active{color:var(--text-1);border-color:var(--accent)}.pdf-compare-slider{flex:1}.pdf-compare-canvas-wrap{display:flex;justify-content:center;background:var(--surface-well);border:1px solid var(--border);overflow:auto;max-height:var(--w-legend-max)}.pdf-compare-canvas{max-width:100%;height:auto}.pdf-compare-status{margin:0;color:var(--text-2);font-size:var(--text-dense)}.pdf-compare-status--error{color:var(--danger)}.pdf-compare-button{font:inherit;color:var(--text-1);background:var(--accent);border:none;cursor:pointer;padding:var(--space-sm) var(--space-md)}.pdf-compare-button:disabled{background:var(--surface-well);color:var(--text-3);cursor:not-allowed}.revision-log-panel{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);background:var(--surface-1);color:var(--text-1)}.revision-log-header{display:flex;align-items:center;justify-content:space-between}.revision-log-title{font-size:var(--text-body);font-weight:var(--weight-semibold);margin:0}.revision-log-add{background:var(--surface-2);color:var(--text-1);border:1px solid var(--border-1);border-radius:3px;padding:var(--space-xs) var(--space-sm);cursor:pointer;font-size:var(--text-dense)}.revision-log-add:hover{background:var(--surface-3)}.revision-log-table{width:100%;border-collapse:collapse;font-size:var(--text-dense)}.revision-log-table th{text-align:left;color:var(--text-2);font-weight:var(--weight-semibold);padding:var(--space-xs);border-bottom:1px solid var(--border-1)}.revision-log-row{cursor:pointer}.revision-log-row:hover{background:var(--surface-2)}.revision-log-number{font-weight:var(--weight-semibold);padding:var(--space-xs)}.revision-log-count{color:var(--text-2);text-align:center;padding:var(--space-xs)}.revision-log-input{width:100%;min-width:0;background:transparent;color:var(--text-1);border:1px solid transparent;border-radius:3px;padding:var(--space-xs);font-size:var(--text-dense)}.revision-log-input:focus{background:var(--surface-2);border-color:var(--border-1);outline:none}.revision-log-input--author{max-width:4rem}.color-legend-panel{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);background:var(--surface-1);color:var(--text-1)}.color-legend-header{display:flex;align-items:center;justify-content:space-between}.color-legend-title{font-size:var(--text-body);font-weight:var(--weight-semibold);margin:0}.color-legend-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.color-legend-row{display:flex;align-items:center;gap:var(--space-xs)}.color-legend-swatch{width:1.5rem;height:1.5rem;padding:0;border:none;background:none;cursor:pointer}.color-legend-meaning,.color-legend-new-meaning{flex:1;min-width:0;background:var(--surface-2);color:var(--text-1);border:1px solid var(--border-1);border-radius:3px;padding:var(--space-xs);font-size:var(--text-dense)}.color-legend-remove{background:none;border:none;color:var(--text-2);cursor:pointer;font-size:var(--text-body);line-height:1;padding:0 var(--space-xs)}.color-legend-remove:hover{color:var(--text-1)}.color-legend-add{display:flex;gap:var(--space-xs)}.color-legend-add-btn{background:var(--surface-2);color:var(--text-1);border:1px solid var(--border-1);border-radius:3px;padding:var(--space-xs) var(--space-sm);cursor:pointer;font-size:var(--text-dense)}.color-legend-add-btn:hover{background:var(--surface-3)}.attachments-panel{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);font-family:var(--font-family);font-size:var(--text-body);color:var(--text-1)}.attachments-add{display:flex;flex-direction:column;gap:var(--space-xs)}.attachments-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);border-radius:4px;background:var(--surface-0);color:var(--text-1);font-family:var(--font-family);font-size:var(--text-dense);padding:var(--space-xs) var(--space-sm)}.attachments-input:focus{outline:none;border-color:var(--accent)}.attachments-add-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;align-self:flex-start;border:1px solid var(--border);border-radius:4px;background:var(--surface-1);color:var(--text-1);font-family:var(--font-family);font-size:var(--text-dense);padding:var(--space-xs) var(--space-md);cursor:pointer}.attachments-add-button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.attachments-add-button:disabled{color:var(--text-3);cursor:default}.attachments-empty{color:var(--text-3);font-size:var(--text-dense)}.attachments-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.attachments-item{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs);border-radius:4px}.attachments-item:hover{background:var(--surface-1)}.attachments-item-icon{flex:0 0 auto;color:var(--text-2)}.attachments-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-1);text-decoration:none;font-size:var(--text-dense)}.attachments-item-name:hover{color:var(--accent);text-decoration:underline}.attachments-item-remove{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:0 0 auto;border:none;background:transparent;color:var(--text-3);cursor:pointer;padding:2px;border-radius:4px;display:inline-flex}.attachments-item-remove:hover{color:var(--danger);background:var(--surface-0)}.notes-panel{display:flex;flex-direction:column;height:100%;padding:var(--space-sm);font-family:var(--font-family)}.notes-empty{color:var(--text-3);font-size:var(--text-dense)}.notes-textarea{flex:1;min-height:160px;resize:vertical;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);border-radius:4px;background:var(--surface-0);color:var(--text-1);font-family:var(--font-family);font-size:var(--text-body);line-height:1.5;padding:var(--space-sm)}.notes-textarea:focus{outline:none;border-color:var(--accent)}.login-screen{display:flex;align-items:center;justify-content:center;height:100%;background:var(--surface-well);font-family:var(--font-family)}.login-card{display:flex;flex-direction:column;gap:var(--space-md);width:320px;max-width:90%;background:var(--surface-1);border:1px solid var(--border);border-radius:8px;padding:var(--space-xl)}.login-title{margin:0 0 var(--space-sm);font-size:var(--text-display);font-weight:var(--weight-semibold);line-height:1.2;color:var(--text-1);text-align:center}.login-modes{display:flex;gap:var(--space-xs);background:var(--surface-well);border:1px solid var(--border);border-radius:6px;padding:var(--space-xs)}.login-mode{flex:1;font:inherit;font-size:var(--text-body);font-weight:var(--weight-regular);color:var(--text-2);background:transparent;border:none;border-radius:4px;cursor:pointer;padding:var(--space-xs) var(--space-sm)}.login-mode-active{color:var(--text-1);background:var(--surface-1);font-weight:var(--weight-semibold)}.login-mode:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.login-label{font-size:var(--text-dense);font-weight:var(--weight-semibold);color:var(--text-2)}.login-input{font:inherit;font-size:var(--text-body);color:var(--text-1);background:var(--surface-well);border:1px solid var(--border);border-radius:4px;padding:var(--space-sm) var(--space-md)}.login-input:focus-visible{outline:none;border-color:var(--accent)}.login-submit{font:inherit;font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--paper-white);background:var(--accent);border:none;border-radius:4px;cursor:pointer;padding:var(--space-sm) var(--space-md)}.login-submit:disabled{background:var(--text-3);cursor:default}.login-submit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.login-error{font-size:var(--text-body);color:var(--text-1);background:var(--surface-well);border-left:3px solid var(--danger);padding:var(--space-sm) var(--space-md)}.login-confirm{font-size:var(--text-body);color:var(--text-1);background:var(--surface-well);border-left:3px solid var(--accent);padding:var(--space-sm) var(--space-md);text-align:center}.login-subtitle{margin:0 0 var(--space-sm);color:var(--text-muted, #8b8f98);font-size:13px;line-height:1.4}.auth-gate-loading{display:flex;align-items:center;justify-content:center;height:100%;background:var(--surface-well)}.auth-gate-spinner{width:var(--space-lg);height:var(--space-lg);border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:auth-gate-spin .8s linear infinite}@keyframes auth-gate-spin{to{transform:rotate(360deg)}}.auth-gate-error{max-width:480px;padding:var(--space-lg);text-align:center}.auth-gate-error__title{margin:0 0 var(--space-sm);font-size:var(--text-body);color:var(--text-1)}.auth-gate-error__detail{margin:0;font-size:var(--text-dense);color:var(--danger);word-break:break-word}.error-boundary{display:flex;align-items:center;justify-content:center;height:100%;padding:var(--space-lg);background:var(--surface-well);overflow:auto}.error-boundary__card{max-width:720px;width:100%;padding:var(--space-lg);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--space-xs)}.error-boundary__title{margin:0 0 var(--space-sm);font-size:var(--text-display);color:var(--text-1)}.error-boundary__lead{margin:0 0 var(--space-md);font-size:var(--text-body);color:var(--text-2)}.error-boundary__message{margin:0 0 var(--space-md);font-size:var(--text-body);color:var(--danger)}.error-boundary__stack{margin:0 0 var(--space-md);padding:var(--space-sm);max-height:320px;overflow:auto;background:var(--surface-well);border:1px solid var(--border);border-radius:var(--space-xs);font-size:var(--text-dense);color:var(--text-2);white-space:pre-wrap;word-break:break-word}.error-boundary__retry{padding:var(--space-sm) var(--space-md);background:var(--accent);color:var(--text-1);border:none;border-radius:var(--space-xs);font-size:var(--text-body);cursor:pointer}.install-app-pill{position:fixed;top:calc(var(--space-md) + env(safe-area-inset-top,0px));right:calc(var(--space-md) + env(safe-area-inset-right,0px));z-index:950;padding:var(--space-xs) var(--space-md);border:1px solid var(--accent);border-radius:999px;background:var(--surface-1);color:var(--accent);font-size:var(--text-dense);font-weight:var(--weight-semibold);cursor:pointer}.install-app-modal__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;background:#00000080;padding:var(--space-lg)}.install-app-modal__card{max-width:360px;width:100%;padding:var(--space-lg);background:var(--surface-0);border:1px solid var(--border);border-radius:8px;color:var(--text-1)}.install-app-modal__title{margin:0 0 var(--space-md);font-size:var(--text-heading);font-weight:var(--weight-semibold)}.install-app-modal__steps{margin:0 0 var(--space-md);padding-left:var(--space-lg);font-size:var(--text-body);color:var(--text-1);display:flex;flex-direction:column;gap:var(--space-xs)}.install-app-modal__note{margin:0 0 var(--space-lg);font-size:var(--text-dense);color:var(--text-2)}.install-app-modal__actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.install-app-modal__btn{padding:var(--space-xs) var(--space-md);border:1px solid var(--border);border-radius:4px;background:var(--surface-1);color:var(--text-1);font-size:var(--text-body);cursor:pointer}.install-app-modal__btn--primary{border-color:var(--accent);color:var(--accent)}.storage-warning-banner{position:fixed;bottom:calc(var(--space-lg) + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:1000;max-width:520px;width:calc(100% - var(--space-lg) * 2);padding:var(--space-sm) var(--space-md);background:var(--surface-1);border:1px solid var(--sync-queued);color:var(--text-1);font-size:var(--text-body);cursor:pointer;border-radius:4px;box-shadow:0 4px 16px #00000059}
