@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:200 400;src:url(../fonts/material-symbols-outlined.woff2) format("woff2")}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:"liga";-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased}\feff  *,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--panel: #f7fbff;--border: #cfdae7;--text: #18263a;--muted: #61748d;--accent: #2f6fb2;--accent-strong: #1f5a98;--danger: #d95555;--shadow: 0 14px 34px rgba(55, 84, 120, .12);--bg: #f8f9ff;--surface-low: #eff4ff;--card: #ffffff;--surface-high: #dce9ff;--primary: #004ac6;--primary-container: #2563eb;--on-surface: #0b1c30;--on-surface-variant: #434655;--outline-variant: #c3c6d7;--tertiary: #784b00;font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg)}body{background:var(--bg);color:var(--text);min-height:100vh}a{color:inherit;text-decoration:none}.bg-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.blob{position:absolute;filter:blur(60px);opacity:.32;mix-blend-mode:multiply}.blob-a{width:360px;height:360px;background:radial-gradient(circle at 30% 30%,rgba(59,130,246,.28),transparent 55%);top:-80px;left:-60px}.blob-b{width:420px;height:420px;background:radial-gradient(circle at 70% 40%,rgba(14,165,233,.18),transparent 55%);bottom:-120px;right:-80px}.grid-lines{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(90deg,rgba(24,38,58,.04) 1px,transparent 1px),linear-gradient(0deg,rgba(24,38,58,.04) 1px,transparent 1px);background-size:80px 80px}.app-shell{min-height:100vh;display:flex;flex-direction:column;position:relative;z-index:1}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;background:linear-gradient(135deg,#fffffff5,#f1f7fdeb);border-bottom:1px solid var(--border);box-shadow:var(--shadow);position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand{display:flex;gap:12px;align-items:center}.brand h1{font-size:18px;font-weight:700}.brand .subtitle{font-size:13px;color:var(--muted)}.brand-logo{display:block;height:52px;width:auto;flex:0 0 auto;filter:contrast(1.35) saturate(1.15)}.brand a{display:contents}.brand a:hover .brand-logo{opacity:.8}.brand a .brand-logo{cursor:pointer;transition:opacity .15s}.brand-pill{background:var(--accent-strong);color:#fff;padding:6px 10px;border-radius:999px;font-weight:700;font-size:12px;letter-spacing:.02em}.actions{display:flex;gap:10px}.layout{display:grid;grid-template-columns:360px 1fr;gap:16px;padding:18px 22px 30px}.sidebar{display:flex;flex-direction:column;gap:14px}.content{min-height:70vh}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px 16px 16px;box-shadow:var(--shadow)}.card-title{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong);font-weight:800;margin-bottom:10px}.field-grid{display:flex;flex-direction:column;gap:10px}.field-grid label{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--text);gap:8px}.field-grid .checkbox-label{justify-content:flex-start;align-items:flex-start;line-height:1.4}.field-grid input,.field-grid select{width:150px;padding:8px 10px;background:#f7fafe;border:1px solid var(--border);color:var(--text);border-radius:8px;font-size:13px;text-align:right}.field-grid input[type=checkbox]{width:18px;height:18px;padding:0;accent-color:var(--accent)}.field-grid select{text-align:left}.field-grid input:focus,.field-grid select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #60a5fa40}.hint{font-size:12px;color:var(--muted);margin-top:8px}.calc-intro{font-size:13px;color:var(--muted);margin-bottom:10px;line-height:1.5}.calc-list{padding-left:20px;display:grid;gap:8px;font-size:13px;line-height:1.5}.formula-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.formula-item{border:1px solid var(--border);background:#f8fbfe;border-radius:10px;padding:12px}.formula-item h3{margin-bottom:8px;font-size:14px}.formula-expr,.formula-example,.formula-note{font-size:13px;line-height:1.5}.formula-expr{color:var(--accent-strong);font-weight:600;margin-bottom:8px}.formula-example{margin-bottom:6px}.formula-note{color:var(--muted)}.span-builder{display:flex;flex-direction:column;gap:8px;margin-bottom:2px}.span-list{display:flex;flex-direction:column;gap:8px}.span-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px}.span-row-label{font-size:13px;color:var(--text)}.span-row input{width:110px;padding:8px 10px;background:#f7fafe;border:1px solid var(--border);color:var(--text);border-radius:8px;font-size:13px;text-align:right}.span-row input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #60a5fa40}.span-actions{display:flex;justify-content:flex-start}.span-mode-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.span-mode-row .checkbox-label{margin:0}.span-max-status{margin:0;text-align:right}.span-row input[readonly]{background:#eef3f8;color:var(--muted)}.btn-primary{background:var(--accent-strong);color:#fff;border:none;padding:10px 16px;border-radius:10px;font-weight:700;letter-spacing:.02em;cursor:pointer;box-shadow:var(--shadow);transition:transform .1s ease,box-shadow .2s ease}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 12px 24px #1f5a9838}.btn-primary:active{transform:translateY(0)}.results-pane{min-height:72vh;display:block}.results-placeholder{text-align:center;color:var(--muted);padding:60px 20px}.params-table,.data-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:13px}.params-table th,.params-table td,.data-table th,.data-table td{border:1px solid var(--border);padding:8px 10px;text-align:center}.params-table th{background:#edf4fb;color:var(--muted);font-weight:600}.data-table th{background:#d2e6f8;color:var(--on-surface);font-weight:700;font-size:11.5px;letter-spacing:.01em;text-transform:none}.data-table tbody tr:nth-child(2n){background:#f5f9ff}.data-table tbody tr:hover{background:#e6f0fb}.zone-label{color:var(--accent);font-weight:700}.zone-group-header td{background:#deeaf6;color:#1a3a5c;font-size:12px;padding:5px 10px;border-top:2px solid #b0cce8}.row-warn{background:#f59e0b17}.row-fail{background:#f8717114}.val-warn{color:#a16207;font-weight:700}.val-fail{color:var(--danger);font-weight:700}.highlight td{background:#60a5fa14}.util-bar{width:90px;height:10px;background:#dbe6f2;border-radius:6px;overflow:hidden;margin:0 auto}.bar-fill{height:100%;border-radius:6px}.bar-ok{background:#22c55e}.bar-warn{background:#f59e0b}.bar-fail{background:#ef4444}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-weight:700;font-size:12px}.badge.pass{background:#22c55e24;color:#20794a}.badge.warn{background:#f59e0b24;color:#a16207}.badge.fail{background:#ef44441f;color:#b94242}.verdict{border-left:5px solid #22c55e;padding:12px 16px;display:flex;gap:14px;align-items:center;background:#22c55e12}.verdict-warn{border-color:#f59e0b;background:#f59e0b12}.verdict-fail{border-color:#ef4444;background:#ef444412}.verdict h2{background:none!important;color:#20794a;font-size:15px;font-weight:700;text-transform:none!important;letter-spacing:0!important;padding:0!important;margin:0!important;border-radius:0!important}.verdict p{margin:0;color:var(--muted);font-size:13px}.verdict-ok h2{color:#20794a}.verdict-warn h2{color:#a16207}.verdict-fail h2{color:#b94242}.table-scroll{overflow-x:auto}.overview-table{width:100%;border-collapse:collapse;margin-top:6px;font-size:13px}.overview-table th,.overview-table td{border:1px solid var(--border);padding:8px 12px;text-align:left}.overview-table th{background:#edf4fb;color:var(--muted);font-weight:600}.overview-table tbody tr:hover{background:#f6faff}.ov-ls{width:52px;font-weight:700;font-size:11px;letter-spacing:.05em;color:var(--muted);white-space:nowrap}.ov-label{color:var(--text)}.ov-pct{width:64px;font-weight:700;font-size:14px;text-align:right;white-space:nowrap}.ov-bar-cell{width:180px;padding:8px 12px}.ov-bar-track{position:relative;height:12px;background:#dbe6f2;border-radius:6px;overflow:visible}.ov-bar-fill{height:100%;border-radius:6px;transition:width .3s ease}.ov-bar-line{position:absolute;top:-3px;bottom:-3px;left:100%;width:2px;background:#18263a2e;border-radius:2px}.ov-note{font-size:11px;color:var(--muted);margin-left:6px}.highlight-val{color:var(--accent);font-weight:700}.gov-tag{font-size:11px;background:#2f6fb21a;color:var(--accent);padding:2px 6px;border-radius:4px}.result-card{overflow:hidden;margin-bottom:16px}.result-card h2{background:var(--primary);color:#fff;font-size:13px;font-weight:700;letter-spacing:.01em;padding:10px 16px;margin:-14px -16px 14px}.result-card h2 .dim{font-weight:400;font-size:11px;color:#ffffffb8;text-transform:none;letter-spacing:0;margin-left:8px}.btn-secondary{background:transparent;color:var(--accent);border:1px solid var(--accent);padding:8px 14px;border-radius:10px;font-weight:600;font-size:13px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;transition:background .15s}.btn-secondary:hover{background:#2f6fb214}.btn-sm{padding:5px 10px;font-size:12px;border-radius:7px}.diag-active{background:#2f6fb21f;border-color:var(--accent);color:var(--text)}.btn-danger{border-color:var(--danger)!important;color:var(--danger)!important}.btn-danger:hover{background:#f871711a!important}.diagram-toolbar{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.diagram-stage{background:linear-gradient(180deg,#fbfdff,#f2f7fc);border:1px solid var(--border);border-radius:12px;padding:4px;overflow:hidden}.diagram-stage svg{display:block;width:100%;height:auto}.diagram-stage .plot-container{width:100%;height:100%}.wind-zone-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.wind-zone-stage{max-width:620px;margin:8px auto 0;padding:4px 6px}.wind-zone-stage-wide{grid-column:span 2}.wind-zone-svg{display:block;width:100%;height:auto}.wind-zone-title{font-size:14px;font-weight:700;fill:#18263a}.wind-zone-label{font-size:9px;font-weight:700;fill:#1f3f66}.wind-zone-load{font-size:4px;font-weight:500;fill:#3f5875}.wind-zone-label-muted{fill:#61748d}.wind-zone-note{font-size:11px;fill:#3f5875}.wind-zone-dim,.wind-zone-ground,.wind-zone-split,.wind-zone-arrow{stroke:#6b7f97;stroke-width:1.4;fill:none}.wind-zone-ground{stroke:#4c617b}.wind-zone-split{stroke-dasharray:5 4}.wind-zone-dim-text{font-size:11px;fill:#3f5875}.panel-load-svg{display:block;width:100%;height:auto}.panel-load-title{font-size:13px;font-weight:700;fill:#18263a}.panel-load-note{font-size:11px;fill:#61748d}.panel-load-zone{font-size:13px;font-weight:700}.panel-load-text{font-size:12px;font-weight:600}.panel-load-text-muted{fill:#61748d;font-weight:500}.panel-load-axis,.panel-load-arrow,.panel-load-split,.panel-load-dim{stroke:#6b7f97;stroke-width:1.3;fill:none}.panel-load-split{stroke-dasharray:5 4}.panel-load-dim-text,.panel-load-support{font-size:12px;fill:#3f5875}.params-layout{display:grid;grid-template-columns:minmax(380px,560px) minmax(0,1fr);gap:24px;padding:20px 24px 40px;align-items:start}.params-layout.formulas-active{grid-template-columns:1fr}.params-layout.formulas-active .params-reference{display:none}.params-left{min-width:0;display:flex;flex-direction:column;gap:0}.params-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:14px;padding:10px 12px;background:#ffffffb3;border:1px solid var(--border);border-radius:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.params-tab{padding:7px 11px;border:1px solid transparent;background:transparent;border-radius:8px;cursor:pointer;font-size:13px;color:var(--muted);font-weight:500;transition:all .15s;white-space:nowrap}.params-tab:hover{background:#f0f6ff;color:var(--accent)}.params-tab.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;box-shadow:0 2px 8px #2f6fb240}.params-panel.hidden{display:none}.params-content,.params-reference{min-width:0}.formula-section-header{display:flex;align-items:center;gap:10px;margin:24px 0 12px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-strong)}.formula-section-header:first-child{margin-top:0}.formula-section-header:after{content:"";flex:1;height:1px;background:var(--border)}.formula-section-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--accent);color:#fff;border-radius:50%;font-size:11px;font-weight:900;flex-shrink:0}.formula-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.formula-item{border:1px solid var(--border);background:linear-gradient(135deg,#f8fbfe,#f2f7fd);border-radius:10px;padding:14px 14px 12px;display:flex;flex-direction:column;gap:6px}.formula-item h3{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 2px;border-bottom:1px solid var(--border);padding-bottom:7px}.formula-expr{font-size:13.5px;font-weight:700;color:var(--accent-strong);line-height:1.6;font-family:Georgia,Times New Roman,serif}.formula-example{font-size:13px;line-height:1.5}.formula-note{font-size:11.5px;color:var(--muted);line-height:1.5;margin-top:2px}.formulas-jump-nav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;padding:12px 14px;background:#ffffffbf;border:1px solid var(--border);border-radius:10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.formulas-jump-nav a{font-size:11px;font-weight:600;color:var(--accent);background:#edf4fb;border:1px solid #c8dbf0;border-radius:6px;padding:4px 10px;cursor:pointer;transition:all .12s;text-decoration:none}.formulas-jump-nav a:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.params-grid{display:flex;flex-direction:column;gap:2px}.param-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:10px 12px;border-radius:8px;border:1px solid transparent;transition:background .12s}.param-row:hover{background:#f0f6ff}.param-row.param-modified{background:#fffbe6;border-color:#f0d060}.param-info{display:flex;flex-direction:column;gap:2px}.param-label{font-size:14px;font-weight:500;color:var(--text)}.param-symbol{font-size:13px;color:var(--accent)}.param-standard{font-size:11px;color:var(--muted)}.param-note{font-size:11px;color:var(--muted);font-style:italic;max-width:380px;margin-top:2px}.param-controls{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:130px}.param-input{width:120px;padding:6px 10px;border:1px solid var(--border);border-radius:7px;font-size:14px;text-align:right;background:#f7fafe;color:var(--text)}.param-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #2f6fb22e}.param-modified .param-input{border-color:#c8a000;background:#fffef0}.param-default{font-size:11px;color:var(--muted)}.btn-reset-one{background:none;border:none;cursor:pointer;font-size:14px;color:var(--muted);padding:0 2px;line-height:1}.btn-reset-one:hover{color:var(--accent)}.params-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#1a3a5c;color:#fff;padding:10px 24px;border-radius:8px;font-size:14px;box-shadow:var(--shadow);z-index:200;transition:opacity .3s}.params-toast.hidden{display:none}.lib-layout{display:grid;grid-template-columns:240px 1fr;gap:16px;padding:18px 22px 30px;align-items:start}.lib-sidebar{position:sticky;top:16px}.group-list{list-style:none;display:flex;flex-direction:column;gap:2px}.group-empty{color:var(--muted);font-size:13px;padding:8px 4px}.group-item{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:13px;transition:background .12s}.group-item:hover{background:#2f6fb212}.group-item.active{background:#2f6fb21f;color:var(--accent)}.group-name{flex:1;font-weight:500}.group-count{font-size:11px;color:var(--muted);background:#e4edf6;border-radius:10px;padding:1px 7px;min-width:20px;text-align:center}.group-actions{display:flex;gap:4px;opacity:0;transition:opacity .12s}.group-item:hover .group-actions,.group-item.active .group-actions{opacity:1}.icon-btn{background:none;border:none;color:var(--muted);cursor:pointer;padding:2px 5px;border-radius:4px;font-size:13px;line-height:1;transition:color .12s,background .12s}.icon-btn:hover{color:var(--text);background:#2f6fb214}.icon-btn.danger:hover{color:var(--danger)}.panel-grid-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.panel-grid-title{font-size:16px;font-weight:700}.panel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.panel-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px;transition:border-color .15s}.panel-card:hover{border-color:var(--accent)}.panel-card-header{display:flex;align-items:center;gap:8px}.panel-card-name{font-weight:700;font-size:14px;flex:1}.panel-card-props{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;font-size:12px}.panel-card-props dt{color:var(--muted)}.panel-card-props dd{color:var(--text)}.panel-card-desc{color:var(--muted);font-style:italic}.panel-card-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0009;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-backdrop.hidden{display:none}.modal{background:var(--panel);border:1px solid var(--border);border-radius:14px;width:min(580px,95vw);max-height:90vh;display:flex;flex-direction:column;box-shadow:0 24px 60px #00000080}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border)}.modal-header h3{font-size:16px;font-weight:700;margin:0}.modal-close{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:4px 8px;border-radius:6px}.modal-close:hover{color:var(--text);background:#2f6fb214}.modal-body{padding:18px 20px;overflow-y:auto;flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--border)}.modal-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}.modal-label.span2{grid-column:span 2}.modal-input{width:100%;padding:8px 10px;background:#f7fafe;border:1px solid var(--border);color:var(--text);border-radius:8px;font-size:13px;text-align:left}.modal-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #60a5fa33}.modal-textarea{resize:vertical;min-height:70px}.saves-save-row{display:flex;gap:8px;align-items:center;margin-bottom:10px}.saves-save-row .modal-input{flex:1}.saves-import-row{margin-bottom:4px}.saves-import-label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--accent);font-size:13px;font-weight:500;padding:6px 10px;border-radius:6px;border:1px solid var(--border);transition:background .15s}.saves-import-label:hover{background:#2f6fb212}.saves-divider{border:none;border-top:1px solid var(--border);margin:14px 0}.saves-list{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow-y:auto}.saves-empty{color:var(--muted);font-size:13px;text-align:center;padding:20px 0}.saves-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#f7fbffb3}.saves-item-info{flex:1;min-width:0}.saves-item-name{display:block;font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.saves-item-date{display:block;font-size:11px;color:var(--muted);margin-top:2px}.saves-item-actions{display:flex;gap:4px;flex-shrink:0}.variant-table th,.variant-table td{white-space:nowrap}.variant-table td:first-child{font-weight:700;color:var(--accent)}@media (max-width: 1024px){.layout,.lib-layout,.params-layout{grid-template-columns:1fr}.params-layout .params-reference{display:none}.sidebar{flex-direction:column}.modal-form-grid{grid-template-columns:1fr}.modal-label.span2{grid-column:span 1}.wind-zone-grid{grid-template-columns:1fr}.wind-zone-stage-wide{grid-column:span 1}}@media (max-width: 720px){:root{--shadow: 0 8px 22px rgba(55, 84, 120, .1)}.topbar{align-items:flex-start;gap:12px;padding:12px 14px;flex-direction:column}.brand{width:100%;gap:10px}.brand-logo{height:40px}.brand h1{font-size:16px}.brand .subtitle{font-size:12px}.actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.actions .btn-primary,.actions .btn-secondary{width:100%;justify-content:center}.layout,.lib-layout{padding:12px;gap:12px}.card{padding:12px;border-radius:10px}.card-title{font-size:12px}.field-grid label{flex-direction:column;align-items:stretch;gap:5px}.field-grid .checkbox-label{flex-direction:row}.field-grid input,.field-grid select,.span-row input{width:100%!important;min-height:42px;font-size:16px}.span-row{grid-template-columns:1fr;padding:8px 0;border-bottom:1px solid var(--border)}.span-row .btn-secondary{width:100%;justify-content:center}.btn-primary,.btn-secondary{min-height:42px;padding:10px 12px}.results-pane{min-height:40vh}.result-card h2{font-size:13px;margin:-12px -12px 12px;padding:10px 12px}.result-card h2 .dim{display:inline;font-size:10px}.table-scroll{margin-inline:-4px;padding-bottom:4px;-webkit-overflow-scrolling:touch}.params-table,.data-table,.overview-table{min-width:620px;font-size:12px}.overview-table th,.overview-table td,.params-table th,.params-table td,.data-table th,.data-table td{padding:7px 8px}.ov-bar-cell{width:120px}.util-bar{width:70px}.diagram-toolbar{display:grid;grid-template-columns:1fr 1fr}.diagram-toolbar button{justify-content:center;width:100%}.diagram-stage{overflow-x:auto;padding:6px;-webkit-overflow-scrolling:touch}.diagram-stage svg{min-width:680px}.wind-zone-stage{max-width:none}.formula-grid{grid-template-columns:1fr}.panel-grid-header{align-items:stretch;flex-direction:column;gap:10px}.panel-grid-header .btn-primary{width:100%}.panel-grid{grid-template-columns:1fr}.modal{width:calc(100vw - 20px);max-height:88vh}.modal-footer{flex-direction:column-reverse}.modal-footer .btn-primary,.modal-footer .btn-secondary{width:100%;justify-content:center}}.roof-diagram-wrap{position:relative;margin:10px 0 4px;cursor:zoom-in;-webkit-user-select:none;user-select:none}.roof-diagram-wrap svg{width:100%;height:auto;display:block;border-radius:6px;background:#f8fafd;border:1px solid #d8e4ef;transition:border-color .15s,box-shadow .15s}.roof-diagram-wrap:hover svg{border-color:#4a7fa5;box-shadow:0 2px 8px #4a7fa533}.roof-diagram-hint{position:absolute;bottom:6px;right:8px;font-size:10px;color:#8898a8;pointer-events:none;transition:opacity .15s}.roof-diagram-wrap:hover .roof-diagram-hint{color:#4a7fa5}.rld-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;align-items:center;justify-content:center;padding:16px}.rld-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a14288c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.rld-box{position:relative;background:var(--card, #fff);border:1px solid var(--border, #d0dae6);border-radius:14px;padding:20px 20px 16px;width:min(760px,100%);box-shadow:0 8px 40px #00000047}.rld-title{font-size:13px;font-weight:700;color:var(--text, #18263a);margin-bottom:12px;letter-spacing:.02em;text-transform:uppercase}.rld-box svg{width:100%;height:auto;display:block;border-radius:8px;background:#f8fafd;border:1px solid #d8e4ef}.rld-close{position:absolute;top:12px;right:14px;background:none;border:none;font-size:22px;line-height:1;color:var(--muted, #6b7c93);cursor:pointer;padding:2px 6px;border-radius:4px;transition:background .1s,color .1s}.rld-close:hover{background:var(--hover, #eef2f7);color:var(--text, #18263a)}@media (max-width: 420px){.actions{grid-template-columns:1fr}.brand .subtitle{display:none}.diagram-toolbar{grid-template-columns:1fr}.layout,.lib-layout{padding:10px 8px}}.layout-new .topbar{background:#fff;border-bottom:1px solid var(--outline-variant);box-shadow:0 1px 4px #0000000f;padding:0 24px;height:60px;align-items:center}.topbar-nav{display:flex;gap:4px}.topbar-nav-link{font-size:13px;font-weight:600;color:var(--accent);border:1px solid var(--accent);padding:8px 14px;border-radius:10px;text-decoration:none;transition:background .15s,color .15s;display:inline-flex;align-items:center}.topbar-nav-link:hover{background:#2f6fb214}.layout-new .topbar-nav-link{border:none;color:var(--on-surface-variant);border-radius:8px;letter-spacing:.02em;padding:8px 14px}.layout-new .topbar-nav-link:hover{background:var(--surface-high);color:var(--primary)}.layout-new .layout{grid-template-columns:380px 1fr;gap:0;padding:0;flex:1;min-height:0}.layout-new .sidebar{background:var(--surface-low);border-right:none;display:flex;flex-direction:column;gap:0;height:calc(100vh - 92px);position:sticky;top:60px;overflow-y:auto;overflow-x:hidden;padding-bottom:80px}.sidebar-header{display:none;align-items:center;justify-content:space-between;padding:16px 16px 8px}.layout-new .sidebar-header{display:flex}.sidebar-header-label{font-size:10px;font-weight:800;letter-spacing:.14em;color:var(--on-surface-variant);text-transform:uppercase}.sidebar-header-version{font-size:10px;font-weight:600;color:var(--outline-variant);background:var(--surface-high);padding:2px 7px;border-radius:99px}.section-nav{display:none;flex-direction:column;gap:2px;padding:4px 10px}.layout-new .section-nav{display:flex}.section-nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;cursor:pointer;transition:background .15s,color .15s;color:var(--on-surface-variant);border-right:4px solid transparent;position:relative}.section-nav-item:hover{background:#004ac60f;color:var(--primary)}.section-nav-item.active{background:#fff;color:var(--primary);border-right-color:var(--primary);box-shadow:0 1px 4px #0000000f}.nav-icon{font-size:20px;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;flex-shrink:0}.section-nav-item.active .nav-icon{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24}.nav-label{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.section-panels,.section-panel{display:contents}.layout-new .section-panels{display:block;padding:8px 10px 12px}.layout-new .section-panel{display:none;flex-direction:column;gap:12px}.layout-new .section-panel.active{display:flex}.layout-new .section-panel .card{border:none;border-radius:12px;background:var(--card);box-shadow:0 1px 3px #00000014;padding:14px}.layout-new .section-panel .field-grid{gap:6px}.layout-new .section-panel .field-grid label{display:block;font-size:12px;font-weight:600;color:var(--on-surface-variant);letter-spacing:.03em;line-height:1.3}.layout-new .section-panel .field-grid input,.layout-new .section-panel .field-grid select{display:block;width:100%;margin-top:3px;background:var(--surface-high);border:none;border-radius:8px;color:var(--on-surface);font-size:13px;font-weight:500;padding:7px 10px;text-align:left}.layout-new .section-panel .field-grid input:focus,.layout-new .section-panel .field-grid select:focus{outline:2px solid var(--primary);outline-offset:1px;box-shadow:none;border:none}.layout-new .section-panel .field-grid .checkbox-label{display:flex;align-items:flex-start;gap:8px;color:var(--on-surface);font-weight:500}.layout-new .section-panel .field-grid input[type=checkbox]{display:inline-block;width:18px;height:18px;margin-top:0;accent-color:var(--primary);flex-shrink:0}.layout-new .section-panel .span-row input{background:var(--surface-high);border:none;border-radius:8px;color:var(--on-surface)}.layout-new .section-panel .span-row input:focus{outline:2px solid var(--primary);outline-offset:1px;box-shadow:none}.sidebar-footer{padding:12px 10px;margin-top:auto}.sidebar-footer #calculate:not(.btn-calculate-now){width:100%}.layout-new .sidebar-footer{position:sticky;bottom:0;background:var(--surface-low)}.btn-calc-icon{display:none;font-size:18px;margin-right:6px;vertical-align:middle}.layout-new .btn-calculate-now{width:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary),var(--primary-container));color:#fff;border:none;padding:13px 20px;border-radius:12px;font-weight:800;font-size:13px;letter-spacing:.1em;cursor:pointer;box-shadow:0 3px 12px #004ac64d;transition:transform .1s,box-shadow .15s}.layout-new .btn-calculate-now:hover{transform:translateY(-1px);box-shadow:0 6px 18px #004ac666}.layout-new .btn-calculate-now:active{transform:translateY(0)}.layout-new .btn-calc-icon{display:inline-flex}.sidebar-footer #calculate.btn-primary{width:100%;margin-bottom:4px}.layout-new .content{background:var(--bg);padding:24px;min-height:calc(100vh - 92px);overflow-y:auto}.layout-new .results-pane{min-height:calc(100vh - 140px);border:none;background:var(--card);box-shadow:0 1px 4px #00000012}.awaiting-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:80px 30px}.awaiting-icon{font-size:56px;color:var(--outline-variant);font-variation-settings:"FILL" 0,"wght" 200,"GRAD" 0,"opsz" 48}.awaiting-title{font-size:20px;font-weight:700;color:var(--on-surface-variant);margin:0}.awaiting-sub{font-size:14px;color:var(--outline-variant);margin:0;text-align:center}.floating-calc-bar{display:none!important}.btn-calculate-top{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff;border:none;padding:10px 18px;border-radius:10px;font-weight:800;font-size:12px;letter-spacing:.1em;cursor:pointer;box-shadow:0 2px 8px #16a34a59;transition:transform .1s,box-shadow .15s;white-space:nowrap}.btn-calculate-top:hover{transform:translateY(-1px);box-shadow:0 4px 14px #16a34a80}.btn-calculate-top:active{transform:translateY(0)}.floating-calc-info{display:flex;align-items:center;gap:10px}.floating-calc-title{font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--on-surface);text-transform:uppercase}.floating-calc-sub{font-size:11px;color:var(--on-surface-variant);margin-top:1px}.btn-calculate-float{background:linear-gradient(135deg,var(--primary),var(--primary-container));color:#fff;border:none;padding:10px 20px;border-radius:10px;font-weight:800;font-size:12px;letter-spacing:.1em;cursor:pointer;box-shadow:0 2px 8px #004ac64d;transition:transform .1s,box-shadow .15s;white-space:nowrap}.btn-calculate-float:hover{transform:translateY(-1px);box-shadow:0 4px 14px #004ac666}.btn-calculate-float:active{transform:translateY(0)}.layout-new .card-title{color:var(--primary)}.layout-new .section-panel .card-title{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:var(--primary);margin-bottom:12px}.num-spin-wrap{display:inline-flex;align-items:stretch;width:150px;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#f7fafe;box-sizing:border-box}.field-grid .num-spin-wrap{width:150px}.layout-new .section-panel .field-grid .num-spin-wrap{width:100%;display:flex;margin-top:3px}.span-row .num-spin-wrap{width:110px}.num-spin-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px #60a5fa40}.num-spin-wrap input:focus{outline:none;border-color:transparent;box-shadow:none}.num-spin-wrap input{flex:1;min-width:0;width:auto!important;border:none!important;border-radius:0!important;background:transparent;box-shadow:none!important}.num-spin-btn{flex:0 0 26px;border:none;border-left:1px solid var(--border);background:#eef3f8;color:var(--text);cursor:pointer;font-size:15px;font-weight:600;padding:0;line-height:1;user-select:none;-webkit-user-select:none;touch-action:none;transition:background .1s}.num-spin-btn:hover{background:#dde8f3}.num-spin-btn:active{background:#c8d8ea}@media (max-width: 700px){.field-grid .num-spin-wrap,.span-row .num-spin-wrap{width:100%!important}.num-spin-wrap input{min-height:42px;font-size:16px}.num-spin-btn{flex:0 0 42px;font-size:18px}}.seg{display:flex;flex-wrap:wrap;margin-top:4px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--card)}.seg-btn{flex:1 1 auto;min-height:36px;padding:8px 12px;border:0;border-right:1px solid var(--border);background:transparent;color:var(--text);font:inherit;font-size:13px;font-weight:600;line-height:1.25;text-align:center;cursor:pointer;transition:background .15s,color .15s}.seg-btn:last-child{border-right:0}.seg-btn:hover{background:#2f6fb214}.seg-btn.is-active{background:var(--accent);color:#fff}.seg-btn:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.seg-native{display:none!important}@media (max-width: 720px){.seg-btn{min-height:42px}}.panel-load-svg text,.wind-zone-svg text{paint-order:stroke fill;stroke:#f7fbffeb;stroke-width:3.2px;stroke-linejoin:round}.results-summary{position:sticky;top:0;z-index:20;display:flex;flex-direction:column;gap:8px;padding:10px 14px;margin:0 0 14px;background:#fffffff5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--border);box-shadow:0 2px 8px #37547814}.rs-status{display:flex;align-items:center;gap:10px;min-width:0}.rs-badge{flex:0 0 auto;padding:4px 12px;border-radius:999px;font-weight:800;font-size:12px;letter-spacing:.06em;color:#fff;background:var(--muted)}.rs-pass .rs-badge{background:#1f9d57}.rs-warn .rs-badge{background:#d98b06}.rs-fail .rs-badge{background:var(--danger)}.rs-detail{font-size:13px;color:var(--on-surface-variant);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-card{scroll-margin-top:96px}@media print{.results-summary{display:none!important}}.layout-new .content{overflow-x:clip;overflow-y:visible}.layout-new .results-summary{top:60px}.result-card{scroll-margin-top:160px}.layout-new .content,.layout-new .results-pane,.results-summary,.rs-status{min-width:0;max-width:100%}@media (max-width: 1024px){.layout-new .layout{grid-template-columns:1fr}.layout-new .sidebar{height:auto;position:static;overflow:visible;padding-bottom:12px}.layout-new .sidebar-footer{position:static}.layout-new .content{padding:14px;min-height:0}.layout-new .results-pane{min-height:40vh}}@media (max-width: 900px){.layout-new .topbar{position:static;height:auto;flex-wrap:wrap;padding:8px 12px;gap:6px 10px}.layout-new .brand .subtitle{display:none}.layout-new .topbar-nav{order:2;margin-left:auto}.layout-new .actions{display:flex;flex-wrap:wrap;width:100%;gap:6px;order:3}.layout-new .results-summary{top:0}}.layout-new .section-panel .card{margin:4px 10px}.layout-new .section-panel .card-title{margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--outline-variant)}.layout-new .section-panel .field-grid{gap:12px}.layout-new .section-panel .field-grid select{width:100%!important}.layout-new .section-panel .hint{font-size:11.5px;line-height:1.45;margin-top:8px}.hint-more{margin-top:4px}.hint-more summary{cursor:pointer;color:var(--primary);font-weight:600}.project-chip{display:inline-flex;align-items:center;gap:6px;max-width:280px;padding:6px 12px;border-radius:999px;border:1px solid var(--outline-variant);background:var(--surface-low);color:var(--on-surface);font-size:12px;font-weight:600;cursor:pointer}.project-chip[hidden]{display:none}.project-chip span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-chip:hover{border-color:var(--primary);color:var(--primary)}.modal-label{display:block;margin-top:12px;font-size:12px;font-weight:600;color:var(--on-surface-variant)}.modal-label .modal-input{display:block;width:100%;margin-top:4px;box-sizing:border-box}.project-error{min-height:18px;margin:8px 0 0;color:#b94242;font-size:12.5px;font-weight:600}.project-actions{display:flex;justify-content:flex-end;margin-top:8px}.modal-wide{max-width:720px}.modal-wide .modal-body{max-height:70vh;overflow-y:auto}.modal-wide h4{margin:14px 0 6px;font-size:13px}.legal-list{margin:0 0 8px 18px;padding:0;font-size:12.5px;line-height:1.5}.legal-list li{margin-bottom:6px}.legal-table td,.legal-table th{font-size:12px;text-align:left}.app-footer{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:center;padding:8px 16px;font-size:11.5px;color:var(--muted);text-align:center}.app-footer .copyright{white-space:nowrap}.link-btn{background:none;border:none;padding:0;color:var(--primary);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline}@media print{.app-footer,.project-chip{display:none!important}}.sidebar-header .project-chip{max-width:200px;padding:4px 10px;font-size:11px}.layout-new .actions button,.brand h1,.brand .subtitle{white-space:nowrap}.brand>div{min-width:0}.brand .subtitle{overflow:hidden;text-overflow:ellipsis}@media (max-width: 1500px){.brand .subtitle{display:none}}body:not(.is-admin) [data-admin-only]{display:none!important}.readonly-banner{margin:0;padding:8px 22px;font-size:12.5px;background:#fff7e6;color:#8a5a00;border-bottom:1px solid #f1d9a8}.card.result-card.verdict h2{background:none!important;color:#20794a!important;padding:0!important;margin:0!important}.card.result-card.verdict.verdict-warn h2{color:#a16207!important}.card.result-card.verdict.verdict-fail h2{color:#b94242!important}.diagram-toolbar{margin-top:10px}body:not(.is-admin) .lib-layout{display:none}.layout-new .topbar .actions{display:flex;align-items:center;gap:0}.layout-new .topbar .btn-group{display:flex;align-items:center;gap:8px}.layout-new .topbar .btn-sep{width:1px;height:26px;background:var(--outline-variant);margin:0 14px;flex:0 0 auto}.tb-btn{box-sizing:border-box;height:40px;padding:0 16px;border-radius:10px;border:1px solid transparent;font:inherit;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;line-height:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;cursor:pointer;transition:background .15s,box-shadow .15s,border-color .15s,transform .1s}.tb-btn .material-symbols-outlined{font-size:18px;line-height:1}.tb-btn:active{transform:translateY(1px)}.tb-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.tb-tonal{background:var(--surface-high);color:var(--on-surface)}.tb-tonal:hover{background:#d9e3f5;color:var(--primary)}.tb-primary{background:#16a34a;color:#fff;border-color:#16a34a;box-shadow:0 2px 8px #16a34a4d;padding:0 22px}.tb-primary:hover{background:#15803d;border-color:#15803d}.tb-outline{background:transparent;color:var(--primary);border-color:var(--primary)}.tb-outline:hover{background:#004ac614}@media (max-width: 1360px){.layout-new .topbar{padding-left:14px;padding-right:14px}.layout-new .brand .subtitle{display:none}.layout-new .topbar .btn-group{gap:6px}.layout-new .topbar .btn-sep{margin:0 8px}.tb-btn{padding:0 11px;letter-spacing:.03em}.tb-primary{padding:0 14px}}@media (max-width: 1130px) and (min-width: 901px){.layout-new .topbar .btn-group:first-child .tb-label{display:none}.layout-new .topbar .btn-group:first-child .tb-btn{padding:0 11px}}@media (max-width: 900px){.layout-new .topbar .actions{flex-wrap:wrap;width:100%;gap:6px}.layout-new .topbar .btn-sep{display:none}.layout-new .topbar .btn-group{display:contents}.layout-new .topbar .tb-btn{flex:1 1 calc(33% - 6px);padding:0 6px}}.app-shell:not(.layout-new) .topbar .actions>a,.app-shell:not(.layout-new) .topbar .actions>button{box-sizing:border-box;height:40px;padding:0 16px;border-radius:10px;font-size:12px;font-weight:700;letter-spacing:.07em;line-height:1;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;text-decoration:none}.app-shell:not(.layout-new) .topbar .actions>.btn-primary{border:1px solid var(--primary)}.project-accept span,.checkbox-label span{min-width:0;flex:1 1 auto;overflow-wrap:anywhere}.bg-layer{overflow:hidden}@media (max-width: 1449px) and (min-width: 1025px){.params-layout{grid-template-columns:minmax(0,1fr)}.params-left{max-width:980px}.params-reference{display:grid;grid-template-columns:repeat(auto-fit,minmax(540px,1fr));gap:16px;align-items:start}}.params-reference .data-table th,.params-reference .data-table td{white-space:nowrap}.params-reference .data-table td:first-child{white-space:normal;min-width:90px}.params-reference .data-table td:last-child{white-space:normal}.params-tabs{flex-wrap:wrap;gap:4px}.params-reference .data-table th,.params-reference .data-table td{padding:6px 8px;font-size:12px}.params-reference .data-table td:last-child{min-width:110px;font-size:11px}.privacy-bar{position:fixed;left:16px;right:16px;bottom:16px;z-index:900;display:flex;gap:16px;align-items:center;justify-content:space-between;max-width:760px;margin:0 auto;padding:10px 14px;border-radius:12px;background:#0b1c30;color:#fff;font-size:13px;box-shadow:0 6px 24px #00000059}.privacy-bar.hidden{display:none}.privacy-bar .link-btn{color:#9cc3ff}.privacy-bar-ok{flex-shrink:0;border:0;border-radius:8px;padding:6px 16px;background:#2f80ff;color:#fff;font-weight:700;cursor:pointer}@media print{.privacy-bar{display:none!important}}
