[hidden]{display:none!important}
:root{
  --bg:#050a10;--bg2:#07111c;--panel:#0b1622;--panel2:#0d1b2a;--line:#1b3348;
  --text:#eef7ff;--muted:#7f98ad;--blue:#31a8ff;--cyan:#19d4ff;--teal:#00e7c7;
  --green:#29d39a;--amber:#ffad52;--red:#ff6b6b;--shadow:0 24px 65px #0007;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;min-height:100%;background:
  radial-gradient(circle at 88% 2%,#0c2943 0,transparent 30%),
  radial-gradient(circle at 20% 80%,#071b2a 0,transparent 32%),var(--bg);
  color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
button,input,select{font:inherit}
button{cursor:pointer}
a{color:inherit}
.shell{min-height:100vh;display:grid;grid-template-columns:220px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);padding:24px 16px 20px;background:#06101aeb;backdrop-filter:blur(18px);display:flex;flex-direction:column;gap:20px;z-index:10}
.brand{display:flex;gap:10px;align-items:center}
.brandmark{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;font-weight:900;font-size:26px;background:linear-gradient(145deg,#102c42,#09141f);border:1px solid #2e6b96;box-shadow:0 0 28px #219cff33}
.brandtext strong{display:block;font-size:12px;letter-spacing:.15em}.brandtext span{font-size:10px;color:var(--muted)}
.nav{display:grid;gap:5px}
.nav button{border:1px solid transparent;background:transparent;color:#8199ae;text-align:left;padding:10px 11px;border-radius:10px}
.nav button:hover,.nav button.active{color:#fff;background:#0e2030;border-color:#24506f;box-shadow:inset 3px 0 var(--blue)}
.nav small{opacity:.75;margin-right:6px}
.side-foot{margin-top:auto;color:#607c93;font-size:11px;line-height:1.55}
.main{padding:26px 28px 70px;min-width:0}
.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.eyebrow{font-size:10px;letter-spacing:.17em;color:#6e879d;font-weight:800;text-transform:uppercase}
h1{font-size:clamp(30px,4vw,46px);line-height:1.02;margin:6px 0 8px}
h2{margin:5px 0 12px;font-size:20px}
.subline{font-size:11px;color:#4e8bb4;letter-spacing:.13em;font-weight:800}
.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.btn{border:1px solid #2b526f;background:#0b1723;color:#e9f7ff;border-radius:11px;padding:10px 13px;min-height:42px}
.btn:hover{border-color:#4386b4;background:#102234}
.btn.primary{background:linear-gradient(135deg,#147bd0,#0aa99b);border-color:#46c8ee;font-weight:800;box-shadow:0 0 24px #2cb9ff2f}
.btn.danger{border-color:#70343a;color:#ffb0b0}
.badge{display:inline-flex;align-items:center;gap:6px;border:1px solid #2b526f;border-radius:99px;padding:6px 9px;font-size:11px;color:#a9bfd0;background:#08131d}
.dot{width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 10px currentColor}
.metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:20px 0 14px}
.card,.panel{border:1px solid var(--line);background:linear-gradient(180deg,#0d1927,#08111b);border-radius:16px;box-shadow:var(--shadow)}
.card{padding:15px;min-height:118px}
.card span,.card small{display:block;color:var(--muted)}
.card strong{display:block;font-size:31px;margin:7px 0 3px}
.grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.72fr);gap:14px}
.column{display:grid;gap:14px;align-content:start}
.panel{padding:18px}
.panel-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.big{font-size:35px;line-height:1}
.track{height:12px;background:#101e2b;border:1px solid #21384b;border-radius:99px;overflow:hidden;margin-top:14px}
.track>i{display:block;height:100%;width:0;background:linear-gradient(90deg,#218fe4,#00d7bd);transition:width .35s ease}
.meta,.source-line{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin-top:10px}
.source-line{border-top:1px solid #15283a;padding-top:10px}
.source-line b{color:#d8e9f5}
.phasechips{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.phasechip{padding:7px 9px;border:1px solid #213d53;border-radius:9px;font-size:11px;color:#8ba5b9;background:#08131d}
.phasechip.active{border-color:#2e7fac;color:#cfefff;background:#0d2232}
.phasechip strong{color:#fff}
.rows{display:grid}
.row{display:grid;grid-template-columns:58px minmax(0,1fr) 105px;gap:11px;align-items:center;padding:12px 0;border-bottom:1px solid #152637}
.row:last-child{border-bottom:0}
.rowid{font-size:11px;color:#69849a}
.rowmain{min-width:0}
.rowmain strong{display:block;font-size:14px}
.rowmain span{display:block;color:var(--muted);font-size:12px;margin-top:4px;line-height:1.35}
.rowmeta{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.status{padding:5px 8px;border-radius:99px;font-size:10px;border:1px solid;white-space:nowrap;text-transform:capitalize}
.status.done{color:#62e8cf;border-color:#00e7c744;background:#00e7c711}
.status.in_progress{color:#78c6ff;border-color:#31a8ff44;background:#31a8ff11}
.status.planned{color:#efb76e;border-color:#ffad5244;background:#ffad5211}
.status.blocked{color:#ff8b8b;border-color:#ff6b6b44;background:#ff6b6b11}
.progressnum{font-size:10px;color:#718ca2}
.range{display:grid;grid-template-columns:1fr 22px 1fr;gap:9px;align-items:end;margin:14px 0}
.range label{font-size:11px;color:var(--muted);display:grid;gap:6px}
.range input{width:100%;background:#06101a;color:#fff;border:1px solid #29445b;border-radius:10px;padding:10px}
.checks{display:grid;gap:7px;color:#9cb1c4;font-size:12px;margin-bottom:15px}
.notice{border:1px solid #28465f;background:#081521;border-radius:12px;padding:12px;color:#9db4c6;font-size:12px;line-height:1.5}
.notice strong{color:#e9f7ff}
.notice.warn{border-color:#664a26;background:#21170b;color:#d8bb8f}
.notice.error{border-color:#6f3131;background:#211010;color:#e5abab}
.activity{display:grid;gap:12px}
.activity-item{display:grid;grid-template-columns:9px minmax(0,1fr);gap:10px}
.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--teal);margin-top:5px}
.activity-item p{margin:4px 0;color:#8199ad;font-size:12px;line-height:1.45}
.activity-item small{color:#597287}
.nextcard{display:grid;gap:10px}
.nextcard a{text-decoration:none}
.next-title{font-size:16px;font-weight:800}
.next-detail{color:#8ca3b5;font-size:12px;line-height:1.45}
.kv{display:grid;grid-template-columns:1fr auto;gap:8px 14px;font-size:12px}
.kv span{color:var(--muted)}.kv strong{text-align:right}
.section{scroll-margin-top:20px}
.phase-block{margin-top:14px;border-top:1px solid #14283a;padding-top:14px}
.phase-header{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:6px}
.phase-header h3{margin:0;font-size:16px}.phase-header span{font-size:12px;color:#8ba5b9}
.milestones{margin-top:8px;padding-left:18px;color:#7f98ad;font-size:11px;line-height:1.55}
.milestones li{margin:3px 0}
.milestones .done{color:#70d8bd}.milestones .in_progress{color:#79bfe9}.milestones .blocked{color:#e88787}
.prlink{color:#7ec8f4;text-decoration:none}.prlink:hover{text-decoration:underline}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.search{flex:1;min-width:180px;background:#06101a;color:#fff;border:1px solid #29445b;border-radius:10px;padding:10px 11px}
.select{background:#06101a;color:#fff;border:1px solid #29445b;border-radius:10px;padding:10px}
.pr-table{display:grid}
.pr-row{display:grid;grid-template-columns:58px minmax(0,1fr) 95px 105px;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #152637}
.pr-row:last-child{border-bottom:0}
.pr-title{font-size:13px;font-weight:700}

.btn:disabled{opacity:.52;cursor:not-allowed;box-shadow:none}
.gate-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.gate-pill{display:inline-flex;align-items:center;border-radius:999px;padding:3px 6px;font-size:9px;font-weight:750;border:1px solid #31485a;background:#09141d;color:#8097aa}
.gate-pill.pass{border-color:#1f715d;color:#6ee0bd;background:#082019}
.gate-pill.fail{border-color:#773737;color:#ff9292;background:#230e0e}
.gate-pill.pending{border-color:#755526;color:#f1bd72;background:#23180a}
.gate-pill.unknown{border-color:#31485a;color:#8097aa}

.pr-branch{font-size:11px;color:#718ba0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:3px}
.attention-list{display:grid;gap:9px}
.attention-item{border:1px solid #2d4355;background:#08131e;border-radius:11px;padding:11px}
.attention-item strong{font-size:12px}.attention-item div{font-size:11px;color:#8fa6b8;margin-top:4px;line-height:1.45}
.reports{display:grid;gap:9px}
.report{border:1px solid #1d3548;border-radius:11px;padding:11px;background:#07121c}
.report strong{font-size:12px}.report p{font-size:11px;color:#8299ab;line-height:1.45;margin:5px 0}.report small{color:#546e83}
.empty{color:#6f8799;font-size:12px;padding:13px 0}

.auth-gate{position:fixed;inset:0;background:#02060bd9;backdrop-filter:blur(14px);z-index:200;display:grid;place-items:center;padding:20px;overflow:auto}
.auth-card{width:min(470px,100%);padding:24px;text-align:left}
.auth-mark{width:58px;height:58px;border-radius:17px;display:grid;place-items:center;margin-bottom:18px;font-size:29px;font-weight:900;background:linear-gradient(145deg,#12334d,#07131d);border:1px solid #3785b5;box-shadow:0 0 30px #31a8ff35}
.auth-primary{width:100%;margin-top:18px;font-size:15px}
.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:#627b90;font-size:10px;text-transform:uppercase;letter-spacing:.12em}
.auth-divider:before,.auth-divider:after{content:"";height:1px;background:#1a3144;flex:1}
.auth-panel{display:grid;gap:9px;margin-top:14px;padding-top:14px;border-top:1px solid #162a3a}
.auth-label{font-size:11px;color:#8fa6b9;margin-top:3px}
.auth-panel .search{width:100%;min-width:0}
.auth-message{min-height:18px;margin-top:13px;font-size:12px;line-height:1.45;color:#8fa6b9}
.auth-message.success{color:#67e0bc}.auth-message.warn{color:#efb76e}.auth-message.error{color:#ff8b8b}
.auth-footnote{margin:16px 0 0;color:#5e788e;font-size:10px;line-height:1.5}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#0b1722;border:1px solid #2b5d7f;padding:10px 14px;border-radius:10px;opacity:0;pointer-events:none;transition:.2s;max-width:90%;z-index:100}
.toast.show{opacity:1}
.skeleton{opacity:.6}
@media(max-width:1100px){.metrics{grid-template-columns:repeat(3,1fr)}.grid{grid-template-columns:1fr}}
@media(max-width:760px){
  .shell{grid-template-columns:1fr}
  .sidebar{position:sticky;height:auto;top:0;border-right:0;border-bottom:1px solid var(--line);padding:max(10px,env(safe-area-inset-top)) 10px 8px;display:block;overflow-x:auto}
  .brand,.side-foot{display:none}
  .nav{display:flex;min-width:max-content}.nav button{padding:8px 9px;font-size:12px}
  .main{padding:17px 11px 40px}.topbar{display:grid}.actions{justify-content:flex-start}
  .metrics{grid-template-columns:repeat(2,1fr)}.card{min-height:108px}.card strong{font-size:26px}
  .row{grid-template-columns:44px minmax(0,1fr) 92px}
  .panel-head,.meta,.source-line{display:grid}
  .pr-row{grid-template-columns:44px minmax(0,1fr) 85px}.pr-row .pr-updated{display:none}
  .phasechips{overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px}
}
