*,*:before,*:after{box-sizing:border-box}:root{color-scheme:light;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html,body{margin:0}body{font-size:14px;font-family:system-ui,sans-serif}img{max-width:100%}[hidden]{display:none!important}:root{--green:#134C43;--green-2:#1d6458;--gold:#C7985B;--gold-soft:#f1e5d3;--bg:#F6F3EF;--surface:#ffffff;--surface-2:#faf8f5;--line:#e4ded5;--line-2:#efeae3;--fg:#1d2a27;--muted:#66716d;--faint:#97a09c;--ok:#1f7a4d;--ok-bg:#e3f2ea;--warn:#a1640c;--warn-bg:#fbefd9;--bad:#b3382c;--bad-bg:#f9e3df;--info:#2a5d8a;--info-bg:#e2edf7;--side:#134C43;--side-fg:#e8efe9;--side-muted:#9fbcb3;--side-active:#0e3a33;--shadow:0 1px 2px rgba(19,76,67,.06),0 4px 16px rgba(19,76,67,.05);--f-display:"Noto Kufi Arabic","Noto Sans","Noto Sans Arabic",Tahoma,sans-serif;--f-body:"Noto Sans Arabic","Noto Sans",Tahoma,"Segoe UI",sans-serif;--r:10px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--green:#5fb5a3;--green-2:#7cc7b7;--gold:#d9ae74;--gold-soft:#3a3122;--bg:#111816;--surface:#18211f;--surface-2:#1d2725;--line:#2c3835;--line-2:#24302d;--fg:#e6ece9;--muted:#a2ada9;--faint:#76827e;--ok:#6fcf9c;--ok-bg:#183428;--warn:#e3b064;--warn-bg:#382c17;--bad:#ef8a7e;--bad-bg:#3b1f1b;--info:#8cbbe6;--info-bg:#1b2b3a;--side:#0c1412;--side-fg:#dfe9e5;--side-muted:#7f948d;--side-active:#16302a;--shadow:0 1px 2px rgba(0,0,0,.3);color-scheme:dark}}:root[data-theme=dark]{--green:#5fb5a3;--green-2:#7cc7b7;--gold:#d9ae74;--gold-soft:#3a3122;--bg:#111816;--surface:#18211f;--surface-2:#1d2725;--line:#2c3835;--line-2:#24302d;--fg:#e6ece9;--muted:#a2ada9;--faint:#76827e;--ok:#6fcf9c;--ok-bg:#183428;--warn:#e3b064;--warn-bg:#382c17;--bad:#ef8a7e;--bad-bg:#3b1f1b;--info:#8cbbe6;--info-bg:#1b2b3a;--side:#0c1412;--side-fg:#dfe9e5;--side-muted:#7f948d;--side-active:#16302a;--shadow:0 1px 2px rgba(0,0,0,.3);color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:14px;line-height:1.6}button,input,select,textarea{font:inherit;color:inherit}.num{font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}.app{display:grid;grid-template-columns:248px 1fr;min-height:100%}aside.side{background:var(--side);color:var(--side-fg);padding-block:20px;padding-inline:14px;position:sticky;top:0;height:100vh;overflow:auto;display:flex;flex-direction:column;gap:18px}.brand{display:flex;gap:10px;align-items:center;padding-inline:6px}.brand .mark{width:38px;height:38px;border-radius:9px;background:var(--gold);color:#13302b;display:grid;place-items:center;font-family:var(--f-display);font-weight:700;font-size:18px;flex:none}.brand b{font-family:var(--f-display);font-size:14px;display:block;line-height:1.4}.brand small{color:var(--side-muted);font-size:11px}nav.menu{display:flex;flex-direction:column;gap:2px}nav.menu .grp{font-size:11px;color:var(--side-muted);letter-spacing:.02em;padding:12px 10px 4px}nav.menu button{all:unset;cursor:pointer;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--side-fg);font-size:13.5px}nav.menu button:hover{background:#ffffff0f}nav.menu button.on{background:var(--side-active);box-shadow:inset -3px 0 0 var(--gold)}nav.menu button:focus-visible{outline:2px solid var(--gold)}nav.menu svg{width:17px;height:17px;flex:none;opacity:.85}.badge{margin-inline-start:auto;background:var(--gold);color:#13302b;border-radius:99px;font-size:11px;padding:0 7px;font-weight:700}.side-foot{margin-top:auto;font-size:11.5px;color:var(--side-muted);padding-inline:6px;display:flex;flex-direction:column;gap:8px}.side-foot label{display:flex;flex-direction:column;gap:4px;color:var(--side-fg)}.side-foot select{background:var(--side-active);border:1px solid rgba(255,255,255,.15);border-radius:7px;padding:6px 8px;color:var(--side-fg)}main{min-width:0;padding-block:22px 60px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.wrap{max-width:1240px;margin-inline:auto;display:flex;flex-direction:column;gap:18px}.crumb{font-size:12px;color:var(--muted)}.crumb a{color:var(--green);cursor:pointer;text-decoration:none}.head{display:flex;gap:12px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}.head h1{font-family:var(--f-display);font-size:22px;margin:0;color:var(--green);text-wrap:balance;font-weight:700}.head p{margin:2px 0 0;color:var(--muted);font-size:13px}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 14px;cursor:pointer;font-weight:500;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.btn:hover{border-color:var(--green)}.btn:focus-visible,.inp:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.btn.pri{background:var(--green);border-color:var(--green);color:var(--surface)}.btn.pri:hover{background:var(--green-2)}.btn.gold{background:var(--gold);border-color:var(--gold);color:#1c1408}.btn.danger{color:var(--bad);border-color:var(--bad-bg)}.btn.sm{padding:4px 10px;font-size:12.5px}.btn[disabled]{opacity:.45;cursor:not-allowed}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.panel>.ph{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}.panel>.ph h2{font-family:var(--f-display);font-size:15px;margin:0;font-weight:600}.panel>.pb{padding:16px 18px}.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;cursor:pointer;text-align:start;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow)}.kpi:hover{border-color:var(--green)}.kpi span{font-size:12.5px;color:var(--muted)}.kpi b{font-family:var(--f-display);font-size:30px;line-height:1.25;color:var(--fg);font-variant-numeric:tabular-nums}.kpi small{font-size:11.5px;color:var(--faint)}.kpi.k-bad b{color:var(--bad)}.kpi.k-ok b{color:var(--ok)}.kpi.k-gold b{color:var(--gold)}.grid2{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.bars{display:flex;flex-direction:column;gap:10px}.bar{display:grid;grid-template-columns:120px 1fr 64px;gap:10px;align-items:center;cursor:pointer;font-size:13px}.bar .tr{height:10px;background:var(--line-2);border-radius:99px;overflow:hidden}.bar .tr i{display:block;height:100%;border-radius:99px;background:var(--green)}.bar em{font-style:normal;color:var(--muted);font-size:12px;text-align:end}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.inp{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 10px;min-width:0}textarea.inp{width:100%;resize:vertical;min-height:84px}.search{flex:1 1 240px}.tbl-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:start;font-weight:600;color:var(--muted);font-size:12px;background:var(--surface-2);padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap;position:sticky;top:0}th.sortable:hover{color:var(--green)}td{padding:10px 12px;border-bottom:1px solid var(--line-2);vertical-align:middle}tr.click:hover td{background:var(--surface-2)}td.name{min-width:240px;font-weight:500}.code{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px;direction:ltr;unicode-bidi:isolate;white-space:nowrap}.pill{display:inline-flex;align-items:center;gap:5px;border-radius:99px;padding:1px 10px;font-size:12px;font-weight:500;white-space:nowrap;background:var(--line-2);color:var(--fg)}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}.p-ok{background:var(--ok-bg);color:var(--ok)}.p-warn{background:var(--warn-bg);color:var(--warn)}.p-bad{background:var(--bad-bg);color:var(--bad)}.p-info{background:var(--info-bg);color:var(--info)}.p-gold{background:var(--gold-soft);color:var(--gold)}.prog{display:flex;align-items:center;gap:8px;min-width:120px}.prog .tr{flex:1;height:6px;border-radius:99px;background:var(--line-2);overflow:hidden}.prog .tr i{display:block;height:100%;background:var(--green)}.prog span{font-size:12px;width:38px;text-align:end;font-variant-numeric:tabular-nums}.pager{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}.tabs button{all:unset;cursor:pointer;padding:10px 14px;font-size:13.5px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}.tabs button.on{color:var(--green);border-color:var(--gold);font-weight:600}.form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px}.fld{display:flex;flex-direction:column;gap:5px;min-width:0}.fld.w2{grid-column:span 2}.fld.w3{grid-column:1/-1}.fld label{font-size:12.5px;font-weight:600;color:var(--muted)}.fld label i{color:var(--bad);font-style:normal}.fld .err{color:var(--bad);font-size:12px}.fld.bad .inp{border-color:var(--bad)}.radios{display:flex;gap:12px;flex-wrap:wrap;font-size:13px}.radios label{font-weight:400;color:var(--fg);display:flex;gap:4px;align-items:center}.note{background:var(--gold-soft);border:1px solid color-mix(in srgb,var(--gold) 40%,transparent);color:var(--fg);border-radius:8px;padding:10px 14px;font-size:13px}.note.bad{background:var(--bad-bg);border-color:transparent;color:var(--bad)}.note.info{background:var(--info-bg);border-color:transparent;color:var(--info)}.dl{display:grid;grid-template-columns:150px 1fr;gap:8px 14px;font-size:13.5px}.dl dt{color:var(--muted)}.dl dd{margin:0;min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}.diff td.b{color:var(--bad);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--bad) 50%,transparent)}.diff td.a{color:var(--ok);font-weight:600}.timeline{display:flex;flex-direction:column;gap:0}.ev{display:grid;grid-template-columns:14px 1fr;gap:12px;padding-bottom:14px;position:relative}.ev:before{content:"";position:absolute;inset-inline-start:6px;top:14px;bottom:0;width:1px;background:var(--line)}.ev:last-child:before{display:none}.ev .dot{width:13px;height:13px;border-radius:50%;border:3px solid var(--gold);background:var(--surface);margin-top:4px}.ev .t{font-size:12px;color:var(--faint)}.empty{padding:40px 20px;text-align:center;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:10px}.empty b{font-family:var(--f-display);color:var(--fg);font-size:15px}.steps{display:flex;gap:0;flex-wrap:wrap;font-size:13px}.steps span{padding:6px 14px;border:1px solid var(--line);margin-inline-end:-1px;background:var(--surface);color:var(--muted)}.steps span.on{background:var(--green);color:var(--surface);border-color:var(--green)}.steps span.done{color:var(--green);font-weight:600}.drop{border:2px dashed var(--line);border-radius:var(--r);padding:30px;text-align:center;color:var(--muted);cursor:pointer;background:var(--surface-2)}.drop:hover,.drop.over{border-color:var(--gold);color:var(--fg)}.toast{position:fixed;z-index:95;bottom:calc(20px + env(safe-area-inset-bottom,0px));inset-inline-start:calc(20px + env(safe-area-inset-left,0px));background:var(--fg);color:var(--bg);padding:10px 18px;border-radius:8px;box-shadow:var(--shadow);max-width:calc(100vw - 40px)}.modal-bg{position:fixed;inset:0;background:#0a141273;display:grid;place-items:center;z-index:55;padding:16px}.modal{background:var(--surface);border-radius:12px;max-width:520px;width:100%;padding:20px;display:flex;flex-direction:column;gap:12px;box-shadow:0 10px 40px #0003}.modal h3{margin:0;font-family:var(--f-display);font-size:16px}.mini{font-size:12px;color:var(--muted)}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sp{flex:1}.mobile-top{display:none}.matrix td,.matrix th{text-align:center}.matrix td:first-child,.matrix th:first-child{text-align:start}.yes{color:var(--ok);font-weight:700}.no{color:var(--faint)}.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);margin-top:-22px;margin-bottom:18px;margin-inline:calc(-1*max(16px,env(safe-area-inset-right,0px))) calc(-1*max(16px,env(safe-area-inset-left,0px)));padding-block:10px;padding-right:max(16px,env(safe-area-inset-right,0px));padding-left:max(16px,env(safe-area-inset-left,0px))}.topbar .in{max-width:1240px;margin-inline:auto;display:flex;align-items:center;gap:10px}.cmdk{flex:1;max-width:460px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:7px 12px;color:var(--faint);cursor:pointer;text-align:start}.cmdk:hover{border-color:var(--green)}.cmdk svg{width:16px;height:16px}kbd{font-family:inherit;font-size:11px;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:0 6px;color:var(--muted);background:var(--surface-2);direction:ltr}.iconbtn{position:relative;width:36px;height:36px;border-radius:9px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;cursor:pointer;flex:none}.iconbtn:hover{border-color:var(--green);color:var(--green)}.iconbtn svg{width:18px;height:18px}.iconbtn .dotn{position:absolute;top:-4px;inset-inline-end:-4px;background:var(--bad);color:#fff;font-size:10px;border-radius:99px;min-width:17px;height:17px;display:grid;place-items:center;padding:0 4px;font-weight:700}.chip-role{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);white-space:nowrap}.avatar{width:32px;height:32px;border-radius:50%;background:var(--gold-soft);color:var(--gold);display:grid;place-items:center;font-weight:700;font-family:var(--f-display);flex:none}.dropdown{position:absolute;top:44px;inset-inline-end:0;width:min(360px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px #00000024;z-index:30;overflow:hidden;animation:pop .16s ease-out}.dropdown .dh{padding:12px 14px;border-bottom:1px solid var(--line-2);font-weight:600;display:flex;justify-content:space-between}.dropdown .di{padding:10px 14px;border-bottom:1px solid var(--line-2);cursor:pointer;display:flex;gap:10px}.dropdown .di:hover{background:var(--surface-2)}.dropdown .di i{width:8px;height:8px;border-radius:50%;background:var(--gold);margin-top:7px;flex:none}@keyframes pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes slide{0%{transform:translate(-100%)}to{transform:none}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.enter>*{animation:rise .32s ease-out both}.enter>*:nth-child(2){animation-delay:.03s}.enter>*:nth-child(3){animation-delay:.06s}.enter>*:nth-child(4){animation-delay:.09s}.enter>*:nth-child(5){animation-delay:.12s}.enter>*:nth-child(n+6){animation-delay:.15s}.kpi{transition:transform .15s,border-color .15s,box-shadow .15s;position:relative;overflow:hidden}.kpi:hover{transform:translateY(-2px);box-shadow:0 8px 24px #134c431a}.kpi .spark{position:absolute;inset-inline-start:12px;bottom:12px;width:44px;height:44px}.skel{border-radius:8px;background:linear-gradient(90deg,var(--line-2) 25%,var(--surface-2) 50%,var(--line-2) 75%);background-size:200% 100%;animation:shimmer 1.3s infinite linear}.donut-wrap{display:grid;grid-template-columns:190px 1fr;gap:20px;align-items:center}.donut{width:190px;height:190px}.donut path{cursor:pointer;transition:opacity .15s,transform .15s;transform-origin:95px 95px}.donut path:hover,.donut path.hi{transform:scale(1.04)}.donut.dim path:not(.hi){opacity:.35}.legend{display:flex;flex-direction:column;gap:6px}.legend button{all:unset;cursor:pointer;display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:center;padding:6px 8px;border-radius:7px;font-size:13px}.legend button:hover,.legend button.hi{background:var(--surface-2)}.legend i{width:12px;height:12px;border-radius:3px}.legend b{font-variant-numeric:tabular-nums}.bar .tr i{transition:width .7s cubic-bezier(.2,.8,.2,1)}.bar:hover span{color:var(--green)}.bar:focus-visible{outline:2px solid var(--gold);border-radius:6px}.chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--gold-soft);color:var(--fg);border-radius:99px;padding:2px 6px 2px 10px;font-size:12.5px}.chip button{all:unset;cursor:pointer;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}.chip button:hover{background:var(--surface);color:var(--bad)}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}.seg button{all:unset;cursor:pointer;padding:6px 12px;font-size:12.5px;color:var(--muted);display:flex;gap:6px;align-items:center}.seg button svg{width:15px;height:15px}.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px}.col{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;min-height:200px;transition:background .15s,border-color .15s}.col.over{background:var(--gold-soft);border-color:var(--gold)}.col h3{margin:0;padding:12px 14px;font-size:13.5px;font-family:var(--f-display);display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line-2)}.col h3 em{font-style:normal;margin-inline-start:auto;font-size:12px;color:var(--muted);font-family:var(--f-body)}.col .cards{padding:10px;display:flex;flex-direction:column;gap:8px;max-height:560px;overflow:auto}.kcard{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:10px 12px;cursor:grab;display:flex;flex-direction:column;gap:6px;transition:box-shadow .15s,transform .15s}.kcard:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.kcard.drag{opacity:.4}.kcard .t{font-weight:600;font-size:13px;line-height:1.5}.kcard .m{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.kcard.lock{cursor:pointer}.drawer-bg{position:fixed;inset:0;background:#0a141259;z-index:45;animation:fade .2s}@keyframes fade{0%{opacity:0}}.drawer{position:fixed;top:0;bottom:0;left:0;width:min(460px,100vw);background:var(--surface);z-index:46;box-shadow:0 0 40px #0003;display:flex;flex-direction:column;animation:slide .26s cubic-bezier(.2,.8,.2,1);padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px)}.drawer .dhd{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:flex-start}.drawer .dhd h3{margin:0;font-family:var(--f-display);font-size:17px;color:var(--green);text-wrap:balance}.drawer .dbd{padding:18px 20px;overflow:auto;flex:1;display:flex;flex-direction:column;gap:16px}.drawer .dft{padding:14px 20px;border-top:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap}.ring{flex:none}.ring circle{transition:stroke-dashoffset .9s cubic-bezier(.2,.8,.2,1)}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{background:var(--surface-2);border-radius:9px;padding:10px 12px}.stat span{display:block;font-size:12px;color:var(--muted)}.stat b{font-size:14px}.palette-bg{position:fixed;inset:0;background:#0a141266;z-index:60;display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;animation:fade .15s}.palette{width:min(620px,100%);background:var(--surface);border-radius:14px;box-shadow:0 20px 60px #0000004d;overflow:hidden;animation:pop .16s ease-out}.palette input{width:100%;border:0;border-bottom:1px solid var(--line);padding:16px 18px;font-size:16px;background:transparent;outline:none}.palette .res{max-height:52vh;overflow:auto;padding:6px}.palette .it{display:flex;gap:10px;align-items:center;padding:9px 12px;border-radius:8px;cursor:pointer}.palette .it.on{background:var(--gold-soft)}.palette .it svg{width:16px;height:16px;color:var(--muted);flex:none}.palette .it small{margin-inline-start:auto;color:var(--faint);font-size:11.5px}.palette .grp{font-size:11px;color:var(--faint);padding:8px 12px 4px}.palette .ft{display:flex;gap:14px;padding:8px 14px;border-top:1px solid var(--line-2);font-size:11.5px;color:var(--faint)}mark{background:color-mix(in srgb,var(--gold) 35%,transparent);color:inherit;border-radius:3px;padding:0 1px}.range{display:flex;gap:10px;align-items:center}.range input[type=range]{flex:1;accent-color:var(--green)}.range output{min-width:46px;text-align:center;font-weight:700;color:var(--green);font-variant-numeric:tabular-nums}.counter{font-size:11px;color:var(--faint);text-align:end}.toast{display:flex;gap:8px;align-items:center;animation:rise .25s ease-out}.toast.ok{background:var(--ok);color:#fff}.toast.err{background:var(--bad);color:#fff}.side-collapse .app{grid-template-columns:72px 1fr}.side-collapse aside.side .brand div:last-child,.side-collapse nav.menu span:not(.badge),.side-collapse nav.menu .grp,.side-collapse .side-foot{display:none}.side-collapse nav.menu button{justify-content:center;position:relative}.side-collapse nav.menu .badge{position:absolute;top:2px;inset-inline-end:2px;font-size:9px;padding:0 4px}.hero-sys{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.hero-sys .hs-txt{flex:1;min-width:0}.mini-steps{display:flex;gap:4px;align-items:center;flex-wrap:wrap;font-size:11.5px}.mini-steps span{padding:2px 8px;border-radius:99px;background:var(--line-2);color:var(--muted)}.mini-steps span.on{background:var(--green);color:var(--surface)}.mini-steps span.done{background:var(--ok-bg);color:var(--ok)}.hbar{display:flex;height:10px;border-radius:99px;overflow:hidden;background:var(--line-2)}.hbar i{display:block;height:100%}.tip{position:fixed;z-index:70;pointer-events:none;background:var(--fg);color:var(--bg);font-size:12px;padding:6px 10px;border-radius:7px;white-space:nowrap}.rag{width:11px;height:11px;border-radius:50%;display:inline-block;flex:none;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 18%,transparent)}.rag.R{background:var(--bad);color:var(--bad)}.rag.A{background:var(--warn);color:var(--warn)}.rag.G{background:var(--ok);color:var(--ok)}.ragcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ragc{all:unset;cursor:pointer;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);background:var(--surface-2)}.ragc:hover{border-color:var(--green)}.ragc:focus-visible{outline:2px solid var(--gold)}.ragc b{font-size:26px;font-family:var(--f-display);font-variant-numeric:tabular-nums;line-height:1.3}.ragc.R b{color:var(--bad)}.ragc.A b{color:var(--warn)}.ragc.G b{color:var(--ok)}.ragc span{font-size:12px;color:var(--muted);display:flex;gap:6px;align-items:center}.wkey{font-variant-numeric:tabular-nums;font-size:11.5px;color:var(--muted);direction:ltr;unicode-bidi:isolate;font-weight:600}.kcard .due{font-size:11.5px;color:var(--muted)}.kcard .due.late{color:var(--bad);font-weight:600}.kcard .sys{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stepper{display:flex;flex-wrap:wrap;gap:0;font-size:11.5px}.stepper span{padding:4px 10px;background:var(--line-2);color:var(--muted);clip-path:polygon(100% 0,10px 0,0 50%,10px 100%,100% 100%,calc(100% + -0px) 50%);margin-inline-start:-6px}.stepper span:first-child{margin:0}.stepper span.done{background:var(--ok-bg);color:var(--ok)}.stepper span.on{background:var(--green);color:var(--surface);font-weight:600}.feed{display:flex;flex-direction:column;gap:10px}.feed .fi{display:grid;grid-template-columns:28px 1fr;gap:10px}.feed .fi .avatar{width:28px;height:28px;font-size:12px}.feed .fi .b{background:var(--surface-2);border-radius:9px;padding:8px 10px;font-size:13px}.feed .fi.sys .b{background:none;padding:4px 0;color:var(--muted);font-size:12px}.gantt{overflow-x:auto;border-top:1px solid var(--line-2)}.gantt .g-in{min-width:960px}.g-row{display:grid;grid-template-columns:240px 1fr;border-bottom:1px solid var(--line-2);min-height:42px}.g-row:hover{background:var(--surface-2)}.g-lbl{padding:8px 14px;font-size:12.5px;display:flex;gap:8px;align-items:center;border-inline-end:1px solid var(--line-2);position:sticky;inset-inline-start:0;background:var(--surface);z-index:2;min-width:0}.g-row:hover .g-lbl{background:var(--surface-2)}.g-lbl span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.g-trk{position:relative}.g-head .g-trk{display:flex}.g-head{background:var(--surface-2);position:sticky;top:0;z-index:3}.g-head .g-lbl{background:var(--surface-2);font-weight:600;color:var(--muted)}.g-m{flex:1;border-inline-start:1px solid var(--line);font-size:11.5px;color:var(--muted);padding:8px 6px;text-align:center;white-space:nowrap}.g-grid{position:absolute;inset:0;display:flex;pointer-events:none}.g-grid i{flex:1;border-inline-start:1px dashed var(--line-2)}.g-bar{position:absolute;top:9px;height:24px;border-radius:6px;background:var(--green);color:var(--surface);font-size:11px;padding:0 8px;display:flex;align-items:center;white-space:nowrap;overflow:hidden;cursor:pointer;box-shadow:0 1px 3px #00000026;min-width:6px;transition:filter .15s}.g-bar:hover{filter:brightness(1.12)}.g-bar.done{background:var(--ok)}.g-bar.late{background:var(--bad)}.g-bar.soon{background:var(--gold);color:#1c1408}.g-dia{position:absolute;top:14px;width:13px;height:13px;transform:translate(50%) rotate(45deg);background:var(--info);border:2px solid var(--surface);cursor:pointer;z-index:1}.g-dia.late{background:var(--bad)}.g-today{position:absolute;top:0;bottom:0;width:2px;background:var(--bad);z-index:1;pointer-events:none}.g-today b{position:absolute;top:0;transform:translate(50%);background:var(--bad);color:#fff;font-size:10px;padding:1px 5px;border-radius:4px;white-space:nowrap;font-weight:600}.heat{display:grid;grid-template-columns:30px repeat(5,minmax(44px,1fr));gap:4px;font-size:12px}.heat .hc{all:unset;cursor:pointer;aspect-ratio:1.6;border-radius:7px;display:grid;place-items:center;font-weight:700;font-size:15px;font-variant-numeric:tabular-nums;max-width:100%}.heat .hc:focus-visible{outline:2px solid var(--fg)}.heat .hc.on{outline:3px solid var(--fg);outline-offset:-3px}.heat .ax{display:grid;place-items:center;color:var(--muted);font-size:11px}.h-lo{background:var(--ok-bg);color:var(--ok)}.h-md{background:var(--warn-bg);color:var(--warn)}.h-hi{background:var(--bad-bg);color:var(--bad)}.score{display:inline-grid;place-items:center;min-width:30px;height:24px;border-radius:6px;font-weight:700;font-variant-numeric:tabular-nums;font-size:12.5px}.modal.wide{max-width:720px;max-height:calc(100vh - 32px);overflow:auto}.modal .form{grid-template-columns:repeat(2,minmax(0,1fr))}.method{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.method div{background:var(--surface-2);border-radius:10px;padding:12px 14px;font-size:13px}.method b{display:block;font-family:var(--f-display);color:var(--green);margin-bottom:4px}.sample{font-size:10.5px;background:var(--info-bg);color:var(--info);border-radius:4px;padding:0 5px;font-weight:600}@media(max-width:1080px){.method{grid-template-columns:1fr}}@media(max-width:820px){.ragcards{grid-template-columns:repeat(3,minmax(0,1fr))}.modal .form{grid-template-columns:1fr}.g-row{grid-template-columns:150px 1fr}}:root[dir=ltr] nav.menu button.on{box-shadow:inset 3px 0 0 var(--gold)}:root[dir=ltr] .drawer{left:auto;right:0;padding-left:0;padding-right:env(safe-area-inset-right,0px);animation-name:slideR}@keyframes slideR{0%{transform:translate(100%)}to{transform:none}}:root[dir=ltr] .stepper span{clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%,0 50%)}:root[dir=ltr] .g-dia{transform:translate(-50%) rotate(45deg)}:root[dir=ltr] .g-today b{transform:translate(-50%)}.auth{position:fixed;inset:0;z-index:80;background:var(--bg);display:grid;place-items:center;overflow:auto;padding-block:max(24px,env(safe-area-inset-top,0px)) max(24px,env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.auth:before{content:"";position:fixed;inset:0;background:radial-gradient(1200px 500px at 85% -10%,color-mix(in srgb,var(--green) 22%,transparent),transparent 60%),radial-gradient(800px 400px at 0% 110%,color-mix(in srgb,var(--gold) 18%,transparent),transparent 60%);pointer-events:none}.auth-card{position:relative;width:min(460px,100%);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 60px #134c4324;padding:28px;display:flex;flex-direction:column;gap:16px;animation:rise .35s ease-out}.auth-card .brand .mark{width:46px;height:46px;font-size:22px}.auth-card h1{margin:0;font-family:var(--f-display);font-size:21px;color:var(--green)}.idcard{display:flex;gap:12px;align-items:center;background:var(--surface-2);border-radius:12px;padding:12px 14px}.idcard .avatar{width:42px;height:42px;font-size:17px}.secline{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:var(--muted)}.secline svg{width:15px;height:15px;flex:none;margin-top:3px;color:var(--ok)}.sess{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:4px 10px 4px 12px;font-size:12px;cursor:pointer;white-space:nowrap;font-variant-numeric:tabular-nums}.sess:hover{border-color:var(--green)}.sess i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-bg)}.sess.warn i{background:var(--warn);box-shadow:0 0 0 3px var(--warn-bg)}.sess.bad i{background:var(--bad);box-shadow:0 0 0 3px var(--bad-bg)}pre.jwt{direction:ltr;text-align:left;background:var(--surface-2);border:1px solid var(--line-2);border-radius:9px;padding:10px 12px;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto;max-height:240px;margin:0;white-space:pre-wrap;word-break:break-all}.tok{direction:ltr;text-align:left;font:11.5px/1.5 ui-monospace,Menlo,Consolas,monospace;word-break:break-all;background:var(--surface-2);border-radius:9px;padding:10px 12px}.tok .h{color:var(--bad)}.tok .p{color:var(--info)}.tok .s{color:var(--ok)}.langbtn{font-weight:700;font-size:12.5px;font-family:var(--f-body)}.chk{display:grid;grid-template-columns:20px 1fr;gap:8px;font-size:13px;align-items:start}.chk b{color:var(--ok)}.chk b.x{color:var(--bad)}@media(max-width:820px){.sess span{display:none}}@media(max-width:1080px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.grid2,.grid3{grid-template-columns:1fr}}@media(max-width:820px){.app{grid-template-columns:1fr}aside.side{position:static;height:auto;padding-block:12px;gap:10px}aside.side nav.menu{flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:4px}nav.menu .grp{display:none}nav.menu button{white-space:nowrap}.side-foot{flex-direction:row;flex-wrap:wrap;align-items:end;margin-top:0}.form{grid-template-columns:1fr}.fld.w2{grid-column:auto}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dl{grid-template-columns:1fr;gap:2px 0}.dl dd{margin-bottom:8px}.bar{grid-template-columns:96px 1fr 54px}.topbar{margin-top:0}.chip-role span,.cmdk kbd{display:none}.donut-wrap{grid-template-columns:1fr;justify-items:center}.legend{width:100%}#collapseBtn{display:none}.side-collapse .app{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}:root{--rag-B:var(--info);--rag-G:var(--ok);--rag-A:var(--warn);--rag-R:var(--bad)}.rag4{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:6px;font-size:11.5px;font-weight:700;color:#fff;font-family:var(--f-display);flex:none}.rag4.rB{background:var(--rag-B)}.rag4.rG{background:var(--rag-G)}.rag4.rA{background:var(--rag-A)}.rag4.rR{background:var(--rag-R)}.rag4.rN{background:var(--line);color:var(--muted)}:root[data-theme=dark] .rag4:not(.rN){color:#111}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .rag4:not(.rN){color:#111}}.ragcards4{grid-template-columns:repeat(4,minmax(0,1fr))}.ragc.B4 b{color:var(--rag-B)}.pdots{display:inline-flex;gap:3px;align-items:center}.pd{width:14px;height:6px;border-radius:3px;background:var(--line);display:inline-block}.pd.ok{background:var(--ok)}.pd.on{background:var(--green)}.pd.warn{background:var(--warn)}.pd.bad{background:var(--bad)}.pd.hold{background:var(--gold)}.pd.na{background:repeating-linear-gradient(45deg,var(--line) 0 2px,transparent 2px 4px)}.phase-tbl td{vertical-align:top}.deliv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.deliv-ph{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--surface-2)}.deliv-type{display:flex;flex-direction:column;gap:6px;font-size:13px}.deliv-recs{display:flex;flex-direction:column;gap:6px;padding-inline-start:18px}.deliv-rec{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;background:var(--surface);border-radius:8px;padding:8px 10px;font-size:12.5px}.dstate{width:10px;height:10px;border-radius:50%;flex:none;background:var(--line)}.dstate.ok{background:var(--ok)}.dstate.wait{background:var(--gold)}.wgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}@media(max-width:820px){.ragcards4,.wgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.deliv-grid{grid-template-columns:1fr}}.dates{white-space:nowrap}.ragc .rag4{font-size:11px;color:#fff;display:inline-grid;min-width:20px;height:20px}:root[data-theme=dark] .ragc .rag4{color:#111}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .ragc .rag4{color:#111}}.asof{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.asof label{display:flex;align-items:center;gap:6px;font-weight:600;font-size:13px;color:var(--green)}.asof label svg{width:16px;height:16px}.asof .inp{width:auto}.qchips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.qchip{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:99px;padding:4px 12px 4px 6px;font-size:12.5px;background:var(--surface)}.qchip b{font-size:12.5px;color:var(--muted)}.qchip:hover{border-color:var(--green)}.qchip:focus-visible{outline:2px solid var(--gold)}.qchip.on{background:var(--green);border-color:var(--green);color:var(--surface)}.qchip.on b{color:var(--surface)}.qchip.gold b{color:var(--gold)}.qchip.bad b{color:var(--bad)}.qchip.on.gold b,.qchip.on.bad b{color:var(--surface)}.qchip:not(.rag){padding-inline-start:12px}.qsep{width:1px;height:22px;background:var(--line);margin:0 4px}.pmx-wrap{overflow-x:auto}.pmx{border-collapse:separate;border-spacing:0;width:100%;min-width:980px;font-size:12.5px}.pmx th{position:sticky;top:0;background:var(--surface-2);font-weight:600;color:var(--muted);padding:9px 6px;text-align:center;border-bottom:1px solid var(--line);white-space:nowrap;z-index:1}.pmx td{border-bottom:1px solid var(--line-2);padding:6px;vertical-align:middle}.pmx .pmx-wp{text-align:start;position:sticky;inset-inline-start:0;background:var(--surface);z-index:2;min-width:240px;max-width:300px;border-inline-end:1px solid var(--line-2)}.pmx th.pmx-wp{background:var(--surface-2);z-index:3}.pmx .pmx-wp a{display:flex;flex-direction:column;gap:1px;text-decoration:none;color:var(--fg)}.pmx .pmx-wp a b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pmx .pmx-wp a:hover b{color:var(--green)}.pmx .pmx-wp .mini{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pmx tbody tr:hover td{background:var(--surface-2)}.pc{position:relative;text-align:center;min-width:62px;cursor:pointer;font-variant-numeric:tabular-nums;font-weight:600;border-inline-start:2px solid var(--surface)}.pmx td.pc{padding:10px 4px}.pc .pc-v{direction:ltr;unicode-bidi:isolate}.pc.ok{background:var(--ok-bg)!important;color:var(--ok)}.pc.on{background:var(--info-bg)!important;color:var(--info)}.pc.warn{background:var(--warn-bg)!important;color:var(--warn)}.pc.bad{background:var(--bad-bg)!important;color:var(--bad)}.pc.gold{background:var(--gold-soft)!important;color:var(--gold)}.pc.hold{background:var(--line-2)!important;color:var(--gold)}.pc.ns{color:var(--faint);font-weight:400}.pc.na{color:var(--faint);background:repeating-linear-gradient(45deg,transparent 0 4px,var(--line-2) 4px 5px)!important;font-weight:400}.pc.cur{box-shadow:inset 0 -3px 0 var(--green)}.pc:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}.pc-d{position:absolute;top:2px;inset-inline-end:3px;font-style:normal;font-size:9.5px;background:var(--bad);color:#fff;border-radius:99px;min-width:15px;height:15px;line-height:15px;padding:0 4px;font-weight:700}.pc-g{position:absolute;bottom:3px;inset-inline-start:4px;width:7px;height:7px;border-radius:50%;background:var(--bad)}.pmx-legend{display:flex;flex-wrap:wrap;gap:6px 14px;padding:10px 16px;border-top:1px solid var(--line-2)}.pmx-legend span{display:inline-flex;align-items:center;gap:6px}.pmx-legend i.pc{display:inline-block;width:18px;min-width:18px;height:12px;border-radius:3px;border:1px solid var(--line)}.dlt{display:inline-flex;align-items:center;gap:2px;font-size:11px;font-weight:600;border-radius:99px;padding:0 6px}.dlt.up{color:var(--ok);background:var(--ok-bg)}.dlt.down{color:var(--bad);background:var(--bad-bg)}.dl0{font-size:11px;color:var(--faint)}.bar .dlt{margin-inline-start:4px}.ragx{width:100%;border-collapse:collapse;font-size:12.5px}.ragx th{font-weight:600;color:var(--muted);text-align:center;padding:4px;border-bottom:1px solid var(--line-2)}.ragx th:first-child,.ragx td:first-child{text-align:start}.ragx td{padding:5px 4px;text-align:center;border-bottom:1px solid var(--line-2)}.rx{all:unset;cursor:pointer;min-width:26px;height:22px;border-radius:6px;display:inline-grid;place-items:center;font-weight:700;font-variant-numeric:tabular-nums}.rx.rB{background:var(--info-bg);color:var(--rag-B)}.rx.rG{background:var(--ok-bg);color:var(--rag-G)}.rx.rA{background:var(--warn-bg);color:var(--rag-A)}.rx.rR{background:var(--bad-bg);color:var(--rag-R)}.rx:hover{outline:1px solid currentColor}.rx:focus-visible{outline:2px solid var(--gold)}.sysmini{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.sysmini button{all:unset;cursor:pointer;background:var(--surface-2);border-radius:9px;padding:10px 12px;display:flex;flex-direction:column;gap:4px;text-align:center}.sysmini button:hover{outline:1px solid var(--green)}.sysmini button:focus-visible{outline:2px solid var(--gold)}.sysmini span{font-size:12px;color:var(--muted)}.sysmini b{font-size:20px;font-family:var(--f-display)}.kpi.on{border-color:var(--green);box-shadow:inset 0 -3px 0 var(--green)}.g-bar.tl{top:11px;height:20px;font-size:10.5px;padding:0 6px;background:var(--info);position:absolute}.g-bar.tl span{position:relative;z-index:1}.g-bar.tl.done{background:var(--ok)}.g-bar.tl.late{background:var(--bad)}.g-bar.tl.soon{background:var(--warn);color:#fff}.g-bar.tl.plan{background:var(--surface-2);color:var(--muted);border:1px solid var(--line);box-shadow:none}.tl-p{position:absolute;inset-block:0;inset-inline-start:0;background:#0000002e;pointer-events:none}.g-rev{position:absolute;top:7px;height:28px;border:2px dashed var(--gold);border-radius:7px;pointer-events:auto;cursor:pointer;z-index:0}.g-dia.done{background:var(--ok)}.tl-row{min-height:44px}.tl-legend{flex-wrap:wrap;gap:6px 12px}.tl-legend span{display:inline-flex;align-items:center;gap:5px}.tl-legend .g-bar.tl,.tl-legend .g-rev,.tl-legend .g-dia{position:static;display:inline-block;width:18px;height:10px;padding:0;min-width:0;transform:none}.tl-legend .g-dia{width:9px;height:9px;transform:rotate(45deg)}@media(max-width:820px){.sysmini{grid-template-columns:repeat(2,minmax(0,1fr))}.asof .sp{display:none}}.pc-g.w{background:var(--gold)}#tlProj{width:auto;max-width:420px}:root{--rag-U:#8a8f98}.rag4.rU{background:var(--rag-U)}.ragc.U4 b{color:var(--rag-U)}.srcrag{display:inline-block;font-size:10.5px;border:1px dashed var(--line);border-radius:4px;padding:0 5px;color:var(--muted);margin-inline-start:4px}.calcx{display:inline-block;font-size:11.5px;color:var(--warn);background:var(--warn-bg);border-radius:6px;padding:2px 8px;white-space:nowrap}.ring-x{width:96px;height:96px;border-radius:50%;border:9px solid var(--line-2);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;flex:none}.ring-x b{font-size:24px;color:var(--muted);font-family:var(--f-display)}.ring-x span{font-size:9.5px;color:var(--muted);padding:0 6px;line-height:1.2}.kpis6{grid-template-columns:repeat(6,minmax(0,1fr))}.kpis5{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:1100px){.kpis6{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:820px){.kpis6,.kpis5{grid-template-columns:repeat(2,minmax(0,1fr))}}.xbtn{all:unset;cursor:pointer;width:22px;height:22px;display:grid;place-items:center;border-radius:5px;color:var(--muted)}.xbtn:hover{background:var(--line-2);color:var(--fg)}.ptbl tr.wrow td{background:var(--surface-2);font-size:12.5px}.ptbl tr.prow td .name{font-weight:600}.stepper span.na{opacity:.45;text-decoration:line-through}.deliv-box{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--surface-2)}.stage-ed{display:flex;flex-direction:column;gap:12px}.plan-tbl{width:100%;border-collapse:collapse;font-size:12.5px}.plan-tbl th,.plan-tbl td{padding:6px;border-bottom:1px solid var(--line-2);text-align:start}.plan-tbl tr.hi td{background:var(--gold-soft)}.inp.sm{padding:4px 8px;font-size:12.5px;min-height:0;height:30px}.g-orig{position:absolute;height:3px;border-radius:2px;background:var(--muted);opacity:.55;pointer-events:auto}.g-bar.tl.conflict{outline:2px dashed var(--bad);outline-offset:1px}.tl-legend .g-orig{position:static;display:inline-block;width:18px;height:3px}.pc-r{position:absolute;top:3px;inset-inline-start:4px;width:7px;height:7px;border-radius:50%;background:var(--info)}.rvmap{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.rvmap div{background:var(--surface-2);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px;font-size:12.5px}.rvmap span{color:var(--muted);font-size:12px}tr.hi td{background:var(--gold-soft)}.matrix input[type=checkbox]{width:16px;height:16px}.ragcards4 .ragc span .rag4{flex:none}.phase-tbl td:first-child{min-width:230px;max-width:320px}.phase-tbl td:first-child .mini{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.phase-tbl td{white-space:normal}.phase-tbl td.dates,.wkey{white-space:nowrap}.sec-h{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between;margin:26px 0 12px;padding-top:18px;border-top:1px solid var(--line)}.sec-h h2{font-family:var(--f-display);font-size:18px;margin:0;display:flex;gap:8px;align-items:center;color:var(--green)}.sec-h h2 svg{width:20px;height:20px}.sec-h p{margin:2px 0 0;color:var(--muted);font-size:12.5px}.sec-h .asof{margin:0}.kpi .kpi-of{font-size:15px;color:var(--faint);font-weight:500}.ragc.on,.bar.on{outline:2px solid var(--gold);outline-offset:1px}.bar.on span{color:var(--green);font-weight:600}.lc-sys{color:var(--fg);text-decoration:none}.lc-sys:hover{color:var(--green)}.lc-strip .pb{padding-block:12px}.lc-strip-in{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.lc-strip-in .stepper span{cursor:pointer}.lc-strip-k{gap:10px;flex-wrap:wrap}.lc-empty{text-align:center;align-items:center}.lc-stages{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:6px 0 10px}.lc-stages span{display:inline-flex;gap:6px;align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:3px 10px 3px 6px;font-size:12px;color:var(--muted)}.lc-stages b{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--green);color:var(--surface);font-size:11px}.lc-head{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.lc-head .asof{margin:0;flex-wrap:wrap}.tabs.sub{margin-bottom:12px}.tabs.sub button{padding:8px 12px;font-size:13px}.ai-btn{border-color:color-mix(in srgb,var(--gold) 55%,var(--line));background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--gold-soft) 60%,var(--surface)))}.ai-btn svg{color:var(--gold)}.ai-card{border:1px solid color-mix(in srgb,var(--gold) 45%,var(--line));border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden}.ai-card-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 14px;background:color-mix(in srgb,var(--gold-soft) 55%,var(--surface));border-bottom:1px solid var(--line-2)}.ai-card-h svg{width:18px;height:18px;color:var(--gold)}.ai-card.busy .ai-card-h svg{animation:aiPulse 1.2s ease-in-out infinite}.ai-text{padding:12px 16px;max-height:520px;overflow:auto}.md h4{font-family:var(--f-display);font-size:14.5px;color:var(--green);margin:12px 0 4px}.md h4:first-child{margin-top:0}.md p{margin:4px 0}.md ul,.md ol{margin:4px 0;padding-inline-start:22px}.md li{margin:2px 0}.md code{background:var(--surface-2);border:1px solid var(--line-2);border-radius:4px;padding:0 4px;font-size:12.5px}.md .tbl-wrap{margin:8px 0}.ai-think{color:var(--muted);font-size:13px}.ai-think:after{content:"";display:inline-block;width:1.2em;text-align:start;animation:aiDots 1.2s steps(4) infinite}@keyframes aiDots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}@keyframes aiPulse{50%{opacity:.35;transform:scale(.85)}}.ai-jobs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.ai-job{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow);transition:border-color .15s,transform .15s}.ai-job:hover{border-color:var(--gold);transform:translateY(-1px)}.ai-job:focus-visible{outline:2px solid var(--gold)}.ai-job[disabled]{opacity:.55;cursor:progress}.ai-job svg{width:22px;height:22px;color:var(--gold)}.ai-job b{font-family:var(--f-display);font-size:14px}.ai-job span{font-size:12px;color:var(--muted)}.ai-msgs{display:flex;flex-direction:column;gap:10px;max-height:560px;overflow:auto;padding:4px 2px 10px}.ai-msg{max-width:88%;padding:10px 14px;border-radius:14px;line-height:1.7}.ai-msg.user{align-self:flex-start;background:var(--green);color:var(--surface);border-start-start-radius:4px;white-space:pre-wrap}.ai-msg.assistant{align-self:flex-end;background:var(--surface-2);border:1px solid var(--line);border-start-end-radius:4px}.ai-hello{display:flex;flex-direction:column;gap:4px;padding:18px;text-align:center;color:var(--muted)}.ai-hello b{font-family:var(--f-display);font-size:17px;color:var(--fg)}.ai-sugg{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px}.ai-sugg .qchip{white-space:normal;text-align:start}.ai-input{display:flex;gap:8px;align-items:flex-end;margin:8px 0 6px}.ai-input textarea{flex:1;resize:vertical;min-height:46px}.ai-off svg{width:34px;height:34px;color:var(--faint)}@media(max-width:980px){.ai-jobs{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.ai-jobs{grid-template-columns:1fr}.ai-msg{max-width:100%}}a{color:var(--green)}a.btn,a.stat,a.ai-job{text-decoration:none;color:inherit}tr.click{cursor:pointer}tr.on>td{background:var(--gold-soft)}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.cmdk{display:flex;align-items:center;gap:8px}.cmdk svg{width:16px;height:16px;opacity:.7}.iconbtn svg,.btn svg{width:16px;height:16px}.dropdown .di i.p-bad{background:var(--bad)}.dropdown .di i.p-warn{background:var(--warn)}.dropdown .di i.p-info{background:var(--info)}dl.dl{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:6px 14px;margin:0}dl.dl dt{color:var(--muted);font-size:12.5px}dl.dl dd{margin:0}.sec-h{font-family:var(--f-display);font-size:13.5px;margin:6px 0 8px;color:var(--green)}.deliv-box{border:1px solid var(--line-2);border-radius:8px;padding:10px 12px;margin-bottom:8px;display:flex;flex-direction:column;gap:6px}.lc-tbl td{vertical-align:top}.xbtn{all:unset;cursor:pointer;color:var(--bad);padding:0 6px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{all:unset;cursor:pointer;padding:5px 12px;font-size:12.5px}.seg button.on{background:var(--green);color:var(--surface)}.board{display:grid;grid-template-columns:repeat(8,minmax(180px,1fr));gap:10px;overflow-x:auto;padding:12px}.board .col{background:var(--surface-2);border:1px solid var(--line-2);border-radius:10px;display:flex;flex-direction:column;gap:8px;padding:8px;min-height:120px}.board .col>.ph{display:flex;justify-content:space-between;font-size:12.5px;padding:2px 4px}.board .card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:4px;font-size:13px}.board .card.sample{border-style:dashed}.heat{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;max-width:320px}.heat>div{aspect-ratio:1.6;border-radius:6px;display:grid;place-items:center}.heat .h-hi{background:var(--bad-bg)}.heat .h-md{background:var(--warn-bg)}.heat .h-lo{background:var(--ok-bg)}.gantt{display:flex;flex-direction:column;gap:6px;overflow-x:auto}.gantt .g-head,.gantt .g-row{display:grid;grid-template-columns:260px 1fr;gap:10px;align-items:center;min-width:760px}.gantt .g-head{grid-template-columns:260px repeat(auto-fit,minmax(40px,1fr))}.gantt .g-lbl{display:flex;flex-direction:column;min-width:0;font-size:13px}.gantt .g-lbl a{text-decoration:none;color:inherit;display:flex;gap:6px;align-items:center}.gantt .g-trk{position:relative;height:22px;background:var(--surface-2);border-radius:6px;cursor:pointer}.gantt .g-bar{position:absolute;top:4px;height:14px;border-radius:4px;background:var(--info);opacity:.85}.gantt .g-bar.done{background:var(--ok)}.gantt .g-bar.late{background:var(--bad)}.gantt .g-bar.s0{background:#2a5d8a}.gantt .g-bar.s1{background:#3f7fb0}.gantt .g-bar.s2{background:#6c8f3c}.gantt .g-bar.s3{background:#134c43}.gantt .g-bar.s4{background:#a1640c}.gantt .g-bar.s5{background:#7a3f8f}.gantt .g-bar.s6{background:#c7985b}.gantt .g-bar.s7{background:#1f7a4d}.gantt .g-bar.late{outline:2px solid var(--bad)}.gantt .g-today{position:absolute;top:0;bottom:0;width:2px;background:var(--gold)}.tl-legend{display:flex;flex-wrap:wrap;gap:10px}.tl-legend span{display:inline-flex;gap:4px;align-items:center}.tl-p{display:inline-block;width:12px;height:8px;border-radius:2px}.tl-p.s0{background:#2a5d8a}.tl-p.s1{background:#3f7fb0}.tl-p.s2{background:#6c8f3c}.tl-p.s3{background:#134c43}.tl-p.s4{background:#a1640c}.tl-p.s5{background:#7a3f8f}.tl-p.s6{background:#c7985b}.tl-p.s7{background:#1f7a4d}.steps{display:flex;gap:8px;flex-wrap:wrap}.steps span{padding:6px 12px;border-radius:99px;border:1px solid var(--line);font-size:12.5px;color:var(--muted)}.steps span.on{border-color:var(--green);color:var(--green);font-weight:600}.steps span.done{background:var(--ok-bg);color:var(--ok);border-color:transparent}.drop{display:block;border:2px dashed var(--line);border-radius:10px;padding:34px;text-align:center;cursor:pointer}.drop:hover{border-color:var(--green)}.kcard{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line-2);border-radius:8px}.kcard b{font-family:var(--f-display);font-size:22px}.kcard:hover{border-color:var(--green)}.ragcards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ragcards4{grid-template-columns:repeat(4,1fr)}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stat{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line-2);border-radius:8px}.stat b{font-family:var(--f-display);font-size:20px;color:var(--green)}.modal.wide{max-width:820px}.modal{max-height:calc(100vh - 32px);overflow:auto}@media(max-width:900px){.board{grid-template-columns:repeat(8,220px)}.stats,.ragcards,.ragcards4{grid-template-columns:repeat(2,1fr)}}
