:root{--bg:#101210;--surface:#191c19;--panel:#1d211d;--border:#30362f;--text:#f0f2e9;--muted:#939e90;--lime:#c7f66a;--green:#77c798;--orange:#f1b876;--red:#ef8c83;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;border:1px solid var(--border);border-radius:6px;background:var(--panel);color:var(--text);padding:10px 16px;font-weight:550;transition:background .16s}button:hover{background:#30382a;border-color:#596848}button:disabled{opacity:.4;cursor:wait}button.primary{background:var(--lime);border-color:var(--lime);color:#15200b}button.primary:hover{background:#daf9a2}button.quiet{border:0;background:none;padding:8px 0;text-align:left}button.small{padding:7px 12px;font-size:12px}a{color:var(--lime);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin-top:0}h1{font-size:42px;line-height:1.12;font-weight:530;letter-spacing:-1.9px;margin-bottom:14px}h2{font-size:23px;font-weight:530;letter-spacing:-.6px;margin-bottom:12px}h3{font-size:16px;font-weight:550;margin-bottom:7px}p{margin-bottom:12px}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.eyebrow{font:10px var(--mono);letter-spacing:1.6px;color:var(--lime);margin-bottom:14px}.sidebar{position:fixed;inset:0 auto 0 0;width:226px;background:#151815;border-right:1px solid var(--border);padding:30px 23px;display:flex;flex-direction:column}.brand{font-size:55px;font-weight:850;letter-spacing:-12px;line-height:1;color:var(--lime);padding-right:15px}.brand:hover{text-decoration:none}.brand span{color:var(--text)}.brand-name{font-size:16px;font-weight:700;letter-spacing:2px;margin:22px 0 44px}.brand-name span{display:block;color:var(--muted);font:9px var(--mono);letter-spacing:2.4px;margin-top:5px}.sidebar-label{font:9px var(--mono);color:#697565;letter-spacing:1.5px;margin-bottom:14px}nav{display:grid;gap:6px}nav button{font-size:17px;display:flex;align-items:center;gap:13px;border:0;background:transparent;text-align:left;color:var(--muted);padding:11px 13px}nav button span{font-size:13px;font-weight:450}nav button.active{background:#29331f;color:var(--lime)}.sidebar-bottom{margin-top:auto;padding-top:30px}.sidebar-bottom p{font-size:19px;line-height:1.35;color:#c4cdbd;margin:22px 0}.sidebar-bottom small{display:block;font:9px var(--mono);color:#697565;margin-top:20px}.signal{font:8px var(--mono);letter-spacing:1px;color:var(--green)}.signal i{display:inline-block;width:5px;height:5px;background:var(--green);border-radius:50%;margin-right:7px}.shell{margin-left:226px}header{height:78px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;padding:0 36px}.breadcrumb{font:10px var(--mono);color:var(--muted);letter-spacing:1px}.breadcrumb span{margin:0 15px;color:#54604e}.breadcrumb strong{color:#dce3d5;font-weight:400}.header-right{display:flex;gap:18px;align-items:center}.badge{display:inline-block;font:9px var(--mono);letter-spacing:.7px;border:1px solid var(--border);padding:6px 9px;border-radius:4px;color:var(--muted)}.badge.lime{color:var(--lime);background:#29331f;border-color:#43562e}.badge.orange{color:var(--orange);border-color:#6a4b2d}.badge.red{color:var(--red);border-color:#69443d}main{padding:34px 36px 45px;min-height:calc(100vh - 142px);max-width:1700px;margin:auto}footer{height:64px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;padding:0 36px;color:#75816c;font:9px var(--mono);letter-spacing:.5px}.title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px}.title-row p{max-width:580px;color:var(--muted);margin:0}.title-row h1 em{font-style:normal;color:var(--lime)}.run-picker{max-width:310px;min-width:220px}.run-picker label{font:9px var(--mono);color:var(--muted);letter-spacing:1px}.run-picker select{margin-top:8px}.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);border-radius:8px;background:var(--surface);margin-bottom:24px}.stat{padding:19px 23px;border-right:1px solid var(--border)}.stat:last-child{border:0}.stat label{display:block;font:10px var(--mono);color:var(--muted);letter-spacing:.7px;margin-bottom:9px}.stat strong{font-size:31px;font-weight:500;letter-spacing:-1px}.stat small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.stat .highlight{color:var(--lime)}.two-col{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px}.panel{border:1px solid var(--border);background:var(--surface);border-radius:8px;overflow:hidden;margin-bottom:20px}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;border-bottom:1px solid var(--border);gap:12px}.panel-head h3{margin:0}.panel-head small{color:var(--muted);font:9px var(--mono)}.panel-body{padding:20px}.panel-body.tight{padding:14px 20px}.controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.controls .clock{margin-right:auto;font:13px var(--mono);color:var(--lime)}.floors{display:flex;gap:3px}.floors button{font:10px var(--mono);padding:5px 8px;border-color:transparent;background:transparent;color:var(--muted)}.floors button.active{background:var(--lime);color:#13200a}.canvas-wrap{position:relative;background:#131713;padding:8px 12px;min-height:390px}canvas{width:100%;height:auto;display:block;aspect-ratio:800/620}.map-caption{display:flex;justify-content:space-between;padding:12px 20px;border-top:1px solid var(--border);font:9px var(--mono);color:var(--muted)}.legend{display:flex;gap:12px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lime);margin-right:5px}.dot.blue{background:#81b8e2}.dot.orange{background:var(--orange)}.kv{display:flex;justify-content:space-between;gap:12px;font-size:12px;padding:10px 0;border-bottom:1px solid #2c322a}.kv:last-child{border:0}.kv span:first-child{color:var(--muted)}.kv span:last-child{text-align:right;overflow-wrap:anywhere}.bar{height:5px;background:#343c2f;border-radius:10px;overflow:hidden;margin:12px 0}.bar div{height:100%;background:var(--lime);transition:width .3s}.note{color:var(--muted);font-size:11px;line-height:1.6}.notice{border:1px solid #4b573a;background:#222a1b;border-radius:6px;padding:13px 16px;margin:0 0 20px;color:#c9d7b7;font-size:12px}.notice.warning{background:#2c241b;border-color:#624c31;color:#e4c49a}.section-title{display:flex;justify-content:space-between;align-items:center;margin:8px 0 15px}.section-title h2{margin:0;font-size:20px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card{border:1px solid var(--border);border-radius:7px;padding:19px;background:var(--surface);cursor:pointer}.card:hover{border-color:#66784e;background:#1e241b}.card-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:17px}.avatar{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#303d23;color:var(--lime);font:12px var(--mono);flex-shrink:0}.card p{color:var(--muted);font-size:12px;min-height:36px}.card-bottom{display:flex;justify-content:space-between;font:10px var(--mono);color:var(--muted);margin-top:18px}.tags{display:flex;gap:5px;flex-wrap:wrap}.tag{font:9px var(--mono);color:#b7c5a8;background:#293024;padding:4px 7px;border-radius:3px}.timeline{list-style:none;margin:0;padding:0}.timeline li{padding:13px 0;border-bottom:1px solid #2b3228;display:flex;gap:12px}.timeline li:last-child{border:0}.timeline time{font:9px var(--mono);color:var(--muted);width:38px;flex-shrink:0;padding-top:3px}.timeline p{font-size:12px;margin:0}.timeline small{color:var(--muted);font-size:10px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:22px;flex-wrap:wrap}.toolbar input{flex:1;min-width:180px}.toolbar select{width:auto;max-width:240px}.toolbar .count{font:10px var(--mono);color:var(--muted);margin-left:auto}input,select,textarea{width:100%;color:var(--text);background:#111610;border:1px solid #3c4536;border-radius:5px;padding:10px 12px}input:focus,select:focus,textarea:focus{border-color:var(--lime)}select{color-scheme:dark}textarea{resize:vertical;line-height:1.5}label{display:block;font-size:12px;color:#bac5b0;margin-bottom:15px}label input,label select,label textarea{display:block;margin-top:7px}label small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.form-grid .wide{grid-column:1/-1}.setup-cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px}.template-tabs{display:flex;gap:10px;margin-bottom:24px}.template-tabs button{flex:1;padding:17px;text-align:left}.template-tabs button.active{border-color:var(--lime);background:#252f1c}.template-tabs small{display:block;color:var(--muted);font-size:11px;font-weight:400;margin-top:5px}details{border-top:1px solid var(--border);padding:15px 0}summary{cursor:pointer;color:var(--lime);font-size:12px}details textarea{margin-top:15px;font:11px/1.6 var(--mono)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;font:9px var(--mono);letter-spacing:.8px;color:var(--muted);padding:14px 16px;background:#1d241a;white-space:nowrap}td{padding:13px 16px;border-top:1px solid var(--border);vertical-align:top}tbody tr:hover{background:#1b2118}td .sub{display:block;color:var(--muted);font-size:10px;margin-top:4px}td button{padding:0;border:0;background:none;text-align:left;color:var(--lime)}.empty{text-align:center;border:1px dashed var(--border);border-radius:8px;padding:65px 30px;color:var(--muted)}.empty h2{color:var(--text)}.pagination{display:flex;justify-content:center;gap:15px;margin-top:22px;align-items:center;color:var(--muted);font-size:11px}dialog{background:#191f16;color:var(--text);border:1px solid #536344;border-radius:10px;width:min(900px,94vw);max-height:90vh;padding:32px;box-shadow:0 20px 90px #0009}dialog::backdrop{background:#080c08c9;backdrop-filter:blur(5px)}#loginDialog{max-width:460px}.dialog-close{float:right;border:0;background:none;font-size:22px;padding:0 5px;margin-top:-14px;color:var(--muted)}.profile-header{display:flex;gap:20px;align-items:center;margin:15px 0 24px}.profile-header .avatar{width:65px;height:65px;font-size:21px}.profile-header h2{margin-bottom:5px}.profile-header p{margin:0;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.detail-log{max-height:340px;overflow:auto}.artifact{padding:12px 14px;background:#11170e;border-left:2px solid #7b9b4f;margin:9px 0;font-size:12px;white-space:pre-wrap}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:600px;padding:14px 22px;border-radius:7px;background:var(--lime);color:#1c2a0d;box-shadow:0 8px 50px #0008;opacity:0;pointer-events:none;transition:opacity .2s;z-index:20;font-size:13px}#toast.show{opacity:1}#toast.error{background:#eeb9a4;color:#3b1e15}.upload{display:none}.split{display:flex;align-items:center;justify-content:space-between;gap:12px}.replay{margin-top:15px}.replay select{font-size:11px}.cost{font:25px var(--mono);color:var(--lime);margin:14px 0}.check{display:flex;gap:10px;align-items:center}.check input{width:auto;margin:0}.smallprint{font-size:10px;color:var(--muted)}
@media(min-width:1500px){.two-col{grid-template-columns:minmax(0,1fr) 360px}.cards{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1100px){.sidebar{width:185px;padding:24px 15px}.shell{margin-left:185px}main{padding:26px 22px}header{padding:0 22px}.two-col,.setup-cols{grid-template-columns:1fr}.side-panels{display:grid;grid-template-columns:1fr 1fr;gap:15px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:16px}.stat strong{font-size:26px}.title-row h1{font-size:35px}.sidebar-bottom p{font-size:17px}}@media(max-width:720px){.sidebar{position:static;width:auto;padding:12px 16px;display:block;border-bottom:1px solid var(--border)}.brand{font-size:36px;display:inline-block;letter-spacing:-8px}.brand-name{display:inline-block;margin:0 0 0 18px;font-size:13px;vertical-align:middle}.sidebar-label,.sidebar-bottom{display:none}nav{display:flex;overflow:auto;margin-top:15px;gap:3px}nav button{flex-shrink:0;font-size:12px;padding:8px}nav button span{font-size:11px}.shell{margin:0}header{height:60px;padding:0 16px}.header-right .badge{display:none}.breadcrumb{font-size:8px}.breadcrumb span{margin:0 6px}main{padding:25px 16px}.title-row{display:block}.title-row h1{font-size:35px}.run-picker{margin-top:20px;max-width:none}.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--border)}.stat label{font-size:8px}.cards,.form-grid,.side-panels,.detail-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.canvas-wrap{min-height:230px}.map-caption{font-size:8px;padding:10px;gap:6px}.legend{gap:6px}.panel-head{padding:14px}.floors button{padding:5px}.controls{gap:5px}.controls button{padding:8px 12px}.controls .clock{width:100%;margin-bottom:7px}.template-tabs{flex-direction:column}footer{padding:0 16px;font-size:8px}footer span:nth-child(2){display:none}dialog{padding:23px}h2{font-size:20px}}

/* Junction public role-demo layout, populated exclusively from simulation state. */
.portal{--portal-accent:#b9f475;border:1px solid var(--border,#343b30);border-radius:12px;overflow:hidden;background:#151815}.portal.partner{--portal-accent:#c9a5ff}.portal-toolbar,.portal-identity{display:flex;align-items:center;gap:16px;padding:18px 24px;border-bottom:1px solid #343b30;flex-wrap:wrap}.portal-toolbar>span:last-child{margin-left:auto;color:#acb3a5}.segmented{display:flex;gap:5px}.portal .selected{background:var(--portal-accent);color:#14200e;border-color:var(--portal-accent)}.portal-identity label{flex:1;min-width:180px;margin:0}.portal-identity select{max-width:100%}.portal-layout{display:grid;grid-template-columns:210px minmax(0,1fr)}.portal-nav{padding:22px 14px;border-right:1px solid #343b30;display:flex;flex-direction:column;gap:8px}.portal-nav button{text-align:left;white-space:normal}.portal-person{margin-top:35px;display:flex;gap:10px;flex-direction:column;padding:10px}.portal-person small{color:#a7b09d}.portal-content{padding:28px;min-width:0}.portal-content>.note{margin-bottom:24px}.portal-content h3{margin-top:20px}.portal-project{background:#1e241c;border:1px solid #3c4635;border-radius:8px;padding:20px;margin-bottom:15px;overflow-wrap:anywhere}.portal-project h3{color:var(--portal-accent,#c7f66a);margin:16px 0 8px}.portal-roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.portal-roster button{text-align:left;white-space:normal}.portal-roster small{display:block;color:#a6afa0;margin-top:6px}.portal-content .stats{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-content .two-col{grid-template-columns:1.5fr 1fr}.phase-value{font-size:24px!important}.portal-audit{max-height:650px;overflow:auto}#partnerReviewForm label{margin:18px 0}#partnerReviewForm textarea{min-height:100px}#portalSearch{width:100%}
@media(max-width:1000px){.portal-layout{grid-template-columns:1fr}.portal-nav{flex-direction:row;overflow:auto;border-right:0;border-bottom:1px solid #343b30}.portal-nav button{flex-shrink:0}.portal-nav>.eyebrow,.portal-person{display:none}.portal-content{padding:18px}.portal-content .two-col{grid-template-columns:1fr}.portal-content .stats{grid-template-columns:1fr}.portal-toolbar>span:last-child{margin-left:0}.portal-identity{padding:16px}}
