:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1a1a1a;background:#fafafa;--line: #e5e5e5}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}.muted{color:#999}.bad{color:#b3261e}.project-list{max-width:40rem;margin:3rem auto;padding:0 1.5rem}.new-project{display:flex;gap:.5rem;margin:1rem 0}.new-project input{flex:1}.projects{list-style:none;padding:0}.projects li{margin:.3rem 0}.projects li.project-row{display:flex;align-items:stretch;gap:.4rem}.projects button{width:100%;text-align:left;padding:.6rem .8rem;background:#fff;border:1px solid var(--line);border-radius:6px}.project-row button.ghost{width:auto;flex:none;align-self:center}.ws-tag{font-size:.7rem;text-transform:uppercase;color:#666;background:#eee;border-radius:4px;padding:.1rem .35rem;margin-left:.4rem}.ws-header{display:flex;align-items:center;gap:1rem;padding:.6rem 1rem;border-bottom:1px solid var(--line);background:#fff}.ws-header h1{font-size:1.05rem;margin:0;flex:1}.ws-save{display:inline-flex;align-items:center;gap:.3rem}.ws-save input{font-size:.8rem;padding:.25rem .4rem;border:1px solid var(--line);border-radius:4px;width:14rem}.ws-body{display:grid;grid-template-columns:12rem 1fr auto;height:calc(100vh - 3rem)}.ws-nav{border-right:1px solid var(--line);padding:.75rem .5rem;overflow-y:auto}.nav-group-title{font-size:.7rem;text-transform:uppercase;color:#999;margin:.75rem .4rem .25rem}.nav-subgroup{margin-left:.5rem;border-left:1px solid var(--line);padding-left:.25rem}.nav-subgroup-title{font-size:.68rem;color:#aaa;margin:.3rem .4rem .1rem}.nav-planned{width:5px;height:5px;border-radius:50%;background:#cbd5e1;display:inline-block}.ws-nav button{display:flex;align-items:center;gap:.35rem;width:100%;text-align:left;padding:.35rem .5rem;border:0;background:transparent;border-radius:4px;font-size:.85rem}.ws-nav button.on{background:#e8effd;color:#1d4ed8;font-weight:600}.ws-nav button:disabled{opacity:.4;cursor:not-allowed}.na-view{max-width:42rem}.na-view h3{margin:0 0 .4rem}.shared-dot{width:6px;height:6px;border-radius:50%;background:#b8860b;display:inline-block}.ws-main{padding:1rem 1.25rem;overflow-y:auto}.planned-view{background:#fff;border:1px dashed var(--line);border-radius:8px;padding:1rem 1.1rem;max-width:42rem}.planned-head{display:flex;align-items:center;gap:.6rem}.planned-head h3{margin:0;font-size:.95rem}.planned-badge{font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;border:1px solid var(--line);border-radius:999px;padding:.1rem .5rem}.planned-view p{margin:.6rem 0 0;font-size:.85rem;line-height:1.5}.sliders{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.5rem 1.25rem;margin-bottom:1rem}.sliders label{display:flex;flex-direction:column;font-size:.8rem;font-weight:500}.sliders label span{display:flex;justify-content:space-between}.sliders output{color:#2563eb;font-variant-numeric:tabular-nums}.sliders input[type=range]{width:100%}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.85rem}.tile{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.75rem .9rem}.tile-estimate{border-style:dashed;border-color:#b8860b;background:#fffdf6}.tile-imported{border-color:#6b7280;background:#f6f7f9}.badge-imported{color:#374151;background:#d8dde5}.tile header{display:flex;justify-content:space-between;gap:.5rem;align-items:start;margin-bottom:.4rem}.tile h3{font-size:.82rem;font-weight:600;margin:0}.tile-tags{display:flex;gap:.3rem;flex-shrink:0}.badge{font-size:.65rem;text-transform:uppercase;color:#8a6d0b;background:#f6e7b8;border-radius:4px;padding:.05rem .3rem;align-self:center}dl.pairs{margin:0;font-size:.85rem}.pair-row{display:flex;justify-content:space-between;gap:.5rem}.pair-row dt{color:#666;display:flex;align-items:center;gap:.2rem}.pair-row dd{margin:0;font-variant-numeric:tabular-nums;font-weight:500}.dashboard-empty{padding:2rem;border:1px dashed var(--line);border-radius:8px}.latency{font-size:.75rem;color:#999;margin:.5rem 0 0}.ts-freq{border:1px solid var(--line);border-radius:8px;padding:.8rem 1rem;margin-bottom:1.2rem;background:#fff}.ts-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}.ts-head h3{margin:0}.ts-plot{margin:.8rem 0 0}.ts-plot figcaption{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin-bottom:.2rem}.ts-toggle,.ts-metric-pick{display:inline-flex;flex-wrap:wrap;gap:.25rem}.ts-toggle button,.ts-metric-pick button{font-size:.72rem;padding:.15rem .5rem;border:1px solid var(--line);border-radius:999px;background:#f6f7f9;cursor:pointer}.ts-toggle button.on,.ts-metric-pick button.on{background:#2563eb;color:#fff;border-color:#2563eb}.antenna-compare{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.75rem .9rem}.antenna-compare .pp-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.compare-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0}.compare-chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.74rem;padding:.15rem .45rem;border:1px solid var(--line);border-left-width:3px;border-radius:4px;background:#f9fafb}.chip-dot{width:8px;height:8px;border-radius:999px;display:inline-block;flex:0 0 auto}.chip-x{padding:0 .2rem;font-size:.7rem;line-height:1}.compare-plot{margin:.4rem 0}.compare-plot figcaption{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin-bottom:.2rem}.compare-scroll{overflow-x:auto}.compare-table td.best{background:#ecfdf5;font-weight:600}.compare-table th .chip-dot{margin-right:.3rem}.metric-info{position:relative}.i-btn{width:1.1rem;height:1.1rem;border-radius:50%;border:1px solid #bbb;background:#fff;font-size:.7rem;line-height:1;font-style:italic;padding:0}.info-popover{position:absolute;right:0;top:1.4rem;z-index:20;width:20rem;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 20px #0000001f;padding:.75rem;font-size:.8rem;font-weight:400}.info-popover .eq{display:block;background:#f5f5f5;padding:.4rem;border-radius:4px;font-size:.78rem;overflow-x:auto}.info-popover h4{margin:.6rem 0 .2rem;font-size:.75rem}.info-popover ul{margin:0;padding-left:1rem}.info-popover .refs{color:#666;margin:.5rem 0 0}.chat-panel{border-left:1px solid var(--line);display:flex;flex-direction:column;background:#fff;width:22rem}.chat-panel.collapsed{width:2.1rem}.chat-toggle{flex:1;border:0;background:transparent;cursor:pointer;writing-mode:vertical-rl;transform:rotate(180deg);font-size:.72rem;letter-spacing:.05em;color:#64748b;padding:.5rem 0}.chat-toggle:hover{background:#f1f5f9;color:#1e293b}.chat-collapse{margin-left:auto;border:0;background:transparent;cursor:pointer;color:#94a3b8;font-size:1rem;padding:0 .6rem}.chat-collapse:hover{color:#1e293b}.chat-tabs{display:flex;border-bottom:1px solid var(--line)}.chat-tabs button{flex:1;padding:.5rem;border:0;background:transparent;font-size:.8rem}.chat-tabs button.on{border-bottom:2px solid #2563eb;font-weight:600}.chat-body{flex:1;overflow-y:auto;padding:.75rem}.summary pre{white-space:pre-wrap;font-family:inherit;font-size:.82rem;margin:0 0 .5rem}.md{font-size:.85rem;line-height:1.5}.md h2,.md h3,.md h4{margin:.9rem 0 .35rem;line-height:1.25}.md h2{font-size:1rem}.md h3{font-size:.9rem}.md h4{font-size:.85rem;color:var(--muted, #64748b)}.md>:first-child{margin-top:0}.md p{margin:.35rem 0}.md ul,.md ol{margin:.35rem 0;padding-left:1.25rem}.md li{margin:.15rem 0}.md code{background:#f1f5f9;border-radius:3px;padding:.05rem .3rem;font-size:.85em}.summary .md{font-size:.82rem}.report-view{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.9rem 1.1rem;max-width:52rem}.report-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.report-head h3{margin:0}.report-snapshot-head{border-bottom:1px solid var(--line);padding-bottom:.9rem;margin-bottom:.9rem}.report-snapshot-head h3{margin:0 0 .3rem}.report-snapshot-actions{display:flex;gap:.5rem;margin-top:.5rem}.report-print{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:1.5rem}.report-page{border:1px solid var(--line);border-radius:8px;padding:1.1rem 1.3rem}.report-page h2{margin:0 0 .2rem;font-size:1.1rem}.report-subtitle,.report-meta{color:#666;font-size:.82rem;margin:0 0 .7rem}.report-table{width:100%;border-collapse:collapse;font-size:.82rem;margin-top:.7rem}.report-table th,.report-table td{border-bottom:1px solid var(--line);padding:.35rem .5rem;text-align:left}.report-table th{color:#9ca3af;font-weight:500;text-transform:uppercase;font-size:.68rem;letter-spacing:.02em}.report-page dl.pairs{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem}.report-page .pair-row dt{color:#555}@media print{body *{visibility:hidden}.report-print,.report-print *{visibility:visible}.report-print{position:absolute;left:0;top:0;width:100%;margin:0}.report-page{border:none;padding:0;break-after:page}.report-page:last-child{break-after:auto}.report-page .sq-plot,.report-page .sq-plot.hero{max-width:100%;break-inside:avoid}}.messages{display:flex;flex-direction:column;gap:.4rem}.msg{padding:.4rem .6rem;border-radius:8px;font-size:.85rem;max-width:90%}.msg-user{align-self:flex-end;background:#e8effd}.msg-assistant{align-self:flex-start;background:#f3f3f3}.chat-progress{color:#64748b;font-style:italic;animation:chat-pulse 1.4s ease-in-out infinite}@keyframes chat-pulse{0%,to{opacity:.55}50%{opacity:1}}.chat-input{display:flex;gap:.4rem;padding:.6rem;border-top:1px solid var(--line)}.chat-input input{flex:1}button.ghost{border:1px solid var(--line);background:#fafafa;border-radius:4px;font-size:.75rem;padding:.15rem .4rem}.history-panel{margin-top:1.5rem;border-top:1px solid var(--line);padding-top:.75rem}.history-panel h3{font-size:.85rem}.revs{list-style:none;padding:0;font-size:.83rem}.revs li{display:flex;justify-content:space-between;gap:.5rem;padding:.25rem 0}.revs li.picked{background:#f0f6ff}.who{font-size:.65rem;text-transform:uppercase;border-radius:3px;padding:0 .25rem}.who-user{background:#e0e7ff;color:#3730a3}.who-ai{background:#dcfce7;color:#166534}.rev-badge{font-size:.62rem;text-transform:uppercase;letter-spacing:.03em;border-radius:3px;padding:0 .3rem;margin-right:.3rem;font-weight:600}.rev-working{background:#fef3c7;color:#92400e}.rev-released{background:#1e293b;color:#fff;text-transform:none;letter-spacing:0}.rev-patch{margin:.15rem 0 0 1.2rem;display:flex;flex-wrap:wrap;gap:.15rem .6rem;font-size:.72rem;color:var(--muted, #64748b)}.rev-patch code{font-size:.72rem}.rev-actions{display:flex;gap:.2rem;flex-shrink:0}.rev-actions button{padding:0 .3rem;font-size:.75rem}.diff-row,.diff code{font-size:.8rem}.signal-chain{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:1rem;margin-bottom:1rem}.chain-editor,.cascade-output,.aux-circuit,.bom-view,.thermal-view,.swapc-view,.requirements-view,.layout-view{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.75rem .9rem}.swapc-cards{display:flex;flex-direction:column;gap:.6rem;margin:.6rem 0;max-width:56rem}.swapc-card{border:1px solid var(--line);border-radius:6px;padding:.45rem .7rem}.swapc-card h4{margin:0 0 .3rem;font-size:.82rem}.swapc-card .pairs{margin:0}.swapc-card .pair-row{gap:1rem;padding:.08rem 0;align-items:baseline}.swapc-card .pair-row dd{text-align:right}.swapc-costedit{display:inline-flex;align-items:center;gap:.25rem;flex-wrap:wrap;justify-content:flex-end}.swapc-costedit input{width:4.5rem;padding:.1rem .25rem;border:1px solid var(--line);border-radius:4px}.swapc-costedit select{padding:.1rem;font-size:.75rem}.swapc-costedit button{padding:0 .3rem;font-size:.75rem}.swapc-qty{display:flex;flex-wrap:wrap;gap:.1rem 1rem;font-size:.78rem;margin-top:.35rem;padding-top:.3rem;border-top:1px dashed var(--line)}.swapc-margins{display:grid;gap:.5rem;max-width:44rem}.swapc-axis{display:grid;grid-template-columns:3.2rem 1fr;align-items:center;gap:.5rem}.swapc-bar-track{position:relative;height:12px;background:#f1f5f9;border-radius:3px;overflow:hidden}.swapc-bar-fill{height:100%;background:#2563eb}.swapc-bar-fill.over{background:#dc2626}.swapc-bar-budget{position:absolute;top:0;right:0;width:2px;height:100%;background:#0f172a}.swapc-bar-labels{display:flex;justify-content:space-between;font-size:.7rem;margin-top:1px;grid-column:2}.swapc-axis>span:first-child{font-size:.78rem;text-transform:uppercase;color:#64748b}.swapc-assumptions{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.4rem .8rem;max-width:56rem}.swapc-assume{display:flex;flex-direction:column;font-size:.75rem;gap:.1rem}.swapc-assume input{padding:.15rem .3rem;border:1px solid var(--line);border-radius:4px}.requirements-view section{margin:.9rem 0;max-width:44rem}.requirements-view h4{margin:0 0 .3rem;font-size:.85rem}.requirements-view textarea{width:100%;box-sizing:border-box;font:inherit;padding:.4rem .5rem;border:1px solid var(--line);border-radius:4px;resize:vertical}.req-paste-label{display:block;font-size:.8rem;font-weight:600;margin-bottom:.25rem}.req-paste-actions{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-top:.4rem;font-size:.78rem}.req-review{border:1px solid #fcd34d;background:#fffbeb;border-radius:6px;padding:.5rem .7rem}.req-review-table{border-collapse:collapse;width:100%;font-size:.82rem}.req-review-table th{text-align:left;font-weight:600;color:#64748b;padding:.15rem .5rem;border-bottom:1px solid var(--line)}.req-review-table td{padding:.15rem .5rem;border-bottom:1px solid #f1f5f9}.req-review-table .req-cur{color:#64748b}.req-review-table .req-prop{font-weight:600}.req-review-table tr.req-same .req-prop{font-weight:400;color:#64748b}.req-keep-summary{display:block;font-size:.8rem;margin:.5rem 0}.req-review-actions,.req-paste-actions{gap:.5rem}.req-review-actions{display:flex;margin-top:.5rem}.req-generate{margin:1.5rem 0;padding-top:1rem;border-top:1px solid var(--line)}.req-gen-msg{margin-top:.6rem;padding:.5rem .7rem;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;font-size:.85rem}.req-grid{margin:0;display:grid;gap:.15rem}.req-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.12rem 0}.req-row dt{font-size:.85rem}.req-row dd{margin:0}.req-id{display:inline-block;min-width:1.6rem;margin-right:.4rem;color:#64748b;font-size:.75rem;font-variant-numeric:tabular-nums}.req-custom{margin:1.5rem 0;padding-top:1rem;border-top:1px solid var(--line)}.req-custom-list{list-style:none;margin:.6rem 0;padding:0;display:flex;flex-direction:column;gap:.3rem}.req-custom-row{display:flex;align-items:baseline;gap:.5rem}.req-custom-text{flex:1;font-size:.85rem}.req-custom-row select{font:inherit;font-size:.8rem;padding:.1rem .3rem;border:1px solid var(--line);border-radius:4px}.req-custom-add{display:flex;gap:.4rem;margin-top:.4rem}.req-custom-add input{flex:1;padding:.3rem .5rem;border:1px solid var(--line);border-radius:4px;font:inherit}.req-review-custom{margin-top:.7rem}.req-review-custom h5{margin:0 0 .3rem;font-size:.8rem;color:#64748b}.req-custom-proposed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.req-custom-proposed label{display:flex;align-items:baseline;gap:.4rem}.req-entry{display:inline-flex;align-items:baseline;gap:.3rem}.req-entry input{width:5rem;text-align:right;padding:.12rem .3rem;border:1px solid var(--line);border-radius:4px;font:inherit}.req-unit{font-size:.75rem;color:#64748b;min-width:2.5rem}.verify-patterns-view{max-width:52rem}.verify-patterns-view section{margin:1.1rem 0;padding-top:.9rem;border-top:1px solid var(--line)}.verify-patterns-view section:first-of-type{border-top:none;padding-top:0}.vp-upload,.vp-convention{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.9rem}.vp-upload label,.vp-convention label{display:flex;flex-direction:column;font-size:.78rem;font-weight:500;gap:.25rem}.vp-file{flex-direction:row!important;align-items:center;gap:.5rem!important;font-weight:400!important;border:1px solid var(--line);border-radius:6px;padding:.3rem .6rem;cursor:pointer}.vp-upload select,.vp-convention select{font:inherit;padding:.2rem .4rem;border:1px solid var(--line);border-radius:4px}.vp-convention{align-items:center}.vp-plots{display:flex;flex-direction:column;gap:.5rem}button.ghost{background:none;border:1px solid var(--line)}.layout-body{display:grid;grid-template-columns:minmax(14rem,20rem) 1fr;gap:1rem;align-items:start}.layout-place{margin:.5rem 0;padding-top:.4rem;border-top:1px solid var(--line)}.layout-place .nav-subgroup-title{margin-bottom:.2rem;display:flex;align-items:baseline}.layout-plots{display:grid;gap:.8rem}.bf-editor{background:#fffbeb;border:1px solid #fcd34d;border-radius:6px;padding:.4rem .5rem;margin-bottom:.4rem}.bf-editor-actions{display:flex;flex-wrap:wrap;gap:.35rem}.bf-group-table{width:100%;border-collapse:collapse;font-size:.8rem}.bf-group-table td{padding:.15rem .3rem;border-bottom:1px solid var(--line)}.bf-group-table tr.on{background:#fffbeb}.bf-group-table tr:hover:not(.on){background:#f8fafc}@media (max-width: 820px){.layout-body{grid-template-columns:1fr}}.thermal-view .pp-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.thermal-controls{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;align-items:flex-end;margin:.5rem 0}.thermal-controls .num-slider{min-width:12rem}.thermal-map{margin:.6rem 0}.bom-view .pp-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.bom-scroll{overflow-x:auto;margin:.5rem 0}.bom-view h3,.chain-editor h3,.cascade-output h3,.aux-circuit h3{margin:0 0 .5rem;font-size:.82rem}.cascade-warnings{margin:.4rem 0;padding-left:1rem;font-size:.78rem;color:#92400e}.aux-circuit .stage-table{margin-top:.4rem}.aux-subhead,.cascade-subhead{margin:.9rem 0 .2rem;font-size:.78rem;font-weight:600}.stage-list{list-style:none;margin:0 0 .5rem;padding:0}.stage-row{display:flex;flex-wrap:nowrap;align-items:center;gap:.5rem;padding:.15rem 0;border-bottom:1px solid var(--line);font-size:.8rem}.stage-row .stage-name{width:6.5rem}.stage-row select,.stage-row input{font-size:.78rem;padding:.1rem .25rem}.stage-specs label{display:inline-flex;align-items:center;gap:.15rem;margin-right:.3rem}.stage-specs input{width:3.4rem}.wilkinson-tree-badge{font-size:.7rem;white-space:nowrap;margin-right:.3rem}.wilkinson-tree-badge.ok{color:#15803d}.wilkinson-tree-badge.bad{color:#b3261e}.stage-actions{margin-left:auto;display:flex;gap:.15rem}.stage-model{display:inline-flex;align-items:center;gap:.2rem}.stage-model button{font-size:.72rem;padding:.1rem .3rem}.stage-table{width:100%;border-collapse:collapse;font-size:.75rem;margin-top:.5rem}.stage-table th,.stage-table td{border-bottom:1px solid var(--line);padding:.15rem .3rem;text-align:right}.stage-table th:first-child,.stage-table td:first-child{text-align:left}.stage-table tr.varies-row{background:#fef3e7}@media (max-width: 900px){.signal-chain{grid-template-columns:1fr}}.array-pattern{display:grid;grid-template-columns:minmax(0,1fr) 14rem;gap:1rem;margin-bottom:1rem}.ap-plot,.ap-controls{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.75rem .9rem}.ap-controls h3{margin:0 0 .5rem;font-size:.82rem}.ap-controls label{display:flex;flex-direction:column;font-size:.78rem;font-weight:500;margin-bottom:.4rem}.ap-controls label output{color:#2563eb;font-variant-numeric:tabular-nums}.ap-controls input[type=range]{width:100%}.num-slider .num-slider-head{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem}.num-slider .num-slider-entry{display:inline-flex;flex:0 0 auto;align-items:baseline;justify-content:flex-end;gap:.2rem}.num-slider-entry input{width:4.5rem;padding:.1rem .3rem;font-size:.74rem;font-variant-numeric:tabular-nums;text-align:right}.num-slider-entry input.range-pair-box{width:3rem}.num-slider-unit{color:#6b7280;font-size:.72rem;font-weight:500}.range-pair{display:flex;gap:.4rem}.note{color:#92600b;background:#fdf6e3;border:1px solid #f0d9a8;border-radius:6px;padding:.35rem .55rem;font-size:.74rem}.grating-status{font-size:.74rem;margin:.25rem 0 0;text-align:center}.fidelity-badge{display:inline-flex;align-items:center;gap:.2rem;font-size:.68rem;font-weight:500;color:#6b5a1a;background:#fbf3d9;border:1px dashed #c9a94a;border-radius:4px;padding:.05rem .35rem;margin-left:.4rem;vertical-align:middle;cursor:help;white-space:nowrap}.box-mode{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem;font-size:.72rem;color:var(--muted, #64748b);margin:.35rem 0}.box-mode button{font-size:.72rem;padding:.1rem .45rem}.box-mode button.on{background:#2563eb;color:#fff;border-color:#2563eb}.range-pair input[type=range]{width:100%}.cascade-bw{display:flex;flex-direction:column;font-size:.78rem;font-weight:500;gap:.2rem;margin-bottom:.6rem}.cascade-bw output{color:#2563eb;font-variant-numeric:tabular-nums}.cascade-bw input[type=range]{width:100%}.ap-controls .pairs{margin-top:.6rem;border-top:1px solid var(--line);padding-top:.5rem}.ap-hint{font-size:.72rem;margin:.3rem 0 0;text-align:center}@media (max-width: 900px){.array-pattern{grid-template-columns:1fr}}.aperture-design{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:1rem;margin-bottom:1rem}.ad-controls,.ad-plots{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.75rem .9rem}.ad-controls h3{margin:0 0 .5rem;font-size:.82rem}.ad-controls label{display:flex;flex-direction:column;font-size:.76rem;font-weight:500;margin-bottom:.35rem}.ad-controls label output{color:#2563eb;font-variant-numeric:tabular-nums}.ad-controls input[type=range]{width:100%}.ad-controls label.inline-check{flex-direction:row;align-items:center;gap:.4rem;font-weight:400}.ad-controls label.inline-check input{width:auto}.ad-controls .pairs{margin-top:.6rem;border-top:1px solid var(--line);padding-top:.5rem}.ad-plots{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem}.ad-plots figure{margin:0}.ad-plots figure:last-child{grid-column:1 / -1}.ad-plots figcaption{font-size:.72rem;color:#666;margin-bottom:.2rem}@media (max-width: 1000px){.aperture-design,.ad-plots{grid-template-columns:1fr}}.aperture-design.plots-top{display:flex;flex-direction:column;gap:.75rem}.aperture-design.plots-top .ad-plots{order:1}.aperture-design.plots-top .ad-plots figure:last-child{grid-column:auto}.aperture-design.plots-top .ad-controls{order:2;display:flex;flex-wrap:wrap;align-items:flex-end;gap:.45rem 1.1rem}.aperture-design.plots-top .ad-controls h3{width:100%;margin:0}.aperture-design.plots-top .ad-controls>label{margin:0;min-width:8.5rem;flex:0 1 12rem}.aperture-design.plots-top .ad-controls .pairs{width:100%;margin-top:.4rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));column-gap:1rem}.aperture-design.plots-top .ad-controls .pairs>p{grid-column:1 / -1;margin:.2rem 0 0}@media (max-width: 720px){.aperture-design.plots-top .ad-plots{grid-template-columns:1fr}}.thinning-compare{order:1;border:1px solid var(--line);border-radius:8px;padding:.6rem .8rem;background:#fbfbfd}.thinning-compare .tc-title{margin:0 0 .5rem;font-size:.78rem;font-weight:600}.thinning-compare .tc-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.thinning-compare figure{margin:0}.thinning-compare figcaption{font-size:.72rem;color:#666;margin-bottom:.2rem}.thinning-compare .tc-note{margin:.5rem 0 0;font-size:.74rem}@media (max-width: 720px){.thinning-compare .tc-grid{grid-template-columns:1fr}}.array-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1.25rem;padding:.6rem .9rem;margin-bottom:1rem;background:#fff;border:1px solid var(--line);border-radius:8px}.array-bar label{display:flex;flex-direction:column;font-size:.78rem;font-weight:500;min-width:9rem}.array-bar .num-slider{min-width:11rem}.array-bar label output{color:#2563eb;font-variant-numeric:tabular-nums}.array-bar input[type=range]{width:100%}.array-bar .bad{color:var(--bad, #c0392b);font-weight:600}.band-pair{display:grid;grid-template-columns:1fr 1fr;gap:.4rem .6rem}.array-summary{display:flex;gap:.9rem;font-size:.78rem;color:#555;margin-left:auto;align-self:center}.array-summary b{color:#1a1a1a}.bar-metrics{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;margin:0 0 0 auto;align-self:center}.bar-metrics>div{display:flex;flex-direction:column;line-height:1.15}.bar-metrics dt{font-size:.62rem;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8}.bar-metrics dd{margin:0;font-size:.82rem;font-weight:600;color:#1e293b;font-variant-numeric:tabular-nums}.bar-breakdown{font-size:.72rem;font-weight:400;color:#94a3b8;font-variant-numeric:tabular-nums}.bar-stage{width:100%;font-size:.68rem;color:#94a3b8;text-align:right}.dir-toggle{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;align-self:center}.dir-toggle button{border:0;background:#fff;padding:.3rem .7rem;font-size:.78rem;font-weight:600;cursor:pointer}.dir-toggle button.on{background:#2563eb;color:#fff}.antenna-split{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.sq-plot{width:100%;max-width:640px;aspect-ratio:1 / 1;margin:0 auto}.sq-plot.hero{max-width:900px}.sq-plot>div{width:100%;height:100%}.pattern-panel,.antenna-view{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.75rem .9rem}.pp-head{display:flex;justify-content:space-between;align-items:center}.pp-head h3{margin:0 0 .4rem;font-size:.82rem}.pp-stage{font-weight:400;color:#64748b}.pp-head-actions{display:flex;align-items:center;gap:.4rem}.pp-hires{font-size:.7rem;padding:.15rem .5rem}.pp-hires.on{color:#16a34a}.balloon-wrap{position:relative;width:100%;max-width:640px;aspect-ratio:1 / 1;margin:0 auto}.balloon-wrap>div{width:100%;height:100%}.spin-catch{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer}.spin-btn{position:absolute;right:.5rem;bottom:.5rem;font-size:.72rem;padding:.15rem .55rem}.pp-toggle{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}.pp-toggle button{border:0;background:#fff;padding:.2rem .55rem;font-size:.72rem;cursor:pointer}.pp-toggle button.on{background:#2563eb;color:#fff}.subarray-tabs{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.5rem}.subarray-tabs button{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--line);border-radius:6px;background:#fff;padding:.2rem .5rem;font-size:.75rem;cursor:pointer}.subarray-tabs button.on{background:#2563eb;border-color:#2563eb;color:#fff}.subarray-override-dot{width:6px;height:6px;border-radius:50%;background:#f59e0b;display:inline-block}.subarray-note{margin:0 0 .5rem}.antenna-view>.aperture-design,.antenna-view>.array-pattern,.antenna-view>.signal-chain{margin-bottom:0}.antenna-view>.ap-controls.taper-view,.antenna-view>.ap-controls.distortion-view{border:0;padding:0}.signal-chain.editor-only{display:block}.dof-meter{font-size:.82rem;font-weight:600;padding:.3rem .55rem;border-radius:6px;background:#eef4ff;color:#1d4ed8;margin:.2rem 0 .5rem}.dof-meter.bad{background:#fdecec;color:#b91c1c}.taper-view textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;resize:vertical}.region-presets{border:1px solid var(--line);border-radius:6px;padding:.35rem .5rem .4rem;margin:.5rem 0 0}.region-presets .inline-check{display:flex;align-items:center;gap:.4rem;font-size:.76rem;font-weight:400;margin:.15rem 0}.region-presets .inline-check input{width:auto}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:#fff;border-radius:10px;padding:1rem 1.1rem;max-width:480px;max-height:80vh;overflow:auto;box-shadow:0 12px 40px #00000040}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.modal-head h3{margin:0;font-size:.9rem}.pol-custom{display:grid;grid-template-columns:1fr 1fr;gap:.3rem .6rem;margin:0 0 .4rem}.pol-custom label{font-size:.74rem}.pol-custom input{width:100%}.element-diagram-wrap{margin:.4rem 0 .6rem;text-align:center}.element-diagram{display:block;width:100%;max-width:220px;height:auto;margin:0 auto;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px}.element-diagram-wrap figcaption{margin-top:.25rem;font-size:.75rem}.element-geom{margin:.2rem 0 .5rem}.element-geom .pair-row{align-items:center;gap:.5rem}.element-geom .pair-row input{width:6.5rem;text-align:right}.element-geom>button.ghost{margin-top:.3rem;font-size:.72rem}.element-notes{font-size:.72rem;padding-left:1rem;margin:.4rem 0}.element-notes li{margin:.15rem 0}.ap-controls label.checkbox{flex-direction:row;align-items:flex-start;gap:.4rem;font-size:.76rem}.ap-controls label.checkbox input{width:auto;margin-top:.15rem}.export-row{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin:.6rem 0 .3rem;font-size:.8rem}.export-row button{padding:.2rem .6rem}.level-diagram{margin:.75rem 0 0}.level-diagram figcaption{font-size:.72rem;color:#666;margin-bottom:.2rem}.ld-head{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.ld-signal{display:inline-flex;align-items:center;gap:.3rem}.ld-signal input{width:4rem}.ld-note{font-size:.7rem;line-height:1.35;margin:.1rem 0 .3rem}.pl-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.pl-tabs{display:flex;gap:.3rem}.pl-tabs button{padding:.35rem .7rem;font-size:.8rem}.pl-tabs button.on{background:#2563eb;color:#fff;border-color:#2563eb}.component-library{max-width:68rem;margin:2rem auto;padding:0 1.5rem}.cl-modal{width:min(64rem,92vw)}.cl-modal-wrap{max-width:none!important;width:min(64rem,92vw);padding:.9rem 1rem}.cl-head{display:flex;align-items:center;gap:.8rem;margin-bottom:.6rem}.cl-head h1{font-size:1rem;margin:0;flex:1}.cl-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:1rem;align-items:start}.cl-filters{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}.cl-filters input{flex:1;min-width:10rem}.cl-table{width:100%;border-collapse:collapse;font-size:.78rem}.cl-table th,.cl-table td{border-bottom:1px solid var(--line);padding:.3rem .4rem;text-align:left}.cl-table tbody tr{cursor:pointer}.cl-table tbody tr:hover{background:#f1f5f9}.cl-table tbody tr.on{background:#dbeafe}.cl-src{font-size:.68rem;padding:.05rem .35rem;border-radius:999px;background:#e2e8f0;color:#334155;white-space:nowrap}.cl-src-curated{background:#dcfce7;color:#166534}.cl-src-user_uploaded{background:#fef9c3;color:#854d0e}.cl-detail{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.8rem .9rem;position:sticky;top:1rem;max-height:calc(100vh - 3rem);overflow:auto}.cl-empty{text-align:center;padding:2rem 0}.cl-card-head,.cl-editor h2{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.cl-card-head h2,.cl-editor h2{font-size:.95rem;margin:0 0 .5rem}.cl-detail h3{font-size:.78rem;margin:.7rem 0 .3rem}.cl-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.7rem}.cl-editor label{display:flex;flex-direction:column;font-size:.76rem;gap:.15rem;margin-bottom:.4rem}.cl-editor .inline-check{flex-direction:row;align-items:flex-start;gap:.4rem}.cl-row{display:flex;gap:.4rem;align-items:flex-end}.cl-row>*{flex:1}.cl-row button{flex:0 0 auto}.cl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(8rem,1fr));gap:.3rem .5rem}@media (max-width: 780px){.cl-body{grid-template-columns:1fr}.cl-detail{position:static;max-height:none}}.cs-frame{display:flex;justify-content:center;padding:.4rem;background:#f8fafc;border:1px solid var(--line);border-radius:6px;margin-bottom:.4rem;overflow-x:auto}.component-symbol{max-width:100%}.cs-body{fill:#fff;stroke:#334155;stroke-width:1.5}.cs-code{fill:#334155;font-size:13px;font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.cs-stub{stroke:#334155;stroke-width:1.5}.cs-port-arrow{fill:#2563eb}.cs-port-bidir{fill:none;stroke:#334155;stroke-width:1.5}.cs-plabel{fill:#64748b;font-size:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.stage-glyph{width:92px;flex:0 0 92px;height:auto;align-self:center}.sg-wire{stroke:#334155;stroke-width:1.4}.sg-flow{fill:#2563eb}.sg-box{fill:#fff;stroke:#334155;stroke-width:1.4}.sg-perelem{fill:#eef2f7}.sg-stack{fill:#fff;stroke:#9aa7b5;stroke-width:1.1}.sg-bf{fill:#dbeafe;stroke:#2563eb}.sg-mismatch{stroke:#dc2626!important;stroke-width:2!important;fill:#fee2e2!important}.sg-code{fill:#1e293b;font-size:11px;font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.sg-sub{fill:#2563eb;font-size:9px;font-variant-numeric:tabular-nums}.sg-mult{fill:#b45309;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.chain-channel-note{margin:0 0 .4rem;font-size:.72rem}.chain-endcap{width:96px;box-sizing:border-box;text-align:center;font-size:.64rem;line-height:1.15;padding:.25rem .15rem;border-radius:5px}.chain-elements{background:#ecfdf5;border:1px solid #059669;color:#065f46;font-weight:600}.chain-elements span{display:block;color:#059669;letter-spacing:2px}.chain-digital{background:#eff6ff;border:1px solid #2563eb;color:#1d4ed8;font-weight:600;margin-top:.1rem}.stage-body{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;flex:1 1 auto;min-width:0}.varies-by-element-badge{flex:0 0 auto;color:#b3261e;font-size:.72rem;white-space:nowrap;cursor:help}.adc-noise{flex-basis:100%;display:flex;flex-wrap:wrap;gap:.1rem .9rem;font-size:.7rem;color:#6b7280;padding:.15rem 0 0 .1rem}.adc-noise b{color:#1f2937;font-variant-numeric:tabular-nums}.adc-noise em{color:#6b7280;font-style:normal}.approx-tag{margin-left:.25rem;padding:0 .25rem;border:1px solid var(--line);border-radius:3px;font-size:.62rem;font-style:normal;letter-spacing:.02em;text-transform:uppercase;color:#9ca3af}.overview-view{max-width:52rem}.overview-table{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:.75rem}.overview-table th,.overview-table td{border-bottom:1px solid var(--line);padding:.4rem .5rem;text-align:left}.overview-table th{color:#9ca3af;font-weight:500;text-transform:uppercase;font-size:.7rem;letter-spacing:.02em}.overview-table td.ov-status,.overview-table th:last-child{text-align:center}.overview-table tr.ov-fail td.ov-status{color:#dc2626;font-weight:600}.overview-table tr.ov-pass td.ov-status{color:#059669;font-weight:600}.overview-table tr.ov-unknown td.ov-status,.overview-table tr.ov-no_target td.ov-status{color:#9ca3af}.ov-detail{color:#9ca3af;font-size:.8em}.overview-notes{margin-top:1.5rem}.link-button{background:none;border:none;padding:0;color:#2563eb;text-decoration:underline;font:inherit;cursor:pointer}.signin-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#fafafa}.signed-in-badge{position:fixed;top:.6rem;right:.8rem;z-index:1000}
