:root{--bg:#eef2f5;--panel:#fff;--panel-subtle:#f8fafb;--line:#d6dde5;--line-soft:#e8edf2;--text:#17212b;--muted:#667485;--muted-strong:#475569;--accent:#126456;--accent-hover:#0d5147;--accent-weak:#e7f3ef;--danger:#b42318;--danger-weak:#fff1f0;--warn:#925400;--warn-weak:#fff7e6;--ok:#146c43;--ok-weak:#edf8f1;--info:#2563eb;--info-weak:#e8f1ff;--sidebar:#202933;--sidebar-line:#ffffff24;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--radius:8px;--shadow:0 18px 45px #0f172a2e}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);letter-spacing:0;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{background:var(--accent);border:1px solid var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:6px;min-height:36px;padding:0 12px;font-weight:650;transition:background-color .16s,border-color .16s,box-shadow .16s,color .16s;display:inline-flex}button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #2563eb38}input,select,textarea{border:1px solid var(--line);color:var(--text);background:#fff;border-radius:6px;width:100%;min-height:36px;padding:6px 10px}textarea{resize:vertical;min-height:80px}input[type=file]{color:var(--muted-strong);padding:6px}label{color:#d7dee7;gap:6px;font-size:12px;font-weight:650;display:grid}h1,h2,p{margin:0}h1{font-size:1.375rem;line-height:1.25}h2{font-size:.9375rem;line-height:1.3}.auth-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);gap:var(--space-5);width:100%;max-width:520px;padding:28px;display:grid;box-shadow:0 14px 34px #0f172a14}.auth-header{gap:var(--space-2);display:grid}.auth-form{gap:var(--space-4);display:grid}.auth-form label{color:var(--muted-strong)}.auth-form button,.auth-button,.auth-link-button{width:100%;min-height:40px}.auth-form button:disabled{cursor:not-allowed;opacity:.52}.terms-confirmation{border:1px solid var(--line);border-radius:var(--radius-sm);gap:var(--space-3);padding:var(--space-4);background:#f8fafc;display:grid}.terms-confirmation h2,.terms-confirmation h3{color:var(--text);margin:0}.terms-confirmation h2{font-size:.95rem}.terms-confirmation p{color:var(--muted-strong);font-size:.8125rem;line-height:1.65}.terms-scrollbox{border:1px solid var(--line);color:var(--muted-strong);gap:var(--space-3);max-height:176px;padding:var(--space-4);background:#fff;border-radius:10px;display:grid;overflow-y:auto}.terms-scrollbox:focus{outline:0;box-shadow:0 0 0 3px #12645629}.terms-scrollbox h3{font-size:.875rem}.terms-scrollbox ol{gap:var(--space-2);margin:0;padding-left:1.2rem;display:grid}.terms-scrollbox li{font-size:.8125rem;line-height:1.7}.terms-checkbox{color:var(--text);align-items:flex-start;gap:var(--space-2);font-size:.875rem;font-weight:800;line-height:1.6;display:flex}.terms-checkbox input{flex:none;width:auto;margin-top:4px}.auth-error{background:var(--danger-weak);color:var(--danger);border:1px solid #ffd1cc;border-radius:6px;padding:9px 10px;font-size:.8125rem}.auth-actions{color:var(--muted);text-align:center;font-size:.875rem;line-height:1.55}.auth-actions a{color:var(--accent);font-weight:700}.auth-actions .auth-button{color:#fff}.auth-actions.split{gap:var(--space-3);display:grid}.auth-button,.auth-link-button{border-radius:6px;justify-content:center;align-items:center;padding:0 12px;text-decoration:none;display:inline-flex}.auth-button{background:var(--accent);border:1px solid var(--accent);color:#fff}.auth-link-button{border:1px solid var(--line);color:var(--muted-strong);background:#fff}.auth-link-button:hover{background:var(--panel-subtle);color:var(--text);border-color:#b8c2ce}.app-shell{grid-template-columns:276px minmax(0,1fr);align-items:start;min-height:100vh;display:grid}.sidebar{background:var(--sidebar);color:#fff;gap:var(--space-5);height:100vh;padding:var(--space-5);border-right:1px solid #0f172a61;flex-direction:column;display:flex;position:sticky;top:0;overflow:hidden}.brand{align-items:center;gap:var(--space-2);min-height:36px;font-size:1.0625rem;font-weight:750;display:flex}.stack{border-bottom:1px solid var(--sidebar-line);gap:var(--space-3);padding-bottom:var(--space-5);display:grid}.sidebar-create{justify-content:flex-start;min-height:42px}.sidebar-menu{border-bottom:1px solid var(--sidebar-line);padding-bottom:var(--space-4);gap:6px;display:grid}.sidebar-menu button{color:#d7dee7;background:0 0;border-color:#0000;justify-content:flex-start;min-height:38px}.sidebar-menu button:hover:not(:disabled),.sidebar-menu button.active{color:#fff;background:#ffffff1a;border-color:#ffffff2e}.sidebar-menu button.active{box-shadow:inset 3px 0 0 var(--accent)}.project-list-title{color:#d7dee7;justify-content:space-between;align-items:center;margin-bottom:-10px;font-size:.75rem;font-weight:750;display:flex}.project-list-title small{color:#aeb9c7;font-size:.6875rem;font-weight:650}.project-search{border-color:var(--sidebar-line);color:#fff;background:#ffffff14}.project-search::placeholder{color:#aeb9c7}.project-status-filter{border-color:var(--sidebar-line);color:#fff;background:#ffffff14;min-height:36px}.project-status-filter option{color:var(--text)}.project-list{flex:1;grid-auto-rows:max-content;align-content:start;gap:6px;min-height:0;display:grid;overflow:auto}.project{color:#fff;text-align:left;background:0 0;border-color:#0000;justify-content:stretch;align-items:start;gap:3px;min-height:74px;padding:10px;display:grid;position:relative}.project:hover:not(:disabled){background:#ffffff14;border-color:#0000}.project.active{color:#fff;background:#1264563d;border-color:#1264569e}.project-card-name{text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:750;line-height:1.35;overflow:hidden}.project small{color:#aeb9c7;font-size:.75rem;font-weight:500}.project.active small{color:#d4e4e1}.project-card-meta{color:#cbd5e1;font-size:.75rem;line-height:1.35}.project-status-pill{color:#bdeee4;background:#12645629;border:1px solid #5eead442;border-radius:999px;align-self:start;width:fit-content;margin-top:4px;padding:3px 7px;font-size:.6875rem;font-weight:700}.project.active .project-status-pill{color:#d7fff7;background:#5eead421;border-color:#5eead48c}.sidebar-account{border-top:1px solid var(--sidebar-line);gap:var(--space-3);padding-top:var(--space-4);margin-top:auto;display:grid}.account-summary{align-items:center;gap:var(--space-2);grid-template-columns:minmax(0,1fr) 34px;display:grid}.account-meta{gap:3px;min-width:0;display:grid}.account-company,.account-email{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.account-company{color:#fff;font-size:.875rem}.account-email{color:#cbd5e1;font-size:.75rem}.account-settings-button{border-color:var(--sidebar-line);color:#d7dee7;background:#ffffff0f;width:34px;min-height:34px;padding:0}.account-settings-button:hover:not(:disabled){background:#ffffff1f;border-color:#ffffff47}.logout-button{color:#cbd5e1;background:0 0;border-color:#0000;justify-content:flex-start;min-height:32px;padding:0;font-size:.8125rem}.logout-button:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff3d}.workspace{align-content:start;gap:var(--space-2);padding:var(--space-3);grid-auto-rows:max-content;display:grid}.topbar,.panel,.metrics>div,.workflow{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.topbar{min-height:48px;padding:8px var(--space-3);justify-content:space-between;align-items:center;display:flex}.topbar-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.topbar-main{gap:2px;min-width:0;display:grid}.topbar p{color:var(--muted);font-size:.75rem}.eyebrow{color:var(--accent);font-size:.75rem;font-weight:750}.status{background:var(--panel-subtle);border:1px solid var(--line);color:var(--muted-strong);border-radius:999px;align-items:center;gap:6px;min-height:32px;padding:0 12px;font-size:.8125rem;font-weight:650;display:inline-flex}.status.error{background:var(--danger-weak);color:var(--danger);border-color:#ffd1cc}.status.success{background:var(--ok-weak);color:var(--ok);border-color:#cbe9d6}.status.busy{background:var(--warn-weak);color:var(--warn);border-color:#f3d7a4}.project-delete-button{background:var(--danger-weak);color:var(--danger);border-color:#f1b5af}.project-delete-button:hover:not(:disabled){color:#8f1f16;background:#ffe3df;border-color:#e48d84}.metrics{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.metrics>div,.estimate-summary>div{gap:2px;padding:8px 10px;display:grid}.metrics span,.estimate-summary span{color:var(--muted);font-size:.75rem;font-weight:650}.metrics strong,.estimate-summary strong{font-size:1rem;line-height:1.25}.metric-placeholder{color:var(--muted);font-size:1rem;font-weight:700}.workflow{grid-template-columns:repeat(5,minmax(0,1fr));display:grid;overflow:hidden}.workflow-step{border-right:1px solid var(--line-soft);grid-template-columns:22px minmax(0,1fr);align-items:center;gap:7px;min-height:42px;padding:6px 8px;display:grid}.workflow-step:last-child{border-right:0}.workflow-step strong,.workflow-step span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.workflow-step strong{font-size:.75rem}.workflow-step span{color:var(--muted);margin-top:1px;font-size:.625rem}.step-marker{border:1px solid var(--line);color:var(--muted);background:#eef2f6;border-radius:999px;justify-content:center;align-items:center;width:22px;height:22px;font-size:.75rem;font-weight:750;display:inline-flex}.workflow-step.done{background:var(--ok-weak)}.workflow-step.done .step-marker{background:var(--accent);border-color:var(--accent);color:#fff}.workflow-step.active{background:var(--warn-weak)}.workflow-step.active .step-marker{border-color:var(--warn);color:var(--warn);background:#fff}.workflow-step.loading{background:var(--info-weak)}.workflow-step.loading .step-marker{border-color:var(--info);color:var(--info);background:#fff}.workflow-step.error{background:var(--danger-weak)}.workflow-step.error .step-marker{border-color:var(--danger);color:var(--danger);background:#fff}.analysis-results-shell{gap:var(--space-2);padding-bottom:76px;display:grid}.analysis-action-row{align-items:center;gap:var(--space-3);justify-content:flex-end;display:flex}.analysis-complete-badge{background:var(--ok-weak);color:var(--ok);border:1px solid #cbe9d6;border-radius:6px;align-items:center;gap:6px;min-height:34px;padding:0 12px;font-size:.8125rem;font-weight:750;display:inline-flex}.analysis-progress{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(5,minmax(0,1fr));display:grid;overflow:hidden}.analysis-progress-step{border-right:1px solid var(--line-soft);grid-template-columns:28px minmax(0,1fr);align-items:center;gap:2px 8px;min-height:58px;padding:8px 12px;display:grid}.analysis-progress-step:last-child{border-right:0}.analysis-progress-step span{border:1px solid var(--line);color:var(--muted);background:#eef2f6;border-radius:999px;grid-row:span 2;justify-content:center;align-items:center;width:24px;height:24px;font-size:.75rem;font-weight:800;display:inline-flex}.analysis-progress-step strong,.analysis-progress-step small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.analysis-progress-step strong{font-size:.8125rem}.analysis-progress-step small{color:var(--muted);font-size:.6875rem}.analysis-progress-step.done{background:var(--ok-weak)}.analysis-progress-step.done span{background:var(--accent);border-color:var(--accent);color:#fff}.analysis-progress-step.active{background:var(--warn-weak)}.analysis-kpis{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.analysis-kpis>div{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:2px 12px;min-height:66px;padding:10px 14px;display:grid}.analysis-kpis svg{background:var(--panel-subtle);color:var(--accent);box-sizing:content-box;border-radius:999px;grid-row:span 2;padding:9px}.analysis-kpis span{color:var(--muted);font-size:.75rem;font-weight:750}.analysis-kpis strong{grid-column:2;font-size:1.4rem}.analysis-kpis small{color:var(--muted);grid-area:2/3;font-size:.75rem}.analysis-alert-grid{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.analysis-alert{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:4px 9px;min-height:48px;padding:8px 10px;display:grid}.analysis-alert svg{grid-row:span 2}.analysis-alert strong{font-size:.8125rem}.analysis-alert span{color:var(--muted);font-size:.75rem}.analysis-alert button{border-color:var(--line);color:var(--muted-strong);background:#fff;grid-row:span 2;min-height:30px;font-size:.75rem}.analysis-alert button.active{background:var(--accent);border-color:var(--accent);color:#fff}.analysis-alert.danger svg{color:var(--danger)}.analysis-alert.warn svg{color:var(--warn)}.analysis-alert.info svg{color:var(--muted-strong)}.analysis-detail-drawer{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);gap:var(--space-3);padding:var(--space-3);display:grid}.analysis-detail-list{gap:var(--space-2);display:grid}.analysis-detail-filter{color:var(--muted-strong);align-items:center;gap:6px;font-size:.75rem;display:inline-flex}.analysis-detail-list>div,.analysis-detail-list>button{background:var(--panel-subtle);border:1px solid var(--line-soft);color:var(--text);text-align:left;white-space:normal;border-radius:6px;justify-content:stretch;gap:4px;min-width:0;min-height:44px;padding:9px 10px;display:grid}.analysis-detail-list>button:hover:not(:disabled){color:var(--text);background:#eef4ff;border-color:#9ab6e3}.analysis-detail-list strong{overflow-wrap:anywhere;word-break:break-word;min-width:0;font-size:.8125rem}.analysis-detail-list span{color:var(--muted-strong);overflow-wrap:anywhere;word-break:break-word;min-width:0;font-size:.75rem}.analysis-candidate-header{justify-content:flex-end}.analysis-main-grid{align-items:start;gap:var(--space-2);grid-template-columns:minmax(0,1fr);display:grid}.analysis-preview-panel .dxf-preview-panel{min-height:0}.analysis-preview-panel .dxf-preview-wrap{height:clamp(720px,78vh,1080px)}.analysis-toolbar{gap:var(--space-2);display:flex}.analysis-toolbar button{border-color:var(--line);color:var(--muted-strong);background:#fff;min-height:30px}.analysis-detail-panel{gap:var(--space-3)}.analysis-detail-panel h2{border-bottom:1px solid var(--line-soft);padding-bottom:10px}.analysis-candidate-main em{background:var(--ok-weak);color:var(--ok);border:1px solid #cbe9d6;border-radius:999px;width:fit-content;padding:3px 7px;font-size:.6875rem;font-style:normal;font-weight:750}.analysis-footer .secondary{border-color:var(--line);color:var(--muted-strong);background:#fff}.candidate-check-item{color:var(--muted-strong);background:#fff;border:1px solid #e2e9ef;border-radius:6px;grid-template-columns:16px minmax(0,1fr);align-items:flex-start;column-gap:8px;padding:8px 9px;display:grid}.candidate-check-item input[type=checkbox]{width:16px;height:16px;min-height:0;margin:2px 0 0}.candidate-check-item small{color:var(--muted-strong);overflow-wrap:anywhere;grid-column:1/-1;font-size:.6875rem;line-height:1.5}.analysis-candidate-table{min-width:1160px;display:grid}.analysis-candidate-panel-header{border-bottom:1px solid var(--line-soft);padding-bottom:var(--space-2)}.analysis-candidate-head,.analysis-candidate-main{grid-template-columns:48px minmax(120px,1.1fr) minmax(120px,1fr) 104px 128px 88px 78px 96px;align-items:center;gap:10px;display:grid}.analysis-candidate-head{border:1px solid var(--line-soft);color:var(--muted);background:#f3f6f8;border-radius:6px 6px 0 0;grid-template-columns:48px minmax(120px,1.1fr) minmax(120px,1fr) 104px 128px 88px 78px 96px 226px;min-height:34px;padding:0 10px;font-size:.75rem;font-weight:750}.analysis-candidate-row{border:0;border-bottom:1px solid var(--line-soft);color:var(--muted-strong);text-align:left;background:#fff;border-radius:0;grid-template-columns:minmax(0,1fr) 226px;justify-content:stretch;align-items:stretch;gap:10px;min-height:42px;padding:6px 10px;font-size:.8125rem;display:grid}.analysis-candidate-main{color:inherit;text-align:left;background:0 0;border:0;border-radius:8px;min-width:0;padding:4px 0}button.analysis-candidate-main{cursor:pointer}.analysis-candidate-row:hover .analysis-candidate-main,.analysis-candidate-row.active .analysis-candidate-main{color:var(--text);background:#eef4ff;border-color:#cdddf8}.analysis-candidate-main span,.analysis-candidate-main strong,.analysis-candidate-main small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.analysis-candidate-row.manual{background:#fbfdff}.candidate-decision-controls{grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:6px;display:grid}.candidate-decision-controls button{color:#526274;cursor:pointer;background:#fff;border:1px solid #d4dee7;border-radius:999px;min-height:32px;padding:0 10px;font-size:.75rem;font-weight:800;transition:background-color .16s,border-color .16s,box-shadow .16s,color .16s}.candidate-decision-controls button:hover{border-color:var(--accent);color:var(--accent);box-shadow:0 4px 12px #126f5b1f}.candidate-decision-controls button.adopted.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 8px 18px #126f5b33}.candidate-decision-controls button.pending.active{color:#fff;background:#f59e0b;border-color:#f59e0b;box-shadow:0 8px 18px #f59e0b33}.candidate-decision-controls button.excluded.active{background:var(--danger);border-color:var(--danger);color:#fff;box-shadow:0 8px 18px #d9463b2e}.manual-decision{color:var(--muted);justify-content:center;font-size:.75rem;font-weight:750}.analysis-candidate-checks{border-bottom:1px solid var(--line-soft);padding:6px 10px 10px}.analysis-candidate-checks-toggle{color:#1f5f6b;cursor:pointer;background:#f7fbfc;border:1px solid #c8dfe4;border-radius:6px;min-height:30px;padding:0 10px;font-size:.75rem;font-weight:700}.analysis-candidate-checks-toggle:hover:not(:disabled){color:#144f5a;background:#e8f4f6;border-color:#9fcbd4;box-shadow:0 1px #1f5f6b14}.analysis-candidate-check-list{gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-2);background:#fff8dc;border:1px solid #f1d27a;border-radius:10px;display:grid}.analysis-candidate-check-list .candidate-check-item{background:#ffffffbd;border-color:#efd58a}.analysis-manual-editor{border-top:1px solid var(--line-soft);grid-template-columns:minmax(120px,1fr) minmax(110px,.9fr) minmax(96px,.75fr) minmax(120px,.85fr) minmax(90px,.7fr) minmax(180px,1.2fr) auto;min-width:980px}.analysis-footer{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:var(--space-4);padding:var(--space-3);z-index:20;justify-content:flex-end;display:flex;position:fixed;bottom:12px;left:288px;right:12px;box-shadow:0 12px 34px #0f172a24}.analysis-footer>div{align-items:center;gap:var(--space-3);margin-right:auto;display:flex}.analysis-footer>div svg{color:var(--accent)}.analysis-footer span{color:var(--muted-strong);font-weight:750}.estimate-start{gap:var(--space-4);grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);display:grid}.start-copy,.upload-dropzone,.process-steps,.recent-projects{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.start-copy{gap:var(--space-3);min-height:260px;padding:var(--space-6);display:grid}.start-copy h2{font-size:1.5rem}.start-copy p:not(.eyebrow){color:var(--muted);max-width:560px;line-height:1.65}.upload-dropzone{min-height:180px;padding:var(--space-5);text-align:center;border-style:dashed;align-content:center;justify-items:center;gap:10px;display:grid}.upload-dropzone svg{color:var(--accent);width:34px;height:34px}.upload-dropzone span,.upload-dropzone p{color:var(--muted);font-size:.8125rem}.upload-dropzone h2{margin:0;font-size:1.6rem}.upload-dropzone p{max-width:700px;margin:0;line-height:1.65}.upload-dropzone small{color:var(--muted);font-size:.75rem}.upload-dropzone.inactive{background:var(--panel-subtle)}.file-select-button{background:var(--accent);border:1px solid var(--accent);color:#fff;cursor:pointer;border-radius:6px;justify-content:center;align-items:center;min-width:132px;min-height:34px;padding:0 12px;font-weight:650;display:inline-flex}.file-select-button:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.dxf-upload-form{align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.file-input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.selected-file-name{background:var(--panel-subtle);border:1px solid var(--line-soft);color:var(--muted-strong);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;max-width:100%;min-height:34px;padding:8px 12px;display:inline-flex;overflow:hidden}.process-steps{gap:var(--space-2);padding:var(--space-4);grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.process-steps>div{background:var(--panel-subtle);border:1px solid var(--line-soft);align-items:center;gap:var(--space-2);border-radius:6px;min-height:46px;padding:9px 10px;display:flex}.process-steps .active-step{background:var(--accent-weak);border-color:var(--accent)}.process-steps strong{background:var(--accent);color:#fff;border-radius:999px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;font-size:.75rem;display:inline-flex}.process-steps span{color:var(--muted-strong);font-size:.8125rem;font-weight:650}.recent-projects{gap:var(--space-3);padding:var(--space-4);grid-column:1/-1;display:grid}.recent-project-list{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.recent-project-list button{background:var(--panel-subtle);border-color:var(--line-soft);color:var(--text);text-align:left;justify-content:stretch;min-height:58px;padding:9px 10px;display:grid}.recent-project-list small{color:var(--muted)}.project-modal{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);gap:var(--space-4);max-width:480px;padding:var(--space-5);width:min(480px,100%);display:grid}.account-modal{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);gap:var(--space-5);width:min(820px,100vw - 32px);max-width:820px;max-height:min(860px,100vh - 32px);padding:28px 36px;display:grid;overflow:auto}.estimate-modal{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);gap:var(--space-4);max-width:920px;max-height:min(860px,100vh - 32px);padding:var(--space-5);width:min(920px,100vw - 32px);display:grid;overflow:auto}.estimate-modal-toolbar{align-items:center;gap:var(--space-2);margin-left:auto;display:flex}.document-kind-tabs{background:#eef3f6;border-radius:999px;align-items:center;padding:4px;display:inline-flex}.document-kind-tabs button{color:var(--muted-strong);background:0 0;border:0;border-radius:999px;min-height:34px;padding:0 14px}.document-kind-tabs button.active{color:var(--accent);background:#fff;box-shadow:0 1px 2px #0f172a14}.estimate-document{border:1px solid var(--line);border-radius:var(--radius);gap:var(--space-4);padding:var(--space-5);background:#fff;display:grid}.estimate-document-info-form{border:1px solid var(--line-soft);border-radius:var(--radius);gap:var(--space-3);padding:var(--space-4);background:#f8fbfc;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.estimate-document-info-title{grid-column:1/-1}.estimate-document-info-title h3{margin:0 0 4px;font-size:.9375rem}.estimate-document-info-title p{color:var(--muted);margin:0;font-size:.8125rem}.estimate-document-info-form label{color:var(--muted);gap:4px;font-size:.75rem;font-weight:750;display:grid}.estimate-document-info-form label.wide{grid-column:1/-1}.estimate-document-info-form input,.estimate-document-info-form textarea{min-height:34px;padding:6px 9px}.estimate-document-head{border-bottom:2px solid var(--text);align-items:start;gap:var(--space-5);padding-bottom:var(--space-4);justify-content:space-between;display:flex}.estimate-document-parties{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.estimate-document-parties>div,.estimate-document-invoice-meta>div,.estimate-document-note{background:var(--panel-subtle);border:1px solid var(--line-soft);border-radius:10px;padding:12px 14px}.estimate-document-parties span,.estimate-document-invoice-meta span,.estimate-document-note span{color:var(--muted);margin-bottom:6px;font-size:.75rem;font-weight:750;display:block}.estimate-document-parties strong,.estimate-document-invoice-meta strong{margin-bottom:6px;font-size:1rem;display:block}.estimate-document-parties p,.estimate-document-note p{color:var(--muted-strong);margin:0;font-size:.8125rem;line-height:1.7}.estimate-document-invoice-meta{display:grid}.estimate-document-head span{color:var(--accent);font-size:.875rem;font-weight:800}.estimate-document-head h3{margin:4px 0;font-size:1.5rem}.estimate-document-head p,.estimate-document-head dt{color:var(--muted);font-size:.8125rem}.estimate-document-head dl{gap:var(--space-2);min-width:220px;margin:0;display:grid}.estimate-document-head dl>div{justify-content:space-between;gap:var(--space-4);display:flex}.estimate-document-head dd{margin:0;font-weight:750}.estimate-document-summary{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.estimate-document-summary>div{background:var(--panel-subtle);border:1px solid var(--line-soft);border-radius:6px;gap:4px;padding:10px 12px;display:grid}.estimate-document-summary span{color:var(--muted);font-size:.75rem;font-weight:750}.estimate-document-summary strong{font-size:1.125rem}.estimate-document-table{display:grid;overflow-x:auto}.estimate-document-row{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(180px,1.3fr) 90px 110px 110px minmax(220px,1.4fr);align-items:center;gap:10px;min-width:760px;min-height:42px;padding:8px 10px;display:grid}.estimate-document-row.head{border:1px solid var(--line-soft);color:var(--muted);background:#f3f6f8;border-radius:6px 6px 0 0;min-height:34px;font-size:.75rem;font-weight:800}.estimate-document-row small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.estimate-document-row.missing-price{background:#fffdf7}.estimate-basis-cell{align-items:center;gap:8px;min-width:0;display:flex}.estimate-basis-cell small{flex:1}.estimate-material-action{border-color:var(--accent);color:var(--accent);white-space:nowrap;background:#fff;min-height:28px;padding:0 10px;font-size:.75rem}.estimate-material-badge{color:var(--accent);white-space:nowrap;background:#e6f7f0;border:1px solid #bce6d2;border-radius:999px;padding:4px 8px;font-size:.7rem;font-weight:800}.estimate-row-edit-button{border-color:var(--line);color:var(--muted-strong);background:#fff;width:30px;min-height:28px;padding:0}.estimate-row-edit-button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.estimate-row-editor{border-bottom:1px solid var(--line-soft);background:#f8fbfc;grid-template-columns:minmax(150px,1fr) minmax(110px,.8fr) 80px 90px minmax(220px,1.2fr) auto;gap:8px;min-width:760px;padding:10px;display:grid}.manual-estimate-editor{border-top:1px solid var(--line-soft);grid-template-columns:minmax(150px,1fr) minmax(110px,.8fr) 80px 90px minmax(240px,1.2fr);min-width:820px}.manual-estimate-editor-title,.manual-analysis-editor-title{color:var(--text);grid-column:1/-1;align-items:center;gap:6px;font-size:.8125rem;font-weight:750;display:flex}.manual-estimate-editor-title svg,.manual-analysis-editor-title svg{color:var(--accent)}.manual-estimate-editor .estimate-row-editor-actions{grid-column:1/-1;justify-content:flex-end}.estimate-row-editor label{color:var(--muted);gap:4px;font-size:.75rem;font-weight:750;display:grid}.estimate-row-editor input{min-height:32px;padding:4px 8px}.estimate-row-editor-actions{align-items:end;gap:var(--space-2);display:flex}.estimate-row-editor-actions .secondary{border-color:var(--line);color:var(--muted-strong);background:#fff}.estimate-material-editor{border-bottom:1px solid var(--line-soft);gap:var(--space-3);background:#fffdf7;min-width:760px;padding:10px;display:grid}.estimate-material-editor-fields{grid-template-columns:minmax(150px,1fr) minmax(120px,.9fr) 110px 110px;gap:8px;display:grid}.estimate-material-editor label{color:var(--muted);gap:4px;font-size:.75rem;font-weight:750;display:grid}.estimate-material-editor input{min-height:32px;padding:4px 8px}.estimate-material-editor-actions{gap:var(--space-2);justify-content:flex-end;display:flex}.estimate-material-editor-actions .secondary{border-color:var(--line);color:var(--muted-strong);background:#fff}.missing-material-form{border:1px solid var(--line-soft);border-radius:var(--radius);gap:var(--space-3);min-width:760px;padding:var(--space-3);display:grid}.missing-material-form h3{margin:0 0 4px;font-size:.9375rem}.missing-material-form p{color:var(--muted);font-size:.8125rem}.missing-material-grid{gap:0;display:grid}.missing-material-head,.missing-material-row{grid-template-columns:minmax(130px,1fr) minmax(120px,.9fr) 110px 110px 86px;align-items:center;gap:8px;display:grid}.missing-material-head{border:1px solid var(--line-soft);color:var(--muted);background:#f3f6f8;border-radius:6px 6px 0 0;min-height:32px;padding:0 8px;font-size:.75rem;font-weight:800}.missing-material-row{border-bottom:1px solid var(--line-soft);min-height:44px;padding:6px 8px}.missing-material-row input{min-height:32px;padding:4px 8px}.material-master-view{gap:var(--space-3);display:grid}.material-master-create{background:linear-gradient(135deg, #12645614, transparent 38%), var(--panel)}.material-master-form{align-items:end;gap:var(--space-3);margin-top:var(--space-3);grid-template-columns:repeat(12,minmax(0,1fr));min-width:0;display:grid}.material-master-form label,.material-master-edit-row label{color:var(--muted);min-width:0}.material-master-form label{grid-column:span 2}.material-master-form label:first-child,.material-master-form label:nth-child(3),.material-master-form label:nth-child(9),.material-master-form label:nth-child(10){grid-column:span 3}.material-master-form input,.material-master-form select,.material-master-edit-row input,.material-master-edit-row select,.realtime-material-row input,.realtime-material-row select{width:100%;min-height:34px;padding:5px 8px}.material-master-form-actions{grid-column:1/-1;justify-content:flex-end;align-items:end;display:flex}.material-master-form-actions button{min-width:190px}.material-master-create .panel-header{flex-wrap:wrap;align-items:flex-start}.material-master-create .panel-note{white-space:normal;max-width:560px}.material-master-list-panel{overflow-x:auto}.material-master-search{max-width:320px}.material-master-table{min-width:1040px;display:grid}.material-master-head,.material-master-row,.material-master-edit-row{grid-template-columns:minmax(150px,1.2fr) minmax(130px,1fr) 100px 100px 70px 110px minmax(120px,1fr) 150px;align-items:center;gap:10px;display:grid}.material-master-head{border:1px solid var(--line-soft);color:var(--muted);background:#f3f6f8;border-radius:6px 6px 0 0;min-height:36px;padding:0 10px;font-size:.75rem;font-weight:800}.material-master-row{border-bottom:1px solid var(--line-soft);min-height:48px;padding:8px 10px}.material-master-row span,.material-master-row strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.material-master-edit-row{background:#fffdf7;border-bottom:1px solid #f0dfb3;padding:10px}.material-master-actions{gap:var(--space-2);justify-content:flex-end;display:flex}.material-master-actions .secondary{border-color:var(--line);color:var(--muted-strong);background:#fff}.material-master-actions .danger{background:var(--danger-weak);color:var(--danger);border-color:#f1b5af}.realtime-material-panel{background:linear-gradient(#fbfffd 0%,#f4fbf7 100%);border-color:#bedfd1}.realtime-material-grid{min-width:980px;display:grid;overflow-x:auto}.realtime-material-head,.realtime-material-row{grid-template-columns:minmax(130px,1.1fr) minmax(130px,1fr) 120px 110px 86px minmax(130px,1fr) 150px;align-items:center;gap:8px;display:grid}.realtime-material-head{color:var(--accent);background:#eaf6ef;border:1px solid #cce7d7;border-radius:6px 6px 0 0;min-height:34px;padding:0 10px;font-size:.75rem;font-weight:850}.realtime-material-row{border-bottom:1px solid #dbece3;padding:8px 10px}.realtime-material-actions{align-items:center;gap:var(--space-2);justify-content:flex-end;display:flex}.estimate-modal-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end;display:flex}.estimate-modal-actions .secondary{border-color:var(--line);color:var(--muted-strong);background:#fff}.billing-gate-shell{background:linear-gradient(#eef2f5e0,#eef2f5),radial-gradient(circle at 20% 0,#1264561f,#0000 34%);align-items:center;min-height:100vh;padding:clamp(24px,5vw,64px);display:grid}.billing-gate-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);gap:var(--space-6);width:100%;max-width:1080px;margin:0 auto;padding:clamp(24px,4vw,40px);display:grid}.billing-gate-header{gap:var(--space-2);text-align:center;display:grid}.billing-gate-header h1{color:var(--text);margin:0;font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.2}.billing-gate-header p:not(.eyebrow),.billing-gate-note{color:var(--muted-strong);margin:0}.billing-gate-trial{background:var(--accent-weak);color:var(--accent);margin-top:var(--space-2);border:1px solid #cbe9d6;border-radius:999px;justify-self:center;padding:7px 14px;font-size:.95rem;display:inline-flex}.billing-coupon-notice{color:#dc2626;background:#fff5f5;border:1px solid #fecaca;border-radius:999px;justify-self:center;padding:8px 16px;font-size:.94rem;font-weight:850;line-height:1.5;display:inline-flex}.billing-coupon-notice strong{letter-spacing:.04em;margin-left:.4em;font-size:1.02rem}.billing-gate-status{white-space:normal;justify-content:center;justify-self:center;width:100%;max-width:720px}.billing-gate-plan-grid{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.billing-gate-plan{background:var(--panel-subtle);border:1px solid var(--line);border-radius:var(--radius);gap:var(--space-4);min-height:324px;padding:var(--space-5);display:grid;position:relative}.billing-gate-plan.recommended{border-color:var(--accent);background:#fff;box-shadow:0 0 0 1px #12645638}.billing-gate-plan h2{text-align:center;margin:0;font-size:1.2rem}.billing-gate-plan ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.billing-gate-plan li{color:var(--muted-strong);align-items:center;gap:var(--space-2);font-size:.9rem;display:flex}.billing-gate-plan li svg{background:var(--accent);color:#fff;border-radius:999px;flex:none;padding:2px}.billing-gate-note{background:var(--accent-weak);border-radius:var(--radius-sm);text-align:center;border:1px solid #cbe9d6;padding:12px 14px}.subscription-summary-card{border-radius:var(--radius);align-items:center;gap:var(--space-4);min-height:120px;padding:var(--space-5);background:linear-gradient(90deg,#eefaf4,#f8fffb);border:1px solid #cbe9d6;grid-template-columns:58px minmax(0,1fr);display:grid}.subscription-icon{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:52px;height:52px;display:inline-flex}.subscription-summary-card h3{color:var(--accent);margin:0 0 8px;font-size:1.375rem;line-height:1.2}.subscription-meta{align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-bottom:10px;display:flex}.subscription-meta strong{color:var(--accent);font-size:1.125rem}.subscription-meta span,.subscription-summary-card p{color:var(--muted-strong);font-size:.875rem}.plan-change-notice{border-radius:var(--radius-sm);align-items:center;gap:var(--space-2);margin-top:var(--space-3);background:#fff7ed;border:1px solid #f97316;flex-wrap:wrap;padding:9px 12px;display:flex}.plan-change-notice strong{color:#f97316;font-size:.875rem}.plan-change-notice span{color:#f97316;font-size:.75rem;font-weight:700}.billing-plan-grid{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.billing-plan{border:1px solid var(--line);border-radius:var(--radius);gap:var(--space-4);min-height:302px;padding:var(--space-5);background:#fff;display:grid;position:relative}.billing-plan.recommended{border-color:var(--accent);box-shadow:0 0 0 1px #12645638}.recommended-badge{background:var(--accent);color:#fff;border-radius:999px;padding:3px 12px;font-size:.75rem;font-weight:800;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.billing-plan h3{text-align:center;margin:0;font-size:1.125rem}.plan-price{border-bottom:1px solid var(--line);align-items:baseline;gap:var(--space-2);padding-bottom:var(--space-3);justify-content:center;display:flex}.plan-price span{color:var(--muted-strong);font-weight:700}.plan-price strong{color:var(--accent);font-size:1.6rem;line-height:1}.billing-plan ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.billing-plan li{color:var(--muted-strong);align-items:center;gap:var(--space-2);font-size:.875rem;display:flex}.billing-plan li svg{background:var(--accent);color:#fff;border-radius:999px;flex:none;padding:2px}.billing-exempt-panel{border-radius:var(--radius);gap:var(--space-2);padding:var(--space-5);background:#fff;border:1px solid #cbe9d6;display:grid}.billing-exempt-panel strong{color:var(--accent);font-size:1rem}.billing-exempt-panel span{color:var(--muted-strong);font-size:.875rem}.billing-portal-panel{border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:var(--space-4);padding:var(--space-5);background:#fff;justify-content:space-between;display:flex}.billing-portal-panel div{gap:var(--space-2);display:grid}.billing-portal-panel strong{color:var(--ink);font-size:1rem}.billing-portal-panel span{color:var(--muted-strong);font-size:.875rem}.plan-button{border-color:var(--accent);color:var(--accent);background:#fff;margin-top:auto}.plan-button.primary{background:var(--accent);color:#fff}.account-info-panel{gap:var(--space-3);display:grid}.account-info-panel h3{margin:0;font-size:.9375rem}.account-detail-list{border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;display:grid;overflow:hidden}.account-detail-list>div{border-bottom:1px solid var(--line-soft);align-items:center;gap:var(--space-2);background:#fff;grid-template-columns:110px minmax(0,1fr);min-height:52px;padding:11px 14px;display:grid}.account-detail-list>div:nth-child(odd){border-right:1px solid var(--line-soft)}.account-detail-list>div:nth-last-child(-n+2){border-bottom:0}.account-detail-list.has-plan-change>div:nth-last-child(2){border-bottom:1px solid var(--line-soft)}.account-detail-list>.plan-change-detail{border-right:0;grid-column:1/-1;grid-template-columns:140px minmax(0,1fr)}.account-detail-list>.plan-change-detail strong{white-space:normal}.account-detail-list span{color:var(--muted);font-size:.75rem;font-weight:700}.account-detail-list strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.billing-note{color:var(--accent);font-size:.8125rem}.project-modal-form{gap:var(--space-4);display:grid}.document-settings-modal{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);gap:var(--space-4);max-width:980px;max-height:min(860px,100vh - 32px);padding:var(--space-5);width:min(980px,100vw - 32px);display:grid;overflow:auto}.document-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.document-settings-grid label{color:var(--muted-strong);gap:6px;font-size:.8125rem;font-weight:700;display:grid}.document-settings-grid label.wide{grid-column:1/-1}.document-settings-grid textarea{resize:vertical;min-height:104px;padding:10px 12px}.project-modal-form label{color:var(--muted-strong)}.empty-state-actions{background:var(--panel-subtle);border:1px solid var(--line-soft);border-radius:var(--radius);color:var(--muted-strong);padding:12px 14px;font-size:.8125rem;font-weight:650}.page-filter-panel{margin-bottom:var(--space-3)}.page-filter-empty{background:linear-gradient(#fcfefd 0%,#f6fbf8 100%);border-style:dashed}.page-filter-summary{align-items:center;gap:var(--space-2);display:flex}.page-filter-chip-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.page-filter-chip{border:1px solid var(--line);color:var(--muted-strong);background:#fff;border-radius:14px;place-items:flex-start start;gap:3px;min-width:108px;min-height:auto;padding:10px 12px;display:grid}.page-filter-chip strong{font-size:.8125rem}.page-filter-chip.active{color:var(--accent);background:#eff8f4;border-color:#9fd4be}.estimate-panel-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.estimate-panel-side{align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.work-surface{align-items:start;gap:var(--space-3);grid-template-columns:minmax(0,1fr) 360px;display:grid}.work-surface.single-column{grid-template-columns:minmax(0,1fr)}.workspace-primary,.workspace-support{gap:var(--space-3);min-width:0;display:grid}.mode-pane{display:none}.mode-pane.active{gap:var(--space-3);display:grid}.dxf-pane{order:1}.common-pane{order:2}.workspace-support{top:var(--space-5);position:sticky}.panel{gap:6px;min-width:0;padding:10px;display:grid}.panel.wide{overflow-x:auto}.panel-header{align-items:center;gap:var(--space-3);justify-content:space-between;min-width:0;display:flex}.panel-title{color:var(--text);align-items:center;gap:var(--space-2);min-width:0;display:flex}.panel-title svg{color:var(--accent);flex:none}.panel-title.compact{border-top:1px solid var(--line-soft);margin-top:var(--space-1);padding-top:var(--space-3)}.panel-note{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.panel-note.multiline{text-overflow:initial;white-space:normal;line-height:1.7;overflow:visible}.empty-text{color:var(--muted);font-size:.8125rem;line-height:1.55}.action-strip{align-items:center;gap:var(--space-2);grid-template-columns:minmax(220px,1fr) auto auto auto;display:grid}.dxf-action-strip{grid-template-columns:minmax(220px,1fr) auto}.action-strip button[type=button]{border-color:var(--line);color:var(--muted-strong);background:#fff}.action-strip button[type=button]:hover:not(:disabled){background:var(--panel-subtle);color:var(--text);border-color:#b8c2ce}.mini-table,.estimate-items,.profile-list,.reference-grid,.review-list,.order-list{gap:var(--space-2);display:grid}.mini-table>div,.estimate-row,.profile-row,.reference-row,.review-row,.order-row{background:var(--panel-subtle);border:1px solid var(--line-soft);align-items:center;gap:var(--space-2);border-radius:6px;min-height:40px;padding:8px 10px;display:grid}.mini-table small,.estimate-row small,.profile-row small,.reference-row small,.order-row small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mini-table>div{grid-template-columns:minmax(0,1fr) 88px 92px}.profile-row{grid-template-columns:minmax(0,1fr) 82px 100px}.review-row{grid-template-columns:56px minmax(0,1fr)}.review-row strong{color:var(--accent)}.reference-row{grid-template-columns:minmax(160px,1.2fr) 90px minmax(240px,2fr)}.order-row{grid-template-columns:110px 96px minmax(180px,1fr) 92px 76px minmax(240px,1.4fr)}.table{min-width:820px;display:grid}.dxf-table{min-width:1240px;display:grid}.dxf-head,.dxf-row{grid-template-columns:44px 110px 116px 86px 150px 76px 100px 82px minmax(160px,1fr) 70px minmax(180px,1fr);align-items:center;gap:10px;display:grid}.dxf-head{border:1px solid var(--line-soft);color:var(--muted);background:#f3f6f8;border-radius:6px 6px 0 0;min-height:36px;padding:0 10px;font-size:.75rem;font-weight:750}.dxf-row{border-bottom:1px solid var(--line-soft);color:var(--muted-strong);min-height:46px;padding:6px 10px;font-size:.875rem}.dxf-row:nth-child(odd){background:#fbfcfd}.dxf-row strong,.dxf-row b{color:var(--text)}.dxf-row span,.dxf-row small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dxf-row small{color:var(--muted)}.standard-length-input{min-height:32px;padding:4px 8px}.standard-length-input:disabled,.dxf-range-select:disabled{color:var(--muted);background:#eef2f6}.dxf-range-select{min-height:32px;padding:4px 8px}.dxf-metadata-table{min-width:860px;display:grid}.dxf-metadata-head,.dxf-metadata-row{grid-template-columns:minmax(120px,1.1fr) 100px 82px 82px 72px 92px 86px 86px;align-items:center;gap:10px;display:grid}.dxf-metadata-head{border:1px solid var(--line-soft);color:var(--muted);background:#f3f6f8;border-radius:6px 6px 0 0;min-height:36px;padding:0 10px;font-size:.75rem;font-weight:750}.dxf-metadata-row{border-bottom:1px solid var(--line-soft);color:var(--muted-strong);min-height:44px;padding:6px 10px}.dxf-metadata-row:nth-child(odd){background:#fbfcfd}.dxf-metadata-row strong{color:var(--text)}.metadata-delete-button{background:var(--danger-weak);color:var(--danger);border-color:#f4b8b3;min-height:32px;padding:0 10px}.metadata-delete-button:hover:not(:disabled){background:#ffe3df;border-color:#ee9b94}.metadata-help-grid{gap:var(--space-2);margin-bottom:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.metadata-help-grid>div{border:1px solid var(--line-soft);background:linear-gradient(#fbfcfd 0%,#f4f8fa 100%);border-radius:10px;gap:6px;min-height:110px;padding:14px 16px;display:grid}.metadata-help-grid strong{color:var(--text);font-size:.875rem}.metadata-help-grid p{color:var(--muted-strong);margin:0;font-size:.8125rem;line-height:1.65}.metadata-input{min-height:32px;padding:4px 8px}.dxf-warnings{gap:var(--space-2);flex-wrap:wrap;display:flex}.dxf-warnings span{background:var(--warn-weak);color:var(--warn);border:1px solid #f3d7a4;border-radius:999px;padding:5px 9px;font-size:.75rem;font-weight:650}.dxf-preview-panel{min-height:clamp(760px,82vh,1120px)}.dxf-preview-wrap{border-radius:var(--radius);gap:var(--space-2);height:clamp(760px,82vh,1160px);padding:var(--space-2);background:linear-gradient(#f8fbfd 0%,#eef4f7 100%);border:1px solid #c9d5df;grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffffd1}.dxf-preview-topline{align-items:center;gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto;min-height:34px;display:grid}.dxf-preview-meta{color:var(--muted-strong);flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.dxf-preview-meta span{background:#ffffffc7;border:1px solid #d8e2ea;border-radius:999px;align-items:center;gap:5px;min-height:28px;padding:0 9px;font-size:.75rem;font-weight:750;display:inline-flex}.dxf-preview-meta svg{color:var(--accent)}.dxf-preview-toolbar{justify-content:flex-end;align-items:center;gap:5px;min-height:34px;display:flex}.dxf-preview-toolbar button{color:#415466;background:#ffffffe6;border-color:#cfdae4;min-width:32px;min-height:30px;padding:0 8px}.dxf-preview-toolbar button.active{color:var(--accent);background:#eff8f4;border-color:#9fd4be}.dxf-preview-toolbar button:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:#fff}.dxf-preview-toolbar span{color:#334155;text-align:center;min-width:48px;font-size:.8125rem;font-weight:750}.dxf-preview-stage{background:linear-gradient(#0726370a,#07263705),#fdfefe;border:1px solid #cbd7e1;border-radius:6px;min-height:0;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffffb8,inset 0 0 42px #114d640f}.dxf-preview{cursor:grab;image-rendering:auto;touch-action:none;width:100%;height:100%;min-height:0;display:block}.dxf-preview:active{cursor:grabbing}.dxf-preview-sheet{fill:#fbfdff;stroke:#d9e3ec;stroke-width:1px}.dxf-blueprint-grid{fill:none}.dxf-blueprint-grid.minor{stroke:#2563eb14;stroke-width:.55px}.dxf-blueprint-grid.major{stroke:#12645621;stroke-width:.9px}.dxf-entity{fill:none;stroke:#7f91a4;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.15px}.dxf-entity.highlighted{stroke:#e11d48;stroke-width:2.8px}.candidate-review-badge{color:#b96a00;background:#fff7e8;border:1px solid #f6d9a6;border-radius:999px;width:fit-content;padding:4px 8px;font-size:.6875rem;font-weight:800}.candidate-review-badge.done{color:var(--accent);background:#e8f8ef;border-color:#b6e4c7}.ai-setup-panel{gap:var(--space-4);padding:var(--space-4);background:radial-gradient(circle at 100% 0,#1c685814,#0000 34%),linear-gradient(#fcfefd 0%,#f5faf7 100%);border-color:#d9e7de}.ai-setup-steps{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.ai-setup-step{border:1px solid var(--line-soft);background:#ffffffeb;border-radius:14px;gap:8px;min-height:146px;padding:16px;display:grid}.ai-setup-step span{color:var(--muted);background:#edf2f7;border-radius:999px;justify-content:center;align-items:center;width:30px;height:30px;font-size:.75rem;font-weight:800;display:inline-flex}.ai-setup-step strong{font-size:.95rem}.ai-setup-step p{color:var(--muted-strong);margin:0;font-size:.8125rem;line-height:1.65}.ai-setup-step.done{border-color:#b7dfc7;box-shadow:inset 0 0 0 1px #1c685814}.ai-setup-step.done span{background:var(--accent);color:#fff}.ai-setup-step.active{border-color:#8ec8b0;box-shadow:0 8px 20px #1c685814}.ai-setup-step.active span{color:var(--accent);background:#d9f1e6}.ai-setup-helper{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.ai-setup-helper>div{border:1px solid var(--line-soft);background:#ffffffd1;border-radius:12px;gap:5px;min-height:96px;padding:14px 16px;display:grid}.ai-setup-helper strong{color:var(--text);font-size:.875rem}.ai-setup-helper span{color:var(--muted-strong);font-size:.8125rem;line-height:1.7}.ai-setup-actions{justify-content:flex-end;display:flex}.ai-setup-actions button{min-width:200px}.thead,.trow{grid-template-columns:54px 1.35fr 104px 84px 64px 92px 1.9fr;align-items:center;gap:10px;display:grid}.thead{border:1px solid var(--line-soft);color:var(--muted);background:#f3f6f8;border-radius:6px 6px 0 0;min-height:36px;padding:0 10px;font-size:.75rem;font-weight:750}.trow{border-bottom:1px solid var(--line-soft);color:var(--muted-strong);min-height:42px;padding:0 10px;font-size:.875rem}.trow:nth-child(odd){background:#fbfcfd}.trow strong{color:var(--text)}.icon{border-color:var(--line);color:var(--muted);background:#fff;width:34px;min-height:30px;padding:0}.icon:hover:not(:disabled){background:var(--panel-subtle);color:var(--text);border-color:#b8c2ce}.icon.active{background:var(--accent-weak);border-color:var(--accent);color:var(--accent)}.estimate-summary{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.estimate-summary>div{border:1px solid var(--line-soft);border-radius:6px}.estimate-candidate-panel{background:linear-gradient(180deg, #faf7edf5 0%, #fff 54%), var(--panel);border-color:#e7d7ad;box-shadow:0 16px 30px #78673a14}.estimate-panel-note{color:#8a5a15;background:#fff6df;border:1px solid #ecd8a4;border-radius:999px;align-items:center;min-height:30px;padding:0 12px;font-size:.75rem;font-weight:750;display:inline-flex}.estimate-candidate-panel .estimate-summary>div{background:#fffdf7;border-color:#e7d7ad}.estimate-candidate-panel .estimate-summary span{color:#886232}.estimate-candidate-panel .estimate-summary strong{color:#5c421f}.estimate-row{background:#fffdf9;border-color:#ebdfc0;grid-template-columns:minmax(180px,1.2fr) 78px 100px 110px minmax(180px,1fr);box-shadow:inset 0 1px #fffc}.modal-backdrop{z-index:50;background:#0f172a6b;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.progress-modal{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);gap:var(--space-4);max-width:560px;padding:var(--space-5);width:min(560px,100%);display:grid}.ai-progress-modal{border-color:#b9d3cf;max-width:520px}.ai-progress-spinner{color:currentColor}.ai-progress-step-icon{flex-shrink:0}.modal-title{align-items:start;gap:var(--space-4);justify-content:space-between;display:flex}.modal-title p{color:var(--muted);margin-top:5px;font-size:.8125rem}.modal-close{border-color:var(--line);color:var(--muted);background:#fff;width:36px;min-height:34px;padding:0}.modal-close:hover:not(:disabled){background:var(--panel-subtle);color:var(--text);border-color:#b8c2ce}.modal-current{border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:10px;min-height:54px;padding:12px;display:flex}.modal-current.running{background:var(--info-weak);color:var(--info)}.modal-current.completed{background:var(--ok-weak);color:var(--ok)}.modal-current.error{background:var(--danger-weak);color:var(--danger)}.modal-steps{gap:var(--space-2);display:grid}.modal-step{border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:28px minmax(0,1fr);align-items:center;gap:10px;min-height:56px;padding:9px 10px;display:grid}.modal-step>span{color:var(--muted);background:#eef2f6;border-radius:999px;justify-content:center;align-items:center;width:26px;height:26px;font-size:.75rem;font-weight:750;display:inline-flex}.modal-step strong,.modal-step small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.modal-step small{color:var(--muted);margin-top:2px;font-size:.75rem}.modal-step.current{border-color:var(--info)}.modal-step.current>span{background:var(--info);color:#fff}.modal-step.done{background:var(--ok-weak)}.modal-step.done>span{background:var(--accent);color:#fff}.modal-error{background:var(--danger-weak);border-radius:var(--radius);color:var(--danger);word-break:break-word;border:1px solid #ffccc7;padding:10px 12px;font-size:.8125rem}.spin{animation:.8s linear infinite spin}.drawing-mode-switch{background:#eef3f6;border:1px solid #ccd7e1;border-radius:8px;grid-template-columns:repeat(2,minmax(136px,1fr));align-items:center;gap:3px;width:min(100%,320px);padding:3px;display:inline-grid;box-shadow:inset 0 1px 2px #0f172a0d}.drawing-mode-button{color:var(--muted-strong);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;gap:7px;width:100%;min-height:40px;padding:8px 12px;font-weight:800}.drawing-mode-button:hover:not(:disabled){color:var(--text);background:#f8fbfc;border-color:#c8d4de}.drawing-mode-button.active{background:var(--text);border-color:var(--text);color:#fff;box-shadow:0 6px 14px #0f172a29}.drawing-mode-button.active:hover:not(:disabled){background:var(--text);border-color:var(--text);color:#fff}.pdf-workbench{background:linear-gradient(180deg, #fbfdff 0%, #f5f8fb 100%), var(--panel);gap:var(--space-3);border-color:#cdd8e3}.pdf-workbench-grid{align-items:start;gap:var(--space-3);grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);display:grid}.pdf-flow-steps{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.pdf-flow-steps span{color:var(--muted-strong);background:#f3f6f8;border:1px solid #dbe4ec;border-radius:6px;min-height:34px;padding:8px 10px;font-size:.75rem;font-weight:800}.pdf-page-grid{gap:var(--space-2);max-height:720px;padding:var(--space-2);background:linear-gradient(#07263706,#07263703),#fdfefe;border:1px solid #cbd7e1;border-radius:6px;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));display:grid;overflow:auto}.pdf-page-card{color:var(--text);text-align:left;background:#fffffff0;border:1px solid #d8e2ea;border-radius:6px;gap:6px;min-height:184px;padding:8px;display:grid}.pdf-page-card.active{background:#f4fbf8;border-color:#9fd4be;box-shadow:0 0 0 2px #1264561f}.pdf-page-preview-button{color:inherit;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:5px;gap:6px;padding:4px;display:grid}.pdf-page-preview-button:hover:not(:disabled){color:var(--text);background:#f7fbfc;border-color:#c8dfe4}.pdf-page-card.active .pdf-page-preview-button{background:#eff8f4;border-color:#c9e6da}.pdf-page-preview-button img{object-fit:contain;background:#f8fbfd;border:1px solid #dbe5ec;border-radius:4px;width:100%;height:112px}.pdf-page-card strong,.pdf-page-card span,.pdf-page-card small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pdf-page-card span,.pdf-page-card small{color:var(--muted);font-size:.75rem}.pdf-page-checkbox{color:var(--muted-strong);cursor:pointer;background:#f7fbfc;border:1px solid #dce7ef;border-radius:6px;align-items:center;gap:7px;min-height:28px;padding:0 8px;font-size:.78rem;font-weight:750;display:flex}.pdf-page-checkbox input{accent-color:var(--accent);width:16px;height:16px}.pdf-page-selector{align-content:start;gap:var(--space-3);display:grid}.pdf-preview-box{background:linear-gradient(#07263709,#07263704),#fdfefe;border:1px solid #cbd7e1;border-radius:6px;place-items:center;min-height:320px;padding:10px;display:grid;box-shadow:inset 0 0 0 1px #ffffffb8,inset 0 0 32px #114d640d}.pdf-preview-box img{object-fit:contain;max-width:100%;max-height:420px}.pdf-role-editor,.pdf-trade-selector,.pdf-selected-summary,.pdf-finish-list,.pdf-result-detail{background:#fff;border:1px solid #dbe4ec;border-radius:6px;gap:8px;padding:12px;display:grid}.pdf-role-editor label,.pdf-trade-selector label,.pdf-selected-summary strong,.pdf-finish-list>strong,.pdf-result-detail strong{color:var(--muted-strong);font-size:.78rem;font-weight:800}.pdf-role-editor select,.pdf-trade-selector select{border:1px solid var(--line);border-radius:6px;min-height:36px;padding:6px 8px}.pdf-selected-summary button{justify-self:start;min-height:34px}.pdf-selected-summary span,.pdf-result-detail span,.pdf-role-editor p{color:var(--muted);margin:0;font-size:.82rem}.pdf-finish-item{cursor:pointer;background:#fbfcfd;border:1px solid #e2e9ef;border-radius:6px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;padding:10px;display:grid}.pdf-finish-item:hover{background:#f7fbfc;border-color:#c8dfe4}.pdf-finish-item:has(input:checked){box-shadow:inset 3px 0 0 var(--accent);background:#eff8f4;border-color:#9fd4be}.pdf-finish-item input{accent-color:var(--accent);margin-top:3px}.pdf-finish-item span{color:var(--text);gap:3px;font-size:.82rem;display:grid}.pdf-finish-item strong{font-size:.78rem}.pdf-finish-item small{color:var(--muted);font-size:.75rem}.pdf-result-kpis{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.pdf-takeoff-result{gap:var(--space-3)}.pdf-result-kpis>div{background:linear-gradient(#fff 0%,#f8fbfd 100%);border:1px solid #dbe4ec;border-radius:6px;align-content:space-between;gap:10px;min-height:108px;padding:12px;display:grid}.pdf-result-kpis span{color:var(--muted-strong);font-size:.75rem;font-weight:800}.pdf-result-kpis strong{color:var(--text);font-size:1.45rem;line-height:1.1}.pdf-wall-formula{background:#f7fbfc;border:1px solid #dbe4ec;border-radius:6px;gap:8px;padding:12px;display:grid}.pdf-wall-formula>div{grid-template-columns:190px minmax(0,1fr);align-items:center;gap:8px;display:grid}.pdf-wall-formula span{color:var(--muted-strong);font-size:.78rem;font-weight:800}.pdf-wall-formula strong{color:var(--text);overflow-wrap:anywhere;font-size:.95rem}.pdf-result-basis-grid{background:#fff;border:1px solid #dbe4ec;border-radius:6px;display:grid;overflow:hidden}.pdf-result-basis-grid>strong{color:var(--muted-strong);background:#f3f6f8;border-bottom:1px solid #dbe4ec;padding:10px 12px;font-size:.78rem;font-weight:800}.pdf-basis-row{border-bottom:1px solid var(--line-soft);grid-template-columns:150px minmax(0,1fr);gap:12px;padding:10px 12px;display:grid}.pdf-basis-row:last-child{border-bottom:0}.pdf-basis-row span{color:var(--text);font-size:.82rem;font-weight:800}.pdf-basis-row p{color:var(--muted-strong);overflow-wrap:anywhere;margin:0;font-size:.82rem;line-height:1.65}.pdf-result-detail.warning{background:#fff7ed}.pdf-estimate-candidates{background:#fff}.pdf-estimate-candidate-table{border:1px solid #dbe4ec;border-radius:6px;display:grid;overflow:hidden}.pdf-estimate-candidate-head,.pdf-estimate-candidate-row{grid-template-columns:48px 88px minmax(220px,1.1fr) 150px minmax(360px,1.8fr);align-items:start;gap:12px;padding:9px 10px;display:grid}.pdf-estimate-candidate-head{background:#f3f6f8;border-bottom:1px solid #dbe4ec}.pdf-estimate-candidate-head span{color:var(--muted-strong);font-size:.74rem;font-weight:800}.pdf-estimate-candidate-row{border-bottom:1px solid var(--line-soft);color:var(--muted-strong)}.pdf-estimate-candidate-row:nth-child(odd){background:#fbfcfd}.pdf-estimate-candidate-row:last-child{border-bottom:0}.pdf-estimate-candidate-row strong{color:var(--text);font-size:.82rem}.pdf-estimate-candidate-row span{overflow-wrap:anywhere;gap:2px;display:grid}.pdf-estimate-candidate-row small{color:var(--muted);font-size:.72rem}.pdf-takeoff-progress{gap:8px;display:grid}.pdf-progress-track{background:#e5e7eb;border-radius:999px;height:8px;overflow:hidden}.pdf-progress-track span{background:var(--info);border-radius:inherit;width:42%;height:100%;animation:1.1s ease-in-out infinite pdf-progress;display:block}.pdf-takeoff-progress p{color:var(--muted);margin:0;font-size:.78rem}@keyframes pdf-progress{0%{transform:translate(-110%)}to{transform:translate(260%)}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important}}@media (max-width:1180px){.work-surface{grid-template-columns:1fr}.workspace-support{position:static}.ai-setup-steps,.ai-setup-helper,.metadata-help-grid,.pdf-flow-steps,.pdf-workbench-grid,.pdf-result-kpis{grid-template-columns:1fr}.material-master-form{grid-template-columns:repeat(2,minmax(0,1fr))}.material-master-form label,.material-master-form label:first-child,.material-master-form label:nth-child(3),.material-master-form label:nth-child(9),.material-master-form label:nth-child(10){grid-column:auto}}@media (max-width:920px){.pdf-wall-formula>div{grid-template-columns:1fr;align-items:start}.pdf-estimate-candidate-head,.pdf-estimate-candidate-row{grid-template-columns:1fr}.pdf-basis-row{grid-template-columns:1fr;gap:4px}.app-shell{grid-template-columns:1fr}.sidebar{height:auto;min-height:auto;position:static;overflow:visible}.metrics,.estimate-summary,.workflow,.action-strip,.estimate-start,.process-steps,.recent-project-list,.billing-gate-plan-grid,.billing-plan-grid,.account-detail-list{grid-template-columns:1fr}.billing-portal-panel{flex-direction:column;align-items:stretch}.material-master-form{grid-template-columns:1fr}.material-master-form-actions{justify-content:stretch}.material-master-form-actions button{width:100%}.workflow-step{border-bottom:1px solid var(--line-soft);border-right:0}.workflow-step:last-child{border-bottom:0}.topbar,.panel-header{align-items:flex-start;gap:var(--space-2);display:grid}.analysis-footer{bottom:8px;left:8px;right:8px}}.admin-shell{gap:var(--space-4);max-width:1280px;margin:0 auto;padding:32px 24px 48px;display:grid}.admin-error{background:var(--danger-weak);color:var(--danger);border:1px solid #ffd1cc;border-radius:6px;padding:10px 12px}.admin-kpi-row{gap:var(--space-4);display:flex}.admin-table{background:var(--panel);border:1px solid var(--line);border-collapse:collapse;border-radius:var(--radius);width:100%;overflow:hidden}.admin-table th,.admin-table td{border-bottom:1px solid var(--line-soft);vertical-align:top;padding:10px 12px;font-size:13px}.admin-table th{background:var(--panel-subtle);color:var(--muted-strong);font-size:12px}
