:root{--bg: #f3f5f8;--panel: #ffffff;--panel-2: #f8fafc;--sunken: #eef2f6;--line: #dde3ea;--line-strong: #c6cfda;--text: #15202e;--text-2: #3f4d5f;--muted: #687789;--accent: #0f6b74;--accent-ink: #ffffff;--accent-soft: #e2f1f2;--nav: #0d1826;--nav-2: #142235;--nav-text: #c2ccd8;--nav-muted: #7f8ea2;--crit: #b42318;--crit-soft: #fde8e6;--high: #c2410c;--high-soft: #fdeee3;--med: #a16207;--med-soft: #fbf3dc;--low: #2f7a4f;--low-soft: #e3f3e9;--info: #2b5fa8;--info-soft: #e5eefa;--violet: #6146b8;--violet-soft: #eeeafb;--chart-1: #2a78d6;--chart-2: #eb6834;--chart-3: #1baf7a;--chart-4: #eda100;--chart-5: #4a3aa7;--chart-6: #e87ba4;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .05);--shadow-lg: 0 12px 32px rgba(13, 24, 38, .18);--font: "Calibri Light", Calibri, Carlito, "Segoe UI", "Noto Sans Arabic", system-ui, sans-serif;--font-strong: Calibri, Carlito, "Segoe UI", "Noto Sans Arabic", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--r: 6px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0a111c;--panel: #101a29;--panel-2: #0d1623;--sunken: #0b131f;--line: #1f2d42;--line-strong: #2c3e58;--text: #e4ebf4;--text-2: #b8c5d6;--muted: #8796ab;--accent: #3db1ba;--accent-ink: #04161a;--accent-soft: #0f2d33;--nav: #070d16;--nav-2: #0f1a2a;--nav-text: #c2ccd8;--nav-muted: #6d7d93;--crit: #f2766a;--crit-soft: #3a1714;--high: #f39a5c;--high-soft: #3a2010;--med: #e3b54f;--med-soft: #33280e;--low: #5fc28a;--low-soft: #10291c;--info: #72a5ee;--info-soft: #12223a;--violet: #a493ee;--violet-soft: #221b3d;--chart-1: #3987e5;--chart-2: #d95926;--chart-3: #199e70;--chart-4: #c98500;--chart-5: #9085e9;--chart-6: #d55181;--shadow: 0 1px 2px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .5);color-scheme:dark}}:root[data-theme=dark]{--bg: #0a111c;--panel: #101a29;--panel-2: #0d1623;--sunken: #0b131f;--line: #1f2d42;--line-strong: #2c3e58;--text: #e4ebf4;--text-2: #b8c5d6;--muted: #8796ab;--accent: #3db1ba;--accent-ink: #04161a;--accent-soft: #0f2d33;--nav: #070d16;--nav-2: #0f1a2a;--nav-text: #c2ccd8;--nav-muted: #6d7d93;--crit: #f2766a;--crit-soft: #3a1714;--high: #f39a5c;--high-soft: #3a2010;--med: #e3b54f;--med-soft: #33280e;--low: #5fc28a;--low-soft: #10291c;--info: #72a5ee;--info-soft: #12223a;--violet: #a493ee;--violet-soft: #221b3d;--chart-1: #3987e5;--chart-2: #d95926;--chart-3: #199e70;--chart-4: #c98500;--chart-5: #9085e9;--chart-6: #d55181;--shadow: 0 1px 2px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;width:100%;max-width:100vw;overflow-x:hidden}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14.5px;line-height:1.45;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,h4{font-family:var(--font-strong);font-weight:700;margin:0;text-wrap:balance;letter-spacing:-.005em}h1{font-size:22px}h2{font-size:17px}h3{font-size:15px}h4{font-size:13.5px}.mono{font-family:var(--mono);font-size:12.5px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:12.5px}.strong{font-family:var(--font-strong);font-weight:700}.eyebrow{font-family:var(--font-strong);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.shell{display:grid;grid-template-columns:240px minmax(0,1fr);height:100%;width:100%;max-width:100vw;overflow-x:hidden;transition:grid-template-columns .22s cubic-bezier(.16,1,.3,1);min-width:0}.shell.collapsed{grid-template-columns:66px minmax(0,1fr)}.nav{background:var(--nav);color:var(--nav-text);display:flex;flex-direction:column;min-height:0;border-inline-end:1px solid var(--nav-2);z-index:30}.brand{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--nav-2);min-height:58px}.brand-mark{width:32px;height:32px;border-radius:7px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-family:var(--font-strong);font-weight:700;flex:none;font-size:15px}.brand-text{font-family:var(--font-strong);font-weight:700;color:#fff;line-height:1.1;overflow:hidden;white-space:nowrap}.brand-name{font-size:15px}.brand-sub{font-size:11px;color:var(--nav-muted);overflow:hidden;text-overflow:ellipsis}.nav-scroll{overflow-y:auto;flex:1;padding:8px 8px 16px;-webkit-overflow-scrolling:touch}.nav-group{margin-top:10px}.nav-group-title{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--nav-muted);padding:6px 10px;font-family:var(--font-strong);font-weight:700;white-space:nowrap}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;color:var(--nav-text);cursor:pointer;border:0;background:none;width:100%;text-align:start;font-size:13.5px;min-height:38px}.nav-item:hover{background:var(--nav-2);text-decoration:none;color:#fff}.nav-item.active{background:var(--nav-2);color:#fff;box-shadow:inset 3px 0 0 var(--accent);font-weight:600}[dir=rtl] .nav-item.active{box-shadow:inset -3px 0 0 var(--accent)}.nav-item svg{flex:none;opacity:.9}.nav-item .count{margin-inline-start:auto;font-size:11px;background:var(--crit);color:#fff;border-radius:10px;padding:1px 7px;font-family:var(--mono)}.nav-collapse-btn:hover{background:var(--nav-2)!important;color:#fff!important}.collapsed .nav-item span.lbl,.collapsed .nav-group-title,.collapsed .brand-text,.collapsed .nav-item .count,.collapsed .nav-collapse-btn span{display:none!important}.collapsed .nav-item{justify-content:center;padding:9px 0}.collapsed .brand{justify-content:center;padding:12px 6px}.collapsed .nav-collapse-btn{justify-content:center!important}.main{display:flex;flex-direction:column;min-width:0;min-height:0;width:100%;max-width:100vw;overflow-x:hidden}.topbar{display:flex;align-items:center;gap:10px;padding:8px 18px;border-bottom:1px solid var(--line);background:var(--panel);min-height:56px;position:sticky;top:env(safe-area-inset-top,0px);z-index:20;width:100%;max-width:100vw;box-sizing:border-box}.topbar .spacer{flex:1;min-width:8px}.topbar-search{flex:0 1 280px;min-width:140px}.content{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px 24px 40px;min-height:0;width:100%;max-width:100vw;box-sizing:border-box;-webkit-overflow-scrolling:touch}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap;width:100%;box-sizing:border-box}.page-head p{margin:4px 0 0;color:var(--muted);max-width:72ch}.mode-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-family:var(--font-strong);font-weight:700;font-size:11.5px;letter-spacing:.06em;flex:none}.mode-DEMO{background:var(--violet-soft);color:var(--violet)}.mode-SIMULATION{background:var(--med-soft);color:var(--med)}.mode-LIVE{background:var(--low-soft);color:var(--low)}.mode-pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g6{grid-template-columns:repeat(6,minmax(0,1fr))}.span2{grid-column:span 2}.span3{grid-column:span 3}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:10px;min-width:0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);min-width:0}.panel-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}.panel-h h3{font-size:14.5px}.panel-b{padding:14px;min-width:0}.panel-b.flush{padding:0}.kpi{padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}.kpi .v{font-family:var(--font-strong);font-weight:700;font-size:24px;font-variant-numeric:tabular-nums;line-height:1.15}.kpi .l{font-size:12px;color:var(--muted)}.kpi .d{font-size:12px}.kpi.clickable{cursor:pointer}.kpi.clickable:hover{background:var(--panel-2)}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-strong);background:var(--panel);padding:6px 12px;border-radius:6px;cursor:pointer;font-family:var(--font-strong);font-size:13.5px;white-space:nowrap;line-height:1.3}.btn:hover{background:var(--panel-2)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--crit);border-color:var(--crit)}.btn.ghost{border-color:transparent;background:transparent}.btn.sm{padding:3px 8px;font-size:12.5px}.btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn{border:0;background:none;padding:6px;border-radius:6px;cursor:pointer;color:var(--text-2);display:inline-grid;place-items:center}.icon-btn:hover{background:var(--sunken)}.input,.select,.textarea{border:1px solid var(--line-strong);background:var(--panel);border-radius:6px;padding:6px 9px;min-width:0;width:100%}.textarea{min-height:80px;resize:vertical;font-family:var(--mono);font-size:12.5px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field>label{font-size:12px;color:var(--muted);font-family:var(--font-strong)}.badge{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:20px;font-size:11.5px;font-family:var(--font-strong);font-weight:700;white-space:nowrap;background:var(--sunken);color:var(--text-2);letter-spacing:.02em}.b-crit{background:var(--crit-soft);color:var(--crit)}.b-high{background:var(--high-soft);color:var(--high)}.b-med{background:var(--med-soft);color:var(--med)}.b-low{background:var(--low-soft);color:var(--low)}.b-info{background:var(--info-soft);color:var(--info)}.b-violet{background:var(--violet-soft);color:var(--violet)}.b-accent{background:var(--accent-soft);color:var(--accent)}.sev-stripe{width:4px;align-self:stretch;border-radius:2px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;margin-bottom:14px}.tab{padding:8px 12px;border:0;background:none;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;font-family:var(--font-strong);white-space:nowrap;font-size:13.5px}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.tab .badge{margin-inline-start:5px}.table-wrap{overflow-x:auto}table.t{width:100%;border-collapse:collapse;font-size:13.5px}table.t th{text-align:start;font-family:var(--font-strong);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--panel-2);position:sticky;top:0;z-index:1;cursor:default}table.t th.sortable{cursor:pointer}table.t td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}table.t tr.clickable{cursor:pointer}table.t tr.clickable:hover td{background:var(--panel-2)}table.t tr.selected td{background:var(--accent-soft)}table.t td.r,table.t th.r{text-align:end}.kv{display:grid;grid-template-columns:minmax(110px,max-content) minmax(0,1fr);gap:6px 14px;font-size:13.5px}.kv dt{color:var(--muted)}.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}.code{background:var(--sunken);border:1px solid var(--line);border-radius:6px;padding:10px;font-family:var(--mono);font-size:12px;white-space:pre-wrap;overflow-x:auto;max-height:420px;overflow-y:auto}.drawer-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#080e1859;z-index:50}.drawer{position:fixed;top:0;bottom:0;inset-inline-end:0;width:min(760px,100vw);background:var(--bg);z-index:51;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slidein .18s ease-out}@keyframes slidein{0%{transform:translate(24px);opacity:.6}to{transform:none;opacity:1}}.drawer-h{padding:14px 18px;border-bottom:1px solid var(--line);background:var(--panel);display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-top:calc(14px + env(safe-area-inset-top,0px))}.drawer-b{padding:16px 18px;overflow-y:auto;flex:1}.modal{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;z-index:60;background:#080e1866;padding:16px}.modal-card{background:var(--panel);border-radius:8px;box-shadow:var(--shadow-lg);width:min(560px,100%);max-height:90vh;overflow:auto}.toast-wrap{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom,0px));inset-inline-end:16px;display:flex;flex-direction:column;gap:8px;z-index:80}.toast{background:var(--nav);color:#fff;padding:10px 14px;border-radius:6px;box-shadow:var(--shadow-lg);max-width:380px;font-size:13.5px}.toast.err{background:var(--crit)}.empty{padding:28px;text-align:center;color:var(--muted)}.divider{height:1px;background:var(--line);margin:12px 0}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid var(--line-strong);border-radius:14px;font-size:12px;background:var(--panel);cursor:pointer}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.score{font-family:var(--font-strong);font-weight:700;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:6px}.scorebar{width:54px;height:6px;background:var(--sunken);border-radius:3px;overflow:hidden;display:inline-block}.scorebar>i{display:block;height:100%;border-radius:3px}.contrib{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px dashed var(--line)}.contrib:last-child{border-bottom:0}.contrib .pts{font-family:var(--font-strong);font-weight:700;font-variant-numeric:tabular-nums;text-align:end}.bar-track{height:8px;background:var(--sunken);border-radius:4px;overflow:hidden}.bar-fill{height:100%;border-radius:4px;background:var(--accent)}.timeline{position:relative;padding-inline-start:18px}.timeline:before{content:"";position:absolute;inset-inline-start:5px;top:4px;bottom:4px;width:2px;background:var(--line)}.tl-item{position:relative;padding:4px 0 10px}.tl-item:before{content:"";position:absolute;inset-inline-start:-17px;top:9px;width:10px;height:10px;border-radius:50%;background:var(--panel);border:2px solid var(--line-strong)}.tl-item.risk:before{border-color:var(--crit);background:var(--crit-soft)}.tl-item.ok:before{border-color:var(--low);background:var(--low-soft)}.copilot-sec{border-inline-start:3px solid var(--line-strong);padding:4px 0 4px 12px;margin:10px 0}.copilot-sec.facts{border-color:var(--info)}.copilot-sec.inf{border-color:var(--violet)}.copilot-sec.rec{border-color:var(--accent)}.copilot-sec ul{margin:6px 0 0;padding-inline-start:18px}.copilot-sec li{margin:3px 0}.ref{font-family:var(--mono);font-size:11px;color:var(--muted);margin-inline-start:6px}.lifecycle{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.stage{border:1px solid var(--line);border-radius:6px;padding:9px 10px;background:var(--panel);opacity:.45;transition:opacity .25s,border-color .25s,transform .25s;min-height:74px}.stage.on{opacity:1}.stage.current{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow)}.stage .st-n{font-family:var(--mono);font-size:10.5px;color:var(--muted)}.stage .st-t{font-family:var(--font-strong);font-weight:700;font-size:13px;margin:2px 0}.stage .st-s{font-size:12px;color:var(--text-2)}.stage.warn{border-inline-start:3px solid var(--high)}.stage.fail{border-inline-start:3px solid var(--crit)}.stage.ok{border-inline-start:3px solid var(--low)}.cond-group{border:1px solid var(--line-strong);border-radius:6px;padding:8px;background:var(--panel-2);display:flex;flex-direction:column;gap:6px}.cond-group .cond-group{background:var(--panel)}.cond-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.cond-row>*{flex:0 1 auto}.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-inline-end:5px;vertical-align:-1px}.chart text{fill:var(--muted);font-size:11px;font-family:var(--font)}.chart .grid line{stroke:var(--line)}.graph-node{cursor:pointer}.graph-node text{fill:var(--text-2);font-size:10.5px;pointer-events:none}.graph-wrap{position:relative;background:var(--panel-2);border-radius:6px;overflow:hidden}.switch{position:relative;width:34px;height:20px;border-radius:10px;background:var(--line-strong);border:0;cursor:pointer;flex:none}.switch:after{content:"";position:absolute;top:2px;inset-inline-start:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:inset-inline-start .15s}.switch.on{background:var(--accent)}.switch.on:after{inset-inline-start:16px}.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:6px;overflow:hidden}.seg button{border:0;background:var(--panel);padding:4px 10px;cursor:pointer;font-family:var(--font-strong);font-size:12px}.seg button+button{border-inline-start:1px solid var(--line-strong)}.seg button.on{background:var(--accent);color:var(--accent-ink)}.loading-screen{height:100%;display:grid;place-items:center;background:var(--nav);color:var(--nav-text)}.loading-screen .bar{width:220px;height:3px;background:var(--nav-2);border-radius:2px;overflow:hidden;margin-top:14px}.loading-screen .bar i{display:block;height:100%;width:40%;background:var(--accent);animation:load 1.1s infinite ease-in-out}@keyframes load{0%{transform:translate(-100%)}to{transform:translate(260%)}}.pulse{animation:pulse 1.2s infinite}@keyframes pulse{50%{opacity:.4}}.callout{border:1px solid var(--line);border-inline-start:3px solid var(--info);background:var(--panel);padding:10px 12px;border-radius:6px;font-size:13.5px}.callout.warn{border-inline-start-color:var(--high)}.callout.ok{border-inline-start-color:var(--low)}.callout.violet{border-inline-start-color:var(--violet)}.wf{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.wf .st{padding:3px 10px;border-radius:14px;border:1px solid var(--line-strong);font-size:12px;font-family:var(--font-strong)}.wf .st.done{background:var(--low-soft);border-color:transparent;color:var(--low)}.wf .st.cur{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.wf .arrow{color:var(--muted);font-size:12px}.matrix td.c{text-align:center}.check{width:16px;height:16px;accent-color:var(--accent)}.hide-desktop{display:none!important}.nav-backdrop{display:none}@media (min-width: 1440px){.content{padding:24px 32px 48px}}@media (max-width: 1280px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g6{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 1024px){.g2,.g3{grid-template-columns:minmax(0,1fr)}.span2,.span3{grid-column:auto}.g-side,.g-main-side{grid-template-columns:minmax(0,1fr)}.content{padding:16px 18px 36px}.topbar{padding:8px 14px}.topbar-search{flex:0 1 200px}}@media (max-width: 900px){.hide-desktop{display:inline-flex!important}.hide-sm{display:none!important}.shell,.shell.collapsed{grid-template-columns:minmax(0,1fr)!important}.nav{display:none;position:fixed;top:0;bottom:0;inset-inline-start:0;width:280px;max-width:84vw;z-index:100;box-shadow:0 20px 48px #00000073;animation:slideInNav .22s cubic-bezier(.16,1,.3,1)}.nav.mobile-open{display:flex}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#080e1899;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:95;animation:fadeInBackdrop .18s ease-out}.shell.collapsed .brand-text,.shell.collapsed .nav-group-title,.shell.collapsed .nav-item span.lbl,.shell.collapsed .nav-item .count{display:initial!important}.shell.collapsed .nav-item{justify-content:flex-start!important;padding:8px 10px!important}.shell.collapsed .brand{justify-content:flex-start!important;padding:14px 16px!important}}@keyframes slideInNav{0%{transform:translate(-100%);opacity:.8}to{transform:translate(0);opacity:1}}@keyframes slideInNavRtl{0%{transform:translate(100%);opacity:.8}to{transform:translate(0);opacity:1}}[dir=rtl] .nav.mobile-open{animation-name:slideInNavRtl}@keyframes fadeInBackdrop{0%{opacity:0}to{opacity:1}}@media (max-width: 640px){.g4,.g6{grid-template-columns:1fr}.topbar{padding:6px 10px;gap:6px}.topbar .mode-pill{font-size:10.5px;padding:2px 7px}.topbar-search{flex:1 1 100%;order:10;margin-top:4px}.content{padding:12px 10px 28px}.page-head{flex-direction:column;align-items:flex-start;gap:8px}.page-head .row{width:100%;justify-content:flex-start;flex-wrap:wrap}.kpi .v{font-size:20px}.drawer{width:100vw;max-width:100vw}.modal-card{width:96vw;max-height:92vh;margin:6px;border-radius:6px}.table-wrap{-webkit-overflow-scrolling:touch}table.t{font-size:12px}table.t th,table.t td{padding:6px}.kv{grid-template-columns:1fr;gap:2px}.user-select{max-width:130px!important}}
