:root{--bg: #e8edf1;--surface: #e8edf1;--surface-soft: #f3f6f8;--surface-high: #fbfcfd;--surface-pressed: #dce3e8;--ink: #17202a;--muted: #657482;--subtle: #8a98a6;--line: rgba(116, 132, 148, .2);--line-strong: rgba(87, 103, 119, .34);--accent: #0f766e;--accent-strong: #0b5f59;--accent-soft: #dff4ef;--blue: #2563eb;--blue-soft: #e5edff;--danger: #b42318;--danger-soft: #fee8e6;--warn: #a16207;--warn-soft: #fff5d9;--canvas: #f5f8fa;--shadow-dark: rgba(114, 130, 145, .18);--shadow-light: rgba(255, 255, 255, .78);--shadow-out: 3px 3px 10px var(--shadow-dark), -3px -3px 10px var(--shadow-light);--shadow-out-sm: 1px 1px 5px rgba(114, 130, 145, .18), -1px -1px 5px rgba(255, 255, 255, .74);--shadow-in: inset 3px 3px 7px rgba(114, 130, 145, .18), inset -3px -3px 7px rgba(255, 255, 255, .78);--radius: 18px;color-scheme:light}*{box-sizing:border-box}html{min-width:320px;background:var(--bg)}body{margin:0;background:radial-gradient(circle at 8% 10%,rgba(255,255,255,.72),transparent 320px),radial-gradient(circle at 92% 4%,rgba(223,244,239,.85),transparent 360px),linear-gradient(135deg,#eef2f5,#e2e8ed);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{-webkit-user-select:none;user-select:none}h1,h2,p{margin:0}h1{color:var(--ink);font-size:23px;line-height:1.05}h2{margin:0;color:var(--muted);font-size:11px;font-weight:850;line-height:1.2;text-transform:uppercase}.app-shell{min-height:100vh;display:grid;grid-template-columns:292px minmax(720px,1fr) 352px;gap:14px;padding:14px}.sidebar,.inspector,.workspace{min-width:0;border:1px solid rgba(255,255,255,.58);border-radius:24px;background:#e8edf1d6;box-shadow:var(--shadow-out)}.sidebar,.inspector{max-height:calc(100vh - 28px);padding:16px;overflow:auto}.workspace{display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.brand-block{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:center;min-height:68px;margin-bottom:14px;padding:6px}.brand-mark{width:52px;height:52px;display:grid;place-items:center;border-radius:17px;background:linear-gradient(145deg,#f9fbfc,#d9e1e7);box-shadow:var(--shadow-out-sm);color:var(--accent-strong);font-weight:900}.brand-block p,.note,.eyebrow{color:var(--muted);font-size:12px;line-height:1.45}.eyebrow{margin-bottom:5px;color:var(--accent);font-weight:850;text-transform:uppercase}.panel{margin-bottom:14px;padding:14px;border:1px solid rgba(255,255,255,.7);border-radius:var(--radius);background:linear-gradient(145deg,#f9fbfcf2,#e0e7ede6);box-shadow:var(--shadow-out-sm)}.project-card{background:radial-gradient(circle at 88% 0%,rgba(15,118,110,.14),transparent 150px),linear-gradient(145deg,#f9fbfcfa,#dee5ebeb)}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.panel-title span,.panel-title svg{color:var(--subtle);font-size:11px;font-weight:850}.field{display:grid;gap:6px;margin-bottom:10px}.field span{color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase}input,select,textarea{width:100%;border:1px solid rgba(255,255,255,.8);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-in);color:var(--ink);padding:10px 12px;font-size:13px;outline:none}textarea{min-height:96px;resize:vertical;line-height:1.45}input:focus,select:focus,textarea:focus{border-color:#0f766e57;box-shadow:var(--shadow-in),0 0 0 4px #0f766e1f}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric-grid div{min-height:64px;padding:11px;border-radius:16px;background:var(--surface);box-shadow:var(--shadow-in)}.metric-grid span,.takeoff-row span{display:block;min-width:0;overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.metric-grid b{display:block;margin-top:5px;font-size:16px}.inline-actions,.actions,.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.inline-actions{margin-top:12px}.inline-actions button,.tool,.primary-action,.secondary-action,.danger-action{min-height:42px;border:1px solid rgba(116,132,148,.2);border-radius:13px;background:linear-gradient(145deg,#f0f4f7,#e3e9ee);box-shadow:var(--shadow-out-sm);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-size:12px;font-weight:850;white-space:nowrap;transition:transform .13s ease,box-shadow .13s ease,background .13s ease,color .13s ease}.inline-actions button:hover,.tool:hover,.primary-action:hover,.secondary-action:hover,.danger-action:hover,.layer-row:hover,.project-row:hover,.revision-row button:hover{transform:none}.inline-actions button:active,.tool:active,.primary-action:active,.secondary-action:active,.danger-action:active,.layer-row:active,.project-row:active{transform:translateY(0);box-shadow:var(--shadow-in)}.primary-action{background:linear-gradient(145deg,#139383,#0b675f);box-shadow:2px 2px 7px #0f766e33,-2px -2px 7px #ffffff9e;color:#fff}.secondary-action:hover,.tool:hover,.inline-actions button:hover{color:var(--accent-strong)}.danger-action{background:linear-gradient(145deg,#fff5f3,#f6d4d1);color:var(--danger)}.tool.featured{background:linear-gradient(145deg,#1f2937,#101722);box-shadow:2px 2px 8px #1f293738,-2px -2px 7px #ffffff94;color:#fff}.tool.active{background:linear-gradient(145deg,#effffb,#cdece5);color:var(--accent-strong)}.full-action{width:100%;margin-bottom:10px}.compact-danger{width:auto;min-height:42px;padding:0 13px}.icon-action{width:42px;min-width:42px;padding:0}button:disabled,.secondary-action:disabled,.danger-action:disabled{opacity:.42;cursor:not-allowed;transform:none}.file-action{position:relative;overflow:hidden}.file-action input{position:absolute;inset:0;opacity:0;cursor:pointer}.project-library{max-height:250px;overflow:auto}.project-list,.revision-list,.form-grid,.takeoff-table,.workflow-list,.layer-list{display:grid;gap:9px}.project-row{width:100%;padding:11px;border:1px solid rgba(255,255,255,.72);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-out-sm);color:var(--ink);cursor:pointer;text-align:left;transition:transform .13s ease,box-shadow .13s ease}.project-row.active{background:linear-gradient(145deg,#effffb,#d4eee8);color:var(--accent-strong)}.project-row strong,.project-row span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-row strong{margin-bottom:3px;font-size:13px}.project-row span{color:var(--muted);font-size:11px}.workflow-step{min-height:50px;display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:9px;border-radius:16px;background:var(--surface);box-shadow:var(--shadow-in)}.workflow-step b{grid-row:1 / 3;width:30px;height:30px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(145deg,#fbfcfd,#d5dde4);box-shadow:var(--shadow-out-sm);color:var(--accent-strong);font-size:12px}.workflow-step span{overflow:hidden;font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.workflow-step small{min-width:0;overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.layer-row{width:100%;min-height:40px;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 9px;border:1px solid rgba(255,255,255,.72);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-in);color:var(--muted);cursor:pointer;text-align:left}.layer-row.enabled{box-shadow:var(--shadow-out-sm);color:var(--ink)}.layer-row span{overflow:hidden;font-size:12px;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.layer-row b{min-width:26px;padding:4px 7px;border-radius:999px;background:var(--surface-pressed);color:var(--muted);font-size:11px;text-align:center}.topbar{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;background:#e8edf1cc;border-bottom:1px solid rgba(255,255,255,.55)}.topbar h2{max-width:42vw;overflow:hidden;color:var(--ink);font-size:21px;line-height:1.15;text-transform:none;text-overflow:ellipsis;white-space:nowrap}.workspace-subtitle{max-width:56vw;margin-top:5px;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.status-pill{height:40px;padding:0 12px;border:1px solid rgba(255,255,255,.7);border-radius:999px;background:linear-gradient(145deg,#fff9eb,#eadfca);box-shadow:var(--shadow-out-sm);color:var(--warn);display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:850}.status-pill.online{background:linear-gradient(145deg,#effffb,#cdece5);color:var(--accent-strong)}.command-ribbon{min-height:68px;display:flex;align-items:center;gap:9px;padding:12px 16px;overflow-x:auto;background:#e8edf1a8;border-bottom:1px solid rgba(255,255,255,.55);scrollbar-width:none}.command-ribbon::-webkit-scrollbar{display:none}.command-ribbon .tool{min-width:max-content;padding:0 13px}.ribbon-divider{width:1px;min-width:1px;height:36px;background:#5767772e}.canvas-wrap{position:relative;min-width:0;min-height:0;overflow:hidden;background:var(--surface)}.canvas-overview{position:absolute;z-index:3;left:18px;bottom:18px;max-width:min(560px,calc(100% - 36px));min-height:46px;display:inline-flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid rgba(116,132,148,.18);border-radius:14px;background:#eef3f6e6;box-shadow:2px 2px 7px #72829129,-2px -2px 7px #ffffffb8;color:var(--ink);font-size:12px;font-weight:850;pointer-events:none}.canvas-overview svg{color:var(--accent)}.canvas-stage{position:relative;height:calc(100vh - 176px);min-height:650px;background:var(--canvas)}.plan-canvas{width:100%;height:100%;min-height:650px;display:block;background:var(--canvas);cursor:grab;touch-action:none}.canvas-stage[data-tool=select] .plan-canvas{cursor:default}.canvas-stage[data-tool=pan] .plan-canvas,.plan-canvas:active{cursor:grabbing}.canvas-target{cursor:move}.canvas-toolbar{position:absolute;z-index:2;left:14px;right:14px;top:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none}.canvas-toolgroup{min-height:46px;display:inline-flex;align-items:center;gap:7px;padding:6px;border:1px solid rgba(116,132,148,.18);border-radius:12px;background:#e8edf1f5;box-shadow:1px 1px 4px #72829124,-1px -1px 4px #ffffff9e;pointer-events:auto}.canvas-toolgroup button{min-width:35px;height:35px;border:0;border-radius:9px;background:transparent;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;font-size:12px;font-weight:850}.canvas-toolgroup button:hover{background:#ffffff7a}.canvas-toolgroup button.active{background:var(--accent-soft);box-shadow:inset 2px 2px 5px #72829138,inset -2px -2px 5px #ffffffc7;color:var(--accent-strong)}.canvas-toolgroup b{min-width:52px;color:var(--muted);font-size:12px;text-align:center}.canvas-toolgroup span{font-size:12px;font-weight:850}.canvas-selection-chip{max-width:min(410px,42vw)}.canvas-selection-chip span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-hint{position:absolute;z-index:2;right:18px;bottom:18px;max-width:420px;padding:10px 13px;border:1px solid rgba(23,32,42,.16);border-radius:12px;background:#1f2a36d6;box-shadow:2px 2px 7px #72829129;color:#fff;font-size:12px;font-weight:800;pointer-events:none}.room-label,.lot-label,.symbol-label,.north-label{paint-order:stroke;stroke:#fffffff0;stroke-linejoin:round;stroke-width:3px}.room-label{fill:#1f2a36;font-size:11px;font-weight:900}.room-area,.dimension-label{fill:#52616f;font-size:10px}.lot-label,.symbol-label{fill:#1f2a36;font-size:10px;font-weight:900}.north-label{fill:#17202a;font-size:14px;font-weight:900}.selection-handle{fill:#fff;stroke:var(--accent);stroke-width:2;pointer-events:none}.resize-box{pointer-events:none}.resize-box>rect:first-child{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:9 5}.resize-handle{fill:var(--accent);stroke:var(--accent-strong);stroke-width:2.5;pointer-events:auto}.resize-handle-nw,.resize-handle-se{cursor:nwse-resize}.resize-handle-ne,.resize-handle-sw{cursor:nesw-resize}.inspector-tabs{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:14px;padding:6px;border-radius:18px;background:var(--surface);box-shadow:var(--shadow-in)}.inspector-tabs button{min-height:38px;border:0;border-radius:14px;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;font-weight:900}.inspector-tabs button.active{background:linear-gradient(145deg,#f9fbfc,#d7e0e7);box-shadow:var(--shadow-out-sm);color:var(--ink)}.selection-summary{display:grid;gap:4px;margin-bottom:12px;padding:12px;border-radius:16px;background:linear-gradient(145deg,#effffb,#d2eee7);box-shadow:var(--shadow-in)}.selection-summary strong{min-width:0;overflow:hidden;color:var(--accent-strong);font-size:15px;text-overflow:ellipsis;white-space:nowrap}.selection-summary span{color:var(--muted);font-size:11px;font-weight:850}.transform-panel{display:grid;gap:10px;margin-bottom:12px;padding:11px;border:1px solid rgba(116,132,148,.14);border-radius:16px;background:linear-gradient(145deg,#eef3f5,#e3ebef);box-shadow:var(--shadow-in)}.transform-row{display:grid;grid-template-columns:86px minmax(0,1fr);align-items:center;gap:9px}.transform-row>span{color:var(--muted);font-size:11px;font-weight:900}.segmented-control{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;padding:4px;border-radius:13px;background:#dfe7ec;box-shadow:var(--shadow-in)}.segmented-control button{min-width:0;min-height:30px;border:0;border-radius:10px;background:transparent;color:var(--ink);cursor:pointer;font-size:11px;font-weight:900}.segmented-control button:hover,.segmented-control button.active{background:linear-gradient(145deg,#f9fbfc,#e7eef2);color:var(--accent-strong);box-shadow:1px 1px 4px #667a8a24,-1px -1px 4px #ffffffbd}.edit-nudge{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.edit-nudge button{min-height:38px;border:1px solid rgba(116,132,148,.13);border-radius:12px;background:linear-gradient(145deg,#eef3f6,#e2e9ee);box-shadow:1px 1px 4px #667a8a1f,-1px -1px 4px #ffffffb8;color:var(--ink);cursor:pointer;font-size:12px;font-weight:850}.form-grid .wide{grid-column:1 / -1}pre{max-height:280px;overflow:auto;margin:0;padding:12px;border-radius:16px;background:#111827;color:#dbe7f2;font-size:12px}.empty-state{min-height:220px;display:grid;place-items:center;align-content:center;gap:9px;padding:24px;border-radius:18px;background:var(--surface);box-shadow:var(--shadow-in);text-align:center}.empty-state strong{font-size:15px}.empty-state span{max-width:245px;color:var(--muted);font-size:12px;line-height:1.45}.empty-icon{width:50px;height:50px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(145deg,#1f2937,#101722);box-shadow:var(--shadow-out-sm);color:#fff}.score{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}.score span{color:var(--accent);font-size:42px;font-weight:900;line-height:1}.score small{color:var(--muted)}.issue-list{list-style:none;padding:0;margin:0;display:grid;gap:9px}.issue-list li,.takeoff-row,.review-card,.revision-row button{border:1px solid rgba(255,255,255,.72);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-in)}.issue-list li{padding:10px}.issue-list li.warning{background:var(--warn-soft)}.issue-list li.error{background:var(--danger-soft)}.issue-list b,.issue-list span{display:block}.issue-list b{margin-bottom:4px;font-size:11px}.issue-list span{color:var(--muted);font-size:12px;line-height:1.4}.takeoff-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:10px;padding:9px 10px}.takeoff-row b{font-size:12px;white-space:nowrap}.review-card{display:grid;gap:10px;padding:12px}.review-card.ready_for_professional_review{background:linear-gradient(145deg,#effffb,#d2eee7)}.review-card.needs_correction{background:var(--warn-soft)}.review-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.review-head strong{font-size:14px}.review-head span{color:var(--accent);font-size:30px;font-weight:900;line-height:1}.review-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.review-counts b{padding:9px;border-radius:14px;background:#ffffff8a;box-shadow:var(--shadow-in);font-size:12px;text-align:center}.action-list{margin:0;padding-left:18px;display:grid;gap:6px;color:var(--muted);font-size:12px;line-height:1.35}.export-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.package-summary{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;margin-bottom:10px}.package-summary b{display:grid;place-items:center;min-width:58px;min-height:40px;border-radius:8px;background:#0a84601a;color:var(--accent);font-size:13px}.package-summary span{color:var(--muted);font-size:12px;font-weight:800;line-height:1.25}.business-panel{display:grid;gap:8px}.big-number{display:grid;gap:5px;margin-bottom:10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#ffffff6b}.big-number span{color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase}.big-number b{color:var(--ink);font-size:18px;line-height:1.15}.risk-list{display:grid;gap:8px}.risk-row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:4px 10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:8px;background:#ffffff70}.risk-row b{color:var(--muted);font-size:11px}.risk-row span{min-width:0;color:var(--ink);font-size:12px;font-weight:760}.risk-row small{grid-column:2;color:var(--muted);font-size:11px}.risk-row.high{border-color:#b423184d;background:#fee8e68c}.risk-row.medium{border-color:#a1620747;background:#fff5d980}.compact-list{margin-top:10px}.sheet-list{display:grid;gap:6px;max-height:286px;overflow:auto;padding-right:2px}.sheet-row{display:grid;grid-template-columns:54px minmax(0,1fr);gap:3px 8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:8px;background:#ffffff80}.sheet-row b{color:var(--accent);font-size:12px}.document-row{grid-template-columns:72px minmax(0,1fr)}.sheet-row span,.sheet-row small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-row span{color:var(--ink);font-size:12px;font-weight:800}.sheet-row small{grid-column:2;color:var(--muted);font-size:11px}.revision-row{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:8px}.revision-row button{min-width:0;min-height:40px;color:var(--ink);cursor:pointer;transition:transform .13s ease,box-shadow .13s ease}.revision-row button:first-child{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:7px;align-items:center;padding:9px;text-align:left}.revision-row button:last-child{color:var(--accent);font-size:12px;font-weight:900}.revision-row span{font-size:12px;font-weight:900;white-space:nowrap}.revision-row small{min-width:0;overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.danger-zone{background:linear-gradient(145deg,#fff7f6,#eadcda)}@media(max-width:1180px){.app-shell{grid-template-columns:272px minmax(0,1fr)}.inspector{grid-column:1 / -1;max-height:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.inspector-tabs{grid-column:1 / -1}.inspector .panel{margin-bottom:0}}@media(max-width:780px){.app-shell{display:flex;flex-direction:column;min-height:100vh;padding:10px}.workspace{order:-1}.sidebar,.inspector{max-height:none}.brand-block{display:none}.topbar{min-height:auto;align-items:flex-start;flex-direction:column}.topbar h2,.workspace-subtitle{max-width:100%;white-space:normal}.topbar-actions{justify-content:flex-start}.command-ribbon{padding:10px}.canvas-stage,.plan-canvas{min-height:560px;height:560px}.canvas-toolbar{align-items:flex-start;flex-wrap:wrap;left:10px;right:10px;top:10px}.canvas-toolgroup span{display:none}.canvas-selection-chip{max-width:100%}.canvas-hint{display:none}.canvas-overview{left:10px;right:10px;bottom:10px;max-width:none}.inspector{display:block}}
