.compare-panel{min-height:100%;color:var(--text,#eef3ff);background:var(--panel,#101c35);flex-direction:column;gap:1rem;padding:1rem;display:flex}.compare-panel>header,.compare-panel>footer{justify-content:space-between;align-items:center;gap:1rem;display:flex}.compare-panel h2{margin:.2rem 0 0}.compare-controls{border:1px solid var(--border,#30415f);background:color-mix(in srgb, var(--panel,#101c35) 88%, white);border-radius:.75rem;flex-wrap:wrap;align-items:end;gap:.75rem;padding:.85rem;display:flex}.compare-controls label{gap:.35rem;min-width:9rem;font-size:.8rem;display:grid}.compare-controls input,.compare-controls select,.compare-panel button{border:1px solid var(--border,#506282);min-height:2.25rem;color:inherit;background:0 0;border-radius:.45rem;padding:.35rem .6rem}.compare-controls input[type=range]{min-height:1.5rem}.compare-panel button{cursor:pointer}.compare-panel button:hover{border-color:var(--accent,#19d6bc)}.compare-stage{border:1px solid var(--border,#30415f);isolation:isolate;background:#fff;min-height:24rem;position:relative;overflow:auto}.compare-stage canvas{max-width:none;display:block}.compare-stage.mode-side-by-side{grid-template-columns:max-content max-content;align-items:start;gap:1rem;padding:1rem;display:grid}.compare-stage.mode-overlay canvas,.compare-stage.mode-split canvas,.compare-stage.mode-difference canvas{margin:1rem;position:absolute;inset:0}.compare-stage.mode-split{--split:50%}.compare-stage.mode-split canvas:nth-child(2){clip-path:inset(0 0 0 var(--split))}.compare-stage .difference-canvas{z-index:3;pointer-events:none}.compare-empty,.compare-panel [role=alert]{background:#d9534f33;border-radius:.5rem;margin:0;padding:1rem}.compare-panel footer{color:var(--muted,#a8b5ce);flex-wrap:wrap;justify-content:flex-start}@media (width<=720px){.compare-controls{align-items:stretch}.compare-controls label,.compare-controls select,.compare-controls button{width:100%}.compare-panel>header{flex-direction:column;align-items:flex-start}}:root{color:#e6edf8;background:#0b1428;font-family:Inter,system-ui,sans-serif}:root[data-theme=light]{color:#172740;background:#edf2f8}*{box-sizing:border-box}body{min-width:320px;margin:0}button,.file-button{color:inherit;cursor:pointer;font:inherit;background:#172740;border:1px solid #375276;border-radius:10px;padding:10px 14px}button:disabled{opacity:.45;cursor:not-allowed}.app-shell{background:inherit;min-height:100vh}.topbar{background:#0b1428;border-bottom:1px solid #233858;justify-content:space-between;gap:24px;padding:28px 42px;display:flex}[data-theme=light] .topbar{color:#fff;background:#152441}.eyebrow{color:#ff563d;letter-spacing:.18em;font-size:12px;font-weight:800}h1{margin:8px 0;font-size:clamp(30px,5vw,52px)}p{color:#9eb0c9}.top-actions,.toolbar,.viewer-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.file-button{color:#fff;background:#d9412b;border-color:#d9412b;font-weight:700}input[type=file]{display:none}main{max-width:1500px;margin:0 auto;padding:22px}.toolbar{background:#111f39;border:1px solid #263d60;border-radius:14px;padding:14px}[data-theme=light] .toolbar,[data-theme=light] .sidebar,[data-theme=light] .viewer-shell{background:#fff;border-color:#cad5e3}.toolbar button,.viewer-toolbar button,.sidebar button{color:#e6edf8}[data-theme=light] .toolbar button,[data-theme=light] .viewer-toolbar button,[data-theme=light] .sidebar button{color:#172740}.toolbar .active,.page-list .selected{color:#0b1428;background:#39d6c1;border-color:#39d6c1}.workspace{grid-template-columns:260px minmax(0,1fr);gap:18px;margin-top:18px;display:grid}.sidebar,.viewer-shell{background:#111f39;border:1px solid #263d60;border-radius:14px;min-height:650px}.sidebar{padding:18px}.sidebar h2{margin:0 0 12px;font-size:16px}.document-card{border:1px solid #375276;border-radius:10px;gap:6px;margin-bottom:28px;padding:14px;display:grid}.document-card span,.muted{color:#9eb0c9;font-size:13px}.page-list{gap:8px;display:grid}.page-list button{text-align:left}.viewer-shell{flex-direction:column;display:flex;overflow:hidden}.viewer-toolbar{border-bottom:1px solid #263d60;padding:14px}.viewer-page{touch-action:none;background:#09111f;flex:1;place-items:start center;padding:30px;display:grid;position:relative;overflow:auto}.viewer-page canvas{max-width:none;display:block;box-shadow:0 12px 36px #0008}.viewer-page:has(.annotation-layer){touch-action:none}.annotation-layer{touch-action:none;outline:none;position:absolute;inset:30px auto auto 50%;transform:translate(-50%)}.annotation-line{fill:#19d6bc2e;stroke:#19d6bc;stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:none}.annotation-line.draft{stroke:#ff6a45;stroke-dasharray:6 4}.annotation-line.selected{stroke:#ffcf40;stroke-width:3px}.annotation-line.locked{opacity:.65}.annotation-handle{fill:#ffcf40;stroke:#0b1428;stroke-width:2px;cursor:grab;vector-effect:non-scaling-stroke}.measurement-label{fill:#ffcf40;cursor:grab;paint-order:stroke;stroke:#0b1428;stroke-width:4px;stroke-linejoin:round;font-size:14px;font-weight:700}.text-object,.callout-box{resize:both;color:#e6edf8;width:100%;height:100%;font:inherit;background:#111f39e0;border:1px solid #19d6bc;border-radius:6px;padding:8px;overflow:auto}.text-object:focus,.callout-box:focus{outline:2px solid #ffcf40}.callout-leader{stroke:#ffcf40;stroke-width:2px;vector-effect:non-scaling-stroke}.measurement-list{background:#111f39;border:1px solid #263d60;border-radius:14px;margin-top:18px;padding:1rem 1.2rem}.measurement-row{border-bottom:1px solid #263d60;justify-content:space-between;padding:.55rem 0;display:flex}.measurement-row:last-child{border-bottom:0}.dialog-backdrop{z-index:5;background:#0000008c;place-items:center;display:grid;position:fixed;inset:0}.dialog{color:#e6edf8;background:#111f39;border:1px solid #375276;border-radius:14px;gap:.8rem;width:min(360px,100vw - 2rem);padding:1.4rem;display:grid;box-shadow:0 20px 60px #00000059}.dialog label{gap:.3rem;display:grid}.dialog input{color:inherit;background:#172740;border:1px solid #375276;border-radius:6px;padding:.55rem}.dialog>div{justify-content:flex-end;gap:.6rem;display:flex}.snapshot-selection{fill:#39d6c12e;stroke:#19d6bc;stroke-width:2px;stroke-dasharray:8 5;vector-effect:non-scaling-stroke;pointer-events:none}.snapshot-preview{object-fit:contain;background:#fff;border:1px solid #375276;border-radius:8px;width:100%;min-height:120px;max-height:280px}.snapshot-presets{gap:.5rem;display:flex;justify-content:flex-start!important}.print-area-hint{z-index:6;color:#e6edf8;background:#111f39;border:1px solid #19d6bc;border-radius:8px;padding:.8rem 1rem;position:fixed;top:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0006}.empty-state{text-align:center;flex:1;align-content:center;justify-items:center;gap:8px;padding:40px;display:grid}.error h2{color:#ff806d}footer{text-align:center;color:#8295b2;padding:22px;font-size:13px}@media (width<=760px){.topbar{flex-direction:column;padding:24px 18px}main{padding:12px}.workspace{grid-template-columns:1fr}.sidebar{min-height:auto}.viewer-shell{min-height:520px}}.takeoff-panel{border:1px solid var(--border,#30415f);background:var(--panel,#101c35);color:var(--text,#eef3ff);gap:1rem;padding:1rem;display:grid}.takeoff-panel header,.takeoff-row,.category-list li{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.takeoff-panel h2,.takeoff-panel h3{margin:0}.takeoff-scope,.category-fields,.assignment{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.takeoff-panel button,.takeoff-panel input,.takeoff-panel select{border:1px solid var(--border,#506282);min-height:2rem;color:inherit;background:0 0;border-radius:.4rem;padding:.3rem .55rem}.takeoff-panel button{cursor:pointer}.takeoff-panel button.active,.takeoff-panel button:hover{border-color:var(--accent,#19d6bc)}.takeoff-rows{gap:.35rem;display:grid}.takeoff-row{text-align:left;width:100%}.takeoff-row span{gap:.2rem;display:grid}.takeoff-row small,.assignment p{color:var(--muted,#a8b5ce)}.category-editor,.assignment{border-top:1px solid var(--border,#30415f);gap:.5rem;padding-top:.75rem;display:grid}.category-list{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.category-list li{justify-content:flex-start}.category-list li>button:first-child{border:0;margin-right:auto}.analysis-panel{border:1px solid var(--border,#30415f);background:var(--panel,#101c35);color:var(--text,#eef3ff);gap:1rem;padding:1rem;display:grid}.analysis-panel header,.analysis-panel li,.analysis-panel dl div{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.analysis-panel section{gap:.5rem;display:grid}.analysis-panel h2,.analysis-panel h3{margin:0}.analysis-panel input,.analysis-panel select,.analysis-panel button{border:1px solid var(--border,#506282);min-height:2rem;color:inherit;background:0 0;border-radius:.4rem;padding:.3rem .55rem}.analysis-panel button{cursor:pointer}.analysis-panel button:hover,.analysis-panel button.active{border-color:var(--accent,#19d6bc)}.analysis-panel ol,.analysis-panel ul{gap:.35rem;margin:0;padding-left:1.25rem;display:grid}.analysis-panel dl{gap:.3rem;margin:0;display:grid}.analysis-panel dt{color:var(--muted,#a8b5ce)}.analysis-panel dd{gap:.5rem;margin:0;display:flex}.analysis-highlight{fill:#f4bd3d;fill-opacity:.28;stroke:#f4bd3d;stroke-width:2px;pointer-events:none}.workspace-panel{border:1px solid var(--border,#30415f);background:var(--panel,#101c35);color:var(--text,#eef3ff);gap:1rem;padding:1rem;display:grid}.workspace-panel header,.workspace-panel li,.workspace-panel li>button:first-child,.workspace-tabs{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.workspace-panel h2{margin:0}.workspace-panel button,.workspace-panel input,.workspace-panel select{border:1px solid var(--border,#506282);min-height:2rem;color:inherit;background:0 0;border-radius:.4rem;padding:.3rem .55rem}.workspace-panel button{cursor:pointer}.workspace-panel button:hover,.workspace-panel button.active{border-color:var(--accent,#19d6bc)}.sheet-list,.workspace-panel ul{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.sheet-list button{text-align:left;justify-content:space-between;width:100%;display:flex}.sheet-list span{gap:.2rem;display:grid}.sheet-list small{color:var(--muted,#a8b5ce)}.sheet-thumbnail-list{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;max-height:32rem;padding:.25rem;display:grid;overflow:auto}.sheet-thumbnail{border:1px solid var(--border,#30415f);background:color-mix(in srgb, var(--panel,#101c35) 85%, #000);border-radius:.55rem;min-width:0}.sheet-thumbnail.active{border-color:var(--accent,#19d6bc);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent,#19d6bc) 25%, transparent)}.sheet-thumbnail-button{text-align:left;gap:.45rem;width:100%;padding:.45rem;display:grid;border:0!important}.sheet-thumbnail-preview{background:#fff;border-radius:.3rem;place-items:center;min-height:150px;display:grid;position:relative;overflow:hidden}.sheet-thumbnail-preview canvas{max-width:100%;height:auto;display:block}.sheet-thumbnail-skeleton{background:linear-gradient(110deg,#e7ebf2 8%,#f7f9fc 18%,#e7ebf2 33%) 0 0/200% 100%;animation:1.2s linear infinite sheet-thumbnail-loading;position:absolute;inset:0}.sheet-thumbnail-error{color:#9b2c2c;padding:.5rem;font-size:.8rem}.sheet-thumbnail-meta{gap:.15rem;min-width:0;display:grid}.sheet-thumbnail-meta span,.sheet-thumbnail-meta small{color:var(--muted,#a8b5ce);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@keyframes sheet-thumbnail-loading{to{background-position-x:-200%}}.link-object{fill:#0000;stroke:color-mix(in srgb, var(--accent,#19d6bc) 42%, transparent);stroke-width:1px;cursor:pointer}.rotation-controls{z-index:2;border:1px solid var(--border,#506282);background:color-mix(in srgb, var(--panel,#101c35) 92%, transparent);color:var(--text,#eef3ff);border-radius:.55rem;align-items:center;gap:.4rem;padding:.35rem;display:flex;position:absolute;top:.75rem;left:.75rem}.rotation-controls button{border:1px solid var(--border,#506282);min-width:2rem;min-height:2rem;color:inherit;cursor:pointer;background:0 0;border-radius:.4rem;padding:.2rem .45rem;font-size:1.1rem;line-height:1}.rotation-controls button:hover{border-color:var(--accent,#19d6bc)}.rotation-controls span{text-align:center;min-width:3rem;font-size:.8rem}.viewer-shell:fullscreen{border-radius:0;width:100vw;height:100vh;min-height:0}.viewer-shell:fullscreen .viewer-page{width:100%!important;height:100%!important}.fullscreen-toolbar{display:none}.viewer-shell:fullscreen .fullscreen-toolbar{z-index:8;border-bottom:1px solid var(--border,#506282);background:var(--panel,#101c35);flex-wrap:wrap;gap:.45rem;max-height:5.5rem;padding:.65rem .8rem;display:flex;position:relative;overflow:auto}.viewer-shell:fullscreen .fullscreen-toolbar button{border:1px solid var(--border,#506282);color:var(--text,#eef3ff);cursor:pointer;font:inherit;background:0 0;border-radius:.4rem;padding:.35rem .6rem}:is(.viewer-shell:fullscreen .fullscreen-toolbar button.active,.viewer-shell:fullscreen .fullscreen-toolbar button:hover){border-color:var(--accent,#19d6bc);background:color-mix(in srgb, var(--accent,#19d6bc) 16%, transparent)}.native-link-object{fill:#0000;stroke:#0000;cursor:pointer}.native-link-object:hover{fill:color-mix(in srgb, var(--accent,#19d6bc) 9%, transparent);stroke:color-mix(in srgb, var(--accent,#19d6bc) 45%, transparent)}.link-object:hover,.link-object.selected,.link-selection{fill:color-mix(in srgb, var(--accent,#19d6bc) 12%, transparent);stroke:var(--accent,#19d6bc);stroke-width:2px}.link-selection{pointer-events:none;stroke-dasharray:5 4}.link-dialog{z-index:10;border:1px solid var(--border,#506282);background:var(--panel,#101c35);border-radius:.75rem;gap:.75rem;width:min(24rem,100vw - 2rem);padding:1rem;display:grid;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 1rem 3rem #0008}.link-dialog h2{margin:0}.link-dialog label{gap:.3rem;display:grid}.link-dialog>div{justify-content:flex-end;gap:.5rem;display:flex}.error-text{color:#ff8d84}.revision-history{gap:1rem;display:grid}.revision-group{border:1px solid var(--border,#30415f);border-radius:.75rem;padding:.75rem}.revision-group>header,.revision-row,.revision-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.revision-group>header{justify-content:space-between;margin-bottom:.5rem}.revision-group>header div{gap:.2rem;display:grid}.revision-group ul{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.revision-group li{border:1px solid var(--border,#30415f);border-radius:.5rem;gap:.5rem;padding:.6rem;display:grid}.revision-group li.current{border-color:var(--accent,#19d6bc)}.revision-row span{color:var(--muted,#a8b5ce)}.stamp-object{fill:none;stroke:currentColor;stroke-width:2px}.stamp-label{fill:currentColor;font-size:12px}.issue-marker{fill:#d9534f;stroke:#fff;stroke-width:2px}.issue-label{fill:#fff;font-weight:700}[data-theme=light]{--light-text:#172740;--light-muted:#60738e;--light-panel:#fff;--light-surface:#f5f8fc;--light-border:#cad5e3;--light-control:#edf2f8}[data-theme=light] button,[data-theme=light] .file-button,[data-theme=light] .toolbar button,[data-theme=light] .viewer-toolbar button,[data-theme=light] .sidebar button,[data-theme=light] .rotation-controls button{color:var(--light-text);background:var(--light-control);border-color:var(--light-border)}[data-theme=light] .toolbar button:hover,[data-theme=light] .viewer-toolbar button:hover,[data-theme=light] .sidebar button:hover,[data-theme=light] .rotation-controls button:hover{background:#e2eaf4}[data-theme=light] .toolbar .active,[data-theme=light] .sidebar .selected{color:#0b1428;background:#39d6c1;border-color:#39d6c1}[data-theme=light] .file-button{color:#fff;background:#d9412b;border-color:#d9412b}[data-theme=light] .toolbar,[data-theme=light] .sidebar,[data-theme=light] .viewer-shell,[data-theme=light] .measurement-list,[data-theme=light] .dialog,[data-theme=light] .takeoff-panel,[data-theme=light] .analysis-panel,[data-theme=light] .workspace-panel,[data-theme=light] .link-dialog{color:var(--light-text);background:var(--light-panel);border-color:var(--light-border)}[data-theme=light] .viewer-toolbar,[data-theme=light] .document-card,[data-theme=light] .measurement-row,[data-theme=light] .category-editor,[data-theme=light] .assignment,[data-theme=light] .revision-group,[data-theme=light] .revision-group li{border-color:var(--light-border)}[data-theme=light] .viewer-page{background:#dfe7f1}[data-theme=light] p,[data-theme=light] .muted,[data-theme=light] .document-card span,[data-theme=light] footer,[data-theme=light] .takeoff-row small,[data-theme=light] .assignment p,[data-theme=light] .analysis-panel dt,[data-theme=light] .sheet-list small,[data-theme=light] .sheet-thumbnail-meta span,[data-theme=light] .sheet-thumbnail-meta small,[data-theme=light] .revision-row span{color:var(--light-muted)}[data-theme=light] .text-object,[data-theme=light] .callout-box,[data-theme=light] .dialog input,[data-theme=light] .takeoff-panel input,[data-theme=light] .takeoff-panel select,[data-theme=light] .analysis-panel input,[data-theme=light] .analysis-panel select,[data-theme=light] .workspace-panel input,[data-theme=light] .workspace-panel select{color:var(--light-text);border-color:var(--light-border);background:#ffffffeb}[data-theme=light] .print-area-hint{color:var(--light-text);background:var(--light-panel);border-color:#19d6bc}
