: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,select{font:inherit}button{cursor:pointer}.app-header,main{max-width:1520px;margin:0 auto}.app-header{padding:1.6rem 1.5rem 1rem}.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}main{padding:0 1.5rem 2rem}.workspace{grid-template-columns:minmax(280px,.72fr) minmax(440px,1.45fr) minmax(330px,.83fr);align-items:start;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}.model-browser-panel{min-width:0;overflow:hidden}.navigator-note{color:#9ca9bf;border-block:1px solid #293348;margin:0;padding:.65rem 1rem;font-size:.72rem;line-height:1.45}.hierarchy-focus{color:#b9c9e8;background:#111927;justify-content:space-between;align-items:center;gap:.5rem;min-height:2.65rem;padding:.55rem .7rem;font-size:.72rem;display:flex}.hierarchy-focus span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.hierarchy-focus button{flex:none;padding:.25rem .4rem;font-size:.68rem}.model-hierarchy{border-bottom:1px solid #293348;max-height:210px;padding:.45rem;overflow:auto}.hierarchy-node{width:100%;padding:.42rem .45rem .42rem calc(.45rem + var(--tree-depth) * .8rem);text-align:left;background:0 0;border:0;border-left:2px solid #0000;border-radius:.3rem;gap:.15rem;margin:0;display:grid}.hierarchy-node:hover,.hierarchy-node.active{background:#223450;border-left-color:#79a9ff}.hierarchy-node>span{color:#dce6f8;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:650;overflow:hidden}.hierarchy-node small{text-overflow:ellipsis;white-space:nowrap;font-size:.64rem;overflow:hidden}.hierarchy-dataset>span{color:#f3f6fd;font-size:.8rem}.hierarchy-type>span{color:#b9c9e8;font-weight:500}.selected-records{background:#1b2940;border-bottom:1px solid #293348;border-left:3px solid #79a9ff;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .65rem;display:flex}.selected-records[hidden]{display:none}.selected-records>div{gap:.15rem;min-width:0;display:grid}.selected-records strong,.selected-records span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.selected-records strong{font-size:.74rem}.selected-records span{color:#9ca9bf;font-size:.66rem}.selected-records button{flex:none;padding:.25rem .4rem;font-size:.66rem}.record-browser-heading{justify-content:space-between;align-items:baseline;gap:1rem;padding:.75rem 1.1rem;display:flex}.record-browser-heading strong{font-size:.8rem}.record-browser-heading span{color:#9ca9bf;text-align:right;font-size:.7rem}.scene-heading>div:first-child{gap:.25rem;display:grid}.scene-actions{gap:.4rem;display:flex}.scene-actions button{padding:.35rem .5rem;font-size:.7rem}.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-coverage{color:#b8c4d8;background:#111927;border-top:1px solid #293348;gap:.2rem;padding:.65rem 1.1rem;display:grid}.scene-coverage strong{text-transform:uppercase;letter-spacing:.04em;font-size:.84rem}.scene-coverage span{color:#9ca9bf;font-size:.76rem;line-height:1.4}.coverage-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;margin:.3rem 0;display:grid}.coverage-metrics>span{background:#182235;border:1px solid #293a55;border-radius:.4rem;gap:.1rem;padding:.42rem .5rem;display:grid}.coverage-metrics small{color:#91a3c2;text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;overflow:hidden}.coverage-metrics b{color:#e8f0ff;font-size:.75rem}.coverage-types{flex-wrap:wrap;gap:.35rem;margin-top:.25rem;display:flex}.coverage-types button{color:#b8c4d8;background:#182235;border:1px solid #34435d;border-radius:999px;padding:.28rem .48rem;font-size:.7rem}.coverage-types button:hover{color:#e8f0ff;border-color:#79a9ff}.coverage-types button.active{color:#e8f0ff;background:#22375b;border-color:#79a9ff}.scene-coverage[data-state=complete] strong{color:#83d4a4}.scene-coverage[data-state=partial] strong{color:#f0c66b}.scene-coverage[data-state=none] strong,.scene-coverage[data-state=empty] strong{color:#ff9ea8}.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}select{color:#f3f6fd;background:#101521;border:1px solid #3b4962;border-radius:.4rem;width:100%;padding:.55rem 2rem .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}button:disabled{cursor:default;opacity:.45}.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:360px;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}.inspector-panel{min-width:0;overflow:hidden}.tool-tabs{border-bottom:1px solid #293348;gap:.4rem;padding:.75rem 1.1rem;display:flex}.tool-tabs button{min-width:7.5rem}.inspector-panel .tool-tabs{grid-template-columns:1fr 1fr;display:grid}.inspector-panel .tool-tabs button{min-width:0}.inspector-panel .tool-content{max-height:600px;overflow:auto}.tool-tabs button.active{background:#31528a;border-color:#86aaff}.tool-content{min-height:230px;padding:1rem 1.1rem 1.1rem}.tool-heading{justify-content:space-between;align-items:start;gap:1rem;display:flex}.tool-heading h2{margin-bottom:.3rem}.tool-heading p,.tool-note,.tool-empty{color:#9ca9bf;margin-bottom:0;font-size:.82rem;line-height:1.5}.tool-heading>span{color:#b9c9e8;border:1px solid #3b4962;border-radius:999px;flex:none;padding:.25rem .55rem;font-size:.72rem}.tool-empty{border:1px dashed #3b4962;border-radius:.5rem;margin-top:1rem;padding:1rem}.inspection-census{border:1px solid #293348;border-radius:.5rem;grid-template-columns:repeat(4,minmax(0,1fr));margin:1rem 0;display:grid;overflow:hidden}.inspection-census dt,.inspection-census dd{margin:0;padding:.55rem .7rem}.inspection-census dt{color:#91a3c2;text-transform:uppercase;font-size:.7rem}.inspection-census dd{color:#f1f4fb;border-left:1px solid #293348;font-size:.82rem}.inspection-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.inspection-grid h3,.quality-evidence h3{color:#b9c9e8;margin:0 0 .55rem;font-size:.8rem}.property-list{color:#9ca9bf;border:1px solid #293348;border-radius:.45rem;max-height:220px;margin:0;font-size:.76rem;overflow:auto}.property-list dt,.property-list dd{overflow-wrap:anywhere;margin:0;padding:.45rem .6rem}.property-list dt{color:#91a3c2;border-top:1px solid #293348}.property-list dt:first-child{border-top:0}.property-list dd{color:#e9edf7;padding-top:0}.quality-evidence{border-top:1px solid #293348;margin-top:1rem;padding-top:.8rem}.quality-evidence ul{color:#d8c283;max-height:180px;margin:0;padding-left:1.2rem;font-size:.76rem;line-height:1.55;overflow:auto}.quality-filters{flex-wrap:wrap;gap:.4rem;margin-top:1rem;display:flex}.quality-filters button{text-transform:capitalize;font-size:.74rem}.quality-census{margin-bottom:.65rem}.quality-rules{color:#9ca9bf;flex-wrap:wrap;gap:.35rem;max-height:90px;font-size:.72rem;display:flex;overflow:auto}.quality-rules span{border:1px solid #34415a;border-radius:999px;padding:.25rem .45rem}.quality-issues{border:1px solid #293348;border-radius:.5rem;max-height:330px;margin-top:.8rem;overflow:auto}.quality-issue{border-top:1px solid #293348;border-left:3px solid #65748f;justify-content:space-between;align-items:center;gap:.8rem;padding:.6rem .7rem;display:flex}.quality-issue:first-child{border-top:0}.quality-issue>div{gap:.2rem;min-width:0;display:grid}.quality-issue strong{font-size:.76rem}.quality-issue span{color:#d9e1ef;font-size:.76rem}.quality-issue small{color:#8fa0bd}.quality-issue button{flex:none;font-size:.72rem}.severity-error{border-left-color:#e57878}.severity-warning{border-left-color:#f1b54b}.severity-info{border-left-color:#67a8e8}.missing-property-tool{border-top:1px solid #293348;margin-top:1rem;padding-top:.9rem}.missing-property-tool h3{margin:0 0 .3rem;font-size:.85rem}.missing-property-tool>p{color:#9ca9bf;margin:0;font-size:.76rem}.quality-action{min-height:1.2rem;color:#d8c283!important;margin-top:.65rem!important}.library-action{align-items:end;gap:.65rem;margin-top:1rem;display:flex}.library-action label{color:#b9c4d6;flex:1;gap:.35rem;font-size:.78rem;display:grid}.library-action button{flex:none}.tool-note{margin-top:.8rem}.inspection-edit{border-top:1px solid #293348;padding-top:1rem}.draft-ledger{border-top:1px solid #293348;padding:.9rem 1.1rem 1.1rem}.draft-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.draft-heading>div{gap:.2rem;display:grid}.draft-heading span,.draft-ledger>p{color:#9ca9bf;margin:0;font-size:.76rem}.draft-list{border:1px solid #293348;border-radius:.45rem;max-height:260px;margin-top:.75rem;overflow:auto}.draft-row{border-top:1px solid #293348;justify-content:space-between;align-items:center;gap:1rem;padding:.55rem .65rem;display:flex}.draft-row:first-child{border-top:0}.draft-row>div{gap:.2rem;min-width:0;display:grid}.draft-row strong,.draft-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.draft-row strong{font-size:.76rem}.draft-row span{color:#9ca9bf;font-size:.72rem}.draft-row button{flex:none;padding:.3rem .5rem;font-size:.72rem}.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}.local-ifc-panel{margin-top:1rem}.local-ifc-controls{align-items:end;gap:.65rem;padding:0 1.1rem .8rem;display:flex}.local-ifc-controls label{color:#b9c4d6;gap:.35rem;width:min(100%,420px);font-size:.78rem;display:grid}.local-ifc-controls button{flex:none}.local-ifc-note{color:#9ca9bf;border-top:1px solid #293348;margin:0;padding:.75rem 1.1rem;font-size:.8rem}.local-ifc-projection-state{color:#9db5ec;border-top:1px solid #293348;margin:0;padding:.75rem 1.1rem;font-size:.8rem}#local-ifc-output[data-state=error]{color:#ffd1d5;background:#2a171f;border-color:#a84b55}#local-ifc-output[data-state=working]{color:#f0c66b}.quality-skipped-evidence{background:#111927;border:1px solid #293348;border-radius:.65rem;margin:.8rem 0;padding:.8rem}.quality-skipped-evidence h3,.quality-skipped-evidence p{margin:0 0 .55rem}.quality-overview{background:#111927;border:1px solid #34415a;border-radius:.65rem;margin-top:1rem;padding:.8rem}.overview-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.overview-heading h3,.overview-heading p{margin:0}.overview-heading h3{font-size:.9rem}.overview-heading p,.overview-rule span,.quality-focus-actions p{color:#9ca9bf;font-size:.74rem}.overview-rules{border:1px solid #293348;border-radius:.5rem;margin-top:.75rem;overflow:hidden}.overview-rule{border-top:1px solid #293348;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem;display:flex}.overview-rule:first-child{border-top:0}.overview-rule>div:first-child{gap:.2rem;display:grid}.overview-rule strong{font-size:.78rem}.overview-outcomes{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;display:flex}.overview-outcomes button{padding:.32rem .45rem;font-size:.7rem}.quality-focus-actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.quality-focus-actions p{flex:1;min-width:240px;margin:0}.type-quality-overview{border-top:1px solid #293348;margin-top:.8rem;padding-top:.8rem}.type-quality-heading{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.5rem;display:flex}.type-quality-heading strong{font-size:.78rem}.type-quality-heading span{color:#9ca9bf;font-size:.7rem}.type-quality-rows{max-height:300px;overflow:auto}.type-quality-row{color:#dce6f8;text-align:right;background:0 0;border:0;border-top:1px solid #293348;border-radius:0;grid-template-columns:minmax(105px,1.5fr) repeat(7,minmax(58px,.65fr));align-items:center;gap:.4rem;width:100%;padding:.48rem .55rem;font-size:.7rem;display:grid}.type-quality-row span:first-child{text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}button.type-quality-row:hover,button.type-quality-row.active{background:#223450}.type-quality-head{color:#91a3c2;letter-spacing:.03em;text-transform:uppercase;background:#182235;border:0;font-size:.64rem;font-weight:700}.local-validation-tool{border-block:1px solid #293348;margin-top:1rem;padding:.9rem 0}.local-validation-tool h3{margin:0 0 .3rem;font-size:.85rem}.local-validation-tool>p,.validation-retained{color:#9ca9bf;margin:0;font-size:.76rem}.validation-census{grid-template-columns:repeat(6,minmax(0,1fr))}.validation-results{border:1px solid #293348;border-radius:.5rem;max-height:310px;overflow:auto}.validation-result{border-top:1px solid #293348;border-left:3px solid #65748f;justify-content:space-between;align-items:center;gap:.8rem;padding:.6rem .7rem;display:flex}.validation-result:first-child{border-top:0}.validation-result>div{gap:.2rem;min-width:0;display:grid}.validation-result strong,.validation-result span{overflow-wrap:anywhere}.validation-result strong{font-size:.76rem}.validation-result span{color:#9ca9bf;font-size:.72rem}.validation-result button{flex:none;font-size:.72rem}.validation-result.outcome-missing{border-left-color:#f1b54b}.validation-result.outcome-refused{border-left-color:#e57878}.validation-retained{margin-top:.55rem}.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:1200px){.workspace{grid-template-columns:minmax(280px,.7fr) minmax(440px,1.3fr)}.inspector-panel{grid-column:1/-1}.inspector-panel .tool-tabs{grid-template-columns:repeat(4,1fr)}.inspector-panel .tool-content{max-height:none}}@media (max-width:900px){.workspace{grid-template-columns:1fr}.inspector-panel{grid-column:auto}.inspector-panel .tool-tabs{grid-template-columns:1fr 1fr}.model-hierarchy{max-height:260px}.scene{height:360px}.inspection-grid{grid-template-columns:1fr}}@media (max-width:600px){main,.app-header{padding-inline:.75rem}.proposal-controls,.controls,.local-ifc-controls,.library-action,.scene-heading{flex-wrap:wrap}.coverage-metrics{grid-template-columns:1fr}.record-browser-heading{flex-direction:column;align-items:flex-start;gap:.25rem}.record-browser-heading span{text-align:left}.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,.overview-rule,.type-quality-heading{flex-direction:column;align-items:flex-start;gap:.25rem}.overview-outcomes{justify-content:flex-start}.type-quality-overview{overflow-x:auto}.type-quality-row{min-width:680px}.runtime-metrics,.inspection-census,.validation-census{grid-template-columns:1fr 1fr}.tool-tabs{overflow-x:auto}.tool-tabs button{min-width:6.5rem}}
