:root{color:#e9edf7;font-synthesis:none;background:#101521;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}.app-header,main{max-width:1520px;margin:0 auto}.app-header{justify-content:space-between;align-items:end;gap:2rem;padding:2.2rem 1.5rem 1.3rem;display:flex}.eyebrow{color:#9db5ec;letter-spacing:.12em;text-transform:uppercase;margin:0 0 .4rem;font-size:.73rem;font-weight:700}h1,h2,p{margin-top:0}h1{letter-spacing:-.04em;margin-bottom:0;font-size:clamp(1.55rem,3vw,2.3rem)}h2{margin-bottom:0;font-size:1rem}.boundary{color:#aeb8ca;text-align:right;max-width:35rem;margin-bottom:.35rem;font-size:.88rem}main{padding:0 1.5rem 2rem}.workspace{grid-template-columns:minmax(300px,.9fr) minmax(450px,1.1fr);gap:1rem;display:grid}.panel{background:#171e2c;border:1px solid #293348;border-radius:.75rem;box-shadow:0 16px 45px #00000029}.panel-heading{justify-content:space-between;align-items:baseline;gap:1rem;padding:1rem 1.1rem .8rem;display:flex}.panel-heading span,.scene-note,small{color:#9ca9bf;font-size:.78rem}.scene{background:radial-gradient(circle at 50% 0,#2a3d60,#121927 60%);border-block:1px solid #293348;height:470px;overflow:hidden}.scene canvas{width:100%;height:100%;display:block}.scene-note{margin:0;padding:.75rem 1.1rem;line-height:1.4}.controls,.proposal-controls{gap:.65rem;padding:0 1.1rem .8rem;display:flex}input{color:#f3f6fd;background:#101521;border:1px solid #3b4962;border-radius:.4rem;width:100%;padding:.55rem .65rem}button{color:#e9edf7;background:#202b3f;border:1px solid #3b4962;border-radius:.4rem;padding:.5rem .65rem}button:hover,button.active{background:#273a62;border-color:#86aaff}.outcome-filters{flex-wrap:wrap;gap:.38rem;padding:0 1.1rem .8rem;display:flex}.outcome-filters button{font-size:.76rem}.table-head,.element-row{grid-template-columns:minmax(180px,1.35fr) minmax(110px,.8fr) 95px;align-items:center;gap:.8rem;display:grid}.table-head{color:#9ca9bf;letter-spacing:.05em;text-transform:uppercase;border-block:1px solid #293348;padding:.52rem 1.1rem;font-size:.72rem;font-weight:700}.virtual-table{height:420px;overflow:auto}#virtual-rows{position:relative}.element-row{border:0;text-align:left;background:0 0;border-left:3px solid #536078;border-radius:0;width:100%;height:40px;margin:2px 0;padding:.35rem 1.1rem;position:absolute;left:0}.element-row:hover,.element-row.selected{background:#243454}.element-row strong,.element-row small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.outcome-proposed{border-left-color:#4ec78a}.outcome-unsupported{border-left-color:#a5aeba}.outcome-unmapped{border-left-color:#f1b54b}.outcome-refused{border-left-color:#e57878}.outcome-unchanged{border-left-color:#7894c7}.proposal-panel{margin-top:1rem}.proposal-controls label{color:#b9c4d6;gap:.35rem;width:min(100%,260px);font-size:.78rem;display:grid}.proposal-controls button{align-self:end}.validation-state{color:#f0c66b;border-top:1px solid #293348;align-items:baseline;gap:.7rem;margin:0 1.1rem;padding:.75rem 0;font-size:.83rem;display:flex}.validation-state span{color:#9ca9bf}pre{color:#c8d7f2;background:#111724;border-top:1px solid #293348;max-height:400px;margin:0;padding:1rem 1.1rem;font:.75rem/1.5 SFMono-Regular,Consolas,monospace;overflow:auto}#proposal-output[data-state=error]{color:#ffd1d5;background:#2a171f;border-color:#a84b55}.metrics-panel{margin-top:1rem}.runtime-metrics{border-top:1px solid #293348;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:0;display:grid}.runtime-metrics dt,.runtime-metrics dd{margin:0;padding:.75rem 1.1rem}.runtime-metrics dt{color:#9ca9bf;font-size:.76rem}.runtime-metrics dd{color:#e9edf7;font-weight:650}@media (max-width:900px){.app-header{flex-direction:column;align-items:start;gap:.65rem}.boundary{text-align:left}.workspace{grid-template-columns:1fr}.scene{height:360px}}@media (max-width:600px){main,.app-header{padding-inline:.75rem}.proposal-controls,.controls{flex-wrap:wrap}.table-head,.element-row{grid-template-columns:minmax(150px,1fr) 95px}.table-head span:nth-child(2),.element-row span:nth-child(2){display:none}.validation-state{flex-direction:column;align-items:flex-start;gap:.25rem}.runtime-metrics{grid-template-columns:1fr 1fr}}
