:root{font-family:Segoe UI,system-ui,sans-serif;color:#1a1a1a;background:#e8ecf1}body{margin:0}code{font-size:.9em;background:#f1f5f9;padding:2px 6px;border-radius:4px}.layout{display:grid;grid-template-columns:320px 1fr;min-height:100vh}.panel{background:#fff;border-right:1px solid #e2e8f0;padding:16px}.canvas-wrap{position:relative;background:#0f172a}.app-root{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;gap:16px;padding:12px 20px;background:#0f172a;color:#f8fafc;border-bottom:1px solid #1e293b}.app-brand{font-weight:700;font-size:1.15rem;color:#fff;text-decoration:none}.app-header-nav{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}.app-header-nav a{color:#94a3b8;text-decoration:none;white-space:nowrap}.app-header-nav a:hover{color:#fff}.btn-ghost{background:transparent;color:#e2e8f0;border:1px solid #334155}.btn-ghost:hover{background:#1e293b}.projects-page{max-width:960px;margin:0 auto;padding:24px;display:flex;flex-direction:column;gap:20px}.normative-page-wide{max-width:min(1920px,96vw)}.projects-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.projects-toolbar h2{margin:0}.btn-link{color:#2563eb;text-decoration:none;font-size:.95rem}.btn-link:hover{text-decoration:underline}.form-wide{max-width:920px}.form-wide .form-grid .span-2{grid-column:1 / -1}.about-page{margin:20px;max-width:960px}.error-text{color:#b91c1c;margin:8px 0}.site-page{padding:20px;display:flex;flex-direction:column;gap:20px;max-width:1100px}.site-map-wrap{background:#f8fafc;border-radius:8px;padding:12px;border:1px solid #e2e8f0}.site-map-svg{width:100%;height:auto;max-height:440px;display:block}.points-table-wrap{overflow-x:auto;margin:16px 0}.points-edit-table input{width:100%;min-width:72px;margin:0;box-sizing:border-box}.points-edit-table button{white-space:nowrap}.inline-field{display:flex;flex-direction:column;gap:6px;max-width:440px;margin-bottom:8px}.inline-field select{margin:0}.site-subh{margin:20px 0 8px;font-size:1.05rem}.feature-add-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}.feature-kind-select{min-width:220px}.path-list{list-style:none;padding:0;margin:8px 0 16px;font-size:.9rem}.path-list li{display:flex;align-items:center;gap:10px;padding:4px 0;border-bottom:1px solid #f1f5f9}button.linkish{background:none;border:none;color:#2563eb;cursor:pointer;text-decoration:underline;padding:0;font:inherit}.volume-catalog{display:flex;flex-direction:column;gap:8px;margin:12px 0;max-height:420px;overflow-y:auto}.volume-catalog-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#fafafa}.volume-catalog-row.saved{border-color:#86efac;background:#f0fdf4}.volume-catalog-row button{margin-left:auto}.volume-open{font-weight:500;cursor:pointer;color:#1d4ed8;text-decoration:underline;background:none;border:none;font:inherit;padding:0}.design-analysis{margin-top:16px;padding:16px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.design-analysis-md{white-space:pre-wrap;font-size:.92rem;line-height:1.45;margin-top:8px}.design-structures{margin:16px 20px 0;max-width:1100px}.design-page .design-structures .points-edit-table input{min-width:56px}.design-building-card h3.design-subh{margin-top:1.25rem;margin-bottom:.35rem}.design-building-split{display:grid;grid-template-columns:minmax(200px,260px) 1fr;gap:16px;align-items:start;margin-top:8px}.calc-readiness-summary{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.calc-readiness-chip{padding:8px 12px;border-radius:999px;border:1px solid #cbd5e1;background:#f8fafc;font-size:.92rem}.calc-readiness-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:16px}.calc-readiness-card{border:1px solid #e2e8f0;border-radius:12px;padding:16px;background:#fff}.calc-readiness-card.partial{background:linear-gradient(180deg,#fff,#f8fafc)}.calc-readiness-card.planned{background:linear-gradient(180deg,#fffbeb,#fff)}.calc-readiness-card.ready{background:linear-gradient(180deg,#ecfdf5,#fff)}.calc-readiness-head{display:flex;justify-content:space-between;gap:10px;align-items:start;margin-bottom:8px}.calc-readiness-head h3{margin:0;font-size:1rem}.calc-readiness-badge{white-space:nowrap;border-radius:999px;padding:5px 10px;font-size:.82rem;border:1px solid #cbd5e1}.calc-readiness-badge.partial{background:#eff6ff;color:#1d4ed8;border-color:#93c5fd}.calc-readiness-badge.planned{background:#fff7ed;color:#9a3412;border-color:#fdba74}.calc-readiness-badge.ready{background:#ecfdf5;color:#166534;border-color:#86efac}.calc-gap-list{margin:10px 0 0;padding-left:18px}.calc-gap-list li{margin:6px 0}.calc-priority-block{margin-top:18px;padding:16px;border-radius:12px;border:1px solid #dbeafe;background:#f8fbff}.calc-priority-block h3{margin-top:0}.calc-priority-list{margin:12px 0 0;padding-left:22px}.calc-priority-list li{margin:8px 0}@media (max-width: 900px){.design-building-split{grid-template-columns:1fr}}.design-building-list{list-style:none;margin:0;padding:0;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;max-height:360px;overflow-y:auto}.design-building-list li button{display:block;width:100%;text-align:left;padding:10px 12px;border:none;border-bottom:1px solid #e2e8f0;background:#fff;cursor:pointer;font:inherit;color:#0f172a}.design-building-list li button:hover{background:#f8fafc}.design-building-list li button.active{background:#eff6ff;box-shadow:inset 3px 0 #2563eb}.design-building-list li:last-child button{border-bottom:none}.design-building-detail{border:1px solid #e2e8f0;border-radius:8px;padding:12px 16px;min-height:140px;background:#fafbfc}.design-building-detail h4{margin:0 0 8px;font-size:1rem}.design-detail-actions{flex-wrap:wrap;gap:8px}.design-building-list .block{display:block;margin-top:4px}.card{background:#fff;border-radius:10px;padding:20px 24px;box-shadow:0 1px 3px #0f172a14;border:1px solid #e2e8f0}.muted{color:#64748b;font-size:.95rem}.project-list{list-style:none;padding:0;margin:16px 0 0}.project-list li{border-bottom:1px solid #f1f5f9}.project-list-link{display:flex;flex-direction:column;gap:4px;padding:12px 4px;text-decoration:none;color:inherit;border-radius:6px}.project-list-link:hover{background:#f8fafc}.project-list-name{font-weight:600;color:#0f172a}.project-list-item-pending{background:#fee2e28c;border-radius:8px;margin-bottom:8px;border:1px solid #fecaca}.project-list-pending-inner{padding:12px 14px;display:flex;flex-direction:column;gap:8px}.project-list-pending-msg{margin:0;font-size:.9rem;color:#991b1b}.project-list-pending-actions{display:flex;flex-wrap:wrap;gap:8px}.security-page,.admin-panel-page{max-width:min(1480px,96vw)}.admin-panel-hero h2{margin-bottom:6px}.admin-window-select{display:flex;flex-direction:column;gap:4px;font-size:.84rem;color:#64748b}.admin-panel-block{display:flex;flex-direction:column;gap:14px}.admin-panel-block-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px}.admin-stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.admin-perf-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.admin-perf-metric{padding:14px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;display:flex;flex-direction:column;gap:6px}.admin-perf-metric strong{font-size:1.25rem;color:#0f172a}.admin-perf-meter{height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden}.admin-perf-meter>span{display:block;height:100%;border-radius:999px;transition:width .25s ease}.admin-perf-meter>span.ok{background:linear-gradient(90deg,#34d399,#10b981)}.admin-perf-meter>span.warning{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.admin-perf-meter>span.critical{background:linear-gradient(90deg,#f87171,#ef4444)}.admin-perf-history-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.admin-perf-sparkline{padding:12px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.admin-perf-sparkline-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.admin-perf-bars-viewport{position:relative;width:100%;height:72px;overflow:hidden;border-radius:6px;background:linear-gradient(180deg,#f1f5f9,#fff)}.admin-perf-bars-track{position:absolute;top:0;right:20%;display:flex;align-items:flex-end;gap:2px;height:100%;min-width:0}.admin-perf-bar{flex:0 0 5px;width:5px;min-height:4px;border-radius:2px 2px 0 0;background:#93c5fd;transition:height .2s ease}.admin-perf-bar.is-current{box-shadow:0 0 0 1px #0f172a1f}.admin-perf-bar.warning{background:#fcd34d}.admin-perf-bar.critical{background:#fca5a5}.admin-recommendations{display:flex;flex-direction:column;gap:10px}.admin-recommendations h4{margin:0}.admin-recommendation{padding:12px 14px;border-radius:10px;border:1px solid #e2e8f0;background:#fff}.admin-recommendation.warning{border-color:#fcd34d;background:linear-gradient(180deg,#fff9ed,#fff)}.admin-recommendation.danger{border-color:#fecaca;background:linear-gradient(180deg,#fff5f5,#fff)}.admin-recommendation-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px}@media (max-width: 900px){.admin-stats-grid{grid-template-columns:1fr}}.security-hero{background:linear-gradient(135deg,#fffdfa,#fff 42%,#f3f9ff);border-color:#dbe4ee}.security-toolbar-actions{display:flex;flex-wrap:wrap;gap:8px}.security-filters-grid{align-items:end}.security-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.security-metric-card{display:flex;flex-direction:column;gap:8px;min-height:112px}.security-metric-card strong{font-size:1.7rem;color:#0f172a}.security-metric-card.warning{background:linear-gradient(180deg,#fff9ed,#fff);border-color:#fcd34d}.security-metric-card.danger{background:linear-gradient(180deg,#fff5f5,#fff);border-color:#fecaca}.security-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.security-bucket-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.security-bucket-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.security-events-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}.security-event-row{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:12px;align-items:start;padding:12px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.security-event-main{min-width:0}.security-event-header{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.security-event-detail{margin:8px 0 0;color:#334155;line-height:1.45}.security-event-side{display:flex;justify-content:flex-end;color:#64748b;font-size:.84rem;text-align:right}.security-status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:88px;padding:4px 10px;border-radius:999px;font-size:.8rem;font-weight:700}.security-status-badge.success{background:#dcfce7;color:#166534}.security-status-badge.warning{background:#fef3c7;color:#92400e}.security-status-badge.danger{background:#fee2e2;color:#991b1b}.security-status-badge.neutral{background:#e2e8f0;color:#334155}.btn.danger{background:#b91c1c;color:#fff;border:none}.btn.danger:hover{background:#991b1b}.btn.danger-outline{background:transparent;color:#b91c1c;border:1px solid #fecaca}.about-danger-zone{margin-top:28px;padding-top:20px;border-top:1px solid #e2e8f0}.about-executive-panel{margin-top:24px;padding:18px;border:1px solid #dbe4ee;border-radius:12px;background:linear-gradient(180deg,#f8fbff,#fff)}.about-executive-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:14px}.about-metric-card{display:flex;flex-direction:column;gap:6px;min-height:108px;padding:14px 16px;border:1px solid #dbe4ee;border-radius:10px;background:#fff}.about-metric-card strong{font-size:1.2rem;color:#0f172a}.about-metric-card.ok{border-color:#86efac;background:#f0fdf4}.about-metric-card.blocked{border-color:#fecaca;background:#fef2f2}a.about-metric-card.about-metric-card--link{text-decoration:none;color:inherit;cursor:pointer;transition:box-shadow .15s ease,transform .12s ease}a.about-metric-card.about-metric-card--link:hover{box-shadow:0 2px 10px #0f172a14}a.about-metric-card.about-metric-card--link:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.about-blocking-finding-link{display:block;text-decoration:none;color:inherit;border-radius:6px;margin:0 -4px;padding:4px;transition:background .12s ease}.about-blocking-finding-link:hover{background:#2563eb0f}.about-blocking-finding-link:focus-visible{outline:2px solid #2563eb;outline-offset:0}.scroll-anchor-target{scroll-margin-top:5.5rem}.about-executive-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:16px}.about-executive-block{padding:14px 16px;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.about-executive-block h4{margin:0 0 10px}.about-executive-block ul{margin:0;padding-left:18px}.about-executive-block li+li{margin-top:8px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal-dialog{background:#fff;border-radius:10px;padding:20px 24px;max-width:440px;width:min(440px,100%);max-height:calc(100vh - 32px);overflow:auto;box-shadow:0 10px 40px #00000026}.modal-dialog h4{margin:0 0 12px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 20px;margin-top:12px}.form-grid .span-2{grid-column:1 / -1}.create-project-form.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}@media (max-width: 720px){.create-project-form.form-grid{grid-template-columns:1fr}}.create-project-form label{display:flex;flex-direction:column;gap:6px;min-width:0}.create-project-form label input,.create-project-form label select,.create-project-form label textarea{width:100%;max-width:100%;box-sizing:border-box}.design-page .form-grid .span-2{grid-column:1 / -1}.form-actions{grid-column:1 / -1;margin-top:8px}.project-layout{flex:1;display:grid;grid-template-columns:260px 1fr;min-height:0}.project-rail{background:#fff;border-right:1px solid #e2e8f0;padding:20px 16px}.project-rail-title h1{font-size:1.1rem;margin:8px 0 4px;line-height:1.3}.back-link{font-size:.85rem;color:#64748b;text-decoration:none}.back-link:hover{color:#2563eb}.project-rail-nav{display:flex;flex-direction:column;gap:4px;margin-top:20px}.project-rail-guide{margin-top:18px;padding:14px;border-radius:12px;border:1px solid #dbeafe;background:linear-gradient(180deg,#eff6ff,#f8fbff)}.project-rail-guide-title{margin:0 0 10px;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#1d4ed8;font-weight:700}.project-rail-guide-list{display:flex;flex-direction:column;gap:8px}.project-guide-link{display:flex;flex-direction:column;gap:3px;text-decoration:none;padding:10px 12px;border-radius:10px;color:#0f172a;background:#ffffffb8;border:1px solid transparent}.project-guide-link span{font-size:.84rem;color:#475569}.project-guide-link:hover{border-color:#bfdbfe}.project-guide-link.active{border-color:#60a5fa;box-shadow:inset 0 0 0 1px #2563eb1f}.rail-link{display:block;padding:10px 12px;border-radius:8px;color:#334155;text-decoration:none;font-size:.95rem}.rail-link:hover{background:#f1f5f9}.rail-link.active{background:#eff6ff;color:#1d4ed8;font-weight:600}.project-main{min-height:calc(100vh - 52px);overflow:auto;background:#e8ecf1}.page-message,.page-pad{padding:24px}.page-message{max-width:560px;margin:40px auto}.page-loader{min-height:40vh;display:flex;align-items:center;justify-content:center;text-align:center}.async-error-boundary{display:flex;min-height:100%}.async-error-boundary-page{min-height:40vh;align-items:center;justify-content:center;padding:24px}.async-error-boundary-panel,.async-error-boundary-inline{flex:1;align-items:stretch}.async-error-boundary-card{width:100%;padding:18px 20px;border:1px solid #f3d3b0;border-radius:12px;background:linear-gradient(180deg,#fffaf2,#fff);box-sizing:border-box}.async-error-boundary-card h3{margin:0 0 10px;color:#7c2d12;font-size:1rem}.async-error-boundary-actions{margin-top:12px;display:flex;gap:8px}.error-text{color:#b91c1c}.design-page{display:flex;flex-direction:column;gap:0;min-height:100%}.izhs-construct-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin-top:8px}.izhs-construct-form-compact{gap:10px 12px}.izhs-construct-fieldset{grid-column:1 / -1;border:1px solid #e2e8f0;border-radius:8px;padding:12px 14px 6px;margin:0}.izhs-construct-fieldset legend{font-weight:600;font-size:.9rem;padding:0 6px}.izhs-construct-form label{display:flex;flex-direction:column;gap:4px;font-size:.85rem}.izhs-construct-checkbox{flex-direction:row!important;align-items:center;gap:8px!important}.design-izhs-construct-block{margin-top:8px;padding-top:8px;border-top:1px solid #e2e8f0}.project-editor-izhs-construct{padding:0 12px 12px}.izhs-construct-editor-panel{margin-bottom:8px}.izhs-construct-editor-panel h3{margin:0 0 6px;font-size:1rem}.izhs-norm-warnings{margin:.35rem 0 .5rem;padding:.5rem .65rem;border-radius:6px;background:#fff8e6;border:1px solid #e6c200;font-size:.9rem}.izhs-norm-warnings ul{margin:.25rem 0 0 1.1rem;padding:0}.izhs-norm-warnings-blocking{background:#fdecea;border-color:#c62828}.izhs-norm-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1rem}.izhs-norm-modal{max-width:480px;width:100%;padding:1rem 1.1rem}.izhs-norm-modal-list{margin:.5rem 0 1rem 1.2rem}.izhs-norm-modal-actions{display:flex;gap:.5rem;justify-content:flex-end}.btn-danger{background:#c62828;color:#fff;border-color:#b71c1c}.izhs-construct-editor-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.design-panel{margin:20px 20px 0}.design-extras{margin:0 20px;display:flex;flex-direction:column;gap:16px}.design-extras .foundation-hint{margin:0}.design-recommendations{padding:16px;border:1px solid #cbd5e1;background:linear-gradient(180deg,#fff,#f8fafc)}.design-recommendations h4{margin:0 0 8px;font-size:.95rem;color:#0f172a}.design-rec-section{margin-top:14px;padding-top:12px;border-top:1px solid #e2e8f0}.design-rec-section:first-of-type{margin-top:8px;padding-top:0;border-top:none}.design-rec-list{margin:8px 0 0;padding-left:1.15rem;line-height:1.45;font-size:.92rem}.design-rec-list.compact li{margin-bottom:4px}.design-rec-actions{margin:8px 0 0}.design-rec-link{display:inline-block;color:#1d4ed8;font-weight:500;text-decoration:none;border-bottom:1px solid #93c5fd}.design-rec-link:hover{color:#1e40af;border-bottom-color:#1d4ed8}.design-rec-disclaimer{margin-top:14px;padding-top:10px;border-top:1px dashed #cbd5e1}.design-ground-level{display:flex;align-items:center;gap:12px;margin:12px 0 10px;max-width:420px}.design-ground-line{flex:1;min-width:72px;height:0;border:none;border-top:2px dotted #64748b}.design-ground-label{font-size:.88rem;color:#475569;white-space:nowrap;font-weight:500}.input-readonly{background:#f1f5f9!important;color:#475569;cursor:not-allowed}.foundation-hint{padding:12px 16px}.foundation-hint h4{margin:0 0 8px;font-size:1rem}.design-canvas{flex:1;display:flex;flex-direction:column;background:#0f172a;margin:16px 20px 20px;border-radius:10px;overflow:hidden;border:1px solid #1e293b;min-height:420px}.design-canvas-loader,.unified-editor-loader{min-height:320px;display:flex;align-items:center;justify-content:center;text-align:center}.design-canvas-loader{flex:1;background:radial-gradient(circle at top,rgba(59,130,246,.16),transparent 42%),#0f172a}.design-canvas-collapsed{padding:24px}.design-canvas-launch,.drawing-3d-launch{display:flex;flex-direction:column;gap:12px;max-width:520px}.rd-design-page{display:flex;flex-direction:column;min-height:100%;gap:0}.rd-design-header{margin:16px 16px 0;display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px 20px}.rd-design-header-text h2{margin:0 0 6px}.rd-design-header-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.rd-design-body{display:flex;flex:1;min-height:0;gap:0}.rd-design-panel{width:min(320px,36vw);margin:12px 0 12px 16px;padding:14px 16px;flex-shrink:0;overflow-y:auto;max-height:calc(100vh - 120px)}.rd-design-swatches{display:flex;flex-direction:column;gap:10px;margin-top:12px}.rd-design-swatch{display:grid;grid-template-columns:1fr auto 88px;gap:8px;align-items:center;font-size:.88rem}.rd-design-swatch-label{grid-column:1 / -1}.rd-design-hex{font-family:ui-monospace,monospace;font-size:.82rem;padding:4px 6px}.rd-design-tip{margin-top:14px;line-height:1.4}.rd-design-roof-presets{margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.rd-design-roof-presets-title{margin:0 0 6px;font-size:.95rem}.rd-roof-preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:8px;margin-top:8px}.rd-roof-preset-chip{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;cursor:pointer;text-align:left;font-size:.82rem;line-height:1.25}.rd-roof-preset-chip:hover{border-color:#94a3b8;background:#f8fafc}.rd-roof-preset-swatch{width:28px;height:28px;border-radius:6px;border:1px solid rgba(15,23,42,.15);flex-shrink:0}.rd-roof-preset-label{color:#334155}.rd-roof-preset-flat{margin-top:10px;width:100%}.rd-design-canvas{flex:1;min-height:420px;margin:12px 16px 12px 8px;border:1px solid #cbd5e1;border-radius:8px;overflow:hidden;background:linear-gradient(180deg,#e2e8f0,#f1f5f9 48%,#f8fafc)}.rd-design-canvas>div{height:100%!important;min-height:480px}.rd-design-canvas canvas{display:block}.design-canvas-launch{align-items:center;text-align:center}.plan-embed{padding:8px 12px 12px;background:#fff}.doc-preview-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px}@keyframes doc-preview-spinner{to{transform:rotate(360deg)}}.doc-preview-refresh-inner{display:inline-flex;align-items:center;gap:.4rem}.spinner-inline{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:#fffffff2;border-radius:50%;animation:doc-preview-spinner .65s linear infinite;vertical-align:middle;flex-shrink:0}.btn .spinner-inline,button.primary .spinner-inline{border-color:#ffffff59;border-top-color:#fff}.docs-page{padding:20px;display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,1.2fr);gap:20px;align-items:start}.docs-page--main-tab,.docs-page--preview-tab{grid-template-columns:1fr;max-width:none}.docs-page--preview-tab{align-items:stretch}.docs-page--preview-tab .pdf-preview-card{min-height:min(72vh,900px)}@media (max-width: 1100px){.docs-page,.doc-signoff-row{grid-template-columns:1fr}}.data-table{width:100%;border-collapse:collapse;font-size:.9rem;margin:12px 0}.data-table th{text-align:left;color:#64748b;font-weight:500;width:160px;padding:6px 8px;vertical-align:top;border-bottom:1px solid #f1f5f9}.data-table td{padding:6px 8px;border-bottom:1px solid #f1f5f9}.data-table-like{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr);gap:6px 20px;max-width:760px;margin:8px auto 14px}.data-table-like p{margin:0;display:contents}.data-table-like strong{text-align:left;color:#334155}.data-table-like span{text-align:right;color:#0f172a}.volume-list ul{margin:4px 0 12px 16px}.doc-actions{margin-top:16px}.doc-signoff-panel{margin-bottom:20px;padding:16px;border:1px solid #dbe4ee;border-radius:10px;background:linear-gradient(180deg,#f8fbff,#fff)}.doc-library-panel{margin-bottom:20px;padding:16px;border:1px solid #dbe4ee;border-radius:10px;background:linear-gradient(180deg,#fffdf8,#fff)}.doc-library-summary{display:flex;flex-wrap:wrap;gap:12px 18px;margin-bottom:12px;font-size:.92rem;color:#334155}.doc-library-status{margin:0 0 8px;padding:10px 12px;border-radius:8px;border:1px solid #e2e8f0;font-weight:600}.doc-library-status.ok{border-color:#86efac;background:#f0fdf4;color:#166534}.doc-library-status.blocked{border-color:#fecaca;background:#fef2f2;color:#991b1b}.doc-library-problems{display:flex;flex-direction:column;gap:8px;margin-top:12px}.doc-library-problem-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.doc-content-gap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:12px}.doc-manifest-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin-top:12px}.doc-release-checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:12px}.doc-release-checklist-item{padding:12px;border-radius:10px;border:1px solid #dbe4ee;background:#fff}.doc-release-checklist-item.ready{border-color:#86efac;background:linear-gradient(180deg,#f0fdf4,#fff)}.doc-release-checklist-item.blocked{border-color:#fecaca;background:linear-gradient(180deg,#fff8f8,#fff)}.doc-release-checklist-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}.doc-release-checklist-item p{margin:0}.doc-approval-dashboard{margin-bottom:18px;padding:16px 18px;border-radius:12px;border:1px solid #94a3b8;background:linear-gradient(180deg,#f8fafc,#fff 55%);color:#0f172a}.doc-approval-dashboard-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.doc-approval-dashboard-title{display:inline-flex;align-items:center;gap:8px;margin:0;flex:1 1 auto;font-size:1.15rem;font-weight:650;color:#0f172a}.doc-section-hint{display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem;border-radius:50%;background:#94a3b8;color:#fff;font-size:.72rem;font-weight:700;line-height:1;cursor:help;flex-shrink:0}.doc-approval-dashboard-lead{margin:0;max-width:52rem}.doc-approval-dashboard .doc-library-badge{flex-shrink:0}.doc-approval-pipeline{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0 0 16px;padding:0}.doc-approval-pipeline-step{flex:1 1 200px;min-width:160px;padding:10px 12px;border-radius:8px;border:1px solid #cbd5e1;background:#fff}.doc-approval-pipeline-step--done{border-color:#22c55e;background:#f0fdf4}.doc-approval-pipeline-step--current{border-color:#eab308;background:#fffbeb;box-shadow:0 0 0 1px #eab30859}.doc-approval-pipeline-step--blocked{border-color:#ef4444;background:#fef2f2}.doc-approval-pipeline-step--upcoming{opacity:.78}.doc-approval-pipeline-label{display:block;font-weight:600;color:#0f172a}.doc-approval-pipeline-hint{display:block;margin-top:4px}.doc-approval-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.doc-approval-card{padding:12px 14px;border-radius:10px;border:1px solid #e2e8f0;background:#fff}.doc-approval-card--fullwidth{grid-column:1 / -1}.doc-approval-card-title{margin:0 0 8px;font-size:.95rem;font-weight:650;color:#0f172a;letter-spacing:.01em}.doc-approval-list{margin:0;padding-left:1.1rem;font-size:.9rem;color:#334155}.doc-approval-list li{margin-bottom:6px}.doc-approval-block-list{margin:0;padding-left:0;list-style:none}.doc-approval-block-list li{margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #e2e8f0}.doc-approval-block-list li:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.doc-approval-role-hint{margin:4px 0 0;font-size:.82rem;color:#4338ca}.doc-approval-normative-items{margin-top:10px;padding-top:8px;border-top:1px dashed #cbd5e1}.doc-approval-normative-items .doc-approval-list{margin-top:6px}.doc-approval-next-title{margin:0 0 6px;font-weight:650;color:#854d0e}.doc-approval-next-body{margin:0;font-size:.95rem;line-height:1.45;color:#334155}.doc-release-approval-panel{margin-top:14px;padding:14px;border-radius:10px;border:1px solid #c7d2fe;background:#f8fafc}.doc-release-approval-title{margin:0 0 8px;font-size:1rem}.doc-release-approval-actions{margin-top:10px;display:flex;flex-direction:column;gap:10px}.doc-release-approval-actions input{width:100%;max-width:32rem}.doc-release-decision-center{margin-top:14px;padding:16px;border-radius:10px;border:1px solid #94a3b8;background:linear-gradient(180deg,#f1f5f9,#fff 55%)}.doc-release-decision-title{margin:0 0 6px;font-size:1.05rem}.doc-release-decision-lead{margin:0 0 12px;max-width:52rem}.doc-release-decision-badge-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}.doc-release-decision-dl{margin:0;display:grid;grid-template-columns:minmax(160px,220px) 1fr;gap:8px 16px;font-size:.95rem}.doc-release-decision-dl dt{margin:0;font-weight:600;color:#334155}.doc-release-decision-dl dd{margin:0}.doc-release-decision-sublist{margin:6px 0 0 1.1rem;padding:0}.doc-release-decision-primary{margin:4px 0 0;font-weight:500}.doc-release-decision-blockers{margin-top:12px;padding-top:10px;border-top:1px dashed #cbd5e1}.doc-release-decision-recommendations{margin-top:14px;padding-top:12px;border-top:1px solid #e2e8f0}.doc-release-decision-rec-list{margin:8px 0 0 1.1rem;padding:0;max-width:52rem}.doc-release-decision-rec-list li{margin-bottom:10px}.doc-release-rec-targets{font-weight:600;color:#1e3a8a}@media (max-width: 720px){.doc-release-decision-dl{grid-template-columns:1fr}}.doc-content-gap-card{padding:14px;border:1px solid #dbe4ee;border-radius:10px;background:#fff}.doc-content-gap-card.ready{border-color:#86efac;background:linear-gradient(180deg,#f0fdf4,#fff)}.doc-content-gap-card.blocked{border-color:#fecaca;background:linear-gradient(180deg,#fff8f8,#fff)}.doc-content-gap-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.doc-content-gap-blocks{margin-top:10px}.doc-content-gap-list{margin:6px 0 0;padding-left:18px}.doc-library-badge{display:inline-flex;align-items:center;justify-content:center;min-width:120px;padding:4px 10px;border-radius:999px;font-size:.82rem;font-weight:600;background:#e2e8f0;color:#334155}.doc-library-badge.status-verified,.doc-library-badge.status-ready{background:#dcfce7;color:#166534}.doc-library-badge.status-requires_completion{background:#fee2e2;color:#991b1b}.doc-library-badge.status-pending_confirmation{background:#fef3c7;color:#92400e}.doc-library-badge.status-unbound,.doc-library-badge.status-unknown_reference{background:#fee2e2;color:#991b1b}.doc-signoff-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:start;gap:12px;margin-bottom:12px}.doc-signoff-header h3{margin:0 0 6px}.doc-signoff-summary{display:flex;flex-wrap:wrap;gap:12px 18px;margin-bottom:12px;font-size:.92rem;color:#334155}.doc-signoff-list{display:flex;flex-direction:column;gap:10px}.doc-signoff-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:14px;align-items:center;padding:12px 14px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.doc-signoff-row.approved{border-color:#86efac;background:#f0fdf4}.doc-signoff-main{display:flex;flex-direction:column;gap:4px}.doc-signoff-actions{display:flex;flex-direction:column;gap:8px}.doc-signoff-actions input{margin:0}.doc-signoff-buttons{display:flex;flex-wrap:wrap;gap:8px}.doc-pd-volumes-unified{display:flex;flex-direction:column;gap:14px;margin-top:14px}.doc-volume-unified-block{border:1px solid #dbe4ee;border-radius:10px;padding:10px 12px;background:#fff}.doc-volume-merged{display:flex;flex-direction:column;gap:10px}.doc-volume-merged-primary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 14px}.doc-volume-merged-title{flex:1 1 12rem;min-width:0}.doc-volume-merged-file-actions{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px}.doc-volume-merged-signoffs{padding:8px 0 2px;border-top:1px solid #eef2f7}.doc-volume-merged-signoffs .doc-signoff-row{margin:0;padding:8px 0;border-bottom:1px solid #f1f5f9}.doc-volume-merged-signoffs .doc-signoff-row:last-child{border-bottom:none}.doc-volume-unified-block .volume-catalog-row{margin:0}.doc-volume-unified-orphans{margin-top:12px;background:#fafbfc}.doc-signoff-nested{margin-top:12px;padding-top:12px;border-top:1px dashed #e2e8f0}.doc-signoff-nested .doc-signoff-list{gap:8px}.doc-unmapped-hint{font-weight:600;margin-bottom:10px}.doc-content-gap-toggle{margin-top:10px;background:none;border:none;color:#2563eb;cursor:pointer;text-decoration:underline;font:inherit;padding:0}.doc-content-gap-toggle:hover{color:#1d4ed8}.doc-content-gap-preview-list{margin:8px 0 0}.doc-content-gap-expanded{margin-top:12px;padding-top:4px;border-top:1px solid #f1f5f9}.pdf-preview-card .pdf-iframe{width:100%;min-height:72vh;border:1px solid #cbd5e1;border-radius:8px;background:#52525b}.calc-page{padding:20px;display:flex;flex-direction:column;gap:20px;max-width:1100px}.protocol-md{white-space:pre-wrap;background:#0f172a;color:#e2e8f0;padding:16px;border-radius:8px;max-height:480px;overflow:auto;font-size:.88rem;line-height:1.45}.ai-page{margin:20px;max-width:1120px;display:flex;flex-direction:column;gap:16px}.ai-form{display:flex;flex-direction:column;gap:12px;margin-top:12px}.ai-textarea{width:100%;padding:12px;font-family:inherit;border-radius:8px;border:1px solid #cbd5e1;box-sizing:border-box}.ai-hero{display:grid;grid-template-columns:1.5fr minmax(280px,360px);gap:18px;align-items:start}.ai-hero-main h2,.ai-section-head h3{margin:0}.ai-eyebrow{margin:0 0 8px;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:700;color:#0f766e}.ai-hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.ai-badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:.85rem;border:1px solid #e2e8f0}.ai-badge.live{background:#ecfdf5;border-color:#86efac;color:#166534}.ai-badge.mock{background:#fff7ed;border-color:#fdba74;color:#9a3412}.ai-runtime-card{border-radius:14px;padding:16px;border:1px solid #e2e8f0;background:#f8fafc}.ai-runtime-card.live{background:linear-gradient(180deg,#ecfdf5,#f7fee7);border-color:#86efac}.ai-runtime-card.mock{background:linear-gradient(180deg,#fff7ed,#fffbeb);border-color:#fdba74}.ai-runtime-title{margin:0 0 8px;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.ai-smoke-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px}.ai-workflow-board .ai-workflow-list{display:flex;flex-direction:column;gap:12px;margin-top:8px}.ai-workflow-step{border-radius:10px;border:1px solid #e2e8f0;padding:12px 14px;background:#fff}.ai-workflow-step-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px 14px}.ai-workflow-step-icon{flex:0 0 auto;font-size:1.25rem;line-height:1.2;width:1.5rem;text-align:center}.ai-workflow-step-titles{flex:1 1 200px;min-width:0}.ai-workflow-step-titles h4{margin:0 0 4px;font-size:1rem}.ai-workflow-step--pending .ai-workflow-step-icon{color:#64748b}.ai-workflow-step--progress .ai-workflow-step-icon{color:#2563eb}.ai-workflow-step--done .ai-workflow-step-icon{color:#16a34a}.ai-workflow-step--blocked .ai-workflow-step-icon{color:#dc2626}.ai-workflow-step--skipped .ai-workflow-step-icon{color:#94a3b8}.ai-workflow-calc-hint,.ai-workflow-detail{margin:8px 0 0 2.25rem}.ai-steps,.ai-section-card{display:flex;flex-direction:column;gap:14px}.ai-section-head{display:flex;justify-content:space-between;gap:16px;align-items:start;flex-wrap:wrap}.ai-step-grid,.ai-capability-grid{display:grid;gap:12px}.ai-step-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.ai-capability-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.ai-step-card,.ai-capability-card{border-radius:12px;border:1px solid #e2e8f0;background:#f8fafc;padding:14px}.ai-step-card p,.ai-capability-card h4,.ai-capability-card p{margin:0}.ai-capability-card h4{margin-bottom:8px}.ai-step-index{display:inline-flex;margin-bottom:10px;font-size:.78rem;font-weight:700;color:#0f766e;text-transform:uppercase;letter-spacing:.08em}.ai-preset-list{display:flex;flex-wrap:wrap;gap:8px}.btn-secondary{background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8}.btn-secondary:hover{background:#dbeafe}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:.95rem}.ai-output{margin-top:16px;max-height:360px;overflow:auto}.ai-doc-status{margin:10px 0 14px}.ai-doc-split{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}.ai-doc-col{min-height:620px}.ai-doc-preview{width:100%;min-height:560px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.ai-doc-image{width:100%;max-height:560px;object-fit:contain;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.ai-doc-editor{min-height:500px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}@media (max-width: 1200px){.ai-hero,.ai-doc-split{grid-template-columns:1fr}}button{cursor:pointer;padding:8px 12px;border-radius:6px;border:1px solid #cbd5e1;background:#fff}button.primary{background:#2563eb;color:#fff;border-color:#1d4ed8}button:disabled{opacity:.6;cursor:not-allowed}input,select,textarea{font:inherit}input,select{width:100%;padding:8px;margin:4px 0 12px;box-sizing:border-box}label{font-size:.9rem;color:#475569}pre{background:#0f172a;color:#e2e8f0;padding:8px;border-radius:6px;max-height:200px;overflow:auto;font-size:12px}.scheme-editor-page{display:flex;flex-direction:column;gap:16px;padding:20px;min-height:100%;box-sizing:border-box}.scheme-editor-toolbar h2{margin:0 0 8px;font-size:1.25rem}.scheme-editor-layout{display:grid;grid-template-columns:minmax(200px,240px) minmax(0,1fr) minmax(240px,300px);gap:16px;align-items:start}@media (max-width: 1100px){.scheme-editor-layout{grid-template-columns:1fr}}.scheme-object-list{list-style:none;margin:0;padding:0}.scheme-object-list li{margin-bottom:6px}.scheme-object-list li button{width:100%;text-align:left;padding:8px 10px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;font:inherit}.scheme-object-list li button:hover{background:#f8fafc}.scheme-object-list li button.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.scheme-editor-canvas-wrap{overflow:auto}.scheme-editor-svg{display:block;border-radius:8px;border:1px solid #e2e8f0;max-width:100%;height:auto}.scheme-save-form{margin-top:16px;padding-top:12px;border-top:1px solid #e2e8f0}.scheme-hint{margin:10px 0 0}.scheme-editor-props .form-grid{margin-top:8px}.drawing-layout{grid-template-columns:minmax(220px,260px) minmax(0,1fr)}.drawing-projections{display:grid;grid-template-columns:1fr;gap:12px}.drawing-3d-launch{align-items:flex-start}.drawing-inline-loader{min-height:280px;display:flex;align-items:center;justify-content:center;text-align:center}.drawing-proj-card h3{margin:0 0 8px;font-size:.98rem}.drawing-svg{width:100%;height:auto;border:1px solid #e2e8f0;border-radius:8px;display:block}.electrical-connection-tree{border-left:3px solid #f59e0b}.electrical-tree-root,.electrical-tree-children,.electrical-tree-leaves{list-style:none;margin:0;padding-left:0}.electrical-tree-children{margin-top:8px;padding-left:18px;border-left:2px solid #e2e8f0}.electrical-tree-children>li{margin-bottom:12px}.electrical-tree-leaves{padding-left:16px;margin-top:6px;font-size:.88rem;color:#475569}.electrical-tree-leaves li{margin-bottom:4px;list-style:disc}.electrical-tree-node{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:6px}.electrical-tree-badge{display:inline-block;padding:1px 8px;border-radius:6px;font-size:.78rem;font-weight:600;background:#f1f5f9;color:#334155;border:1px solid #cbd5e1}.electrical-single-line-preview{overflow:auto;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:8px}.electrical-single-line-preview svg{display:block;min-width:100%}.project-editor{display:flex;flex-direction:column;min-height:calc(100vh - 52px);background:#e8ecf1}.project-editor-header h2{margin:0 0 8px}.project-editor-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:12px 20px;background:#fff;border-bottom:1px solid #e2e8f0}.project-editor-toolbar-tools,.project-editor-toolbar-view,.project-editor-toolbar-grid,.project-editor-toolbar-save{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.project-editor-toolbar-save{margin-left:auto}.project-editor-reliability-strip{padding-top:10px;padding-bottom:6px;font-size:.92rem}.project-editor-reliability-dirty{color:#b91c1c;font-weight:600}.project-editor-warning{margin:8px 16px 0;padding:10px 12px;border-radius:8px;border:1px solid #f59e0b;background:#fffbeb}.project-editor-warning-conflict{border-color:#dc2626;background:#fef2f2}.project-editor-warning-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.project-editor-inline{display:inline-flex;align-items:center;gap:6px;font-size:.9rem}.project-editor-inline input[type=number]{width:4.5rem}.project-editor-body{display:grid;grid-template-rows:minmax(360px,1fr);gap:12px;padding:12px 16px 20px;flex:1;min-height:0}.project-editor-body-split{grid-template-columns:1fr 1fr minmax(280px,320px)}.project-editor-body-single{grid-template-columns:1fr minmax(280px,320px)}.project-editor-pane{position:relative;min-height:360px;border-radius:10px;overflow:hidden;border:1px solid #1e293b}.project-editor-pane-toolbar{position:absolute;top:8px;right:8px;z-index:4;display:flex;gap:8px}.project-editor-pane-3d--fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;border-radius:0;min-height:100vh;border:none}.project-editor-pane-3d--fullscreen .project-editor-canvas3d,.project-editor-pane-3d--fullscreen .project-editor-pane-loader{min-height:100vh}.project-rail-number{margin:.15rem 0 .35rem;font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#475569}.project-editor-pane-full{grid-column:1;min-height:400px}.project-editor-pane-3d{min-height:400px}.project-editor-pane-2d{min-height:280px}.project-editor-canvas3d{width:100%;height:100%;min-height:360px}.project-editor-pane-loader,.cad-view-loader{min-height:320px;display:flex;align-items:center;justify-content:center;text-align:center}.project-editor-pane-loader{background:radial-gradient(circle at top,rgba(34,197,94,.1),transparent 40%),#0f172a}.project-editor-canvas3d canvas{display:block}.project-editor-canvas2d-wrap{display:flex;flex-direction:column;height:100%;min-height:280px;background:#0f172a}.project-editor-canvas2d{width:100%;flex:1;min-height:240px;display:block}.project-editor-canvas2d-hint{margin:0;padding:8px 10px;font-size:.82rem;background:#1e293b;color:#94a3b8}.project-editor-properties{background:#fff;border-radius:10px;padding:16px;border:1px solid #e2e8f0;overflow:auto;max-height:calc(100vh - 200px)}.project-editor-properties h3{margin:0 0 10px;font-size:1rem}.project-editor-form{display:flex;flex-direction:column;gap:10px}.project-editor-form label{display:flex;flex-direction:column;gap:4px;font-size:.9rem}.project-editor-form input[type=number],.project-editor-form input[type=text]{padding:8px 10px;border:1px solid #cbd5e1;border-radius:6px}.project-editor-quick-move{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid #dbeafe;border-radius:8px;background:#f8fbff}.project-editor-quick-move-buttons{display:flex;flex-wrap:wrap;gap:6px}.muted.small{font-size:.85rem}@media (max-width: 1200px){.project-editor-body-split,.project-editor-body-single{grid-template-columns:1fr;grid-template-rows:auto}.project-editor-pane-full{grid-column:1}.project-editor-properties{max-height:none}}.floorplan-page{max-width:1600px;margin:0 auto}.floorplan-header h2{margin:0 0 6px}.floorplan-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin:16px 0;padding:12px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.floorplan-inline{display:inline-flex;align-items:center;gap:8px;font-size:.9rem}.floorplan-inline select{width:auto;min-width:8rem;margin:0}.floorplan-tools{display:flex;flex-wrap:wrap;gap:8px}.floorplan-tools button.active{background:#2563eb;color:#fff;border-color:#1d4ed8}.floorplan-error{color:#b91c1c;font-size:.95rem}.floorplan-hint{margin:0 0 12px}.floorplan-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:16px;align-items:start}.floorplan-canvas-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:8px;min-height:580px}.floorplan-canvas-hint{margin:8px 4px 0}.floorplan-stage{border-radius:6px;overflow:hidden;border:1px solid #e2e8f0}.floorplan-sidebar{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:14px 16px;font-size:.92rem}.floorplan-sidebar h3{margin:16px 0 8px;font-size:1rem}.floorplan-sidebar h3:first-child{margin-top:0}.floorplan-props p{margin:6px 0}.floorplan-room-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:10px}.floorplan-room-row{display:block;width:100%;text-align:left;padding:8px 10px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;cursor:pointer}.floorplan-room-row:hover{border-color:#cbd5e1;background:#f8fafc}.floorplan-room-row.active{border-color:#c05621;background:#fff7ed}.floorplan-room-list select{margin:4px 0 0}.floorplan-recs{padding-left:1.1rem;margin:8px 0 0}.floorplan-recs li{margin-bottom:10px}.floorplan-delete{margin-top:10px;background:transparent;color:#b91c1c;border:1px solid #fecaca}.floorplan-delete:hover{background:#fef2f2}.draft-sheets-bar{margin-bottom:.75rem;padding:.5rem .75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.draft-sheets-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:.5rem}.draft-sheets-label{font-size:.8rem;margin-right:.35rem}.draft-sheet-tab{padding:.3rem .65rem;border:1px solid #cbd5e1;border-radius:6px;background:#fff;cursor:pointer;font-size:.85rem}.draft-sheet-tab.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8;font-weight:600}.draft-sheet-add{padding:.3rem .65rem;border:1px dashed #94a3b8;border-radius:6px;background:#fff;cursor:pointer;font-size:.85rem;color:#475569}.draft-sheet-remove{margin-left:.25rem;padding:.3rem .5rem;font-size:.8rem;border:1px solid #fecaca;border-radius:6px;background:#fff;color:#b91c1c;cursor:pointer}.draft-sheet-rename{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#64748b}.draft-sheet-rename input{min-width:12rem;padding:4px 8px;border:1px solid #cbd5e1;border-radius:4px}.unified-editor-page{max-width:100%}.unified-editor-banner{margin-bottom:.5rem}.unified-editor-tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.85rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.unified-tab{padding:.45rem .9rem;border:1px solid #cbd5e1;border-radius:6px;background:#f8fafc;cursor:pointer;font-size:.9rem;color:#334155}.unified-tab:hover{background:#f1f5f9}.unified-tab.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8;font-weight:600}.cad-editor-embedded .cad-draft-toolbar{margin-bottom:.5rem}.project-editor-inline-msgs{padding-top:8px;padding-bottom:8px}.cad-editor-page .cad-page-header{margin-bottom:1rem}.cad-project-banner{margin-bottom:.75rem;padding:.75rem 1rem;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 1px 2px #0f172a0f}.cad-page-kicker{margin:0 0 .35rem;font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#64748b}.cad-project-title{margin:0 0 .35rem;font-size:1.35rem;font-weight:700;color:#0f172a;line-height:1.25}.cad-project-meta{margin:0;font-size:.9rem;color:#475569}.cad-project-code{font-weight:600;color:#1e40af}.cad-inline-loading,.cad-inline-err{margin:0 0 .75rem}.cad-project-line{margin:.25rem 0 .75rem;font-size:.95rem}.cad-page-actions{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;margin-top:.75rem}.cad-num{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem}.cad-num input{width:4.5rem}.hidden-file-input{display:none}.cad-save-msg{margin:.5rem 0 0;color:#0f766e}.cad-editor-shell{border:1px solid #cbd5e1;border-radius:8px;background:#fff;overflow:hidden}.cad-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.5rem .75rem;border-bottom:1px solid #e2e8f0;background:#f8fafc}.cad-tool-group{display:flex;flex-wrap:wrap;gap:.25rem}.cad-tool{padding:.35rem .6rem;border:1px solid #cbd5e1;border-radius:4px;background:#fff;cursor:pointer;font-size:.85rem}.cad-tool.active{border-color:#2563eb;background:#eff6ff}.cad-snap-toggle{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem}.cad-view-toggle{display:inline-flex;border:1px solid #cbd5e1;border-radius:4px;overflow:hidden;margin-left:auto}.cad-view-toggle button{padding:.35rem .75rem;border:none;background:#fff;cursor:pointer}.cad-view-toggle button.active{background:#1e40af;color:#fff}.cad-editor-body{display:grid;grid-template-columns:220px 1fr 200px;min-height:620px}.cad-side{padding:.6rem .75rem;border-right:1px solid #e2e8f0;font-size:.88rem}.cad-side.cad-props{border-right:none;border-left:1px solid #e2e8f0}.cad-side h4{margin:0 0 .5rem;font-size:.95rem}.cad-layer-list{list-style:none;padding:0;margin:0 0 1rem}.cad-layer-list li{display:grid;grid-template-columns:1fr auto auto auto auto auto;gap:.25rem;align-items:center;margin-bottom:.35rem;padding:.25rem;border-radius:4px}.cad-layer-list li.current{background:#eff6ff}.cad-layer-rename{width:100%;min-width:0;font-size:.8rem;padding:2px 4px}.cad-small-btn{padding:2px 6px;font-size:.75rem;border:1px solid #cbd5e1;border-radius:4px;background:#fff;cursor:pointer}.cad-small-btn.danger{color:#b91c1c}.cad-snap-kinds{display:flex;flex-direction:column;gap:.25rem}.cad-snap-kinds label{display:flex;align-items:center;gap:.35rem}.cad-main{display:flex;flex-direction:column;min-width:0}.cad-statusbar{display:flex;flex-wrap:wrap;gap:1rem;padding:.4rem .6rem;border-top:1px solid #e2e8f0;font-size:.82rem;background:#f1f5f9}.cad-statusbar input[type=number]{width:4rem;margin-left:.35rem}.cad-canvas-3d{flex:1;min-height:560px;background:#94a3b8}.cad-view-loader{min-height:560px;background:linear-gradient(180deg,#eff6ff,#f8fafc)}@media (max-width: 1100px){.floorplan-body,.cad-editor-body{grid-template-columns:1fr}.cad-side.cad-props{border-left:none;border-top:1px solid #e2e8f0}.security-event-row{grid-template-columns:1fr}.security-event-side{justify-content:flex-start;text-align:left}}.project-editor-validation-summary{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin:.75rem 0 0;padding:.75rem .9rem;border:1px solid #facc15;border-radius:.85rem;background:linear-gradient(135deg,#fef08a47,#fffbebf2)}.project-editor-validation-summary strong{color:#92400e}.project-editor-validation-card{display:flex;flex-direction:column;gap:.6rem;margin:0 0 .9rem;padding:.9rem;border:1px solid #fde68a;border-radius:.9rem;background:linear-gradient(180deg,#fffef5,#fff7d6)}.project-editor-validation-card-header{display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:baseline}.project-editor-validation-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.project-editor-validation-item{display:flex;align-items:flex-start;gap:.55rem;font-size:.88rem;line-height:1.4}.project-editor-validation-badge{flex:0 0 auto;border:none;border-radius:999px;padding:.3rem .65rem;font-size:.75rem;font-weight:700;cursor:pointer}.project-editor-validation-badge-error{background:#fee2e2;color:#b91c1c}.project-editor-validation-badge-warning{background:#fef3c7;color:#92400e}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;z-index:1200;overflow:auto;padding:12px}.modal-card-wide{max-width:640px;width:100%;margin:24px auto}.title-sheet-constructor{margin-bottom:12px}.title-sheet-page-setup{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:12px}.title-sheet-page-setup select{display:block;width:100%;margin-top:4px}.title-sheet-add-hint{margin:0 0 10px}.title-sheet-style-toggles{display:flex;flex-wrap:wrap;gap:16px;margin:12px 0}.title-sheet-canvas{border:1px dashed #94a3b8;border-radius:8px;background:#fff;min-height:120px;padding:12px 16px;margin-bottom:12px;aspect-ratio:420 / 297;max-height:240px;overflow:auto;display:flex;flex-direction:column;gap:6px}.title-sheet-canvas-block{font-size:12px;color:#334155;padding:6px 8px;background:#f1f5f9;border-radius:4px;border:1px solid #e2e8f0}.title-sheet-block-list{list-style:none;margin:0;padding:0;max-height:45vh;overflow:auto}.title-sheet-block-list li{display:flex;align-items:flex-start;gap:8px;padding:8px;margin-bottom:8px;border:1px solid #e2e8f0;border-radius:8px;background:#fafafa}.title-sheet-drag-hint{cursor:grab;color:#94a3b8;-webkit-user-select:none;user-select:none;line-height:1.2}.title-sheet-row-main{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}.title-sheet-label{font-size:13px}.title-sheet-on-canvas{font-size:12px}.title-sheet-mm{display:flex;align-items:center;gap:8px;font-size:12px}.title-sheet-mm input{width:4.5rem}.title-sheet-row-actions{display:flex;flex-direction:column;gap:4px}.release-page{max-width:960px}.release-page-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.release-page-header h1{margin:0 0 .35rem}.release-status-banner{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border-radius:.85rem;margin-bottom:1.5rem;border:1px solid #cbd5e1;background:#f8fafc}.release-status-banner--ok{border-color:#86efac;background:linear-gradient(135deg,#ecfdf5,#f0fdf4)}.release-status-banner--bad{border-color:#fecaca;background:linear-gradient(135deg,#fef2f2,#fff7ed)}.release-status-banner-title{margin:0 0 .35rem;font-size:1.15rem}.release-zip-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.release-section{margin-bottom:1.5rem}.release-section-title{margin:0 0 .65rem;font-size:1.05rem}.release-blocker-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.release-blocker{padding:.75rem .85rem;border-radius:.65rem;border:1px solid #e2e8f0;background:#fff}.release-blocker--error{border-color:#fecaca;background:snow}.release-blocker--warning{border-color:#fde68a;background:#fffbeb}.release-blocker p{margin:0 0 .5rem}.release-blocker-actions{display:flex;flex-wrap:wrap;gap:.4rem}.release-ready-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.release-ready-item{padding:.55rem .7rem;border-radius:.5rem;border:1px solid #bbf7d0;background:#f0fdf4;font-size:.92rem}.release-ready-detail{color:#166534}.release-table-wrap{overflow-x:auto}.release-table{width:100%;border-collapse:collapse;font-size:.9rem}.release-table th,.release-table td{border:1px solid #e2e8f0;padding:.45rem .55rem;text-align:left;vertical-align:top}.release-table th{background:#f1f5f9}.release-table-actions{white-space:nowrap}.release-normative-modal{max-width:640px;margin:2rem auto}.release-normative-modal-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.release-normative-modal-head h2{margin:0;font-size:1.1rem}.release-normative-modal-list{list-style:none;margin:0;padding:0;max-height:min(70vh,520px);overflow:auto}.release-normative-modal-item{padding:.65rem 0;border-bottom:1px solid #e2e8f0}.release-normative-modal-item:last-child{border-bottom:none}.module-picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:16px}.module-picker-card{padding:18px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.module-picker-card-izhc{border-color:#bae6fd;background:linear-gradient(180deg,#f0f9ff,#fff)}.admin-users-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-users-table th,.admin-users-table td{border:1px solid #e2e8f0;padding:8px 10px;text-align:left;vertical-align:middle}.admin-users-table th{background:#f1f5f9}.admin-users-table select{width:auto;min-width:8rem;margin:0}.pre-export-gate-panel{margin:18px 0 22px;padding:16px 18px;border:1px solid #cbd5e1;border-radius:10px;background:#fff}.pre-export-gate-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.pre-export-gate-title{margin:0 0 6px;font-size:1.1rem;font-weight:650;color:#0f172a}.pre-export-gate-table-wrap{overflow-x:auto}.pre-export-gate-table{width:100%;border-collapse:collapse;font-size:.88rem}.pre-export-gate-table th,.pre-export-gate-table td{border:1px solid #e2e8f0;padding:8px 10px;text-align:left;vertical-align:top}.pre-export-gate-table th{background:#f1f5f9;font-weight:600}.pre-export-row--ok{background:#f8fffb}.pre-export-row--fail{background:#fff7f7}.pre-export-detail{margin:0 0 4px}.pre-export-role{max-width:14rem}.pre-export-gate-expand-btn{margin-top:6px;padding:2px 8px;font-size:.8rem}.pre-export-gate-mini-list{margin:8px 0 0;padding-left:1.1rem;font-size:.82rem}.pre-export-gate-mini-list li.fail{color:#b91c1c}.parametric-readiness-detail{margin-top:16px;padding-top:14px;border-top:1px dashed #cbd5e1}.parametric-readiness-detail-title{margin:0 0 10px;font-size:.95rem;font-weight:600}.parametric-readiness-dl{display:grid;grid-template-columns:minmax(140px,200px) 1fr;gap:6px 12px;margin:0 0 12px;font-size:.88rem}.parametric-readiness-dl dt{margin:0;color:#64748b}.parametric-readiness-dl dd{margin:0}.parametric-readiness-subtitle{margin:10px 0 6px;font-size:.85rem;font-weight:600}.parametric-readiness-check-list{list-style:none;margin:0;padding:0}.parametric-readiness-check-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;padding:6px 0;border-bottom:1px solid #f1f5f9}.parametric-readiness-check-list li.fail{background:#fef2f2}.parametric-readiness-check-code{font-family:ui-monospace,monospace;font-size:.8rem;color:#475569}.release-pre-export-gate{margin-bottom:20px}.doc-constructor-tabs{display:flex;gap:8px;margin-bottom:16px}.doc-constructor-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(320px,2fr) minmax(260px,1fr);gap:16px;align-items:start}@media (max-width: 1100px){.doc-constructor-grid{grid-template-columns:1fr}}.doc-block-palette-list{list-style:none;margin:8px 0 0;padding:0;max-height:70vh;overflow:auto}.doc-block-palette-list li{border:1px solid #e2e8f0;border-radius:8px;padding:8px;margin-bottom:8px;cursor:grab;display:flex;flex-direction:column;gap:4px}.doc-block-palette-list li.doc-block-broken{border-color:#f87171;background:#fef2f2}.doc-builder-entries{list-style:none;margin:12px 0;padding:0}.doc-builder-entries li{display:flex;gap:8px;border:1px solid #e2e8f0;border-radius:8px;padding:8px;margin-bottom:8px}.doc-builder-entries li.manifest-error-row{border-color:#dc2626;background:#fef2f2}.doc-entry-index{font-weight:700;color:#64748b;min-width:1.5rem}.doc-entry-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.doc-manifest-panel .manifest-issues{list-style:none;padding:0;margin:8px 0 0;max-height:50vh;overflow:auto}.doc-manifest-panel .manifest-error{color:#b91c1c}.doc-manifest-panel .manifest-warning{color:#b45309}.doc-manifest-panel .manifest-info{color:#334155}.ok-text{color:#15803d;font-weight:600}.warn-text{color:#b45309;font-weight:600}
