@import"https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,300;14..32,400;14..32,500;14..32,600;14..32,700;14..32,800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg: #0a0c10;--surface: #12151c;--surface-2: #1a1e2a;--surface-3: #222838;--border: #262d3d;--border-light: #333c52;--text: #eef0f6;--text-muted: #a8aec4;--text-dim: #7e86a0;--green: #34d399;--green-dim: rgba(52, 211, 153, .15);--blue: #60a5fa;--blue-dim: rgba(96, 165, 250, .15);--amber: #fbbf24;--amber-dim: rgba(251, 191, 36, .15);--red: #f87171;--red-dim: rgba(248, 113, 113, .15);--gray: #6b7280;--gray-dim: rgba(107, 114, 128, .15);--purple: #a78bfa;--purple-dim: rgba(167, 139, 250, .15);--accent: #818cf8;--accent-dim: rgba(129, 140, 248, .12);--gap-red: #ef4444;--gap-bg: rgba(239, 68, 68, .06);--covered-bg: rgba(52, 211, 153, .04)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{max-width:100%;margin:0;padding:0;text-align:left}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}.app{min-height:100vh}.header{padding:2.5rem 3rem 2rem;background:linear-gradient(170deg,#141824 0%,var(--bg) 100%);border-bottom:1px solid var(--border);position:relative;overflow:hidden}.header:before{content:"";position:absolute;top:-80px;right:-60px;width:300px;height:300px;background:radial-gradient(circle,rgba(129,140,248,.06) 0%,transparent 70%);pointer-events:none}.header h1{font-size:1.75rem;font-weight:800;letter-spacing:-.035em;line-height:1.15;margin-bottom:.5rem;background:linear-gradient(135deg,#e8eaf0 30%,#818cf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-sub{color:var(--text-muted);font-size:.95rem;max-width:640px}.header-products{display:flex;gap:1rem;margin-top:1rem}.header-product-tag{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;padding:.35rem .75rem;border-radius:6px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted)}.product-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;padding:.35rem .75rem;border-radius:6px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;transition:all .15s;font-family:inherit;-webkit-user-select:none;user-select:none;opacity:.5}.product-toggle:hover{border-color:var(--accent);color:var(--text-muted);opacity:.75}.product-toggle.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);opacity:1}.stats-bar{display:flex;gap:0;border-bottom:1px solid var(--border);background:var(--surface)}.stat{display:flex;align-items:baseline;gap:.5rem;padding:.8rem 1.5rem;border-right:1px solid var(--border)}.stat:first-child{padding-left:3rem}.stat:last-child{border-right:none}.stat-value{font-size:1.3rem;font-weight:800;font-variant-numeric:tabular-nums}.stat-value.green{color:var(--green)}.stat-value.red{color:var(--gap-red)}.stat-value.accent{color:var(--accent)}.stat-label{font-size:.8rem;color:var(--text-muted);letter-spacing:.02em}.legend{display:flex;gap:1.5rem;padding:.75rem 3rem;border-bottom:1px solid var(--border);flex-wrap:wrap;background:var(--surface)}.legend-item{display:flex;align-items:center;gap:.45rem;font-size:.8rem;color:var(--text-dim)}.legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 6px 1px currentColor}.tabs{display:flex;gap:0;padding:0 3rem;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:10}.tab{padding:.7rem 1.2rem;font-size:.85rem;font-weight:600;color:var(--text-dim);cursor:pointer;border:none;background:none;border-bottom:2px solid transparent;transition:all .15s;font-family:inherit;letter-spacing:.01em;position:relative}.tab:hover{color:var(--text-muted)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab .tab-badge{font-size:.7rem;padding:.1rem .4rem;border-radius:3px;margin-left:.35rem;font-weight:700;background:var(--accent-dim);color:var(--accent);font-variant-numeric:tabular-nums}.tab .tab-badge.red-badge{background:var(--red-dim);color:var(--gap-red)}.cards-layout{display:grid;grid-template-columns:1fr 440px;min-height:calc(100vh - 240px)}.cards-list{padding:1.25rem 1.25rem 4rem 2rem;overflow-y:auto}.detail-side-panel{border-left:1px solid var(--border);background:var(--surface);position:sticky;top:42px;height:calc(100vh - 42px);overflow-y:auto;padding:1.25rem}.detail-side-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-dim);font-size:.9rem}.detail-side-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.detail-side-header h3{font-size:1.05rem;font-weight:700;line-height:1.3;letter-spacing:-.01em;margin-bottom:.35rem}.detail-side-products{display:flex;flex-direction:column;gap:.75rem}.state-card{border:1px solid var(--border);border-radius:12px;background:var(--surface);margin-bottom:.75rem;overflow:hidden;transition:all .2s}.state-card:hover{border-color:var(--border-light);box-shadow:0 2px 12px #0003}.state-card.expanded{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 4px 24px #818cf814}.state-card-header{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;cursor:pointer;-webkit-user-select:none;user-select:none}.state-number{width:32px;height:32px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:var(--text-dim);flex-shrink:0;font-family:JetBrains Mono,monospace}.state-title{flex:1;min-width:0}.state-title h3{font-size:.95rem;font-weight:600;line-height:1.3;letter-spacing:-.01em}.state-inputs{display:flex;gap:.3rem;margin-top:.25rem;flex-wrap:wrap}.input-tag{font-size:.7rem;padding:.15rem .4rem;border-radius:4px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);font-family:JetBrains Mono,monospace;white-space:nowrap}.input-tag .label{opacity:.6}.state-previews{display:flex;gap:.5rem;align-items:center;flex-shrink:0;margin-left:auto}.mini-preview{display:flex;flex-direction:column;align-items:center;gap:.25rem}.mini-preview-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600}.expand-icon{color:var(--text-dim);font-size:.65rem;transition:transform .2s;flex-shrink:0;display:none}.expand-icon.open{transform:rotate(180deg)}.split-circle{display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.mini-dot-wrap{width:48px;height:48px;display:flex;align-items:center;justify-content:center}.state-detail{border-top:1px solid var(--border);padding:1.25rem;display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem;background:var(--surface-2)}.product-col{padding:1rem 1.15rem;background:var(--surface);border-radius:10px;border:1px solid var(--border)}.product-col-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.8rem;padding-bottom:.6rem;border-bottom:1px solid var(--border)}.product-icon{font-size:.85rem}.product-name{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.product-summary{font-size:.9rem;font-weight:500;margin-bottom:.75rem;line-height:1.4;color:var(--text)}.visual-dot-area{display:flex;align-items:center;justify-content:center;padding:.75rem 0}.dot-large{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;font-size:1.1rem;color:#fff;box-shadow:0 4px 16px #00000040}.dot-large .badge{position:absolute;bottom:-3px;right:-3px;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6rem;color:#fff;font-weight:700;border:2.5px solid var(--surface)}.dot-large .badge.checkin{background:var(--red)}.dot-large .badge.checkout{background:var(--amber)}.dot-large .star-badge{position:absolute;top:-4px;right:-4px;font-size:.85rem;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}.dot-large.outlined{background:transparent!important;border:3px solid var(--gray);box-shadow:none}.dot-large .cross-icon{font-size:1.3rem;font-weight:700}.dot-large .person-icon{font-size:1.15rem}.pal-led-area{display:flex;align-items:center;justify-content:center;padding:.75rem 0}.pal-led{width:52px;height:52px;border-radius:50%;position:relative;box-shadow:0 0 20px 4px currentColor}.pal-led.green{color:var(--green)}.pal-led.blue{color:var(--blue)}.pal-led.amber{color:var(--amber)}.pal-led.red{color:var(--red)}.pal-led.gray{color:var(--gray)}.pal-dynamic{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;padding:.6rem 0}.pal-dynamic-item{display:flex;flex-direction:column;align-items:center;gap:.3rem}.pal-dynamic-dot{width:30px;height:30px;border-radius:50%;box-shadow:0 0 10px 2px currentColor}.pal-dynamic-dot.green{color:var(--green)}.pal-dynamic-dot.blue{color:var(--blue)}.pal-dynamic-dot.amber{color:var(--amber)}.pal-dynamic-dot.red{color:var(--red)}.pal-dynamic-label{font-size:.72rem;color:var(--text-dim);font-weight:500}.viewer-details{margin-top:.4rem}.viewer-row{display:flex;align-items:center;gap:.6rem;padding:.45rem .5rem;border-radius:6px;margin-bottom:.2rem;transition:background .1s}.viewer-row:hover{background:var(--surface-2)}.viewer-label{font-size:.78rem;color:var(--text-dim);min-width:85px;flex-shrink:0;font-weight:500}.viewer-dot{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6rem;color:#fff;flex-shrink:0;position:relative;box-shadow:0 2px 6px #0003}.viewer-dot.outlined{background:transparent!important;border:2px solid var(--gray);box-shadow:none}.viewer-dot .mini-badge{position:absolute;bottom:-2px;right:-2px;width:12px;height:12px;border-radius:50%;font-size:.35rem;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--surface);color:#fff;font-weight:700}.viewer-desc{font-size:.82rem;color:var(--text-muted)}.na-indicator{display:flex;align-items:center;justify-content:center;padding:1rem;color:var(--text-dim);font-size:.85rem;font-style:italic}.review-container{padding:1.5rem 3rem 4rem}.review-intro{color:var(--text-muted);font-size:.92rem;margin-bottom:1.5rem;line-height:1.6}.review-section{margin-bottom:2rem}.review-section-title{font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.review-section-title.conflicts{color:var(--gap-red)}.review-section-title.missing{color:var(--amber)}.review-section-title.ambiguity{color:var(--accent)}.review-card{border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:1rem 1.25rem;margin-bottom:.5rem;transition:border-color .15s}.review-card:hover{border-color:var(--border-light)}.review-card-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}.severity-badge{font-size:.68rem;padding:.15rem .45rem;border-radius:4px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-family:JetBrains Mono,monospace}.severity-badge.high{background:var(--red-dim);color:var(--gap-red)}.severity-badge.medium{background:var(--amber-dim);color:var(--amber)}.severity-badge.low{background:var(--accent-dim);color:var(--accent)}.review-card h4{font-size:.92rem;font-weight:600;line-height:1.35}.review-card p{font-size:.85rem;color:var(--text-muted);line-height:1.6;margin-top:.25rem}.affected-states{display:flex;gap:.3rem;margin-top:.5rem;flex-wrap:wrap}.affected-tag{font-size:.72rem;padding:.15rem .45rem;border-radius:4px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);font-family:JetBrains Mono,monospace}.matrix-container{padding:1.5rem 3rem 4rem;overflow-x:auto}.matrix-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.85rem}.matrix-table th{padding:.6rem .75rem;text-align:left;font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:42px;z-index:5}.matrix-table td{padding:.55rem .75rem;border-bottom:1px solid var(--border);vertical-align:middle}.matrix-table tbody tr{transition:background .1s}.matrix-table tbody tr:hover td{background:var(--surface)}.matrix-state-name{font-weight:500;white-space:nowrap}.matrix-cell{display:flex;align-items:center;gap:.5rem}.matrix-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0}.matrix-text{color:var(--text-muted);line-height:1.4}.filter-bar{display:flex;gap:.4rem;padding:.65rem 3rem;border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;background:var(--surface)}.filter-label{font-size:.78rem;color:var(--text-dim);font-weight:600;margin-right:.25rem}.filter-chip{font-size:.78rem;padding:.25rem .6rem;border-radius:5px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-dim);cursor:pointer;transition:all .1s;font-family:inherit;font-weight:500}.filter-chip:hover{border-color:var(--accent);color:var(--text-muted)}.filter-chip.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.truth-container{padding:1.5rem 3rem 4rem}.truth-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.25rem}.truth-intro{color:var(--text-muted);font-size:.9rem;line-height:1.6;flex:1}.truth-stats{display:flex;gap:1rem;flex-shrink:0}.truth-stat{padding:.6rem 1rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);text-align:center;min-width:80px}.truth-stat-value{font-size:1.4rem;font-weight:800;font-variant-numeric:tabular-nums}.truth-stat-value.covered{color:var(--green)}.truth-stat-value.gap{color:var(--gap-red)}.truth-stat-label{font-size:.72rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-top:.15rem}.truth-filters{display:flex;gap:.4rem;margin-bottom:1rem;flex-wrap:wrap;align-items:center}.truth-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.truth-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.78rem;font-family:JetBrains Mono,Inter,monospace}.truth-table thead th{padding:.6rem;text-align:left;font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);background:var(--surface-2);border-bottom:2px solid var(--border);position:sticky;top:0;z-index:5;white-space:nowrap;font-family:Inter,sans-serif}.truth-table thead th.output-col{background:var(--surface-3);border-left:2px solid var(--border-light)}.truth-table tbody td{padding:.4rem .6rem;border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap;transition:background .1s}.truth-table tbody tr:hover td{background:#ffffff05}.truth-table tbody tr.gap-row td{background:var(--gap-bg)}.truth-table tbody tr.gap-row:hover td{background:#ef44441a}.truth-table tbody tr.gap-row td.gap-cell{color:var(--gap-red);font-weight:600;font-family:Inter,sans-serif}.truth-table tbody td.output-cell{border-left:2px solid var(--border);font-family:Inter,sans-serif;font-size:.78rem}.truth-table tbody td.output-cell .state-ref{display:inline-flex;align-items:center;gap:.3rem}.truth-table tbody td.output-cell .state-ref .ref-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.truth-table tbody td.output-cell .state-ref .ref-id{color:var(--accent);font-weight:600;font-family:JetBrains Mono,monospace;font-size:.72rem}.truth-table tbody td .val-na{color:var(--text-dim);opacity:.5}.truth-table tbody td .val-active{color:var(--text-muted)}.truth-pagination{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem;border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 10px 10px;font-size:.8rem;color:var(--text-muted)}.truth-pagination button{font-size:.78rem;padding:.3rem .8rem;border-radius:5px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;font-family:inherit;font-weight:500;transition:all .1s}.truth-pagination button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.truth-pagination button:disabled{opacity:.3;cursor:not-allowed}.truth-pagination .page-btns{display:flex;gap:.3rem}.tab-spacer{flex:1}.export-btn-tab{padding:.35rem .75rem;font-size:.78rem;font-weight:600;color:var(--text-dim);cursor:pointer;border:1px solid var(--border);background:var(--surface);border-radius:5px;transition:all .15s;font-family:inherit;margin:auto 0;margin-left:.3rem;letter-spacing:.02em}.export-btn-tab:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.editor-container{display:grid;grid-template-columns:280px 1fr;min-height:calc(100vh - 240px)}.editor-sidebar{border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;overflow:hidden}.editor-sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--border);font-size:.85rem;font-weight:600;color:var(--text-muted);flex-shrink:0}.editor-sidebar-actions{display:flex;gap:.3rem}.add-state-btn,.reset-btn{padding:.25rem .6rem;border-radius:5px;border:1px solid var(--border);background:var(--surface-2);color:var(--accent);cursor:pointer;font-size:.75rem;font-weight:600;font-family:inherit;transition:all .1s}.add-state-btn:hover{background:var(--accent-dim);border-color:var(--accent)}.reset-btn{color:var(--text-dim)}.reset-btn:hover{color:var(--text-muted);border-color:var(--border-light)}.editor-state-list{overflow-y:auto;flex:1}.editor-state-item{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;cursor:pointer;border-bottom:1px solid var(--border);border-left:2px solid transparent;transition:all .1s}.editor-state-item:hover{background:var(--surface-2)}.editor-state-item.active{background:var(--accent-dim);border-left-color:var(--accent)}.editor-state-id{font-size:.75rem;font-family:JetBrains Mono,monospace;color:var(--text-dim);min-width:20px;flex-shrink:0}.editor-state-name{flex:1;font-size:.85rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-state-dots{display:flex;gap:3px;flex-shrink:0}.tiny-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.state-form{padding:1.5rem 2rem 3rem;overflow-y:auto}.editor-empty{display:flex;align-items:center;justify-content:center;min-height:400px;color:var(--text-dim);font-size:.85rem}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.form-header h3{font-size:1.05rem;font-weight:700;letter-spacing:-.02em}.form-header-actions{display:flex;gap:.4rem}.save-btn{padding:.4rem 1.4rem;border-radius:6px;border:none;background:var(--accent);color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;font-family:inherit;transition:opacity .15s}.save-btn:hover{opacity:.85}.delete-btn{padding:.4rem 1rem;border-radius:6px;border:1px solid var(--red);background:transparent;color:var(--red);cursor:pointer;font-size:.85rem;font-weight:600;font-family:inherit;transition:all .15s}.delete-btn:hover{background:var(--red-dim)}.form-section{margin-bottom:1.25rem;padding:1rem 1.25rem;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.form-section-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--accent);margin-bottom:.85rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.form-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.65rem}.form-row.column{flex-direction:column;align-items:stretch}.form-row>label{min-width:105px;font-size:.85rem;color:var(--text-muted);font-weight:500;flex-shrink:0}.editor-input{flex:1;padding:.42rem .65rem;border-radius:6px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:.85rem;font-family:inherit;outline:none;transition:border-color .15s}.editor-input:focus{border-color:var(--accent)}.editor-input.sm{max-width:130px;flex:0 0 130px}.editor-select{padding:.42rem .65rem;border-radius:6px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:.85rem;font-family:inherit;outline:none;cursor:pointer;transition:border-color .15s}.editor-select:focus{border-color:var(--accent)}.checkbox-wrap{display:flex;align-items:center;gap:.4rem;cursor:pointer}.checkbox-label{font-size:.85rem;color:var(--text-muted)}.color-picker{display:flex;align-items:center;gap:.5rem}.color-presets{display:flex;gap:.2rem}.color-swatch{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all .12s;padding:0}.color-swatch:hover{transform:scale(1.2)}.color-swatch.active{border-color:#fff;box-shadow:0 0 0 1px var(--accent)}.color-input{width:28px;height:28px;border:1px solid var(--border);border-radius:4px;background:var(--surface-2);cursor:pointer;padding:1px}.details-list{width:100%}.detail-row,.dynamic-row{display:flex;align-items:center;gap:.4rem;margin-bottom:.4rem;padding:.5rem;border-radius:8px;background:var(--surface-2);border:1px solid var(--border)}.remove-btn{width:24px;height:24px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--red);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.6rem;flex-shrink:0;transition:all .1s;padding:0}.remove-btn:hover{background:var(--red-dim);border-color:var(--red)}.add-btn{padding:.4rem .75rem;border-radius:6px;border:1px dashed var(--border);background:transparent;color:var(--accent);cursor:pointer;font-size:.8rem;font-weight:500;font-family:inherit;width:100%;transition:all .12s;margin-top:.2rem}.add-btn:hover{border-color:var(--accent);background:var(--accent-dim)}.sd-page{padding:0}.sd-layout{display:grid;grid-template-columns:1fr 420px;min-height:calc(100vh - 240px)}.sd-main{padding:1.5rem 1.5rem 4rem 2rem;overflow-y:auto}.sd-side-panel{border-left:1px solid var(--border);background:var(--surface);position:sticky;top:42px;height:calc(100vh - 42px);overflow-y:auto;padding:1.25rem}.sd-side-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-dim);font-size:.9rem}.sd-side-products{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}.sd-picker{display:flex;gap:.35rem;padding:1rem 2rem 0;margin-bottom:.75rem}.sd-pick{padding:.4rem .85rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text-dim);font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .12s}.sd-pick:hover{border-color:var(--accent);color:var(--text-muted)}.sd-pick.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.sd-info{margin-bottom:1.25rem}.sd-info h3{font-size:1.1rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.25rem}.sd-info p{color:var(--text-muted);font-size:.9rem}.sd-legend{display:flex;align-items:center;gap:1rem;margin-top:.6rem;font-size:.78rem;color:var(--text-dim)}.sd-leg{display:flex;align-items:center;gap:.35rem}.sd-leg-circ{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sd-leg-line{width:18px;height:0;border-top:1.5px solid var(--text-dim)}.sd-leg-line.dim{border-top-style:dashed;opacity:.5}.sd-leg-sep{width:1px;height:14px;background:var(--border)}.sd-canvas{overflow-x:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:1.5rem}.sd-svg{display:block;width:100%}.sd-trans{transition:opacity .2s ease}.sd-nid{font-size:10px;font-family:JetBrains Mono,monospace;fill:var(--text-dim);font-weight:500}.sd-nname{font-size:12.5px;font-family:Inter,sans-serif;fill:var(--text-muted);font-weight:600}.sd-nname.active{fill:var(--text)}.sd-elabel{font-size:10.5px;font-family:Inter,sans-serif;fill:var(--text-dim);font-weight:500;paint-order:stroke fill;stroke:var(--surface);stroke-width:5px;stroke-linejoin:round;stroke-linecap:round}.sd-elabel.hi{fill:var(--accent)}.sd-detail-head{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.6rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.sd-detail-id{font-size:.82rem;font-family:JetBrains Mono,monospace;color:var(--accent);font-weight:600}.sd-detail-head h4{font-size:1rem;font-weight:700}.sd-detail-inputs{display:flex;gap:.4rem;margin-bottom:.75rem;flex-wrap:wrap}.sd-itag{font-size:.78rem;padding:.2rem .55rem;border-radius:4px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);font-family:JetBrains Mono,monospace}.sd-itag-lbl{color:var(--text-dim);margin-right:.35rem}
