:root{--bg: #141518;--panel: #1b1d21;--panel2: #212429;--line: #2e3238;--text: #e8e6e1;--text2: #a8a69f;--text3: #6f6e68;--gold: #d4a853;--gold-dim: #8a6f38;--pass: #6fae7f;--flag: #d4a853;--fail: #c96a5a;--info: #7f9db8}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:IBM Plex Sans,sans-serif;font-size:13.5px;overflow:hidden}.mono{font-family:IBM Plex Mono,monospace}.dim{color:var(--text3);font-size:11px}.gold{color:var(--gold)}#app{display:flex;flex-direction:column;height:100vh}header{display:flex;align-items:baseline;gap:14px;padding:11px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}header h1{font-family:Barlow Condensed,sans-serif;font-weight:600;font-size:21px;letter-spacing:.05em}header .sub{color:var(--text2);font-size:12.5px}header .tag{margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--gold);border:1px solid var(--gold-dim);padding:2px 8px;border-radius:3px}header .tag.pursuit{margin-left:0;color:var(--info);border-color:var(--info)}header .tag.btn{margin-left:0;background:none;cursor:pointer;font-family:IBM Plex Mono,monospace}header .tag.btn:hover{border-color:var(--gold)}#main{flex:1;display:flex;min-height:0}.trough-design-chip{margin-top:4px;padding:5px 8px;font-size:10.5px;color:var(--gold);background:var(--panel2);border:1px solid var(--gold-dim);border-radius:4px}.verify-links{margin-left:6px}.verify-links button{background:none;border:none;color:var(--info);cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:10px;padding:0 3px}.verify-links button:hover{color:var(--gold)}.verify-group{display:inline-flex;align-items:center;gap:4px}.view-nav{display:flex;gap:2px;border:1px solid var(--line);border-radius:5px;overflow:hidden}.view-nav button{background:none;border:none;color:var(--text3);cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:11px;padding:4px 10px}.view-nav button.on{background:var(--panel2);color:var(--gold)}.studio{flex:1;overflow-y:auto;padding:16px 20px}.studio-head{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:16px}.studio-head h2{font-family:Barlow Condensed,sans-serif;font-weight:600;font-size:20px;margin-top:2px}.studio-status{margin-left:auto;text-align:right;font-size:11.5px;display:flex;flex-direction:column;gap:2px}.studio-status .ng{color:var(--fail)}.studio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;max-width:1280px}.studio-pane{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px}.studio-pane h3{font-family:Barlow Condensed,sans-serif;font-weight:600;font-size:14px;letter-spacing:.08em;color:var(--text3);text-transform:uppercase;margin:12px 0 10px}.studio-pane h3:first-child{margin-top:0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.studio-num{width:100%;background:var(--panel2);border:1px solid var(--line);color:var(--text);font-family:IBM Plex Mono,monospace;font-size:12.5px;padding:5px 8px;border-radius:4px;outline:none}.studio-props{font-size:11px;line-height:1.8;border-top:1px solid var(--line);padding-top:10px}.studio-dcr{margin-left:auto;font-size:12px}.studio-dcr.ng{color:var(--fail)}.studio-bar{height:4px;background:var(--panel2);border-radius:2px;margin:4px 0 3px 16px;overflow:hidden}.studio-bar div{height:100%;border-radius:2px;opacity:.8}.pane{display:flex;flex-direction:column;background:var(--panel);overflow:hidden}.pane.left{width:268px;border-right:1px solid var(--line)}.pane.right{width:380px;border-left:1px solid var(--line)}.pane-head{padding:12px 16px 10px;border-bottom:1px solid var(--line)}.eyebrow{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.1em;color:var(--gold);text-transform:uppercase}.pane-head h2{font-family:Barlow Condensed,sans-serif;font-weight:600;font-size:19px;margin-top:2px}.pane-body{flex:1;overflow-y:auto;padding:12px 16px 24px}.pane-body section{margin-bottom:20px}.pane-body h3{font-family:Barlow Condensed,sans-serif;font-weight:600;font-size:15px;letter-spacing:.04em;color:var(--text);margin-bottom:9px;display:flex;justify-content:space-between;align-items:baseline}.field{display:block;margin-bottom:10px}.field-label{display:block;font-size:12px;color:var(--text2);margin-bottom:3px}.field-label em{font-style:normal;color:var(--text3);font-size:11px}.field-row{display:flex;align-items:center;gap:9px}.field-val{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--gold);min-width:36px;text-align:right}input[type=range]{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:2px;background:var(--line);cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:13px;height:13px;border-radius:50%;background:var(--gold);border:2px solid var(--bg)}input[type=range]::-moz-range-thumb{width:11px;height:11px;border-radius:50%;background:var(--gold);border:2px solid var(--bg)}select{width:100%;background:var(--panel2);border:1px solid var(--line);color:var(--text);font-family:IBM Plex Mono,monospace;font-size:12px;padding:5px 8px;border-radius:4px}.field.check{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text2)}.spacing-list{display:flex;flex-direction:column;gap:3px}.field-row-2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.spacing-row{display:flex;align-items:center;gap:5px;padding:1px 3px;border-radius:4px}.spacing-row.hl{background:var(--panel2);outline:1px solid var(--gold)}.spacing-num{width:54px;background:var(--panel2);border:1px solid var(--line);color:var(--text);font-family:IBM Plex Mono,monospace;font-size:12px;padding:3px 6px;border-radius:4px}.use-toggle{background:none;border:1px solid var(--line);border-radius:3px;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:9.5px;padding:2px 6px;color:var(--text2)}.use-toggle.corridor{color:var(--flag);border-color:var(--gold-dim)}.line-op{background:none;border:1px solid var(--line);border-radius:3px;color:var(--text3);cursor:pointer;width:20px;font-size:12px}.line-op:hover:not(:disabled){color:var(--gold);border-color:var(--gold-dim)}.line-op:disabled{opacity:.3;cursor:default}.preset-btn{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:5px;color:var(--text2);cursor:pointer;font-size:11.5px;padding:6px;margin-top:2px}.preset-btn:hover{border-color:var(--gold-dim);color:var(--gold)}.field.check input{accent-color:var(--gold)}#viewport{flex:1;position:relative;min-width:0;display:flex;flex-direction:column}.viewport-mount{flex:1;min-height:0}.viewport-mount canvas{display:block}#hint{position:absolute;top:10px;left:12px;font-size:11.5px;color:var(--text3);pointer-events:none}#phasebar{position:absolute;left:12px;right:12px;bottom:12px;background:#141518d1;border:1px solid var(--line);border-radius:8px;padding:10px 14px 12px}#phasebar input[type=range]{width:100%}#line-chip{position:absolute;top:34px;left:12px;display:flex;align-items:center;gap:6px;background:#141518e0;border:1px solid var(--gold);border-radius:6px;padding:6px 10px;font-size:11px;color:var(--gold)}#line-chip button{background:none;border:1px solid var(--gold-dim);border-radius:4px;color:var(--gold);cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:10.5px;padding:2px 7px}#line-chip button:hover{border-color:var(--gold)}.phase-label{font-size:12.5px;margin-top:6px}.phase-label .mono{margin-right:8px}.writeup{background:var(--panel2);border:1px solid var(--line);border-left:2px solid var(--gold);border-radius:0 6px 6px 0;padding:10px 12px}.writeup p{color:var(--text2);font-size:12.5px;line-height:1.6;margin-top:4px}.rule-summary{font-size:11.5px;color:var(--fail);margin-bottom:7px;font-family:IBM Plex Mono,monospace}.rule{border-bottom:1px solid var(--line);padding:8px 0}.rule:last-child{border-bottom:none}.rule-head{display:flex;align-items:center;gap:8px;font-size:12.5px}.rule-head b{font-weight:500}.rule-dot{width:8px;height:8px;border-radius:50%;flex:none}.sev-pass .rule-dot{background:var(--pass)}.sev-info .rule-dot{background:var(--info)}.sev-flag .rule-dot{background:var(--flag)}.sev-fail .rule-dot{background:var(--fail)}.sev-fail .rule-head b{color:var(--fail)}.sev-flag .rule-head b{color:var(--flag)}.rule p{color:var(--text2);font-size:12px;line-height:1.55;margin:4px 0 3px 16px}.rule-basis{font-size:10.5px;color:var(--text3);margin-left:16px}.rule-basis .vu{color:var(--fail);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.bracing{margin-top:8px;padding:7px 10px;background:var(--panel2);border:1px solid var(--line);border-radius:5px;font-size:11px;color:var(--text2);letter-spacing:.02em}.vendor{margin-top:8px}.vendor-slot{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--text2);padding:2.5px 0}.vendor-slot em{font-style:normal;font-family:IBM Plex Mono,monospace;font-size:10.5px}.vendor-dot{width:7px;height:7px;border-radius:50%;flex:none}.vs-missing .vendor-dot{background:var(--fail)}.vs-missing em{color:var(--fail)}.vs-provisional .vendor-dot{background:var(--flag)}.vs-provisional em{color:var(--flag)}.vs-verified .vendor-dot{background:var(--pass)}.ic-banner{margin-bottom:8px;padding:8px 10px;font-size:11.5px;color:var(--text2);background:var(--panel2);border:1px solid var(--gold-dim);border-radius:5px;line-height:1.5}.ic-banner b{color:var(--gold);font-weight:500}.ic-banner.ic-error{border-color:var(--fail);color:var(--fail)}.ic-banner.ic-stale{border-color:var(--fail)}.ic-warn{color:var(--fail);margin-top:4px;font-family:IBM Plex Mono,monospace;font-size:10.5px}th.ic-col,td.ic-col{color:var(--gold-dim);border-left:1px solid var(--gold-dim)}td.ic-col{color:var(--gold);opacity:.85}.pane-error{padding:16px;font-size:12.5px;color:var(--text2)}.pane-error b{color:var(--fail);display:block;margin-bottom:8px}.pane-error .mono{font-size:11px;color:var(--text3);margin-bottom:8px;word-break:break-word}.compare{border-top:2px solid var(--gold-dim);padding-top:12px}.compare h4{font-family:Barlow Condensed,sans-serif;font-weight:600;font-size:13.5px;letter-spacing:.05em;color:var(--text2);margin:14px 0 6px;text-transform:uppercase}.trade{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:3px 0}.trade-tag{font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;padding:1px 6px;border-radius:3px;flex:none}.trade-deleted .trade-tag{color:var(--fail);border:1px solid var(--fail)}.trade-added .trade-tag{color:var(--pass);border:1px solid var(--pass)}.strike{text-decoration:line-through;color:var(--text3)}.trade-amt{margin-left:auto;color:var(--text2);font-size:11.5px}.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:12.5px}.kv span:nth-child(odd){color:var(--text3)}.kv span:nth-child(2n){color:var(--text);font-family:IBM Plex Mono,monospace;font-size:12px}.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:6px}table{width:100%;border-collapse:collapse;font-size:11.5px}th{text-align:left;color:var(--text3);font-weight:400;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:6px 8px;border-bottom:1px solid var(--line);background:var(--panel2)}td{padding:4.5px 8px;border-bottom:1px solid #24272c;color:var(--text2)}tr:last-child td{border-bottom:none}th.r,td.r{text-align:right}.total{display:flex;justify-content:space-between;align-items:baseline;padding:10px 2px 0;font-size:12.5px;color:var(--text2)}.total b{font-family:IBM Plex Mono,monospace;font-size:19px;font-weight:500}.fine{font-size:11px;color:var(--text3);line-height:1.6;margin-top:8px}@media (max-width: 1100px){.pane.left{width:230px}.pane.right{width:320px}}
