:root{--bg:#07101d;--surface:#0d1929;--surface2:#111f32;--line:#21334a;--text:#edf4ff;--muted:#8ca0ba;--blue:#4f7cff;--cyan:#21d4d7;--green:#31d08b;--amber:#ffba4a;--red:#ff6577}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:radial-gradient(circle at 75% -10%,#17385f 0,transparent 34%),var(--bg);color:var(--text);font:16px Inter,system-ui,sans-serif;min-height:100vh}.login-gate{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(430px,100%);padding:42px;background:linear-gradient(145deg,var(--surface2),var(--surface));border:1px solid var(--line);border-radius:22px;box-shadow:0 28px 70px #0006}.login-card h1{margin:18px 0 8px}.login-card p:not(.eyebrow){color:var(--muted);line-height:1.55}.login-card a{display:block;text-align:center;background:linear-gradient(135deg,var(--blue),#315fe4);color:white;text-decoration:none;font-weight:800;padding:13px;border-radius:11px;margin:26px 0 15px}.login-card small{display:block;text-align:center;color:var(--muted)}.shell{display:grid;grid-template-columns:244px 1fr;min-height:100vh}.sidebar{padding:28px 18px;border-right:1px solid var(--line);display:flex;flex-direction:column;height:100vh;position:sticky;top:0}.brand{display:flex;gap:12px;align-items:center;color:var(--text);text-decoration:none;padding:0 10px 34px}.brand-logo{display:block;flex:0 0 auto;width:48px;height:48px;object-fit:contain}.login-brand-logo{width:80px;height:80px;margin-bottom:18px}.brand strong{font-size:.94rem;letter-spacing:.04em}.brand strong,.brand small,.safe strong,.safe small{display:block}.brand small,.safe small{color:var(--muted);font-size:.75rem}.sidebar nav{display:grid;gap:8px}.nav{border:0;background:transparent;color:var(--muted);text-align:left;padding:12px 14px;border-radius:11px;font-size:.94rem;cursor:pointer}.nav.active,.nav:hover{background:#14253a;color:var(--text);box-shadow:inset 3px 0 var(--cyan)}.safe{margin-top:auto;border-top:1px solid var(--line);padding:20px 10px 0;display:flex;gap:10px;align-items:center}.safe i{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 14px var(--green)}main{padding:32px 42px 54px;max-width:1600px;width:100%;margin:auto}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}h1{font-size:1.8rem;margin:0}h2{font-size:1.12rem;margin:0}.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.14em;color:var(--cyan);margin:0 0 7px}.actions{display:flex;gap:10px;align-items:center}.identity{font-size:.76rem;color:var(--muted)}.pill,#refresh,#logout{border:1px solid var(--line);border-radius:10px;padding:9px 13px;background:var(--surface);color:var(--text)}.pill{font-size:.73rem;font-weight:800;border-radius:999px}.pill.demo{color:var(--amber);border-color:#ffba4a66}.pill.live{color:var(--green);border-color:#31d08b66}#refresh,#logout{cursor:pointer}.notice{padding:12px 16px;border:1px solid #ffba4a55;background:#ffba4a12;color:#ffd996;border-radius:12px;margin-bottom:20px}.view{display:none}.view.active{display:block}.env-grid{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:16px}.env,.candidate,.panel,.component,.empty{background:linear-gradient(145deg,var(--surface2),var(--surface));border:1px solid var(--line);border-radius:18px}.env,.candidate{padding:21px}.env.qa{border-top:2px solid var(--cyan)}.env.prd{border-top:2px solid var(--green)}.env>div,.candidate>div{display:flex;justify-content:space-between;color:var(--muted);font-size:.72rem;font-weight:800;margin-bottom:22px}.env i{width:9px;height:9px;border-radius:50%;background:var(--muted)}.env i.ok{background:var(--green);box-shadow:0 0 12px #31d08b99}.env>strong,.candidate>strong{display:block;font-size:1.18rem;margin-bottom:7px}.env small,.candidate small{color:var(--muted)}.candidate b{color:var(--amber)}progress{width:100%;height:5px;margin:15px 0 9px;accent-color:var(--cyan)}.title-row{display:flex;justify-content:space-between;align-items:end;margin:34px 0 15px}.title-row>span{color:var(--muted);font-size:.84rem}.components{display:grid;grid-template-columns:repeat(5,1fr);gap:13px}.component{padding:17px;min-width:0}.component em{display:grid;place-items:center;width:35px;height:35px;border:1px solid #355172;background:#132944;border-radius:10px;color:var(--cyan);font-style:normal;font-weight:900;margin-bottom:18px}.component h3{font-size:.94rem;margin:0 0 6px}.component p{color:var(--muted);font-size:.73rem;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.component div{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:16px;padding-top:13px;font-size:.72rem}.pending{color:var(--amber)}.ready{color:var(--green)}.lower{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;margin-top:18px}.panel{padding:20px}.activity-row{display:grid;grid-template-columns:9px 1fr auto;gap:12px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.activity-row i{width:8px;height:8px;border-radius:50%;background:var(--muted)}.activity-row i.failure{background:var(--red)}.activity-row strong,.activity-row small{display:block;font-size:.8rem}.activity-row small{color:var(--muted);font-size:.7rem;margin-top:3px}.activity-row>span{font-size:.69rem;text-transform:uppercase;color:var(--muted)}.gates ul{list-style:none;padding:0;margin:12px 0 0}.gates li{display:flex;justify-content:space-between;padding:13px 0;border-top:1px solid var(--line);font-size:.8rem}.gates b{color:var(--green);font-size:.7rem;text-transform:uppercase}.detail{min-height:480px;padding:28px}.detail>p:not(.eyebrow),.empty p{color:var(--muted)}table{width:100%;border-collapse:collapse;margin-top:24px}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--line);font-size:.77rem}th{color:var(--muted);font-size:.68rem;text-transform:uppercase}.empty{text-align:center;padding:90px 24px}.empty>strong{font-size:2.6rem;color:var(--cyan)}@media(max-width:1100px){.components{grid-template-columns:repeat(3,1fr)}.env-grid{grid-template-columns:1fr 1fr}.candidate{grid-column:1/-1}}@media(max-width:760px){.shell{display:block}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:15px}.brand{padding-bottom:15px}.sidebar nav{display:flex;overflow:auto}.nav{white-space:nowrap}.safe{display:none}main{padding:24px 16px}.env-grid,.lower{grid-template-columns:1fr}.candidate{grid-column:auto}.components{grid-template-columns:1fr 1fr}.actions{flex-wrap:wrap;justify-content:flex-end}}@media(max-width:460px){.components{grid-template-columns:1fr}header{align-items:flex-start;gap:12px}.actions{flex-direction:column;align-items:flex-end}}
.qa-workspace label{display:block;margin:20px 0 8px;font-weight:600}.qa-workspace select{width:100%;padding:12px;border:1px solid #d7deea;border-radius:10px;background:#fff;color:#17213c;font:inherit}.qa-manifest{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;margin:22px 0}.qa-manifest dt{color:#68758c}.qa-manifest dd{margin:0;overflow-wrap:anywhere;font-size:13px}.qa-operation{border-top:1px solid #e1e6ee;padding:20px 0}.qa-operation h3{margin:0}.qa-operation p{color:#68758c}.qa-operation a,.qa-operation button{display:inline-block;margin:12px 16px 0 0}.qa-workspace button:disabled{opacity:.5;cursor:not-allowed}#qaConfirm{border:0;border-radius:18px;padding:28px;max-width:min(600px,90vw);box-shadow:0 20px 70px #10204040}#qaConfirm::backdrop{background:#12223b80}#qaConfirmSummary{overflow-wrap:anywhere;line-height:1.6}#qaBlockedReason{color:#976512}#qaAccessMessage{padding:12px;background:#f1f5fa;border-radius:8px}#qaOperations>.panel{margin-bottom:22px}
.qa-operation a{color:var(--cyan);overflow-wrap:anywhere}.qa-operation button{background:var(--surface2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px 13px;cursor:pointer}.qa-operation button:disabled{opacity:.65;cursor:wait}.qa-evidence{overflow-wrap:anywhere}.qa-evidence ul{padding-left:22px}.qa-evidence li{margin:8px 0}.qa-evidence a{margin:0}#qaHistoryStatus{color:var(--amber)}#qaHistoryStatus:empty{display:none}


.runtime-card{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:14px;margin-top:20px;border:1px solid #d7e1ed;border-radius:12px;background:#f6f9fc;color:#183247;text-align:left}.runtime-card small{width:100%;font-size:10px;letter-spacing:.08em}.runtime-card strong{font-size:15px}.runtime-environment{font-size:12px;padding:4px 8px;border-radius:6px;background:#e8edf2}.runtime-environment[data-environment="QA"]{background:#fff0ce;color:#795000}.runtime-environment[data-environment="PRD"]{background:#d9f3e6;color:#176341}.sidebar .runtime-card{margin-top:auto}.sidebar .safe{margin-top:16px}.login-card .runtime-card{margin-top:24px}

/* Compact runtime identity, following NexaGO's subdued sidebar footer. */
.runtime-card{background:transparent;color:var(--muted);border:0;border-top:1px solid var(--line);border-radius:0;padding:12px 0;gap:8px}.runtime-card small{display:none}.runtime-card strong{font-size:12px;font-weight:400}.runtime-environment,.runtime-environment[data-environment="QA"],.runtime-environment[data-environment="PRD"]{font-size:12px;background:transparent;color:var(--muted);padding:0}.runtime-environment:before{content:"· ";}.login-card .runtime-card{justify-content:center}
.inventory-compact{width:100%;table-layout:auto}.inventory-compact td,.inventory-compact th{white-space:nowrap;vertical-align:top}.inventory-version{max-width:250px;overflow:hidden;text-overflow:ellipsis}.inventory-detail summary{cursor:pointer;color:var(--cyan)}.inventory-detail[open]>div{position:absolute;right:24px;z-index:20;width:min(460px,calc(100vw - 64px));max-height:340px;overflow:auto;white-space:normal;overflow-wrap:anywhere;padding:18px;background:var(--surface2);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #0008}.inventory-detail dl{margin:0}.inventory-detail dt{color:var(--muted);font-size:12px}.inventory-detail dd{margin:4px 0 12px}.inventory-detail code{white-space:normal;overflow-wrap:anywhere}

#qaAcceptancePanel label{display:block;margin:12px 0 6px}#qaAcceptancePanel textarea,#qaRevokeConfirm textarea{display:block;width:100%;box-sizing:border-box;padding:12px;font:inherit;background:var(--surface2);color:var(--text);border:1px solid var(--line);border-radius:8px;margin-bottom:16px}#qaAcceptancePanel textarea:read-only{opacity:.75}#qaAcceptancePanel button,#qaRevokeConfirm button{padding:9px 13px;border-radius:8px;border:1px solid var(--line);background:var(--surface2);color:var(--text);cursor:pointer}#qaAcceptancePanel button:disabled,#qaRevokeConfirm button:disabled{opacity:.5;cursor:not-allowed}#qaRevokeConfirm{max-width:min(540px,90vw);padding:26px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text)}#qaRevokeConfirm::backdrop{background:#0009}#qaRevokeConfirm label{display:block;margin-bottom:8px}

.prd-progress{list-style:none;padding:0;margin:14px 0;display:grid;gap:8px}.prd-progress li{position:relative;padding-left:26px;color:var(--muted);font-size:.82rem}.prd-progress li:before{content:"○";position:absolute;left:0}.prd-progress li.done{color:var(--green)}.prd-progress li.done:before{content:"✓"}.prd-progress li.active{color:var(--amber)}.prd-progress li.active:before{content:"●"}.prd-progress li.failed{color:var(--red)}.prd-progress li.failed:before{content:"✕"}.prd-result-ok{color:var(--green)!important}.prd-result-failure{color:var(--red)!important}.prd-dispatch-summary{overflow-wrap:anywhere}

.github-usage-card{border-top:2px solid var(--amber)}.github-usage-card>div{align-items:center;margin-bottom:10px}.github-usage-card>div>button{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:7px;padding:5px 8px;cursor:pointer;font-size:.68rem}.usage-open{display:block;width:100%;border:0;background:transparent;color:var(--text);padding:0;text-align:left;cursor:pointer}.usage-open strong{display:block;font-size:1.15rem;margin-bottom:3px}.usage-open small{display:block;color:var(--muted);margin-top:4px}.usage-open progress{accent-color:var(--amber)}.usage-dialog{width:min(980px,94vw);max-height:88vh;overflow:auto;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:0 24px 80px #000a}.usage-dialog::backdrop{background:#0009}.usage-dialog .title-row{margin:0 0 18px}.usage-dialog button{border:1px solid var(--line);background:var(--surface2);color:var(--text);border-radius:8px;padding:8px 12px;cursor:pointer}.usage-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.usage-facts>div{border:1px solid var(--line);border-radius:10px;padding:12px}.usage-facts small,.usage-facts strong{display:block}.usage-facts small{color:var(--muted);font-size:.7rem;margin-bottom:5px}.usage-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.usage-detail-grid section{border:1px solid var(--line);border-radius:12px;padding:14px}.usage-detail-grid ol{padding-left:22px;margin:8px 0}.usage-detail-grid li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:.78rem}.usage-detail-grid li span{overflow:hidden;text-overflow:ellipsis}.usage-detail-grid p,.usage-note,#githubUsageStatus{color:var(--muted);font-size:.78rem}.usage-history{margin:18px 0}.usage-bars{position:relative;height:60px;display:flex;align-items:flex-end;gap:3px;border-bottom:1px solid var(--line);padding:0 3px}.usage-bars i{display:block;flex:1;min-width:2px;max-width:14px;background:var(--cyan);opacity:.75;border-radius:3px 3px 0 0;outline:none}.usage-bars i:hover,.usage-bars i:focus{opacity:1;box-shadow:0 0 0 1px var(--text)}.usage-chart-tooltip{position:absolute;bottom:calc(100% + 7px);transform:translateX(-50%);z-index:3;white-space:nowrap;padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface2);color:var(--text);font-size:.7rem;pointer-events:none}.qa-progress{list-style:none;padding:0;margin:12px 0;display:grid;gap:6px}.qa-progress li{position:relative;padding-left:24px;color:var(--muted);font-size:.78rem}.qa-progress li:before{content:"○";position:absolute;left:0}.qa-progress li.done{color:var(--green)}.qa-progress li.done:before{content:"✓"}.qa-progress li.active{color:var(--amber)}.qa-progress li.active:before{content:"●"}.qa-technical summary{cursor:pointer;color:var(--muted);font-size:.75rem}.qa-technical p{margin:6px 0;color:var(--muted);font-size:.73rem}@media(max-width:760px){.usage-facts,.usage-detail-grid{grid-template-columns:1fr}.usage-dialog{padding:18px}}

.github-usage-card.usage-over{border-top-color:var(--red)}.github-usage-card.usage-budget-warning{box-shadow:inset 0 0 0 1px #ffba4a44}.github-usage-card.usage-budget-critical{box-shadow:inset 0 0 0 1px #ff657766}.usage-budget-progress{margin-top:7px}.usage-progress-danger{accent-color:var(--red)!important}.usage-progress-warning{accent-color:var(--amber)!important}.usage-alert{padding:10px 12px;border-radius:9px;border:1px solid #ffba4a55;background:#ffba4a10;color:#ffd996!important;font-weight:700}.usage-alert.critical{border-color:#ff657766;background:#ff657712;color:#ff9ba8!important}
