/* NX1 — the new light interface (the Owner 2026-10-13: «الدنيا تبقى خفيفة جدا … واكيد بتبقى احلى … بس انا مش عايز اوبشن يسقط»). One stylesheet: the design of the
   approved mockup (astra-deliveries/MOCKUP-CONTINUE-20261013, v10 — the dark side rail, the sticky top bar, the cards and tables), Arabic first, the five
   navigation positions, the seven experience colours of the platform. No inline style anywhere (CSP). */
:root{--ink-0:#060c18;--rail:#0c1729;--rail-2:#21345d;--rail-text:#d9e3f6;--rail-muted:#a2aec4;--primary:#315bff;--primary-2:#2344cc;--primary-soft:#eef2ff;--accent:#20d5f5;--focus:#8b5cf6;
 --surface:#fff;--canvas:#f3f6fa;--ink:#102641;--muted:#52647b;--line:#dce4ed;--line-2:#a9b7ca;--th:#f0f4fa;--hover:#f6f8ff;--good:#08745d;--good-soft:#e5f5ef;--bad:#ad3544;--bad-soft:#fff0f2;--warn:#a35b11;--warn-soft:#fff5e6;
 --r:14px;--r-s:9px;--shadow:0 2px 5px #142f5510;--font:'Segoe UI',Tahoma,'Noto Sans Arabic',Arial,sans-serif;color-scheme:light}
:root[data-color="aurora"]{--primary:#6d28d9;--primary-2:#5b21b6;--primary-soft:#f1ecfd;--accent:#a78bfa;--rail:#1e1446;--rail-2:#3b2a7a}
:root[data-color="midnight"]{--primary:#7c3aed;--primary-2:#6d28d9;--primary-soft:#f0ebfe;--accent:#818cf8;--rail:#120f33;--rail-2:#2e2569}
:root[data-color="ocean"]{--primary:#0e6fbe;--primary-2:#0b5a9b;--primary-soft:#e8f3fc;--accent:#38bdf8;--rail:#0b2a4a;--rail-2:#164a78}
:root[data-color="emerald"]{--primary:#047857;--primary-2:#065f46;--primary-soft:#e7f6ef;--accent:#34d399;--rail:#06302a;--rail-2:#0d5246}
:root[data-color="sunset"]{--primary:#c2410c;--primary-2:#9a3412;--primary-soft:#fdeee4;--accent:#fb923c;--rail:#3a1608;--rail-2:#6b2a12}
:root[data-color="rose-gold"]{--primary:#be185d;--primary-2:#9d174d;--primary-soft:#fbe8f1;--accent:#f9a8d4;--rail:#3b0a24;--rail-2:#6b1741}
*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--font);color:var(--ink);background:var(--canvas);font-size:15px;line-height:1.6}
button,input,select,textarea{font:inherit;color:inherit}a{color:var(--primary-2);text-underline-offset:3px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.nx-skip{position:fixed;inset-block-start:-100px;inset-inline-start:8px;z-index:100;background:#fff;padding:12px}.nx-skip:focus{inset-block-start:8px}
.nx-hidden,[hidden]{display:none!important}.nx-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* buttons and fields */
.nx-btn,button.nx-btn{min-height:42px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);padding:8px 14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;color:var(--ink);font-size:14px}
.nx-btn:hover{border-color:var(--primary);background:var(--primary-soft)}.nx-btn:disabled{opacity:.55;cursor:not-allowed}
.nx-btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.nx-btn.primary:hover{background:var(--primary-2)}
.nx-btn.danger{color:var(--bad);border-color:#e7b3bb}.nx-btn.ghost{border-color:transparent;background:transparent}.nx-btn.small{min-height:34px;padding:4px 10px;font-size:13px}
.nx-field{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:14px}.nx-field>span{color:var(--muted);font-size:13px}
.nx-field input,.nx-field select,.nx-field textarea,.nx-input{width:100%;min-height:42px;border:1px solid var(--line-2);border-radius:8px;padding:8px 10px;background:var(--surface)}
.nx-field textarea{min-height:88px}.nx-check{display:flex;align-items:center;gap:10px;min-height:42px}.nx-check input{width:20px;height:20px}
.nx-field [aria-invalid="true"]{border-color:var(--bad);background:var(--bad-soft)}
/* the shell */
.nx-shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}
.nx-rail{position:sticky;inset-block-start:0;height:100vh;background:var(--rail);color:var(--rail-text);padding:16px 10px;display:flex;flex-direction:column;gap:4px;overflow-y:auto;z-index:20}
.nx-brand{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 0 14px;text-decoration:none;color:#fff}.nx-brand img{width:150px;max-width:100%;height:auto}.nx-brand small{color:var(--rail-muted);font-size:11px;letter-spacing:.6px}
.nx-rail a,.nx-rail button{min-height:44px;color:var(--rail-text);border:0;background:transparent;text-decoration:none;border-radius:var(--r-s);padding:9px 10px;display:flex;gap:12px;align-items:center;cursor:pointer;font-size:15px;text-align:start;width:100%}
.nx-rail a:hover,.nx-rail button:hover{background:var(--rail-2)}.nx-rail a[aria-current="page"]{background:var(--rail-2);color:#fff;box-shadow:inset -3px 0 var(--accent)}
[dir="ltr"] .nx-rail a[aria-current="page"]{box-shadow:inset 3px 0 var(--accent)}
.nx-ico{width:22px;height:22px;flex:none;display:inline-flex;align-items:center;justify-content:center}.nx-ico svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nx-sub{display:flex;flex-direction:column;gap:2px;padding-inline-start:34px;margin-block-end:4px}.nx-sub a{min-height:36px;font-size:14px;padding:6px 10px;color:var(--rail-muted)}.nx-sub a[aria-current="page"]{color:#fff;box-shadow:none;background:var(--rail-2)}
.nx-rail-foot{margin-block-start:auto;font-size:12px;color:var(--rail-muted);padding:14px 8px;line-height:1.7;display:flex;flex-direction:column;gap:6px}.nx-rail-foot a{min-height:34px;font-size:13px;padding:4px 8px;color:var(--rail-muted)}
.nx-shell.folded{grid-template-columns:72px minmax(0,1fr)}.folded .nx-label,.folded .nx-rail-foot,.folded .nx-sub,.folded .nx-brand small{display:none}.folded .nx-brand img{width:48px}
.nx-main{min-width:0;display:flex;flex-direction:column}
.nx-top{position:sticky;inset-block-start:0;z-index:15;background:rgba(255,255,255,.97);border-block-end:1px solid var(--line);display:flex;gap:12px;padding:10px 24px;align-items:end;flex-wrap:wrap;backdrop-filter:blur(6px)}
.nx-top .nx-field{flex:1;min-width:150px;max-width:300px}.nx-top-tools{margin-inline-start:auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.nx-icon-btn{min-width:42px;min-height:42px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;color:var(--ink);text-decoration:none}
.nx-icon-btn:hover{border-color:var(--primary);background:var(--primary-soft)}.nx-icon-btn svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nx-count{position:absolute;inset-block-start:-6px;inset-inline-end:-6px;min-width:20px;height:20px;border-radius:10px;background:var(--bad);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}
.nx-content{width:100%;max-width:1560px;margin:0 auto;padding:24px;display:flex;flex-direction:column;gap:20px}
.nx-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.nx-head h1{font-size:26px;margin:0;letter-spacing:-.3px}.nx-head p{margin:6px 0 0;color:var(--muted);max-width:760px}
.nx-eyebrow{color:var(--primary);font-size:12px;font-weight:700;letter-spacing:.4px}
.nx-tabs{display:flex;gap:4px;flex-wrap:wrap;border-block-end:1px solid var(--line);padding-block-end:8px}
.nx-tabs button,.nx-tabs a{min-height:40px;border:1px solid transparent;background:transparent;border-radius:8px;color:var(--muted);padding:6px 12px;cursor:pointer;text-decoration:none;font-size:14px}
.nx-tabs [aria-selected="true"]{color:var(--primary-2);background:var(--primary-soft);border-color:#c6d3ff;font-weight:700}
.nx-panel{padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);min-width:0}
.nx-panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-block-end:14px;flex-wrap:wrap}.nx-panel-head h2{margin:0;font-size:18px}
.nx-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.nx-grid-2{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
.nx-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.nx-kpi{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:16px;display:flex;flex-direction:column;gap:8px;min-width:0;box-shadow:var(--shadow);text-align:start}
.nx-kpi-label{font-size:13px;color:var(--muted)}.nx-kpi-value{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.5px}.nx-kpi-sub{font-size:12px;color:var(--muted)}
.nx-card{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:16px;text-decoration:none;color:var(--ink);min-width:0}.nx-card:hover{border-color:var(--primary);box-shadow:0 6px 20px #142f5514}
.nx-card h3{margin:0;font-size:16px}.nx-card p{margin:0;color:var(--muted);font-size:14px}
.nx-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:10px}
.nx-table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}.nx-table th{background:var(--th);color:#4c5e76;font-size:12px;font-weight:600;text-align:start}
.nx-table th,.nx-table td{padding:10px 12px;border-block-end:1px solid var(--line);text-align:start;vertical-align:top}.nx-table tbody tr:hover{background:var(--hover)}.nx-table .num{text-align:end;white-space:nowrap}.nx-neg{color:var(--bad)}
.nx-notice{border-inline-start:3px solid var(--primary);background:var(--primary-soft);padding:12px 16px;border-radius:8px}.nx-notice.bad{border-color:var(--bad);background:var(--bad-soft)}.nx-notice.good{border-color:var(--good);background:var(--good-soft)}.nx-notice.warn{border-color:var(--warn);background:var(--warn-soft)}
.nx-empty{padding:26px;background:#f7f9fc;border:1px dashed #c4d0e2;border-radius:12px;color:var(--muted)}
.nx-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);padding:4px 10px;border-radius:999px;background:#fff;font-size:12px}
.nx-status{min-height:22px;margin:0;color:var(--muted);font-size:14px}.nx-status.bad{color:var(--bad)}.nx-status.good{color:var(--good)}
.nx-toast{position:fixed;inset-block-end:24px;inset-inline-start:24px;z-index:60;padding:12px 18px;max-width:calc(100% - 48px);background:var(--rail);color:#fff;border-radius:10px;box-shadow:0 6px 30px #0003}
dialog.nx-dialog{width:min(760px,calc(100% - 32px));max-height:90vh;overflow:auto;border:1px solid var(--line);border-radius:16px;padding:22px;color:var(--ink)}dialog.nx-dialog::backdrop{background:#061326a3}
.nx-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-block-end:14px}.nx-dialog-head h2{margin:0;font-size:18px}
.nx-menu{position:absolute;inset-block-start:calc(100% + 6px);inset-inline-end:0;z-index:40;min-width:240px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px #0002;padding:6px;display:flex;flex-direction:column}
.nx-menu a,.nx-menu button{min-height:40px;border:0;background:transparent;text-align:start;padding:8px 12px;border-radius:8px;cursor:pointer;color:var(--ink);text-decoration:none;display:flex;gap:10px;align-items:center}.nx-menu a:hover,.nx-menu button:hover{background:var(--primary-soft)}
.nx-wrap{position:relative}
.nx-loading{padding:40px;text-align:center;color:var(--muted)}
/* the sign-in screens */
.nx-auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,520px);background:var(--canvas)}
.nx-auth-hero{background:var(--rail);color:var(--rail-text);padding:48px;display:flex;flex-direction:column;justify-content:center;gap:18px}.nx-auth-hero img{width:220px;max-width:70%}.nx-auth-hero h1{color:#fff;font-size:30px;margin:0}.nx-auth-hero p{color:var(--rail-muted);max-width:520px;margin:0}
.nx-auth-card{padding:40px 32px;display:flex;flex-direction:column;justify-content:center;gap:16px;background:var(--surface)}.nx-auth-card h2{margin:0;font-size:22px}.nx-auth-card form{display:flex;flex-direction:column;gap:14px}
.nx-auth-links{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:14px}
/* the five navigation positions (nav-modes of the mockup): right (default in Arabic), left, top, bottom, floating */
[dir="rtl"] .nx-shell.nav-left{direction:ltr}[dir="rtl"] .nav-left .nx-rail,[dir="rtl"] .nav-left .nx-main{direction:rtl}
[dir="ltr"] .nx-shell.nav-right{direction:rtl}[dir="ltr"] .nav-right .nx-rail,[dir="ltr"] .nav-right .nx-main{direction:ltr}
.nx-shell.nav-top,.nx-shell.nav-bottom{display:block}
.nav-top .nx-rail,.nav-bottom .nx-rail{position:sticky;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;padding:6px 12px;gap:2px;inset-block-start:0}
.nav-bottom .nx-rail{position:fixed;inset-block-start:auto;inset-block-end:0;inset-inline:0;z-index:30}.nav-bottom .nx-main{padding-block-end:80px}
.nav-top .nx-rail a,.nav-bottom .nx-rail a,.nav-top .nx-rail button,.nav-bottom .nx-rail button{width:auto;min-height:40px;font-size:14px}.nav-top .nx-brand,.nav-bottom .nx-brand{flex-direction:row;padding:0 8px}.nav-top .nx-brand img,.nav-bottom .nx-brand img{width:90px}
.nav-top .nx-sub,.nav-bottom .nx-sub,.nav-top .nx-rail-foot,.nav-bottom .nx-rail-foot,.nav-top .nx-brand small,.nav-bottom .nx-brand small{display:none}.nav-top .nx-top{inset-block-start:56px}
.nx-shell.nav-float{grid-template-columns:76px minmax(0,1fr)}.nav-float .nx-rail{height:auto;border-radius:16px;margin:12px 6px;align-self:start;inset-block-start:12px}.nav-float .nx-label,.nav-float .nx-rail-foot,.nav-float .nx-sub,.nav-float .nx-brand small{display:none}.nav-float .nx-brand img{width:48px}
/* screens of the phone */
@media (max-width:1100px){.nx-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.nx-shell{grid-template-columns:200px minmax(0,1fr)}.nx-content{padding:18px}.nx-grid-2{grid-template-columns:1fr}}
@media (max-width:760px){.nx-shell,.nx-shell.folded,.nx-shell.nav-float{display:block}
 .nx-rail{position:fixed;inset-block-start:auto;inset-block-end:0;inset-inline:0;height:auto;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:6px;gap:2px;border-radius:0;margin:0;z-index:30}
 .nx-rail .nx-brand,.nx-rail-foot,.nx-sub,.nx-rail .nx-label{display:none}.nx-rail a,.nx-rail button{flex:0 0 56px;justify-content:center;flex-direction:column;gap:2px;font-size:11px;min-height:52px;padding:4px}
 .nx-main{padding-block-end:76px}.nx-top{padding:8px 12px;gap:8px}.nx-top .nx-field{min-width:calc(50% - 8px);max-width:none}.nx-content{padding:14px 12px}.nx-head h1{font-size:22px}
 .nx-kpis{gap:10px}.nx-kpi{padding:12px}.nx-kpi-value{font-size:22px}.nx-panel{padding:14px}.nx-auth{grid-template-columns:1fr}.nx-auth-hero{padding:28px 20px}.nx-auth-card{padding:24px 18px}}
/* G4-NX2 — the data screens: cards of templates, the details blocks, the questions of the review, the tables that hold choices, the gate chip, the stages of a month */
.nx-cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin-block-start:16px}
.nx-panel+.nx-panel,.nx-panel+section,section+.nx-panel{margin-block-start:16px}
.nx-panel h3{margin:8px 0 6px;font-size:16px}
.nx-panel details{margin-block:10px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:var(--surface)}
.nx-panel details>summary{cursor:pointer;font-weight:600;min-height:32px;display:flex;align-items:center}
.nx-panel details[open]>summary{margin-block-end:8px}
.nx-unlocks{display:flex;flex-wrap:wrap;gap:6px}
.nx-field legend{font-size:13px;font-weight:600;color:var(--muted);margin-block-end:6px}
fieldset.nx-field{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:10px 0}
.nx-table select,.nx-table input:not([type=checkbox]){min-height:34px;border:1px solid var(--line);border-radius:8px;padding:4px 8px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;max-width:100%}
.nx-table input[type=checkbox]{width:18px;height:18px}
[data-nx-gate="ready"],.nx-chip.good{background:var(--good-soft);color:var(--good)}
[data-nx-gate="needs_mapping"],.nx-chip.warn{background:var(--warn-soft);color:var(--warn)}
[data-nx-gate="validation_blocked"],.nx-chip.bad{background:var(--bad-soft);color:var(--bad)}
.nx-notice ul{margin:6px 0 0;padding-inline-start:20px}
.nx-stages{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.nx-stages [aria-current="step"]{background:var(--primary);color:#fff}
.nx-actions-cell{display:flex;flex-wrap:wrap;gap:6px}
.nx-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-block-end:12px}.nx-files-sec{border:1px solid var(--line);border-radius:10px;margin:8px 0;background:var(--surface)}.nx-files-sec>summary{cursor:pointer;padding:10px 14px;display:flex;gap:10px;align-items:center;list-style:none}.nx-files-sec>summary::-webkit-details-marker{display:none}.nx-files-sec>summary::before{content:'+';color:var(--muted);font-weight:700}.nx-files-sec[open]>summary::before{content:'−'}.nx-files-sec>div{padding:0 10px 10px}.nx-files-grid th,.nx-files-grid td{text-align:center;padding:4px 6px;white-space:nowrap}.nx-files-grid th[scope=row]{text-align:start}.nx-files-more-filters{flex-basis:100%}.nx-files-more-filters>summary{cursor:pointer;color:var(--muted)}.nx-files-more-filters>div{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-block-start:8px}@media (max-width:760px){.nx-files-sec table[data-nx-files] thead{display:none}.nx-files-sec table[data-nx-files],.nx-files-sec table[data-nx-files] tbody,.nx-files-sec table[data-nx-files] tr,.nx-files-sec table[data-nx-files] td{display:block;inline-size:auto}.nx-files-sec table[data-nx-files] tr{border-block-end:1px solid var(--line);padding:8px 4px}.nx-files-sec table[data-nx-files] tr[hidden]{display:none}.nx-files-sec table[data-nx-files] td{border:0;padding:3px 6px}}/* G4-FILESORG1: the files by month, the active months as a grid, the extra filters folded, a file as a card on the phone */
.nx-filters .nx-field{min-width:180px;flex:0 1 220px}
.nx-score{font-size:40px;font-weight:700;line-height:1}
.nx-muted{color:var(--muted);font-size:13px}
@media (max-width:760px){.nx-cards{grid-template-columns:1fr}.nx-filters .nx-field{flex:1 1 100%}}
/* G4-NX2 — the checks and their explanations (the words of public/clar1.js inside the new sheet) */
.control-check{border:1px solid var(--line);border-inline-start:4px solid var(--line-2);border-radius:10px;padding:10px 12px;margin-block:8px;background:var(--surface)}
.control-check.critical{border-inline-start-color:var(--bad)}.control-check.high{border-inline-start-color:var(--warn)}.control-check.medium{border-inline-start-color:var(--primary)}.control-check.info{border-inline-start-color:var(--line-2)}
.control-check p{margin:6px 0}.control-check small{color:var(--muted)}
.nx-clar .muted,.control-check .muted{color:var(--muted)}
.clar1-sub{font-weight:600;margin:10px 0 4px}.clar1-ok{color:var(--good)}.clar1-count{margin-inline-start:8px;color:var(--muted);font-size:13px}
.clar1-files{margin:6px 0;padding-inline-start:20px}.unmapped-list{display:flex;flex-wrap:wrap;gap:6px}.unmapped-list span{border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:12px}
.clar1-actions{display:flex;flex-wrap:wrap;gap:8px}
.clar1-go,.clar1-why,.clar1-chip,.clar1-link,.clar1-close{min-height:34px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);color:var(--ink);padding:4px 10px;cursor:pointer;font:inherit;font-size:13px}
.clar1-go:hover,.clar1-why:hover,.clar1-chip:hover,.clar1-link:hover{border-color:var(--primary);background:var(--primary-soft)}
.clar1-link{border-color:transparent;background:transparent;color:var(--primary);padding-inline:2px}
.clar1-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-block-end:8px}
.clar1-block{margin-block:8px}.clar1-block>b{display:block;margin-block-end:4px}
.clar1-steps,.clar1-score{margin:4px 0;padding-inline-start:22px}.clar1-note,.clar1-hint{color:var(--muted);font-size:13px}
.clar1-reasons{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.nx-explain{margin-block:10px;box-shadow:var(--shadow)}
button.nx-kpi{text-align:start;cursor:pointer;font:inherit;color:inherit}
small.nx-muted{display:block;margin-block-start:4px}
/* G4-NX3 — the classification page: the classic markup copied into the new sheet (the inbox groups, the saved rules, the side question) */
[data-nx-screen=classify] .mini{min-height:32px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);color:var(--ink);padding:3px 10px;cursor:pointer;font:inherit;font-size:13px}
[data-nx-screen=classify] .mini.primary{background:var(--primary);border-color:var(--primary);color:#fff}
[data-nx-screen=classify] .muted{color:var(--muted);font-size:13px}
.flow-filter-note{color:var(--muted);font-size:13px;margin:6px 0}
.flow-levels,.flow-groups{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.flow-level,.flow-group{min-height:32px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);padding:3px 12px;cursor:pointer;font:inherit;font-size:13px}
.flow-level[aria-pressed="true"],.flow-group[aria-pressed="true"]{background:var(--primary);border-color:var(--primary);color:#fff}
.flow-gline{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0}
.flow-gline[data-flow-open="0"] .flow-groups{flex-wrap:nowrap;overflow-x:auto;max-width:100%}
.flow-gfind{min-height:36px;border:1px solid var(--line);border-radius:var(--r-s);padding:4px 10px;font:inherit;min-width:220px;background:var(--surface);color:var(--ink)}
.flow-gmore{border:0;background:transparent;color:var(--primary);cursor:pointer;font:inherit}
.flow-gcount,.flow-tip{color:var(--muted);font-size:12px}
.flow-size{display:inline-flex;gap:6px;align-items:center}
.flow-size select,#flowBulkMetric{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:2px 8px;background:var(--surface);color:var(--ink);font:inherit}
.busy1-active{opacity:.75;cursor:progress}
.nx-bulk{padding:8px 0;border-block-end:1px solid var(--line);margin-block-end:8px}
.mv1-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:8px 0}
.mv1-filters select{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:2px 8px;background:var(--surface);color:var(--ink);font:inherit}
.mv1-rule{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:4px 0;border-block-end:1px dashed var(--line)}
.mv1-rule:last-child{border-block-end:0}
.mv1-off{opacity:.6}
.mv1-side,.mv1-chip{border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-size:12px}
.mv1-warn{color:var(--warn);font-size:13px}
.mv1-months{color:var(--muted)}.mv1-warn{color:var(--warn)}/* G4-CASHROLE1 */
.mv1-ask{color:var(--warn)}
details.nx-panel>summary{cursor:pointer;font-weight:600;font-size:16px}
/* G4-NX3 — the classic sheets of the account tree, the cost centres and the expense functions (public/maptree1.css, cc1.css, fn1.css, copied by
   _gate2/_work/nx3/gen-sheets.cjs with the colour tokens read as the new interface’s) */
/* maptree1.css */
/* G4-MAP1-A — the account tree and classification (structure and spacing only; colors follow the site tokens) */
.maptree .mt-body{display:grid;gap:12px}
.maptree .mt-busy{opacity:.6}
.maptree .mt-head{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.maptree .mt-coverage{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.maptree .mt-coverage progress{inline-size:min(320px,100%);block-size:12px}
.maptree .mt-pattern{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.maptree .mt-pattern-edit{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}
.maptree .mt-pattern-edit input{inline-size:11ch}
.maptree .mt-filters{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:end}
.maptree .mt-filters label{display:grid;gap:4px}
.maptree .mt-filters .mt-check{grid-auto-flow:column;align-items:center}
.maptree .mt-filters .mt-search{flex:1 1 200px}
.maptree .mt-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:16px;align-items:start}
.maptree .mt-tree-host{max-block-size:70vh;overflow:auto;border:1px solid var(--line,rgba(0,0,0,.12));border-radius:10px;padding:6px}
.maptree .mt-tree,.maptree .mt-tree ul{list-style:none;margin:0;padding:0}
.maptree .mt-tree ul{padding-inline-start:18px}
.maptree .mt-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto auto;gap:6px 10px;align-items:center;padding:4px 6px;border-radius:8px;cursor:pointer}
.maptree .mt-row.mt-account{grid-template-columns:auto minmax(0,1fr) auto auto auto;padding-inline-start:28px}
.maptree .mt-row:hover{background:var(--primary-soft,rgba(37,99,235,.06))}
.maptree .mt-row[aria-selected="true"]{background:var(--primary-soft,rgba(37,99,235,.12));outline:1px solid var(--line,rgba(37,99,235,.3))}
.maptree .mt-toggle{border:0;background:none;cursor:pointer;inline-size:22px;block-size:22px;padding:0;font:inherit}
.maptree .mt-code{font-variant-numeric:tabular-nums;font-weight:600}
.maptree .mt-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.maptree .mt-bal{font-variant-numeric:tabular-nums}
.maptree .mt-count,.maptree .mt-metric{font-size:.85em;opacity:.8}
.maptree .mt-badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.8em;border:1px solid currentColor;white-space:nowrap}
.maptree .mt-badge[data-status="missing"]{color:var(--bad,#b42318)}
.maptree .mt-badge[data-status="exception"]{color:var(--warn,#b54708)}
.maptree .mt-badge[data-status="inherited"],.maptree .mt-badge[data-status="direct"],.maptree .mt-badge[data-status="ok"]{color:var(--good,#067647)}
.maptree .mt-badge[data-status="master"],.maptree .mt-badge[data-status="deferred"],.maptree .mt-badge[data-status="empty"]{opacity:.75}
.maptree .mt-card h4{margin:0 0 6px}
.maptree .mt-current{margin:0 0 8px}
.maptree .mt-actions{display:flex;flex-wrap:wrap;gap:8px}
.maptree .mt-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-block:10px}
.maptree .mt-bar .mt-status{flex:1 1 100%;margin:0}
.maptree .mt-figures{inline-size:100%;border-collapse:collapse;margin-block:8px}
.maptree .mt-figures th,.maptree .mt-figures td{padding:4px 8px;text-align:start;border-block-end:1px solid var(--line,rgba(0,0,0,.1))}
.maptree .mt-figures caption{text-align:start;font-weight:600;padding:4px 0}
.maptree .mt-diff{font-weight:600}
.maptree .mt-changes,.maptree .mt-exceptions{margin:6px 0;padding-inline-start:18px;max-block-size:30vh;overflow:auto}
.maptree .mt-exc summary{cursor:pointer}
/* G4-MAP1-B — the suggestions, the market, the notices, the side rules, the flips, MX, the approval */
.maptree .mt-market{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.maptree .mt-market label{display:inline-flex;gap:6px;align-items:center}
.maptree .mt-notice{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin:0;padding:6px 10px;border:1px dashed var(--line,rgba(0,0,0,.2));border-radius:8px}
.maptree .mt-suggest{margin:8px 0;padding:8px 10px;border:1px solid var(--line,rgba(0,0,0,.12));border-radius:8px}
.maptree .mt-suggest h5{margin:0 0 6px}
.maptree .mt-suggest ul{margin:0;padding-inline-start:16px}
.maptree .mt-suggest .mt-sug-item{margin-block:4px}
.maptree .mt-suggest .mt-sug-item p{margin:2px 0 4px}
.maptree .mt-badge[data-status="suggest"]{color:var(--primary,#1d4ed8)}
.maptree .mt-alerts{margin:6px 0;padding-inline-start:18px;max-block-size:30vh;overflow:auto}
.maptree .mt-alerts li[data-state="pending"],.maptree .mt-alerts li[data-state="none"]{font-weight:600}
.maptree .mt-sr summary,.maptree .mt-flips summary{cursor:pointer}
.maptree .mt-sr table td{vertical-align:top}
.maptree .mt-locked{display:grid;gap:6px;margin-block:6px}
.maptree .mt-mx{margin-block:8px}
.maptree .mt-notice,.maptree .mt-market,.maptree .mt-suggest,.maptree .mt-alerts{overflow-wrap:anywhere;max-inline-size:100%}
.maptree .mt-body,.maptree .mt-body>*,.maptree .mt-side,.maptree .mt-grid,.maptree .mt-sr,.maptree .mt-flips{min-inline-size:0;max-inline-size:100%}
.maptree .mt-market>*,.maptree .mt-notice>*{min-inline-size:0;flex:0 1 auto}
@media (max-width:760px){.maptree .mt-sr table{display:block;overflow-x:auto;max-inline-size:100%}.maptree .mt-sr th,.maptree .mt-sr td{white-space:normal;min-inline-size:90px}.maptree .mt-preview{min-inline-size:0;max-inline-size:100%;overflow-x:auto}/* G4-MAP1-D: the figures table scrolls inside the preview, the page keeps its width */}
@media (max-width:760px){.maptree .mt-grid{grid-template-columns:1fr}.maptree .mt-tree-host{max-block-size:50vh}.maptree .mt-row{grid-template-columns:auto auto minmax(0,1fr) auto}.maptree .mt-row .mt-count,.maptree .mt-row .mt-metric{display:none}.maptree .mt-row.mt-account{grid-template-columns:auto minmax(0,1fr) auto auto;padding-inline-start:18px}}
/* G4-MAP2 (the Owner 2026-10-08: the ERP tree — «+» to open, the numbers beside the accounts, the tree the main column): the rows on one line, guide lines,
   the tree taller, the side card sticky, the readings and the totals as chips, an unnamed group in italics. */
.maptree .mt-grid{grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr)}
.maptree .mt-tree-host{max-block-size:calc(100vh - 150px);min-block-size:420px;padding:8px 10px}
.maptree .mt-side{position:sticky;inset-block-start:12px}
.maptree .mt-row{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;grid-template-columns:none}
.maptree .mt-row.mt-account{padding-inline-start:30px}
.maptree .mt-row .mt-name{flex:1 1 auto;min-inline-size:0}
.maptree .mt-row .mt-bal{min-inline-size:12ch;text-align:end}
.maptree .mt-row .mt-count,.maptree .mt-row .mt-metric{white-space:nowrap}
.maptree .mt-tree ul{margin-inline-start:11px;padding-inline-start:14px;border-inline-start:1px dashed var(--line,rgba(0,0,0,.18))}
.maptree .mt-toggle{inline-size:20px;block-size:20px;border:1px solid var(--line,rgba(0,0,0,.25));border-radius:4px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;flex:none}
.maptree .mt-row[data-level="1"] .mt-name{font-weight:700}.maptree .mt-unnamed{font-style:italic;opacity:.7}
.maptree .mt-totals,.maptree .mt-pattern-choices{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.maptree .mt-total-chip{display:inline-flex;gap:4px;align-items:center;padding:2px 8px;border:1px solid var(--line,rgba(0,0,0,.18));border-radius:999px;font-size:.9em;white-space:nowrap}
.maptree .mt-pattern-pick{display:inline-grid;gap:2px;text-align:start;padding:6px 10px;border-radius:10px}
.maptree .mt-pattern-pick[aria-pressed="true"]{outline:2px solid var(--primary,#2563eb);outline-offset:-2px}
.maptree .mt-pattern-pick span{font-size:.85em;opacity:.8}
.mt-chart-dialog{max-inline-size:min(620px,calc(100vw - 32px));border:1px solid var(--line,rgba(0,0,0,.18));border-radius:14px;padding:18px}
.mt-chart-dialog label{display:grid;gap:4px;margin-block:8px}.mt-chart-dialog textarea{inline-size:100%;font-family:ui-monospace,monospace}
/* G4-PASS1 — «حسابين متقابلين» in the account card */
.maptree .mt-pair{display:grid;gap:8px;margin-block-start:12px;padding:10px 12px;border:1px solid var(--line,rgba(0,0,0,.18));border-inline-start:4px solid var(--primary,#0869c9);border-radius:10px}
.maptree .mt-pair summary{cursor:pointer;font-weight:600}.maptree .mt-pair h5{margin:0;font-size:1em}.maptree .mt-pair p{margin:0}
.maptree .mt-pair label{display:grid;gap:4px}.maptree .mt-pair select{inline-size:100%;max-inline-size:100%}.maptree .mt-pair .mini{justify-self:start}
/* G4-MAP3 — the full-width area under the tree: the exceptions, the side rules, the flipped accounts and the MX suggestions; nothing in it pushes the page sideways */
.maptree .mt-wide{display:grid;gap:12px;margin-block-start:16px;min-inline-size:0;max-inline-size:100%}
.maptree .mt-wide>details,.maptree .mt-wide>.mt-mx{border:1px solid var(--line,rgba(0,0,0,.18));border-radius:12px;padding:10px 14px;min-inline-size:0;max-inline-size:100%;overflow-x:auto}
.maptree .mt-wide summary{cursor:pointer;font-weight:600}.maptree .mt-wide table{inline-size:100%;border-collapse:collapse}.maptree .mt-wide td,.maptree .mt-wide th{overflow-wrap:anywhere;vertical-align:top}
.maptree .mt-wide ul{margin:8px 0 0;padding-inline-start:18px;max-block-size:22rem;overflow-y:auto}.maptree .mt-card small{font-weight:400;opacity:.75}
@media (max-width:900px){.maptree .mt-grid{grid-template-columns:1fr}.maptree .mt-side{position:static}.maptree .mt-row .mt-count,.maptree .mt-row .mt-metric{display:none}}
/* cc1.css */
/* G4-CC1: the cost-centre window — the tree in a scrolling box (the page never grows long), the kinds as chips, the alerts and a centre's statement. */
.cc1-dialog{width:min(1100px,96vw);max-height:92vh;overflow:auto;padding:20px 22px;border:1px solid var(--line,#d9e1ec);border-radius:14px}
.cc1-dialog h2{margin:0 0 4px;font-size:1.2rem}
.cc1-close{position:absolute;inset-inline-end:14px;top:12px;border:0;background:transparent;font-size:1.4rem;line-height:1;cursor:pointer;padding:4px 8px}
.cc1-context{margin:0 0 6px;color:var(--muted,#5b6b80);font-size:.9rem}
.cc1-help{margin:0 0 10px;font-size:.88rem;line-height:1.6;color:var(--muted,#5b6b80)}
.cc1-muted{color:var(--muted,#5b6b80);font-size:.86rem}
.cc1-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 10px;border-bottom:1px solid var(--line,#d9e1ec)}
.cc1-tabs button{border:0;background:transparent;padding:8px 12px;cursor:pointer;border-bottom:2px solid transparent;font:inherit}
.cc1-tabs button.active,.cc1-tabs button[aria-selected="true"]{border-bottom-color:var(--primary,#1463d6);font-weight:600}
.cc1-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.cc1-tools input[type="search"]{min-width:200px;flex:1 1 200px;max-width:320px}
.cc1-upload span{display:inline-block;padding:6px 12px;border:1px solid var(--line,#d9e1ec);border-radius:8px;cursor:pointer}
.cc1-scroll{max-height:58vh;overflow:auto;border:1px solid var(--line,#d9e1ec);border-radius:10px}
.cc1-tree,.cc1-months,.cc1-moves,.cc1-accounts-table{width:100%;border-collapse:collapse;font-size:.88rem}
.cc1-tree th,.cc1-tree td,.cc1-months th,.cc1-months td,.cc1-moves th,.cc1-moves td,.cc1-accounts-table th,.cc1-accounts-table td{padding:6px 8px;border-bottom:1px solid var(--line,#e6ebf2);text-align:start;vertical-align:middle}
.cc1-tree thead th,.cc1-moves thead th{position:sticky;top:0;background:var(--surface,#fff);z-index:1}
.cc1-num{text-align:end;white-space:nowrap;font-variant-numeric:tabular-nums}
.cc1-name{display:flex;align-items:center;gap:6px;min-width:220px}
.cc1-name[data-level="2"]{padding-inline-start:24px}.cc1-name[data-level="3"]{padding-inline-start:48px}.cc1-name[data-level="4"]{padding-inline-start:72px}.cc1-name[data-level="5"]{padding-inline-start:96px}
.cc1-name[data-level="6"],.cc1-name[data-level="7"],.cc1-name[data-level="8"],.cc1-name[data-level="9"],.cc1-name[data-level="10"],.cc1-name[data-level="11"],.cc1-name[data-level="12"]{padding-inline-start:120px}
.cc1-twist{display:inline-block;width:20px;min-width:20px;border:0;background:transparent;cursor:pointer;padding:0;font:inherit}
.cc1-code{font-weight:600}
.cc1-tree tr[data-cc1-kind="aggregate"] td{font-weight:600;background:var(--hover,#f6f8fb)}
.cc1-tree tr.cc1-inactive td{opacity:.6}
.cc1-tree select,.cc1-tree input[type="text"]{max-width:260px;font:inherit;font-size:.86rem}
.cc1-tree [data-cc1-posting]{min-width:10.5em}
.cc1-tree [data-cc1-fn]{min-width:15em}
.cc1-chip{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.8rem;border:1px solid var(--line,#d9e1ec)}
.cc1-link{border:0;background:transparent;color:var(--primary,#1463d6);cursor:pointer;text-decoration:underline;font:inherit}
.cc1-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cc1-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.cc1-preview{margin:0 0 10px;padding:10px 12px;border:1px solid var(--line,#d9e1ec);border-radius:10px;background:var(--hover,#f6f8fb)}
.cc1-ok{color:var(--good,#1d7a46)}
.cc1-warn{color:var(--warn,#9a5b00);font-weight:600}
.cc1-fix{margin-top:12px;padding:10px 12px;border:1px solid var(--line,#e6ebf2);border-radius:10px}
.cc1-fix h4{margin:0 0 6px;font-size:.95rem}
.cc1-fix p{margin:0 0 6px;font-size:.88rem;line-height:1.6}
.cc1-accounts{margin:0 0 8px;padding-inline-start:18px;font-size:.86rem}
.cc1-empty{padding:16px}
.cc1-message{min-height:1.2em;white-space:pre-line;margin-top:8px}
[data-cc1-note]{display:block;margin-top:2px;opacity:.85}
@media (max-width:720px){.cc1-dialog{padding:14px}.cc1-tree th:nth-child(4),.cc1-tree td:nth-child(4),.cc1-tree th:nth-child(6),.cc1-tree td:nth-child(6){display:none}.cc1-name{min-width:150px}.cc1-tree select{max-width:140px}}
.cc1-preview .cc1-warn{white-space:pre-line}
/* G4-MAP1-C — the business unit, the profit by unit, the exceptions and the policy */
.cc1-require{display:flex;gap:8px;align-items:flex-start;margin:6px 0}
.cc1-require input{margin-block-start:4px}
.cc1-exceptions{margin-block-end:10px}
.cc1-units .cc1-total td{font-weight:600;border-block-start:2px solid var(--line,rgba(0,0,0,.2))}
.cc1-units{inline-size:100%;border-collapse:collapse;margin-block:8px}
.cc1-units th,.cc1-units td{padding:4px 8px;text-align:start;border-block-end:1px solid var(--line,rgba(0,0,0,.1))}
@media (max-width:760px){.cc1-units{display:block;overflow-x:auto;max-inline-size:100%}.cc1-tree th:nth-child(5),.cc1-tree td:nth-child(5){display:none}}
/* fn1.css */
/* G4-FN1 (the Owner 2026-10-02/03) — the function of the expenses: the window, the bar above the income statement by function, the buttons in the
   details and on the classification page. Structure and behaviour only; the colours come from the site's tokens. */
.fn1-dialog{width:min(820px,calc(100% - 24px));max-height:calc(100vh - 24px);overflow:auto;padding:20px}
.fn1-dialog h2{margin:0 0 4px;font-size:17px}
.fn1-close{float:inline-end;min-width:40px;min-height:40px;border:1px solid var(--line);border-radius:9px;background:transparent;color:inherit;font:inherit;cursor:pointer}
.fn1-context{margin:0 0 6px;font-size:12.5px;color:var(--muted)}
.fn1-help{margin:0 0 10px;font-size:12.5px;line-height:1.7;color:var(--muted)}
.fn1-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 8px}
.fn1-tools button,.fn1-actions button{min-height:38px;padding:0 14px}
.fn1-only{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;white-space:nowrap}
.fn1-list{max-height:min(56vh,560px);overflow:auto;border:1px solid var(--line);border-radius:10px}
.fn1-table{width:100%;border-collapse:collapse;font-size:12.5px}
.fn1-table thead th{position:sticky;top:0;background:var(--surface,var(--canvas,#fff));z-index:1}
.fn1-table th,.fn1-table td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:start;vertical-align:top}
.fn1-table td:nth-child(3){white-space:nowrap}
.fn1-table select{min-height:36px;max-width:100%;padding:0 8px;border:1px solid var(--line);border-radius:9px;background:transparent;color:inherit;font:inherit}
.fn1-table tr.fn1-missing td:first-child{border-inline-start:3px solid #b7791f}
.fn1-table tr.fn1-changed td:first-child{border-inline-start:3px solid #2f855a}
.fn1-code{color:var(--muted);margin-inline-end:4px}
.fn1-suggest{display:block;margin-top:4px;color:var(--muted);cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.fn1-actions{display:flex;gap:8px;margin:10px 0 0}
.fn1-message{margin:8px 0 0;font-size:12.5px;line-height:1.6}
.fn1-muted{margin:8px;color:var(--muted);font-size:12.5px}
.fn1-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin:0 0 10px;padding:8px 12px;border:1px solid var(--line);border-inline-start:4px solid #2f855a;border-radius:10px;font-size:13px}
.fn1-bar[data-fn1-bar="missing"]{border-inline-start-color:#b7791f}
.fn1-bar[data-fn1-bar="switch"]{border-inline-start-color:var(--primary,#43c9ff)}
.fn1-bar button{min-height:36px;padding:0 12px}
.fn1-drill{font:inherit;font-size:13px;cursor:pointer;border-radius:999px;border:1px solid var(--primary,#43c9ff);background:transparent;color:inherit;padding:4px 12px;min-height:34px}
.fn1-tool{min-height:36px}
@media (max-width:760px){
 .fn1-dialog{padding:14px}
 .fn1-list{max-height:60vh}
 .fn1-table thead{display:none}
 .fn1-table tr{display:grid;grid-template-columns:1fr auto;gap:4px 8px;padding:6px 4px;border-bottom:1px solid var(--line)}
 .fn1-table td{border-bottom:0;padding:0 2px;overflow-wrap:anywhere}
 .fn1-table td:nth-child(4){grid-column:1/-1}
 .fn1-table select,.fn1-tools button,.fn1-actions button,.fn1-bar button{min-height:44px;width:100%}
}
/* G4-FN2 (the Owner 2026-10-09): one filter line (search + the tree groups), the mixed account's chip, and its split editor. Structure only; the
   colours come from the site's tokens. */
.fn2-filter{display:flex;flex:1 1 320px;align-items:center;gap:6px;min-width:0}
.fn2-filter input[type="search"]{flex:1 1 160px;min-width:0;min-height:36px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:transparent;color:inherit;font:inherit;font-size:12.5px}
.fn2-filter select{flex:0 1 150px;min-width:0;min-height:36px;padding:0 8px;border:1px solid var(--line);border-radius:9px;background:transparent;color:inherit;font:inherit;font-size:12.5px}
.fn2-chip{display:block;margin-top:4px;font-size:11.5px;color:var(--muted)}
.fn2-chip.fn2-pending{color:#b7791f;font-weight:600}
.fn2-edit{margin-top:4px;min-height:30px;padding:0 10px;border:1px solid var(--primary,#43c9ff);border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:12px;cursor:pointer}
.fn1-table tr.fn2-editor td{padding:0;background:var(--hover,rgba(127,127,127,.06))}
.fn2-box{padding:12px 14px;display:grid;grid-template-columns:minmax(0,1fr);gap:10px;min-width:0}
.fn2-title{margin:0;font-weight:600}
.fn2-hint{margin:0;font-size:12px;line-height:1.7;color:var(--muted)}
.fn2-box p,.fn2-box label span{white-space:normal;overflow-wrap:anywhere}
.fn2-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:8px}
.fn2-part{display:grid;grid-template-columns:1fr 84px;align-items:center;gap:4px 8px;padding:8px;border:1px solid var(--line);border-radius:9px;font-size:12.5px}
.fn2-part input{min-height:34px;width:100%;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:transparent;color:inherit;font:inherit;text-align:center}
.fn2-part output{grid-column:1 / -1;color:var(--muted);font-size:11.5px;direction:ltr;text-align:end}
.fn2-total{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:6px 10px}
.fn2-total progress{width:100%;height:10px}
.fn2-total small{grid-column:1 / -1}
.fn2-ok{color:#2f855a}
.fn2-warn{color:#b7791f}
.fn2-more{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:8px}
.fn2-more label{display:grid;gap:4px;font-size:12px;color:var(--muted)}
.fn2-more select,.fn2-more input{min-height:34px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:transparent;color:inherit;font:inherit}
.fn2-note{grid-column:1 / -1}
.fn2-actions{display:flex;flex-wrap:wrap;gap:8px}
.fn2-actions button{min-height:36px;padding:0 12px}
@media (max-width:760px){.fn2-filter{flex-basis:100%}.fn1-table,.fn1-table tbody{display:block;width:100%;max-width:100%}.fn2-grid>*,.fn2-more>*,.fn2-part input,.fn2-more select,.fn2-more input{min-width:0;max-width:100%}.fn1-table tr.fn2-editor{display:block;padding:0}.fn1-table tr.fn2-editor td{display:block;width:100%;min-width:0}.fn2-box{padding:10px;min-width:0}.fn2-title{overflow-wrap:anywhere}.fn2-grid{grid-template-columns:1fr 1fr}.fn2-part{grid-template-columns:1fr;min-width:0}.fn2-part input{width:100%}.fn2-more{grid-template-columns:1fr}.fn2-total{grid-template-columns:1fr auto}.fn2-total progress{grid-column:1 / -1}}
.maptree button,.cc1-dialog button,.fn1-dialog button{min-height:34px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);color:var(--ink);padding:4px 12px;cursor:pointer;font:inherit;font-size:13px}
.maptree button.primary,.cc1-dialog button.primary,.fn1-dialog button.primary{background:var(--primary);border-color:var(--primary);color:#fff}
.maptree button:disabled,.cc1-dialog button:disabled,.fn1-dialog button:disabled{opacity:.55;cursor:not-allowed}
.maptree .muted,.cc1-dialog .cc1-muted,.fn1-dialog .fn1-muted{color:var(--muted);font-size:13px}
.maptree .error{color:var(--bad)}
.maptree select,.maptree input,.maptree textarea,.cc1-dialog select,.cc1-dialog input,.fn1-dialog select,.fn1-dialog input,.fn1-dialog textarea{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:3px 8px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;max-width:100%}
.nx-dialog.nx-wide{inline-size:min(1100px,96vw);max-block-size:92vh;overflow:auto}
/* G4-NX4 — the statements screens: the classic statements page in a frame of this page (public/nx/frame/) */
.nx-frame-host{display:flex;flex-direction:column;gap:8px;padding:12px 20px 0;min-width:0}
.nx-frame-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.nx-frame-head h1{margin:0;font-size:20px}
.nx-frame{display:block;inline-size:100%;block-size:70vh;border:0;background:var(--canvas);border-radius:var(--r)}
.nx-frame-loading{visibility:hidden}
@media (max-width:760px){.nx-frame-host{padding:8px 8px 0}.nx-frame-head h1{font-size:17px}}
/* the side rail keeps its items whole when an open area makes it taller than the screen (it scrolls instead of squeezing the logo under the first item) */
.nx-rail>*{flex-shrink:0}
/* NX5 — the general look of the approved mockup (astra-deliveries/MOCKUP-CONTINUE-20261013/work: assets/mockup.css, actions.css, nav-modes.css) on the new
   interface. Appended AFTER the current rules of public/nx/nx.css (the test g4nx1_new_shell pins ONE sheet, so these three nx5-*.css files are appended in
   this order: look → rail → auth; never bump the ?v= of index.html). No inline style anywhere (CSP style-src 'self'); every colour is a token of nx.css
   (--primary, --primary-2, --primary-soft, --accent, --rail, --rail-2, --rail-text, --rail-muted, data-color variants) or derived from one, so the seven
   colours keep working. Motion follows the Owner's rule (≤ 600 ms, GPU only) and prefers-reduced-motion (nx.css:395 already cancels every animation and
   transition; the rules below repeat it where a transition is the only thing drawn). */

/* ---- tokens shared by the three nx5 sheets --------------------------------------------------------------------------------------------------------- */
:root{
 --nx-ease:cubic-bezier(.3,1.3,.4,1);                 /* nav-modes.css:2 --nm-ease (the glide, the fold handle) */
 --nx-ease-soft:cubic-bezier(.2,.8,.2,1);             /* --nm-ease-soft (the accordion, the icons, the popover) */
 --nx-grad:linear-gradient(135deg,var(--primary),var(--accent));   /* the bright gradient of the active item (nav-modes.css:5) */
 --nx-glow:#315bff66;                                 /* --nm-glow; re-derived from --primary below where color-mix exists */
 --nx-shadow:#10264144;                               /* --nm-shadow */
 --nx-rail-line:#ffffff1f;                            /* --nm-line */
 --nx-auth-a:#7a5cff;--nx-auth-b:#20d5f5;             /* auth-skin.css:2 --au-a / --au-b (violet → cyan) — the desk colour */
 --nx-auth-glow:#315bff55;                            /* --au-glow */
}
:root:not([data-color="desk"]){--nx-auth-a:var(--primary);--nx-auth-b:var(--accent)}  /* the other six colours: the gradient starts from their own primary */
@supports (color:color-mix(in srgb,#000 50%,#fff)){
 :root{--nx-glow:color-mix(in srgb,var(--primary) 40%,transparent);--nx-auth-glow:color-mix(in srgb,var(--primary) 33%,transparent)}
}

/* ---- buttons and fields (mockup.css:2 — 44 px, radius 9, the primary hover) --------------------------------------------------------------------------- */
.nx-btn,button.nx-btn{min-height:44px;border-radius:9px;padding:9px 13px}
.nx-btn.small{min-height:36px;padding:4px 10px}
.nx-btn.primary:hover{background:var(--primary-2);border-color:var(--primary-2)}
.nx-field input,.nx-field select,.nx-field textarea,.nx-input{min-height:44px;padding:10px}
.nx-field>span{font-size:13px}

/* ---- the top bar (mockup.css:2 .period-bar — sticky, white .98, 14 px 28 px, the fields 145–310 px) ---------------------------------------------------- */
.nx-top{padding:14px 28px;gap:16px;background:rgba(255,255,255,.98);box-shadow:0 1px 0 var(--line)}
.nx-top .nx-field{min-width:145px;max-width:310px}
.nx-top .nx-field>span{font-size:13px;color:var(--ink)}
.nx-top-tools{gap:8px}
.nx-icon-btn{min-width:44px;min-height:44px;border-radius:12px;transition:background .15s,border-color .15s,transform .15s}
.nx-icon-btn:hover,.nx-icon-btn:focus-visible{border-color:var(--primary);background:var(--primary-soft);transform:translateY(-1px)}
/* the account button as the round avatar of Home-1366.png (core.js may put the first letter of the name inside <span class="nx-avatar-letter">) */
.nx-icon-btn[data-nx-account]{border-radius:50%;background:var(--primary-soft);border-color:transparent;color:var(--primary-2);font-weight:700}
.nx-icon-btn[data-nx-account] .nx-avatar-letter+.nx-ico{display:none}
.nx-count{inset-block-start:-7px;inset-inline-end:-7px;box-shadow:0 0 0 2px #fff}
/* the chip look of the Home screen (Home-1366.png: «الفترة: فبراير 2026» — label + bold value in one pill). Opt-in: core.js adds class «chips» to .nx-top */
.nx-top.chips .nx-field{flex-direction:row;align-items:center;gap:6px;min-height:44px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:0 10px 0 4px}
.nx-top.chips .nx-field>span{white-space:nowrap;color:var(--muted)}
.nx-top.chips .nx-field>span::after{content:':'}
.nx-top.chips .nx-field select{border:0;background:transparent;min-height:42px;font-weight:700;color:var(--ink);padding-inline:4px}

/* ---- headings, cards, panels, tabs, tables (mockup.css:2) --------------------------------------------------------------------------------------------- */
.nx-head h1{font-size:28px;letter-spacing:-.4px}
.nx-head p{font-size:14px;max-width:750px}
.nx-eyebrow{letter-spacing:.5px;margin-block-end:8px}
.nx-panel{padding:22px}
.nx-panel-head{margin-block-end:16px}
.nx-tabs{padding-block-end:10px}
.nx-tabs button,.nx-tabs a{min-height:44px;padding:8px 12px}
.nx-tabs [aria-selected="true"]{background:#e8eeff;color:#2347d1}
:root[data-color]:not([data-color="desk"]) .nx-tabs [aria-selected="true"]{background:var(--primary-soft);color:var(--primary-2)}
.nx-kpi{padding:18px;gap:10px;border-radius:12px}
.nx-kpi-label{display:flex;justify-content:space-between;align-items:center;gap:8px}
.nx-kpi-value{font-size:28px;letter-spacing:-.6px}
/* the delta pill of Home-1366.png (optional: home.js may add <span class="nx-delta up|down">80.0% ↑</span> inside .nx-kpi-label) */
.nx-delta{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700;background:var(--good-soft);color:var(--good)}
.nx-delta.down{background:var(--bad-soft);color:var(--bad)}
.nx-delta.warn{background:var(--warn-soft);color:var(--warn)}
.nx-card{transition:border-color .18s,box-shadow .18s,transform .18s}
.nx-card:hover{transform:translateY(-1px)}
.nx-table th,.nx-table td{padding:13px 14px;line-height:1.6}
.nx-table th{white-space:nowrap}
.nx-notice{line-height:1.8;font-size:14px}
.nx-chip{padding:7px 10px;border-radius:8px}
.nx-toast{padding:14px 20px;font-size:14px}
dialog.nx-dialog{padding:26px}
.nx-empty{line-height:1.8}

/* ---- motion of numbers and charts on screen entry (actions.css:50-64, actions.js:91-110, components.js:3-4) ------------------------------------------
   The numbers count up in JS (ui.js countUp — see PORT_PLAN.md §6); the charts only need these classes: the screen puts «nx-reveal» on the <svg> when it
   draws it (and again when the period changes) and «nx-mark» on every rect / circle / polyline / path. Horizontal bars drawn with a width get «nx-hbar». */
.nx-reveal rect.nx-mark{transform-box:fill-box;transform-origin:50% 100%;animation:nx-grow .5s cubic-bezier(.2,.7,.2,1) both}
.nx-reveal rect.nx-mark.nx-wide{transform-origin:100% 50%;animation-name:nx-grow-x}
[dir="ltr"] .nx-reveal rect.nx-mark.nx-wide{transform-origin:0 50%}
.nx-reveal circle.nx-mark{transform-box:fill-box;transform-origin:50% 50%;animation:nx-pop .45s cubic-bezier(.2,.7,.2,1) both}
.nx-reveal polyline.nx-mark,.nx-reveal path.nx-mark{stroke-dasharray:1;stroke-dashoffset:1;animation:nx-draw .6s ease-out both}
.nx-mark{transition:opacity .16s,filter .16s}
.nx-mark:hover,.nx-mark:focus-visible{filter:brightness(1.18) saturate(1.1);opacity:.85;outline:none}
.nx-hbar{transform-origin:100% 50%;animation:nx-grow-x .7s cubic-bezier(.2,.7,.2,1) both}
[dir="ltr"] .nx-hbar{transform-origin:0 50%}
.nx-pulse{animation:nx-pulse .6s ease-out 1}
.nx-counting{font-variant-numeric:tabular-nums}
@keyframes nx-grow{from{transform:scaleY(.02)}to{transform:scaleY(1)}}
@keyframes nx-grow-x{from{transform:scaleX(.02)}to{transform:scaleX(1)}}
@keyframes nx-pop{from{transform:scale(.3);opacity:.2}to{transform:scale(1);opacity:1}}
@keyframes nx-draw{to{stroke-dashoffset:0}}
@keyframes nx-pulse{0%{background:var(--primary-soft)}100%{background:transparent}}
/* a person's «motion off» switch (not a preference of the app yet — the hook is harmless until core.js sets html[data-motion="off"]) */
html[data-motion="off"] *,html[data-motion="off"] *::before,html[data-motion="off"] *::after{animation:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){.nx-reveal .nx-mark,.nx-hbar,.nx-pulse,.nx-stm-chart-bar,.nx-stm-comp-part{animation:none!important}.nx-mark,.nx-icon-btn,.nx-card,.nx-stm-chart-bar,.nx-stm-comp-part{transition:none}}
@media print{.nx-reveal .nx-mark,.nx-hbar{animation:none!important}}

/* ---- phone widths (mockup.css:4 ≤ 700 px; the app breaks at 760 px) ---------------------------------------------------------------------------------- */
@media (max-width:760px){
 .nx-top{padding:10px 14px;gap:10px}
 .nx-top .nx-field{min-width:calc(50% - 10px)}
 .nx-top .nx-field:first-child{flex-basis:100%}
 .nx-top.chips .nx-field{min-width:0;flex:1 1 calc(50% - 10px)}
 .nx-head h1{font-size:23px}
 .nx-kpi{padding:13px}
 .nx-kpi-value{font-size:24px}
 .nx-kpi-label{align-items:flex-start;flex-direction:column}
 .nx-panel{padding:16px}
 .nx-tabs{gap:3px}.nx-tabs button,.nx-tabs a{padding:8px 10px;font-size:13px}
}
/* NX5 — the side bar of the approved mockup (nav-modes.css / nav-modes.js, actions.css:111-132 / actions.js:78-89, mockup.css:2 .sidebar) on the new
   interface's rail markup (core.js railHtml — the markup after the changes of PORT_PLAN.md §3):

   <nav class="nx-rail" data-nx-rail-key="…">
     <span class="nx-glide" aria-hidden="true"></span>                                      ← the glowing indicator (JS moves it with CSSOM top/left/width/height)
     <a class="nx-brand" href="#/home"><img …></a>
     <button type="button" data-nx-fold aria-pressed="false">{icon menu}<span class="nx-label">طيّ القائمة</span></button>   ← the round handle on the bar edge
     <div class="nx-area" data-nx-area-row="statements" data-on="1">                         ← one row per area
       <a href="#/income" data-nx-area="statements" aria-current="page">{icon}<span class="nx-label">القوائم</span></a>
       <button type="button" class="nx-acc-btn" data-nx-acc="statements" aria-expanded="true" aria-controls="nx-acc-statements">{icon chevron}</button>
     </div>
     <div class="nx-acc" id="nx-acc-statements" data-nx-acc-of="statements" data-open="1">  ← the accordion (inert when closed)
       <div class="nx-sub nx-acc-in"><a href="#/income" data-nx-screen="income" aria-current="page">الدخل</a>…</div>
     </div>
     …
     <a class="nx-rail-classic" href="/?ui=classic" data-nx-classic>{icon classic}<span class="nx-label">الواجهة الحالية</span></a>
     <div class="nx-rail-foot"><span>org</span><span>CFO Intelligence · MASOUD X</span></div>
   </nav>
   The popover of a folded group is <div class="nx-fly" data-nx-fly="statements" data-side="left|right|up|down"> appended to <body>; the floating dock of
   the «float» place is <nav class="nx-dock" data-dir="right|left|up|down"> appended to <body>. Colours: --rail, --rail-2, --rail-text, --rail-muted,
   --primary, --accent (data-color variants keep working). Widths: the app keeps 232 px open / 72 px folded (the mockup: 218 / 72). */

/* ---- the open bar (right / left) — mockup.css:2 .sidebar, nav-modes.css:76-81, 88-89 -------------------------------------------------------------- */
.nx-shell{--nx-rail-w:232px}
@media (max-width:1100px){.nx-shell{--nx-rail-w:200px}}   /* nx.css:87 keeps 200 px on tablets */
.nx-shell.folded{--nx-rail-w:72px}
.nx-shell,.nx-shell.folded{grid-template-columns:var(--nx-rail-w) minmax(0,1fr)}
.nx-rail{padding:18px 12px;gap:6px;scrollbar-width:none;-ms-overflow-style:none;transition:padding .25s var(--nx-ease-soft)}
.nx-rail::-webkit-scrollbar{width:0;height:0;display:none}
.nx-brand{padding:0 0 10px}
.nx-brand img{width:174px;height:130px;object-fit:contain;transition:width .25s var(--nx-ease-soft),height .25s var(--nx-ease-soft)}
.folded .nx-brand{align-self:stretch;padding-inline:0}
.nx-shell.folded .nx-brand img{width:48px;height:40px;max-width:none}   /* the mockup's folded logo: the full 48 px of the bar's inner width */
/* a row: the area link + the chevron; the glide sits under it (z 0), the row above (z 1) with no background of its own */
.nx-area{position:relative;z-index:1;display:flex;align-items:center;gap:0;border-radius:9px;min-height:46px}
.nx-rail .nx-area>a{flex:1 1 auto;width:auto;min-width:0;min-height:46px;padding:10px;gap:10px;border-radius:9px;background:transparent;color:var(--rail-text);box-shadow:none;transition:color .18s}
.nx-rail .nx-area>a:hover,.nx-rail .nx-area>a:focus-visible{background:transparent;color:#fff}
.nx-rail .nx-area>a[aria-current="page"]{background:transparent;box-shadow:none;color:#fff;font-weight:600}
.nx-rail:not(.has-glide) .nx-area>a[aria-current="page"]{background:var(--rail-2)}   /* before the glide is placed (or without JS) the active row still shows */
.nx-rail .nx-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1 auto}
/* the icon in its small tile (actions.css:112-116) */
.nx-rail .nx-ico{width:26px;height:26px;border-radius:8px;transition:transform .28s var(--nx-ease-soft),background .28s,box-shadow .28s}
.nx-rail .nx-ico svg{transition:transform .28s var(--nx-ease-soft)}
.nx-area>a:hover .nx-ico,.nx-area>a:focus-visible .nx-ico,.nx-area.is-hot .nx-ico{transform:scale(1.14);background:#ffffff14;box-shadow:0 0 0 1px #ffffff1f,0 6px 16px #0000004d}
.nx-area>a:hover .nx-ico svg,.nx-area.is-hot .nx-ico svg{transform:translateY(-1px)}
/* the chevron button of a group (nav-modes.css:10-13, 83, 86) */
.nx-rail .nx-acc-btn{flex:0 0 auto;width:36px;height:44px;min-height:44px;margin-inline-end:-6px;padding:0;border:0;border-radius:8px;background:transparent;color:inherit;display:grid;place-items:center;cursor:pointer;opacity:.75}
.nx-rail .nx-acc-btn:hover,.nx-rail .nx-acc-btn:focus-visible{opacity:1;background:#ffffff14}
.nx-rail .nx-acc-btn .nx-ico{width:22px;height:22px;background:none;box-shadow:none;transform:none}
.nx-rail .nx-acc-btn .nx-ico svg{width:16px;height:16px;transition:transform .35s var(--nx-ease-soft)}
.nx-rail .nx-acc-btn[aria-expanded="true"] .nx-ico svg{transform:rotate(180deg)}
/* the accordion (nav-modes.css:14-22, 91-95, 102) */
.nx-acc{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--nx-ease-soft);padding-inline-start:34px;margin-inline:4px 0}
.nx-rail .nx-acc-in{overflow:hidden;min-height:0;display:flex;flex-direction:column;gap:0;padding:0;margin:0;visibility:hidden;transition:visibility 0s linear .4s}
.nx-acc[data-open="1"]{grid-template-rows:1fr}
.nx-acc[data-open="1"] .nx-acc-in{visibility:visible;transition-delay:0s;background:#ffffff0a;border-radius:10px;padding:4px;margin-block:2px 6px;box-shadow:inset 0 0 0 1px #ffffff0f}
.nx-rail .nx-acc-in a{position:relative;z-index:1;display:flex;align-items:center;min-height:38px;padding:4px 10px;border-radius:8px;font-size:12.5px;color:var(--rail-text);background:transparent;box-shadow:none;opacity:0;transform:translateY(-6px);transition:opacity .3s,transform .3s,background .18s,color .18s}
.nx-acc[data-open="1"] .nx-acc-in a{opacity:.82;transform:none}
.nx-acc[data-open="1"] .nx-acc-in a:nth-child(2){transition-delay:.06s}.nx-acc[data-open="1"] .nx-acc-in a:nth-child(3){transition-delay:.12s}.nx-acc[data-open="1"] .nx-acc-in a:nth-child(4){transition-delay:.18s}.nx-acc[data-open="1"] .nx-acc-in a:nth-child(5){transition-delay:.24s}.nx-acc[data-open="1"] .nx-acc-in a:nth-child(6){transition-delay:.3s}.nx-acc[data-open="1"] .nx-acc-in a:nth-child(7){transition-delay:.36s}
.nx-rail .nx-acc-in a:hover,.nx-rail .nx-acc-in a:focus-visible,.nx-rail .nx-acc-in a[aria-current="page"]{opacity:1;color:#fff;background:transparent}
.nx-rail .nx-acc-in a[aria-current="page"]{font-weight:700;background:linear-gradient(90deg,#315bff4d,#20d5f524);box-shadow:inset -3px 0 0 var(--accent)}
[dir="ltr"] .nx-rail .nx-acc-in a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--accent)}
@supports (color:color-mix(in srgb,#000 50%,#fff)){.nx-rail .nx-acc-in a[aria-current="page"]{background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 30%,transparent),color-mix(in srgb,var(--accent) 14%,transparent))}}
/* the glowing indicator (nav-modes.css:5-8, 96) — JS sets top/left/width/height in px (CSSOM) and the classes is-on / is-sub */
.nx-glide{position:absolute;top:0;left:0;z-index:0;/* physical top/left only: JS writes left/top in px, and a logical inset-inline-start would turn into «right» in RTL and win over it */border-radius:10px;background:var(--nx-grad);opacity:0;box-shadow:0 0 22px var(--nx-glow);pointer-events:none;transition:top .45s var(--nx-ease),left .45s var(--nx-ease),width .3s,height .3s,opacity .25s}
.nx-glide.is-on{opacity:.95}
.nx-glide.is-sub{background:linear-gradient(90deg,#315bff47,#20d5f529);box-shadow:inset -3px 0 0 var(--accent);border-radius:8px}
[dir="ltr"] .nx-glide.is-sub{box-shadow:inset 3px 0 0 var(--accent)}
@supports (color:color-mix(in srgb,#000 50%,#fff)){.nx-glide.is-sub{background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 28%,transparent),color-mix(in srgb,var(--accent) 16%,transparent))}}
/* the classic-interface link and the foot (the link leaves the foot so the folded bar and the pill keep it as an icon) */
.nx-rail .nx-rail-classic{position:relative;z-index:1;margin-block-start:auto;min-height:44px;font-size:13px;color:var(--rail-muted);gap:10px;padding:8px 10px}
.nx-rail .nx-rail-classic:hover,.nx-rail .nx-rail-classic:focus-visible{color:#fff;background:#ffffff10}
.nx-rail-foot{margin-block-start:0;padding:10px 10px 4px;font-size:12px;line-height:1.7}
.folded .nx-rail-classic{justify-content:center;padding-inline:0}

/* ---- the folded bar (right / left): icons only, the active icon on the glide, the group's popover (nav-modes.css:98-101, actions.css:119-132) ---- */
.nx-shell.folded .nx-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;display:block}  /* read by screen readers, not shown */
.folded .nx-area>a{justify-content:center;padding-inline:0;gap:0}
.folded .nx-acc,.folded .nx-acc-btn{display:none}
.folded .nx-brand{padding-block-end:6px}
.nx-fly{position:fixed;z-index:60;min-width:230px;max-width:300px;padding:10px;border-radius:14px;background:var(--rail);color:#e8f0fb;box-shadow:0 18px 44px #10264159,0 0 0 1px #ffffff14;opacity:0;visibility:hidden;transform:translateY(6px) scale(.98);transform-origin:50% 0;transition:opacity .22s var(--nx-ease-soft),transform .22s var(--nx-ease-soft),visibility 0s linear .22s;pointer-events:none}
.nx-fly.is-measuring{visibility:hidden;opacity:0;display:block}
.nx-fly.is-open{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s}
.nx-fly::after{content:"";position:absolute;width:12px;height:12px;background:var(--rail);transform:rotate(45deg);border-radius:2px}
.nx-fly[data-side="left"]::after{right:-6px;top:18px}          /* the popover sits to the left of the bar → the arrow on its right edge */
.nx-fly[data-side="right"]::after{left:-6px;top:18px}
.nx-fly[data-side="down"]::after{top:-6px;left:calc(50% - 6px)} /* under the top pill */
.nx-fly[data-side="up"]::after{bottom:-6px;left:calc(50% - 6px)} /* over the bottom pill */
.nx-fly[data-side="left"]{transform-origin:100% 0}.nx-fly[data-side="right"]{transform-origin:0 0}.nx-fly[data-side="up"]{transform-origin:50% 100%}
.nx-fly-head{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14px;padding:6px 10px 10px;border-block-end:1px solid #ffffff1a;margin-block-end:6px;color:#fff}
.nx-fly-head .nx-ico{width:20px;height:20px}
.nx-fly-link{display:flex;align-items:center;min-height:40px;padding:6px 12px;border-radius:9px;color:#d8e6f5;text-decoration:none;font-size:13.5px;opacity:0;transform:translateX(-8px);transition:background .18s,color .18s}
.nx-fly.is-open .nx-fly-link{animation:nx-fly-in .32s var(--nx-ease-soft) forwards}
.nx-fly.is-open .nx-fly-link:nth-child(3){animation-delay:.04s}.nx-fly.is-open .nx-fly-link:nth-child(4){animation-delay:.08s}.nx-fly.is-open .nx-fly-link:nth-child(5){animation-delay:.12s}.nx-fly.is-open .nx-fly-link:nth-child(6){animation-delay:.16s}.nx-fly.is-open .nx-fly-link:nth-child(7){animation-delay:.2s}.nx-fly.is-open .nx-fly-link:nth-child(8){animation-delay:.24s}
@keyframes nx-fly-in{to{opacity:1;transform:none}}
.nx-fly-link::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);margin-inline-end:10px;opacity:.7;flex:none}
.nx-fly-link:hover,.nx-fly-link:focus-visible{background:#ffffff1a;color:#fff;text-decoration:none;outline:none}
.nx-fly-link[aria-current="page"]{color:#fff;font-weight:700}
.nx-fly-link[aria-current="page"]::before{opacity:1;box-shadow:0 0 8px var(--accent)}

/* ---- the round fold handle on the bar edge (nav-modes.css:104-117): a 30 px circle at 44 px from the top, centred on the edge; the chevron points
   toward the fold (to the bar when open, to the page when folded); hover / focus fill it with the gradient. The button keeps data-nx-fold, aria-pressed
   and its sr-only label; the menu icon inside is hidden. */
@media (min-width:761px){
 .nav-right [data-nx-fold],.nav-left [data-nx-fold]{position:fixed;z-index:60;top:44px;width:44px;height:44px;min-height:44px;padding:0;margin:0;border:0;background:transparent;display:grid;place-items:center;cursor:pointer;color:var(--rail-text);border-radius:50%}
 .nav-right [data-nx-fold]{right:calc(var(--nx-rail-w) - 22px);left:auto}
 .nav-left [data-nx-fold]{left:calc(var(--nx-rail-w) - 22px);right:auto}
 [data-nx-fold] .nx-ico{display:none}
 .nx-shell [data-nx-fold] .nx-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;display:block;flex:none}
 [data-nx-fold]::before{content:"";position:absolute;width:30px;height:30px;border-radius:50%;background:var(--rail);border:1px solid #ffffff47;box-shadow:0 4px 14px var(--nx-shadow),0 0 0 3px #0c1729b3;transition:background .25s,transform .25s var(--nx-ease),box-shadow .25s}
 @supports (color:color-mix(in srgb,#000 50%,#fff)){[data-nx-fold]::before{box-shadow:0 4px 14px var(--nx-shadow),0 0 0 3px color-mix(in srgb,var(--rail) 70%,transparent)}}
 [data-nx-fold]::after{content:"";position:relative;width:8px;height:8px;border:solid currentColor;border-width:2.2px 2.2px 0 0;transition:transform .35s var(--nx-ease-soft);transform:translateX(-1px) rotate(45deg)}          /* → */
 .nav-left [data-nx-fold]::after,.folded.nav-right [data-nx-fold]::after{transform:translateX(1px) rotate(225deg)}                                                                                          /* ← */
 .folded.nav-left [data-nx-fold]::after{transform:translateX(-1px) rotate(45deg)}
 [data-nx-fold]:hover::before,[data-nx-fold]:focus-visible::before{background:var(--nx-grad);border-color:transparent;box-shadow:0 6px 18px var(--nx-glow);transform:scale(1.08)}
 [data-nx-fold]:hover,[data-nx-fold]:focus-visible{color:#fff;background:transparent}
 [data-nx-fold]:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
}
.nav-top [data-nx-fold],.nav-bottom [data-nx-fold],.nav-float [data-nx-fold]{display:none}   /* nothing to fold in those places */

/* ---- top / bottom: the floating pill in the middle (nav-modes.css:24-38, NavMode-top / NavMode-bottom-1366.png) ------------------------------------- */
.nx-shell.nav-top,.nx-shell.nav-bottom{display:grid;grid-template-columns:minmax(0,1fr)}
.nav-top .nx-rail,.nav-bottom .nx-rail{position:fixed;inset-inline:0;inset-block:auto;width:min(72%,720px);max-width:none;height:64px;min-height:0;margin-inline:auto;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:2px;padding:0 12px;border-radius:20px;box-shadow:0 14px 40px var(--nx-shadow),0 0 0 1px var(--nx-rail-line);z-index:40;overflow:visible}
.nav-top .nx-rail{top:12px;bottom:auto}
.nav-bottom .nx-rail{bottom:12px;top:auto}
.nav-top .nx-top{inset-block-start:0;padding-block-start:88px}      /* the pill floats inside the white band of the top bar (as the mockup shows) */
.nav-bottom .nx-main{padding-block-end:100px}
.nav-top .nx-brand,.nav-bottom .nx-brand,.nav-top .nx-rail-foot,.nav-bottom .nx-rail-foot,.nav-top .nx-acc,.nav-bottom .nx-acc,.nav-top .nx-acc-btn,.nav-bottom .nx-acc-btn{display:none}
.nav-top .nx-label,.nav-bottom .nx-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;display:block}
.nav-top .nx-area,.nav-bottom .nx-area{flex:0 0 auto;min-height:44px}
.nav-top .nx-rail .nx-area>a,.nav-bottom .nx-rail .nx-area>a,.nav-top .nx-rail-classic,.nav-bottom .nx-rail-classic{width:52px;min-height:44px;justify-content:center;padding:0;margin:0;gap:0;font-size:0}
.nav-top .nx-rail-classic,.nav-bottom .nx-rail-classic{margin-block-start:0;margin-inline-start:6px;box-shadow:inset 1px 0 0 var(--nx-rail-line)}
.nav-top .nx-rail .nx-ico,.nav-bottom .nx-rail .nx-ico{width:22px;height:22px}
.nav-top .nx-glide,.nav-bottom .nx-glide{border-radius:12px}

/* ---- float: the official logo as a draggable round dock; a strip of icons opens toward the free side (nav-modes.css:40-62, NavMode-float-1366.png) -- */
.nx-shell.nav-float{grid-template-columns:minmax(0,1fr)}
.nav-float .nx-rail{display:none}
.nx-dock{position:fixed;width:64px;height:64px;z-index:45;touch-action:none;user-select:none;cursor:grab;left:calc(50% - 32px);top:calc(100% - 88px)}  /* JS sets left/top (CSSOM) from the saved place */
.nx-dock[hidden]{display:none}
.nx-dock.is-drag{cursor:grabbing}
.nx-dock-logo{position:absolute;inset:0;border-radius:50%;background:var(--rail);border:1px solid var(--nx-rail-line);box-shadow:0 14px 40px var(--nx-shadow),0 0 0 0 var(--nx-glow);display:grid;place-items:center;cursor:inherit;padding:0;margin:0;z-index:2;color:#fff;transition:transform .3s var(--nx-ease),box-shadow .3s}
.nx-dock-logo img{width:50px;height:auto;pointer-events:none}
.nx-dock:not(.is-open) .nx-dock-logo:hover{transform:scale(1.08);box-shadow:0 14px 40px var(--nx-shadow),0 0 0 8px var(--nx-glow)}
.nx-dock.is-open .nx-dock-logo{transform:scale(.92)}
.nx-dock-logo:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.nx-dock-strip{position:absolute;display:flex;gap:0;background:var(--rail);border-radius:999px;padding:5px;border:1px solid var(--nx-rail-line);box-shadow:0 14px 40px var(--nx-shadow);transform-origin:var(--ox,0) var(--oy,50%);transform:scaleX(.05);opacity:0;pointer-events:none;transition:transform .45s cubic-bezier(.2,.9,.3,1.1),opacity .2s;z-index:1}
.nx-dock.is-open .nx-dock-strip{transform:none;opacity:1;pointer-events:auto}
.nx-dock-item{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--rail-muted);text-decoration:none;opacity:0;transform:scale(.6);transition:transform .3s var(--nx-ease),color .2s,background .2s,opacity .2s}
.nx-dock.is-open .nx-dock-item{opacity:1;transform:none}
.nx-dock-item:hover,.nx-dock-item:focus-visible{color:#fff;background:#ffffff14;outline:none}
.nx-dock-item[aria-current="page"]{background:var(--primary);color:#fff}
.nx-dock-item .nx-ico{width:22px;height:22px}.nx-dock-item .nx-ico svg{width:20px;height:20px}
.nx-dock.is-open .nx-dock-item:nth-child(1){transition-delay:.05s}.nx-dock.is-open .nx-dock-item:nth-child(2){transition-delay:.09s}.nx-dock.is-open .nx-dock-item:nth-child(3){transition-delay:.13s}.nx-dock.is-open .nx-dock-item:nth-child(4){transition-delay:.17s}.nx-dock.is-open .nx-dock-item:nth-child(5){transition-delay:.21s}.nx-dock.is-open .nx-dock-item:nth-child(6){transition-delay:.25s}.nx-dock.is-open .nx-dock-item:nth-child(7){transition-delay:.29s}.nx-dock.is-open .nx-dock-item:nth-child(8){transition-delay:.33s}.nx-dock.is-open .nx-dock-item:nth-child(9){transition-delay:.37s}
.nx-dock[data-dir="right"] .nx-dock-strip{top:5px;left:calc(100% + 10px);--ox:0}
.nx-dock[data-dir="left"] .nx-dock-strip{top:5px;right:calc(100% + 10px);--ox:100%}
.nx-dock[data-dir="down"] .nx-dock-strip,.nx-dock[data-dir="up"] .nx-dock-strip{flex-direction:column;left:5px;transform:scaleY(.05);--ox:50%}
.nx-dock[data-dir="down"] .nx-dock-strip{top:calc(100% + 10px);--oy:0}
.nx-dock[data-dir="up"] .nx-dock-strip{bottom:calc(100% + 10px);--oy:100%}
.nx-dock.is-open[data-dir="down"] .nx-dock-strip,.nx-dock.is-open[data-dir="up"] .nx-dock-strip{transform:none}

/* ---- phone widths (≤ 760 px — nav-modes.css:63, mockup.css:4): every place becomes the bottom pill with icons only; no popover, no dock, no handle -- */
@media (max-width:760px){
 .nx-shell,.nx-shell.folded,.nx-shell.nav-float,.nx-shell.nav-top,.nx-shell.nav-bottom{display:block}
 .nx-rail,.nav-top .nx-rail,.nav-bottom .nx-rail,.nav-float .nx-rail{display:flex;position:fixed;inset-block-start:auto;inset-block-end:8px;inset-inline:8px;top:auto;width:auto;max-width:none;height:64px;margin:0;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;padding:0 8px;gap:2px;border-radius:20px;box-shadow:0 14px 40px var(--nx-shadow),0 0 0 1px var(--nx-rail-line);z-index:40}
 .nx-rail .nx-area{flex:0 0 auto}
 .nx-rail .nx-area>a,.nx-rail .nx-rail-classic{flex:0 0 52px;width:52px;min-height:44px;justify-content:center;padding:0;gap:0;flex-direction:row;font-size:0}
 .nx-rail .nx-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;display:block}
 .nx-rail .nx-brand,.nx-rail .nx-rail-foot,.nx-rail .nx-acc,.nx-rail .nx-acc-btn,.nx-shell .nx-rail [data-nx-fold],.nx-fly,.nx-dock{display:none!important}   /* G4-NX5 look check: the open bar's rules are more specific — the pill keeps the area icons only */
 .nx-rail .nx-rail-classic{margin:0 0 0 6px;box-shadow:inset 1px 0 0 var(--nx-rail-line)}
 .nx-main,.nav-bottom .nx-main{padding-block-end:84px}
 .nav-top .nx-top{padding-block-start:10px}
 .nx-glide{border-radius:12px}
}

/* ---- motion rules and print --------------------------------------------------------------------------------------------------------------------- */
@media (prefers-reduced-motion:reduce){.nx-glide,.nx-acc,.nx-acc-in,.nx-acc-in a,.nx-fly,.nx-fly-link,.nx-dock-strip,.nx-dock-item,.nx-dock-logo,.nx-rail .nx-ico,.nx-brand img,[data-nx-fold]::before,[data-nx-fold]::after{transition:none!important;animation:none!important}.nx-fly-link{opacity:1;transform:none}}
@media print{.nx-dock,.nx-glide,.nx-fly,[data-nx-fold]{display:none!important}}
/* NX5 — the sign-in / sign-up / verify / forgot / reset / invite / choose-organization look of the approved mockup (assets/auth-skin.css,
   auth-skin.js:12-23, otp-motion.css; screenshots Main-login-1366.png, Main-signup-1366.png) on the new interface's auth markup (auth.js — after the
   additions of PORT_PLAN.md §2):

   <div class="nx-auth" data-nx-view="login|register|verify|forgot|reset|invite|org">
     <section class="nx-auth-side">
       <div class="nx-auth-top"><a class="nx-pill" data-nx-site href="/site/">العودة إلى الموقع</a><button type="button" class="nx-pill" data-nx-public-lang>EN</button></div>
       <div class="nx-auth-card">
         <div class="nx-auth-head"><img …><div><small>MASOUD X</small><b>CFO Intelligence</b></div></div>
         <div class="nx-auth-tabs" role="tablist" data-tab="login"><span class="nx-auth-knob" aria-hidden="true"></span><a role="tab" href="#" data-nx-go="login" aria-selected="true">دخول</a><a role="tab" href="#" data-nx-go="register" aria-selected="false">حساب جديد · تجربة <span data-nx-trial>14</span> يوم</a></div>
         <ol class="nx-steps">…</ol>                       ← register / verify only
         <p class="nx-auth-hello">…</p><h2 class="nx-auth-title">…</h2><p class="nx-auth-sub">…</p>
         [.nx-notice …] <form …><label class="nx-field">…</label> … <span class="nx-input-wrap"><input type="password"><button class="nx-eye" data-nx-eye>…</button></span>
         <button class="nx-btn primary nx-cta" type="submit">دخول آمن</button><p class="nx-status" data-nx-status></p></form>
         <div class="nx-auth-links"><a data-nx-go="forgot">نسيت كلمة المرور؟</a><a class="soft" href="/?ui=classic&signin=1">الواجهة الحالية</a></div>
       </div>
     </section>
     <section class="nx-auth-hero" aria-hidden="true">
       <span class="nx-auth-glass g1"></span><span class="nx-auth-glass g2"></span><span class="nx-auth-glass g3"></span><span class="nx-auth-orbit"><i></i><i></i></span>
       <img class="nx-auth-logo" src="/assets/cfo-official-transparent-v1-1415.webp" alt="">
       <div class="nx-auth-tag"><small>منصة الذكاء المالي</small><h1>Clarity. Control. <em>Decisions.</em></h1><p>CFO Intelligence · A MASOUD X Platform</p><ul class="nx-auth-points">…</ul></div>
     </section>
   </div>
   Every rule is scoped to .nx-auth so .nx-auth-links / .nx-field / .nx-notice / .nx-card keep their look on the appearance screen and in dialogs.
   Colours: the dark tokens of nx.css (--rail, --rail-text, --rail-muted, --accent, --focus, --bad, --good) + --nx-auth-a / --nx-auth-b from nx5-look.css.
   The sign-in page runs before the workspace loads, so it always shows the desk colour (as the mockup). */

.nx-auth{--au-bg:#050b18;--au-bg2:#0a1630;--au-line:#ffffff24;--au-field:#e8eefb;--au-field-ink:#0c1729;--au-ok:#4ee3b5;--au-bad:#ff8aa0;
 position:relative;min-height:100vh;height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--au-bg);color:var(--rail-text,#f1f5fa);overflow:hidden}
.nx-auth *{box-sizing:border-box}

/* ---- the side with the card (auth-skin.css:6-9, 121) ------------------------------------------------------------------------------------------------- */
.nx-auth-side{position:relative;display:flex;align-items:center;justify-content:center;padding:64px 32px 20px;min-height:0;z-index:1;
 background:radial-gradient(80% 60% at 70% 20%,#1a2a66 0,transparent 60%),radial-gradient(70% 60% at 20% 90%,#0e2d57 0,transparent 60%),var(--au-bg2);border-inline-end:1px solid var(--au-line)}
.nx-auth-top{position:absolute;inset-block-start:18px;inset-inline:22px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.nx-auth-top>span{display:inline-flex;gap:8px}
.nx-auth .nx-pill,.nx-auth button.nx-pill{min-height:44px;min-width:44px;border-radius:999px;border:1px solid var(--au-line);background:#ffffff0d;color:var(--rail-text);padding:0 18px;font-size:14px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .2s,transform .2s}
.nx-auth .nx-pill:hover,.nx-auth .nx-pill:focus-visible{background:#ffffff1c;transform:translateY(-1px)}
.nx-auth .nx-pill .nx-ico{display:none}   /* the globe of the old button stays in the markup but the pill shows the text «EN» / «عربي» only */

/* ---- the card (auth-skin.css:10-15, 108, 122, 167-168) ------------------------------------------------------------------------------------------------- */
.nx-auth-card{position:relative;width:min(560px,100%);max-height:calc(100vh - 84px);overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none;border-radius:30px;border:1px solid var(--au-line);
 background:linear-gradient(160deg,#122244cc,#0a1224cc);box-shadow:0 30px 80px #02061a99,0 0 0 1px #ffffff08 inset;padding:22px 36px 20px;display:block;gap:0;color:var(--rail-text);animation:nx-au-rise .7s var(--nx-ease-soft) both;backdrop-filter:blur(8px)}
.nx-auth-card::-webkit-scrollbar{display:none;width:0;height:0}
.nx-auth-card::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:conic-gradient(from var(--nx-au-ang,0deg),transparent 0 70%,var(--nx-auth-b) 85%,var(--nx-auth-a) 95%,transparent);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.7;animation:nx-au-spin 7s linear infinite;pointer-events:none}
@property --nx-au-ang{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes nx-au-spin{to{--nx-au-ang:360deg}}
@keyframes nx-au-rise{from{opacity:0;transform:translateY(22px) scale(.985)}to{opacity:1;transform:none}}
@keyframes nx-au-field{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.nx-auth-head{display:flex;align-items:center;gap:14px;margin-block-end:8px}
.nx-auth-head img{width:64px;height:auto}
.nx-auth-head small{display:block;font-size:11px;letter-spacing:3px;color:var(--rail-muted)}
.nx-auth-head b{font-size:17px;color:#fff}
.nx-auth[data-nx-view="register"] .nx-auth-head{display:none}   /* auth-skin.css:151 — the sign-up view gives the room to the stepper */

/* ---- the two tabs with the sliding knob (auth-skin.css:20-24, 132) ------------------------------------------------------------------------------------- */
.nx-auth-tabs{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;border-radius:16px;background:#ffffff0f;margin-block-end:12px}
.nx-auth-tabs a,.nx-auth-tabs button{position:relative;z-index:1;min-height:44px;border:0;border-radius:12px;background:transparent;color:var(--rail-muted);font-size:15px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:color .25s;white-space:nowrap}
.nx-auth-tabs [aria-selected="true"]{color:#fff;font-weight:700}
.nx-auth-knob{position:absolute;inset-block:5px;inset-inline-start:5px;width:calc(50% - 8px);border-radius:12px;background:linear-gradient(135deg,var(--nx-auth-a),var(--nx-auth-b));box-shadow:0 8px 24px var(--nx-auth-glow);transition:inset-inline-start .45s var(--nx-ease)}
.nx-auth-tabs[data-tab="register"] .nx-auth-knob{inset-inline-start:calc(50% + 3px)}

/* ---- the three steps of the sign-up (Main-signup-1366.png: ① بياناتك — ② كود التحقق — ③ ابدأ; the app's step 2 is the e-mailed link) -------------- */
.nx-steps{list-style:none;margin:0 0 10px;padding:0;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--rail-muted)}
.nx-steps li{display:flex;align-items:center;gap:6px;white-space:nowrap}
.nx-steps li+li::before{content:"";width:28px;height:1px;background:var(--au-line);margin-inline-end:6px}
.nx-steps b{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;background:#ffffff1f;color:#fff;font-size:12px;font-weight:700}
.nx-steps li[aria-current="step"]{color:#fff}
.nx-steps li[aria-current="step"] b{background:var(--nx-auth-a)}
.nx-steps li[data-done="1"] b{background:#4ee3b533;color:var(--au-ok)}

/* ---- the words above the form (auth-skin.css:25-27, 133) ----------------------------------------------------------------------------------------------- */
.nx-auth-hello{color:var(--rail-muted);font-size:13px;margin:0 0 2px}
.nx-auth-card h2,.nx-auth-title{font-size:25px;font-weight:700;line-height:1.35;margin:0 0 2px;background:linear-gradient(90deg,#fff,#b9c9ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.nx-auth-sub{color:var(--rail-muted);font-size:12px;margin:0 0 10px}
.nx-auth-card p{color:var(--rail-muted)}

/* ---- the fields (auth-skin.css:28-35, 134) --------------------------------------------------------------------------------------------------------------- */
.nx-auth-card form{display:flex;flex-direction:column;gap:0}
.nx-auth .nx-field{gap:5px;margin-block-end:10px;animation:nx-au-field .6s both}
.nx-auth .nx-field:nth-of-type(2){animation-delay:.08s}.nx-auth .nx-field:nth-of-type(3){animation-delay:.16s}.nx-auth .nx-field:nth-of-type(4){animation-delay:.24s}
.nx-auth .nx-field>span,.nx-auth .nx-field>label{font-size:13px;color:var(--rail-muted)}
.nx-auth .nx-field input,.nx-auth .nx-field select{width:100%;min-height:48px;border:2px solid transparent;border-radius:16px;background:var(--au-field);color:var(--au-field-ink);padding:0 16px;font-size:16px;outline:none;transition:border-color .2s,box-shadow .25s}
.nx-auth .nx-field input::placeholder{color:#52617f}
[dir="rtl"] .nx-auth .nx-field input[dir="ltr"]:placeholder-shown{text-align:right}   /* the mockup: an empty e-mail field shows its example on the Arabic side; what is typed stays left to right */
.nx-auth .nx-field input:focus,.nx-auth .nx-field select:focus{border-color:var(--nx-auth-b);box-shadow:0 0 0 5px var(--nx-auth-glow)}
.nx-auth .nx-field [aria-invalid="true"]{border-color:var(--au-bad);background:var(--au-field)}
.nx-auth .nx-field select{appearance:auto}
.nx-input-wrap{position:relative;display:block}
.nx-input-wrap input{padding-inline-end:52px}
.nx-auth .nx-eye{position:absolute;inset-block:0;inset-inline-end:6px;width:44px;min-height:0;border:0;background:transparent;color:#52617f;cursor:pointer;display:grid;place-items:center;padding:0;border-radius:12px}
.nx-auth .nx-eye .nx-ico{width:24px;height:24px}.nx-auth .nx-eye svg{width:22px;height:22px}
.nx-auth .nx-eye[aria-pressed="true"]{color:var(--au-field-ink)}
.nx-auth .nx-eye:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
/* two columns of the sign-up form (Main-signup-1366.png); fields marked «wide» take the whole row */
.nx-auth-card form.nx-auth-grid,.nx-auth-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}   /* more specific than «.nx-auth-card form» (flex) */
.nx-auth-grid .nx-field.wide,.nx-auth-grid>.nx-cta,.nx-auth-grid>.nx-status{grid-column:1/-1}

/* ---- the gradient button, its sheen and its busy spinner (auth-skin.css:36-42, 135) ----------------------------------------------------------------------- */
.nx-auth .nx-cta,.nx-auth .nx-btn.primary{width:100%;min-height:50px;border:0;border-radius:16px;font-size:17px;font-weight:700;color:#fff;cursor:pointer;background:linear-gradient(90deg,var(--nx-auth-a),var(--nx-auth-b));box-shadow:0 14px 34px var(--nx-auth-glow);position:relative;overflow:hidden;margin-block-start:2px;transition:transform .2s,box-shadow .2s}
.nx-auth .nx-cta:hover,.nx-auth .nx-btn.primary:hover{transform:translateY(-2px);box-shadow:0 18px 40px var(--nx-auth-glow);background:linear-gradient(90deg,var(--nx-auth-a),var(--nx-auth-b))}
.nx-auth .nx-cta::after,.nx-auth .nx-btn.primary::after{content:"";position:absolute;inset-block:0;inset-inline-start:-40%;width:30%;background:linear-gradient(90deg,transparent,#ffffff55,transparent);transform:skewX(-20deg);animation:nx-au-sheen 3.6s ease-in-out infinite;pointer-events:none}
@keyframes nx-au-sheen{0%,60%{inset-inline-start:-40%}100%{inset-inline-start:130%}}
.nx-auth .nx-cta:disabled,.nx-auth .nx-btn.primary:disabled{opacity:.85;cursor:progress}
.nx-auth .nx-cta.is-busy::before,.nx-auth .nx-btn.primary:disabled::before{content:"";display:inline-block;width:16px;height:16px;margin-inline-end:10px;vertical-align:-3px;border:2px solid #fff6;border-top-color:#fff;border-radius:50%;animation:nx-au-rot .7s linear infinite}
@keyframes nx-au-rot{to{transform:rotate(360deg)}}
/* the other buttons inside the card (resend, dialogs' secondary) stay glass */
.nx-auth .nx-btn:not(.primary):not(.nx-pill){min-height:46px;border:1px solid var(--au-line);border-radius:12px;background:#ffffff14;color:var(--rail-text)}
.nx-auth .nx-btn:not(.primary):not(.nx-pill):hover{background:#ffffff24;border-color:var(--au-line)}

/* ---- the links and the status line (auth-skin.css:43-47, 135, 164) ------------------------------------------------------------------------------------------ */
.nx-auth .nx-auth-links{display:flex;flex-direction:column;align-items:center;gap:4px;margin-block-start:4px;font-size:15px}
.nx-auth .nx-auth-links a,.nx-auth .nx-auth-links button{background:none;border:0;color:var(--rail-text);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-size:15px;min-height:40px;padding:0 8px;display:inline-flex;align-items:center}
.nx-auth .nx-auth-links a.soft,.nx-auth .nx-auth-links a[href^="/?ui=classic"]{color:var(--rail-muted);text-decoration:none;font-size:13px;align-self:flex-start}
.nx-auth .nx-auth-links a.soft::before{content:"◂";margin-inline-end:6px}
.nx-auth .nx-auth-links a:hover,.nx-auth .nx-auth-links button:hover{color:#fff}
.nx-auth .nx-status{min-height:18px;margin:4px 0 0;font-size:13px;color:var(--rail-muted)}
.nx-auth .nx-status.bad{color:var(--au-bad)}.nx-auth .nx-status.good{color:var(--au-ok)}
.nx-auth [data-nx-status]+a{color:var(--nx-auth-b);text-decoration:underline;min-height:40px;display:inline-flex;align-items:center}

/* ---- the notices (registration policy, idle, verification sent, invitation) as the glass banner (auth-skin.css:48-49, 129) --------------------------------- */
.nx-auth .nx-notice{border:1px solid var(--au-line);border-inline-start-width:1px;background:#ffffff0d;border-radius:14px;padding:7px 12px;font-size:12px;color:var(--rail-muted);margin-block-end:8px;line-height:1.6}
.nx-auth .nx-notice.bad{border-color:var(--au-bad);color:var(--au-bad);background:#ffffff0d}
.nx-auth .nx-notice.good{border-color:var(--au-ok);color:var(--au-ok);background:#ffffff0d}
.nx-auth .nx-notice.warn{border-color:var(--warn-soft);color:#ffd59a;background:#ffffff0d}

/* ---- choose the organization: glass cards (auth.js chooseOrganization) ---------------------------------------------------------------------------------------- */
.nx-auth .nx-grid{gap:10px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.nx-auth .nx-card,.nx-auth button.nx-card{background:#ffffff0d;border:1px solid var(--au-line);border-radius:16px;color:var(--rail-text);cursor:pointer;text-align:start;font:inherit;padding:14px}
.nx-auth .nx-card:hover,.nx-auth .nx-card:focus-visible{border-color:var(--nx-auth-b);background:#20d5f512;transform:translateY(-2px)}
.nx-auth .nx-card h3{color:#fff;font-size:15px}.nx-auth .nx-card p{color:var(--rail-muted);font-size:13px}
.nx-auth .nx-empty{background:#ffffff0d;border-color:var(--au-line);color:var(--rail-muted)}

/* ---- the identity panel (auth-skin.css:51-74, 101-102) ----------------------------------------------------------------------------------------------------------- */
.nx-auth-hero{position:sticky;inset-block-start:0;height:100vh;min-height:0;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;gap:0;padding:48px 48px 84px;direction:ltr;
 background:radial-gradient(60% 50% at 50% 45%,#16295c 0,transparent 70%),var(--au-bg);color:var(--rail-text)}
.nx-auth-hero>img.nx-auth-logo{position:absolute;inset-block-start:50%;inset-inline-start:50%;width:300px;max-width:none;height:auto;margin:-148px 0 0 -150px;animation:nx-au-bob 6s ease-in-out infinite;filter:drop-shadow(0 0 40px var(--nx-auth-glow));pointer-events:none}
@keyframes nx-au-bob{50%{transform:translateY(-10px)}}
.nx-auth-glass{position:absolute;border-radius:36px;border:1px solid var(--au-line);background:linear-gradient(145deg,#ffffff1c,#ffffff05);box-shadow:0 30px 70px #02061a88;backdrop-filter:blur(3px);pointer-events:none}
.nx-auth-glass.g1{inset-block-start:8%;inset-inline-start:-6%;width:46%;height:42%;transform:rotate(-12deg);animation:nx-au-f1 14s ease-in-out infinite}
.nx-auth-glass.g2{inset-block-start:10%;inset-inline-end:2%;width:36%;height:34%;transform:rotate(8deg);animation:nx-au-f2 17s ease-in-out infinite}
.nx-auth-glass.g3{inset-block-end:6%;inset-inline-end:6%;width:34%;height:30%;transform:rotate(-7deg);animation:nx-au-f3 15s ease-in-out infinite}
@keyframes nx-au-f1{50%{transform:rotate(-9deg) translate(14px,-18px)}}
@keyframes nx-au-f2{50%{transform:rotate(11deg) translate(-16px,14px)}}
@keyframes nx-au-f3{50%{transform:rotate(-4deg) translate(-12px,-16px)}}
.nx-auth-orbit{position:absolute;inset-block-start:50%;inset-inline-start:50%;width:340px;height:340px;margin:-200px 0 0 -170px;border-radius:50%;border:1px solid var(--au-line);pointer-events:none}
.nx-auth-orbit::after{content:"";position:absolute;inset:-46px;border-radius:50%;border:1px solid #ffffff12}
.nx-auth-orbit i{position:absolute;inset:0;animation:nx-au-rot 16s linear infinite}
.nx-auth-orbit i::before{content:"";position:absolute;inset-block-start:46px;inset-inline-end:24px;width:12px;height:12px;border-radius:50%;background:var(--nx-auth-a);box-shadow:0 0 18px var(--nx-auth-a)}
.nx-auth-orbit i+i{animation-duration:23s;animation-direction:reverse}
.nx-auth-orbit i+i::before{inset-block-start:auto;inset-block-end:34px;inset-inline-end:60px;background:var(--nx-auth-b);box-shadow:0 0 18px var(--nx-auth-b)}
.nx-auth-tag{position:relative;z-index:2;max-width:none}
.nx-auth-tag small{display:block;color:var(--rail-muted);font-size:14px;margin-block-end:8px}
.nx-auth-hero h1,.nx-auth-tag h1,.nx-auth-tag h2{margin:0 0 6px;font-size:44px;line-height:1.15;color:#fff;font-weight:700}
.nx-auth-tag em{font-style:normal;color:#b4cbff}
.nx-auth-hero p,.nx-auth-tag p{margin:0;color:var(--rail-muted);font-size:15px;max-width:none}
.nx-auth-points{list-style:none;margin:20px 0 0;padding:0;display:none;gap:10px;flex-direction:column;direction:rtl;text-align:right}
[dir="ltr"] .nx-auth-points{direction:ltr;text-align:left}
.nx-auth-points li{display:flex;gap:10px;align-items:flex-start;color:#d6e0f5;font-size:14px;line-height:1.7}
.nx-auth-points .nx-ico{flex:none;width:20px;height:20px}
.nx-auth-points svg{stroke:var(--au-ok);stroke-width:2.2}
.nx-auth[data-nx-view="register"] .nx-auth-points{display:flex}
.nx-auth-hero>img:not(.nx-auth-logo){display:none}   /* the small 220 px logo of the old hero is replaced by the large floating one */

/* ---- the verification motion on /verify (otp-motion.css:3-26; no digits — the app verifies by the e-mailed link, see PORT_PLAN.md §8) ---------------- */
.nx-auth .nx-otpm{position:relative;border-radius:18px;background:var(--rail);color:var(--rail-text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;margin:0 0 10px;opacity:0;transition:opacity .25s}
.nx-auth .nx-otpm.is-run{opacity:1}
.nx-otpm-stage{position:relative;width:min(100%,320px);aspect-ratio:512/402}
.nx-otpm-logo{position:absolute;inset:0;background:url(/assets/cfo-official-transparent-v1.png) center/contain no-repeat;filter:brightness(.55) saturate(.6);transition:opacity .35s,transform .4s,filter .4s}
.nx-otpm.is-run .nx-otpm-logo{animation:nx-otpm-lit 1.1s linear forwards}
@keyframes nx-otpm-lit{to{filter:brightness(1.05) saturate(1)}}
.nx-otpm-run{position:absolute;inset:0;transform-origin:0 0}
.nx-otpm-digit,.nx-otpm-lamp{offset-path:path("M 163 113 A 80 95 0 1 0 163 259 M 226 275 L 226 85 L 288 85 M 226 180 L 275 180 M 483 170 A 90 110 0 1 0 303 170 A 90 110 0 1 0 483 170")}
.nx-otpm-digit{position:absolute;left:0;top:0;width:44px;height:52px;border-radius:12px;background:#0e2a4a;border:2px solid var(--accent);color:#fff;font-size:24px;font-weight:700;display:grid;place-items:center;box-shadow:0 0 16px var(--nx-glow);offset-distance:0%;opacity:0}
.nx-otpm-lamp{position:absolute;left:0;top:0;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,#20d5f588,transparent 65%);offset-distance:0%;opacity:0;mix-blend-mode:screen;pointer-events:none}
.nx-otpm.is-run .nx-otpm-digit{animation:nx-otpm-run .9s cubic-bezier(.4,0,.25,1) forwards}
.nx-otpm.is-run .nx-otpm-digit:nth-child(2){animation-delay:.05s}.nx-otpm.is-run .nx-otpm-digit:nth-child(3){animation-delay:.1s}.nx-otpm.is-run .nx-otpm-digit:nth-child(4){animation-delay:.15s}.nx-otpm.is-run .nx-otpm-digit:nth-child(5){animation-delay:.2s}.nx-otpm.is-run .nx-otpm-digit:nth-child(6){animation-delay:.25s}
.nx-otpm.is-run .nx-otpm-lamp{animation:nx-otpm-run .9s cubic-bezier(.4,0,.25,1) .08s forwards}
@keyframes nx-otpm-run{0%{offset-distance:0%;opacity:0}6%{opacity:1}92%{opacity:1}100%{offset-distance:100%;opacity:0}}
.nx-otpm-check{position:absolute;left:50%;top:43%;width:64px;height:64px;border-radius:18px;background:#0b2f26;border:1px solid #22c55e;transform:translate(-50%,-50%) scale(.2);opacity:0;display:grid;place-items:center;box-shadow:0 0 30px #22c55e66}
.nx-otpm-check svg{width:32px;height:32px;stroke:#4ade80;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;stroke-dashoffset:30}
.nx-otpm.is-done .nx-otpm-logo{opacity:0;transform:scale(.9)}
.nx-otpm.is-done .nx-otpm-check{animation:nx-otpm-pop .45s .15s cubic-bezier(.2,.9,.3,1.3) forwards}
.nx-otpm.is-done .nx-otpm-check svg{animation:nx-otpm-draw .35s .4s ease-out forwards}
@keyframes nx-otpm-pop{to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes nx-otpm-draw{to{stroke-dashoffset:0}}
.nx-otpm-text{margin:0;font-size:14px;font-weight:600;color:#fff}

/* ---- short screens (auth-skin.css:149, 176-177) ----------------------------------------------------------------------------------------------------------------- */
@media (max-height:760px){.nx-auth-card{padding:16px 28px}.nx-auth-head img{width:48px}.nx-auth-card h2,.nx-auth-title{font-size:21px}.nx-auth-sub{display:none}.nx-auth .nx-field input,.nx-auth .nx-field select{min-height:44px}.nx-auth .nx-field{margin-block-end:8px}.nx-auth-side{padding-top:58px;padding-bottom:12px}.nx-auth-card{max-height:calc(100vh - 70px)}}

/* ---- phone and tablet widths (auth-skin.css:98, 109, 117, 150): one column, the identity panel 200 px on top, the page scrolls again -------------------- */
@media (max-width:900px){
 .nx-auth{grid-template-columns:1fr;height:auto;min-height:100vh;overflow:visible}
 .nx-auth-hero{position:relative;order:-1;height:200px;min-height:0;padding:24px;justify-content:center}
 .nx-auth-hero>img.nx-auth-logo{width:150px;margin:-80px 0 0 -75px}
 .nx-auth-orbit{width:200px;height:200px;margin:-100px 0 0 -100px}
 .nx-auth-orbit::after{inset:-24px}
 .nx-auth-tag{position:absolute;inset-inline:24px;inset-block-end:16px}
 .nx-auth-hero h1,.nx-auth-tag h1,.nx-auth-tag h2{font-size:26px}
 .nx-auth-tag small,.nx-auth-tag p,.nx-auth-points{display:none!important}
 .nx-auth-glass{opacity:.5}
 .nx-auth-side{padding:70px 14px 30px;border:0}
 .nx-auth-top{inset-inline:14px}
 .nx-auth-card{max-height:none;overflow:visible;padding:24px 18px;animation:none}
 .nx-auth-card::before{display:none}
}
@media (max-width:480px){
 .nx-auth-grid{grid-template-columns:1fr}
 .nx-auth-tabs a,.nx-auth-tabs button{font-size:13px;padding:0 4px;white-space:normal;line-height:1.2}
 .nx-auth-card h2,.nx-auth-title{font-size:22px}
 .nx-auth .nx-pill{padding:0 12px;font-size:13px}
 .nx-steps{gap:6px;font-size:11px}.nx-steps li+li::before{width:16px}
}
/* ---- LTR (English): the identity panel mirrors to the right by the grid order; the arrows of the soft links flip ---------------------------------------- */
[dir="ltr"] .nx-auth .nx-auth-links a.soft::before{content:"▸"}
[dir="ltr"] .nx-auth-hero{direction:ltr}
/* ---- reduced motion (auth-skin.css:99; nx.css:395 already cancels everything, repeated here for the card border and the loops) --------------------------- */
@media (prefers-reduced-motion:reduce){.nx-auth *,.nx-auth-card,.nx-auth-card::before,.nx-auth .nx-cta::after,.nx-auth-hero>img.nx-auth-logo,.nx-auth-glass,.nx-auth-orbit i{animation:none!important;transition:none!important}.nx-auth .nx-otpm{display:none}}
@media print{.nx-auth-hero,.nx-auth-top{display:none}.nx-auth{display:block;background:#fff;color:#000}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.nx-rail,.nx-top,.nx-tabs,.nx-btn,.nx-toast,.nx-no-print{display:none!important}.nx-shell{display:block}.nx-content{padding:0;max-width:none}.nx-panel,.nx-kpi{break-inside:avoid;box-shadow:none}body{background:#fff}.nx-table-wrap{overflow:visible}}
/* ---- G4-NX7: the statements in the mockup design (public/nx/screens/statements.js) ----------------------------------------------------------------- */
.nx-stm-head{margin-block-end:12px}
.nx-stm-head h1{margin:2px 0 4px}
.nx-stm-meta{margin:4px 0 0;color:var(--muted);font-size:13px}
.nx-stm-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.nx-stm-actions .nx-btn.is-on{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-2)}
.nx-stm-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-block-end:12px}
.nx-stm-tabs{border:0;padding:4px;background:var(--th);border-radius:12px;gap:2px}
.nx-stm-tabs button{min-height:38px;border-radius:9px;padding:6px 14px}
.nx-stm-tabs [aria-selected="true"]{background:var(--surface);border-color:var(--line);color:var(--primary-2);box-shadow:var(--shadow)}
.nx-stm-cmp,.nx-stm-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.nx-stm-cmp.is-off{opacity:.55}
.nx-stm-chip{min-height:36px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);padding:4px 13px;font:inherit;font-size:13px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.nx-stm-chip:hover{border-color:var(--primary)}
.nx-stm-chip[aria-pressed="true"]{background:var(--primary);border-color:var(--primary);color:#fff}
.nx-stm-chip[aria-disabled="true"]{color:var(--muted);border-style:dashed;cursor:help}
.nx-stm-tools .nx-stm-chip[aria-pressed="true"]{background:var(--primary-soft);border-color:#c6d3ff;color:var(--primary-2)}
.nx-stm-pick{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.nx-stm-pick select{min-height:36px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;padding:4px 8px;max-width:220px}
.nx-stm-note{margin-block-end:12px}
.nx-stm-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:16px;align-items:start}
.nx-stm-side{display:grid;gap:16px;min-width:0}
.nx-stm-side .nx-panel+.nx-panel{margin:0}
.nx-stm-table tbody th[scope="row"]{padding:0;font-weight:400;min-width:220px;background:transparent;color:var(--ink);font-size:14px}
.nx-stm-line{display:flex;align-items:center;gap:8px;inline-size:100%;min-height:38px;border:0;background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer;padding:6px 12px}
.nx-stm-table td{padding-block:8px;vertical-align:middle}
.nx-stm-table th[data-nx-indent="1"] .nx-stm-line{padding-inline-start:28px}.nx-stm-table th[data-nx-indent="2"] .nx-stm-line{padding-inline-start:44px}.nx-stm-table th[data-nx-indent="3"] .nx-stm-line{padding-inline-start:60px}.nx-stm-table th[data-nx-indent="4"] .nx-stm-line{padding-inline-start:76px}.nx-stm-table th[data-nx-indent="5"] .nx-stm-line{padding-inline-start:92px}.nx-stm-table th[data-nx-indent="6"] .nx-stm-line{padding-inline-start:108px}.nx-stm-table th[data-nx-indent="7"] .nx-stm-line{padding-inline-start:124px}.nx-stm-table th[data-nx-indent="8"] .nx-stm-line{padding-inline-start:140px}
.nx-stm-line:hover{color:var(--primary-2)}
.nx-stm-line:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;border-radius:6px}
.nx-stm-fx{font:italic 600 11px/1 Georgia,serif;color:var(--primary-2);background:var(--primary-soft);border-radius:5px;padding:3px 5px}
.nx-stm-r.t-subtotal,.nx-stm-r.t-total{background:#f7f9fc}
.nx-stm-r.t-subtotal .nx-stm-line,.nx-stm-r.t-total .nx-stm-line,.nx-stm-r.t-subtotal td,.nx-stm-r.t-total td{font-weight:700}
.nx-stm-r.t-total td,.nx-stm-r.t-total th{border-block-start:2px solid var(--line-2)}
.nx-stm-r.t-memo .nx-stm-line,.nx-stm-r.t-memo td{color:var(--muted);font-size:13px}
.nx-stm-h th{background:var(--th);color:var(--primary-2);font-size:12px;letter-spacing:.02em;padding-block:7px}
.nx-stm-table td.nx-neg{color:var(--bad)}
.nx-stm-table td.nx-stm-good{color:var(--good);font-weight:600}
.nx-stm-table td.nx-stm-bad{color:var(--warn);font-weight:600}
.nx-stm-foot{margin:10px 2px 0;font-size:12px}
.nx-stm-chart{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.nx-stm-chart li{display:grid;grid-template-columns:minmax(90px,38%) minmax(0,1fr) auto;align-items:center;gap:8px;font-size:12px}
.nx-stm-chart-lbl{color:var(--ink);line-height:1.25}
.nx-stm-chart-track{position:relative;block-size:20px;background:var(--th);border-radius:5px;overflow:hidden}
.nx-stm-chart-bar{position:absolute;inset-block:0;border-radius:4px;background:var(--primary);animation:nx-grow-x .5s cubic-bezier(.2,.7,.2,1) both;transform-origin:100% 50%;transition:opacity .16s,filter .16s}
/* G4-NX9 — the statement charts move as in the mockup (the Owner's rule: fill on open and on a change of month, ≤ 600 ms, on the GPU, off under «تقليل الحركة» and in print): a bar fills from its start in .5 s on the mockup's curve, every bar at once, and brightens under the pointer; the dashed zero line; «تكوين الأصول والتمويل» — the balance sheet as two bars of parts */
.nx-stm-chart-bar:hover{filter:brightness(1.18) saturate(1.1);opacity:.85}
.nx-stm-chart-zero{position:absolute;inset-block:-4px;border-inline-start:2px dashed #94a3b8;pointer-events:none}
.nx-stm-comp{display:grid;gap:14px}
.nx-stm-comp-title{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-block-end:6px;font-size:13px;color:var(--ink);font-weight:600}
.nx-stm-comp-title small{color:var(--muted);font-weight:500;font-variant-numeric:tabular-nums}
.nx-stm-comp-track{display:flex;block-size:28px;border-radius:7px;overflow:hidden;background:var(--th)}
.nx-stm-comp-part{display:flex;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;color:#fff;font-size:11.5px;font-weight:600;background:var(--primary);animation:nx-grow-x .5s cubic-bezier(.2,.7,.2,1) both;transform-origin:100% 50%;transition:opacity .16s,filter .16s}
[dir="ltr"] .nx-stm-comp-part{transform-origin:0 50%}
.nx-stm-comp-part:hover{filter:brightness(1.18) saturate(1.1);opacity:.85}
.nx-stm-comp-part.p-1{background:#0f9d7a}.nx-stm-comp-part.p-2{background:#d97706}.nx-stm-comp-part.p-3{background:#c2410c}.nx-stm-comp-part.p-4{background:#64748b}
.nx-stm-comp-row.f-financing .nx-stm-comp-part.p-0{background:#d97706}.nx-stm-comp-row.f-financing .nx-stm-comp-part.p-1{background:#b42318}.nx-stm-comp-row.f-financing .nx-stm-comp-part.p-2{background:#102641}
/* G4-NX10 — the cash flow statement complete: the method bar, the plain account lines (no «شرح الرقم»), the «من فين الرقم» column, the flow-quality cards */
.nx-stm-method{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-block-end:10px;font-size:12px}
.nx-stm-plain{cursor:default}
th.nx-stm-src,td.nx-stm-src{font-size:12px;color:var(--muted);font-weight:500;max-width:240px;white-space:normal;line-height:1.35;text-align:start}
.nx-stm-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nx-stm-card{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--th)}
.nx-stm-card-h{font-size:12px;color:var(--muted);font-weight:600}
.nx-stm-card-v{font-size:22px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.nx-stm-card small{font-size:11px;color:var(--muted)}
@media (max-width:760px){.nx-stm-cards{grid-template-columns:1fr}th.nx-stm-src,td.nx-stm-src{max-width:140px}}
/* G4-NX11 — the statements screen as the mockup draws it (screens/Statement.html; legacy-generated.css s182–s224): the head, the 40 px buttons, the grid
   3fr / 2fr, the table card, its head row and 56 px rows, the dotted figure, the change colours, the panels, the SVG waterfall and its texts */
.nx-stm-head .nx-eyebrow{display:none}
.nx-stm-head h1{margin:0 0 4px;font-size:24px}
.nx-stm-head [data-nx-stm-hint]{margin:0 0 6px;font-size:14px;color:#596c84}
.nx-stm-head .nx-stm-meta{margin:0;font-size:13px;color:#596c84}
.nx-stm-actions .nx-btn{height:40px;min-height:40px;padding:0 12px;border:1px solid #dbe4ee;border-radius:10px;background:#fff;color:#102641;font-size:13px;gap:6px}
.nx-stm-actions .nx-btn.nx-stm-iconbtn{width:40px;padding:0;justify-content:center}
.nx-stm-tools{margin-inline-start:auto}
@media (min-width:1101px){.nx-stm-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}
.nx-stm-tablepanel{padding:0;border:1px solid #dbe4ee;border-radius:12px;background:#fff;overflow:hidden}
.nx-stm-tablepanel .nx-table-wrap{border:0;border-radius:0}.nx-tb-bar .nx-tb-cols-first{margin-inline-start:12px}/* G4-TBCOL1: the column modes apart from the view chips */
.nx-stm-tablepanel .nx-stm-method{padding:12px 14px 0;margin:0}
.nx-stm-table{font-size:14px}
.nx-stm-table thead th{background:#f7f9fc;color:#596c84;font-size:12px;font-weight:600;padding:10px 14px}
.nx-stm-table tbody tr{border-top:1px solid #eef2f7}
.nx-stm-table tbody th[scope="row"] .nx-stm-line{min-height:44px;padding:10px 14px;color:#102641}
.nx-stm-table tbody th[data-nx-indent="1"] .nx-stm-line{padding-inline-start:26px}
.nx-stm-table td{padding:6px 14px;text-align:end}
.nx-stm-num{min-height:44px;border:0;background:transparent;font:inherit;color:#102641;cursor:pointer;padding:4px 6px;border-radius:6px;text-decoration:underline dotted #b7cfe8;text-underline-offset:4px}
.nx-stm-num:hover{background:#eaf3ff}
.nx-stm-num:focus-visible{outline:3px solid #0b96ff;outline-offset:2px}
.nx-stm-table.is-std tbody td:nth-of-type(2){color:#596c84}
.nx-stm-table td.nx-stm-good{color:#065f46;font-weight:600}
.nx-stm-table td.nx-stm-bad{color:#9a3412;font-weight:600}
.nx-stm-r.t-subtotal,.nx-stm-r.t-total{background:#f7f9fc}
.nx-stm-fx{font:italic 400 10px/1.6 inherit;color:#0869c9;background:transparent;border:1px solid #b7cfe8;border-radius:4px;padding:0 4px}
.nx-stm-tablepanel .nx-stm-foot{margin:0;padding:10px 14px;border-top:1px solid #eef2f7;font-size:12px;color:#596c84}
.nx-stm-side .nx-panel{padding:16px 18px;border:1px solid #dbe4ee;border-radius:12px;background:#fff}
.nx-stm-side .nx-panel-head{margin-block-end:10px}
.nx-stm-side .nx-panel-head h2{font-size:15px;color:#102641}
.nx-stm-tag{font-size:12px;color:#596c84}
.nx-stm-says-h{display:inline-flex;align-items:center;gap:8px}
.nx-stm-says-h .nx-ico{color:#087b71;inline-size:16px;block-size:16px}
.nx-stm-side .nx-panel-head .nx-muted{font-size:11px;color:#596c84}
.nx-stm-says{font-size:13px;line-height:1.8;color:#102641;gap:0}
.nx-stm-wf{display:block;direction:ltr;max-width:100%;overflow:visible}
.nx-stm-wf text{unicode-bidi:plaintext;font-family:inherit;font-size:12px;fill:#102641}
.nx-stm-wf .nx-stm-wf-val{font-weight:700}
.nx-stm-wf .nx-stm-wf-val.is-in{fill:#fff}
.nx-stm-wf rect.nx-mark:focus-visible{outline:none;filter:brightness(1.18) saturate(1.1)}
@media print{.nx-stm-wf rect.nx-mark{animation:none!important}.nx-stm-table .nx-stm-num{text-decoration:none;min-height:0;padding:0}}
/* G4-NX12 — the trial balance in the new look: one column (no side panel), its toolbar, the tree levels with their chevrons, the code column */
.nx-stm-grid.is-one{grid-template-columns:minmax(0,1fr)}
.nx-tb-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px 14px 4px}
.nx-tb-table tbody tr[data-nx-tb-node]{cursor:pointer}
.nx-tb-table tbody tr[data-nx-tb-node]:focus-visible{outline:3px solid #0b96ff;outline-offset:-3px}
.nx-tb-table tbody tr.nx-tb-l1{background:#f7f9fc}
.nx-tb-table tbody tr.nx-tb-l1 .nx-stm-line{font-weight:700}
.nx-tb-table tbody tr.nx-tb-l2 .nx-stm-line{font-weight:600}
.nx-tb-table tbody th[data-nx-indent="2"] .nx-stm-line{padding-inline-start:38px}
.nx-tb-chev{display:inline-block;inline-size:14px;color:#596c84;transition:transform .16s ease-out}
[dir="rtl"] .nx-tb-chev{transform:scaleX(-1)}
.nx-tb-chev.is-open,[dir="rtl"] .nx-tb-chev.is-open{transform:rotate(90deg)}
.nx-tb-code{font-variant-numeric:tabular-nums;white-space:nowrap}
.nx-tb-class{font-size:12px;color:#596c84}
.nx-tb-empty{padding:16px 14px}
@media (prefers-reduced-motion:reduce){.nx-tb-chev{transition:none}}
[dir="ltr"] .nx-stm-chart-bar{transform-origin:0 50%}
.nx-stm-chart .k-total .nx-stm-chart-bar{background:var(--good)}
.nx-stm-chart .k-down .nx-stm-chart-bar{background:#c2410c}
.nx-stm-chart .k-up .nx-stm-chart-bar{background:#0f9d7a}
.nx-stm-chart.is-fall .k-total .nx-stm-chart-lbl,.nx-stm-chart.is-fall .k-first .nx-stm-chart-lbl{font-weight:700}
.nx-stm-chart-val{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink)}
.nx-stm-says{margin:0;padding-inline-start:18px;display:grid;gap:8px;font-size:13px;line-height:1.55}
.nx-stm-full-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-block-end:10px}
dialog.nx-stm-drill{margin-block:0;margin-inline:auto 0;inline-size:min(460px,100vw);max-inline-size:100vw;block-size:100dvh;max-block-size:100dvh;border-radius:0;border-inline-end:0;border-block:0;padding:20px 22px;background:var(--surface)}
dialog.nx-stm-drill[open]{animation:nx-stm-in .22s ease-out both}
@keyframes nx-stm-in{from{transform:translateX(-24px);opacity:0}to{transform:none;opacity:1}}
[dir="ltr"] dialog.nx-stm-drill[open]{animation-name:nx-stm-in-ltr}
@keyframes nx-stm-in-ltr{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
.nx-stm-drill h3{font-size:14px;margin:16px 0 4px;color:var(--muted)}
.nx-stm-drill p{margin:0 0 6px;line-height:1.6}
.nx-stm-drill-val{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}
.nx-stm-drill-val small{font-size:13px;font-weight:400;color:var(--muted)}
.nx-stm-drill-acts{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 10px}
/* G4-KPI45 — «شرح الرقم» of an extended ratio: the other methods with their figures */
.nx-stm-drill-list{margin:0 0 8px;padding-inline-start:18px;line-height:1.6}
.nx-stm-drill-list li{margin-block:4px}
.nx-stm-drill-list span{font-variant-numeric:tabular-nums;font-weight:600}
/* G4-KPI2 — «مكتبة المؤشرات»: the mockup's library (KpiLibrary.html / kpilib.css) in the interface's tokens — the tabs, the filters, the cards in a grid of
   300 px columns with a side edge by tone, the number badge by group, the tags, the figure counting up with its change, the half-circle gauge and the two months,
   the methods, the formula in words, the board's tools; the drawer of «التفاصيل» is the statements' drawer */
.nx-kl{display:grid;gap:14px}
.nx-kl-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.nx-kl-head h1{margin:2px 0 4px;font-size:26px}
.nx-kl-tabs{display:flex;gap:6px;flex-wrap:wrap;border-block-end:1px solid var(--line);padding-block-end:10px}
.nx-kl-tabs [role=tab]{min-height:42px;border:1px solid transparent;background:transparent;border-radius:12px;padding:0 14px;font:inherit;font-weight:600;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.nx-kl-tabs [role=tab][aria-selected=true]{background:var(--surface);border-color:var(--line);color:var(--ink);box-shadow:var(--shadow)}
.nx-kl-tabs [role=tab]:focus-visible,.nx-kl-cats button:focus-visible,.nx-kl-methods button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.nx-kl-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.nx-kl-search{flex:1 1 260px;min-width:0}
.nx-kl-search input{inline-size:100%;min-height:42px;border:1px solid var(--line);border-radius:12px;padding:0 14px;font:inherit;background:var(--surface);color:var(--ink)}
.nx-kl-cats{display:flex;gap:6px;flex-wrap:wrap}
.nx-kl-cats button{min-height:36px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:0 12px;font:inherit;font-size:13px;cursor:pointer;color:var(--ink)}
.nx-kl-cats button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:#fff}
.nx-kl-status,.nx-kl-imp{display:inline-flex;gap:6px;align-items:center;font-size:12.5px;color:var(--muted)}
.nx-kl-status select,.nx-kl-imp select{min-height:36px;border:1px solid var(--line);border-radius:var(--r-s);padding:0 8px;font:inherit;background:var(--surface);color:var(--ink)}
.nx-kl-hint{margin:0;font-size:13px}
.nx-kl-group h2{font-size:16px;margin:10px 0 10px;display:flex;gap:8px;align-items:center}
.nx-kl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.nx-kl-card{background:var(--surface);border:1px solid var(--line);border-inline-start:4px solid var(--line);border-radius:var(--r);padding:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;min-width:0;animation:nx-kl-in .4s cubic-bezier(.2,.7,.2,1) both}
.nx-kl-card.is-on{outline:2px solid var(--primary);outline-offset:-2px}
.nx-kl-card[data-tone=good]{border-inline-start-color:var(--good)}
.nx-kl-card[data-tone=bad]{border-inline-start-color:var(--bad)}
.nx-kl-card[data-tone=warn]{border-inline-start-color:var(--warn)}
.nx-kl-card[data-tone=neutral]{border-inline-start-color:var(--primary)}
@keyframes nx-kl-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.nx-kl-cardhead{display:flex;gap:10px;align-items:flex-start}
.nx-kl-cardhead h3{margin:0;font-size:15px;line-height:1.35}
.nx-kl-cardhead small{color:var(--muted);font-size:11.5px}
.nx-kl-no{flex:none;min-inline-size:32px;block-size:32px;border-radius:9px;display:grid;place-items:center;font-weight:800;font-size:13px;background:var(--primary-soft);color:var(--primary)}
.nx-kl-no[data-cat=prof]{background:var(--good-soft);color:var(--good)}
.nx-kl-no[data-cat=eff]{background:#e6f6f7;color:#0f6b73}
.nx-kl-no[data-cat=lev]{background:var(--warn-soft);color:var(--warn)}
.nx-kl-no[data-cat=mkt]{background:#f1ecfd;color:#5b21b6}
.nx-kl-no[data-cat=cf]{background:#e8f3fb;color:#075985}
.nx-kl-no[data-cat=str]{background:var(--th);color:var(--muted)}
.nx-kl-btools{margin-inline-start:auto;display:flex;gap:4px}
.nx-kl-btools .nx-icon-btn{min-width:36px;min-height:36px}
.nx-kl-btools .is-danger{color:var(--bad)}
.nx-kl-tags{display:flex;gap:5px;flex-wrap:wrap}
.nx-kl-tag{font-size:11px;padding:3px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.nx-kl-tag[data-s=core],.nx-kl-tag[data-s=engine]{color:var(--good);border-color:currentColor}
.nx-kl-tag[data-s=needs]{color:var(--warn);border-color:currentColor}
.nx-kl-tag[data-s=listed],.nx-kl-tag[data-s=bank]{border-style:dashed}
.nx-kl-tag.imp-crit{color:var(--bad);border-color:currentColor}
.nx-kl-tag.imp-med{color:var(--primary);border-color:currentColor}
.nx-kl-val{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;min-height:40px}
.nx-kl-num{font-size:30px;font-weight:800;letter-spacing:-.5px;font-variant-numeric:tabular-nums;line-height:1;direction:ltr;unicode-bidi:isolate}
.nx-kl-num small{font-size:15px;font-weight:700;margin-inline-start:2px}
.nx-kl-num.is-miss{font-size:14px;color:var(--muted);font-weight:600;letter-spacing:0;direction:inherit}
.nx-kl-val>small{font-size:12px;color:var(--muted)}
.nx-kl-delta{font-size:12.5px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--th);color:var(--muted)}
.nx-kl-card[data-tone=good] .nx-kl-delta{color:var(--good);background:var(--good-soft)}
.nx-kl-card[data-tone=bad] .nx-kl-delta{color:var(--bad);background:var(--bad-soft)}
.nx-kl-viz{display:flex;gap:10px;align-items:center;justify-content:space-between}
.nx-kl-gauge{inline-size:112px;block-size:auto;flex:none}
.nx-kl-bars{inline-size:110px;block-size:auto;flex:none}
.nx-kl-g-track{fill:none;stroke:var(--line);stroke-width:8;stroke-linecap:round}
line.nx-kl-g-track{stroke-width:1}
.nx-kl-g-band{fill:none;stroke:var(--good-soft);stroke-width:8}
.nx-kl-g-val{fill:none;stroke:var(--primary);stroke-width:8;stroke-linecap:round;animation:nx-kl-draw .7s cubic-bezier(.2,.7,.2,1) both}
.nx-kl-g-val[data-tone=good]{stroke:var(--good)}
.nx-kl-g-val[data-tone=bad]{stroke:var(--bad)}
.nx-kl-g-val[data-tone=warn]{stroke:var(--warn)}
@keyframes nx-kl-draw{from{stroke-dasharray:0 100}}
.nx-kl-g-needle,.nx-kl-g-pin{fill:var(--ink)}
.nx-kl-b{fill:var(--line-2)}
.nx-kl-b.is-now{fill:var(--primary)}
.nx-kl-bars text{font-size:7.5px;fill:var(--muted)}
.nx-kl-methods{display:flex;gap:4px;flex-wrap:wrap}
.nx-kl-methods button{min-height:32px;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:0 10px;font:inherit;font-size:12px;cursor:pointer;color:var(--ink)}
.nx-kl-methods button[aria-pressed=true]{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}
.nx-kl-fx{font-size:12.5px;margin:0;line-height:1.6}
.nx-kl-miss{font-size:12.5px;color:var(--warn);margin:0;line-height:1.6}
.nx-kl-note{font-size:12px;color:var(--muted);margin:0;line-height:1.5}
.nx-kl-why summary{cursor:pointer;font-size:12.5px;color:var(--primary)}
.nx-kl-why p{font-size:12.5px;margin:6px 0 0;line-height:1.6}
.nx-kl-btns{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-block-start:auto}
.nx-kl-foot{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0;font-size:12.5px}
@media (prefers-reduced-motion:reduce){.nx-kl-card,.nx-kl-g-val{animation:none}}
@media (max-width:640px){.nx-kl-grid{grid-template-columns:minmax(0,1fr)}.nx-kl-head h1{font-size:22px}}
@media print{.nx-kl-tabs,.nx-kl-filters,.nx-kl-btns,.nx-kl-btools,.nx-kl-tools,.nx-kl-hint,.nx-kl-methods,.nx-kl-why{display:none!important}.nx-kl-card{break-inside:avoid;box-shadow:none;animation:none}.nx-kl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* G4-LIVE1 — «اللوحة الحية»: the mockup's live board (LiveBoard.html / liveboard.css) in the interface's tokens — a grid of twelve columns (each card its width:
   6 / 3 / 3, 4 / 5 / 3, 4 / 5 / 3, 5 / 7), the head with its line and badge or legend, the star that pins to «لوحتي», the hero figure, the SVG charts whose
   series and parts take their colours from classes, the accessible tables shown by «جدول», the rotating alerts; «لوحتي» uses the same grid */
.nx-lv{display:grid;gap:14px}
.nx-lv-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.nx-lv-top h1{margin:2px 0 4px;font-size:26px}
.nx-lv-acts{display:flex;gap:6px;flex-wrap:wrap}
.nx-lv-acts [aria-pressed=true]{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}
.nx-lv-hint,.nx-lv-stamp{margin:0;font-size:13px}
.nx-lv-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;align-items:start}
.nx-lv-card{grid-column:span 12;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow);min-width:0;display:flex;flex-direction:column;gap:10px;animation:nx-lv-in .45s cubic-bezier(.2,.7,.2,1) both}
.nx-lv-card.w-3{grid-column:span 3}.nx-lv-card.w-4{grid-column:span 4}.nx-lv-card.w-5{grid-column:span 5}.nx-lv-card.w-6{grid-column:span 6}.nx-lv-card.w-7{grid-column:span 7}
.nx-lv-grid.is-board>.nx-kl-card{grid-column:span 4}
.nx-kl-livewrap{grid-column:span 12;min-width:0;display:grid}
.nx-kl-livewrap.w-3{grid-column:span 3}.nx-kl-livewrap.w-4{grid-column:span 4}.nx-kl-livewrap.w-5{grid-column:span 5}.nx-kl-livewrap.w-6{grid-column:span 6}.nx-kl-livewrap.w-7{grid-column:span 7}
.nx-kl-livewrap>.nx-lv-card{grid-column:auto}
@keyframes nx-lv-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.nx-lv-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.nx-lv-head h3{margin:0;font-size:15px}
.nx-lv-head p{margin:2px 0 0;font-size:12px;color:var(--muted)}
.nx-lv-side{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.nx-lv-pin{min-width:36px;min-height:36px;font-size:17px;color:var(--muted)}
.nx-lv-pin[aria-pressed=true]{color:var(--warn);border-color:var(--warn)}
.nx-lv-badge{font-size:11.5px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.nx-lv-badge.is-good{color:var(--good);border-color:currentColor;background:var(--good-soft)}
.nx-lv-badge.is-warn{color:var(--warn);border-color:currentColor;background:var(--warn-soft)}
.nx-lv-badge.is-bad{color:var(--bad);border-color:currentColor;background:var(--bad-soft)}
.nx-lv-legend{display:flex;gap:6px;flex-wrap:wrap;font-size:12px}
.nx-lv-legend button{min-height:30px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:0 10px;font:inherit;font-size:12px;cursor:pointer;display:inline-flex;gap:6px;align-items:center;color:var(--ink)}
.nx-lv-legend button[aria-pressed=false]{opacity:.45}
.nx-lv-legend.is-static span{display:inline-flex;gap:5px;align-items:center;color:var(--muted)}
.nx-lv-sw{display:inline-block;inline-size:10px;block-size:10px;border-radius:3px;background:var(--line-2)}
.nx-lv-sw.s0{background:#94a3b8}.nx-lv-sw.s1{background:var(--primary)}.nx-lv-sw.s2{background:var(--good)}.nx-lv-sw.s3{background:var(--warn)}
.nx-lv-sw.p0{background:var(--primary)}.nx-lv-sw.p1{background:#0f9d7a}.nx-lv-sw.p2{background:#d97706}.nx-lv-sw.p3{background:#7c3aed}.nx-lv-sw.p4{background:#0891b2}.nx-lv-sw.p5{background:#94a3b8}
.nx-lv-hero{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.nx-lv-num{font-size:30px;font-weight:800;letter-spacing:-.5px;font-variant-numeric:tabular-nums;line-height:1;direction:ltr;unicode-bidi:isolate}
.nx-lv-hero small,.nx-lv-gaugewrap small{color:var(--muted);font-size:12px}
.nx-lv-delta{font-size:12.5px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--th);color:var(--muted)}
.nx-lv-delta.is-good{color:var(--good);background:var(--good-soft)}.nx-lv-delta.is-bad{color:var(--bad);background:var(--bad-soft)}
.nx-lv-line,.nx-lv-note{margin:0;font-size:12.5px;color:var(--muted);line-height:1.6}
.nx-lv-missing{margin:6px 0;font-size:13px;color:var(--warn);line-height:1.7}
.nx-lv-plot{min-width:0}
.nx-lv-svg{inline-size:100%;block-size:auto;display:block}
.nx-lv-axis{stroke:var(--line-2);stroke-width:1}
.nx-lv-lbl{font-size:11px;fill:var(--muted)}
.nx-lv-val{font-size:10.5px;fill:var(--ink);font-variant-numeric:tabular-nums}
.nx-lv-bar{fill:#94a3b8}
.nx-lv-bar.s1{fill:var(--primary)}.nx-lv-bar.s2{fill:var(--good)}.nx-lv-bar.s3{fill:var(--warn)}
.nx-lv-bar.is-neg{fill:var(--bad)}
.nx-lv-bar:hover{filter:brightness(1.1)}
.nx-lv-card.is-hide-s0 .s0:not(.nx-lv-sw),.nx-lv-card.is-hide-s1 .s1:not(.nx-lv-sw){display:none}
.nx-lv-min{stroke:var(--warn);stroke-dasharray:4 4;stroke-width:1.5}
.nx-lv-min-t{font-size:10.5px;fill:var(--warn)}
.nx-lv-donutwrap{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.nx-lv-donut{inline-size:130px;block-size:130px;flex:none}
.nx-lv-track{fill:none;stroke:var(--th);stroke-width:16}
.nx-lv-seg{fill:none;stroke-width:16;stroke:#94a3b8}
.nx-lv-seg.p0{stroke:var(--primary)}.nx-lv-seg.p1{stroke:#0f9d7a}.nx-lv-seg.p2{stroke:#d97706}.nx-lv-seg.p3{stroke:#7c3aed}.nx-lv-seg.p4{stroke:#0891b2}.nx-lv-seg.p5{stroke:#94a3b8}
.nx-lv-center{font-size:13px;font-weight:800;fill:var(--ink)}
.nx-lv-sub{font-size:9px;fill:var(--muted)}
.nx-lv-keys{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:12px;min-width:0;flex:1}
.nx-lv-keys li{display:flex;gap:6px;align-items:center}
.nx-lv-keys b{margin-inline-start:auto;font-variant-numeric:tabular-nums}
.nx-lv-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nx-lv-tile{border:1px solid var(--line);border-radius:var(--r-s);padding:10px;display:grid;gap:4px;min-width:0}
.nx-lv-tile>span{font-size:12px;color:var(--muted)}
.nx-lv-tile .nx-lv-num{font-size:22px}
.nx-lv-spark{inline-size:100%;block-size:38px}
.nx-lv-spark polyline{fill:none;stroke:var(--primary);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.nx-lv-spark circle{fill:var(--primary)}
.nx-lv-gaugewrap{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.nx-lv-gauge{inline-size:130px;block-size:auto}
.nx-lv-g-track{fill:none;stroke:var(--line);stroke-width:8;stroke-linecap:round}
.nx-lv-g-val{fill:none;stroke:var(--primary);stroke-width:8;stroke-linecap:round}
.nx-lv-g-val[data-tone=good]{stroke:var(--good)}.nx-lv-g-val[data-tone=warn]{stroke:var(--warn)}.nx-lv-g-val[data-tone=bad]{stroke:var(--bad)}
.nx-lv-g-needle,.nx-lv-g-pin{fill:var(--ink)}
.nx-lv-counts{list-style:none;margin:0;padding:0;display:flex;gap:12px;font-size:12.5px;color:var(--muted)}
.nx-lv-counts b{color:var(--ink);margin-inline-start:4px}
.nx-lv-feed{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.nx-lv-feed li{border:1px solid var(--line);border-inline-start:4px solid var(--line-2);border-radius:var(--r-s);padding:8px 10px;display:grid;gap:2px;opacity:.65;transition:opacity .25s ease,border-color .25s ease}
.nx-lv-feed li.is-on{opacity:1;border-color:var(--primary)}
.nx-lv-feed li.k-critical{border-inline-start-color:var(--bad)}.nx-lv-feed li.k-high{border-inline-start-color:var(--warn)}.nx-lv-feed li.k-task{border-inline-start-color:var(--primary)}
.nx-lv-feed li.is-unread b::after{content:" •";color:var(--primary)}
.nx-lv-feed small{font-size:12px;color:var(--muted)}
.nx-lv-table{display:none;overflow-x:auto}
.nx-lv.is-tables .nx-lv-table{display:block}
.nx-lv-table table{font-size:12.5px}
@media (max-width:1200px){.nx-lv-card.w-3,.nx-lv-card.w-4,.nx-lv-card.w-5,.nx-kl-livewrap.w-3,.nx-kl-livewrap.w-4,.nx-kl-livewrap.w-5,.nx-lv-grid.is-board>.nx-kl-card{grid-column:span 6}.nx-lv-card.w-6,.nx-lv-card.w-7,.nx-kl-livewrap.w-6,.nx-kl-livewrap.w-7{grid-column:span 12}}
@media (max-width:760px){.nx-lv-card.w-3,.nx-lv-card.w-4,.nx-lv-card.w-5,.nx-lv-card.w-6,.nx-lv-card.w-7,.nx-kl-livewrap.w-3,.nx-kl-livewrap.w-4,.nx-kl-livewrap.w-5,.nx-kl-livewrap.w-6,.nx-kl-livewrap.w-7,.nx-lv-grid.is-board>.nx-kl-card{grid-column:span 12}.nx-lv-top h1{font-size:22px}.nx-lv-tiles{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){.nx-lv-card{animation:none}.nx-lv-feed li{transition:none}}
@media print{.nx-lv-acts,.nx-lv-hint,.nx-lv-pin,.nx-lv-legend button,.nx-kl-btools{display:none!important}.nx-lv-card{break-inside:avoid;box-shadow:none;animation:none}.nx-lv-table{display:block}}
/* G4-LIVE2 — «اللوحة الحية» in the mockup's own look (astra-deliveries/MOCKUP-CONTINUE-20261013/work/assets/liveboard.css, read as text and ported under
   .nx-lb; measured by Astra in NEWLOOK-SPECS-20261015 LiveBoard_AR.md): its own palette in a light and a dark look (the five-colour series in a fixed order —
   teal, pink, green, purple, gold), the soft glow of the page, the glass cards of radius 16 with their corner marks, the period switch with its gradient,
   the rising bars, the drawn rings and lines, the gradient gauge, the rounded bars in their tracks, the rotating feed and the tool tiles. Colours by class
   and data-s, never in the markup. The platform's other screens keep the interface's tokens. */
.nx-lb{--lb-radius:16px;--lb-gap:14px;--lb-pad:16px;--lb-ease:cubic-bezier(.2,.8,.2,1);--lb-spring:cubic-bezier(.3,1.3,.4,1);
 --lb-s1:#1096b0;--lb-s2:#d6417f;--lb-s3:#72a118;--lb-s4:#8572e6;--lb-s5:#bd8a10;--lb-good:#1fbf8f;--lb-bad:#ff5c7a;--lb-warn:#f2b63c;
 position:relative;display:block;color:var(--lb-ink);line-height:normal;border-radius:20px;padding:12px 16px 24px;transition:background .4s,color .4s;
 background:radial-gradient(900px 500px at 85% -10%,color-mix(in srgb,var(--lb-glow2) 28%,transparent),transparent 60%),radial-gradient(700px 420px at 5% 110%,color-mix(in srgb,var(--lb-glow) 16%,transparent),transparent 60%),linear-gradient(180deg,var(--lb-bg),var(--lb-bg2))}
.nx-lb[data-lb-theme=light]{color-scheme:light;--lb-bg:#eef2f8;--lb-bg2:#f7f9fc;--lb-card:#ffffffd9;--lb-card2:#f3f6fb;--lb-line:#0f1e3a14;--lb-line2:#0f1e3a24;--lb-ink:#0f1e3a;--lb-ink2:#43506a;--lb-ink3:#7a869e;--lb-grid:#0f1e3a0f;
 --lb-glow:#1096b0;--lb-glow2:#315bff;--lb-track:#0f1e3a10;--lb-shadow:#0f1e3a1f;--lb-s1:#1096b0;--lb-s2:#d6417f;--lb-s3:#72a118;--lb-s4:#8572e6;--lb-s5:#bd8a10;--lb-s1m:#1096b0;--lb-s2m:#d6417f;--lb-s3m:#72a118;--lb-s4m:#8572e6;--lb-s5m:#bd8a10;--lb-good:#0b8f66;--lb-bad:#c43a53;--lb-warn:#b57a05}
.nx-lb[data-lb-theme=dark]{color-scheme:dark;--lb-bg:#070e1c;--lb-bg2:#0b1527;--lb-card:#0e1a2ecc;--lb-card2:#122139;--lb-line:#ffffff14;--lb-line2:#ffffff26;--lb-ink:#eef3fb;--lb-ink2:#aab6cc;--lb-ink3:#6f7d97;--lb-grid:#ffffff10;
 --lb-glow:#20d5f5;--lb-glow2:#315bff;--lb-track:#ffffff12;--lb-shadow:#00000066;--lb-s1:#20d5f5;--lb-s2:#ff5fa2;--lb-s3:#c8f25a;--lb-s4:#a78bfa;--lb-s5:#fbbf24;--lb-s1m:#1096b0;--lb-s2m:#d6417f;--lb-s3m:#72a118;--lb-s4m:#8572e6;--lb-s5m:#bd8a10}
.nx-lb:fullscreen{overflow:auto;border-radius:0}
/* the head */
.nx-lb .lb-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:6px 4px 14px}
.nx-lb .lb-brand{display:flex;align-items:center;gap:12px;min-width:0}
.nx-lb .lb-brand h1{margin:0;font-size:20px;font-weight:800;letter-spacing:-.2px;line-height:1.35}
.nx-lb .lb-brand p{margin:2px 0 0;font-size:12.5px;color:var(--lb-ink2)}
.nx-lb .lb-live{display:inline-flex;align-items:center;gap:6px;color:var(--lb-good);font-weight:700}
.nx-lb .lb-live i{width:8px;height:8px;border-radius:50%;background:var(--lb-good);box-shadow:0 0 0 0 color-mix(in srgb,var(--lb-good) 60%,transparent);animation:lb-pulse 1.8s infinite}
.nx-lb.lb-paused .lb-live{color:var(--lb-warn)}.nx-lb.lb-paused .lb-live i{background:var(--lb-warn);animation:none}
@keyframes lb-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--lb-good) 60%,transparent)}70%{box-shadow:0 0 0 9px transparent}100%{box-shadow:0 0 0 0 transparent}}
.nx-lb .lb-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.nx-lb .lb-chip,.nx-lb .lb-periods button,.nx-lb .lb-company select,.nx-lb .lb-act{min-height:44px;border:1px solid var(--lb-line2);background:var(--lb-card);color:var(--lb-ink);border-radius:12px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-decoration:none;font-size:13.5px;transition:background .2s,border-color .2s,transform .2s var(--lb-spring);backdrop-filter:blur(8px)}
.nx-lb .lb-chip:hover,.nx-lb .lb-periods button:hover,.nx-lb .lb-act:hover{border-color:var(--lb-glow);transform:translateY(-1px)}
.nx-lb .lb-company{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--lb-ink2)}
.nx-lb .lb-company select{max-width:260px}
.nx-lb .lb-company select:disabled{cursor:default;opacity:.85}
.nx-lb .lb-periods{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--lb-line2);border-radius:14px;background:var(--lb-card)}
.nx-lb .lb-periods button{min-height:44px;border:0;background:transparent;border-radius:11px;padding:0 12px;color:var(--lb-ink2)}
.nx-lb .lb-periods button[aria-selected=true]{background:linear-gradient(135deg,var(--lb-glow2),var(--lb-glow));color:#fff;box-shadow:0 6px 18px color-mix(in srgb,var(--lb-glow2) 45%,transparent)}
.nx-lb .lb-ico{width:18px;height:18px;flex:none;display:inline-block}
/* the grid and the cards */
.nx-lb .lb-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--lb-gap)}
.nx-lb .lb-card{position:relative;grid-column:span 12;background:var(--lb-card);border:1px solid var(--lb-line);border-radius:var(--lb-radius);padding:var(--lb-pad);box-shadow:0 10px 30px var(--lb-shadow);backdrop-filter:blur(10px);overflow:hidden;opacity:0;transform:translateY(14px);animation:lb-rise .7s var(--lb-ease) forwards;min-width:0;font-size:16px}
.nx-lb .lb-card:nth-child(2){animation-delay:70ms}.nx-lb .lb-card:nth-child(3){animation-delay:140ms}.nx-lb .lb-card:nth-child(4){animation-delay:210ms}.nx-lb .lb-card:nth-child(5){animation-delay:280ms}.nx-lb .lb-card:nth-child(6){animation-delay:350ms}.nx-lb .lb-card:nth-child(7){animation-delay:420ms}.nx-lb .lb-card:nth-child(8){animation-delay:490ms}.nx-lb .lb-card:nth-child(9){animation-delay:560ms}.nx-lb .lb-card:nth-child(10){animation-delay:630ms}.nx-lb .lb-card:nth-child(11){animation-delay:700ms}
.nx-lb [data-s="0"]{--c:var(--lb-s1)}.nx-lb [data-s="1"]{--c:var(--lb-s2)}.nx-lb [data-s="2"]{--c:var(--lb-s3)}.nx-lb [data-s="3"]{--c:var(--lb-s4)}.nx-lb [data-s="4"]{--c:var(--lb-s5)}
.nx-lb .lb-card::before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,color-mix(in srgb,var(--lb-ink) 4%,transparent),transparent 45%);pointer-events:none}
.nx-lb .lb-card::after{content:"";position:absolute;inset:8px;border:1px solid var(--lb-line);border-radius:10px;pointer-events:none;-webkit-mask:linear-gradient(#000,#000) top left/14px 14px no-repeat,linear-gradient(#000,#000) top right/14px 14px no-repeat,linear-gradient(#000,#000) bottom left/14px 14px no-repeat,linear-gradient(#000,#000) bottom right/14px 14px no-repeat;mask:linear-gradient(#000,#000) top left/14px 14px no-repeat,linear-gradient(#000,#000) top right/14px 14px no-repeat,linear-gradient(#000,#000) bottom left/14px 14px no-repeat,linear-gradient(#000,#000) bottom right/14px 14px no-repeat;opacity:.9}
@keyframes lb-rise{to{opacity:1;transform:none}}
.nx-lb .lb-c12{grid-column:span 12}.nx-lb .lb-c8{grid-column:span 8}.nx-lb .lb-c7{grid-column:span 7}.nx-lb .lb-c6{grid-column:span 6}.nx-lb .lb-c5{grid-column:span 5}.nx-lb .lb-c4{grid-column:span 4}.nx-lb .lb-c3{grid-column:span 3}
.nx-lb .lb-head{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}
.nx-lb .lb-head h2{margin:0;font-size:14.5px;font-weight:800;line-height:20px}
.nx-lb .lb-head p{margin:2px 0 0;font-size:11.5px;color:var(--lb-ink3);line-height:15px}
.nx-lb .lb-head-side{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.nx-lb .lb-title{display:flex;align-items:center;gap:4px;min-width:0}
.nx-lb .lb-pin{inline-size:24px;block-size:24px;margin-block:-2px;flex:none;border:0;border-radius:8px;background:transparent;color:var(--lb-ink3);cursor:pointer;font-size:15px;line-height:1;padding:0;opacity:.6;transition:opacity .2s,background .2s}
.nx-lb .lb-pin:hover,.nx-lb .lb-pin:focus-visible{opacity:1;background:var(--lb-track);color:var(--lb-ink)}
.nx-lb .lb-pin[aria-pressed=true]{opacity:1;color:var(--lb-s5)}
.nx-lb .lb-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:11.5px;color:var(--lb-ink2);align-items:center}
.nx-lb .lb-legend>span{display:inline-flex;align-items:center;gap:6px}
.nx-lb .lb-legend button{all:unset;display:inline-flex;align-items:center;gap:6px;cursor:pointer;padding:0 6px;border-radius:8px;min-height:44px;margin-block:-10px}
.nx-lb .lb-legend button:hover{background:var(--lb-track)}
.nx-lb .lb-legend button:focus-visible{outline:3px solid var(--lb-glow);outline-offset:1px}
.nx-lb .lb-legend button[aria-pressed=false]{opacity:.4;text-decoration:line-through}
.nx-lb .lb-legend.lb-sum{margin:0 0 6px}
.nx-lb .lb-legend.lb-sum b{color:var(--lb-ink);font-weight:700}
.nx-lb .lb-sw{width:10px;height:10px;border-radius:3px;background:var(--c,var(--lb-s1));box-shadow:0 0 8px color-mix(in srgb,var(--c,var(--lb-s1)) 60%,transparent);flex:none;display:inline-block}
.nx-lb .lb-badge{font-size:10.5px;padding:3px 8px;border-radius:999px;border:1px solid var(--lb-line2);color:var(--lb-ink2);white-space:nowrap}
.nx-lb .lb-badge.good{color:var(--lb-good);border-color:color-mix(in srgb,var(--lb-good) 45%,transparent)}
.nx-lb .lb-badge.warn{color:var(--lb-warn);border-color:color-mix(in srgb,var(--lb-warn) 45%,transparent)}
.nx-lb .lb-badge.bad{color:var(--lb-bad);border-color:color-mix(in srgb,var(--lb-bad) 45%,transparent)}
/* the big figure */
.nx-lb .lb-hero{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:4px 0 6px}
.nx-lb .lb-hero b{font-size:40px;font-weight:800;letter-spacing:-1px;font-variant-numeric:tabular-nums;line-height:1}
.nx-lb .lb-hero small{font-size:12px;color:var(--lb-ink3)}
.nx-lb .lb-delta{font-size:12.5px;font-weight:700;display:inline-flex;align-items:center;gap:4px}
.nx-lb .lb-delta.up{color:var(--lb-good)}.nx-lb .lb-delta.down{color:var(--lb-bad)}.nx-lb .lb-delta.flat{color:var(--lb-ink2)}
.nx-lb .lb-num{font-variant-numeric:tabular-nums}
.nx-lb .lb-missing{position:relative;z-index:1;margin:6px 0;font-size:13px;color:var(--lb-warn);line-height:1.7}
.nx-lb .lb-note{position:relative;z-index:1;margin:8px 0 0;font-size:11.5px;color:var(--lb-ink3);line-height:1.6}
/* the drawings */
.nx-lb .lb-plot{position:relative;z-index:1;min-width:0}
.nx-lb .lb-svg{display:block;width:100%;height:auto;overflow:visible}
.nx-lb .lb-svg text{fill:var(--lb-ink2);font-size:11px}
.nx-lb .lb-svg .ax{stroke:var(--lb-grid);stroke-width:1}
.nx-lb .lb-svg .base{stroke:var(--lb-line2)}
.nx-lb .lb-bar{fill:var(--c,var(--lb-s1));transform-box:fill-box;transform-origin:center bottom;transform:scaleY(0);transition:transform .9s var(--lb-spring),opacity .3s}
.nx-lb .lb-on .lb-bar{transform:scaleY(1)}
.nx-lb .lb-bar.neg{transform-origin:center top}
.nx-lb .lb-bar[data-g="1"]{transition-delay:70ms}.nx-lb .lb-bar[data-g="2"]{transition-delay:140ms}.nx-lb .lb-bar[data-g="3"]{transition-delay:210ms}.nx-lb .lb-bar[data-g="4"]{transition-delay:280ms}
.nx-lb .lb-bar[data-s="1"]{transition-delay:40ms}.nx-lb .lb-bar[data-s="1"][data-g="1"]{transition-delay:110ms}.nx-lb .lb-bar[data-s="1"][data-g="2"]{transition-delay:180ms}.nx-lb .lb-bar[data-s="1"][data-g="3"]{transition-delay:250ms}.nx-lb .lb-bar[data-s="1"][data-g="4"]{transition-delay:320ms}
.nx-lb .lb-card.is-hide-s0 .lb-bar[data-s="0"],.nx-lb .lb-card.is-hide-s1 .lb-bar[data-s="1"]{opacity:.18}
.nx-lb .lb-bar.is-muted{fill:var(--lb-ink3)}
.nx-lb .lb-bar.is-hot{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--c) 70%,transparent))}
.nx-lb .lb-svg .lb-val{fill:var(--lb-ink);font-size:11px}
.nx-lb .lb-min{stroke:var(--lb-warn);stroke-dasharray:4 4;stroke-width:1}
.nx-lb .lb-svg .lb-min-t{fill:var(--lb-warn)}
.nx-lb .lb-hbar{fill:var(--c,var(--lb-s1));transform-box:fill-box;transform-origin:right center;transform:scaleX(0);transition:transform .9s var(--lb-spring);filter:drop-shadow(0 0 4px color-mix(in srgb,var(--c,var(--lb-s1)) 55%,transparent))}
.nx-lb .lb-hbar.neg{--c:var(--lb-bad)}
.nx-lb .lb-on .lb-hbar{transform:scaleX(1)}
.nx-lb .lb-row[data-i="1"] .lb-hbar{transition-delay:60ms}.nx-lb .lb-row[data-i="2"] .lb-hbar{transition-delay:120ms}.nx-lb .lb-row[data-i="3"] .lb-hbar{transition-delay:180ms}.nx-lb .lb-row[data-i="4"] .lb-hbar{transition-delay:240ms}.nx-lb .lb-row[data-i="5"] .lb-hbar{transition-delay:300ms}.nx-lb .lb-row[data-i="6"] .lb-hbar{transition-delay:360ms}.nx-lb .lb-row[data-i="7"] .lb-hbar{transition-delay:420ms}.nx-lb .lb-row[data-i="8"] .lb-hbar{transition-delay:480ms}
.nx-lb .lb-row.cmp .lb-hbar[data-s="1"]{filter:saturate(.8) brightness(.9)}
.nx-lb .lb-mini{display:block;width:100%;height:3px;margin-top:3px;border-radius:2px;background:var(--lb-track)}
.nx-lb .lb-line{fill:none;stroke:var(--c,var(--lb-s1));stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:0}
.nx-lb .lb-on .lb-line{opacity:1;animation:lb-dash 1.3s var(--lb-ease) .25s backwards}
@keyframes lb-dash{from{stroke-dashoffset:1}}
.nx-lb .lb-area{opacity:0;transition:opacity .8s .6s}
.nx-lb .lb-on .lb-area{opacity:1}
.nx-lb .lb-stop-a{stop-color:var(--c,var(--lb-s1));stop-opacity:.45}.nx-lb .lb-stop-b{stop-color:var(--c,var(--lb-s1));stop-opacity:0}
.nx-lb .lb-dot{fill:var(--c,var(--lb-s1));r:0;transition:r .4s var(--lb-spring) 1.2s;stroke:var(--lb-bg);stroke-width:2}
.nx-lb .lb-on .lb-dot{r:4.5}
.nx-lb .lb-ring-track{fill:none;stroke:var(--lb-track);stroke-width:16}
.nx-lb .lb-ring{fill:none;stroke:var(--c,var(--lb-s1));stroke-width:16;transition:opacity .3s,stroke-width .2s;opacity:0}
.nx-lb .lb-on .lb-ring{opacity:1;animation:lb-draw 1.1s var(--lb-ease) backwards}
.nx-lb .lb-ring[data-i="1"]{animation-delay:120ms}.nx-lb .lb-ring[data-i="2"]{animation-delay:240ms}.nx-lb .lb-ring[data-i="3"]{animation-delay:360ms}.nx-lb .lb-ring[data-i="4"]{animation-delay:480ms}
@keyframes lb-draw{from{stroke-dasharray:0 100}}
.nx-lb .lb-ring:hover{stroke-width:20}
.nx-lb .lb-svg .lb-donut-c{font-size:22px;font-weight:800;fill:var(--lb-ink)}
.nx-lb .lb-svg .lb-donut-s{font-size:10.5px;fill:var(--lb-ink3)}
.nx-lb .lb-donut-wrap{position:relative;z-index:1;display:grid;grid-template-columns:140px 1fr;gap:12px;align-items:center}
.nx-lb .lb-donut-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:12px;min-width:0}
.nx-lb .lb-donut-list li{display:grid;grid-template-columns:14px 1fr auto;gap:8px;align-items:center;padding:4px 6px;border-radius:8px;min-height:28px}
.nx-lb .lb-donut-list li:hover{background:var(--lb-track)}
.nx-lb .lb-donut-list b{font-weight:700;color:var(--lb-ink)}
.nx-lb .lb-donut-list span:not(.lb-sw){color:var(--lb-ink2);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25}
.nx-lb .lb-gauge-wrap{position:relative;z-index:1;display:flex;flex-direction:column;gap:10px}
.nx-lb .lb-gauge-wrap .lb-plot{max-width:230px;margin:0 auto;width:100%}
.nx-lb .lb-gs0{stop-color:var(--lb-glow2)}.nx-lb .lb-gs1{stop-color:var(--lb-glow)}
.nx-lb .lb-gauge-arc{fill:none;stroke:var(--lb-track);stroke-width:12;stroke-linecap:round}
.nx-lb .lb-gauge-val{fill:none;stroke-width:12;stroke-linecap:round;filter:drop-shadow(0 0 8px color-mix(in srgb,var(--lb-glow) 60%,transparent));opacity:0}
.nx-lb .lb-on .lb-gauge-val{opacity:1;animation:lb-draw 1.4s var(--lb-ease) .2s backwards}
.nx-lb .lb-tick{stroke:var(--lb-ink3);stroke-width:1.5}
.nx-lb .lb-needle{transform-box:view-box;transform-origin:100px 100px;fill:var(--lb-ink)}
.nx-lb .lb-on .lb-needle{animation:lb-needle 1.4s var(--lb-spring) .2s backwards}
@keyframes lb-needle{from{transform:rotate(-90deg)}}
.nx-lb .lb-pivot{fill:var(--lb-ink)}
.nx-lb .lb-svg .lb-gauge-c{font-size:26px;font-weight:800;fill:var(--lb-ink)}
.nx-lb .lb-svg .lb-gauge-s{font-size:10.5px;fill:var(--lb-ink3)}
.nx-lb .lb-side{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 10px;border-top:1px solid var(--lb-line);padding-top:10px}
.nx-lb .lb-side div{font-size:10.5px;color:var(--lb-ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nx-lb .lb-side b{display:block;font-size:15px;color:var(--lb-ink);font-variant-numeric:tabular-nums}
.nx-lb .lb-side small{font-size:10px;color:var(--lb-ink3);font-weight:400}
/* the key ratios: tiles with a small line */
.nx-lb .lb-tiles{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nx-lb .lb-tile{background:var(--lb-card2);border:1px solid var(--lb-line);border-radius:12px;padding:10px 12px 6px;min-width:0;position:relative;overflow:hidden}
.nx-lb .lb-tile .t{font-size:11px;color:var(--lb-ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nx-lb .lb-tile b{display:block;font-size:24px;font-weight:800;letter-spacing:-.5px;margin:2px 0;font-variant-numeric:tabular-nums}
.nx-lb .lb-tile .lb-delta{font-size:11.5px}
.nx-lb .lb-tile svg{margin-top:4px}
/* the bars across */
.nx-lb .lb-rows{display:flex;flex-direction:column;gap:9px}
.nx-lb .lb-row{display:grid;grid-template-columns:118px 1fr 64px;gap:10px;align-items:center;font-size:12px}
.nx-lb .lb-row .n{color:var(--lb-ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nx-lb .lb-row .v{text-align:left;font-weight:700;font-variant-numeric:tabular-nums;direction:ltr}
.nx-lb .lb-track{display:block;height:16px;border-radius:6px;background:var(--lb-track);overflow:hidden;position:relative}
.nx-lb .lb-track svg{display:block;width:100%;height:100%}
.nx-lb .lb-row.cmp .lb-track{height:18px}
/* the feed and the tool tiles */
.nx-lb .lb-feed{position:relative;z-index:1;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.nx-lb .lb-feed-item{display:none;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;background:var(--lb-card2);border:1px solid var(--lb-line);border-radius:12px;padding:10px 12px;min-height:56px;animation:lb-in .5s var(--lb-ease)}
.nx-lb .lb-feed-item.is-on{display:grid}
@keyframes lb-in{from{opacity:0;transform:translateY(8px)}}
.nx-lb .lb-feed-item .s{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-weight:800;font-size:11px;color:#fff;background:var(--lb-ink3);text-align:center;line-height:1.1}
.nx-lb .lb-feed-item .s[data-k=crit]{background:var(--lb-bad)}.nx-lb .lb-feed-item .s[data-k=high]{background:var(--lb-warn);color:#1a1200}.nx-lb .lb-feed-item .s[data-k=mid]{background:var(--lb-s4m)}.nx-lb .lb-feed-item .s[data-k=task]{background:var(--lb-s1m)}
.nx-lb .lb-feed-item>div{min-width:0}
.nx-lb .lb-feed-item .t{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nx-lb .lb-feed-item .m{font-size:11px;color:var(--lb-ink3);margin-top:2px}
.nx-lb .lb-feed-item .k{font-size:11px;color:var(--lb-ink2);white-space:nowrap}
.nx-lb .lb-feed-dots{position:relative;z-index:1;display:flex;gap:5px;justify-content:center;margin-top:10px}
.nx-lb .lb-feed-dots i{width:6px;height:6px;border-radius:50%;background:var(--lb-track);transition:background .3s,transform .3s}
.nx-lb .lb-feed-dots i.on{background:var(--lb-glow);transform:scale(1.3)}
.nx-lb .lb-acts{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}
.nx-lb .lb-act{flex-direction:column;gap:6px;padding:8px 4px;min-height:64px;font-size:11.5px;border-radius:14px}
.nx-lb .lb-act .lb-ico{width:20px;height:20px;color:var(--lb-glow)}
.nx-lb .lb-act[aria-pressed=true]{border-color:var(--lb-glow);box-shadow:0 0 0 1px var(--lb-glow) inset}
.nx-lb .lb-chip[aria-pressed=true]{border-color:var(--lb-glow)}
/* the reading tables (instead of the drawing) */
.nx-lb .lb-table{position:relative;z-index:1;display:none;width:100%;border-collapse:collapse;font-size:12px;margin-top:8px}
.nx-lb .lb-table th,.nx-lb .lb-table td{padding:6px 8px;border-bottom:1px solid var(--lb-line);text-align:start;font-weight:400}
.nx-lb .lb-table thead th{color:var(--lb-ink3);font-weight:700}
.nx-lb .lb-table td.n{font-variant-numeric:tabular-nums;direction:ltr;text-align:left}
.nx-lb.lb-tables .lb-table{display:table}
.nx-lb.lb-tables .lb-plot{display:none}
.nx-lb .lb-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:11.5px;color:var(--lb-ink3);padding:16px 4px 0}
/* the widths on smaller screens, less motion, print */
@media (max-width:1200px){.nx-lb .lb-c6,.nx-lb .lb-c5,.nx-lb .lb-c7,.nx-lb .lb-c8{grid-column:span 12}.nx-lb .lb-c4,.nx-lb .lb-c3{grid-column:span 6}}
@media (max-width:760px){.nx-lb{padding:10px 8px 18px;border-radius:14px}.nx-lb .lb-card{grid-column:span 12!important}.nx-lb .lb-feed-item{grid-template-columns:auto 1fr}.nx-lb .lb-feed-item .k{display:none}.nx-lb .lb-feed-item .t{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}.nx-lb .lb-tiles{grid-template-columns:1fr}.nx-lb .lb-donut-wrap{grid-template-columns:130px 1fr}.nx-lb .lb-side{border:0;padding:0}.nx-lb .lb-acts{grid-template-columns:repeat(3,1fr)}.nx-lb .lb-hero b{font-size:32px}.nx-lb .lb-row{grid-template-columns:92px 1fr 58px}.nx-lb .lb-company select{max-width:180px}.nx-lb .lb-brand h1{font-size:17px}}
@media (prefers-reduced-motion:reduce){.nx-lb .lb-card,.nx-lb .lb-bar,.nx-lb .lb-hbar,.nx-lb .lb-line,.nx-lb .lb-area,.nx-lb .lb-dot,.nx-lb .lb-ring,.nx-lb .lb-gauge-val,.nx-lb .lb-needle,.nx-lb .lb-feed-item{animation:none!important;transition:none!important;opacity:1;transform:none}.nx-lb .lb-bar,.nx-lb .lb-hbar{transform:none!important}.nx-lb .lb-dot{r:4.5}.nx-lb .lb-live i{animation:none}}
html[data-motion="off"] .nx-lb .lb-card,html[data-motion="off"] .nx-lb .lb-line,html[data-motion="off"] .nx-lb .lb-area,html[data-motion="off"] .nx-lb .lb-ring,html[data-motion="off"] .nx-lb .lb-gauge-val{opacity:1;transform:none}
html[data-motion="off"] .nx-lb .lb-bar,html[data-motion="off"] .nx-lb .lb-hbar{transform:none}html[data-motion="off"] .nx-lb .lb-dot{r:4.5}
@media print{.nx-lb{background:#fff;padding:0}.nx-lb .lb-card{box-shadow:none;animation:none;opacity:1;transform:none;break-inside:avoid;margin-bottom:10px;backdrop-filter:none}.nx-lb .lb-controls,.nx-lb .lb-acts,.nx-lb .lb-pin,.nx-lb .lb-feed-dots{display:none!important}.nx-lb .lb-grid{display:block}.nx-lb .lb-bar,.nx-lb .lb-hbar{transform:none}.nx-lb .lb-line,.nx-lb .lb-area,.nx-lb .lb-ring,.nx-lb .lb-gauge-val{opacity:1;animation:none}.nx-lb .lb-feed-item{display:grid}}
/* G4-HOME2 — «البداية» in the mockup's own look (Fable's Home; Astra's NEWLOOK-SPECS Home_AR.md at 1366: the line of the month, the greeting 24/700 with its
   actions of 44 px, «جهّز شركتك الأولى» (a card of radius 12 and padding 16/20, the progress bar, five step tiles of 64 px — done in the soft teal), then three
   columns of 16 px: the health card (the donut of the five families, their buttons of 44 px, the family's words) and the four cards two by two (padding
   16/18, the change badge, the figure, the comparison, the two months' bars)). The families keep the mockup's colours: profitability blue, liquidity teal,
   working capital orange, leverage violet, cash flows amber. Colours by class, geometry in attributes; the tasks and the areas fold under the last line. */
.nx-home{display:flex;flex-direction:column;gap:20px;--fam-profitability:#0869c9;--fam-liquidity:#087b71;--fam-working_capital:#c2410c;--fam-leverage:#6d28d9;--fam-cash_flows:#b45309;--home-done:#f3fbfa;--home-done-line:#cfe9e5;--home-step:#8a99ad}
.nx-home [data-f="profitability"]{--fc:var(--fam-profitability)}.nx-home [data-f="liquidity"]{--fc:var(--fam-liquidity)}.nx-home [data-f="working_capital"]{--fc:var(--fam-working_capital)}.nx-home [data-f="leverage"]{--fc:var(--fam-leverage)}.nx-home [data-f="cash_flows"]{--fc:var(--fam-cash_flows)}
.nx-home-ctx{margin:0;font-size:12.5px;color:var(--muted);line-height:1.7}
.nx-home-ctx b{color:var(--ink);font-weight:700}
.nx-home-head{align-items:center}
.nx-home-head h1{font-size:24px;font-weight:700;line-height:1.35;margin:0}
.nx-home-head p{margin:4px 0 0;font-size:14px;color:var(--muted)}
.nx-home-acts{display:flex;gap:8px;flex-wrap:wrap}
.nx-home-acts .nx-btn{min-height:44px;border-radius:8px;font-size:13.5px;font-weight:600;padding:8px 14px}
.nx-home .nx-link-btn{border:0;background:transparent;color:var(--primary-2);font:inherit;font-size:13px;cursor:pointer;padding:6px 8px;border-radius:8px;min-height:32px}
.nx-home .nx-link-btn:hover{background:var(--primary-soft)}
.nx-home-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.nx-home-card-head h2{margin:0;font-size:16px;font-weight:700}
/* «جهّز شركتك الأولى» */
.nx-home-setup{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 20px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow)}
.nx-home-setup-t{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.nx-home-progress{display:block;inline-size:100%;block-size:6px}
.nx-home-progress .t{fill:var(--th)}
.nx-home-progress .v{fill:var(--good)}
.nx-home-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.nx-home-step{display:flex;align-items:center;gap:10px;min-height:64px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);text-decoration:none;transition:border-color .2s,background .2s}
.nx-home-step:hover{border-color:var(--primary)}
.nx-home-step.is-done{background:var(--home-done);border-color:var(--home-done-line)}
.nx-home-step .n{flex:none;inline-size:24px;block-size:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff;background:var(--home-step)}
.nx-home-step.is-done .n{background:var(--good)}
.nx-home-step .b{display:flex;flex-direction:column;gap:2px;min-width:0}
.nx-home-step b{font-size:13.5px;font-weight:700}
.nx-home-step small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* the health and the four cards */
.nx-home-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.nx-home-health{grid-column:span 1;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow);min-width:0}
.nx-home-cards{grid-column:span 2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0;align-content:start}
.nx-home-health-body{display:flex;align-items:center;gap:18px}
.nx-home-donut{flex:none;inline-size:140px;block-size:140px}
.nx-home-donut .trk{fill:none;stroke:var(--th);stroke-width:18}
.nx-home-donut .seg{fill:none;stroke:var(--fc);stroke-width:18}
.nx-home-donut.anim .seg{animation:nx-home-draw .65s cubic-bezier(.2,.7,.2,1) both}
@keyframes nx-home-draw{from{stroke-dasharray:0 400}}
.nx-home-donut .c{font-size:34px;font-weight:800;fill:var(--ink)}
.nx-home-donut .s{font-size:11px;fill:var(--muted)}
.nx-home-fams{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}
.nx-home-fam{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font:inherit;font-size:13px;color:var(--ink);cursor:pointer;text-align:start}
.nx-home-fam .sw{flex:none;inline-size:10px;block-size:10px;border-radius:3px;background:var(--fc)}
.nx-home-fam .n{flex:1;min-width:0;line-height:1.25}
.nx-home-fam b{font-variant-numeric:tabular-nums}
.nx-home-fam.is-on{border-color:var(--fc);background:#f7f9fc;box-shadow:0 0 0 1px var(--fc) inset}
.nx-home-fam-text{margin:0;padding-top:12px;border-top:1px solid var(--line);font-size:13px;line-height:1.75;color:var(--ink)}
.nx-home-fam-text b{color:var(--fc)}
.nx-home-how{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--th)}
.nx-home-how h3{margin:0 0 6px;font-size:14px}
.nx-home-how ul{margin:0 0 6px;padding-inline-start:18px;display:grid;gap:6px;font-size:13px;line-height:1.6}
.nx-home-how li::marker{color:var(--fc)}
.nx-home-missing{margin:4px 0;font-size:13px;color:var(--warn);line-height:1.7}
.nx-home-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow);min-width:0}
.nx-home-card .t{font-size:13px;color:var(--muted)}
.nx-home-delta{font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}
.nx-home-delta.good{color:#065f46;background:#e6f7f5}
.nx-home-delta.bad{color:#9a3412;background:#fdece4}
.nx-home-fig{display:flex;align-items:baseline;gap:6px}
.nx-home-fig small{font-size:14px;color:var(--muted)}
.nx-home-val{font-size:30px;font-weight:800;letter-spacing:-.5px;line-height:1.1;font-variant-numeric:tabular-nums}
.nx-home-x{all:unset;display:inline-flex;align-items:baseline;gap:6px;cursor:pointer;border-radius:8px;padding:0 2px}
.nx-home-x:hover .nx-home-val{color:var(--primary-2)}
.nx-home-x:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.nx-home-cmp{margin:0;font-size:12.5px;color:var(--muted)}
.nx-home-bars{display:flex;align-items:flex-end;gap:8px;margin-top:auto;align-self:flex-end}
.nx-home-bars svg{inline-size:54px;block-size:32px;display:block}
.nx-home-bars .p{fill:#dde5ef}
.nx-home-bars .v{fill:var(--good)}
.nx-home-bars .v.bad{fill:#c2410c}
.nx-home-bars small{font-size:11px;color:var(--muted)}
.nx-home-note{margin:0;font-size:12px;color:var(--muted)}
.nx-home-more{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:14px 18px}
.nx-home-more>summary{cursor:pointer;font-weight:700;font-size:15px;min-height:32px;display:flex;align-items:center}
.nx-home-more[open]>summary{margin-bottom:12px}
.nx-home-more .nx-panel,.nx-home-more .nx-grid{margin-top:12px}
@media (max-width:1100px){.nx-home-grid{grid-template-columns:minmax(0,1fr)}.nx-home-health,.nx-home-cards{grid-column:auto}.nx-home-steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.nx-home-head h1{font-size:21px}.nx-home-steps{grid-template-columns:minmax(0,1fr)}.nx-home-cards{grid-template-columns:minmax(0,1fr)}.nx-home-health-body{flex-direction:column;align-items:stretch}.nx-home-donut{align-self:center}.nx-home-acts .nx-btn{flex:1 1 40%}.nx-home-setup{padding:14px}}
@media (prefers-reduced-motion:reduce){.nx-home-donut.anim .seg{animation:none}}
@media print{.nx-home-acts,.nx-home-setup,.nx-home-more,.nx-link-btn{display:none!important}.nx-home-card,.nx-home-health{box-shadow:none;break-inside:avoid}}
/* G4-KPILOOK — «مكتبة المؤشرات والويدجت» closer to its mockup (astra-deliveries/MOCKUP-CONTINUE-20261013/work/assets/kpilib.css read as text; Astra's
   KpiLibrary spec): the line under the title, the month tabs with the mockup's gradient, the number in its group's colour (السيولة teal, الربحية green, الكفاءة
   gold, الملاءة pink, السوق violet, التدفقات blue, المختصة slate), the platform words in their colours, the change as plain coloured words, the gauge and the
   two months on a soft panel with the line between them (the month in the gauge's colour: blue inside the usual range, gold outside, red below), the formula
   as chips, «ليه الطريقة دي؟» in a soft box, the live cards of «لوحتي» in the live board's palette, and the dark look («غامق») by the screen's own tokens. */
.nx-kl-sub{margin:2px 0 0;font-size:12.5px;color:var(--muted)}
.nx-kl-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.nx-kl-periods{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--line-2);border-radius:14px;background:var(--surface)}
.nx-kl-periods:empty{display:none}
.nx-kl-periods button{min-height:40px;border:0;background:transparent;border-radius:11px;padding:0 12px;font:inherit;font-size:13.5px;color:var(--muted);cursor:pointer}
.nx-kl-periods button[aria-selected=true]{background:linear-gradient(135deg,var(--primary),#20d5f5);color:#fff;font-weight:700}
.nx-kl-periods button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.nx-kl .nx-kl-no{inline-size:34px;min-inline-size:34px;block-size:34px;border-radius:10px;color:#fff;background:#315bff;font-size:12px}
.nx-kl .nx-kl-no[data-cat=liq]{background:#1096b0;color:#fff}.nx-kl .nx-kl-no[data-cat=prof]{background:#0b8f66;color:#fff}.nx-kl .nx-kl-no[data-cat=eff]{background:#bd8a10;color:#fff}.nx-kl .nx-kl-no[data-cat=lev]{background:#d6417f;color:#fff}.nx-kl .nx-kl-no[data-cat=mkt]{background:#8572e6;color:#fff}.nx-kl .nx-kl-no[data-cat=cf]{background:#315bff;color:#fff}.nx-kl .nx-kl-no[data-cat=str]{background:#5b6b86;color:#fff}
.nx-kl .nx-kl-tag[data-s=needs]{color:#c43a53;border-color:currentColor}
.nx-kl .nx-kl-tag[data-s=listed],.nx-kl .nx-kl-tag[data-s=bank]{color:#6d4fe0;border-color:currentColor;border-style:solid}
.nx-kl .nx-kl-delta{background:none;padding:0;font-size:12px;font-weight:700;color:var(--muted)}
.nx-kl .nx-kl-delta.is-up{color:var(--good)}.nx-kl .nx-kl-delta.is-down{color:var(--bad)}.nx-kl .nx-kl-delta.is-flat{font-weight:500}
.nx-kl .nx-kl-card[data-tone] .nx-kl-delta{background:none}
.nx-kl .nx-kl-viz{background:var(--th);border-radius:12px;padding:8px 12px}
.nx-kl .nx-kl-g-val[data-tone=good]{stroke:var(--primary)}.nx-kl .nx-kl-g-val[data-tone=warn]{stroke:#bd8a10}.nx-kl .nx-kl-g-val[data-tone=bad]{stroke:#c43a53}
.nx-kl .nx-kl-b{fill:#cdd6e3}
.nx-kl .nx-kl-viz .nx-kl-b.is-now{fill:var(--primary)}.nx-kl .nx-kl-viz[data-tone=warn] .nx-kl-b.is-now{fill:#bd8a10}.nx-kl .nx-kl-viz[data-tone=bad] .nx-kl-b.is-now{fill:#c43a53}
.nx-kl .nx-kl-trend{stroke:#7a869e;stroke-width:1.4;stroke-linecap:round}
.nx-kl .nx-kl-fx{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:12px}
.nx-kl .nx-kl-fx .tk{padding:3px 8px;border-radius:8px;background:var(--primary-soft);color:var(--ink);font-size:11.5px;white-space:nowrap}
.nx-kl .nx-kl-fx .op{color:var(--muted);font-weight:700;padding:0 2px}
.nx-kl .nx-kl-why{background:var(--th);border-radius:10px;padding:8px 10px}
.nx-kl .nx-kl-why summary{font-weight:700;color:var(--primary-2);min-height:28px;display:flex;align-items:center;list-style:none}
.nx-kl .nx-kl-why summary::-webkit-details-marker{display:none}
/* the live cards of «لوحتي» in the live board's palette (no page glow of their own) */
.nx-lb.nx-lb-in{background:none;padding:0;border-radius:0;min-width:0;display:grid}
.nx-lb.nx-lb-in>.lb-on{display:grid;min-width:0}
.nx-lb.nx-lb-in .lb-card{grid-column:auto}
.nx-lb.nx-lb-in .lb-head-side .nx-icon-btn{min-width:32px;min-height:32px}
.nx-lb.nx-lb-in .lb-plot .lb-svg{max-height:280px}
/* «غامق»: the screen's own tokens (the mockup's dark palette) */
.nx-kl[data-kl-theme=dark]{color-scheme:dark;--surface:#111d33;--ink:#eef3fb;--muted:#aab6cc;--line:#ffffff14;--line-2:#ffffff28;--th:#16243d;--hover:#1b2c4d;--primary-soft:#1b2c4d;--primary-2:#8fa6ff;--good:#2bd39b;--good-soft:#0f3a30;--bad:#ff6b85;--bad-soft:#3a1622;--warn:#f2b63c;--warn-soft:#3a2c0e;--shadow:0 6px 18px #00000066;color:var(--ink);background:#0a1324;border-radius:20px;padding:16px}
.nx-kl[data-kl-theme=dark] .nx-chip{background:var(--surface);color:var(--ink);border-color:var(--line-2)}
.nx-kl[data-kl-theme=dark] .nx-kl-b{fill:#3a4a66}
.nx-kl[data-kl-theme=dark] .nx-kl-trend{stroke:#aab6cc}
.nx-kl[data-kl-theme=dark] .nx-kl-cats button[aria-pressed=true]{color:#fff}
@media print{.nx-kl-periods,[data-nx-kl-theme]{display:none!important}.nx-kl[data-kl-theme=dark]{--surface:#fff;--ink:#102641;--muted:#52647b;--line:#dce4ed;--line-2:#a9b7ca;--th:#f0f4fa;--primary-soft:#eef2ff;background:#fff;color:#102641;padding:0}}
/* G4-CHARTLOOK — «الرسوم الحية» in its mockup's own look (Fable's chartstudio.css: «نفس روح اللوحة الحية» — the same palette light / dark as the live board;
   Astra's ChartStudio spec): the studio is a live board section (.nx-lb) — its glow, the glass cards of radius 16, the head with the live mark, the month tabs
   and «غامق», the tabs and type chips in the board's colours; the ready charts and the person's own drawn in the five-colour series (teal, pink, green,
   violet, gold; the month before teal beside the month pink, as the live board), their slices, rings, lines, heat and legends; the builder keeps its dialog. */
.nx-lb.nx-ch{display:grid;gap:14px}
.nx-lb.nx-ch .nx-lv-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.nx-lb.nx-ch .nx-lv-top h1{margin:2px 0 4px;font-size:20px;font-weight:800;color:var(--lb-ink)}
.nx-lb .nx-eyebrow{color:var(--lb-glow)}
.nx-lb .nx-ch-sub{margin:0;font-size:12.5px;color:var(--lb-ink2)}
.nx-lb .nx-muted,.nx-lb .nx-lv-hint{color:var(--lb-ink3)}
.nx-lb.nx-ch .nx-lv-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.nx-lb .nx-btn{background:var(--lb-card);border-color:var(--lb-line2);color:var(--lb-ink);border-radius:12px;min-height:44px;backdrop-filter:blur(8px)}
.nx-lb .nx-btn:hover{border-color:var(--lb-glow);background:var(--lb-card)}
.nx-lb .nx-btn.primary{background:linear-gradient(135deg,var(--lb-glow2),var(--lb-glow));border-color:transparent;color:#fff;font-weight:700}
.nx-lb .nx-btn.danger{color:var(--lb-bad)}
.nx-lb .nx-kl-tabs{border-block-end-color:var(--lb-line)}
.nx-lb .nx-kl-tabs [role=tab]{color:var(--lb-ink2)}
.nx-lb .nx-kl-tabs [role=tab][aria-selected=true]{background:var(--lb-card);border-color:var(--lb-line2);color:var(--lb-ink);box-shadow:0 2px 8px var(--lb-shadow)}
.nx-lb .nx-kl-cats button{background:var(--lb-card);border-color:var(--lb-line2);color:var(--lb-ink2)}
.nx-lb .nx-kl-cats button[aria-pressed=true]{background:linear-gradient(135deg,var(--lb-glow2),var(--lb-glow));border-color:transparent;color:#fff}
.nx-lb .nx-chip{background:var(--lb-card2);color:var(--lb-ink2);border-color:var(--lb-line2)}
.nx-lb .nx-ch-h{color:var(--lb-ink2)}
.nx-lb .nx-empty{background:var(--lb-card);border-color:var(--lb-line2);color:var(--lb-ink2)}
/* the ready charts and the person's own: glass cards */
.nx-lb .nx-lv-card{background:var(--lb-card);border:1px solid var(--lb-line);border-radius:var(--lb-radius);box-shadow:0 10px 30px var(--lb-shadow);backdrop-filter:blur(10px);color:var(--lb-ink);padding:var(--lb-pad)}
.nx-lb .nx-lv-head h3{font-size:14.5px;font-weight:800;color:var(--lb-ink)}
.nx-lb .nx-lv-head p{color:var(--lb-ink3);font-size:11.5px}
.nx-lb .nx-lv-badge{border-color:var(--lb-line2);color:var(--lb-ink2)}
.nx-lb .nx-lv-pin{color:var(--lb-ink3);border-color:var(--lb-line2);background:transparent}
.nx-lb .nx-lv-pin[aria-pressed=true]{color:var(--lb-s5);border-color:color-mix(in srgb,var(--lb-s5) 55%,transparent)}
.nx-lb .nx-lv-legend button{background:transparent;border-color:var(--lb-line2);color:var(--lb-ink2)}
.nx-lb .nx-lv-num{color:var(--lb-ink)}
.nx-lb .nx-lv-keys,.nx-lb .nx-lv-gaugewrap small,.nx-lb .nx-ch-kpi small{color:var(--lb-ink2)}
.nx-lb .nx-ch-tablewrap table,.nx-lb .nx-ch-tablewrap th,.nx-lb .nx-ch-tablewrap td{color:var(--lb-ink);border-color:var(--lb-line)}
.nx-lb .nx-ch-tablewrap thead th{background:var(--lb-card2);color:var(--lb-ink3)}
.nx-lb .nx-ch-gaps{color:var(--lb-warn)}
/* the five-colour series of the live board */
.nx-lb .nx-ch-axis{stroke:var(--lb-grid)}
.nx-lb .nx-ch-lbl{fill:var(--lb-ink2)}
.nx-lb .nx-ch-val{fill:var(--lb-ink)}
.nx-lb .nx-ch-bar,.nx-lb .nx-ch-bar.s0{fill:var(--lb-s1)}.nx-lb .nx-ch-bar.s1{fill:var(--lb-s2)}.nx-lb .nx-ch-bar.s2{fill:var(--lb-s3)}.nx-lb .nx-ch-bar.s3{fill:var(--lb-s4)}.nx-lb .nx-ch-bar.s4{fill:var(--lb-s5)}
.nx-lb .nx-ch-bar.is-prev{fill:var(--lb-s1)}
.nx-lb .nx-ch-svg:has(.is-prev) .nx-ch-bar.s0{fill:var(--lb-s2)}
.nx-lb .nx-ch-wf .nx-ch-bar.is-neg{fill:var(--lb-bad)}
.nx-lb .nx-ch-wf .nx-ch-bar.s1{fill:var(--lb-s1)}.nx-lb .nx-ch-wf .nx-ch-bar.s2{fill:var(--lb-good)}
.nx-lb .nx-ch-line,.nx-lb .nx-ch-line.s0{stroke:var(--lb-s1)}.nx-lb .nx-ch-line.s1{stroke:var(--lb-s2)}.nx-lb .nx-ch-line.s2{stroke:var(--lb-s3)}.nx-lb .nx-ch-line.s3{stroke:var(--lb-s4)}.nx-lb .nx-ch-line.s4{stroke:var(--lb-s5)}.nx-lb .nx-ch-line.is-prev{stroke:var(--lb-s1)}
.nx-lb .nx-ch-svg:has(.is-prev) .nx-ch-line.s0{stroke:var(--lb-s2)}
.nx-lb .nx-ch-area,.nx-lb .nx-ch-area.s0{fill:var(--lb-s1)}.nx-lb .nx-ch-area.s1{fill:var(--lb-s2)}.nx-lb .nx-ch-area.s2{fill:var(--lb-s3)}.nx-lb .nx-ch-area.s3{fill:var(--lb-s4)}.nx-lb .nx-ch-area.s4{fill:var(--lb-s5)}
.nx-lb .nx-ch-dot{fill:var(--lb-bg)}.nx-lb .nx-ch-dot,.nx-lb .nx-ch-dot.s0{stroke:var(--lb-s1)}.nx-lb .nx-ch-dot.s1{stroke:var(--lb-s2)}.nx-lb .nx-ch-dot.s2{stroke:var(--lb-s3)}.nx-lb .nx-ch-dot.s3{stroke:var(--lb-s4)}.nx-lb .nx-ch-dot.s4{stroke:var(--lb-s5)}
.nx-lb .nx-ch-slice{fill:var(--lb-ink3);stroke:var(--lb-card)}.nx-lb .nx-ch-slice.p0{fill:var(--lb-s1)}.nx-lb .nx-ch-slice.p1{fill:var(--lb-s2)}.nx-lb .nx-ch-slice.p2{fill:var(--lb-s3)}.nx-lb .nx-ch-slice.p3{fill:var(--lb-s4)}.nx-lb .nx-ch-slice.p4{fill:var(--lb-s5)}
.nx-lb .nx-ch-track,.nx-lb .nx-ch-track-r{stroke:var(--lb-track);fill:var(--lb-track)}.nx-lb .nx-ch-track{fill:none}
.nx-lb .nx-ch-ring-val{stroke:var(--lb-s1)}
.nx-lb .nx-ch-center{fill:var(--lb-ink)}
.nx-lb .nx-ch-target{stroke:var(--lb-ink)}
.nx-lb .nx-ch-cell{fill:var(--lb-s1)}.nx-lb .nx-ch-cell.ln{fill:var(--lb-track);stroke:var(--lb-line2)}
.nx-lb .nx-ch-card .nx-lv-sw.s0,.nx-lb .nx-lv-sw.p0,.nx-lb .nx-ch-card .nx-lv-sw.is-prev{background:var(--lb-s1)}.nx-lb .nx-ch-card .nx-lv-sw.s1,.nx-lb .nx-lv-sw.p1{background:var(--lb-s2)}.nx-lb .nx-ch-card .nx-lv-sw.s2,.nx-lb .nx-lv-sw.p2{background:var(--lb-s3)}.nx-lb .nx-ch-card .nx-lv-sw.s3,.nx-lb .nx-lv-sw.p3{background:var(--lb-s4)}.nx-lb .nx-ch-card .nx-lv-sw.s4,.nx-lb .nx-lv-sw.p4{background:var(--lb-s5)}
.nx-lb .nx-ch-card:has(.nx-lv-sw.is-prev) .nx-lv-sw.s0{background:var(--lb-s2)}
.nx-lb .nx-lv-g-track{stroke:var(--lb-track)}.nx-lb .nx-lv-g-val{stroke:var(--lb-s1)}.nx-lb .nx-lv-g-needle,.nx-lb .nx-lv-g-pin{fill:var(--lb-ink)}
.nx-lb .nx-lv-spark polyline{stroke:var(--lb-s1)}.nx-lb .nx-lv-spark circle{fill:var(--lb-s1)}
/* the drawings the engine borrows from the first live board (grouped and across bars, the cash bars, the donut, the gauge, the spark) in the same series */
.nx-lb .nx-lv-axis{stroke:var(--lb-grid)}.nx-lb .nx-lv-lbl{fill:var(--lb-ink2)}.nx-lb .nx-lv-val{fill:var(--lb-ink)}
.nx-lb .nx-lv-bar,.nx-lb .nx-lv-bar.is-neg,.nx-lb .nx-lv-bar.s0{fill:var(--lb-s1)}.nx-lb .nx-lv-bar.s1{fill:var(--lb-s2)}.nx-lb .nx-lv-bar.s2{fill:var(--lb-s3)}.nx-lb .nx-lv-bar.s3{fill:var(--lb-s4)}
.nx-lb svg:not(:has(.nx-lv-bar.s0)) .nx-lv-bar.s1{fill:var(--lb-s1)}
.nx-lb .nx-lv-track{stroke:var(--lb-track)}
.nx-lb .nx-lv-seg{stroke:var(--lb-ink3)}.nx-lb .nx-lv-seg.p0{stroke:var(--lb-s1)}.nx-lb .nx-lv-seg.p1{stroke:var(--lb-s2)}.nx-lb .nx-lv-seg.p2{stroke:var(--lb-s3)}.nx-lb .nx-lv-seg.p3{stroke:var(--lb-s4)}.nx-lb .nx-lv-seg.p4{stroke:var(--lb-s5)}
.nx-lb .nx-lv-sw.s0{background:var(--lb-s1)}.nx-lb .nx-lv-sw.s1{background:var(--lb-s2)}.nx-lb .nx-lv-sw.s2{background:var(--lb-s3)}.nx-lb .nx-lv-sw.s3{background:var(--lb-s4)}
.nx-lb .nx-lv-center{fill:var(--lb-ink)}.nx-lb .nx-lv-sub{fill:var(--lb-ink3)}
.nx-lb .nx-lv-min{stroke:var(--lb-warn)}.nx-lb .nx-lv-min-t{fill:var(--lb-warn)}
.nx-lb .nx-lv-missing{color:var(--lb-warn)}
.nx-lb .nx-lv-delta{background:none;padding:0}.nx-lb .nx-lv-delta.is-good{color:var(--lb-good)}.nx-lb .nx-lv-delta.is-bad{color:var(--lb-bad)}
@media print{.nx-lb.nx-ch .lb-periods,[data-nx-ch-theme]{display:none!important}}
/* G4-TOPLOOK — the top bar as the mockup's (Fable's Home, Astra's Home spec: the company, «الفترة», «الأساس: الاستحقاق», «العملة: ريال سعودي», the bell and
   the person): two soft chips beside the pickers — the basis of the figures and the currency of the chosen company (the companies' own; several said) — and
   the pickers no wider than their words on a large screen so the bar keeps one line; the phone keeps its own layout (the chips step aside). */
.nx-top-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;border:1px solid var(--line);border-radius:12px;background:var(--th);padding:0 12px;font-size:13px;color:var(--muted);white-space:nowrap}
.nx-top-chip b{color:var(--ink);font-weight:700}
.nx-top-chip>span::after{content:':'}
@media (min-width:761px){.nx-top.chips .nx-field{flex:0 1 auto;min-width:0;max-width:300px}.nx-top.chips .nx-field select{max-width:240px}}
@media (max-width:1180px){.nx-top-chip[data-nx-top-chip=basis]{display:none}}
@media (max-width:760px){.nx-top-chip{display:none}}
@media print{.nx-top-chip{display:none}}
/* G4-HUBNX — «CFO HUB» natively in the look of its mockup (Astra's Hub_AR.md / Calendar_AR.md: the page heading, the tabs, white panels of 14 px with a
   22 px padding, the counts of 12 px, the tables with the soft heading row, the category colours of the calendar); the classic markup the screen keeps
   (the desk, the rhythm, the task table and its follow-up, the e-mail block, the calendar's grid, form and weeks) dressed here. No inline style (CSP). */
.nx-hub{display:grid;gap:18px;min-width:0}
.nx-hub-head h1{font-size:28px;line-height:1.3;margin:0}
.nx-hub-head p{margin:6px 0 0;font-size:14px}
.nx-hub-tools{display:flex;gap:8px;align-items:center}
.nx-hub-tabs{align-items:center}
.nx-hub-tab-link{min-height:44px;display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:8px;color:var(--muted);text-decoration:none;font-size:14px}
.nx-hub-tab-link:hover{color:var(--primary-2);background:var(--hover)}
.nx-hub-body{display:grid;gap:18px;min-width:0}
.nx-hub-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px;min-width:0;box-shadow:var(--shadow)}
.nx-hub-panel h2{font-size:18px;font-weight:700;margin:0 0 12px;line-height:1.35}
.nx-hub-panel .nx-panel-head h2{margin:0}
.nx-hub-kpis{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.nx-hub .nx-kpi{padding:16px;gap:10px;border-color:#dbe4ee}
.nx-hub .nx-kpi-value{font-size:24px}
/* the classic small buttons inside the hub, in the interface's button look */
.nx-hub button.mini,.nx-hub .mcd-go,.nx-hub .hc-link{min-height:36px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);color:var(--ink);padding:6px 12px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.nx-hub button.mini:hover,.nx-hub .mcd-go:hover,.nx-hub .hc-link:hover{border-color:var(--primary);background:var(--primary-soft)}
.nx-hub button.mini.primary,.nx-hub .fc-form-actions button.primary,.nx-hub .fc-pay-form button.primary{background:var(--primary);border-color:var(--primary);color:#fff}
.nx-hub button:disabled{opacity:.55;cursor:not-allowed}
.nx-hub .nx-btn.small{min-height:36px;padding:6px 12px;font-size:13px}
/* the control desk */
.nx-hub-desk .ctl-head small{color:var(--primary);font-size:12px;font-weight:700;letter-spacing:.4px}
.nx-hub-desk .ctl-head h3{font-size:18px;margin:2px 0 4px}
.nx-hub-desk .ctl-head p{margin:0 0 14px;color:var(--muted);font-size:14px}
.nx-hub-desk .ctl-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.nx-hub-desk .mcd-card{border:1px solid var(--line);border-radius:12px;padding:16px;background:#f7f9fc;min-width:0}
.nx-hub-desk .mcd-head h3{font-size:16px;margin:0 0 10px}
.nx-hub-desk .ctl-sub{font-size:14px;margin:14px 0 8px}
.nx-hub .mcd-rows{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.nx-hub .mcd-row{display:flex;gap:10px;align-items:center;justify-content:space-between;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.nx-hub .mcd-row>div{display:grid;gap:2px;min-width:0}
.nx-hub .mcd-row small{color:var(--muted);font-size:12px}
.nx-hub .mcd-note{margin:10px 0 0;color:var(--muted);font-size:13px}
.nx-hub .mcd-empty{margin:0;padding:14px;border-radius:10px;background:#f3f6fa;border:1px solid #dbe4ee;color:var(--muted);font-size:14px}
.nx-hub-desk progress{width:100%;height:10px;accent-color:var(--primary);margin:2px 0 6px}
.nx-hub-desk .mcd-row[data-status="closed"],.nx-hub-desk .mcd-row[data-status="locked"]{border-inline-start:3px solid var(--good)}
.nx-hub-desk .mcd-row[data-status="draft"]{border-inline-start:3px solid var(--warn)}
.nx-hub-desk .hc-link{margin-block-start:12px}
/* the rhythm */
.nx-hub .hub1-head h3{font-size:18px;margin:0 0 4px}
.nx-hub .hub1-head p{margin:0 0 14px;color:var(--muted);font-size:14px}
.nx-hub .hub1-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.nx-hub .hub1-col{border:1px solid var(--line);border-radius:12px;padding:14px;background:#f7f9fc;min-width:0}
.nx-hub .hub1-col h4{margin:0 0 10px;font-size:15px}
.nx-hub .hub1-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.nx-hub .hub1-item{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:flex-start;justify-content:space-between;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.nx-hub .hub1-item[data-hub1-state="late"],.nx-hub .hub1-item[data-hub1-state="failed"]{border-inline-start:3px solid var(--bad)}
.nx-hub .hub1-item[data-hub1-state="done"]{border-inline-start:3px solid var(--good)}
.nx-hub .hub1-main{display:grid;gap:3px;min-width:0;flex:1 1 180px}
.nx-hub .hub1-main b{font-size:14px}
.nx-hub .hub1-main small{color:var(--muted);font-size:12px}
.nx-hub .hub1-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px}
.nx-hub .hub1-state{border-radius:999px;padding:1px 9px;border:1px solid var(--line);background:var(--surface)}
.nx-hub .hub1-state.hub1-late,.nx-hub .hub1-state.hub1-failed{border-color:var(--bad);color:var(--bad);background:var(--bad-soft);font-weight:600}
.nx-hub .hub1-state.hub1-done{border-color:var(--good);color:var(--good);background:var(--good-soft)}
.nx-hub .hub1-state.hub1-in_progress,.nx-hub .hub1-state.hub1-in_review{border-color:var(--primary);color:var(--primary-2);background:var(--primary-soft)}
.nx-hub .hub1-acts{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.nx-hub .hub1-empty{margin:0;color:var(--muted);font-size:13px}
/* the dues coming up */
.nx-hub-soon .panel-head{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;justify-content:space-between;margin-block-end:10px}
.nx-hub-soon .panel-head h3{font-size:18px;margin:0}
.nx-hub-soon .panel-head small{color:var(--muted)}
.nx-hub .fc-soon{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.nx-hub .fc-soon li{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:10px;background:#f3f6fa;border:1px solid #dbe4ee}
.nx-hub .fc-soon li.fc-overdue{background:var(--bad-soft);border-color:#f2c9cf}
.nx-hub .fc-when{font-variant-numeric:tabular-nums;color:var(--muted)}
/* the tasks: filters, table, follow-up, e-mail, form */
.nx-hub .hub1-filters{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin:0 0 14px;font-size:13px}
.nx-hub .hub1-filters label{display:grid;gap:4px;color:var(--muted)}
.nx-hub .hub1-filters select,.nx-hub .hub1-filters input{min-height:40px;border:1px solid #dbe4ee;border-radius:10px;padding:6px 10px;background:var(--surface);color:var(--ink);min-width:150px;max-width:220px}
.nx-hub .hub1-count{margin-inline-start:auto;color:var(--muted);align-self:center}
.nx-hub .tl-table{width:100%;border-collapse:collapse;font-size:13px}
.nx-hub .tl-table th{background:var(--th);color:#4c5e76;font-size:12px;font-weight:700;text-align:start;padding:13px 14px;white-space:nowrap}
.nx-hub .tl-table td{padding:13px 14px;border-block-end:1px solid var(--line);vertical-align:top;text-align:start}
.nx-hub .tl-table tbody tr:hover{background:var(--hover)}
.nx-hub .tl-table tr.tl-open{background:var(--primary-soft)}
.nx-hub .tl-table td b{display:block}
.nx-hub .tl-desc,.nx-hub .tl-kpi{display:block;color:var(--muted);font-size:12px;margin-block-start:3px}
.nx-hub .tl-kpi-label{font-weight:600}
.nx-hub .tl-unset{color:var(--muted)}
.nx-hub .tl-stage{display:inline-block;border-radius:999px;padding:1px 9px;font-size:12px;border:1px solid var(--line);background:var(--surface);white-space:nowrap}
.nx-hub .tl-stage.tl-in_progress,.nx-hub .tl-stage.tl-in_review{border-color:var(--primary);color:var(--primary-2);background:var(--primary-soft)}
.nx-hub .tl-stage.tl-done{border-color:var(--good);color:var(--good);background:var(--good-soft)}
.nx-hub .tl-stage.tl-cancelled{opacity:.6}
.nx-hub .tl-late{display:inline-block;border-radius:999px;padding:1px 9px;font-size:12px;color:var(--bad);background:var(--bad-soft);border:1px solid #f2c9cf;font-weight:600}
.nx-hub .tl-follow>td{background:#f7f9fc}
.nx-hub .tl-panel{display:grid;gap:10px;padding:4px 0}
.nx-hub .tl-info{margin:0;color:var(--muted);font-size:13px}
.nx-hub .tl-activity{margin:0;padding-inline-start:18px;display:grid;gap:6px;font-size:13px}
.nx-hub .tl-activity time{color:var(--muted);font-variant-numeric:tabular-nums}
.nx-hub .tl-activity p{margin:2px 0 0}
.nx-hub .tl-empty,.nx-hub .tl-earlier{margin:0;color:var(--muted);font-size:13px}
.nx-hub .tl-self{color:var(--warn)}
.nx-hub .tl-note,.nx-hub .tl-owner,.nx-hub .hub2-mail label{display:grid;gap:4px;font-size:12px;color:var(--muted)}
.nx-hub .tl-note textarea,.nx-hub .tl-owner input,.nx-hub .hub2-mail input,.nx-hub .hub2-mail textarea{min-height:40px;border:1px solid #dbe4ee;border-radius:10px;padding:8px 10px;background:var(--surface);color:var(--ink);font-size:14px;width:100%;max-width:520px}
.nx-hub .tl-actions,.nx-hub .hub2-acts{display:flex;flex-wrap:wrap;gap:8px}
.nx-hub .tl-message,.nx-hub .hub2-msg{margin:0;min-height:1em;font-size:13px;color:var(--bad)}
.nx-hub .hub2-mail{display:grid;gap:8px;border:1px dashed #c4d0e2;border-radius:12px;padding:12px;background:var(--surface)}
.nx-hub .hub2-mail h5{margin:0;font-size:14px}
.nx-hub .hub2-copy{display:grid;gap:6px}
.nx-hub .hub2-copy p{margin:0;font-size:13px}
.nx-hub .hub2-copy textarea{max-width:none;font-size:12px}
.nx-hub-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.nx-hub-fields .nx-field{margin:0}
.nx-hub-fields .nx-field>span{font-size:13px;color:var(--muted)}
.nx-hub-fields input,.nx-hub-fields select,.nx-hub-fields textarea{min-height:44px;border:1px solid #dbe4ee;border-radius:10px;padding:10px 12px;background:var(--surface);color:var(--ink);width:100%}
.nx-hub-wide{grid-column:1 / -1}
.nx-hub-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-block-start:16px}
.nx-hub-actions p{margin:0}
/* the finance calendar */
.nx-hub .fc-cat-rent{--fc:#0869c9}.nx-hub .fc-cat-loan{--fc:#6d28d9}.nx-hub .fc-cat-suppliers{--fc:#047857}.nx-hub .fc-cat-payroll{--fc:#c2410c}.nx-hub .fc-cat-tax_zakat{--fc:#be185d}
.nx-hub .fc-cat-insurance{--fc:#0e7490}.nx-hub .fc-cat-government_fees{--fc:#854d0e}.nx-hub .fc-cat-utilities{--fc:#4d7c0f}.nx-hub .fc-cat-subscriptions{--fc:#475569}.nx-hub .fc-cat-other{--fc:#64748b}
.nx-hub-cal-nav{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.nx-hub-cal-nav strong{min-width:120px;text-align:center;font-size:15px}
.nx-hub .fc-independent{margin:0 0 14px;font-size:13px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.nx-hub-cal-head .nx-hub-kpis{margin-block-end:14px}
.nx-hub-cats{display:flex;flex-wrap:wrap;gap:8px}
.nx-hub-cat{min-height:36px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);padding:5px 14px;font-size:13px;cursor:pointer;border-inline-start:4px solid var(--fc,var(--primary))}
.nx-hub-cat[aria-pressed="true"]{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-2);font-weight:700}
.nx-hub-views{margin-block-end:14px}
.nx-hub .fc-link{all:unset;cursor:pointer;font-weight:600;color:var(--ink)}
.nx-hub .fc-link:hover{color:var(--primary-2);text-decoration:underline}
.nx-hub .fc-link:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.nx-hub-cal-list td small{display:block;font-size:12px;color:var(--muted)}
.nx-hub-cal-list .fc-cat{color:var(--fc,var(--muted));font-weight:600}
.nx-hub .fc-state{display:inline-block;padding:1px 9px;border-radius:999px;font-size:12px;background:#eef4fb;white-space:nowrap}
.nx-hub .fc-state.fc-overdue{background:var(--bad-soft);color:var(--bad)}
.nx-hub .fc-state.fc-paid{background:var(--good-soft);color:var(--good)}
.nx-hub .fc-state.fc-skipped{opacity:.6}
.nx-hub-count{display:inline-block;padding:1px 9px;border-radius:999px;font-size:12px;background:#eef4fb;color:#0869c9;white-space:nowrap;font-variant-numeric:tabular-nums}
.nx-hub-count.soon{background:var(--warn-soft);color:var(--warn)}
.nx-hub-count.late{background:var(--bad-soft);color:var(--bad);font-weight:600}
.nx-hub td.fc-acts{white-space:nowrap}.nx-hub td.fc-acts>button+button{margin-inline-start:6px}
.nx-hub .fc-row.fc-paid td,.nx-hub .fc-row.fc-skipped td{color:var(--muted)}
.nx-hub .fc-pay>td{padding:0;background:#f7f9fc}
.nx-hub .fc-pay-form,.nx-hub .fc-form{display:grid;gap:12px;padding:14px;margin:8px 0;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-align:start}
.nx-hub .fc-pay-form{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end}
.nx-hub .fc-form{border:0;padding:0;margin:0}
.nx-hub .fc-form h4{margin:0;font-size:18px}
.nx-hub .fc-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.nx-hub .fc-fields label,.nx-hub .fc-pay-form label{display:grid;gap:4px;font-size:13px;color:var(--muted)}
.nx-hub .fc-fields input,.nx-hub .fc-fields select,.nx-hub .fc-fields textarea,.nx-hub .fc-pay-form input{min-height:44px;border:1px solid #dbe4ee;border-radius:10px;padding:8px 12px;background:var(--surface);color:var(--ink);width:100%;font-size:14px}
.nx-hub .fc-wide{grid-column:1 / -1}
.nx-hub .fc-form-actions,.nx-hub .fc-status{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.nx-hub .fc-form-actions button,.nx-hub .fc-pay-form button{min-height:40px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);color:var(--ink);padding:8px 14px;cursor:pointer;font-size:14px}
.nx-hub .fc-message{margin:0;min-height:1em;font-size:13px;color:var(--bad)}
.nx-hub-grid{overflow-x:auto}
.nx-hub .fc-grid{width:100%;min-width:640px;table-layout:fixed;border-collapse:collapse}
.nx-hub .fc-grid th{font-size:12px;color:#4c5e76;background:var(--th);text-align:center;padding:8px 4px;white-space:nowrap}
.nx-hub .fc-grid td{vertical-align:top;height:92px;padding:6px;border:1px solid #dbe4ee}
.nx-hub .fc-grid .fc-empty{background:#f6f9fc}
.nx-hub .fc-grid .fc-today{box-shadow:inset 0 0 0 2px var(--primary)}
.nx-hub .fc-num{display:block;font-size:12px;font-weight:700;color:var(--muted)}
.nx-hub .fc-day.fc-has-late .fc-num{color:var(--bad)}
.nx-hub .fc-item{display:block;margin-block-start:4px;padding:2px 6px;border-radius:6px;font-size:11px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-inline-start:3px solid var(--fc,var(--primary));background:#eef4fb}
.nx-hub .fc-item.fc-paid{opacity:.6;text-decoration:line-through}
.nx-hub .fc-item.fc-overdue{background:var(--bad-soft)}
.nx-hub .fc-item.fc-skipped{opacity:.45}
.nx-hub .fc-more{display:block;margin-block-start:2px;font-size:11px;color:var(--muted)}
.nx-hub .fc-weeks summary{cursor:pointer;font-weight:700;margin-block-end:10px}
.nx-hub .fc-weeks table{width:100%;border-collapse:collapse;font-size:13px}
.nx-hub .fc-weeks th{background:var(--th);color:#4c5e76;font-size:12px;text-align:start;padding:10px 12px}
.nx-hub .fc-weeks td{padding:10px 12px;border-block-end:1px solid var(--line)}
.nx-hub .fc-note{margin:14px 0 0;font-size:12px}
@media (max-width:1100px){.nx-hub-desk .ctl-grid,.nx-hub .hub1-cols{grid-template-columns:1fr}.nx-hub-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.nx-hub-panel{padding:14px}.nx-hub-head h1{font-size:22px}.nx-hub-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.nx-hub-fields{grid-template-columns:1fr}.nx-hub .hub1-filters label{flex:1 1 calc(50% - 14px)}.nx-hub .hub1-filters select,.nx-hub .hub1-filters input{min-width:0;max-width:none;width:100%}.nx-hub .mcd-row{flex-wrap:wrap}}
@media print{.nx-hub-tools,.nx-hub-tabs,.nx-hub-views,.nx-hub-cats,.nx-hub .fc-acts,.nx-hub .hub1-acts,.nx-hub .tl-table td:last-child,.nx-hub-form,.nx-hub-cal-nav button{display:none!important}.nx-hub-panel{box-shadow:none;break-inside:avoid}}
/* G4-NTFNX — «الإشعارات» natively in the look of its mockup (the Hub's «مركز الإشعارات»: white cards, the title, the state line, the actions) inside the
   CFO HUB's page (the hub's panels, tabs and buttons above); the classic rows, the one-line filter and the history dressed here. No inline style (CSP). */
.nx-ntf .nx-ntf-here{min-height:44px;display:inline-flex;align-items:center;padding:8px 12px;border-radius:8px;font-size:14px;color:var(--primary-2);background:var(--primary-soft);border:1px solid #c6d3ff;font-weight:700}
.nx-ntf-all{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--muted);min-height:42px}
.nx-ntf-all input{width:18px;height:18px;accent-color:var(--primary)}
.nx-ntf-context{margin:0;font-size:13px}
.nx-ntf-kpis .nx-kpi{cursor:pointer;font:inherit;color:inherit;transition:box-shadow .15s ease,border-color .15s ease}
.nx-ntf-kpis .nx-kpi:hover{border-color:var(--primary)}
.nx-ntf-kpis .nx-kpi[aria-pressed="true"]{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft),var(--shadow);background:#f7f9ff}
.nx-ntf-kpis [data-ntf-kpi="critical"] .nx-kpi-value{color:var(--bad)}
.nx-ntf-kpis [data-ntf-kpi="high"] .nx-kpi-value{color:var(--warn)}
/* the one-line filter in the panel's head */
.nx-ntf-head{gap:10px 14px;flex-wrap:wrap;align-items:center}
.nx-ntf .ntf-line{flex:1 1 420px;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 8px;min-width:0}
.nx-ntf .ntf-line-title{font-size:12px;color:var(--muted)}
.nx-ntf .ntf-dd{position:relative}
.nx-ntf .ntf-dd-btn{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:4px 12px;font-size:13px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;white-space:nowrap}
.nx-ntf .ntf-dd-btn[data-ntf-active]{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}
.nx-ntf .ntf-dd-btn[aria-expanded="true"]{box-shadow:0 0 0 3px var(--primary-soft)}
.nx-ntf .ntf-dd-caret{font-size:10px;opacity:.7}
.nx-ntf .ntf-menu{position:absolute;top:calc(100% + 6px);inset-inline-start:0;z-index:70;min-width:260px;max-width:min(340px,86vw);max-height:340px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 12px 32px #10264130}
.nx-ntf .ntf-search{width:100%;margin:0 0 6px;padding:8px 10px;font-size:13px;border-radius:8px;border:1px solid #dbe4ee}
.nx-ntf label.ntf-opt{display:flex;align-items:center;gap:10px;margin:0;padding:7px 10px;border-radius:8px;font-size:13px;line-height:1.45;cursor:pointer}
.nx-ntf label.ntf-opt:hover{background:var(--hover)}
.nx-ntf label.ntf-opt input{flex:0 0 16px;width:16px;height:16px;margin:0;accent-color:var(--primary)}
.nx-ntf .ntf-opt span{flex:1 1 auto;min-width:0}
.nx-ntf .ntf-opt b{font-weight:600;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.nx-ntf .ntf-shown{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
/* the list: groups by degree, each alert a card */
.nx-ntf-list{max-height:min(70vh,900px);overflow-y:auto;overscroll-behavior:contain;padding-inline-end:4px;scrollbar-gutter:stable}
.nx-ntf .ntf-off{display:none!important}
.nx-ntf .ntf-none{margin:10px 0}
.nx-ntf .notification-group{margin:0 0 16px}
.nx-ntf .notification-group h4{margin:0 0 8px;font-size:14px;display:flex;align-items:center;gap:8px}
.nx-ntf .notification-group h4 span{display:inline-block;min-width:24px;text-align:center;padding:0 8px;border-radius:999px;background:#eef2f8;color:var(--muted);font-size:12px}
.nx-ntf .notification-row{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:14px;align-items:start;padding:14px 16px;border:1px solid var(--line);border-inline-start:4px solid #8aa3c4;border-radius:12px;margin:0 0 10px;background:var(--surface)}
.nx-ntf .notification-row.critical{border-inline-start-color:var(--bad)}
.nx-ntf .notification-row.high{border-inline-start-color:#d97706}
.nx-ntf .notification-row.medium{border-inline-start-color:#ca8a04}
.nx-ntf .notification-row.info,.nx-ntf .notification-row.low{border-inline-start-color:#0869c9}
.nx-ntf .notification-row.unread{background:#f7f9ff}
.nx-ntf .notification-row.unread .notification-body>b::after{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--primary);margin-inline-start:8px;vertical-align:middle}
.nx-ntf .notification-row.resolved,.nx-ntf .notification-row.ntf-is-snoozed{opacity:.74}
.nx-ntf .notification-sev{font-size:12px;font-weight:700;letter-spacing:.3px;color:var(--muted)}
.nx-ntf .notification-row.critical .notification-sev{color:var(--bad)}
.nx-ntf .notification-row.high .notification-sev{color:#b45309}
.nx-ntf .notification-repeat{display:block;margin-block-start:6px;font-size:11px;color:var(--warn)}
.nx-ntf .notification-body{display:grid;gap:4px;min-width:0}
.nx-ntf .notification-body b{font-size:15px}
.nx-ntf .notification-body p{margin:0;font-size:14px;color:var(--ink)}
.nx-ntf .notification-body small{color:var(--muted);font-size:12px}
.nx-ntf .notification-body em{font-style:normal;font-size:13px;color:var(--primary-2);background:var(--primary-soft);border-radius:8px;padding:6px 10px}
.nx-ntf .notification-recurrence,.nx-ntf .notification-lifecycle{display:block;color:var(--warn);font-size:12px}
.nx-ntf .ntf-snoozed{display:inline-block;margin:2px 0 0;padding:1px 9px;border-radius:999px;font-size:12px;background:#eaf3ff;color:var(--ink)}
.nx-ntf .ntf-timeline{margin:4px 0 0;font-size:12px}
.nx-ntf .ntf-timeline summary{cursor:pointer;color:var(--primary-2)}
.nx-ntf .ntf-timeline ol{margin:6px 0 0;padding-inline-start:18px;display:grid;gap:3px}
.nx-ntf .ntf-timeline time{color:var(--muted);font-variant-numeric:tabular-nums}
.nx-ntf .notification-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:300px}
@media (max-width:760px){.nx-ntf .notification-row{grid-template-columns:1fr}.nx-ntf .notification-actions{justify-content:flex-start;max-width:none}.nx-ntf .ntf-line{flex-basis:100%;justify-content:flex-start}.nx-ntf-list{max-height:72vh}}
@media print{.nx-ntf .notification-actions,.nx-ntf .ntf-line,.nx-ntf-all{display:none!important}.nx-ntf-list{max-height:none;overflow:visible}}
/* G4-DATANX — «الرواتب» and «المصادر والجاهزية» natively in the data area, in the look of the mockup's DataCenter (white panels, the counts, the soft
   heading rows, the states as chips); the classic payroll and readiness markup the screens keep dressed here. No inline style (CSP). */
.nx-wf-screen,.nx-rd-screen{display:grid;gap:16px;min-width:0}
.nx-wf-screen .nx-panel,.nx-rd-screen .nx-panel{padding:22px}
.nx-wf-pick{gap:12px}
.nx-wf-body,.nx-rd-body{display:grid;gap:16px;min-width:0}
.nx-wf-screen button.mini,.nx-wf-screen a.mini,.nx-rd-screen button.mini,.nx-rd-screen .mcd-go{min-height:36px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);color:var(--ink);padding:6px 12px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.nx-wf-screen button.primary,.nx-rd-screen button.primary{min-height:40px;border:1px solid var(--primary);border-radius:var(--r-s);background:var(--primary);color:#fff;padding:8px 14px;font-size:14px;cursor:pointer}
.nx-wf-screen button:disabled{opacity:.55;cursor:not-allowed}
/* the register */
.nx-wf .wf-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-block-end:12px}
.nx-wf .wf-kpi{border:1px solid #dbe4ee;border-radius:12px;padding:16px;display:grid;gap:8px;background:var(--surface)}
.nx-wf .wf-kpi span{font-size:13px;color:var(--muted)}
.nx-wf .wf-kpi strong{font-size:24px;font-variant-numeric:tabular-nums}
.nx-wf .wf-hidden,.nx-wf .wf-note{color:var(--muted);font-size:13px;margin:8px 0}
.nx-wf .wf-bridge{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.nx-wf .wf-bridge span{padding:4px 12px;border-radius:999px;background:#f3f6fa;border:1px solid #dbe4ee;font-size:13px}
.nx-wf .wf-table,.nx-wf .wf-emp-table,.nx-wf .wf-recon-accounts{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0}
.nx-wf .wf-table th,.nx-wf .wf-emp-table th,.nx-wf .wf-recon-accounts th{background:var(--th);color:#4c5e76;font-size:12px;font-weight:700;text-align:start;padding:12px 14px}
.nx-wf .wf-table td,.nx-wf .wf-emp-table td,.nx-wf .wf-recon-accounts td{padding:12px 14px;border-block-end:1px solid var(--line)}
.nx-wf .wf-share{display:block;height:6px;border-radius:999px;background:#eef2f8;margin-block-start:4px;overflow:hidden}
.nx-wf .wf-share i{display:block;height:100%;background:var(--primary);border-radius:999px}
.nx-wf .wf-emp{margin:10px 0}.nx-wf .wf-emp summary{cursor:pointer;font-weight:700}
.nx-wf .wf-emp-filter{min-height:40px;border:1px solid #dbe4ee;border-radius:10px;padding:6px 10px;margin:8px 0;width:min(320px,100%)}
.nx-wf .wf-emp-scroll{max-height:420px;overflow:auto}
.nx-wf .wf-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}
.nx-wf .wf-form{display:grid;gap:12px;border:1px solid var(--line);border-radius:12px;padding:16px;background:#f7f9fc;margin:12px 0}
.nx-wf .wf-form h4{margin:0;font-size:16px}
.nx-wf .wf-form label{display:grid;gap:4px;font-size:13px;color:var(--muted)}
.nx-wf .wf-form input,.nx-wf .wf-form select{min-height:42px;border:1px solid #dbe4ee;border-radius:10px;padding:8px 10px;background:var(--surface);color:var(--ink);font-size:14px}
.nx-wf .wf-lines{display:grid;gap:10px}
.nx-wf .wf-line{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:end}
.nx-wf .wf-acc-list{display:grid;gap:6px;max-height:300px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:8px;background:var(--surface)}
.nx-wf label.wf-acc{display:flex;gap:8px;align-items:center;color:var(--ink);font-size:13px}
.nx-wf .wf-message{margin:0;min-height:1em;color:var(--bad);font-size:13px}
.nx-wf .wf-recon h4{display:none}
.nx-wf .wf-recon-state{display:inline-block;margin:0 0 8px;padding:3px 12px;border-radius:999px;font-size:13px;font-weight:700;background:#eef4fb}
.nx-wf .wf-recon-matched .wf-recon-state{background:var(--good-soft);color:var(--good)}
.nx-wf .wf-recon-mismatch .wf-recon-state,.nx-wf .wf-recon-ledger_error .wf-recon-state{background:var(--bad-soft);color:var(--bad)}
.nx-wf .wf-recon-figures{margin:4px 0 8px;font-size:14px}
.nx-wf .wf-recon-missing td{color:var(--bad)}
/* the readiness overview */
.nx-rd-screen .ds-next{display:grid;gap:8px;align-items:start;border-inline-start:4px solid var(--primary);padding:4px 16px}
.nx-rd-screen .ds-next small{color:var(--primary);font-weight:700;font-size:12px}
.nx-rd-screen .ds-next b{font-size:15px;line-height:1.7}
.nx-rd-screen .ds-next-go{justify-self:start}
.nx-rd-screen .ds-next-also{min-height:36px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);color:var(--ink);padding:6px 12px;cursor:pointer}
.nx-rd-screen .mcd-row{display:flex;gap:10px;align-items:center;justify-content:space-between;border:1px solid #f2d39b;background:var(--warn-soft);border-radius:10px;padding:10px 12px;margin-block-end:12px}
.nx-rd-screen .mcd-note{color:var(--muted);font-size:13px;margin:0 0 12px}
.nx-rd-screen .mcd-empty{padding:14px;border-radius:10px;background:#f3f6fa;border:1px solid #dbe4ee;color:var(--muted)}
.nx-rd-screen .table-wrap{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:10px}
.nx-rd-screen .ds-table{width:100%;border-collapse:collapse;font-size:13px}
.nx-rd-screen .ds-table th{background:var(--th);color:#4c5e76;font-size:12px;font-weight:700;text-align:start;padding:12px 14px}
.nx-rd-screen .ds-table td{padding:12px 14px;border-block-end:1px solid var(--line);vertical-align:top}
.nx-rd-screen .ds-table td small{display:block;color:var(--muted);font-size:12px}
.nx-rd-screen .ds-state{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;background:#eef4fb;white-space:nowrap}
.nx-rd-screen .ds-state[data-state="ready"],.nx-rd-screen .ds-state[data-state="active"]{background:var(--good-soft);color:var(--good)}
.nx-rd-screen .ds-state[data-state="needs_mapping"],.nx-rd-screen .ds-state[data-state="waiting"]{background:var(--warn-soft);color:var(--warn)}
.nx-rd-screen .ds-state[data-state="validation_blocked"]{background:var(--bad-soft);color:var(--bad)}
.nx-rd-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.nx-rd-card{border:1px solid var(--line);border-radius:12px;padding:16px;background:#f7f9fc;display:grid;gap:8px;align-content:start}
.nx-rd-card h3{margin:0;font-size:16px}.nx-rd-card p{margin:0;font-size:13px}.nx-rd-card .nx-btn{justify-self:start}
@media (max-width:760px){.nx-wf .wf-kpis{grid-template-columns:1fr}.nx-wf .wf-line{grid-template-columns:1fr 1fr}.nx-rd-cards{grid-template-columns:1fr}.nx-wf-screen .nx-panel,.nx-rd-screen .nx-panel{padding:14px}}
@media print{.nx-wf .wf-actions,.nx-wf .wf-form,.nx-wf-pick,.nx-wf-adv button,.nx-rd-screen button{display:none!important}}
/* G4-PROFNX — «الربحية» and «المصروفات» natively in the look of the mockup's Analysis (the tab row, white panels, the counts, the bridge, the rankings
   two by two, the classic analyses); the classic charts' and expense analysis' sheets follow, copied, their classic token names mapped here. No inline
   style (CSP). */
.nx-an{display:grid;gap:16px;min-width:0}
.nx-an-body{display:grid;gap:16px;min-width:0}
.nx-an-panel{padding:22px}
.nx-an-panel h2{font-size:18px;margin:0}
.nx-an-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.nx-an-num{text-align:end;font-variant-numeric:tabular-nums;white-space:nowrap}
.nx-an-counts .nx-kpi-value{font-size:22px}
.nx-an-classic{--panel:var(--surface);--panel2:#f7f9fc;--text:var(--ink);--accent:var(--primary);--red:var(--bad);--green:var(--good);--k3-paper:var(--surface);--k3-soft:#f7f9fc;--k3-ink:var(--ink);--k3-sub:var(--muted);--k3-line:var(--line);--k3-accent:var(--primary)}
.nx-an .exp1-root button,.nx-an-classic button{min-height:36px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);color:var(--ink);padding:6px 12px;font-size:13px;cursor:pointer}
.nx-an .exp1-root select,.nx-an .exp1-root input{min-height:40px;border:1px solid #dbe4ee;border-radius:10px;padding:6px 10px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px}
.nx-an dialog.exp1-dialog{max-width:min(900px,94vw);border:1px solid var(--line);border-radius:var(--r);padding:20px}
.nx-an dialog.exp1-dialog::backdrop{background:#0c172966}
@media (max-width:900px){.nx-an-grid{grid-template-columns:1fr}}
@media (max-width:760px){.nx-an-panel{padding:14px}}
@media print{.nx-an-tabs,.nx-an .exp1-filters,.nx-an .exp1-root button{display:none!important}}
/* public/vis2.css (copied, comments left out) */
.vis2-root,.vis2-legacy{--v-paper:var(--k3-paper,var(--panel));--v-soft:var(--k3-soft,var(--panel2));--v-ink:var(--k3-ink,var(--text));--v-sub:var(--k3-sub,var(--muted));--v-line:var(--k3-line,var(--line));--v-accent:var(--k3-accent,var(--accent));min-width:0;color:var(--v-ink)}
.vis2-root [hidden]{display:none!important}.vis2-tabs{display:flex;gap:5px;overflow-x:auto;max-width:100%;padding:5px;border:1px solid var(--v-line);border-radius:12px;background:var(--v-paper);margin-bottom:14px;scrollbar-width:thin}
.vis2-root .vis2-tabs button{flex:0 0 auto;border:0;border-radius:8px;padding:9px 14px;background:transparent;color:var(--v-sub);font:inherit;font-size:12px;white-space:nowrap;min-height:38px}
.vis2-root .vis2-tabs button[aria-selected="true"]{background:var(--v-soft);color:var(--v-accent);font-weight:700;box-shadow:inset 0 -2px var(--v-accent)}
.vis2-section{min-width:0;background:var(--v-paper,var(--panel));border:1px solid var(--v-line,var(--line));border-radius:15px;margin-bottom:14px;overflow:clip}
.vis2-section>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 18px;cursor:pointer;list-style:none;min-height:48px}.vis2-section>summary h2{font-size:15px;color:var(--v-ink,var(--text));margin:0;line-height:1.6}.vis2-section>summary>span{color:var(--v-sub,var(--muted))}
.vis2-section[open]>summary{border-bottom:1px solid var(--v-line,var(--line))}.vis2-content{padding:16px 18px;min-width:0}.vis2-content>.vis2-note:first-child{margin-top:0}
.vis2-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;align-items:start}.vis2-tabpanel{min-width:0}.vis2-overview-extra{min-width:0}.vis2-note,.vis2-empty{font-size:11px;line-height:1.8;color:var(--v-sub,var(--muted));overflow-wrap:anywhere}.vis2-empty{padding:22px 12px;background:var(--v-soft,var(--panel2));border-radius:8px;margin:0;min-height:95px}
.vis2-chart{margin:0;min-width:0;max-width:100%}.vis2-plot{height:250px;width:100%;position:relative;direction:ltr;isolation:isolate}.vis2-plot>svg{display:block;width:100%;height:100%;overflow:visible}
.vis2-gridline{fill:none;stroke:var(--v-line);stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:3 4}
.vis2-series-0{--v-color:var(--v-accent,var(--accent))}.vis2-series-1{--v-color:var(--cyan)}.vis2-series-2{--v-color:var(--amber)}.vis2-series-3{--v-color:var(--muted)}.vis2-series-4{--v-color:var(--green)}.vis2-series-5{--v-color:var(--red)}
.vis2-bar{fill:var(--v-color,var(--v-accent));opacity:.9}.vis2-line{fill:none;stroke:var(--v-color);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.vis2-dot{fill:var(--v-color)}
.vis2-negative{--v-color:var(--red)}.vis2-positive{--v-color:var(--green)}.vis2-unexplained{--v-color:var(--amber)}.vis2-point-label{position:absolute;transform:translate(-50%,-100%);font-size:10px;font-weight:600;line-height:1.15;white-space:nowrap;color:var(--v-ink);z-index:2;pointer-events:none;font-variant-numeric:tabular-nums}
.vis2-root .vis2-hit{position:absolute;top:0;bottom:0;transform:translateX(-50%);border:0;border-radius:0;background:transparent!important;padding:0;margin:0;z-index:3;color:inherit;min-width:0}.vis2-root .vis2-hit:hover{background:color-mix(in srgb,var(--v-accent) 7%,transparent)!important}.vis2-root .vis2-hit:focus-visible{outline:2px solid var(--v-accent);outline-offset:-2px}
.vis2-months{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:2px;text-align:center;font-size:10px;line-height:1.5;color:var(--v-sub);padding-top:7px}.vis2-flow-labels{font-size:10px;line-height:1.5}.vis2-flow-labels>span{overflow-wrap:anywhere}
.vis2-legend{display:flex;align-items:center;justify-content:center;gap:7px 16px;flex-wrap:wrap;font-size:10px;color:var(--v-sub);margin-top:13px}.vis2-legend>span{display:flex;align-items:center;gap:5px}.vis2-legend i,.vis2-composition li>i{display:inline-block;width:9px;height:9px;border-radius:3px;background:var(--v-color);flex:none}.vis2-legend .vis2-key-line{height:2px;border-radius:0;width:16px}
.vis2-tooltip{min-height:24px;padding:5px 8px;background:var(--v-soft);border-radius:6px;font-size:10px;line-height:1.7;overflow-wrap:anywhere;margin:8px 0;color:var(--v-sub)}
.vis2-values{font-size:11px}.vis2-values>summary{cursor:pointer;color:var(--v-sub);padding:4px 0}.vis2-values table{border-collapse:collapse;width:100%;font-size:10px;table-layout:fixed}.vis2-values th,.vis2-values td{padding:7px 5px;text-align:start;border-bottom:1px solid var(--v-line);white-space:normal;overflow-wrap:anywhere;background:transparent;color:var(--v-ink)}
.vis2-comparison{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;border-top:1px solid var(--v-line);margin-top:12px;padding-top:12px}.vis2-comparison>div{display:grid;gap:6px;min-width:0}.vis2-comparison span{font-size:10px;color:var(--v-sub)}.vis2-comparison strong{font-size:16px;overflow-wrap:anywhere;color:var(--v-ink)}
.vis2-bs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}.vis2-composition{display:flex;gap:20px;align-items:center;margin:0;min-width:0}.vis2-donut{position:relative;width:145px;height:145px;flex:0 0 145px}.vis2-donut>svg{width:100%;height:100%;transform:rotate(-90deg);overflow:visible}.vis2-slice{fill:none;stroke:var(--v-color);stroke-width:17}.vis2-donut>div{position:absolute;inset:31px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center}.vis2-donut strong{font-size:16px;color:var(--v-ink);overflow-wrap:anywhere;max-width:100%}.vis2-donut small{font-size:10px;color:var(--v-sub)}
.vis2-composition>ul{margin:0;padding:0;list-style:none;flex:1;display:grid;gap:10px;min-width:0}.vis2-composition li{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:3px 6px;align-items:center;font-size:10px}.vis2-composition li>span{overflow-wrap:anywhere}.vis2-composition li>small{grid-column:3;color:var(--v-sub);font-size:9px}.vis2-composition li>b{font-size:11px;color:var(--v-ink)}.vis2-recon{border-top:1px dashed var(--v-line);padding-top:8px}
.vis2-quality{display:grid;gap:16px}.vis2-quality header{display:flex;align-items:center;justify-content:space-between;flex-direction:row;gap:7px;margin:0}.vis2-quality header span{font-size:11px;color:var(--v-sub)}.vis2-quality header b{font-size:14px;color:var(--v-ink)}.vis2-quality small{display:block;font-size:9px;color:var(--v-sub);line-height:1.8;margin-top:4px}.vis2-quality-track{position:relative;height:8px;background:var(--v-soft);border-radius:4px;margin-top:8px}.vis2-quality-track>i{position:absolute;left:0;top:0;bottom:0;background:var(--v-accent);border-radius:4px}.vis2-quality-track>b{position:absolute;top:-3px;height:14px;width:2px;background:var(--v-ink)}
.vis2-ccc{display:flex;gap:8px;align-items:center;margin-bottom:4px;font-size:10px;color:var(--v-sub)}.vis2-ccc>div{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;flex:1;text-align:center}.vis2-ccc>strong{font-size:10px;font-weight:600}
.vis2-sources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.vis2-sources>div{display:grid;gap:10px;min-width:0;border:1px solid var(--v-line);border-radius:10px;padding:13px}.vis2-sources span{font-size:11px;color:var(--v-sub)}.vis2-sources b{font-size:18px;overflow-wrap:anywhere}.vis2-sources small{font-size:10px;color:var(--v-sub)}.vis2-gain{color:var(--green)}.vis2-loss{color:var(--red)}
.vis2-heatmap{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin-top:18px}.vis2-heatmap>div{display:grid;gap:8px;padding:9px 3px;text-align:center;border-radius:5px;background:var(--v-soft);border:1px solid var(--v-line)}.vis2-heatmap span{font-size:9px;color:var(--v-sub)}.vis2-heatmap b{font-size:11px;color:var(--v-ink)}.vis2-heatmap .vis2-heat-up{border-color:var(--green)}.vis2-heatmap .vis2-heat-down{border-color:var(--red)}
.vis2-decisions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.vis2-root .vis2-decisions button{background:var(--v-soft);border:1px solid var(--v-line);border-radius:10px;padding:14px;display:flex;align-items:stretch;flex-direction:column;text-align:start;color:var(--v-ink);font:inherit;gap:8px}.vis2-decisions small{font-size:10px;color:var(--v-sub)}.vis2-decisions strong{font-size:13px;line-height:1.8}.vis2-decisions span{font-size:11px;line-height:1.8;color:var(--v-sub)}.vis2-root .vis2-link{font:inherit;font-size:11px;border:0;background:transparent;color:var(--v-accent);padding:8px 0}
#page-dashboard [data-vis2-replaced="true"]{display:none!important}.vis2-legacy{margin-top:14px}.vis2-legacy-content{padding:14px;display:grid;gap:14px}.vis2-legacy-content .panel{margin:0}.vis2-legacy-content #executiveAdvancedAnalytics{margin:0}
.vis2-page-charts{margin-top:20px}.vis2-page-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:12px}.vis2-page-head h2{font-size:19px;margin:0}.vis2-page-head span{font-size:11px;color:var(--v-sub)}
.vis2-analytics{--panel:var(--v-paper);--panel2:var(--v-soft);--text:var(--v-ink);--muted:var(--v-sub);--line:var(--v-line)}
#kpi3Dashboard[data-style="command"] .vis2-overview-extra{display:none}
#kpi3Dashboard[data-style="command"] .vis2-plot{height:158px}
#kpi3Dashboard[data-style="command"] .vis2-section>summary{padding:9px 12px;min-height:38px}
#kpi3Dashboard[data-style="command"] .vis2-content{padding:9px 12px}
#kpi3Dashboard[data-style="command"] .vis2-tabs{margin-bottom:10px}
#kpi3Dashboard[data-style="command"] .vis2-section{margin-bottom:10px;border-radius:9px}
#kpi3Dashboard[data-style="command"] .vis2-tooltip{min-height:18px;padding:3px 6px;margin-block:5px}
#kpi3Dashboard[data-style="command"] .vis2-quality{gap:7px}
#kpi3Dashboard[data-style="command"] .vis2-comparison{margin-top:6px;padding-top:7px}
#kpi3Dashboard[data-style="command"] .vis2-legend{margin-top:7px}
#kpi3Dashboard[data-style="command"] .vis2-analytics .ana1-card[open]{max-height:390px;overflow-y:auto}
#kpi3Dashboard[data-style="dark"] .vis2-gain,#kpi3Dashboard[data-style="dark"] .vis2-loss{background:var(--desk-dock-ink);padding:3px;border-radius:5px}
.vis2-root :focus-visible,.vis2-legacy :focus-visible{outline:3px solid var(--v-accent,var(--accent));outline-offset:3px}
@media(max-width:1000px){.vis2-bs{grid-template-columns:1fr}.vis2-composition{max-width:100%}}
@media(max-width:760px){.vis2-grid{grid-template-columns:minmax(0,1fr)}.vis2-decisions{grid-template-columns:1fr}.vis2-comparison{grid-template-columns:repeat(2,minmax(0,1fr))}.vis2-content{padding:12px}.vis2-section>summary{padding:12px}.vis2-plot{height:250px}.vis2-point-label{font-size:9px}.vis2-tabs{margin-bottom:10px}.vis2-root .vis2-tabs button{min-height:42px;padding:8px 12px}.vis2-legend{font-size:9px;gap:6px 10px}.vis2-months{font-size:8px}.vis2-flow-labels{font-size:9px}.vis2-donut{width:118px;height:118px;flex-basis:118px}.vis2-donut>div{inset:25px 13px}.vis2-donut strong{font-size:13px}.vis2-composition{gap:10px}.vis2-sources{grid-template-columns:1fr}.vis2-page-head{align-items:flex-start;flex-direction:column}.vis2-legacy-content{padding:10px}#kpi3Dashboard[data-style="command"] .vis2-plot{height:230px}}
@media(max-width:600px){body:has(#page-statements.active [data-vis2-host]) #app main,body:has(#page-cash.active [data-vis2-host]) #app main,body:has(#page-workingcapital.active [data-vis2-host]) #app main{margin-inline:0!important;width:auto!important}}
@media(prefers-reduced-motion:reduce){.vis2-root *,.vis2-legacy *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.vis2-x0{left:0%}
.vis2-x1{left:0.5%}
.vis2-x2{left:1%}
.vis2-x3{left:1.5%}
.vis2-x4{left:2%}
.vis2-x5{left:2.5%}
.vis2-x6{left:3%}
.vis2-x7{left:3.5%}
.vis2-x8{left:4%}
.vis2-x9{left:4.5%}
.vis2-x10{left:5%}
.vis2-x11{left:5.5%}
.vis2-x12{left:6%}
.vis2-x13{left:6.5%}
.vis2-x14{left:7%}
.vis2-x15{left:7.5%}
.vis2-x16{left:8%}
.vis2-x17{left:8.5%}
.vis2-x18{left:9%}
.vis2-x19{left:9.5%}
.vis2-x20{left:10%}
.vis2-x21{left:10.5%}
.vis2-x22{left:11%}
.vis2-x23{left:11.5%}
.vis2-x24{left:12%}
.vis2-x25{left:12.5%}
.vis2-x26{left:13%}
.vis2-x27{left:13.5%}
.vis2-x28{left:14%}
.vis2-x29{left:14.5%}
.vis2-x30{left:15%}
.vis2-x31{left:15.5%}
.vis2-x32{left:16%}
.vis2-x33{left:16.5%}
.vis2-x34{left:17%}
.vis2-x35{left:17.5%}
.vis2-x36{left:18%}
.vis2-x37{left:18.5%}
.vis2-x38{left:19%}
.vis2-x39{left:19.5%}
.vis2-x40{left:20%}
.vis2-x41{left:20.5%}
.vis2-x42{left:21%}
.vis2-x43{left:21.5%}
.vis2-x44{left:22%}
.vis2-x45{left:22.5%}
.vis2-x46{left:23%}
.vis2-x47{left:23.5%}
.vis2-x48{left:24%}
.vis2-x49{left:24.5%}
.vis2-x50{left:25%}
.vis2-x51{left:25.5%}
.vis2-x52{left:26%}
.vis2-x53{left:26.5%}
.vis2-x54{left:27%}
.vis2-x55{left:27.5%}
.vis2-x56{left:28%}
.vis2-x57{left:28.5%}
.vis2-x58{left:29%}
.vis2-x59{left:29.5%}
.vis2-x60{left:30%}
.vis2-x61{left:30.5%}
.vis2-x62{left:31%}
.vis2-x63{left:31.5%}
.vis2-x64{left:32%}
.vis2-x65{left:32.5%}
.vis2-x66{left:33%}
.vis2-x67{left:33.5%}
.vis2-x68{left:34%}
.vis2-x69{left:34.5%}
.vis2-x70{left:35%}
.vis2-x71{left:35.5%}
.vis2-x72{left:36%}
.vis2-x73{left:36.5%}
.vis2-x74{left:37%}
.vis2-x75{left:37.5%}
.vis2-x76{left:38%}
.vis2-x77{left:38.5%}
.vis2-x78{left:39%}
.vis2-x79{left:39.5%}
.vis2-x80{left:40%}
.vis2-x81{left:40.5%}
.vis2-x82{left:41%}
.vis2-x83{left:41.5%}
.vis2-x84{left:42%}
.vis2-x85{left:42.5%}
.vis2-x86{left:43%}
.vis2-x87{left:43.5%}
.vis2-x88{left:44%}
.vis2-x89{left:44.5%}
.vis2-x90{left:45%}
.vis2-x91{left:45.5%}
.vis2-x92{left:46%}
.vis2-x93{left:46.5%}
.vis2-x94{left:47%}
.vis2-x95{left:47.5%}
.vis2-x96{left:48%}
.vis2-x97{left:48.5%}
.vis2-x98{left:49%}
.vis2-x99{left:49.5%}
.vis2-x100{left:50%}
.vis2-x101{left:50.5%}
.vis2-x102{left:51%}
.vis2-x103{left:51.5%}
.vis2-x104{left:52%}
.vis2-x105{left:52.5%}
.vis2-x106{left:53%}
.vis2-x107{left:53.5%}
.vis2-x108{left:54%}
.vis2-x109{left:54.5%}
.vis2-x110{left:55%}
.vis2-x111{left:55.5%}
.vis2-x112{left:56%}
.vis2-x113{left:56.5%}
.vis2-x114{left:57%}
.vis2-x115{left:57.5%}
.vis2-x116{left:58%}
.vis2-x117{left:58.5%}
.vis2-x118{left:59%}
.vis2-x119{left:59.5%}
.vis2-x120{left:60%}
.vis2-x121{left:60.5%}
.vis2-x122{left:61%}
.vis2-x123{left:61.5%}
.vis2-x124{left:62%}
.vis2-x125{left:62.5%}
.vis2-x126{left:63%}
.vis2-x127{left:63.5%}
.vis2-x128{left:64%}
.vis2-x129{left:64.5%}
.vis2-x130{left:65%}
.vis2-x131{left:65.5%}
.vis2-x132{left:66%}
.vis2-x133{left:66.5%}
.vis2-x134{left:67%}
.vis2-x135{left:67.5%}
.vis2-x136{left:68%}
.vis2-x137{left:68.5%}
.vis2-x138{left:69%}
.vis2-x139{left:69.5%}
.vis2-x140{left:70%}
.vis2-x141{left:70.5%}
.vis2-x142{left:71%}
.vis2-x143{left:71.5%}
.vis2-x144{left:72%}
.vis2-x145{left:72.5%}
.vis2-x146{left:73%}
.vis2-x147{left:73.5%}
.vis2-x148{left:74%}
.vis2-x149{left:74.5%}
.vis2-x150{left:75%}
.vis2-x151{left:75.5%}
.vis2-x152{left:76%}
.vis2-x153{left:76.5%}
.vis2-x154{left:77%}
.vis2-x155{left:77.5%}
.vis2-x156{left:78%}
.vis2-x157{left:78.5%}
.vis2-x158{left:79%}
.vis2-x159{left:79.5%}
.vis2-x160{left:80%}
.vis2-x161{left:80.5%}
.vis2-x162{left:81%}
.vis2-x163{left:81.5%}
.vis2-x164{left:82%}
.vis2-x165{left:82.5%}
.vis2-x166{left:83%}
.vis2-x167{left:83.5%}
.vis2-x168{left:84%}
.vis2-x169{left:84.5%}
.vis2-x170{left:85%}
.vis2-x171{left:85.5%}
.vis2-x172{left:86%}
.vis2-x173{left:86.5%}
.vis2-x174{left:87%}
.vis2-x175{left:87.5%}
.vis2-x176{left:88%}
.vis2-x177{left:88.5%}
.vis2-x178{left:89%}
.vis2-x179{left:89.5%}
.vis2-x180{left:90%}
.vis2-x181{left:90.5%}
.vis2-x182{left:91%}
.vis2-x183{left:91.5%}
.vis2-x184{left:92%}
.vis2-x185{left:92.5%}
.vis2-x186{left:93%}
.vis2-x187{left:93.5%}
.vis2-x188{left:94%}
.vis2-x189{left:94.5%}
.vis2-x190{left:95%}
.vis2-x191{left:95.5%}
.vis2-x192{left:96%}
.vis2-x193{left:96.5%}
.vis2-x194{left:97%}
.vis2-x195{left:97.5%}
.vis2-x196{left:98%}
.vis2-x197{left:98.5%}
.vis2-x198{left:99%}
.vis2-x199{left:99.5%}
.vis2-x200{left:100%}
.vis2-y0{top:0%}.vis2-w0{width:0%}
.vis2-y1{top:1%}.vis2-w1{width:1%}
.vis2-y2{top:2%}.vis2-w2{width:2%}
.vis2-y3{top:3%}.vis2-w3{width:3%}
.vis2-y4{top:4%}.vis2-w4{width:4%}
.vis2-y5{top:5%}.vis2-w5{width:5%}
.vis2-y6{top:6%}.vis2-w6{width:6%}
.vis2-y7{top:7%}.vis2-w7{width:7%}
.vis2-y8{top:8%}.vis2-w8{width:8%}
.vis2-y9{top:9%}.vis2-w9{width:9%}
.vis2-y10{top:10%}.vis2-w10{width:10%}
.vis2-y11{top:11%}.vis2-w11{width:11%}
.vis2-y12{top:12%}.vis2-w12{width:12%}
.vis2-y13{top:13%}.vis2-w13{width:13%}
.vis2-y14{top:14%}.vis2-w14{width:14%}
.vis2-y15{top:15%}.vis2-w15{width:15%}
.vis2-y16{top:16%}.vis2-w16{width:16%}
.vis2-y17{top:17%}.vis2-w17{width:17%}
.vis2-y18{top:18%}.vis2-w18{width:18%}
.vis2-y19{top:19%}.vis2-w19{width:19%}
.vis2-y20{top:20%}.vis2-w20{width:20%}
.vis2-y21{top:21%}.vis2-w21{width:21%}
.vis2-y22{top:22%}.vis2-w22{width:22%}
.vis2-y23{top:23%}.vis2-w23{width:23%}
.vis2-y24{top:24%}.vis2-w24{width:24%}
.vis2-y25{top:25%}.vis2-w25{width:25%}
.vis2-y26{top:26%}.vis2-w26{width:26%}
.vis2-y27{top:27%}.vis2-w27{width:27%}
.vis2-y28{top:28%}.vis2-w28{width:28%}
.vis2-y29{top:29%}.vis2-w29{width:29%}
.vis2-y30{top:30%}.vis2-w30{width:30%}
.vis2-y31{top:31%}.vis2-w31{width:31%}
.vis2-y32{top:32%}.vis2-w32{width:32%}
.vis2-y33{top:33%}.vis2-w33{width:33%}
.vis2-y34{top:34%}.vis2-w34{width:34%}
.vis2-y35{top:35%}.vis2-w35{width:35%}
.vis2-y36{top:36%}.vis2-w36{width:36%}
.vis2-y37{top:37%}.vis2-w37{width:37%}
.vis2-y38{top:38%}.vis2-w38{width:38%}
.vis2-y39{top:39%}.vis2-w39{width:39%}
.vis2-y40{top:40%}.vis2-w40{width:40%}
.vis2-y41{top:41%}.vis2-w41{width:41%}
.vis2-y42{top:42%}.vis2-w42{width:42%}
.vis2-y43{top:43%}.vis2-w43{width:43%}
.vis2-y44{top:44%}.vis2-w44{width:44%}
.vis2-y45{top:45%}.vis2-w45{width:45%}
.vis2-y46{top:46%}.vis2-w46{width:46%}
.vis2-y47{top:47%}.vis2-w47{width:47%}
.vis2-y48{top:48%}.vis2-w48{width:48%}
.vis2-y49{top:49%}.vis2-w49{width:49%}
.vis2-y50{top:50%}.vis2-w50{width:50%}
.vis2-y51{top:51%}.vis2-w51{width:51%}
.vis2-y52{top:52%}.vis2-w52{width:52%}
.vis2-y53{top:53%}.vis2-w53{width:53%}
.vis2-y54{top:54%}.vis2-w54{width:54%}
.vis2-y55{top:55%}.vis2-w55{width:55%}
.vis2-y56{top:56%}.vis2-w56{width:56%}
.vis2-y57{top:57%}.vis2-w57{width:57%}
.vis2-y58{top:58%}.vis2-w58{width:58%}
.vis2-y59{top:59%}.vis2-w59{width:59%}
.vis2-y60{top:60%}.vis2-w60{width:60%}
.vis2-y61{top:61%}.vis2-w61{width:61%}
.vis2-y62{top:62%}.vis2-w62{width:62%}
.vis2-y63{top:63%}.vis2-w63{width:63%}
.vis2-y64{top:64%}.vis2-w64{width:64%}
.vis2-y65{top:65%}.vis2-w65{width:65%}
.vis2-y66{top:66%}.vis2-w66{width:66%}
.vis2-y67{top:67%}.vis2-w67{width:67%}
.vis2-y68{top:68%}.vis2-w68{width:68%}
.vis2-y69{top:69%}.vis2-w69{width:69%}
.vis2-y70{top:70%}.vis2-w70{width:70%}
.vis2-y71{top:71%}.vis2-w71{width:71%}
.vis2-y72{top:72%}.vis2-w72{width:72%}
.vis2-y73{top:73%}.vis2-w73{width:73%}
.vis2-y74{top:74%}.vis2-w74{width:74%}
.vis2-y75{top:75%}.vis2-w75{width:75%}
.vis2-y76{top:76%}.vis2-w76{width:76%}
.vis2-y77{top:77%}.vis2-w77{width:77%}
.vis2-y78{top:78%}.vis2-w78{width:78%}
.vis2-y79{top:79%}.vis2-w79{width:79%}
.vis2-y80{top:80%}.vis2-w80{width:80%}
.vis2-y81{top:81%}.vis2-w81{width:81%}
.vis2-y82{top:82%}.vis2-w82{width:82%}
.vis2-y83{top:83%}.vis2-w83{width:83%}
.vis2-y84{top:84%}.vis2-w84{width:84%}
.vis2-y85{top:85%}.vis2-w85{width:85%}
.vis2-y86{top:86%}.vis2-w86{width:86%}
.vis2-y87{top:87%}.vis2-w87{width:87%}
.vis2-y88{top:88%}.vis2-w88{width:88%}
.vis2-y89{top:89%}.vis2-w89{width:89%}
.vis2-y90{top:90%}.vis2-w90{width:90%}
.vis2-y91{top:91%}.vis2-w91{width:91%}
.vis2-y92{top:92%}.vis2-w92{width:92%}
.vis2-y93{top:93%}.vis2-w93{width:93%}
.vis2-y94{top:94%}.vis2-w94{width:94%}
.vis2-y95{top:95%}.vis2-w95{width:95%}
.vis2-y96{top:96%}.vis2-w96{width:96%}
.vis2-y97{top:97%}.vis2-w97{width:97%}
.vis2-y98{top:98%}.vis2-w98{width:98%}
.vis2-y99{top:99%}.vis2-w99{width:99%}
.vis2-y100{top:100%}.vis2-w100{width:100%}
.vis2-unit{font-size:10px;color:var(--v-sub);margin:0 0 5px}.vis2-point-detail table{width:100%;border-collapse:collapse}.vis2-point-detail th,.vis2-point-detail td{padding:8px;text-align:start}.vis2-point-detail>p{font-size:12px;line-height:1.8}
#kpi3Dashboard .vis2-tabs button{background:transparent;color:var(--v-sub)}#kpi3Dashboard .vis2-tabs button[aria-selected="true"]{background:var(--v-soft);color:var(--v-accent)}#kpi3Dashboard .vis2-decisions button{background:var(--v-soft);color:var(--v-ink)}#kpi3Dashboard .vis2-link{background:transparent;color:var(--v-accent)}
@media(min-width:1101px){
 #kpi3Dashboard[data-style="command"]{--k3-gap:7px}
 #kpi3Dashboard[data-style="command"] .kpi3-context{padding:7px 12px}
 #kpi3Dashboard[data-style="command"] .kpi3-context h1{font-size:18px;line-height:1.3;margin:2px 0}
 #kpi3Dashboard[data-style="command"] .kpi3-context-copy small,#kpi3Dashboard[data-style="command"] .kpi3-truth{font-size:10px;line-height:1.4}
 #kpi3Dashboard[data-style="command"] .kpi3-pick{padding:8px 9px 5px;gap:3px}
 #kpi3Dashboard[data-style="command"] .kpi3-label{font-size:10px;gap:3px}
 #kpi3Dashboard[data-style="command"] .kpi3-value{line-height:1.2}
 #kpi3Dashboard[data-style="command"] .kpi3-badge{font-size:8px;padding:1px 4px}
 #kpi3Dashboard[data-style="command"] .kpi3-sub{font-size:9px;line-height:1.4}
 #kpi3Dashboard[data-style="command"] .kpi3-spark{height:21px}
 #kpi3Dashboard[data-style="command"] .kpi3-explain{font-size:9px;padding:4px 9px}
 #kpi3Dashboard[data-style="command"] .vis2-content{padding:7px 11px}
 #kpi3Dashboard[data-style="command"] .vis2-section>summary{min-height:33px;padding:6px 11px}
 #kpi3Dashboard[data-style="command"] .vis2-tooltip{font-size:9px;line-height:1.4;min-height:16px;margin-block:3px}
 #kpi3Dashboard[data-style="command"] .vis2-heatmap{margin-top:10px}
 #kpi3Dashboard[data-style="command"] .vis2-heatmap>div{gap:4px;padding:5px 3px}
 #kpi3Dashboard[data-style="command"] .vis2-note{line-height:1.5;margin-block:5px}
 #kpi3Dashboard[data-style="command"] .vis2-plot{height:130px}
 #kpi3Dashboard[data-style="command"] .vis2-analytics .ana1-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
 #kpi3Dashboard[data-style="command"] .vis2-analytics .ana1-card[open]{max-height:290px}
 #kpi3Dashboard[data-style="command"] .vis2-analytics .ana1-heading p{display:none}
 #kpi3Dashboard[data-style="command"] .vis2-unit{margin:0;font-size:9px;line-height:1.3}
 #kpi3Dashboard[data-style="command"] .vis2-section>summary h2{font-size:14px;line-height:1.4}
 #kpi3Dashboard[data-style="command"] .vis2-composition>ul{gap:6px}
}
.vis2-composition-wrap{min-width:0}
@media(max-width:600px){
 body:has(#page-statements.active [data-vis2-host]) #page-statements .statement-options{display:flex;flex-wrap:wrap;min-width:0;max-width:100%}
 body:has(#page-statements.active [data-vis2-host]) #page-statements .statement-options>*{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
 body:has(#page-statements.active [data-vis2-host]) #page-statements .p11-display-chip{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
}
/* public/exp1.css (copied, comments left out) */
.exp1-root{border:1px solid var(--line);border-radius:18px;padding:22px;background:var(--panel);margin-block:24px;min-width:0;--v-paper:var(--panel);--v-soft:var(--panel2);--v-ink:var(--text);--v-sub:var(--muted);--v-line:var(--line);--v-accent:var(--accent)}
.exp1-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;min-width:0}.exp1-heading h2{font-size:22px;line-height:1.5;margin:4px 0;color:var(--text)}.exp1-heading span{font-size:11px;color:var(--accent)}.exp1-heading p{font-size:12px;color:var(--muted);line-height:1.8;margin:0;overflow-wrap:anywhere}
.exp1-root button,.exp1-dialog button{font:inherit;font-size:11px;min-height:36px;border-radius:8px;border:1px solid var(--line);padding:7px 10px;background:var(--panel2);color:var(--text);white-space:normal}
.exp1-filters{display:grid;grid-template-columns:1fr 1.4fr 1fr 1fr 1.5fr;gap:12px;margin-block:22px;padding:15px;background:var(--panel2);border:1px solid var(--line);border-radius:12px}
.exp1-filters label{display:grid;gap:7px;min-width:0;font-size:11px;color:var(--muted)}.exp1-filters input,.exp1-filters select{font:inherit;font-size:12px;color:var(--text);width:100%;min-width:0;max-width:100%;min-height:40px;padding:8px;border:1px solid var(--line);background:var(--panel);border-radius:7px}
.exp1-focus{border:1px solid var(--line);border-radius:12px;padding:18px;min-width:0}.exp1-focus h3{font-size:16px;line-height:1.8;margin:0 0 14px;overflow-wrap:anywhere}.exp1-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.exp1-kpis>div{min-width:0;display:grid;gap:8px;border-inline-start:2px solid var(--accent);padding-inline-start:12px}.exp1-kpis span{font-size:11px;color:var(--muted)}.exp1-kpis strong{font-size:25px;line-height:1.3;color:var(--text);overflow-wrap:anywhere}
.exp1-note{font-size:11px;line-height:1.9;color:var(--muted);overflow-wrap:anywhere}.exp1-alert{padding:12px;border:1px solid var(--amber);border-radius:8px;color:var(--text);font-size:12px;line-height:1.9;background:var(--panel2)}
.exp1-comparisons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-block:18px}.exp1-comparisons>div{min-width:0;border:1px solid var(--line);border-radius:8px;padding:12px;display:grid;gap:7px;align-content:start}.exp1-comparisons span{font-size:11px;color:var(--muted)}.exp1-comparisons strong{font-size:18px;overflow-wrap:anywhere;color:var(--text)}.exp1-comparisons small{font-size:10px;color:var(--muted);line-height:1.8;overflow-wrap:anywhere}
.exp1-split{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.exp1-split>summary{font-size:13px;cursor:pointer;color:var(--accent);padding-block:8px}.exp1-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.exp1-breakdown h4{font-size:13px;line-height:1.7;color:var(--text)}.exp1-breakdown table{width:100%;table-layout:fixed;border-collapse:collapse}.exp1-breakdown td,.exp1-breakdown th{font-size:11px;padding:9px 6px;text-align:start;border-bottom:1px solid var(--line);white-space:normal;overflow-wrap:anywhere}
.exp1-metadata-actions{display:flex;flex-wrap:wrap;gap:8px;margin-block:14px}.exp1-group{margin-top:22px;border-top:1px solid var(--line)}.exp1-group>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0}.exp1-group h3{font-size:16px;margin:0}.exp1-group>header span{font-size:11px;color:var(--muted)}
.exp1-account{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1.4fr) auto;gap:8px 16px;align-items:center;padding:14px 12px;border:1px solid var(--line);border-radius:9px;margin-bottom:8px;min-width:0}.exp1-account>div:first-child{display:grid;gap:5px;min-width:0}.exp1-account-name{font-weight:600!important;font-size:12px!important;text-align:start!important;overflow-wrap:anywhere}.exp1-account small{font-size:10px;color:var(--muted)}.exp1-account>strong{font-size:17px;overflow-wrap:anywhere}.exp1-account-shares{display:grid;gap:5px;font-size:10px;color:var(--muted);overflow-wrap:anywhere}.exp1-selected{border-color:var(--accent);background:var(--panel2)}.exp1-watch{font-size:10px;color:var(--amber);grid-column:1/-1}.exp1-account>.exp1-note{grid-column:1/-1;margin:0}
.exp1-dialog{width:min(1000px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:85vh;overflow:auto;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);padding:20px;box-shadow:var(--shadow)}.exp1-dialog::backdrop{background:color-mix(in srgb,var(--text) 35%,transparent)}.exp1-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.exp1-dialog-head h2{font-size:20px;margin:0}.exp1-dialog-head p{font-size:12px;overflow-wrap:anywhere}.exp1-dialog-head>button{flex:none;min-width:40px}.exp1-journals table{width:100%;border-collapse:collapse;table-layout:fixed}.exp1-journals th,.exp1-journals td{border-bottom:1px solid var(--line);padding:10px;font-size:12px;white-space:normal;overflow-wrap:anywhere;text-align:start}.exp1-journals th:nth-child(3){width:35%}
.exp1-root :focus-visible,.exp1-dialog :focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(max-width:1000px){.exp1-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.exp1-search{grid-column:span 2}.exp1-account{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.exp1-account-shares{grid-column:1}.exp1-comparisons{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){body:has(#page-details.active #exp1Analysis) #app main{margin-inline:0!important;width:auto!important}.exp1-root{padding:13px}.exp1-heading{align-items:flex-start;flex-direction:column}.exp1-heading h2{font-size:20px}.exp1-filters,.exp1-kpis,.exp1-breakdown,.exp1-comparisons{grid-template-columns:minmax(0,1fr)}.exp1-search{grid-column:auto}.exp1-focus{padding:12px}.exp1-kpis>div{grid-template-columns:minmax(0,1fr) auto;align-items:center}.exp1-kpis strong{font-size:23px}.exp1-group>header{align-items:flex-start;flex-direction:column}.exp1-account{grid-template-columns:minmax(0,1fr)}.exp1-account-shares{grid-column:auto}.exp1-account>button{width:100%}.exp1-journals table,.exp1-journals tbody{display:block}.exp1-journals thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.exp1-journals tr{display:block;border:1px solid var(--line);border-radius:8px;margin-bottom:12px;padding:7px}.exp1-journals td{display:grid;grid-template-columns:80px minmax(0,1fr);gap:8px;font-size:11px;padding:8px 4px}.exp1-journals td::before{content:attr(data-label);color:var(--muted);direction:inherit}.exp1-dialog{padding:13px}.exp1-root button,.exp1-dialog button{min-height:42px}}
@media(prefers-reduced-motion:reduce){.exp1-root *,.exp1-dialog *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* G4-LIQNX — «السيولة والتدفقات» natively in the look of the mockup's Analysis (the panels of the profitability, the forecast cards and months, the
   planning inputs, the cash charts); the classic cash difference's sheet follows, copied. No inline style (CSP). */
.nx-an-bad{color:var(--bad);font-weight:700}
.nx-an-guide{display:grid;gap:10px;justify-items:start}
.nx-an-guide p{margin:0}
.nx-an [data-nx-an-plan] section{display:grid;gap:8px;margin-block-end:14px}
.nx-an [data-nx-an-plan] h3{font-size:15px;margin:0}
.nx-an .cx1-panel h3{font-size:18px;margin:0 0 8px}
.nx-an .cx1-panel table{width:100%;border-collapse:collapse;font-size:13px}
.nx-an .cx1-panel th{background:var(--th);color:#4c5e76;font-size:12px;text-align:start;padding:10px 12px}
.nx-an .cx1-panel td{padding:10px 12px;border-block-end:1px solid var(--line);vertical-align:top}
.nx-an .vis2-page-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-block-end:12px}
.nx-an .vis2-page-head h2{font-size:18px;margin:0}
.nx-an [data-nx-an-chart]{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.nx-an [data-nx-an-chart] h3{font-size:15px;margin:0 0 8px}
@media (max-width:760px){.nx-an [data-nx-an-cx1]{min-inline-size:0;max-inline-size:100%}.nx-an .cx1-table{display:block;overflow-x:auto;max-inline-size:100%}.nx-an .cx1-why{min-width:160px}/* G4-LIQNX: the cash difference's accounts scroll inside their panel on a phone, the page keeps its width */}
/* public/cashx1.css (copied, comments left out) */
.cx1-panel{margin:0 0 12px}
.cx1-line{font-size:1.05em;margin:6px 0}
.cx1-ok{color:var(--good,#15803d)}
.cx1-bad{color:var(--bad,#b42318)}
.cx1-table{width:100%;border-collapse:collapse}
.cx1-table th,.cx1-table td{padding:6px 8px;border-bottom:1px solid var(--line,#e2e8f0);text-align:start;vertical-align:top}
.cx1-why{min-width:220px}
.cx1-total td{font-weight:700}
.cx1-extra{margin:6px 0;padding-inline-start:18px}
.cx1-words{border-top:1px dashed var(--line,#e2e8f0);padding-top:8px;margin-top:10px}
.cx1-link{border:0;background:none;padding:0 2px;color:var(--accent,#1f4e79);font:inherit;cursor:pointer;text-decoration:underline dotted}
.cx1-chip-month{opacity:.8}
/* G4-COSTNX — «التكاليف» natively in the look of the mockup's Analysis (Astra's spec: panel #fff / 1px line / radius 14, a card radius 12 / padding 18,
   th 12px 700 #4c5e76 on the table head colour, td 13px; the pack tabs 44px high). The classic packs' markup (kpi-grid, kpi, table-wrap, analysis-meta,
   costing-rules, the standard block) drawn under the interface tokens; the classic rules and tabs sheets follow, copied. No inline style (CSP). */
.nx-cost{--border:var(--line);--text-muted:var(--muted);display:grid;gap:16px;min-width:0}
.nx-cost .kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.nx-cost .kpi{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:16px 18px;display:flex;flex-direction:column;gap:6px;min-width:0;box-shadow:var(--shadow)}
.nx-cost .kpi small{font-size:12px;color:var(--muted)}
.nx-cost .kpi strong{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.nx-cost .kpi span{font-size:12px;color:var(--muted)}
.nx-cost .table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:10px}
.nx-cost .table-wrap table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.nx-cost .table-wrap th{background:var(--th);color:#4c5e76;font-size:12px;font-weight:700;text-align:start;padding:10px 12px;white-space:nowrap}
.nx-cost .table-wrap td{padding:10px 12px;border-block-end:1px solid var(--line);vertical-align:top;text-align:start}
.nx-cost .table-wrap td small{display:block;color:var(--muted);font-size:11px}
.nx-cost .muted{color:var(--muted)}
.nx-cost .error{color:var(--bad);font-weight:600}
.nx-cost .analysis-meta .warn{color:var(--warn,#b45309);font-weight:600}
.nx-cost .costing-missing{margin:10px 0 0}
.nx-cost .costing-missing button{min-height:40px;border:1px solid var(--primary);border-radius:var(--r-s);background:var(--primary);color:#fff;padding:8px 14px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.nx-cost .nx-panel-head h2{font-size:18px}
.nx-cost .nx-panel-head p{margin:4px 0 0;font-size:13px;color:var(--muted)}
.nx-cost .cost-tabs{margin:0}
.nx-cost .mfg-standard{margin-block-start:16px;display:grid;gap:10px}
.nx-cost .mfg-standard h4{margin:0;font-size:16px}
.nx-cost [data-nx-cost-preview]{display:grid;gap:10px}
.nx-cost [data-nx-cost-preview] .nx-cost-inputs{display:flex;flex-wrap:wrap;gap:12px}
.nx-cost [data-nx-cost-preview] label{display:grid;gap:4px;font-size:13px;color:var(--muted)}
.nx-cost [data-nx-cost-preview] input{min-height:40px;width:180px;max-width:100%;border:1px solid var(--line);border-radius:8px;padding:6px 10px;font:inherit;color:var(--ink);background:var(--surface)}
.nx-cost [data-nx-cost-preview] output{font-weight:700;color:var(--ink)}
.nx-cost-std-empty td{color:var(--muted)}
@media (max-width:760px){.nx-cost .kpi-grid{grid-template-columns:1fr 1fr}.nx-cost .kpi strong{font-size:18px}/* G4-COSTNX: the packs' tables scroll inside their frame on a phone, the page keeps its width */}
/* G4-WCNX — «العملاء ورأس المال العامل» natively in the look of its mockup (Astra's Workspace spec: panels #fff with a 1px line and a 12px radius, the
   accent #0869c9 on its soft #eaf3ff, the amber of a notice #c2410c); the classic page's markup (kpi-grid, kpi, table-wrap, the aging and inventory
   sections, the statement tiles) drawn under the interface tokens; the classic month words, tiles and links sheets follow, copied. No inline style (CSP). */
.nx-wc{--panel:var(--surface);--text:var(--ink);--accent:var(--primary);--amber:#c2410c;--bg:#f7f9fc;--warn:#b45309;display:grid;gap:16px;min-width:0}
.nx-wc-body{display:grid;gap:16px;min-width:0}
.nx-wc .wcp2-nav{margin-block:0}
.nx-wc .wcp2-nav a{font-size:13px;min-height:36px;display:inline-flex;align-items:center}
.nx-wc .wcp2-nav a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.nx-wc .wcp2-coverage{margin:0;border-radius:10px;border:1px solid var(--line);border-inline-start-width:4px;border-inline-start-color:var(--amber)}
.nx-wc-panel h2{font-size:18px;margin:0 0 10px}
.nx-wc-panel h3{font-size:16px;margin:0 0 10px}
.nx-wc-panel h4{font-size:15px;margin:14px 0 8px}.nx-wc-days{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.nx-wc-days h3{font-size:15px;margin:0 0 8px}.nx-wc-days ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}.nx-wc-days li{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;line-height:1.7}.nx-wc-days li.is-na{color:var(--muted)}
.nx-wc .nx-panel-head p{margin:4px 0 0;font-size:13px;color:var(--muted)}
.nx-wc .kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.nx-wc .kpi{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:16px 18px;display:flex;flex-direction:column;gap:6px;min-width:0;box-shadow:var(--shadow)}
.nx-wc .kpi small{font-size:12px;color:var(--muted)}
.nx-wc .kpi strong{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.nx-wc .kpi span{font-size:12px;color:var(--muted)}
.nx-wc .table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:10px}
.nx-wc table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.nx-wc th{background:var(--th);color:#4c5e76;font-size:12px;font-weight:700;text-align:start;padding:10px 12px;white-space:nowrap}
.nx-wc td{padding:10px 12px;border-block-end:1px solid var(--line);vertical-align:top;text-align:start}
.nx-wc [data-nx-wc-aging] table,.nx-wc [data-nx-wc-inventory] table{border:1px solid var(--line);border-radius:10px}
.nx-wc .muted{color:var(--muted)}
.nx-wc [data-wc-aging-reconciliation],.nx-wc [data-wc-inventory-reconciliation],.nx-wc [data-wc-aging-credit]{font-size:13px;margin:8px 0 0}
.nx-wc [data-nwc-basis]{font-size:12px;margin:8px 0 0}
.nx-wc #wcTable td{white-space:nowrap}
.nx-wc [data-nx-wc-charts] .vis2-page-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-block-end:12px}
.nx-wc [data-nx-wc-charts] .vis2-page-head h2{font-size:18px;margin:0}
@media (max-width:760px){.nx-wc .kpi-grid{grid-template-columns:1fr 1fr}.nx-wc .kpi strong{font-size:18px}.nx-wc [data-nx-wc-aging],.nx-wc [data-nx-wc-inventory]{overflow-x:auto}.nx-wc [data-nx-wc-aging] table,.nx-wc [data-nx-wc-inventory] table{display:block;overflow-x:auto;max-inline-size:100%}/* G4-WCNX: the wide tables scroll inside their panel on a phone, the page keeps its width */}
/* public/wcp1.css + public/cstmt1.css + public/wcp2.css (its section links and coverage notice), copied, comments left out */
.wcp1-head{margin:4px 0 10px;font-size:.92em;color:var(--muted,inherit)}
#wcCards .kpi .wcp1-when{display:block;margin-top:4px;font-style:normal;font-size:.8em;color:var(--accent,#0869c9)}
.wcp1-filter{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:6px 0 8px}
.wcp1-chip{border:1px solid var(--line,#dbe4ee);border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:.88em;padding:3px 12px;min-height:30px;cursor:pointer}
.wcp1-chip[aria-pressed="true"]{background:var(--accent,#0869c9);border-color:var(--accent,#0869c9);color:var(--panel,#fff);font-weight:600}
#wcTable tr.wcp1-current td{background:color-mix(in srgb,var(--accent,#0869c9) 9%,transparent);font-weight:600}
.cstmt1-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:8px 0}
.cstmt1-tile{border:1px solid var(--line,#e2e8f0);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:4px}
.cstmt1-tile small{opacity:.75}
.cstmt1-warn{color:var(--warn,#9a5b00);font-weight:600}
.wcp2-nav{display:flex;flex-wrap:wrap;gap:.6rem;margin-block:1rem}
.wcp2-nav a{padding:.5rem .85rem;border:1px solid var(--line);border-radius:.6rem;background:var(--panel);color:var(--text);text-decoration:none}
.wcp2-coverage{padding:1rem;border-inline-start:4px solid var(--amber);background:var(--panel);color:var(--text);font-weight:600}
/* G4-CUSTNX — the customers' section of «العملاء ورأس المال العامل» in the look of its mockup: the directory's fields and table, the analysis box, the
   tiles and the customers' tables under the interface tokens (the page's --panel, --text, --accent, --bg); the classic analysis and directory sheets
   follow, copied. No inline style (CSP). */
.nx-wc #cust1Panel{min-width:0;max-width:100%;display:block}
.nx-wc #wcp2Directory,.nx-wc .wcp2-analysis{min-width:0;max-width:100%}
.nx-wc #cust1Panel h3{font-size:18px;margin:0 0 8px}
.nx-wc #wcp2Directory h4{font-size:16px;margin:0 0 6px}
.nx-wc .wcp2-filters input,.nx-wc .wcp2-filters select,.nx-wc .cust1-filters input,.nx-wc .cust1-filters select{min-height:38px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;font:inherit;color:var(--ink);background:var(--surface)}
.nx-wc .wcp2-filters button,.nx-wc [data-wcp2-more]{min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);padding:6px 14px;font:inherit;font-size:13px;cursor:pointer}
.nx-wc .wcp2-scroll{border-radius:10px}
.nx-wc .wcp2-table th{font-size:12px;font-weight:700;color:#4c5e76;background:var(--th)}
.nx-wc .wcp2-analysis{border:1px solid var(--line);border-radius:12px;padding:0 14px;background:var(--surface)}
.nx-wc .wcp2-analysis[open]{padding-block-end:14px}
.nx-wc .cust1-tile{background:var(--surface)}
.nx-wc .cust1-tile strong{font-size:18px;font-variant-numeric:tabular-nums}
.nx-wc .cust1-table th{font-size:12px;font-weight:700;color:#4c5e76;background:var(--th)}
.nx-wc .cust1-link,.nx-wc .cust1-sort{color:var(--primary)}
.nx-wc .cust1-warn{color:var(--warn);font-weight:600}
@media (max-width:760px){.nx-wc .wcp2-filters{display:grid;grid-template-columns:minmax(0,1fr)}.nx-wc .wcp2-filters label{flex-basis:100%}.nx-wc .wcp2-filters button{justify-self:start}.nx-wc .wcp2-scroll{height:20rem}.nx-wc .cust1-table{display:block;overflow-x:auto;max-inline-size:100%}/* G4-CUSTNX: the customers' tables scroll inside their box on a phone */}
/* public/cust1.css + public/wcp2.css (the directory and the analysis box), copied, comments left out */
.cust1-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:8px 0}
.cust1-tile{border:1px solid var(--line,#e2e8f0);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:4px;min-width:0}
.cust1-tile small{opacity:.75}
.cust1-window{display:inline-flex;align-items:center;gap:6px;margin:0 0 6px}
.cust1-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:6px 0}
.cust1-filters input,.cust1-filters select{max-width:100%}
.cust1-table{width:100%;border-collapse:collapse}
.cust1-table th,.cust1-table td{padding:6px 8px;border-bottom:1px solid var(--line,#e2e8f0);text-align:start;white-space:nowrap}
.cust1-sort,.cust1-link{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline dotted}
.cust1-sort[aria-pressed="true"]{font-weight:700}
.cust1-credit td{color:var(--warn,#9a5b00)}
.cust1-bars{display:block}
.cust1-bar-sales{fill:var(--accent,#2563eb)}
.cust1-bar-coll{fill:var(--good,#15803d)}
.cust1-attention{margin:4px 0;padding-inline-start:18px}
.cust1-detail{border:1px solid var(--line,#e2e8f0);border-radius:10px;padding:8px 10px;margin:8px 0}
.wcp2-filters{display:flex;flex-wrap:wrap;align-items:end;gap:.8rem;margin-block:1rem}
.wcp2-filters label{display:flex;flex-direction:column;gap:.35rem;min-width:0;max-width:100%;flex:1 1 9rem}
.wcp2-filters input,.wcp2-filters select{max-width:100%;min-width:0;width:100%}
.wcp2-filters .wcp2-check{flex-direction:row;align-items:center;padding-block:.7rem}
.wcp2-check input{width:auto}
.wcp2-scroll{height:26rem;max-height:60vh;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:.6rem;max-width:100%}
.wcp2-table{width:100%;border-collapse:separate;border-spacing:0}
.wcp2-table th,.wcp2-table td{padding:.75rem;white-space:nowrap;text-align:start}
.wcp2-table thead th{position:sticky;top:0;z-index:1;background:var(--panel);color:var(--text);border-bottom:1px solid var(--line)}
.wcp2-table tbody tr:nth-child(even){background:var(--bg)}
.wcp2-analysis{margin-block:1.5rem;max-width:100%;min-width:0}
.wcp2-analysis summary{cursor:pointer;font-weight:600;padding-block:.8rem}
.wcp2-analysis .table-wrap,.wcp2-analysis .cust1-attention{max-height:26rem;overflow:auto;max-width:100%}
.wcp2-analysis .cust1-table th{position:sticky;top:0;background:var(--panel)}
[data-wcp2-more]{margin-block:1rem}
/* G4-IDNX — the reports family's page and its «هوية التقارير» in the look of its mockup (Astra's Reports spec: panel radius 14 with the line #dce4ed, the
   fields radius 10 with the line #dbe4ee, buttons 44px high, the primary #315bff, a two-column rhythm; the printed footer's sample under the forms). The
   classic brand preview's sheet follows, copied, with its dark sample drawn in the interface's light tokens. No inline style (CSP). */
.nx-rp{display:grid;gap:16px;min-width:0}
.nx-rp-body{min-width:0}
.nx-rp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.nx-rp-panel{border-radius:14px}
.nx-rp-panel h2{font-size:18px;margin:0}
.nx-rp-panel .nx-panel-head p{margin:4px 0 0;font-size:13px;color:var(--muted)}
.nx-rp-form{display:grid;gap:12px}
.nx-rp-form .nx-field{display:grid;gap:6px;font-size:13px;color:var(--muted)}
.nx-rp-form input:not([type=checkbox]),.nx-rp-form select{min-height:44px;border:1px solid #dbe4ee;border-radius:10px;padding:8px 12px;font:inherit;font-size:14px;color:var(--ink);background:var(--surface)}
.nx-rp-form .nx-rp-scale small{font-size:12px;color:var(--muted)}
.nx-rp-actions{display:flex;gap:10px;flex-wrap:wrap}
.nx-rp-actions .nx-btn,.nx-rp-logo .nx-btn{min-height:44px}
.nx-rp-logo{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-block-start:16px;padding-block-start:14px;border-block-start:1px solid var(--line)}
.nx-rp-logo small{color:var(--muted);font-size:12px}
.nx-rp .nx-status{margin:8px 0 0;min-height:1.2em;font-size:13px}
.nx-rp .nx-status.good{color:var(--good)}
.nx-rp .nx-status.bad{color:var(--bad)}
.nx-rp .nx-muted a{color:var(--primary)}
.nx-rp-tabs a.nx-hub-tab-link{display:inline-flex;align-items:center}
@media (max-width:760px){.nx-rp-grid{grid-template-columns:minmax(0,1fr)}}
.nx-rp .brand-preview{margin-block-start:16px;border-radius:12px;background:#f7f9fc}
.nx-rp .brand-preview-head{display:flex;align-items:center;gap:12px}
.nx-rp .brand-preview-logo{background:var(--surface);color:var(--primary)}
.nx-rp .brand-preview-head span,.nx-rp .brand-preview-meta small{display:block;color:var(--muted);font-size:12px}
/* public/styles.css (the brand preview), copied rule for rule */
.brand-preview{border:1px solid var(--line);border-radius:18px;padding:18px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.01))}
.brand-preview-logo{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;border:1px solid var(--line);background:#05080d;font-weight:900;color:#dce8fb}
.brand-preview-head strong{font-size:18px}
.brand-preview-meta{display:grid;gap:5px;border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
/* G4-MONNX — «التقرير الشهري» natively in the look of its mockup (Astra's Reports spec: panel radius 14 with the line #dce4ed, kpi cards radius 12,
   th 12px 700 #4c5e76 on #f0f4fa, a two-column rhythm): the classic report's markup (kpi-grid, kpi, the variance cells, the monthly reading with its
   signal and its decisions) drawn in the interface's light tokens; the print as a report with the identity's head and foot. No inline style (CSP). */
.nx-mon{display:grid;gap:16px;min-width:0}
.nx-mon .nx-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.nx-mon-body{display:grid;gap:16px;min-width:0}
.nx-mon .kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.nx-mon .kpi{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:16px 18px;display:flex;flex-direction:column;gap:6px;min-width:0;box-shadow:var(--shadow)}
.nx-mon .kpi small{font-size:12px;color:var(--muted)}
.nx-mon .kpi strong{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.nx-mon .kpi span,.nx-mon .kpi em{font-size:12px;color:var(--muted);font-style:normal}
.nx-mon-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.nx-mon-panel{border-radius:14px;min-width:0}
.nx-mon-panel h2{font-size:18px;margin:0}
.nx-mon .table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:10px}
.nx-mon table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.nx-mon th{background:var(--th);color:#4c5e76;font-size:12px;font-weight:700;text-align:start;padding:10px 12px;white-space:nowrap}
.nx-mon td{padding:10px 12px;border-block-end:1px solid var(--line);vertical-align:top;text-align:start}
.nx-mon .good{color:var(--good)}.nx-mon .bad{color:var(--bad)}
.nx-mon .muted{color:var(--muted)}
.nx-mon .empty{padding:18px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);background:#f3f6fa}
.nx-mon .monthly-reading{display:grid;gap:10px}
.nx-mon .reading-signal{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px;border-radius:12px;border:1px solid var(--line);background:#f7f9fc}
.nx-mon .reading-signal strong{font-size:20px;display:block;margin-top:4px}
.nx-mon .reading-signal.positive{border-color:#9fdcc4}.nx-mon .reading-signal.high{border-color:#f2c97a}.nx-mon .reading-signal.critical{border-color:#f3a6ae}
.nx-mon .reading-item{display:flex;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.nx-mon .reading-item>span{inline-size:28px;block-size:28px;flex:0 0 28px;border-radius:50%;display:grid;place-items:center;background:#eaf0ff;color:var(--primary);font-weight:700}
.nx-mon .reading-item p{margin:5px 0;color:var(--muted);line-height:1.5}
.nx-mon-print-head,.nx-mon-print-foot{display:none}
@media (max-width:760px){.nx-mon-grid{grid-template-columns:minmax(0,1fr)}.nx-mon .kpi-grid{grid-template-columns:1fr 1fr}.nx-mon .kpi strong{font-size:18px}}
@media print{.nx-mon-actions{display:none!important}.nx-mon-print-head{display:flex;align-items:center;gap:14px;border-block-end:2px solid var(--primary);padding-block-end:10px;margin-block-end:12px}.nx-mon-print-head img{block-size:44px;inline-size:auto}.nx-mon-print-head div{display:grid;gap:2px}.nx-mon-print-head b{font-size:16px}.nx-mon-print-head small{color:#52647b}.nx-mon-print-foot{display:block;border-block-start:1px solid #dce4ed;padding-block-start:8px;font-size:11px;color:#52647b}.nx-mon-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.nx-mon .table-wrap{overflow:visible}}
/* G4-MYNX — «ملخص لعدة سنوات» in the reports family's look (Astra's Reports spec: panel radius 14, the fields radius 10 with the line #dbe4ee, buttons
   44px high, th on #f0f4fa): the classic summary's markup under the interface tokens (its sheet follows, copied). No inline style (CSP). */
.nx-rp .my1{--accent:var(--primary);--soft:#f7f9fc;--bad:var(--bad);display:grid;gap:8px}
.nx-rp .my1 .my1-tools select,.nx-rp .my1 .my1-tools input{min-height:44px;border:1px solid #dbe4ee;border-radius:10px;padding:6px 10px;font:inherit;font-size:14px;color:var(--ink);background:var(--surface)}
.nx-rp .my1 .my1-tools label{font-size:13px;color:var(--muted)}
.nx-rp .my1 .my1-actions button{min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);padding:8px 14px;font:inherit;font-size:13px;cursor:pointer}
.nx-rp .my1 .my1-actions button[type="submit"]{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}
.nx-rp .my1 .my1-table thead th{background:var(--th);color:#4c5e76}
.nx-rp .my1 .error{color:var(--bad);font-weight:600}
.nx-rp .my1 .muted{color:var(--muted)}
@media (max-width:760px){.nx-rp .my1 .my1-tools{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
/* public/my1.css (copied, comments left out) */
.my1 .my1-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 14px;align-items:end;margin-block:8px}
.my1 .my1-tools label{display:grid;gap:4px;min-inline-size:0}
.my1 .my1-tools input,.my1 .my1-tools select{inline-size:100%;min-inline-size:0}
.my1 .my1-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.my1 .my1-status{grid-column:1/-1;margin:0}
.my1 .my1-head{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-block:10px 4px}
.my1 .my1-head h3{margin:0}
.my1 .my1-head p{margin:0}
.my1 .my1-halves{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.my1 .my1-half{min-inline-size:0}
.my1 .my1-half h4{display:flex;gap:8px;align-items:baseline;margin:6px 0;border-block-end:2px solid var(--line,rgba(0,0,0,.15));padding-block-end:4px}
.my1 .my1-span{font-weight:400;opacity:.75}
.my1 .my1-scroll{overflow-x:auto;max-inline-size:100%}
.my1 .my1-table{inline-size:100%;border-collapse:collapse;margin-block:4px 10px;font-variant-numeric:tabular-nums}
.my1 .my1-table caption{text-align:start;font-weight:600;padding:4px 0;color:var(--accent,#0869c9)}
.my1 .my1-table th,.my1 .my1-table td{padding:4px 6px;border-block-end:1px solid var(--line,rgba(0,0,0,.1))}
.my1 .my1-table thead th{font-size:.82em;font-weight:600;text-align:center;white-space:normal}
.my1 .my1-table th[scope="row"]{text-align:start;font-weight:500;white-space:normal;min-inline-size:9em}
.my1 .my1-table td{text-align:center;white-space:nowrap}
.my1 .my1-table .my1-total th,.my1 .my1-table .my1-total td{font-weight:600;background:var(--soft,rgba(0,0,0,.03))}
.my1 .my1-neg{color:var(--bad,#b42318)}
.my1 .my1-note{font-size:.85em;margin:2px 0}
@media (max-width:1100px){.my1 .my1-halves{grid-template-columns:minmax(0,1fr)}}
/* G4-TAXNX — «الزكاة والضرائب» in the reports family's look (Astra's Reports spec: the fields radius 10 with the line #dbe4ee, buttons 44px high, th
   on #f0f4fa): the classic report's markup under the interface tokens (its sheet follows, copied). No inline style (CSP). */
.nx-rp .tax1{--accent:var(--primary);--soft:#f7f9fc;display:grid;gap:8px}
.nx-rp .tax1 .tx-tools select,.nx-rp .tax1 .tx-tools input,.nx-rp .tax1 .tx-form select,.nx-rp .tax1 .tx-form input:not([type=checkbox]){min-height:44px;border:1px solid #dbe4ee;border-radius:10px;padding:6px 10px;font:inherit;font-size:14px;color:var(--ink);background:var(--surface)}
.nx-rp .tax1 .tx-tools label,.nx-rp .tax1 .tx-form label{font-size:13px;color:var(--muted)}
.nx-rp .tax1 button{min-height:40px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);padding:6px 14px;font:inherit;font-size:13px;cursor:pointer}
.nx-rp .tax1 button.primary,.nx-rp .tax1 button[type="submit"]{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}
.nx-rp .tax1 .tx-table thead th,.nx-rp .tax1 .tx-table caption{color:#4c5e76}
.nx-rp .tax1 .error{color:var(--bad);font-weight:600}
.nx-rp .tax1 .muted{color:var(--muted)}
.nx-rp .tax1 [aria-invalid="true"]{border-color:var(--bad)!important}
@media (max-width:760px){.nx-rp .tax1 .tx-table{display:block;overflow-x:auto;max-inline-size:100%}}
/* G4-RCNX — the report centre's stages in the reports family's look (Astra's Reports spec: panels and rows radius 10 on the line #dbe4ee, buttons 44px
   high in the primary, notices on #eaf0ff, empty states on #f3f6fa, one column on a phone): the classic centre's markup (mcd-*, rc-*, rv-*, op-*, the
   pack preview) under the interface tokens. No inline style (CSP). */
.nx-rp .nx-rc{display:grid;gap:14px}
.nx-rp .rc-flow{margin:0;padding:8px 12px;border-radius:10px;background:#eaf0ff;color:#2a3f66;font-size:13px}
.nx-rp .mcd-card{display:flex;flex-direction:column;gap:10px;min-width:0;padding:18px 20px;border:1px solid #dbe4ee;border-radius:12px;background:var(--surface);color:var(--ink)}
.nx-rp .mcd-head{display:flex;flex-direction:column;gap:4px}
.nx-rp .mcd-head h3{margin:0;font-size:16px;line-height:1.35;color:var(--ink)}
.nx-rp .mcd-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}
.nx-rp .mcd-rows{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.nx-rp .mcd-row{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;justify-content:space-between;padding:12px 14px;border:1px solid #dbe4ee;border-radius:10px;background:var(--surface)}
.nx-rp .mcd-row>div{display:grid;gap:3px;min-width:0;flex:1 1 260px}
.nx-rp .mcd-row b{font-size:14px;font-weight:600;overflow-wrap:anywhere}
.nx-rp .mcd-row small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.nx-rp .mcd-go,.nx-rp .hc-link{min-height:44px;padding:0 14px;border:1px solid #dbe4ee;border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.nx-rp .mcd-go:hover,.nx-rp .hc-link:hover{border-color:var(--primary);background:var(--primary-soft)}
.nx-rp .mcd-go:focus-visible,.nx-rp .hc-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.nx-rp .mcd-note{margin:0;padding:10px 12px;border-radius:10px;background:#eaf0ff;color:#2a3f66;font-size:13px}
.nx-rp .mcd-empty{margin:0;padding:14px;border:1px solid #dbe4ee;border-radius:10px;background:#f3f6fa;color:var(--muted);font-size:14px}
.nx-rp .rc-versions .mcd-row[data-kind="version"]{flex-wrap:wrap}
.nx-rp .rv-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.nx-rp .mcd-row>.rv-share-block{flex:1 1 100%;display:grid;gap:8px;margin:4px 0 0;padding:12px 0 0;border-top:1px dashed #dbe4ee}
.nx-rp .rv-share-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px 12px;align-items:end;margin:0}
.nx-rp .rv-share-form label,.nx-rp .op-form label{display:flex;flex-direction:column;gap:4px;margin:0;font-size:13px;color:var(--muted)}
.nx-rp .rv-share-form select,.nx-rp .rv-share-form input,.nx-rp .op-form input,.nx-rp .op-form textarea{min-height:44px;border:1px solid #dbe4ee;border-radius:10px;padding:8px 10px;font:inherit;font-size:14px;color:var(--ink);background:var(--surface);min-width:0}
.nx-rp .rv-share-form button,.nx-rp .op-actions button[type="submit"]{justify-self:start;background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}
.nx-rp .rv-share-link{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0;padding:10px 12px;border-radius:10px;background:#eaf0ff}
.nx-rp .rv-share-link code{word-break:break-all;font-size:12px}
.nx-rp .rv-share-row[data-state="revoked"] b,.nx-rp .rv-share-row[data-state="expired"] b,.nx-rp .rv-share-row[data-state="exhausted"] b{color:var(--muted)}
.nx-rp .op-form{display:grid;gap:10px;margin:4px 0 0}
.nx-rp .op-form textarea{min-height:150px;resize:vertical;line-height:1.7}
.nx-rp .op-count{justify-self:end;font-size:12px;color:var(--muted)}
.nx-rp .op-notes{border:1px solid #dbe4ee;border-radius:10px;padding:8px 12px;display:grid;gap:8px}
.nx-rp .op-notes summary{cursor:pointer;font-weight:600;font-size:13px}
.nx-rp .op-notes textarea{min-height:64px}
.nx-rp .op-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.nx-rp .op-issued{margin:0;padding:12px 14px;border:1px solid #dbe4ee;border-radius:10px;background:#f7f9fc}
.nx-rp .op-issued .op-text{margin:8px 0 0;line-height:1.75}
.nx-rp .op-notes-list{margin:8px 0 0;padding-inline-start:18px;display:grid;gap:4px;font-size:13px}
.nx-rp .hc-pack-dialog{width:min(1100px,95vw);height:92vh;padding:0;border:1px solid #dbe4ee;border-radius:14px;background:var(--surface)}
.nx-rp .hc-pack-dialog iframe{display:block;width:100%;height:calc(100% - 60px);border:0}
.nx-rp .hc-pack-bar{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid #dbe4ee}
.nx-rp .hc-pack-bar h3{margin:0;font-size:15px}
.nx-rp .hc-pack-bar>div{display:flex;gap:6px}
@media (max-width:760px){.nx-rp .mcd-card{padding:14px}.nx-rp .rv-share-form{grid-template-columns:minmax(0,1fr)}.nx-rp .mcd-row>div{flex-basis:100%}}
/* G4-PACKNX — «الحزم» in the reports family's look (Astra's Reports spec, the packs state: panels radius 14 on the line #dce4ed, fields and buttons 44px
   radius 10, the primary filled, notices on #eaf0ff, one column on a phone): the classic catalogue, look and forms under the interface tokens (the
   classic sheets follow, copied, reading the classic tokens mapped here). No inline style (CSP). */
.nx-rp .nx-pk{--accent:var(--primary);--panel:var(--surface);--text:var(--ink);--border:#dbe4ee;--line:#dbe4ee;--bg:#f3f6fa;display:grid;gap:14px}
.nx-rp .nx-pk-panel{border:1px solid #dce4ed;border-radius:14px;padding:20px 22px;background:var(--surface);min-width:0}
.nx-rp .nx-pk .rptcat1-catalog{border-bottom:1px solid #dce4ed;margin:0;padding-bottom:20px}
.nx-rp .nx-pk .rpt20-choices{border-radius:14px;padding:20px 22px}
.nx-rp .nx-pk .rptcat1-catalog input,.nx-rp .nx-pk select,.nx-rp .nx-pk input:not([type=checkbox]):not([type=color]),.nx-rp .nx-pk textarea{min-height:44px;border:1px solid #dbe4ee;border-radius:10px;padding:8px 10px;font:inherit;font-size:14px;color:var(--ink);background:var(--surface);min-width:0;box-sizing:border-box}
.nx-rp .nx-pk textarea{min-height:96px;resize:vertical;line-height:1.6}
.nx-rp .nx-pk .stack{display:grid;gap:10px}
.nx-rp .nx-pk .two-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nx-rp .nx-pk .inline-check{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink)}
.nx-rp .nx-pk .actions{display:flex;flex-wrap:wrap;gap:8px}
.nx-rp .nx-pk button:not(.rptcat1-item):not([data-rpt20-style]){min-height:44px;padding:0 16px;border:1px solid #dbe4ee;border-radius:10px;background:var(--surface);color:var(--primary);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.nx-rp .nx-pk button.primary,.nx-rp .nx-pk #emailReportForm button[type="submit"]{background:var(--primary);border-color:var(--primary);color:#fff}
.nx-rp .nx-pk button:disabled{opacity:.6;cursor:default}
.nx-rp .nx-pk .rv-issue{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0 0;padding-top:12px;border-top:1px dashed #dbe4ee}
.nx-rp .nx-pk .rv-issue small{color:var(--muted);font-size:13px}
.nx-rp .nx-pk .rptcat1-notice:not(:empty),.nx-rp .nx-pk .rpt20-note[role="status"]:not(:empty){padding:8px 12px;border-radius:8px;background:#eaf0ff;color:#2a3f66}
.nx-rp .nx-pk #emailReportStatus .success{color:var(--good);font-weight:600}
.nx-rp .nx-pk #emailReportStatus .error{color:var(--bad);font-weight:600}
@media (max-width:760px){.nx-rp .nx-pk-panel,.nx-rp .nx-pk .rpt20-choices{padding:14px}.nx-rp .nx-pk .two-fields{grid-template-columns:minmax(0,1fr)}.nx-rp .nx-pk .rptcat1-catalog>header{flex-direction:column;align-items:stretch}}
/* public/rpt20.css (copied, comments left out) */
.rpt20-choices{grid-column:1/-1;min-width:0;border:1px solid var(--border);border-radius:14px;padding:16px;background:var(--panel);color:var(--text)}
.rpt20-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.rpt20-heading h3{margin:0}.rpt20-heading span,.rpt20-note,.rpt20-adjusted{font-size:12px;color:var(--muted)}
.rpt20-styles{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px}.rpt20-mini-S7{height:55px;grid-template-columns:1fr;border-top:3px double var(--accent)}.rpt20-original p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.7}/* G4-RPT21: seven choices */.rpt20-styles button{display:grid;gap:5px;text-align:start;padding:9px;min-width:0;border:1px solid var(--border);background:var(--panel);color:var(--text)}.rpt20-styles button[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:1px}.rpt20-styles b{font-size:12px;overflow-wrap:anywhere}.rpt20-styles small{color:var(--muted)}
.rpt20-mini{height:55px;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:9px;border:1px solid var(--border);border-top:8px solid var(--accent);background:var(--bg)}.rpt20-mini i{display:block;background:var(--accent);opacity:.22}.rpt20-mini-S2{height:42px;grid-template-columns:2fr 1fr 1fr}.rpt20-mini-S3{grid-template-columns:repeat(2,1fr);border-top-width:3px}.rpt20-mini-S4{height:42px;background:var(--text)}.rpt20-mini-S4 i{background:var(--panel);opacity:.5}.rpt20-mini-S5{border:0;border-bottom:2px solid var(--accent);padding:16px 6px}.rpt20-mini-S6{height:42px;grid-template-columns:repeat(3,1fr);border-top-width:3px}
.rpt20-controls{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:16px 0 8px}.rpt20-controls label{display:grid;gap:5px;min-width:120px;font-size:12px}.rpt20-controls input[type=color]{width:100%;height:38px}.rpt20-controls [hidden]{display:none}.rpt20-controls button{margin-inline-start:auto}.rpt20-note:empty{display:none}
.rpt20-paper{background:var(--rpt20-paper);color:var(--rpt20-ink);border:1px solid var(--rpt20-border)}.rpt20-preview{padding:20px;min-width:0;margin-top:14px;border-top:7px solid var(--rpt20-primary)}.rpt20-preview header>span{font-size:11px;color:var(--rpt20-sub)}.rpt20-preview header h3{margin:6px 0;color:var(--rpt20-ink)}.rpt20-preview header p{font-size:12px;color:var(--rpt20-sub);line-height:1.7}
.rpt20-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.rpt20-cards article{border:1px solid var(--rpt20-border);border-radius:8px;padding:12px;display:flex;flex-direction:column;align-items:start;gap:7px;min-width:0}.rpt20-cards article>span{color:var(--rpt20-sub);font-size:12px}.rpt20-cards strong{font-size:24px;line-height:1.4;color:var(--rpt20-ink)}.rpt20-cards small,.rpt20-cards p{font-size:11px;line-height:1.6;overflow-wrap:anywhere;margin:0;color:var(--rpt20-sub)}.rpt20-status{display:inline-block;border-radius:5px;padding:2px 6px;font-size:10px;background:var(--rpt20-warn-soft);color:var(--rpt20-warn)}.rpt20-good{color:var(--rpt20-gain);background:var(--rpt20-gain-soft)}.rpt20-bad{color:var(--rpt20-loss);background:var(--rpt20-loss-soft)}
.rpt20-preview footer{display:flex;align-items:center;gap:12px;border-top:1px solid var(--rpt20-border);margin-top:16px;padding-top:10px;color:var(--rpt20-sub);font-size:9px;flex-wrap:wrap}.rpt20-mark{width:34px;height:auto;opacity:.45;filter:brightness(0)}.rpt20-S4 .rpt20-mark{filter:brightness(0) invert(1)}
.rpt20-S2 .rpt20-cards{grid-template-columns:repeat(6,minmax(0,1fr))}.rpt20-S3 .rpt20-cards{gap:6px}.rpt20-S3 .rpt20-cards article{border-radius:0;padding:8px}.rpt20-S3 .rpt20-cards strong{font-size:20px}.rpt20-S5{border-top-width:2px;padding:26px}.rpt20-S5 .rpt20-cards article{border:0;border-inline-start:2px solid var(--rpt20-primary);border-radius:0}.rpt20-S6 .rpt20-cards{gap:6px}.rpt20-S6 .rpt20-cards article{padding:8px}
.rpt20-choices button:focus-visible,.rpt20-choices select:focus-visible,.rpt20-choices input:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
#page-reports:has(#rpt20Choices)>.grid-2:has(#reportForm){grid-template-columns:minmax(0,1fr)}
#rpt20Choices .rpt20-mini{border-top-color:var(--accent);background:var(--bg)}#rpt20Choices .rpt20-mini i{background:var(--accent)}#rpt20Choices .rpt20-mini-S4{background:var(--text)}#rpt20Choices .rpt20-mini-S4 i{background:var(--panel)}
#rpt20Choices .rpt20-preview>header{display:block}#rpt20Choices .rpt20-preview>header h3{white-space:normal;overflow-wrap:anywhere}
#rpt20Choices .rpt20-cards,#rpt20Choices .rpt20-S2 .rpt20-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))}
#rpt20Choices .rpt20-cards strong{max-width:100%;overflow-wrap:anywhere}#rpt20Choices .rpt20-cards small,#rpt20Choices .rpt20-cards p{color:var(--rpt20-sub)}
#rpt20Choices .rpt20-mark{filter:brightness(0);opacity:.45}#rpt20Choices .rpt20-S4 .rpt20-mark{filter:brightness(0) invert(1)}
@media(max-width:1050px){.rpt20-styles{grid-template-columns:repeat(3,minmax(0,1fr))}.rpt20-S2 .rpt20-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){body:has(#page-reports.active #rpt20Choices) #app main{padding-inline:10px}body:has(#page-reports.active #rpt20Choices) #page-reports>.grid-2{grid-template-columns:minmax(0,1fr)!important}.rpt20-choices{padding:10px}.rpt20-heading{display:block}.rpt20-styles{grid-template-columns:repeat(2,minmax(0,1fr))}.rpt20-controls{display:grid;grid-template-columns:1fr;width:100%}.rpt20-controls button{margin:0}.rpt20-preview{padding:12px}#rpt20Choices .rpt20-cards,#rpt20Choices .rpt20-S2 .rpt20-cards{grid-template-columns:1fr}.rpt20-preview footer span{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.rpt20-choices *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:600px){body:has(#page-reports.active #rpt20Choices) #app main{margin-inline:0!important;width:auto!important}}
/* public/rptcat1.css (copied, comments left out) */
.rptcat1-catalog{grid-column:1/-1;min-width:0;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:8px;color:var(--text)}
.rptcat1-catalog>header{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:16px}.rptcat1-catalog h3{margin:0;font-size:18px;line-height:1.7}.rptcat1-catalog label{display:grid;gap:6px;min-width:min(300px,100%);font-size:11px;color:var(--muted)}.rptcat1-catalog input{width:100%;min-height:40px}
.rptcat1-group{border:1px solid var(--line);border-radius:12px;margin-top:9px;background:var(--panel);overflow:hidden}.rptcat1-group>summary{padding:13px 15px;cursor:pointer;font-weight:600;font-size:13px;color:var(--text)}.rptcat1-group>summary small{font-weight:400;margin-inline-start:10px;color:var(--muted)}.rptcat1-group[open]>summary{border-bottom:1px solid var(--line);color:var(--accent)}
.rptcat1-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:12px}.rptcat1-item{display:flex;flex-direction:column;gap:8px;align-items:stretch;text-align:start;min-width:0;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font:inherit;cursor:pointer}.rptcat1-item:hover{border-color:var(--accent)}.rptcat1-item[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--panel))}.rptcat1-line{display:flex;align-items:start;justify-content:space-between;gap:8px;flex-wrap:wrap}.rptcat1-line b{font-size:13px;line-height:1.7}.rptcat1-description{color:var(--muted);font-size:11px;line-height:1.8}.rptcat1-action{font-size:10px;color:var(--accent);margin-top:auto}.rptcat1-recent{font-size:9px;padding:3px 6px;border-radius:4px;background:color-mix(in srgb,var(--accent) 9%,var(--panel));color:var(--accent)}
.rptcat1-notice,.rptcat1-empty{font-size:12px;color:var(--muted);line-height:1.8;margin:12px 0 0}.rptcat1-notice:empty{display:none}.rptcat1-catalog button:focus-visible,.rptcat1-catalog summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.rptcat1-catalog~.two-fields:has(select[name=reportType]){grid-template-columns:minmax(0,1fr)}
@media(max-width:650px){body:has(#page-reports.active #rptcat1Catalog) #app main{margin-inline:0!important;width:auto!important}.rptcat1-catalog>header{display:grid;grid-template-columns:1fr;gap:10px}.rptcat1-catalog label{min-width:0}.rptcat1-items{grid-template-columns:minmax(0,1fr);padding:8px}.rptcat1-item{padding:12px}.rptcat1-catalog h3{font-size:17px}}
@media(prefers-reduced-motion:reduce){.rptcat1-catalog *{transition:none!important;animation:none!important}}
/* public/home-cards.css — the chapter picker (copied) */
#cfoVisionChapters.vc-picker{border:1px solid var(--desk-border,#dbe4ee);border-radius:12px;padding:10px 14px 12px;margin:6px 0 0;min-width:0}
#cfoVisionChapters.vc-picker legend{padding:0 6px;font-weight:700;font-size:13px}
#cfoVisionChapters .vc-note{margin:2px 0 10px;font-size:12px;line-height:1.5;color:var(--desk-sub,#596c84)}
#cfoVisionChapters .vc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px 14px}
#cfoVisionChapters .vc-chapter{display:flex;align-items:center;gap:8px;margin:0;padding:4px 0;font-size:12.5px;line-height:1.4;cursor:pointer;min-width:0}
#cfoVisionChapters .vc-chapter input[type="checkbox"]{width:16px!important;height:16px!important;min-width:16px!important;min-height:0!important;padding:0!important;margin:0!important;flex:0 0 16px;border-radius:4px}
/* G4-SCHEDNX — «المجدولة» and «الأرشيف» in the reports family's look (Astra's Reports spec: panels radius 14 on the line #dce4ed, fields and buttons
   44px radius 10, the primary filled, the empty state on #f3f6fa, one column on a phone): the classic schedule form, list and PDF archive under the
   interface tokens. No inline style (CSP). */
.nx-rp .nx-sc{display:grid;gap:14px}
.nx-rp .nx-sc-panel{border:1px solid #dce4ed;border-radius:14px;padding:20px 22px;background:var(--surface);min-width:0;display:grid;gap:14px}
.nx-rp .nx-sc .nx-panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.nx-rp .nx-sc .stack{display:grid;gap:10px}
.nx-rp .nx-sc .two-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nx-rp .nx-sc .sched-field,.nx-rp .nx-sc .retention-box label{display:grid;gap:4px;font-size:13px;color:var(--muted);min-width:0}
.nx-rp .nx-sc .hidden{display:none!important}
.nx-rp .nx-sc select,.nx-rp .nx-sc input{min-height:44px;border:1px solid #dbe4ee;border-radius:10px;padding:8px 10px;font:inherit;font-size:14px;color:var(--ink);background:var(--surface);min-width:0;box-sizing:border-box;width:100%}
.nx-rp .nx-sc button{min-height:44px;padding:0 16px;border:1px solid #dbe4ee;border-radius:10px;background:var(--surface);color:var(--primary);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.nx-rp .nx-sc button.primary{background:var(--primary);border-color:var(--primary);color:#fff;justify-self:start}
.nx-rp .nx-sc button.mini,.nx-rp .nx-sc a.mini{min-height:36px;padding:0 12px;font-size:13px;display:inline-flex;align-items:center;border:1px solid #dbe4ee;border-radius:9px;background:var(--surface);color:var(--primary);text-decoration:none}
.nx-rp .nx-sc button.mini.danger{color:var(--bad);border-color:#f3c7c2}
.nx-rp .nx-sc button:disabled{opacity:.55;cursor:default}
.nx-rp .nx-sc .sc-report{padding:12px;border:1px dashed #dbe4ee;border-radius:10px;background:#f7f9fc}
.nx-rp .nx-sc .sched-next{margin:0;color:var(--muted);font-size:13px}
.nx-rp .nx-sc .retention-box{display:grid;gap:10px;padding:12px;border:1px solid #dbe4ee;border-radius:10px;background:#f7f9fc}
.nx-rp .nx-sc .retention-box small{color:var(--muted);font-size:12px}
.nx-rp .nx-sc .actions{display:flex;flex-wrap:wrap;gap:8px}
.nx-rp .nx-sc .archive-stats{display:flex;flex-wrap:wrap;gap:8px 18px;padding:10px 12px;border-radius:10px;background:#eaf0ff;color:#2a3f66;font-size:13px}
.nx-rp .nx-sc .table-wrap{overflow-x:auto;max-inline-size:100%}
.nx-rp .nx-sc table{width:100%;border-collapse:collapse;font-size:13px}
.nx-rp .nx-sc th{background:#f0f4fa;color:#4c5e76;font-weight:600;text-align:start;padding:8px 10px;white-space:nowrap}
.nx-rp .nx-sc td{padding:8px 10px;border-top:1px solid #e6edf5;vertical-align:middle}
.nx-rp .nx-sc td.muted{background:#f3f6fa;color:var(--muted);text-align:center}
.nx-rp .nx-sc .error{color:var(--bad);font-weight:600}
@media (max-width:760px){.nx-rp .nx-sc-panel{padding:14px}.nx-rp .nx-sc .two-fields{grid-template-columns:minmax(0,1fr)}.nx-rp .nx-sc table{display:block;overflow-x:auto;max-inline-size:100%}}
/* G4-MAKENX — «اعمل تقرير» in the reports family's look (Astra's Reports spec, «مركز التقارير»: the panel radius 14 on the line #dce4ed, the eyebrow,
   the title 18px/700, the primary button 44px): the classic centre's header under the interface tokens. No inline style (CSP). */
.nx-rp .rc-center{margin:0 0 14px}
.nx-rp .rc-center .ctl-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 16px}
.nx-rp .rc-center .ctl-head small{grid-column:1;display:block;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.14em}
.nx-rp .rc-center .ctl-head h3{grid-column:1;margin:0;font-size:18px;font-weight:700;line-height:1.4;color:var(--ink)}
.nx-rp .rc-center .ctl-head p{grid-column:1;margin:0;color:var(--muted);font-size:14px}
.nx-rp .rc-center .rc-new{grid-column:2;grid-row:1/span 3;min-height:44px;padding:0 18px;border:1px solid var(--primary);border-radius:10px;background:var(--primary);color:#fff;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.nx-rp .rc-center .rc-new:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
@media (max-width:760px){.nx-rp .rc-center .ctl-head{grid-template-columns:minmax(0,1fr)}.nx-rp .rc-center .rc-new{grid-column:1;grid-row:auto;justify-self:start}}
/* G4-RBNX — «منشئ التقارير» in the reports family's look (Astra's Reports spec, «منشئ التقارير»: panels radius 14 on the line #dce4ed, fields and buttons
   44px radius 10, the primary for the main action, notices on #eaf0ff, one column on a phone): the classic builder's markup under the interface tokens
   (its own sheet, adopted by the builder as on the classic page, keeps its layout). No inline style written by the screen (CSP). */
.nx-rp .nx-rb{display:grid;gap:14px}
.nx-rp .nx-rb-guide{border:1px solid #dce4ed;border-radius:14px;padding:14px 18px;background:#f7f9fc}
.nx-rp .nx-rb-guide summary{cursor:pointer;font-weight:600;color:var(--primary)}
.nx-rp .nx-rb-guide p,.nx-rp .nx-rb-guide li{color:var(--ink);font-size:14px;line-height:1.7}
.nx-rp .nx-rb #reportBuilder{margin:0;padding:20px 22px;border:1px solid #dce4ed;border-radius:14px;background:var(--surface);color:var(--ink)}
.nx-rp .nx-rb #reportBuilder>summary{font-size:18px;font-weight:700;margin-bottom:6px}
.nx-rp .nx-rb #reportBuilder h4{margin:18px 0 6px;font-size:16px;color:var(--ink)}
.nx-rp .nx-rb #reportBuilder label{font-size:13px;color:var(--muted)}
.nx-rp .nx-rb #reportBuilder input:not([type=checkbox]),.nx-rp .nx-rb #reportBuilder select,.nx-rp .nx-rb #reportBuilder textarea{min-height:44px;border:1px solid #dbe4ee;border-radius:10px;padding:8px 10px;font:inherit;font-size:14px;color:var(--ink);background:var(--surface);box-sizing:border-box}
.nx-rp .nx-rb #reportBuilder button{min-height:40px;padding:0 14px;margin:4px;border:1px solid #dbe4ee;border-radius:10px;background:var(--surface);color:var(--primary);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.nx-rp .nx-rb #reportBuilder button[data-rb-preview],.nx-rp .nx-rb #reportBuilder button[data-rb-save]{background:var(--primary);border-color:var(--primary);color:#fff}
.nx-rp .nx-rb #reportBuilder button:disabled{opacity:.55;cursor:default}
.nx-rp .nx-rb #reportBuilder fieldset,.nx-rp .nx-rb #reportBuilder .rb-chip,.nx-rp .nx-rb #reportBuilder .rb-card{border-color:#dbe4ee}
.nx-rp .nx-rb #reportBuilder [data-rb-status]:not(:empty){padding:8px 12px;border-radius:8px;background:#eaf0ff;color:#2a3f66}
.nx-rp .nx-rb #reportBuilder details>summary{cursor:pointer}
.nx-rp .nx-rb #reportBuilder table{width:100%;border-collapse:collapse;font-size:13px}
.nx-rp .nx-rb #reportBuilder th{background:#f0f4fa;color:#4c5e76;text-align:start;padding:8px 10px}
.nx-rp .nx-rb #reportBuilder td{padding:8px 10px;border-top:1px solid #e6edf5}
@media (max-width:760px){.nx-rp .nx-rb #reportBuilder{padding:14px}.nx-rp .nx-rb #reportBuilder .table-wrap,.nx-rp .nx-rb #reportBuilder table{display:block;overflow-x:auto;max-inline-size:100%}}
/* G4-BSNX — «قصة المجلس وحزمة المجلس» in the reports family's look (Astra's Reports spec, tab-3: panels radius 14 on the line #dce4ed, fields and
   buttons 44px radius 10, the primary for the main action (the title saved, the pack issued), empty states on #f3f6fa, notices on #eaf0ff, one column on
   a phone): the classic overview's cards (hc-*) under the interface tokens — the story first and across, then the performance, the cash lab and the
   evidence. No inline style written by the screen (CSP). */
.nx-rp .nx-bs{display:grid;gap:14px}
.nx-rp .nx-bs .hc-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:16px;margin:0}
.nx-rp .nx-bs .hc-story{grid-column:1 / -1;order:-1}
.nx-rp .nx-bs .hc-card{display:flex;flex-direction:column;gap:12px;min-width:0;padding:20px 22px;border:1px solid #dce4ed;border-radius:14px;background:var(--surface);color:var(--ink)}
.nx-rp .nx-bs .hc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.nx-rp .nx-bs .hc-head small{display:block;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.14em}
.nx-rp .nx-bs .hc-head h3{margin:4px 0 0;font-size:17px;line-height:1.3;color:var(--ink)}
.nx-rp .nx-bs .hc-link{color:var(--primary);font-weight:600}
.nx-rp .nx-bs .hc-link:disabled,.nx-rp .nx-bs .hc-primary:disabled{opacity:.5;cursor:not-allowed}
.nx-rp .nx-bs .hc-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.nx-rp .nx-bs .hc-metric{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}
.nx-rp .nx-bs .hc-metric select,.nx-rp .nx-bs .hc-shift select,.nx-rp .nx-bs .hc-story-title input{min-height:44px;padding:0 10px;border:1px solid #dbe4ee;border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;box-sizing:border-box}
.nx-rp .nx-bs .hc-toggle{display:inline-flex;gap:4px;padding:4px;border:1px solid #dbe4ee;border-radius:12px;background:#f3f6fa}
.nx-rp .nx-bs .hc-toggle button,.nx-rp .nx-bs .hc-months button{min-height:40px;padding:0 12px;border:0;border-radius:9px;background:transparent;color:var(--muted);font:inherit;font-size:13px;cursor:pointer}
.nx-rp .nx-bs .hc-toggle button[aria-pressed="true"],.nx-rp .nx-bs .hc-months button[aria-pressed="true"]{background:var(--surface);color:var(--primary);font-weight:700;box-shadow:0 1px 3px rgba(16,38,65,.12)}
.nx-rp .nx-bs .hc-toggle button:focus-visible,.nx-rp .nx-bs .hc-months button:focus-visible,.nx-rp .nx-bs select:focus-visible,.nx-rp .nx-bs input:focus-visible,.nx-rp .nx-bs .hc-primary:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.nx-rp .nx-bs .hc-figure{display:grid;gap:2px}
.nx-rp .nx-bs .hc-caption{margin:0;color:var(--muted);font-size:13px}
.nx-rp .nx-bs .hc-figure strong{font-size:30px;line-height:1.15;font-variant-numeric:tabular-nums;unicode-bidi:isolate}
.nx-rp .nx-bs .hc-var{margin:0;color:var(--muted);font-size:13px}
.nx-rp .nx-bs .hc-var b{font-variant-numeric:tabular-nums}
.nx-rp .nx-bs .hc-var[data-tone="gain"] b{color:var(--good)}
.nx-rp .nx-bs .hc-var[data-tone="loss"] b{color:var(--bad)}
.nx-rp .nx-bs .hc-note{margin:0;color:var(--muted);font-size:12px;line-height:1.6}
.nx-rp .nx-bs .hc-empty{margin:0;padding:14px;border-radius:10px;background:#f3f6fa;color:var(--muted);font-size:13px;line-height:1.6}
.nx-rp .nx-bs .hc-chart{margin:0}
.nx-rp .nx-bs .hc-chart svg{display:block;width:100%;height:160px}
.nx-rp .nx-bs .hc-axis{stroke:#dce4ed;stroke-width:1}
.nx-rp .nx-bs .hc-bar-actual{fill:var(--primary)}
.nx-rp .nx-bs .hc-bar-actual.hc-neg{fill:var(--bad)}
.nx-rp .nx-bs .hc-bar-compare{fill:#9aa7c7}
.nx-rp .nx-bs .hc-has-sel .hc-month:not(.hc-on) rect{opacity:.45}
.nx-rp .nx-bs .hc-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:6px;color:var(--muted);font-size:12px}
.nx-rp .nx-bs .hc-key::before{content:"";display:inline-block;width:10px;height:10px;margin-inline-end:6px;border-radius:2px;vertical-align:-1px}
.nx-rp .nx-bs .hc-key-actual::before{background:var(--primary)}
.nx-rp .nx-bs .hc-key-compare::before{background:#9aa7c7}
.nx-rp .nx-bs .hc-key-floor::before{height:0;border-top:2px dashed var(--bad);background:transparent;vertical-align:3px}
.nx-rp .nx-bs .hc-floor{fill:none;stroke:var(--bad);stroke-width:1.5;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}
.nx-rp .nx-bs .hc-wk{fill:var(--muted);font-size:11px}
.nx-rp .nx-bs .hc-months{display:flex;flex-wrap:wrap;gap:4px;direction:ltr}
[dir="rtl"] .nx-rp .nx-bs .hc-months{justify-content:flex-end}
.nx-rp .nx-bs .hc-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;background:var(--good-soft,#e7f6ef);color:var(--good);font-size:12px;font-weight:700;white-space:nowrap}
.nx-rp .nx-bs .hc-chip[data-state="PROVISIONAL"]{background:var(--warn-soft,#fdf3e7);color:#a35b11}
.nx-rp .nx-bs .hc-chip-plain{background:var(--primary-soft);color:var(--primary)}
.nx-rp .nx-bs .hc-accounts{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.nx-rp .nx-bs .hc-accounts li{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.6fr) auto;align-items:center;gap:12px}
.nx-rp .nx-bs .hc-acct{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.nx-rp .nx-bs .hc-track{display:block;width:100%;height:6px}
.nx-rp .nx-bs .hc-track-bg{fill:#eef2f7}
.nx-rp .nx-bs .hc-track-bar{fill:var(--primary)}
[dir="ltr"] .nx-rp .nx-bs .hc-track{transform:scaleX(-1)}
.nx-rp .nx-bs .hc-accounts b,.nx-rp .nx-bs .hc-total b{font-variant-numeric:tabular-nums;unicode-bidi:isolate}
.nx-rp .nx-bs .hc-total{display:flex;justify-content:space-between;gap:12px;margin:0;padding-top:12px;border-top:1px solid #dce4ed;font-weight:700}
.nx-rp .nx-bs .hc-source{margin:0;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.nx-rp .nx-bs .hc-evidence .hc-link,.nx-rp .nx-bs .hc-add{align-self:flex-start}
.nx-rp .nx-bs .hc-add{margin-top:auto}
.nx-rp .nx-bs .hc-shift{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:end;gap:10px;padding:12px;border:1px solid #dbe4ee;border-radius:12px;background:#f3f6fa}
.nx-rp .nx-bs .hc-shift-title{grid-column:1 / -1;margin:0;font-weight:700;font-size:13px}
.nx-rp .nx-bs .hc-shift label{display:grid;gap:4px;color:var(--muted);font-size:12px;min-width:0}
.nx-rp .nx-bs .hc-range input{width:100%;min-height:44px;accent-color:var(--primary)}
.nx-rp .nx-bs .hc-range b{color:var(--ink);font-variant-numeric:tabular-nums;unicode-bidi:isolate}
.nx-rp .nx-bs .hc-story-title{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.nx-rp .nx-bs .hc-story-title label{display:grid;gap:6px;flex:1 1 280px;color:var(--muted);font-size:13px}
.nx-rp .nx-bs .hc-story [data-hc-story-rename]:not(:disabled){background:var(--primary);border-color:var(--primary);color:#fff}
.nx-rp .nx-bs .hc-story-items{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.nx-rp .nx-bs .hc-story-items li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #dbe4ee;border-radius:10px;background:#f7f9fc}
.nx-rp .nx-bs .hc-story-items li div{display:grid;gap:2px;min-width:0}
.nx-rp .nx-bs .hc-story-items small{color:var(--muted);font-size:12px}
.nx-rp .nx-bs .hc-story-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}
.nx-rp .nx-bs .hc-primary{min-height:44px;padding:0 16px;border:0;border-radius:10px;background:var(--primary);color:#fff;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.nx-rp .nx-bs .hc-story .hc-note[role="status"]{padding:8px 12px;border-radius:8px;background:#eaf0ff;color:#2a3f66}
@media (max-width:1100px){.nx-rp .nx-bs .hc-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:600px){.nx-rp .nx-bs .hc-card{padding:16px}.nx-rp .nx-bs .hc-figure strong{font-size:24px}.nx-rp .nx-bs .hc-accounts li{grid-template-columns:minmax(0,1fr) auto}.nx-rp .nx-bs .hc-track{grid-column:1 / -1;grid-row:2}.nx-rp .nx-bs .hc-toggle button,.nx-rp .nx-bs .hc-months button{min-height:44px}.nx-rp .nx-bs .hc-shift{grid-template-columns:1fr 1fr}.nx-rp .nx-bs .hc-range{grid-column:1 / -1}}
/* G4-GRPNX — «المجموعة والتوحيد» in its mockup's look (Astra's Group spec: panels radius 14 padding 22 on the line #dce4ed, h3 16px/700, fields and buttons
   44px radius 10 on #dbe4ee, the primary #315bff for the main action, articles on #f7f9fc radius 9, KPI cards radius 12 padding 16, table heads 12px/700 on
   #f0f4fa, notices on #eaf0ff, empty states on #f3f6fa, one column on a phone): the classic page's markup (panel, three-fields, grid-2, kpi-grid, kpi,
   table-wrap, pill, consolidation-line, cards, company-card) under the interface tokens. No inline style written by the screen (CSP). */
.nx-gx{display:grid;gap:16px}
.nx-gx .nx-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.nx-gx .nx-gx-tools{display:flex;gap:8px;align-items:center}
.nx-gx .nx-gx-body{display:grid;gap:16px;min-width:0}
.nx-gx .nx-gx-page{display:grid;gap:16px;min-width:0}
.nx-gx .consolidation-workspace{display:grid;gap:16px;min-width:0}
.nx-gx .panel{min-width:0;padding:22px;border:1px solid #dce4ed;border-radius:14px;background:var(--surface);color:var(--ink);box-sizing:border-box}
.nx-gx .grid-2 .panel{background:#f7f9fc;border-radius:9px;padding:16px}
.nx-gx .panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.nx-gx .panel-head h3{margin:0 0 4px;font-size:16px;font-weight:700;color:var(--ink)}
.nx-gx .panel-head span{color:var(--muted);font-size:13px;line-height:1.6}
.nx-gx .mt-panel{margin-top:0}
.nx-gx .grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.nx-gx .grid-2>*{min-width:0}
.nx-gx .consolidation-workspace .grid-2{grid-template-columns:minmax(0,1fr)}
.nx-gx .three-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:14px}
.nx-gx .two-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.nx-gx .stack{display:grid;gap:12px}
.nx-gx label{display:grid;gap:6px;color:var(--muted);font-size:13px}
.nx-gx input:not([type=checkbox]):not([type=radio]),.nx-gx select,.nx-gx textarea{min-height:44px;width:100%;padding:10px 12px;border:1px solid #dbe4ee;border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;box-sizing:border-box;min-width:0}
.nx-gx input:focus-visible,.nx-gx select:focus-visible,.nx-gx textarea:focus-visible,.nx-gx button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.nx-gx .panel button,.nx-gx .actions button{min-height:44px;padding:0 14px;border:1px solid #dbe4ee;border-radius:9px;background:var(--surface);color:var(--primary);font:inherit;font-size:14px;cursor:pointer}
.nx-gx .panel button.primary,.nx-gx .panel button[type=submit]{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}
.nx-gx .panel button:disabled{opacity:.55;cursor:default}
.nx-gx .actions{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0}
.nx-gx .analysis-meta{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:4px 0 12px;color:var(--muted);font-size:13px;line-height:1.6}
.nx-gx .analysis-meta:empty{display:none}
.nx-gx #consolidationStatus:not(:empty),.nx-gx #consolidationJournalStatus:not(:empty),.nx-gx #fxRateStatus:not(:empty){padding:10px 14px;border-radius:8px;background:#eaf0ff;color:#2a3f66}
.nx-gx .kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:14px}
.nx-gx .compact-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.nx-gx .kpi{display:grid;gap:6px;min-width:0;padding:16px;border:1px solid #dbe4ee;border-radius:12px;background:var(--surface)}
.nx-gx .kpi small{color:var(--muted);font-size:13px}
.nx-gx .kpi strong{font-size:22px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;unicode-bidi:isolate}
.nx-gx .compact-kpis .kpi strong{font-size:18px}
.nx-gx .kpi span{color:var(--muted);font-size:12px;line-height:1.5}
.nx-gx .table-wrap{overflow-x:auto;max-inline-size:100%}
.nx-gx table{width:100%;border-collapse:collapse;font-size:13px}
.nx-gx th{padding:13px 14px;background:#f0f4fa;color:#4c5e76;font-size:12px;font-weight:700;text-align:start;white-space:nowrap}
.nx-gx td{padding:13px 14px;border-top:1px solid #e6edf5;color:var(--ink);vertical-align:top}
.nx-gx td.muted,.nx-gx .muted{color:var(--muted)}
.nx-gx p.muted{margin:0;padding:18px;border:1px solid #dbe4ee;border-radius:10px;background:#f3f6fa;font-size:14px}
.nx-gx .pill{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:12px;font-weight:700;white-space:nowrap}
.nx-gx .pill.positive{background:var(--good-soft,#e7f6ef);color:var(--good)}
.nx-gx .pill.high,.nx-gx .pill.bad{background:var(--bad-soft,#fdecee);color:var(--bad)}
.nx-gx .pill.medium{background:var(--warn-soft,#fdf3e7);color:#a35b11}
.nx-gx .consolidation-journal-lines{display:grid;gap:8px;overflow:auto}
.nx-gx .consolidation-line{display:grid;grid-template-columns:1.2fr .8fr 1fr 1fr .8fr .8fr auto;gap:8px;align-items:center}
.nx-gx .consolidation-line input,.nx-gx .consolidation-line select{min-width:0}
.nx-gx .consolidation-workspace details{margin:8px 0;padding:10px 14px;border:1px solid #dbe4ee;border-radius:10px;background:var(--surface)}
.nx-gx .consolidation-workspace details summary{cursor:pointer;font-weight:700}
.nx-gx .consolidation-workspace table tbody tr:has(td:first-child b){background:#f3f6fa}
.nx-gx #consolidationStatements .grid-2{grid-template-columns:minmax(0,1fr)}
.nx-gx #consolidationStatements .grid-2>div{overflow-x:auto}
.nx-gx .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.nx-gx .company-card{display:grid;gap:6px;padding:16px;border:1px solid #dbe4ee;border-radius:12px;background:var(--surface);color:var(--ink)}
.nx-gx .company-card b{font-size:15px}
.nx-gx .company-card span{color:var(--muted);font-size:13px}
.nx-gx #consolidatedTable:empty{display:none}
@media (max-width:1100px){.nx-gx .consolidation-line{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:760px){.nx-gx .panel{padding:16px}.nx-gx .grid-2,.nx-gx .three-fields,.nx-gx .two-fields,.nx-gx .compact-kpis{grid-template-columns:minmax(0,1fr)}.nx-gx .consolidation-line{grid-template-columns:1fr 1fr}.nx-gx .kpi-grid{grid-template-columns:minmax(0,1fr)}}
@media print{.nx-gx .nx-gx-tools,.nx-gx .nx-gx-tabs{display:none!important}.nx-gx .panel{break-inside:avoid}}
/* G4-LSTNX — «الشركات المدرجة» in the group page's look (Astra's Group spec, the listed tabs: panels radius 14 on #dce4ed, fields and buttons 44px radius
   10, the primary for the saves, notices on #eaf0ff, empty states on #f3f6fa with the labelled example, one column on a phone): the classic listed page's
   markup and its two views (the page's tabs replace the classic view bar), the Arabic file picker, the status lines. No inline style (CSP). */
.nx-gx #page-listed[data-lv-view="read"] [data-lv="manage"],.nx-gx #page-listed[data-lv-view="manage"] [data-lv="read"],.nx-gx #page-listed [data-lv-off]{display:none!important}
.nx-gx #page-listed #listedViews{display:none!important}
.nx-gx #page-listed .grid-2{grid-template-columns:minmax(0,1fr)}
.nx-gx #page-listed .panel-head h3,.nx-gx #page-listed article>h3,.nx-gx #page-listed h4{margin:0 0 6px;font-size:16px;font-weight:700;color:var(--ink)}
.nx-gx #page-listed .panel-head span{color:var(--muted);font-size:13px}
.nx-gx #page-listed .stack>label,.nx-gx #page-listed .three-fields>label,.nx-gx #page-listed .two-fields>label{min-width:0}
.nx-gx #page-listed .success:not(:empty){padding:10px 14px;border-radius:8px;background:#eaf0ff;color:#2a3f66;font-size:13px}
.nx-gx #page-listed .error:not(:empty){padding:10px 14px;border-radius:8px;background:var(--bad-soft,#fdecee);color:var(--bad);font-size:13px}
.nx-gx #page-listed .empty{padding:18px;border:1px solid #dbe4ee;border-radius:10px;background:#f3f6fa;color:var(--muted);font-size:14px}
.nx-gx #page-listed .lv-empty{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px;align-items:start;background:#f3f6fa}
.nx-gx #page-listed .lv-empty h3{margin:0 0 6px;font-size:16px}
.nx-gx #page-listed .lv-empty p{margin:0 0 10px;color:var(--muted);font-size:14px;line-height:1.7}
.nx-gx #page-listed .lv-example{margin:0;padding:12px 14px;border:1px dashed #c9d4e3;border-radius:12px;background:var(--surface)}
.nx-gx #page-listed .lv-example figcaption{margin-bottom:8px;font-size:13px;color:var(--muted)}
.nx-gx #page-listed .lv-example th{background:transparent;color:var(--ink);font-weight:500;padding:8px 10px}
.nx-gx #page-listed .lv-badge{display:inline-block;margin-inline-end:6px;padding:1px 8px;border:1px solid currentColor;border-radius:999px;font-weight:700;color:var(--primary)}
.nx-gx #page-listed .li-exclude-stale{display:flex;align-items:center;gap:8px;color:var(--ink)}
.nx-gx #page-listed .li-exclude-stale input{width:auto;min-height:0;flex:0 0 auto;margin:0}
.nx-gx #page-listed #listedImportPanel{display:grid;gap:10px;margin-top:16px;padding:16px;border:1px solid #dce4ed;border-radius:9px;background:#f7f9fc}
.nx-gx .hdr1-file{position:relative;display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 8px;border:1px dashed #c9d4e3;border-radius:10px;background:var(--surface);min-width:0}
.nx-gx .hdr1-file[data-chosen="true"]{border-style:solid;border-color:var(--primary)}
.nx-gx .hdr1-file .hdr1-file-input{position:absolute!important;width:1px!important;height:1px!important;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;opacity:0}
.nx-gx .hdr1-file .hdr1-file-button{flex:0 0 auto;min-height:40px;padding:0 16px;border:1px solid #dbe4ee;border-radius:9px;background:var(--surface);color:var(--primary);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.nx-gx .hdr1-file .hdr1-file-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--muted)}
.nx-gx .hdr1-file[data-chosen="true"] .hdr1-file-name{color:var(--ink);font-weight:600}
@media (max-width:760px){.nx-gx #page-listed .lv-empty{grid-template-columns:minmax(0,1fr)}}
/* G4-SCNNX — «التخطيط» and its «السيناريوهات» in the mockup's look (Astra's Planning spec, the scenarios tab: the group page's panels, fields and buttons
   (the page carries .nx-gx), the six assumptions in two columns, the primary «شغّل السيناريو», the decision as a reading on #f7f9fc with its tone, the bounds
   of a theoretical example, one column on a phone). No inline style (CSP). */
.nx-gx .nx-gx-body,.nx-gx .nx-gx-page{grid-template-columns:minmax(0,1fr)}
.nx-pl .scenario-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;align-items:end}
.nx-pl .scenario-form button[type=submit]{grid-column:1 / -1;justify-self:start;min-width:160px}
.nx-pl .reading-signal{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 14px;padding:16px 18px;border:1px solid #dce4ed;border-radius:12px;background:#f7f9fc}
.nx-pl .reading-signal small{color:var(--muted);font-size:12px}
.nx-pl .reading-signal strong{display:block;margin-top:4px;font-size:20px;color:var(--ink)}
.nx-pl .reading-signal span{color:var(--muted);font-size:13px}
.nx-pl .reading-signal.positive{border-color:var(--good);background:var(--good-soft,#e7f6ef)}
.nx-pl .reading-signal.high{border-color:#e7b25b;background:var(--warn-soft,#fdf3e7)}
.nx-pl .reading-signal.critical{border-color:var(--bad);background:var(--bad-soft,#fdecee)}
.nx-pl .scenario-bounds{margin:10px 0 0;padding-inline-start:18px;color:var(--ink);font-size:13px;line-height:1.7}
.nx-pl .scenario-decision>p.muted{margin-top:10px;padding:12px 14px;background:#eaf0ff;border:0;color:#2a3f66;font-size:13px}
.nx-pl .executive-kpi span.good{color:var(--good)}
.nx-pl .executive-kpi span.bad{color:var(--bad)}
.nx-pl .scenario-decision .error{display:block;padding:10px 14px;border-radius:8px;background:var(--bad-soft,#fdecee);color:var(--bad)}
@media (max-width:760px){.nx-pl .scenario-form{grid-template-columns:minmax(0,1fr)}.nx-pl .reading-signal{flex-direction:column;align-items:flex-start}}
/* G4-BUDNX — «الموازنة» and «الفعلي مقابل الموازنة» in the planning page's look (Astra's Planning spec, the performance tab, and the Budget spec: the group
   page's panels, fields and buttons (.nx-gx), the budget's own cards on #f7f9fc radius 12, the official chip in the primary, the archive button above,
   the workforce cost as a short panel to its own screen, one column on a phone). No inline style (CSP). */
.nx-pl .nx-pl-bar{display:flex;justify-content:flex-end;gap:8px}
.nx-pl .b1 .b1-card{background:#f7f9fc;border-color:#dce4ed;border-radius:12px}
.nx-pl .b1 .b1-head h4{font-size:16px;color:var(--ink)}
.nx-pl .b1 .b1-table th{background:#f0f4fa;color:#4c5e76;font-size:12px}
.nx-pl .b1 button{min-height:40px}
.nx-pl .b1 .b1-chip[data-kind="official"]{border-color:var(--primary);color:var(--primary)}
.nx-pl .p2-guide{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:10px;padding:12px 14px;border-radius:10px;background:#eaf0ff;color:#2a3f66;font-size:13px}
.nx-pl .p2-guide p{margin:0;flex:1 1 260px}
.nx-pl .p2-guide button{min-height:40px;padding:0 14px;border:1px solid #c6d3ff;border-radius:9px;background:var(--surface);color:var(--primary);font:inherit;cursor:pointer}
/* the audit of 2026-10-16 (G6): the performance's «add a budget» guide reads the uploaded budget file only; once the official budget is shown above it
   (its chip), the comparison is on the screen, so the guide does not ask for one */
.nx-pl [data-nx-pl-perf]:has(#budget1Perf .b1-chip[data-kind="official"]) .p2-guide{display:none}
.nx-pl .nx-pl-wf{display:grid;gap:8px}
.nx-pl .nx-pl-wf h3{margin:0;font-size:16px}
.nx-pl .nx-pl-wf .nx-btn{justify-self:start}
.nx-pl .bud4b-dialog{max-width:min(720px,94vw)}
@media (max-width:760px){.nx-pl .nx-pl-bar{justify-content:stretch}.nx-pl .nx-pl-bar .nx-btn{flex:1 1 auto}}
/* public/budget1.css + public/bud4b.css (copied, comments left out) and public/nx/frame/look-budget.css (its frame scope read as .nx-pl) */
.b1 .b1-tools{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-block:4px 10px}
.b1 .b1-tools label{display:inline-flex;gap:6px;align-items:center}
.b1 .b1-status{margin:6px 0;min-height:1.2em}
.b1 .b1-card{margin-top:14px;padding:14px 16px;border:1px solid var(--desk-border,#dbe4ee);border-radius:14px;background:var(--desk-paper,#fff)}
.b1 .b1-head{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;justify-content:space-between;margin-bottom:8px}
.b1 .b1-head h4{margin:0;font-size:1.02rem}
.b1 .b1-inline{display:inline-flex;gap:6px;align-items:center;font-size:.9em}
.b1 .b1-inline input[type="number"]{width:7em}
.b1 .b1-chip{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.8em;border:1px solid currentColor;white-space:normal}
.b1 .b1-chip[data-kind="official"]{border-color:var(--xc-primary,var(--desk-accent,#0869c9));color:var(--xc-primary,var(--desk-accent,#0869c9))}
.b1 .b1-note{margin:6px 0;padding:8px 12px;border-radius:10px;border:1px solid var(--amber,#d19a00);background:color-mix(in srgb,var(--amber,#d19a00) 8%,transparent)}
.b1 .b1-table{width:100%;border-collapse:collapse;font-size:.86rem}
.b1 .b1-table th,.b1 .b1-table td{padding:6px 8px;border-bottom:1px solid var(--desk-border,#dbe4ee);text-align:start;vertical-align:top}
.b1 .b1-table th{font-weight:700}
.b1 .b1-num{font-variant-numeric:tabular-nums;white-space:nowrap}
.b1 .b1-compare .b1-mh{min-width:9em}
.b1 .b1-pick{background:color-mix(in srgb,var(--xc-primary,var(--desk-accent,#0869c9)) 10%,transparent);font-weight:700}
.b1 .b1-total td{font-weight:700;border-top:2px solid var(--desk-border,#dbe4ee)}
.b1 .b1-sub td{font-weight:700}
.b1 .b1-kind{display:inline-block;padding:0 6px;border-radius:999px;font-size:.72em;border:1px solid var(--desk-border,#dbe4ee);color:var(--desk-sub,#596c84)}
.b1 .b1-kind[data-kind="actual"]{border-color:var(--xc-primary,var(--desk-accent,#0869c9));color:var(--xc-primary,var(--desk-accent,#0869c9))}
.b1 .b1-choice{display:inline-flex;gap:6px;align-items:center;cursor:pointer}
.b1 .b1-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:10px}
.b1 .b1-method{padding:10px 12px;border:1px solid var(--desk-border,#dbe4ee);border-radius:10px}
.b1 .b1-method.b1-on{border-color:var(--xc-primary,var(--desk-accent,#0869c9))}
.b1 .b1-method p{margin:4px 0 0;font-size:.86em;color:var(--desk-sub,#596c84)}
.b1 .b1-notes{margin:6px 0 0;padding-inline-start:18px;font-size:.82em;color:var(--desk-sub,#596c84)}
.b1 .b1-scns{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.b1 .b1-scn{padding:12px 14px;border:1px solid var(--desk-border,#dbe4ee);border-radius:12px}
.b1 .b1-scn.b1-on{border-color:var(--xc-primary,var(--desk-accent,#0869c9));box-shadow:0 0 0 2px color-mix(in srgb,var(--xc-primary,var(--desk-accent,#0869c9)) 20%,transparent)}
.b1 .b1-pcts{display:flex;flex-wrap:wrap;gap:6px 12px;margin:6px 0;font-size:.88em}
.b1 .b1-pcts input[type="number"]{width:5.5em}
.b1 .b1-kv{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin:8px 0 0;font-size:.9em}
.b1 .b1-kv dt{color:var(--desk-sub,#596c84)}
.b1 .b1-kv dd{margin:0;font-variant-numeric:tabular-nums;font-weight:700}
.b1 .b1-actions{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:12px}
.b1 .b1-row-actions{display:flex;flex-wrap:wrap;gap:6px}
.b1 .b1-official td{background:color-mix(in srgb,var(--xc-primary,var(--desk-accent,#0869c9)) 8%,transparent)}
.b1 .b1-det{margin-top:8px}
.b1 .b1-det summary{cursor:pointer;font-weight:700}
.b1 .b1-guide{padding:12px 16px;border:1px solid var(--desk-border,#dbe4ee);border-radius:12px;background:color-mix(in srgb,var(--xc-primary,var(--desk-accent,#0869c9)) 6%,transparent);margin-bottom:10px}
.b1 .b1-guide h4{margin:0 0 6px}
.b1 .b1-guide ol{margin:0;padding-inline-start:20px;display:grid;gap:4px}
.b1 .b1-sign[data-sign="F"]{color:var(--green,#1a7f4b);font-weight:700}
.b1 .b1-sign[data-sign="U"]{color:var(--red,#b42318);font-weight:700}
.b1-perf{margin-bottom:14px}
@media (max-width:720px){.b1 .b1-table{font-size:.8rem}.b1 .b1-table th,.b1 .b1-table td{padding:5px 6px}.b1 .b1-kv{grid-template-columns:1fr}}
.b1-chip.b1-chip-warn{background:color-mix(in srgb,var(--amber,#f2bd55) 22%,transparent);color:inherit;border-color:var(--amber,#f2bd55)}
.b1-exact{margin:10px 0;padding:10px 12px;border:1px solid var(--amber,#f2bd55);border-radius:10px;background:color-mix(in srgb,var(--amber,#f2bd55) 8%,transparent)}
.b1-exact p{margin:0 0 8px;line-height:1.7}
.b1-exact .b1-table{font-size:12px}
.b1-accept{display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-weight:600;min-height:44px}
.b1-accept input{width:18px;height:18px;flex:none}
[data-b1-pending] button{margin-inline-end:8px}
.bud4-after{gap:8px;flex-wrap:wrap}
.bud4b-dialog{width:min(760px,94vw);max-height:86vh;padding:0;border:1px solid var(--line);border-radius:16px;background:var(--panel,#fff);color:var(--text)}
.bud4b-dialog::backdrop{background:rgba(16,38,65,.35)}
.bud4b-top{position:sticky;top:0;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--panel,#fff)}
.bud4b-top h3{margin:0;font-size:16px}
.bud4b-top small{color:var(--muted)}
[data-bud4b-body]{padding:6px 16px 16px;overflow:auto}
.bud4b-sec h4{margin:12px 0 6px;font-size:14px}
.bud4b-sec ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.bud4b-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
.bud4b-item>div:first-child{display:grid;gap:2px;min-width:0}
.bud4b-item small{color:var(--muted);font-size:12px}
.bud4b-acts{display:flex;gap:6px;flex-wrap:wrap}
.bud4b-confirm{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,#d93a4a 8%,transparent)}
.bud4b-confirm p{margin:0;flex:1 1 320px;font-size:13px}
.bud4b-msg{margin:10px 0 0;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--accent,#315ccf) 8%,transparent);font-size:13px}
.bud4b-dialog .bud4b-purge,.bud4b-dialog .bud4b-yes{color:#b42318}
.nx-pl .b1 .b1-compare thead th.b1-mh{min-width:8.5em;max-width:12em;vertical-align:bottom;text-align:center;white-space:normal;line-height:1.3;padding:10px 8px 8px;position:relative;font-weight:400}
.nx-pl .b1 .b1-compare thead th.b1-mh label.b1-choice{display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;margin:0}
.nx-pl .b1 .b1-compare thead th.b1-mh input[type=radio]{margin:0 0 2px}
.nx-pl .nxb-name{font-weight:700;font-size:13px;color:var(--text,#102641)}
.nx-pl .nxb-aside{font-size:11px;color:var(--muted,#596c84);font-weight:400}
.nx-pl .b1 .b1-compare thead th.b1-mh.nxb-on{background:color-mix(in srgb,var(--accent,#0869c9) 10%,transparent);box-shadow:inset 0 3px 0 var(--accent,#0869c9)}
.nx-pl .b1 .b1-compare thead th.b1-mh.nxb-on .nxb-name{color:var(--accent,#0869c9)}
.nx-pl .nxb-info{display:inline-flex;align-items:center;justify-content:center;inline-size:22px;block-size:22px;margin-block-start:4px;border-radius:50%;border:1px solid var(--line,#dbe4ee);background:var(--surface,#fff);color:var(--accent,#0869c9);font:italic 700 12px/1 Georgia,serif;cursor:help;padding:0}
.nx-pl .nxb-info:hover,.nx-pl .nxb-info[aria-expanded="true"]{background:var(--accent,#0869c9);border-color:var(--accent,#0869c9);color:#fff}
.nx-pl .nxb-info:focus-visible{outline:2px solid #8b5cf6;outline-offset:2px}
.nx-pl .nxb-tip{position:fixed;z-index:60;max-inline-size:340px;background:var(--surface,#fff);color:var(--text,#102641);border:1px solid var(--line,#dbe4ee);border-radius:12px;padding:10px 12px;box-shadow:0 10px 28px rgba(16,38,65,.18);font-size:13px;line-height:1.6;text-align:start}
.nx-pl .nxb-tip b{display:block;margin-block-end:4px}
.nx-pl .nxb-tip p{margin:0 0 6px}
.nx-pl .nxb-tip ul{margin:0;padding-inline-start:18px;color:var(--muted,#596c84);font-size:12px}
.nx-pl .b1-methods.nxb-folded{display:none}
.nx-pl .nxb-hint-note{margin:8px 2px 0;font-size:12px;color:var(--muted,#596c84)}
@media print{.nx-pl .b1-methods.nxb-folded{display:grid}.nx-pl .nxb-info,.nx-pl .nxb-tip,.nx-pl .nxb-hint-note{display:none!important}}
/* G4-LINNX — «التوقعات بند بند» in the planning page's look (Astra's Planning spec, the line-by-line tab: the group page's panels, fields and buttons
   (.nx-gx), the forecast's own cards on #f7f9fc radius 12 like the budget tab, the part pills and the official chip in the primary, the wide tables
   scrolling inside their card, one column on a phone). No inline style (CSP). */
.nx-pl .b2 .b2-card,.nx-pl .b3 .b3-card{background:#f7f9fc;border-color:#dce4ed;border-radius:12px}
.nx-pl .b2 .b2-head h4,.nx-pl .b3 .b3-head h4{font-size:16px;color:var(--ink)}
.nx-pl .b2 .b2-part[aria-pressed="true"]{border-color:var(--primary);color:var(--primary)}
.nx-pl .b2 button,.nx-pl .b3 button{min-height:40px}
.nx-pl .b3 .b3-chip[data-kind="official"]{border-color:var(--primary);color:var(--primary)}
.nx-pl .b2 table,.nx-pl .b3 table{font-size:13px}
.nx-pl .b2 th,.nx-pl .b3 th{background:#f0f4fa;color:#4c5e76;font-size:12px}
@media (max-width:760px){.nx-pl .b2 .b2-controls,.nx-pl .b3 .b3-form{flex-direction:column;align-items:stretch}}
/* public/budget2.css + public/budget3.css (copied, comments left out) */
.b2 .b2-tools{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-block:4px 10px}
.b2 .b2-tools label{display:inline-flex;gap:6px;align-items:center}
.b2 .b2-status{margin:6px 0;min-height:1.2em}
.b2 .b2-card{margin-top:14px;padding:14px 16px;border:1px solid var(--desk-border,#dbe4ee);border-radius:14px;background:var(--desk-paper,#fff)}
.b2 .b2-head{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;justify-content:space-between;margin-bottom:8px}
.b2 .b2-head h4{margin:0;font-size:1.02rem}
.b2 .b2-parts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.b2 .b2-part{min-height:40px;padding:0 14px;border:1px solid var(--desk-border,#dbe4ee);border-radius:999px;background:var(--desk-paper,#fff);color:var(--desk-ink,#102641);font:inherit;cursor:pointer}
.b2 .b2-part[aria-pressed="true"]{border-color:var(--xc-primary,var(--desk-accent,#0869c9));background:color-mix(in srgb,var(--xc-primary,var(--desk-accent,#0869c9)) 12%,transparent);font-weight:700}
.b2 .b2-part:focus-visible{outline:2px solid var(--desk-focus,var(--xc-primary,#0869c9));outline-offset:2px}
.b2 .b2-controls{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-bottom:10px}
.b2 .b2-controls label{display:inline-flex;gap:6px;align-items:center}
.b2 .b2-controls input[type="number"]{width:7em}
.b2 .b2-chip{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.8em;border:1px solid currentColor;white-space:normal}
.b2 .b2-chip[data-kind="approved"],.b2 .b2-chip[data-kind="official"]{border-color:var(--xc-primary,var(--desk-accent,#0869c9));color:var(--xc-primary,var(--desk-accent,#0869c9))}
.b2 .b2-table{width:100%;border-collapse:collapse;font-size:.86rem}
.b2 .b2-table th,.b2 .b2-table td{padding:6px 8px;border-bottom:1px solid var(--desk-border,#dbe4ee);text-align:start;vertical-align:top}
.b2 .b2-table th{font-weight:700}
.b2 .b2-num{font-variant-numeric:tabular-nums;white-space:nowrap}
.b2 .b2-year{font-weight:700}
.b2 .b2-total td{font-weight:700;border-top:2px solid var(--desk-border,#dbe4ee)}
.b2 .b2-other td{color:var(--desk-sub,#596c84)}
.b2 .b2-note{cursor:help;color:var(--desk-sub,#596c84)}
.b2 .b2-actions{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:12px}
.b2 .b2-row-actions{display:flex;flex-wrap:wrap;gap:6px}
.b2 .b2-from{margin:6px 0 10px;padding-inline-start:18px;display:grid;gap:4px}
.b2 .b2-official td{background:color-mix(in srgb,var(--xc-primary,var(--desk-accent,#0869c9)) 8%,transparent)}
.b2 .b2-guide{padding:12px 16px;border:1px solid var(--desk-border,#dbe4ee);border-radius:12px;background:color-mix(in srgb,var(--xc-primary,var(--desk-accent,#0869c9)) 6%,transparent);margin-bottom:10px}
.b2 .b2-guide h4{margin:0 0 6px}
.b2 .b2-guide ol{margin:0;padding-inline-start:20px;display:grid;gap:4px}
@media (max-width:720px){.b2 .b2-table{font-size:.8rem}.b2 .b2-table th,.b2 .b2-table td{padding:5px 6px}}
.b3{display:grid;gap:14px;margin-block-start:14px}
.b3-card{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.b3-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px}.b3-head h4,.b3-head h5{margin:0}
.b3-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.b3-form label{display:grid;gap:4px;font-size:.9rem;min-inline-size:min(220px,100%)}
.b3-form input,.b3-form select{min-height:36px;max-inline-size:100%}
.b3-table{inline-size:100%;border-collapse:collapse}.b3-table th,.b3-table td{padding:6px 8px;border-block-end:1px solid var(--line);text-align:start;vertical-align:top}
.b3-num{text-align:end;white-space:nowrap;font-variant-numeric:tabular-nums}
.b3-row-actions{display:flex;flex-wrap:wrap;gap:6px}
.b3-chip{display:inline-block;padding:2px 8px;border-radius:999px;border:1px solid var(--line);font-size:.8rem;white-space:nowrap}
.b3-chip[data-kind="approved"]{border-color:var(--good,var(--accent));color:var(--good,var(--accent))}
.b3-chip[data-kind="official"]{background:var(--accent);border-color:var(--accent);color:#fff}
.b3-chip[data-kind="draft"]{color:var(--muted)}
.b3-comps{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:12px}
.b3-comp{display:grid;gap:6px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel2,var(--panel))}
.b3-comp p{margin:0}.b3-picks{font-size:.85rem}
.b3-check{display:inline-flex;align-items:center;gap:4px;margin-inline-start:auto;font-size:.85rem}
.b3-figs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0}.b3-figs div{display:grid}.b3-figs dt{font-size:.8rem;color:var(--muted)}.b3-figs dd{margin:0;font-weight:700}
.b3-newer{font-size:.85rem;color:var(--warn,var(--accent))}
.b3-compare{display:grid;gap:8px}.b3-compare td[data-sign="up"]{color:var(--good,var(--accent))}.b3-compare td[data-sign="down"]{color:var(--bad,#b42318)}
.b3-print-sheet{display:none}
@media print{
 html.b3-printing body>:not(#b3PrintSheet){display:none!important}
 html.b3-printing,html.b3-printing body{background:#fff!important}
 html.b3-printing #b3PrintSheet{display:block!important;color:#000;font-size:11px;position:relative}
 html.b3-printing #b3PrintSheet[data-mark]:not([data-mark=""])::before{content:attr(data-mark);position:fixed;inset-block-start:40%;inset-inline:0;text-align:center;font-size:96px;font-weight:800;color:rgba(0,0,0,.08);transform:rotate(-24deg);pointer-events:none}
 .b3-print-head{margin:0 0 10px;padding-block-end:6px;border-block-end:1px solid #999}.b3-print-head h2{font-size:16px;margin:2px 0}.b3-print-head p{margin:0}
 .b3-brand{font-weight:800;letter-spacing:.06em;color:#1f2a44}
 .b3-mark-line{font-weight:700}.b3-mark-line[data-kind="draft"]{color:#9a3412}
 .b3-print-table{inline-size:100%;border-collapse:collapse}.b3-print-table th,.b3-print-table td{border-block-end:1px solid #ddd;padding:3px 5px;text-align:start}.b3-print-table td[dir="ltr"]{text-align:end}
 .b3-print-table .b3-total td{font-weight:700;border-block-start:1px solid #999}
 .b3-print-foot{margin-block-start:10px;font-size:10px;color:#555}
}
@media (max-width:600px){.b3-form{flex-direction:column;align-items:stretch}.b3-figs{grid-template-columns:1fr 1fr}}
.b3-build{display:grid;gap:8px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:12px}
.b3-build legend{padding:0 6px;font-weight:700}
.b3-radios{display:flex;flex-wrap:wrap;gap:6px 18px}.b3-build .b3-radio{display:inline-flex;flex-direction:row;align-items:center;gap:6px;white-space:nowrap;inline-size:auto}.b3-build .b3-radio input{inline-size:auto;min-height:0;margin:0}
.b3-build-box{display:grid;gap:8px}.b3-build-box label{display:grid;gap:4px;max-inline-size:320px}
.b3-build-box td input{inline-size:90px;max-inline-size:100%}
.b3-preview{display:grid;gap:6px;padding:8px;border-radius:10px;background:var(--panel2,var(--panel))}.b3-preview p{margin:0}
.b3-newer{display:grid;gap:6px;padding:8px 10px;border:1px dashed var(--warn,var(--accent));border-radius:10px}
.b3-newer p{margin:0}
[data-b3-rolling] td[data-sign="up"]{color:var(--good,var(--accent))}[data-b3-rolling] td[data-sign="down"]{color:var(--bad,#b42318)}
/* public/styles.css (Phase 5A — FP&A Model Studio) + public/desk-shell.css (G4-PLAN1), copied, comments left out, every selector under .nx-pl */
.nx-pl .fpna-context-note{padding:10px 12px;border:1px solid var(--theme-border,#334155);border-radius:10px;background:var(--theme-input,#111827);font-size:12px;opacity:.85}.nx-pl .fpna-assumptions{display:grid;gap:8px}.nx-pl .fpna-assumption-row{display:grid;grid-template-columns:1.05fr 1.25fr .8fr .55fr .8fr .85fr .85fr auto;gap:6px;align-items:center}.nx-pl .fpna-assumption-row input,.nx-pl .fpna-assumption-row select{min-width:0}.nx-pl .fpna-assumption-row [data-a-remove]{width:34px}.nx-pl .compact-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}.nx-pl .compact-kpis .kpi{min-height:auto;padding:10px}.nx-pl .compact-kpis .kpi strong{font-size:20px}@media(max-width:1100px){.nx-pl .fpna-assumption-row{grid-template-columns:repeat(2,minmax(0,1fr))}.nx-pl .fpna-assumption-row [data-a-remove]{width:auto}.nx-pl .compact-kpis{grid-template-columns:1fr 1fr 1fr}}
.nx-pl .fpna-assumption-row{grid-template-columns:1.05fr 1.2fr .72fr .52fr .72fr .78fr .62fr .78fr auto}.nx-pl .cash-alert-row td{background:color-mix(in srgb,var(--danger,#ef4444) 10%,transparent)}.nx-pl #fpnaCash13Output table,.nx-pl #fpnaPackOutput table{min-width:980px}.nx-pl #fpnaCash13Output .bad{font-weight:700}@media(max-width:1100px){.nx-pl .fpna-assumption-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
.nx-pl .fpna-assumption-row input[readonly]{background:transparent;border-style:dashed;color:var(--muted);cursor:default;text-overflow:ellipsis}
.nx-pl .fpna-model-form .fpna-group{border:1px solid var(--line);border-radius:12px;padding:10px 14px 12px;margin:0 0 12px;min-width:0}
.nx-pl .fpna-model-form .fpna-group>legend{font-weight:700;padding:0 6px}
.nx-pl .fpna-model-form .three-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.nx-pl .fpna-model-form .three-fields>label,.nx-pl .fpna-model-form .fpna-group>label{margin:6px 0;gap:4px;min-width:0}
.nx-pl .fpna-group-hint{margin:0 0 8px;font-size:.86em}
.nx-pl .fpna-assumption-head{display:grid;grid-template-columns:1.05fr 1.2fr .72fr .52fr .72fr .78fr .62fr .78fr auto;gap:6px;margin-bottom:4px;font-size:.8em;opacity:.8}
.nx-pl .fpna-assumption-head .fpna-ah-x{width:34px}
.nx-pl .fpna-assumption-row>label{margin:0;gap:2px;min-width:0}
.nx-pl .fpna-a-cap{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:1100px){
 .nx-pl .fpna-assumption-head{display:none}
 .nx-pl .fpna-a-cap{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;font-size:.78em;opacity:.8}
}
@media (max-width:700px){
 .nx-pl .fpna-model-form .three-fields{grid-template-columns:1fr}
}
/* G4-MODNX — «نماذج الموازنة والتوقع» in the planning page's look (Astra's Planning spec, the models tab: the group page's panels, fields and buttons
   (.nx-gx), the form full width above the registry (the assumption rows need the width), the classic dark note and fields read in the light tokens, the
   wide tables scrolling inside their panel, one column on a phone). No inline style (CSP). */
.nx-pl [data-nx-pl-models] .grid-2{grid-template-columns:minmax(0,1fr)}
.nx-pl [data-nx-pl-models] .panel{background:#f7f9fc;border:1px solid #dce4ed;border-radius:12px;padding:16px}
.nx-pl [data-nx-pl-models] .mt-panel{margin-top:16px}
.nx-pl .fpna-context-note{background:var(--surface);border-color:#dce4ed;color:var(--ink);opacity:1}
.nx-pl .fpna-model-form .fpna-group{background:var(--surface);border-color:#dce4ed}
.nx-pl [data-nx-pl-models] .table-wrap,.nx-pl #fpnaCash13Output,.nx-pl #fpnaPackOutput{max-width:100%;overflow-x:auto}
.nx-pl [data-nx-pl-models] th{background:#f0f4fa;color:#4c5e76;font-size:12px}
.nx-pl [data-nx-pl-models] button{min-height:36px}
@media (max-width:760px){.nx-pl .fpna-assumption-row,.nx-pl .fpna-assumption-head{grid-template-columns:minmax(0,1fr)}.nx-pl .fpna-model-form .three-fields{grid-template-columns:minmax(0,1fr)}}
/* public/tax1.css (copied, comments left out) */
.tax1 .tx-tools{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:end;margin-block:8px}
.tax1 .tx-tools label{display:grid;gap:4px}
.tax1 .tx-tools .mini{display:inline-block}
.tax1 .tx-status{flex:1 1 100%;margin:0}
.tax1 .tx-head{display:flex;flex-wrap:wrap;gap:6px 10px;margin-block:8px}
.tax1 .tx-badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.8em;border:1px solid currentColor;white-space:normal}
.tax1 .tx-badge[data-kind="active"]{color:var(--good,#067647)}
.tax1 .tx-badge[data-kind="rules"]{color:var(--accent,#1d4ed8)}
.tax1 .tx-table{inline-size:100%;border-collapse:collapse;margin-block:10px}
.tax1 .tx-table caption{text-align:start;font-weight:600;padding:6px 0}
.tax1 .tx-table th,.tax1 .tx-table td{padding:5px 8px;text-align:start;border-block-end:1px solid var(--line,rgba(0,0,0,.1));vertical-align:top}
.tax1 .tx-table th[scope="row"]{font-weight:500;inline-size:62%}
.tax1 .tx-table td[dir="ltr"],.tax1 .tx-num{font-variant-numeric:tabular-nums;text-align:end}
.tax1 .tx-table th,.tax1 .tx-table td{white-space:normal;overflow-wrap:break-word}
.tax1 .tx-table td[dir="ltr"],.tax1 .tx-table .tx-num,.tax1 .tx-steps td:nth-child(-n+2),.tax1 .tx-steps thead th{white-space:nowrap}
.tax1 .tx-steps tfoot th[scope="row"]{inline-size:auto}
.tax1 .tx-total th,.tax1 .tx-total td{font-weight:600;border-block-start:2px solid var(--line,rgba(0,0,0,.2))}
.tax1 .tx-sub th{padding-inline-start:18px;font-weight:400}
.tax1 .tx-acc summary{cursor:pointer;font-size:.85em}
.tax1 .tx-acc ul{margin:4px 0;padding-inline-start:18px;max-block-size:24vh;overflow:auto;font-size:.85em}
.tax1 .tx-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 14px}
.tax1 .tx-inputs label{display:grid;gap:4px}
.tax1 .tx-check{display:flex;gap:8px;align-items:flex-start}
.tax1 .tx-actions{display:flex;flex-wrap:wrap;gap:8px}
.tax1 .tx-partners input{inline-size:100%}
.tax1 .tx-scroll{overflow-x:auto;max-inline-size:100%}
.tax1 .tx-steps-editor input{inline-size:100%;min-inline-size:140px;margin-block:2px}
.tax1 .tx-versions .tx-active td{font-weight:600}
.tax1 .tx-notes{margin-block:8px}
.tax1 .tx-report,.tax1 .tx-form,.tax1 .tx-preview{min-inline-size:0;max-inline-size:100%;overflow-wrap:anywhere}
@media (max-width:760px){.tax1 .tx-table{display:block;overflow-x:auto}.tax1 .tx-table th[scope="row"]{inline-size:auto}.tax1 .tx-inputs{grid-template-columns:1fr}}
/* public/styles.css + public/desk-shell.css, the costing rules and tabs (copied, comments left out) */
.analysis-meta{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:10px 0 14px}
.analysis-meta span{color:var(--text-muted)}
.costing-rules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.costing-rules>div{border:1px solid var(--border);border-radius:10px;padding:9px 11px;display:grid;gap:3px}.costing-rules b{font-size:12px}.costing-rules span{font-size:11px;opacity:.8}.analysis-meta .warn{color:#f0b94d}@media(max-width:900px){.costing-rules{grid-template-columns:1fr}}
.cost-tabs{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:12px;margin:16px 0 10px;border-bottom:1px solid var(--desk-border,#dbe4ee)}
.cost-tabs [data-cost-tab]{min-height:44px;display:inline-flex;align-items:center;gap:6px;padding:0 14px;border:0;border-radius:10px;background:transparent;color:var(--desk-sub,#596c84);font:inherit;font-size:.88rem;cursor:pointer}
.cost-tabs [data-cost-tab][aria-selected="true"]{background:var(--xc-tint,var(--desk-soft,#eaf3ff));color:var(--xc-primary,var(--desk-accent,#0869c9));font-weight:700}
.cost-tabs [data-cost-tab]:focus-visible{outline:2px solid var(--desk-focus,var(--xc-primary,#0869c9));outline-offset:2px}
.cost-tabs .cost-home{font-size:.72rem;font-weight:600;border:1px solid currentColor;border-radius:999px;padding:1px 7px}
@media (max-width:700px){
 .cost-tabs [data-cost-tab]{padding:0 11px}
}
/* G4-CHART1 — «الرسوم الحية»: the mockup's ChartStudio in the interface's tokens — the ready charts and «رسوماتي» on the live board's grid (as the mockup: a
   third, two thirds, the row), the fifteen SVG types whose series take their colours from classes c0..c4 (s0..s4 on the drawing), the heat cells by level, the gaps said under a
   chart; «اعمل رسم» in three steps beside its live preview (still while typing); «لوحتي» gives a studio chart its width too */
.nx-lv-card.w-8{grid-column:span 8}.nx-kl-livewrap.w-8{grid-column:span 8}
.nx-ch-h{margin:6px 0 0;font-size:15px;color:var(--muted);font-weight:700}
.nx-ch-plot{min-width:0}
.nx-ch-svg{inline-size:100%;block-size:auto;display:block}
.nx-ch-axis{stroke:var(--line-2);stroke-width:1}
.nx-ch-lbl{font-size:11px;fill:var(--muted)}
.nx-ch-val{font-size:10.5px;fill:var(--ink);font-variant-numeric:tabular-nums}
.nx-ch-bar{fill:var(--primary)}
.nx-ch-bar.s1{fill:#0f9d7a}.nx-ch-bar.s2{fill:#d97706}.nx-ch-bar.s3{fill:#7c3aed}.nx-ch-bar.s4{fill:#0891b2}
.nx-ch-bar.is-prev{fill:#94a3b8}.nx-ch-card .nx-lv-sw.is-prev,.nx-ch-dlg .nx-lv-sw.is-prev{background:#94a3b8}
.nx-ch-bar.is-neg{fill:var(--bad)}
.nx-ch-bar:hover{filter:brightness(1.1)}
.nx-ch-wf .nx-ch-bar.s1{fill:var(--primary)}.nx-ch-wf .nx-ch-bar.s2{fill:var(--good)}
.nx-ch-line{fill:none;stroke:var(--primary);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;animation:nx-ch-draw .9s ease-out both}
.nx-ch-line.s1{stroke:#0f9d7a}.nx-ch-line.s2{stroke:#d97706}.nx-ch-line.s3{stroke:#7c3aed}.nx-ch-line.s4{stroke:#0891b2}
@keyframes nx-ch-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.nx-ch-area{fill:var(--primary);fill-opacity:.14;stroke:none}
.nx-ch-area.s1{fill:#0f9d7a}.nx-ch-area.s2{fill:#d97706}.nx-ch-area.s3{fill:#7c3aed}.nx-ch-area.s4{fill:#0891b2}
.nx-ch-dot{fill:var(--surface);stroke:var(--primary);stroke-width:2}
.nx-ch-dot.s1{stroke:#0f9d7a}.nx-ch-dot.s2{stroke:#d97706}.nx-ch-dot.s3{stroke:#7c3aed}.nx-ch-dot.s4{stroke:#0891b2}
.nx-ch-pie,.nx-ch-ring{inline-size:130px;block-size:130px;flex:none}
.nx-ch-slice{fill:#94a3b8;stroke:var(--surface);stroke-width:1.5}
.nx-ch-slice.p0{fill:var(--primary)}.nx-ch-slice.p1{fill:#0f9d7a}.nx-ch-slice.p2{fill:#d97706}.nx-ch-slice.p3{fill:#7c3aed}.nx-ch-slice.p4{fill:#0891b2}.nx-ch-slice.p5{fill:#94a3b8}
.nx-ch-track{fill:none;stroke:var(--th);stroke-width:12}
.nx-ch-ring-val{fill:none;stroke:var(--primary);stroke-width:12;stroke-linecap:round}
.nx-ch-center{font-size:18px;font-weight:800;fill:var(--ink)}
.nx-ch-track-r{fill:var(--th)}
.nx-ch-target{stroke:var(--ink);stroke-width:3}
.nx-ch-cell{fill:var(--primary)}
.nx-ch-cell.l0{fill-opacity:.08}.nx-ch-cell.l1{fill-opacity:.25}.nx-ch-cell.l2{fill-opacity:.45}.nx-ch-cell.l3{fill-opacity:.68}.nx-ch-cell.l4{fill-opacity:.9}
.nx-ch-cell.ln{fill:var(--th);fill-opacity:1;stroke:var(--line-2);stroke-dasharray:3 3}
.nx-ch-kpi{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.nx-ch-kpi small{color:var(--muted);font-size:12px}
.nx-ch-gaps{margin:0;font-size:12px;color:var(--warn);line-height:1.6}
.nx-ch-tablewrap{overflow-x:auto}
.nx-ch-tablewrap table{font-size:12.5px}
.nx-ch-card .nx-lv-sw.s0,.nx-ch-dlg .nx-lv-sw.s0{background:var(--primary)}.nx-ch-card .nx-lv-sw.s1,.nx-ch-dlg .nx-lv-sw.s1{background:#0f9d7a}.nx-ch-card .nx-lv-sw.s2,.nx-ch-dlg .nx-lv-sw.s2{background:#d97706}.nx-ch-card .nx-lv-sw.s3,.nx-ch-dlg .nx-lv-sw.s3{background:#7c3aed}.nx-ch-card .nx-lv-sw.s4,.nx-ch-dlg .nx-lv-sw.s4{background:#0891b2}
.nx-ch-steps{display:flex;gap:8px;list-style:none;margin:0 0 14px;padding:0;flex-wrap:wrap}
.nx-ch-steps li{padding:5px 12px;border-radius:999px;border:1px solid var(--line);font-size:13px;color:var(--muted)}
.nx-ch-steps li[aria-current=step]{border-color:var(--primary);color:var(--primary);background:var(--primary-soft);font-weight:700}
.nx-ch-steps li.is-done{color:var(--good);border-color:var(--good)}
.nx-ch-wiz{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:start}
.nx-ch-wizbody{min-width:0}
.nx-ch-preview{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;background:var(--canvas);position:sticky;inset-block-start:0;min-width:0;display:grid;gap:8px}
.nx-ch-preview h3{margin:0;font-size:14px}
.nx-ch-types{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.nx-ch-type{display:grid;gap:3px;align-content:start;text-align:start;border:1px solid var(--line);border-radius:var(--r-s);padding:10px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;min-height:44px}
.nx-ch-type b{font-size:14px}.nx-ch-type small{font-size:11.5px;color:var(--primary)}.nx-ch-type span{font-size:12px;color:var(--muted);line-height:1.5}
.nx-ch-type[aria-pressed=true]{border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}
.nx-ch-type:focus-visible{outline:2px solid var(--focus,var(--primary));outline-offset:2px}
.nx-ch-field{border:1px solid var(--line);border-radius:var(--r-s);padding:8px 12px;margin:0 0 10px;display:flex;gap:14px;flex-wrap:wrap;font-size:13px}
.nx-ch-field legend{font-size:12.5px;color:var(--muted);padding:0 4px}
.nx-ch-check{display:flex;gap:8px;align-items:center;font-size:13px;margin:0 0 10px;color:var(--ink)}
.nx-ch-pick,.nx-ch-form label{display:grid;gap:4px;font-size:12.5px;color:var(--muted)}
.nx-ch-pick select,.nx-ch-form input,.nx-ch-form select{min-height:38px;border:1px solid var(--line);border-radius:8px;padding:4px 10px;background:var(--surface);color:var(--ink);font:inherit;font-size:13.5px;max-width:100%}
.nx-ch-series{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.nx-ch-series li{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding-block:4px;padding-inline:10px 4px;font-size:13px}
.nx-ch-series li>span:nth-child(2){flex:1;min-width:0}
.nx-ch-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nx-ch-form>label:nth-child(-n+2),.nx-ch-form>.nx-ch-check{grid-column:1/-1}
.nx-ch-form>label.nx-ch-check{display:flex;color:var(--ink)}
.nx-ch-preview .nx-ch-line{animation:none}
@media (max-width:1200px){.nx-lv-card.w-8,.nx-kl-livewrap.w-8{grid-column:span 12}}
@media (max-width:760px){.nx-ch-wiz,.nx-ch-form{grid-template-columns:minmax(0,1fr)}.nx-ch-preview{position:static}.nx-ch .nx-kl-cats{flex-wrap:nowrap;overflow-x:auto;padding-block-end:4px}.nx-ch .nx-kl-cats button{flex:none}}
@media (prefers-reduced-motion:reduce){.nx-ch-line{animation:none}}
@media print{.nx-ch .nx-kl-tabs,.nx-ch .nx-kl-cats,.nx-ch-dlg,.nx-ch-card .nx-kl-btns{display:none!important}.nx-ch-card{break-inside:avoid;box-shadow:none;animation:none}.nx-ch-line{animation:none}}
/* G4-DASH1 — «لوحة القيادة» native: the mockup's Dashboard in the interface's tokens — the head with the data state, the seven tabs, the look and scale tools,
   the card rows (value, tone, comparison, a 12-month line, the three bases, «شرح الرقم»), the panels on two columns (charts, signals, decisions, bridges,
   anomalies, alerts), the three looks (هادي / مركز القيادة / داكن فاخر — the dark look redefines the tokens inside the screen only), the drawer of «شرح الرقم»
   and its drill-down, the classic analyses (ana1) under the interface's tokens; the open tab prints, the tools do not */
.nx-db{display:grid;gap:14px;min-width:0}
.nx-db>[data-nx-db-main]{display:grid;gap:16px;min-width:0}
.nx-db .nx-lv-sw.s0{background:var(--primary)}.nx-db .nx-lv-sw.s1{background:#0f9d7a}.nx-db .nx-lv-sw.s2{background:#d97706}.nx-db .nx-lv-sw.s3{background:#7c3aed}.nx-db .nx-lv-sw.is-prev{background:#94a3b8}
.nx-db-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.nx-db-head h1{margin:2px 0 4px;font-size:26px}
.nx-db-head p{margin:0 0 6px;font-size:13px}
.nx-db-truth{display:inline-block;font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:var(--surface)}
.nx-db-acts,.nx-db-tools,.nx-db-filters,.nx-db-links{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}
.nx-db-field{display:grid;gap:3px;font-size:12px;color:var(--muted)}
.nx-db-field select{min-height:36px;border:1px solid var(--line);border-radius:8px;padding:3px 10px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px}
.nx-db-tabs{display:flex;gap:6px;flex-wrap:wrap;border-block-end:1px solid var(--line);padding-block-end:10px}
.nx-db-tabs [role=tab]{min-height:40px;border:1px solid transparent;background:none;border-radius:10px;padding:0 14px;font:inherit;font-size:14px;color:var(--muted);cursor:pointer}
.nx-db-tabs [role=tab][aria-selected=true]{border-color:var(--primary);color:var(--primary);background:var(--primary-soft);font-weight:700}
.nx-db-tabs [role=tab]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.nx-db-compare{margin:0;font-size:13px}
.nx-db-h{margin:6px 0 0;font-size:17px}
.nx-db-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.nx-db-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);display:flex;flex-direction:column;min-width:0;animation:nx-lv-in .4s cubic-bezier(.2,.7,.2,1) both}
.nx-db-card.is-on{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}
.nx-db-pick{display:grid;gap:6px;text-align:start;border:0;background:none;padding:16px 16px 8px;font:inherit;color:var(--ink);cursor:pointer;min-width:0}
.nx-db-pick:focus-visible,.nx-db-explain:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.nx-db-label{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:13px;color:var(--muted)}
.nx-db-value{font-size:27px;font-weight:800;letter-spacing:-.3px;font-variant-numeric:tabular-nums;line-height:1.1;unicode-bidi:isolate}
.nx-db-delta{font-size:12.5px;font-weight:600;color:var(--muted)}
.nx-db-card.is-good .nx-db-delta{color:var(--good)}.nx-db-card.is-bad .nx-db-delta{color:var(--bad)}
.nx-db-sub{font-size:11.5px;color:var(--muted);line-height:1.5}
.nx-db-explain{border:0;border-block-start:1px solid var(--line);background:none;padding:8px 16px;font:inherit;font-size:12.5px;color:var(--primary);cursor:pointer;text-align:start;border-radius:0 0 12px 12px}
.nx-db-explain:hover{background:var(--primary-soft)}
.kpi3-badge{font-size:10.5px;padding:2px 8px;border-radius:999px;border:1px solid currentColor;white-space:nowrap;font-weight:600}
.kpi3-good{color:var(--good)}.kpi3-bad{color:var(--bad)}.kpi3-watch{color:var(--warn)}
.kpi3-spark{inline-size:100%;block-size:30px;display:block}
.kpi3-spark polyline{fill:none;stroke:var(--primary);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.kpi3-spark circle{fill:var(--primary)}
.nx-db-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.nx-db-panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow);min-width:0;display:grid;gap:10px;animation:nx-lv-in .45s cubic-bezier(.2,.7,.2,1) both}
.nx-db-panel.is-wide{grid-column:1/-1}
.nx-db-panel>header{display:flex;justify-content:space-between;gap:10px;align-items:center}
.nx-db-panel h2{margin:0;font-size:16px}
.nx-db-panel h3{margin:6px 0 0;font-size:14px}
.nx-db-panel p{margin:0;font-size:13px;line-height:1.7}
.nx-db-chart{margin:0;display:grid;gap:6px;min-width:0}
.nx-db-plot{min-width:0}
.nx-db-svg{inline-size:100%;block-size:auto;display:block}
.nx-db-months{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:2px}
.nx-db-months>*{font:inherit;font-size:10.5px;color:var(--muted);text-align:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nx-db-months button{border:0;background:none;padding:4px 0;cursor:pointer;border-radius:6px}
.nx-db-months button:hover,.nx-db-months button:focus-visible{background:var(--primary-soft);color:var(--primary);outline:none}
.nx-db-months.is-flow>*{white-space:normal;font-size:11px}
.nx-db-values summary{cursor:pointer;font-size:12px;color:var(--primary)}
.nx-db-tablewrap{overflow-x:auto;min-width:0}
.nx-db-tablewrap table{font-size:12.5px}
.nx-db-tablewrap td small,.nx-db-tablewrap th small{display:block;color:var(--muted);font-weight:400}
.nx-db-step{fill:var(--primary)}
.nx-db-step.is-total{fill:var(--primary)}.nx-db-step.is-pos{fill:var(--good)}.nx-db-step.is-neg{fill:var(--bad)}.nx-db-step.is-unexplained{fill:var(--warn)}
.nx-db-join{stroke:var(--line-2);stroke-dasharray:3 3}
.nx-db-comps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.nx-db-comp{margin:0;display:flex;gap:14px;align-items:center;flex-wrap:wrap;min-width:0}
.nx-db-comp .nx-lv-keys li.is-recon{color:var(--warn)}
.nx-db-comp .nx-lv-keys small{color:var(--muted);font-size:11px}
.nx-db-cap{inline-size:100%;font-size:12px;color:var(--muted)}
.nx-db-heat{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px}
.nx-db-heat>div{border-radius:6px;padding:6px 2px;text-align:center;display:grid;gap:2px;font-size:10.5px;background:var(--th);color:var(--muted)}
.nx-db-heat>div b{font-size:11px;color:var(--ink)}
.nx-db-heat .is-up{background:var(--good-soft)}.nx-db-heat .is-up b{color:var(--good)}
.nx-db-heat .is-down{background:var(--bad-soft)}.nx-db-heat .is-down b{color:var(--bad)}
.nx-db-quality{display:grid;gap:12px}
.nx-db-quality header{display:flex;justify-content:space-between;gap:8px;font-size:13px}
.nx-db-quality small{font-size:11px;color:var(--muted)}
.nx-db-track{inline-size:100%;block-size:14px;display:block}
.nx-db-track-bg{fill:var(--th)}.nx-db-track-val{fill:var(--primary)}.nx-db-track-val.is-neg{fill:var(--bad)}.nx-db-track-ref{stroke:var(--ink);stroke-width:2}
.nx-db-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.nx-db-strip>div{border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:grid;gap:2px;min-width:0}
.nx-db-strip span{font-size:11.5px;color:var(--muted)}
.nx-db-strip b{font-size:15px;font-variant-numeric:tabular-nums}
.nx-db-ccc{display:flex;gap:10px;align-items:center;font-size:12px}
.nx-db-ccc>div{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;flex:1;min-width:0}
.nx-db-ccc span{text-align:center;border-radius:6px;background:var(--th);padding:4px 2px;font-variant-numeric:tabular-nums;font-size:11px}
.nx-db-signals{display:grid}
.nx-db-signal{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding-block:12px;border-block-end:1px solid var(--line)}
.nx-db-signal:last-child{border-block-end:0}
.nx-db-signal strong{font-size:14px}
.nx-db-signal p{font-size:12.5px;color:var(--muted)}
.nx-db-sicon{inline-size:32px;block-size:32px;border-radius:50%;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-weight:800}
.nx-db-decs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.nx-db-dec{display:grid;gap:4px;text-align:start;border:1px solid var(--line);border-inline-start:4px solid var(--line-2);border-radius:10px;background:var(--surface);padding:10px 12px;font:inherit;color:var(--ink);cursor:pointer}
.nx-db-dec small{color:var(--muted);font-size:11px}.nx-db-dec span{font-size:12.5px;color:var(--muted)}
.sev-critical{border-inline-start-color:var(--bad)}.sev-high{border-inline-start-color:var(--warn)}.sev-positive{border-inline-start-color:var(--good)}
.nx-db-more summary{cursor:pointer;font-weight:700}
.nx-db-sources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.nx-db-sources>div{border:1px solid var(--line);border-radius:10px;padding:10px;display:grid;gap:3px}
.nx-db-sources span,.nx-db-sources small{font-size:12px;color:var(--muted)}
.nx-db-sources b{font-size:16px;font-variant-numeric:tabular-nums}
.is-in{color:var(--good)}.is-out{color:var(--bad)}
.nx-db-health{display:flex;align-items:baseline;gap:6px}
.nx-db-health strong{font-size:34px;font-weight:800}
.nx-db-health small{color:var(--muted)}
.nx-db-sev{font-size:11.5px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}
.nx-db-sev.sev-critical{color:var(--bad);border-color:currentColor}.nx-db-sev.sev-high{color:var(--warn);border-color:currentColor}.nx-db-sev.sev-positive{color:var(--good);border-color:currentColor}
.nx-db-exec,.nx-db-anoms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.nx-db-xcard{display:grid;gap:4px;text-align:start;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:10px 12px;font:inherit;color:var(--ink);cursor:pointer;min-width:0}
.nx-db-xcard small,.nx-db-xcard span{font-size:12px;color:var(--muted)}
.nx-db-xcard strong{font-size:18px;font-variant-numeric:tabular-nums}
.nx-db-xcard:hover,.nx-db-dec:hover{border-color:var(--primary)}
.nx-db-bridges{display:grid;gap:10px}
.nx-db-bridges article{border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.nx-db-bridges header{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;justify-content:space-between}
.nx-db-bridges header small{font-size:12px;color:var(--muted)}
.nx-db-bridges ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px;font-size:12.5px}
.nx-db-bridges li{display:flex;justify-content:space-between;gap:8px}
.nx-db-link{border:0;background:none;padding:0;font:inherit;color:var(--primary);cursor:pointer;text-align:start;text-decoration:underline;text-underline-offset:3px}
.nx-db-alerts{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.nx-db-alerts li{border:1px solid var(--line);border-inline-start:4px solid var(--line-2);border-radius:10px;padding:8px 12px;display:grid;gap:2px}
.nx-db-alerts li p{font-size:12.5px;color:var(--muted);margin:0}
.nx-db-alerts li small{font-size:12px}
/* the drawer of «شرح الرقم» */
dialog.nx-db-drawer{inline-size:min(720px,100vw)}
.nx-db-xbody{display:grid;gap:14px}
.nx-db-xbody h3{font-size:14px;margin:6px 0;color:var(--muted)}
.nx-db-xctx{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.nx-db-xctx span,.nx-db-xhero>div,.nx-db-recon span{display:grid;gap:2px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-width:0}
.nx-db-xctx small,.nx-db-xhero small,.nx-db-recon small{font-size:11px;color:var(--muted)}
.nx-db-xhero{display:grid;grid-template-columns:2fr 1fr;gap:8px}
.nx-db-xhero strong{font-size:26px;font-variant-numeric:tabular-nums}
.nx-db-xhero span{font-size:12px;color:var(--muted)}
.nx-db-xcmp{border-radius:10px;background:var(--primary-soft);padding:10px 12px;display:grid;gap:4px;font-size:13px}
.nx-db-xcmp p{margin:0}
.nx-db-formula{display:block;padding:8px 10px;border-radius:8px;background:var(--th);font-size:12.5px;white-space:pre-wrap}
.nx-db-xmeta{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.nx-db-xact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nx-db-xfoot{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--muted);border-block-start:1px solid var(--line);padding-block-start:8px}
.nx-db-deps{display:flex;gap:6px;flex-wrap:wrap}
.nx-db-deps button{display:grid;gap:1px;text-align:start;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:6px 10px;font:inherit;font-size:12px;color:var(--ink);cursor:pointer}
.nx-db-deps button[aria-pressed=true]{border-color:var(--primary);background:var(--primary-soft)}
.nx-db-deps em{font-style:normal;font-size:10.5px;color:var(--muted)}
.nx-db-recon{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.nx-db-crumb{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12.5px;flex-wrap:wrap}
.nx-db-drilltab h4{margin:8px 0 4px;font-size:13px}
.nx-db-point strong{font-size:24px}
/* the classic analyses (ana1) with the interface's tokens */
.nx-db-ana{--text:var(--ink);--panel:var(--surface);--panel2:var(--th);--accent:var(--primary);--green:var(--good);--red:var(--bad);--amber:var(--warn)}
.nx-db-ana .ana1-section,.nx-db-ana .ana1-heading{margin-block:0}
/* the three looks: هادي is the interface itself; مركز القيادة a denser board with a strong head; داكن فاخر the same board on dark tokens */
.nx-db[data-style=command] .nx-db-cards{gap:10px}
.nx-db[data-style=command] .nx-db-card{border-radius:8px;border-inline-start:4px solid var(--primary)}
.nx-db[data-style=command] .nx-db-card.is-bad{border-inline-start-color:var(--bad)}.nx-db[data-style=command] .nx-db-card.is-good{border-inline-start-color:var(--good)}
.nx-db[data-style=command] .nx-db-pick{padding:12px 14px 6px}
.nx-db[data-style=command] .nx-db-value{font-size:24px}
.nx-db[data-style=command] .nx-db-panel{border-radius:8px;padding:14px 16px}
.nx-db[data-style=command] .nx-db-head{background:var(--primary-soft);border-radius:12px;padding:12px 16px}
.nx-db[data-style=dark]{--surface:#101b2e;--canvas:#0a1220;--ink:#e8eef8;--muted:#9fb0c8;--line:#24344d;--line-2:#34486a;--th:#16233a;--primary-soft:#1a2c4d;--good-soft:#0f2e26;--bad-soft:#3a1720;--warn-soft:#3a2a10;--shadow:0 8px 30px #0006;background:var(--canvas);color:var(--ink);border-radius:16px;padding:16px}
.nx-db[data-style=dark] .nx-table th,.nx-db[data-style=dark] .nx-table td{border-color:var(--line);color:var(--ink)}
.nx-db[data-style=dark] .nx-db-field select,.nx-db[data-style=dark] .nx-btn{background:var(--surface);color:var(--ink);border-color:var(--line)}
@media (max-width:1100px){.nx-db-grid{grid-template-columns:minmax(0,1fr)}.nx-db-exec,.nx-db-anoms,.nx-db-decs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.nx-db-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.nx-db-head h1{font-size:22px}.nx-db-tabs{flex-wrap:nowrap;overflow-x:auto}.nx-db-tabs [role=tab]{flex:none}.nx-db-comps,.nx-db-sources,.nx-db-xctx,.nx-db-recon,.nx-db-xhero,.nx-db-xact,.nx-db-exec,.nx-db-anoms,.nx-db-decs{grid-template-columns:minmax(0,1fr)}.nx-db-heat{grid-template-columns:repeat(6,minmax(0,1fr))}.nx-db-value{font-size:22px}.nx-db-pick{padding:12px 12px 6px}.nx-db-signal{grid-template-columns:auto minmax(0,1fr)}.nx-db-signal .nx-btn{grid-column:1/-1;justify-self:start}}
@media (prefers-reduced-motion:reduce){.nx-db-card,.nx-db-panel{animation:none}}
@media print{.nx-db-acts,.nx-db-tools,.nx-db-tabs,.nx-db-explain,.nx-db-values,.nx-db-more,.nx-db-links,.nx-db-filters,.nx-db-signal .nx-btn,.nx-db-drawer{display:none!important}.nx-db-card,.nx-db-panel{break-inside:avoid;box-shadow:none;animation:none}.nx-db[data-style=dark]{background:none;color:#000}}
/* G4-DASH1 — the classic analyses (public/ana1.css after its page-layout rule, copied by _gate2/_work/dash1/gen-src.cjs; its tokens mapped in .nx-db-ana) */
.ana1-section{margin-block:24px;min-width:0;color:var(--text);font:inherit}
.ana1-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-block-end:16px;padding-block:12px;border-block-start:1px solid var(--line)}
.ana1-heading h2{font-size:22px;margin:4px 0}.ana1-heading p{margin:0;color:var(--muted);font-size:13px}
.ana1-eyebrow{font-size:11px;letter-spacing:.04em;color:var(--accent)}.ana1-context{font-size:12px;color:var(--muted)}
.ana1-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px}
.ana1-card{min-width:0;border:1px solid var(--line);border-radius:16px;background:var(--panel);overflow:clip}
.ana1-card summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px;cursor:pointer;list-style:none}
.ana1-card summary::-webkit-details-marker{display:none}.ana1-card summary>span:first-child{flex:1;min-width:0}
.ana1-card summary strong{font-size:15px;display:block}.ana1-card summary small{display:block;color:var(--muted);font-size:12px;margin-top:5px}
.ana1-card summary:after{content:'+';font-size:19px;color:var(--muted)}.ana1-card[open] summary:after{content:'−'}
.ana1-badge{white-space:nowrap;border:1px solid currentColor;border-radius:100px;font-size:10px;padding:3px 7px}
.ana1-good{color:var(--green)}.ana1-bad{color:var(--red)}.ana1-watch{color:var(--amber)}
.ana1-content{padding:0 18px 20px;border-top:1px solid var(--line);overflow-wrap:anywhere}
.ana1-metric{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin:16px 0}.ana1-metric strong{font-size:28px;font-weight:700;line-height:1.4}.ana1-metric>span{font-size:12px;color:var(--muted)}
.ana1-note{font-size:11px;color:var(--muted);line-height:1.8;margin:10px 0}.ana1-muted{color:var(--muted)}
.ana1-ranks{list-style:none;margin:16px 0;padding:0;display:grid;gap:13px}.ana1-row-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12px}.ana1-row-head strong{font-weight:500;min-width:0}.ana1-row-head>bdi{flex-shrink:0}
.ana1-track{margin-top:5px;height:7px;border-radius:4px;background:var(--panel2);overflow:hidden;direction:ltr}.ana1-track i{display:block;height:100%;background:var(--accent);border-radius:4px}
.ana1-row-foot{font-size:10px;color:var(--muted);margin-top:3px}.ana1-content h4{font-size:13px;margin-block:15px 8px}.ana1-mini h5{font-size:12px;margin:12px 0 4px;font-weight:500}
.ana1-mini{border-block-start:1px solid var(--line);margin-block-start:14px}.ana1-columns{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;direction:ltr}
.ana1-months-12{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:14px}.ana1-column{text-align:center;min-width:0}.ana1-column-space{height:110px;position:relative;display:flex;align-items:end;padding-top:36px;box-sizing:content-box}
.ana1-column-value{position:absolute;inset-inline:0;top:0;font-size:10px;white-space:nowrap;z-index:1}.ana1-stagger-1{top:17px}.ana1-column-fill{display:block;width:100%;max-height:110px;background:var(--accent);border-radius:4px 4px 0 0}
.ana1-column.ana1-negative .ana1-column-fill{background:var(--red)}.ana1-month{font-size:10px;color:var(--muted);line-height:2}.ana1-missing .ana1-column-space{border-bottom:1px dashed var(--line)}
.ana1-yearcompare{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;direction:ltr}.ana1-yearcompare h4{text-align:center}.ana1-yearbars{display:flex;gap:6px;flex-wrap:wrap}.ana1-yearbars>.ana1-column{flex:1 1 32px}.ana1-yearbars .ana1-column-space{height:70px}.ana1-yearbars .ana1-column:nth-child(even) .ana1-column-fill{background:var(--amber)}
.ana1-waterfall{display:grid;gap:13px;margin-block:20px}.ana1-water-track{height:18px;position:relative;background:var(--panel2);border-radius:4px}.ana1-water-bar{position:absolute;display:block;top:2px;height:14px;border-radius:3px}.ana1-positive{background:var(--green)}.ana1-negative{background:var(--red)}.ana1-zero{position:absolute;top:0;height:100%;border-left:1px solid var(--text)}.ana1-unexplained .ana1-water-bar{background:var(--amber)}
.ana1-comparisons{display:grid;gap:10px}.ana1-compare-row{border-top:1px solid var(--line);padding-top:6px}.ana1-compare-row h4{margin:6px 0}.ana1-compare-row dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0}.ana1-compare-row dl>div{min-width:0}.ana1-compare-row dt{font-size:10px;color:var(--muted)}.ana1-compare-row dd{font-size:12px;margin:5px 0 0;display:flex;flex-wrap:wrap;gap:5px}
.ana1-upload{font:inherit;color:var(--accent);border:1px solid var(--line);background:var(--panel);border-radius:9px;padding:10px 14px;cursor:pointer}.ana1-empty{padding-block:10px}
.ana1-section :focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(max-width:900px){.ana1-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:480px){.ana1-heading{align-items:flex-start;flex-direction:column;gap:8px}.ana1-card summary{padding:14px;flex-wrap:wrap;gap:7px}.ana1-card summary>span:first-child{flex-basis:70%}.ana1-content{padding:0 12px 16px}.ana1-columns{gap:5px}.ana1-column-value{font-size:9px}.ana1-card summary small{font-size:11px}}
@media(prefers-reduced-motion:reduce){.ana1-section *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.ana1-w0{width:0%}.ana1-h0{height:0%}.ana1-x0{left:0%}
.ana1-w1{width:1%}.ana1-h1{height:1%}.ana1-x1{left:1%}
.ana1-w2{width:2%}.ana1-h2{height:2%}.ana1-x2{left:2%}
.ana1-w3{width:3%}.ana1-h3{height:3%}.ana1-x3{left:3%}
.ana1-w4{width:4%}.ana1-h4{height:4%}.ana1-x4{left:4%}
.ana1-w5{width:5%}.ana1-h5{height:5%}.ana1-x5{left:5%}
.ana1-w6{width:6%}.ana1-h6{height:6%}.ana1-x6{left:6%}
.ana1-w7{width:7%}.ana1-h7{height:7%}.ana1-x7{left:7%}
.ana1-w8{width:8%}.ana1-h8{height:8%}.ana1-x8{left:8%}
.ana1-w9{width:9%}.ana1-h9{height:9%}.ana1-x9{left:9%}
.ana1-w10{width:10%}.ana1-h10{height:10%}.ana1-x10{left:10%}
.ana1-w11{width:11%}.ana1-h11{height:11%}.ana1-x11{left:11%}
.ana1-w12{width:12%}.ana1-h12{height:12%}.ana1-x12{left:12%}
.ana1-w13{width:13%}.ana1-h13{height:13%}.ana1-x13{left:13%}
.ana1-w14{width:14%}.ana1-h14{height:14%}.ana1-x14{left:14%}
.ana1-w15{width:15%}.ana1-h15{height:15%}.ana1-x15{left:15%}
.ana1-w16{width:16%}.ana1-h16{height:16%}.ana1-x16{left:16%}
.ana1-w17{width:17%}.ana1-h17{height:17%}.ana1-x17{left:17%}
.ana1-w18{width:18%}.ana1-h18{height:18%}.ana1-x18{left:18%}
.ana1-w19{width:19%}.ana1-h19{height:19%}.ana1-x19{left:19%}
.ana1-w20{width:20%}.ana1-h20{height:20%}.ana1-x20{left:20%}
.ana1-w21{width:21%}.ana1-h21{height:21%}.ana1-x21{left:21%}
.ana1-w22{width:22%}.ana1-h22{height:22%}.ana1-x22{left:22%}
.ana1-w23{width:23%}.ana1-h23{height:23%}.ana1-x23{left:23%}
.ana1-w24{width:24%}.ana1-h24{height:24%}.ana1-x24{left:24%}
.ana1-w25{width:25%}.ana1-h25{height:25%}.ana1-x25{left:25%}
.ana1-w26{width:26%}.ana1-h26{height:26%}.ana1-x26{left:26%}
.ana1-w27{width:27%}.ana1-h27{height:27%}.ana1-x27{left:27%}
.ana1-w28{width:28%}.ana1-h28{height:28%}.ana1-x28{left:28%}
.ana1-w29{width:29%}.ana1-h29{height:29%}.ana1-x29{left:29%}
.ana1-w30{width:30%}.ana1-h30{height:30%}.ana1-x30{left:30%}
.ana1-w31{width:31%}.ana1-h31{height:31%}.ana1-x31{left:31%}
.ana1-w32{width:32%}.ana1-h32{height:32%}.ana1-x32{left:32%}
.ana1-w33{width:33%}.ana1-h33{height:33%}.ana1-x33{left:33%}
.ana1-w34{width:34%}.ana1-h34{height:34%}.ana1-x34{left:34%}
.ana1-w35{width:35%}.ana1-h35{height:35%}.ana1-x35{left:35%}
.ana1-w36{width:36%}.ana1-h36{height:36%}.ana1-x36{left:36%}
.ana1-w37{width:37%}.ana1-h37{height:37%}.ana1-x37{left:37%}
.ana1-w38{width:38%}.ana1-h38{height:38%}.ana1-x38{left:38%}
.ana1-w39{width:39%}.ana1-h39{height:39%}.ana1-x39{left:39%}
.ana1-w40{width:40%}.ana1-h40{height:40%}.ana1-x40{left:40%}
.ana1-w41{width:41%}.ana1-h41{height:41%}.ana1-x41{left:41%}
.ana1-w42{width:42%}.ana1-h42{height:42%}.ana1-x42{left:42%}
.ana1-w43{width:43%}.ana1-h43{height:43%}.ana1-x43{left:43%}
.ana1-w44{width:44%}.ana1-h44{height:44%}.ana1-x44{left:44%}
.ana1-w45{width:45%}.ana1-h45{height:45%}.ana1-x45{left:45%}
.ana1-w46{width:46%}.ana1-h46{height:46%}.ana1-x46{left:46%}
.ana1-w47{width:47%}.ana1-h47{height:47%}.ana1-x47{left:47%}
.ana1-w48{width:48%}.ana1-h48{height:48%}.ana1-x48{left:48%}
.ana1-w49{width:49%}.ana1-h49{height:49%}.ana1-x49{left:49%}
.ana1-w50{width:50%}.ana1-h50{height:50%}.ana1-x50{left:50%}
.ana1-w51{width:51%}.ana1-h51{height:51%}.ana1-x51{left:51%}
.ana1-w52{width:52%}.ana1-h52{height:52%}.ana1-x52{left:52%}
.ana1-w53{width:53%}.ana1-h53{height:53%}.ana1-x53{left:53%}
.ana1-w54{width:54%}.ana1-h54{height:54%}.ana1-x54{left:54%}
.ana1-w55{width:55%}.ana1-h55{height:55%}.ana1-x55{left:55%}
.ana1-w56{width:56%}.ana1-h56{height:56%}.ana1-x56{left:56%}
.ana1-w57{width:57%}.ana1-h57{height:57%}.ana1-x57{left:57%}
.ana1-w58{width:58%}.ana1-h58{height:58%}.ana1-x58{left:58%}
.ana1-w59{width:59%}.ana1-h59{height:59%}.ana1-x59{left:59%}
.ana1-w60{width:60%}.ana1-h60{height:60%}.ana1-x60{left:60%}
.ana1-w61{width:61%}.ana1-h61{height:61%}.ana1-x61{left:61%}
.ana1-w62{width:62%}.ana1-h62{height:62%}.ana1-x62{left:62%}
.ana1-w63{width:63%}.ana1-h63{height:63%}.ana1-x63{left:63%}
.ana1-w64{width:64%}.ana1-h64{height:64%}.ana1-x64{left:64%}
.ana1-w65{width:65%}.ana1-h65{height:65%}.ana1-x65{left:65%}
.ana1-w66{width:66%}.ana1-h66{height:66%}.ana1-x66{left:66%}
.ana1-w67{width:67%}.ana1-h67{height:67%}.ana1-x67{left:67%}
.ana1-w68{width:68%}.ana1-h68{height:68%}.ana1-x68{left:68%}
.ana1-w69{width:69%}.ana1-h69{height:69%}.ana1-x69{left:69%}
.ana1-w70{width:70%}.ana1-h70{height:70%}.ana1-x70{left:70%}
.ana1-w71{width:71%}.ana1-h71{height:71%}.ana1-x71{left:71%}
.ana1-w72{width:72%}.ana1-h72{height:72%}.ana1-x72{left:72%}
.ana1-w73{width:73%}.ana1-h73{height:73%}.ana1-x73{left:73%}
.ana1-w74{width:74%}.ana1-h74{height:74%}.ana1-x74{left:74%}
.ana1-w75{width:75%}.ana1-h75{height:75%}.ana1-x75{left:75%}
.ana1-w76{width:76%}.ana1-h76{height:76%}.ana1-x76{left:76%}
.ana1-w77{width:77%}.ana1-h77{height:77%}.ana1-x77{left:77%}
.ana1-w78{width:78%}.ana1-h78{height:78%}.ana1-x78{left:78%}
.ana1-w79{width:79%}.ana1-h79{height:79%}.ana1-x79{left:79%}
.ana1-w80{width:80%}.ana1-h80{height:80%}.ana1-x80{left:80%}
.ana1-w81{width:81%}.ana1-h81{height:81%}.ana1-x81{left:81%}
.ana1-w82{width:82%}.ana1-h82{height:82%}.ana1-x82{left:82%}
.ana1-w83{width:83%}.ana1-h83{height:83%}.ana1-x83{left:83%}
.ana1-w84{width:84%}.ana1-h84{height:84%}.ana1-x84{left:84%}
.ana1-w85{width:85%}.ana1-h85{height:85%}.ana1-x85{left:85%}
.ana1-w86{width:86%}.ana1-h86{height:86%}.ana1-x86{left:86%}
.ana1-w87{width:87%}.ana1-h87{height:87%}.ana1-x87{left:87%}
.ana1-w88{width:88%}.ana1-h88{height:88%}.ana1-x88{left:88%}
.ana1-w89{width:89%}.ana1-h89{height:89%}.ana1-x89{left:89%}
.ana1-w90{width:90%}.ana1-h90{height:90%}.ana1-x90{left:90%}
.ana1-w91{width:91%}.ana1-h91{height:91%}.ana1-x91{left:91%}
.ana1-w92{width:92%}.ana1-h92{height:92%}.ana1-x92{left:92%}
.ana1-w93{width:93%}.ana1-h93{height:93%}.ana1-x93{left:93%}
.ana1-w94{width:94%}.ana1-h94{height:94%}.ana1-x94{left:94%}
.ana1-w95{width:95%}.ana1-h95{height:95%}.ana1-x95{left:95%}
.ana1-w96{width:96%}.ana1-h96{height:96%}.ana1-x96{left:96%}
.ana1-w97{width:97%}.ana1-h97{height:97%}.ana1-x97{left:97%}
.ana1-w98{width:98%}.ana1-h98{height:98%}.ana1-x98{left:98%}
.ana1-w99{width:99%}.ana1-h99{height:99%}.ana1-x99{left:99%}
.ana1-w100{width:100%}.ana1-h100{height:100%}.ana1-x100{left:100%}
.nx-stm-print-head,.nx-stm-print-foot{display:none}
@media (max-width:1100px){.nx-stm-grid{grid-template-columns:1fr}}
@media (max-width:760px){.nx-stm-bar{gap:8px}.nx-stm-tabs{inline-size:100%;overflow-x:auto;flex-wrap:nowrap}.nx-stm-tabs button{white-space:nowrap;padding:6px 10px}.nx-stm-table th[scope="row"]{min-width:150px}.nx-stm-pick select{max-width:160px}.nx-stm-chart li{grid-template-columns:minmax(80px,36%) minmax(0,1fr) auto}}
@media print{.nx-stm-print-head{display:flex;align-items:center;gap:14px;border-block-end:2px solid var(--primary);padding-block-end:10px;margin-block-end:12px}.nx-stm-print-head img{block-size:44px;inline-size:auto}.nx-stm-print-head div{display:grid;gap:2px}.nx-stm-print-head b{font-size:16px}.nx-stm-print-head small{color:#52647b}
 .nx-stm-print-foot{display:block;margin-block-start:14px;border-block-start:1px solid #dce4ed;padding-block-start:6px;font-size:10px;color:#52647b;text-align:center}
 .nx-stm-head{display:none}.nx-stm-grid{grid-template-columns:1fr}.nx-stm-line{padding-block:3px;min-height:0}.nx-stm-fx,.nx-stm-note{display:none}.nx-stm-chart-bar,.nx-stm-comp-part{animation:none}.nx-stm-drill{display:none}}
/* G4-PRINTNX — print anything (the Owner 2026-10-17: «زر علامة طباعة بس ولو فيه كذا اختيار يبقى جنبها سهم فيها الخيارات … شكل الطباعة يبقى منظم زى الصورة فى تصميم
   استرا مع لوجو المنصة والشركة التانية والتذييل»): the print icon and its arrow on every screen, the choices under the arrow, the screens' own print buttons
   kept as a choice there, and the paper — the screen itself under the reports' head, then the signatures, the disclaimer and the footer (Astra's print
   screen); a part alone on its path; the platform's logo and line only when the report identity allows them. */
.nx-print{position:relative;display:inline-flex;align-items:stretch;flex:0 0 auto;vertical-align:middle}
.nx-print-btn,.nx-print-more{min-block-size:36px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0 8px;font:inherit}
.nx-print-btn{inline-size:40px;border-start-start-radius:var(--r-s);border-end-start-radius:var(--r-s);border-start-end-radius:0;border-end-end-radius:0}
.nx-print-more{inline-size:28px;border-inline-start:0;border-start-end-radius:var(--r-s);border-end-end-radius:var(--r-s);border-start-start-radius:0;border-end-start-radius:0;font-size:12px;color:var(--muted)}
.nx-print-btn:hover,.nx-print-more:hover,.nx-print-more[aria-expanded="true"]{background:var(--hover);color:var(--primary)}
.nx-print-btn:focus-visible,.nx-print-more:focus-visible,.nx-print-menu button:focus-visible,.nx-print-menu input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.nx-print-btn svg{inline-size:18px;block-size:18px}
.nx-print-menu{position:absolute;inset-inline-end:0;inset-block-start:calc(100% + 6px);z-index:60;inline-size:max-content;min-inline-size:240px;max-inline-size:min(340px,calc(100vw - 32px));max-block-size:70vh;overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-s);box-shadow:0 12px 30px #142f5524;padding:8px;text-align:start;font-size:13px}
.nx-print-menu[hidden]{display:none}
.nx-print-cap{margin:2px 6px 6px;font-size:12px;color:var(--muted);font-weight:600}
.nx-print-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.nx-print-list button{inline-size:100%;text-align:start;background:none;border:0;border-radius:7px;padding:8px 10px;min-block-size:36px;color:var(--ink);cursor:pointer;font:inherit}
.nx-print-list button:hover{background:var(--hover);color:var(--primary)}
.nx-print-opts{display:grid;gap:6px;border-block-start:1px solid var(--line);margin-block-start:6px;padding:8px 6px 2px;font-size:12.5px}
.nx-print-opts label{display:flex;align-items:center;gap:8px;cursor:pointer}
.nx-print-logo{flex-wrap:wrap;color:var(--muted)}
.nx-print-logo input{font-size:12px;max-inline-size:100%}
.nx-stm-actions .nx-print :is(.nx-print-btn,.nx-print-more){min-block-size:40px}
@media (max-width:600px){.nx-print-menu{position:fixed;inset-inline:16px;inset-block-start:72px;inline-size:auto;min-inline-size:0;max-inline-size:none}}
:is([data-nx-pl-print],[data-nx-gx-print],[data-nx-mon-print],[data-nx-kl-print],[data-nx-stm-print],[data-nx-db-act="print"],[data-nx-lv-act="print"],[data-nx-ch-act="print"]){display:none!important}
.nxp-sheet{display:none}
@media print{
 .nx-print{display:none!important}
 html.nx-printing body{page:nxp-ar;background:#fff}
 html.nx-printing[dir="ltr"] body{page:nxp-en}
 html.nx-printing .nxp-sheet{display:block;color:#102641}
 html.nx-printing #nx-main :is(.nx-head,.nx-db-head,.nx-kl-head,.lb-top,[role="tablist"],.nx-pl-tabs,[data-nx-stm-print-head],[data-nx-stm-print-foot],.nx-mon-print-head,.nx-mon-print-foot){display:none!important}
 html.nx-printing #nx-main *{animation:none!important;transition:none!important}
 html.nx-print-part .nxp-path{display:block!important;overflow:visible!important;max-block-size:none!important;block-size:auto!important;padding:0!important;margin:0!important;border:0!important;box-shadow:none!important;background:none!important}
 html.nx-print-part .nxp-path>:not(.nxp-path,.nxp-target,.nxp-sheet){display:none!important}
 html.nx-print-part .nxp-target{max-block-size:none!important;overflow:visible!important;break-inside:auto}
 html.nxp-no-texts :is([data-chart-text],.nx-lv-note,.lb-note,.vis2-note,.nx-kl-note,.nx-kl-why,.wf-note,.vc-note,.reading-item,.reading-signal,.nx-db-explain){display:none!important}
 .nxp-head{display:grid;grid-template-columns:64px minmax(0,1fr) auto auto;align-items:center;gap:14px;border-block-end:2px solid var(--primary);padding-block-end:10px;margin-block-end:14px}
 .nxp-logo{inline-size:64px;block-size:48px;display:grid;place-items:center;border:1px dashed #a9b7ca;border-radius:8px}
 .nxp-logo:has(img){border:0}
 .nxp-logo img{max-inline-size:64px;max-block-size:48px;object-fit:contain}
 .nxp-title h1{margin:0;font-size:18px;color:#102641}
 .nxp-title p{margin:2px 0 0;font-size:12px;color:#52647b}
 .nxp-by{font-size:10.5px;color:#52647b;display:grid;gap:2px;text-align:end}
 .nxp-by p{margin:0}
 .nxp-by b{color:#102641;font-weight:600}
 .nxp-mark{block-size:34px;inline-size:auto}
 .nxp-sign{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-block-start:26px;break-inside:avoid}
 .nxp-sign div{display:grid;gap:6px;text-align:center;font-size:11px}
 .nxp-sign p{margin:0;font-weight:600;color:#102641}
 .nxp-sign span{display:block;block-size:28px;border-block-end:1px solid #52647b}
 .nxp-sign small{color:#52647b}
 .nxp-disclaimer{margin:16px 0 0;padding:8px 10px;border:1px solid #dce4ed;border-radius:6px;background:#f7f9fc;font-size:9.5px;line-height:1.6;color:#52647b;break-inside:avoid}
 .nxp-foot{display:flex;justify-content:space-between;gap:12px;margin-block-start:12px;border-block-start:1px solid #dce4ed;padding-block-start:6px;font-size:9.5px;color:#52647b}
}
@page nxp-ar{size:A4 portrait;margin:14mm 12mm 16mm;@bottom-center{content:"صفحة " counter(page) " من " counter(pages);font-size:9px;color:#52647b}}
@page nxp-en{size:A4 portrait;margin:14mm 12mm 16mm;@bottom-center{content:"Page " counter(page) " of " counter(pages);font-size:9px;color:#52647b}}
/* G4-PRINTNX2 — the saved logo's hint under the print arrow (or the way to «هوية التقارير») */
.nx-print-hint{margin:4px 0 0;font-size:12px;color:var(--muted);line-height:1.5}
.nx-print-hint a{color:var(--primary)}
/* public/styles.css (47, 49-54, 230-232) + public/fline1.css + public/dec2.css, copied, comments left out, every selector under .nx-dec */
.nx-dec .mt-panel{margin-top:14px}.nx-dec .bad{color:var(--red);font-weight:800}.nx-dec .decision-filters{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.nx-dec .decision-card{padding:16px 18px;border-radius:16px;border:1px solid var(--line);border-inline-start:5px solid var(--line);background:var(--panel);color:var(--text);box-shadow:0 6px 18px rgba(15,31,50,.06)}
.nx-dec .decision-card h4{margin:10px 0 8px;font-size:17px;line-height:1.5;color:var(--text)}.nx-dec .decision-card p{margin:6px 0;color:var(--muted);line-height:1.75;font-size:13.5px}.nx-dec .decision-card p strong{color:var(--text)}.nx-dec .decision-card .decision-top,.nx-dec .decision-card .decision-foot{color:var(--muted)}
.nx-dec .decision-card.critical{border-inline-start-color:var(--red)}.nx-dec .decision-card.high{border-inline-start-color:var(--amber)}.nx-dec .decision-card.positive{border-inline-start-color:var(--green)}
.nx-dec #decisionSummary button.decision-filter{display:block;width:100%;text-align:start;font:inherit;color:var(--text);cursor:pointer;padding:18px}.nx-dec #decisionSummary button.decision-filter[aria-pressed="true"]{outline:2px solid var(--accent);outline-offset:-2px}.nx-dec #decisionSummary button.decision-filter:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.nx-dec .decision-top,.nx-dec .decision-foot{display:flex;justify-content:space-between;gap:10px;align-items:center}.nx-dec .decision-top span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--cyan)}.nx-dec .decision-top b{font-size:11px;color:var(--muted)}
.nx-dec .decision-foot{border-top:1px solid var(--line);margin-top:13px;padding-top:10px;font-size:11px;color:var(--muted)}
.nx-dec .decision-card.trust-blocked{border-color:rgba(255,99,99,.55);box-shadow:inset 0 0 0 1px rgba(255,99,99,.25)}
.nx-dec .decision-card.trust-blocked .decision-foot span:last-child{color:#ff8a8a;font-weight:600}
.nx-dec .pill.bad{color:#ffb3b3;background:rgba(255,99,99,.14);border-color:rgba(255,99,99,.45)}
.nx-dec .fl-line{flex:1 1 380px;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:6px 8px;min-width:0}
.nx-dec .fl-line-title{font-size:12px;color:var(--muted)}
.nx-dec .fl-dd{position:relative}
.nx-dec .fl-dd-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;font-size:12px;border-radius:999px;line-height:1.6;white-space:nowrap}
.nx-dec .fl-dd-caret{font-size:10px;opacity:.7}
.nx-dec .fl-dd-n{font-variant-numeric:tabular-nums}
.nx-dec .fl-line .fl-dd-btn[data-fl-active]{background:var(--accent,#315ccf)!important;color:#fff!important;border-color:var(--accent,#315ccf)!important;font-weight:700}
.nx-dec .fl-line .fl-dd-btn[aria-expanded="true"]{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent,#315ccf) 35%,transparent)}
.nx-dec .fl-line .fl-menu{position:absolute;top:calc(100% + 6px);inset-inline-start:0;z-index:70;min-width:260px;max-width:min(340px,92vw);max-height:340px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--panel,#fff);box-shadow:0 12px 32px rgba(16,38,65,.18)}
.nx-dec .fl-line .fl-menu[hidden]{display:none!important}
.nx-dec .fl-line .fl-search{width:100%;margin:0 0 6px;padding:6px 10px;font-size:12px;border-radius:8px}
.nx-dec .fl-line label.fl-opt{display:flex!important;flex-direction:row;align-items:center;gap:10px;width:auto;margin:0;padding:7px 10px;border-radius:8px;font-size:13px;line-height:1.45;cursor:pointer;text-align:start}
.nx-dec .fl-line label.fl-opt[hidden]{display:none!important}
.nx-dec .fl-line label.fl-opt input[type="checkbox"]{flex:0 0 16px;width:16px;height:16px;min-height:0;margin:0;padding:0}
.nx-dec .fl-line .fl-opt:hover{background:color-mix(in srgb,var(--accent,#315ccf) 8%,transparent)}
.nx-dec .fl-line .fl-opt span{flex:1 1 auto;min-width:0;white-space:normal}
.nx-dec .fl-line .fl-opt b{font-weight:600;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.nx-dec .fl-shown{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.nx-dec .fl-line .fl-clear[hidden]{display:none!important}
@media(max-width:700px){.nx-dec .fl-line{flex-basis:100%}}
.nx-dec #decisionFilters .dec2-line{margin-inline-start:auto}
.nx-dec #insightsFull .dec2-off{display:none!important}
.nx-dec #insightsFull .dec2-none{grid-column:1/-1}
/* G4-DECNX — «القرارات» in the new look (the mockup's «الإشارات والقرارات»: white cards, the light lines, the ink and the blue of the interface; the severity
   stripe kept): the classic colour names of the copied sheets read the interface's tokens; the numbers as cards; the filter line's buttons and lists. */
.nx-dec{--panel:var(--surface);--text:var(--ink);--red:var(--bad);--amber:var(--warn);--green:var(--good);--cyan:var(--primary)}
.nx-dec #page-insights{display:block}
.nx-dec .page-intro{display:none}
.nx-dec .kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 14px}
.nx-dec .kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.nx-dec #decisionSummary button.decision-filter{padding:16px 18px;border-radius:var(--r);color:var(--ink)}
.nx-dec #decisionSummary button.decision-filter:hover{background:var(--hover)}
.nx-dec #decisionSummary button.decision-filter[aria-pressed="true"]{outline:2px solid var(--primary);outline-offset:-2px;background:var(--primary-soft)}
.nx-dec #decisionSummary button.decision-filter:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.nx-dec .kpi small{display:block;font-size:12.5px;color:var(--muted);font-weight:600}
.nx-dec .kpi strong{display:block;font-size:26px;margin:8px 0 4px;color:var(--ink);font-variant-numeric:tabular-nums}
.nx-dec .kpi span{font-size:12px;color:var(--muted)}
.nx-dec [data-decision-filter="critical"] strong{color:var(--bad)}
.nx-dec [data-decision-filter="high"] strong{color:var(--warn)}
.nx-dec [data-decision-filter="positive"] strong{color:var(--good)}
.nx-dec .pill{display:inline-flex;align-items:center;font-size:12px;color:var(--primary);background:var(--primary-soft);border:1px solid color-mix(in srgb,var(--primary) 25%,transparent);padding:5px 10px;border-radius:999px}
.nx-dec .pill.bad{color:var(--bad);background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 35%,transparent)}
.nx-dec .muted{color:var(--muted);font-size:12.5px}
.nx-dec .insights-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.nx-dec .empty{grid-column:1/-1;padding:28px;text-align:center;color:var(--muted);border:1px dashed var(--line-2);border-radius:var(--r);background:var(--surface)}
.nx-dec .decision-card{border-radius:var(--r);box-shadow:var(--shadow)}
.nx-dec .decision-card.trust-blocked{border-color:color-mix(in srgb,var(--bad) 45%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bad) 20%,transparent)}
.nx-dec .decision-card.trust-blocked .decision-foot span:last-child{color:var(--bad)}
.nx-dec .decision-top span{color:var(--primary);font-weight:700}
.nx-dec .fl-dd-btn{min-block-size:32px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font:inherit;font-size:12.5px}
.nx-dec .fl-dd-btn:hover{background:var(--hover)}
.nx-dec .fl-line .fl-dd-btn[data-fl-active]{background:var(--primary)!important;border-color:var(--primary)!important}
.nx-dec .fl-line .fl-menu{background:var(--surface);color:var(--ink);border-color:var(--line);box-shadow:0 12px 30px #142f5524}
.nx-dec .fl-search{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit}
.nx-dec .fl-clear{border:1px solid var(--line);background:var(--surface);color:var(--primary);border-radius:999px;padding:3px 10px;font:inherit;font-size:12px;cursor:pointer}
@media (max-width:1050px){.nx-dec .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nx-dec .insights-grid{grid-template-columns:1fr}}
@media (max-width:520px){.nx-dec .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.nx-dec #decisionSummary button.decision-filter{padding:12px}.nx-dec .kpi strong{font-size:22px}}
@media print{.nx-dec .fl-line,.nx-dec .decision-filters .muted{display:none!important}.nx-dec .decision-card{break-inside:avoid;box-shadow:none}.nx-dec .insights-grid{grid-template-columns:1fr}}
/* G4-PRINTFIT — the paper fitted by itself (the Owner 2026-10-17): the direction under the print arrow; the table measured at its narrowest readable width;
   on paper: landscape when needed, readable steps down to 55%, the table head on every page, rows and pictures not split, drawings to the paper's width,
   the scrolled boxes opened, headings kept with what follows. */
.nx-print-orient{border:0;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center}
.nx-print-orient legend{float:inline-start;margin-inline-end:8px;font-size:12px;color:var(--muted);font-weight:600;padding:0}
.nx-print-orient label{display:inline-flex;align-items:center;gap:5px;cursor:pointer}
table.nxp-measure{width:min-content!important;min-width:0!important;max-width:none!important;table-layout:auto!important}
@media print{
 html.nx-printing.nxp-land body{page:nxp-ar-l}
 html.nx-printing.nxp-land[dir="ltr"] body{page:nxp-en-l}
 html.nx-printing .nxp-z95{zoom:.95}
 html.nx-printing .nxp-z90{zoom:.9}
 html.nx-printing .nxp-z85{zoom:.85}
 html.nx-printing .nxp-z80{zoom:.8}
 html.nx-printing .nxp-z75{zoom:.75}
 html.nx-printing .nxp-z70{zoom:.7}
 html.nx-printing .nxp-z65{zoom:.65}
 html.nx-printing .nxp-z60{zoom:.6}
 html.nx-printing .nxp-z55{zoom:.55}
 html.nx-printing #nx-main thead{display:table-header-group}
 html.nx-printing #nx-main tfoot{display:table-footer-group}
 html.nx-printing #nx-main :is(tr,img,figure){break-inside:avoid}
 html.nx-printing #nx-main svg[viewBox]{max-width:100%;height:auto}
 html.nx-printing #nx-main :is(canvas,img):not(.nxp-sheet img){max-width:100%;height:auto}
 html.nx-printing #nx-main p{orphans:3;widows:3}
 html.nx-printing #nx-main :is(h1,h2,h3,h4,caption){break-after:avoid}
 html.nx-printing #nx-main :is(.table-wrap,.nx-table-wrap,[class*="scroll"]){overflow:visible!important;max-height:none!important}
}
@page nxp-ar-l{size:A4 landscape;margin:12mm 12mm 14mm;@bottom-center{content:"صفحة " counter(page) " من " counter(pages);font-size:9px;color:#52647b}}
@page nxp-en-l{size:A4 landscape;margin:12mm 12mm 14mm;@bottom-center{content:"Page " counter(page) " of " counter(pages);font-size:9px;color:#52647b}}
/* G4-DATEPICK — the easy picker (the Owner 2026-10-17, his two pictures): a button with the month or the day the field holds and a calendar icon; under it
   the year with its arrows and its twelve months, or the month with its arrows and its weeks; today marked; «الشهر ده» / «روح لانهارده». The page's
   field stays in place (hidden from sight and from the keyboard) as the holder of the value. */
.nx-dp{position:relative;display:inline-flex;vertical-align:middle}
.nx-dp-held{position:absolute!important;inline-size:1px!important;block-size:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important;margin:0!important;padding:0!important;border:0!important}
.nx-dp-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-block-size:36px;min-inline-size:150px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);color:var(--ink);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;font-variant-numeric:tabular-nums}
.nx-dp-btn:hover,.nx-dp-btn[aria-expanded="true"]{border-color:var(--primary);color:var(--primary)}
.nx-dp-btn:focus-visible,.nx-dp-pop button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.nx-dp-ico{inline-size:17px;block-size:17px;flex:0 0 auto;color:var(--muted)}
.nx-dp-pop{position:absolute;inset-block-start:calc(100% + 6px);inset-inline-start:0;z-index:80;inline-size:272px;padding:12px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-s);box-shadow:0 14px 34px #142f5526}
.nx-dp-pop[hidden]{display:none}
.nx-dp-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-block-end:8px}
.nx-dp-title{font-size:15px;font-weight:700;color:var(--ink);background:none;border:0;padding:4px 6px;border-radius:6px;font-family:inherit;font-variant-numeric:tabular-nums}
button.nx-dp-title{cursor:pointer;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--primary) 45%,transparent);text-underline-offset:4px}
button.nx-dp-title:hover{background:var(--hover);color:var(--primary)}
.nx-dp-arrows{display:inline-flex;gap:2px}
.nx-dp-arrow{inline-size:32px;block-size:32px;border:0;border-radius:6px;background:none;color:var(--muted);font-size:15px;cursor:pointer}
.nx-dp-arrow:hover{background:var(--hover);color:var(--primary)}
.nx-dp-months{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:4px 0}
.nx-dp-week,.nx-dp-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;text-align:center}
.nx-dp-week span{font-size:11.5px;color:var(--muted);padding:4px 0;font-weight:600}
.nx-dp-cell{border:0;background:none;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;font-variant-numeric:tabular-nums}
.nx-dp-months .nx-dp-cell{block-size:46px;font-size:13px;border-radius:10px}
.nx-dp-days .nx-dp-cell{block-size:34px;font-size:13px}
.nx-dp-cell:hover:not([disabled]){background:var(--hover);color:var(--primary)}
.nx-dp-cell.is-out{color:var(--line-2)}
.nx-dp-cell.is-now{box-shadow:inset 0 0 0 2px var(--primary)}
.nx-dp-cell.is-on{background:var(--primary);color:#fff;font-weight:700}
.nx-dp-cell[disabled]{color:var(--line-2);cursor:not-allowed;text-decoration:line-through;text-decoration-color:transparent}
.nx-dp-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;margin-block-start:8px;padding-block-start:8px;border-block-start:1px solid var(--line)}
.nx-dp-link{border:0;background:none;color:var(--primary);font:inherit;font-size:13px;font-weight:600;cursor:pointer;padding:4px 6px;border-radius:6px}
.nx-dp-link:hover{background:var(--hover)}
@media (max-width:600px){.nx-dp-pop{position:fixed;inset-inline:16px;inset-block-start:auto;inset-block-end:16px;inline-size:auto;max-block-size:80vh;overflow:auto}}
@media print{.nx-dp-pop{display:none!important}.nx-dp-btn{border:0;padding:0;min-inline-size:0}.nx-dp-ico{display:none}}
/* the pair of a month and a year is one picker: it sits with the month; the year's own label is left out of sight */
.nx-field:has(> select.nx-dp-held):not(:has(.nx-dp)){display:none}
/* the top bar's period: the picker in the chip's look («الفترة: فبراير 2026») */
.nx-top .nx-dp-btn{min-inline-size:0;min-block-size:42px;border:0;background:transparent;padding:0 4px;font-weight:700;color:var(--ink);gap:8px}
.nx-top .nx-dp-pop{inset-inline-start:auto;inset-inline-end:0}
.nx-top.chips .nx-field:has(.nx-dp){padding-inline-end:6px}
.nx-field>.nx-dp::after{content:none!important}
/* public/styles.css (246-249) + public/desk-shell.css (514-523) + public/hdr1.css (33-40, 72-80), copied, comments left out, every selector under .nx-us */
.nx-us .pw-wrap{position:relative;display:block}.nx-us .pw-wrap>input[type="password"],.nx-us .pw-wrap>input[data-pw-eye]{width:100%;padding-right:46px}
.nx-us input[type="password"]{font-size:18px;letter-spacing:.14em;direction:ltr;text-align:start}.nx-us input[type="password"]::placeholder{font-size:14px;letter-spacing:normal}
.nx-us .pw-eye{position:absolute;right:6px;left:auto;top:50%;transform:translateY(-50%);min-width:36px;min-height:36px;padding:0;border:0;background:transparent;color:inherit;opacity:.8;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;cursor:pointer}
.nx-us .pw-eye:hover{opacity:1}.nx-us .pw-eye:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.nx-us .pw-eye[aria-pressed="false"] .pw-eye-slash{display:none}
.nx-us .am-matrix{display:grid;gap:10px;margin:0;padding:12px;border:1px solid var(--desk-border,#d8e0ea);border-radius:12px}
.nx-us .am-matrix legend{font-weight:700;padding-inline:4px}
.nx-us .am-actions,.nx-us .am-companies{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 12px}
.nx-us .am-companies{margin:0;padding:10px;border:1px dashed var(--desk-border,#d8e0ea);border-radius:10px}
.nx-us .am-matrix label{display:flex;align-items:center;gap:8px;margin:0;min-height:36px}
.nx-us .am-summary p{margin:4px 0}
.nx-us .am-summary .am-none{color:var(--desk-loss,#b42318)}
@media (min-width:0px){
 .nx-us .am-matrix input[type="checkbox"]{width:18px;height:18px}
}
.nx-us .hdr1-file{display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 8px;border:1px dashed var(--line,#c9d4e3);border-radius:12px;background:var(--panel2,transparent);min-width:0}
.nx-us .hdr1-file[data-chosen="true"]{border-style:solid;border-color:color-mix(in srgb,var(--accent,#2563eb) 45%,transparent)}
.nx-us .hdr1-file .hdr1-file-input{position:absolute!important;width:1px!important;height:1px!important;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;opacity:0}
.nx-us .hdr1-file .hdr1-file-button{flex:0 0 auto;min-height:36px;padding:0 16px;border:1px solid var(--line,#c9d4e3);border-radius:10px;background:var(--panel,#fff);color:var(--text,inherit);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.nx-us .hdr1-file .hdr1-file-button:hover{border-color:var(--accent,#2563eb)}
.nx-us .hdr1-file .hdr1-file-button:focus-visible{outline:2px solid var(--accent,#2563eb);outline-offset:2px}
.nx-us .hdr1-file .hdr1-file-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--muted,#64748b)}
.nx-us .hdr1-file[data-chosen="true"] .hdr1-file-name{color:var(--text,inherit);font-weight:600}
.nx-us .hdr1-logo-panel .hdr1-logo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:14px;align-items:end}
.nx-us .hdr1-logo-panel .hdr1-logo-preview{display:flex;align-items:center;justify-content:center;min-width:120px;height:64px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.nx-us .hdr1-logo-panel .hdr1-logo-preview[data-hdr-surface="light"]{background:#f4f7fb}
.nx-us .hdr1-logo-panel .hdr1-logo-preview[data-hdr-surface="dark"]{background:#0e1626}
.nx-us .hdr1-logo-panel .hdr1-logo-preview .desk-mark{display:flex;align-items:center;height:52px;padding:0;border-radius:12px}
.nx-us .hdr1-logo-panel .hdr1-logo-preview .desk-mark img{height:46px;width:auto;display:block}
.nx-us .hdr1-logo-panel .hdr1-logo-preview[data-hdr-plate="true"] .desk-mark{padding:3px 10px;background:radial-gradient(120% 140% at 30% 20%,#24324a 0%,#0f1a2c 60%,#0a1222 100%)}
.nx-us .hdr1-logo-panel .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
@media (max-width:760px){.nx-us .hdr1-logo-panel .hdr1-logo-grid{grid-template-columns:minmax(0,1fr)}}
/* G4-USRNX — «المستخدمين والصلاحيات» in the new look (the light cards and fields of the new interface, as the group page): the classic page's panels, forms,
   tables and buttons; the classic colour names of the copied sheets read the interface's tokens. */
.nx-us{--panel:var(--surface);--panel2:var(--canvas);--text:var(--ink);--accent:var(--primary);--red:var(--bad);--green:var(--good);--amber:var(--warn);--desk-border:var(--line);--desk-loss:var(--bad)}
.nx-us #page-admin{display:grid;gap:16px}
.nx-us .page-intro{display:none}
.nx-us .grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.nx-us .grid-2>*{min-width:0}
.nx-us .panel{min-width:0;padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);box-sizing:border-box}
.nx-us .panel h3{margin:0 0 12px;font-size:16px;font-weight:700;color:var(--ink)}
.nx-us .panel h4{margin:16px 0 8px;font-size:14px;color:var(--ink)}
.nx-us .panel[hidden],.nx-us [hidden]{display:none!important}
.nx-us .stack{display:grid;gap:12px}
.nx-us .two-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.nx-us label{display:grid;gap:6px;color:var(--muted);font-size:13px}
.nx-us .inline-check{display:flex!important;align-items:center;gap:9px}
.nx-us .inline-check input{width:auto;min-height:0}
.nx-us input:not([type=checkbox]):not([type=radio]):not([type=file]),.nx-us select,.nx-us textarea{min-height:44px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;box-sizing:border-box}
.nx-us input:focus-visible,.nx-us select:focus-visible,.nx-us textarea:focus-visible,.nx-us button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.nx-us .panel button:not(.pw-eye):not(.hdr1-file-button),.nx-us .panel .button{min-height:40px;padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.nx-us .panel button:not(.pw-eye):not(.hdr1-file-button):hover{border-color:var(--primary);color:var(--primary)}
.nx-us .panel button.primary,.nx-us .panel .primary{background:var(--primary);border-color:var(--primary);color:#fff}
.nx-us .panel button.primary:hover{background:var(--primary-2);color:#fff}
.nx-us .panel button:disabled{opacity:.55;cursor:default}
.nx-us .mini{min-height:30px!important;padding:4px 10px!important;font-size:12px!important;border-radius:8px!important}
.nx-us .mini.danger{color:var(--bad)!important;border-color:color-mix(in srgb,var(--bad) 35%,transparent)!important;background:var(--bad-soft)!important}
.nx-us table{width:100%;border-collapse:collapse;font-size:13px}
.nx-us th,.nx-us td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:start;vertical-align:middle}
.nx-us th{background:var(--th);color:var(--muted);font-weight:700;font-size:12.5px}
.nx-us .table-wrap,.nx-us #adminState{overflow-x:auto;max-inline-size:100%}
.nx-us pre{white-space:pre-wrap;word-break:break-all;margin:8px 0 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--canvas);color:var(--ink);font-size:12.5px;direction:ltr;text-align:left}
.nx-us pre:empty{display:none}
.nx-us small,.nx-us .muted{color:var(--muted)}
.nx-us .error{color:var(--bad);min-height:0;margin-top:6px}
.nx-us .success{color:var(--good)}
.nx-us .admin-counts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.nx-us .admin-counts span{padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--canvas);color:var(--muted)}
.nx-us .admin-counts b{color:var(--ink);margin-inline-start:6px}
.nx-us .reg-admin fieldset{border:1px solid var(--line);border-radius:12px;padding:12px;margin:0}
.nx-us .reg-admin textarea{min-height:70px}
.nx-us .pw-eye{color:var(--muted)}
.nx-us-body{min-width:0}
.nx-us [data-nx-us-tax]{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px}
.nx-us [data-nx-us-tax][hidden]{display:none}
@media (max-width:900px){.nx-us .grid-2,.nx-us .two-fields{grid-template-columns:minmax(0,1fr)}.nx-us .panel{padding:16px}}
/* G4-TAXED — the zakat and tax rules editor on the users page in the light look (the report screen's rules of the tax card, read under the users page) */
.nx-us .tax1{--accent:var(--primary);--soft:#f7f9fc;display:grid;gap:8px}
.nx-us .tax1 .tx-tools select,.nx-us .tax1 .tx-tools input,.nx-us .tax1 .tx-form select,.nx-us .tax1 .tx-form input:not([type=checkbox]){min-height:44px;border:1px solid #dbe4ee;border-radius:10px;padding:6px 10px;font:inherit;font-size:14px;color:var(--ink);background:var(--surface)}
.nx-us .tax1 .tx-tools label,.nx-us .tax1 .tx-form label{font-size:13px;color:var(--muted)}
.nx-us .tax1 button{min-height:40px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);padding:6px 14px;font:inherit;font-size:13px;cursor:pointer}
.nx-us .tax1 button.primary,.nx-us .tax1 button[type="submit"]{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}
.nx-us .tax1 .tx-table thead th,.nx-us .tax1 .tx-table caption{color:#4c5e76}
.nx-us .tax1 .error{color:var(--bad);font-weight:600}
.nx-us .tax1 .muted{color:var(--muted)}
.nx-us .tax1 [aria-invalid="true"]{border-color:var(--bad)!important}
@media (max-width:760px){.nx-us .tax1 .tx-table{display:block;overflow-x:auto;max-inline-size:100%}}
/* the editor stays inside the phone: its blocks may shrink, its fields fit one column, its tables scroll in their own box */
.nx-us .tax1>*,.nx-us .tax1 .tx-body,.nx-us .tax1 .tx-body>*,.nx-us .tax1 form,.nx-us .tax1 .tx-inputs>*{min-width:0}
.nx-us .tax1 .tx-inputs{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}
/* public/desk-shell.css (580-592, 614-628, 630-639) + public/sub2.css (7-11), copied, comments left out, every selector under .nx-cm */
.nx-cm .plan-builder .plan-group{border:1px solid var(--line,#dbe4ee);border-radius:12px;padding:10px 14px 12px;margin:0 0 12px;min-width:0}
.nx-cm .plan-builder .plan-group>legend{font-weight:700;padding:0 6px}
.nx-cm .plan-builder .three-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.nx-cm .plan-builder .three-fields>label,.nx-cm .plan-builder .two-fields>label,.nx-cm .plan-builder .plan-group>label{margin:4px 0;gap:4px;min-width:0;font-size:inherit}
.nx-cm #page-listed .two-fields>label{font-size:inherit}
.nx-cm .plan-builder .plan-hint{margin:0 0 8px;font-size:.86em}
.nx-cm .plan-builder .feature-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 16px;margin:6px 0}
.nx-cm .plan-builder .plan-feature{display:flex;align-items:center;gap:8px;margin:0}
.nx-cm .plan-builder .plan-feature input{width:auto;flex:0 0 auto;margin:0}
.nx-cm #commercialPlanStatus.error{color:var(--danger,#b42318)}
@media (max-width:700px){
 .nx-cm .plan-builder .three-fields{grid-template-columns:1fr}
}
.nx-cm .billadm-tabs{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:10px;margin:0 0 10px;border-bottom:1px solid var(--desk-border,#dbe4ee)}
.nx-cm .billadm-tabs [data-billadm-tab]{min-height:44px;padding:0 14px;border:0;border-radius:10px;background:transparent;color:var(--desk-sub,#596c84);font:inherit;font-size:.88rem;cursor:pointer}
.nx-cm .billadm-tabs [data-billadm-tab][aria-selected="true"]{background:var(--xc-tint,var(--desk-soft,#eaf3ff));color:var(--xc-primary,var(--desk-accent,#0869c9));font-weight:700}
.nx-cm .billadm-tabs [data-billadm-tab]:focus-visible{outline:2px solid var(--desk-focus,var(--xc-primary,#0869c9));outline-offset:2px}
.nx-cm .billadm-count{display:inline-block;min-width:1.6em;border-radius:999px;border:1px solid currentColor;font-size:.75rem;text-align:center}
.nx-cm .billadm-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.nx-cm .billadm-reject{display:flex;flex-wrap:wrap;gap:6px;align-items:end;width:100%}
.nx-cm .billadm-reject label{margin:0;gap:4px;min-width:0;flex:1 1 200px}
.nx-cm #billadmMethodForm label{margin:4px 0;gap:4px;min-width:0;font-size:inherit}
.nx-cm #billadmMethodForm .plan-feature{display:flex;align-items:center;gap:8px}
.nx-cm #billadmMethodForm .plan-feature input{width:auto;flex:0 0 auto;margin:0}
.nx-cm #billadmStatus.error,.nx-cm #billadmMethodStatus.error{color:var(--danger,#b42318)}
@media (max-width:700px){
 .nx-cm .billadm-actions{flex-direction:column;align-items:stretch}
}
.nx-cm .billing-rules form label{margin:4px 0;gap:4px;min-width:0;font-size:inherit}
.nx-cm .billing-rules .plan-group{border:1px solid var(--line,#dbe4ee);border-radius:12px;padding:8px 12px 10px;margin:6px 0;min-width:0}
.nx-cm .billing-rules .plan-group>legend{font-weight:600;padding:0 6px}
.nx-cm .billing-rules .feature-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px 14px}
.nx-cm .billing-rules .plan-feature{display:flex;align-items:center;gap:8px;margin:0}
.nx-cm .billing-rules .plan-feature input{width:auto;flex:0 0 auto;margin:0}
.nx-cm #rulesTaxStatus.error,.nx-cm #rulesPromoStatus.error{color:var(--danger,#b42318)}
@media (max-width:700px){
 .nx-cm .billing-rules .feature-checks{grid-template-columns:1fr}
}
.nx-cm .sub2-admin{display:grid;gap:8px;margin-block-end:14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.nx-cm .sub2-admin h4{margin:0}.nx-cm .sub2-admin p{margin:0}
.nx-cm .sub2-waiting{display:grid;gap:6px;margin:0;padding-inline-start:18px}
.nx-cm .sub2-chip{display:inline-block;padding:1px 8px;border-radius:999px;border:1px solid var(--warn,var(--accent));font-size:.8rem}
.nx-cm .sub2-warn{padding:8px 10px;border-radius:10px;border:1px dashed var(--warn,var(--accent))}
/* G4-CMNX — «الإدارة» in the new look (the users page's light cards, fields, tables and buttons read under this page) and its own extras */
.nx-cm{--desk-border:var(--line);--desk-sub:var(--muted);--desk-soft:var(--canvas);--desk-accent:var(--primary);--desk-focus:var(--focus);--xc-primary:var(--primary);--xc-tint:var(--primary-soft);--danger:var(--bad)}
.nx-cm{--panel:var(--surface);--panel2:var(--canvas);--text:var(--ink);--accent:var(--primary);--red:var(--bad);--green:var(--good);--amber:var(--warn);--desk-border:var(--line);--desk-loss:var(--bad)}
.nx-cm #page-commercial-admin{display:grid;gap:16px}
.nx-cm .page-intro{display:none}
.nx-cm .grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.nx-cm .grid-2>*{min-width:0}
.nx-cm .panel{min-width:0;padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);box-sizing:border-box}
.nx-cm .panel h3{margin:0 0 12px;font-size:16px;font-weight:700;color:var(--ink)}
.nx-cm .panel h4{margin:16px 0 8px;font-size:14px;color:var(--ink)}
.nx-cm .panel[hidden],.nx-cm [hidden]{display:none!important}
.nx-cm .stack{display:grid;gap:12px}
.nx-cm .two-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.nx-cm label{display:grid;gap:6px;color:var(--muted);font-size:13px}
.nx-cm .inline-check{display:flex!important;align-items:center;gap:9px}
.nx-cm .inline-check input{width:auto;min-height:0}
.nx-cm input:not([type=checkbox]):not([type=radio]):not([type=file]),.nx-cm select,.nx-cm textarea{min-height:44px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;box-sizing:border-box}
.nx-cm input:focus-visible,.nx-cm select:focus-visible,.nx-cm textarea:focus-visible,.nx-cm button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.nx-cm .panel button.primary,.nx-cm .panel .primary{background:var(--primary);border-color:var(--primary);color:#fff}
.nx-cm .panel button.primary:hover{background:var(--primary-2);color:#fff}
.nx-cm .panel button:disabled{opacity:.55;cursor:default}
.nx-cm .mini{min-height:30px!important;padding:4px 10px!important;font-size:12px!important;border-radius:8px!important}
.nx-cm .mini.danger{color:var(--bad)!important;border-color:color-mix(in srgb,var(--bad) 35%,transparent)!important;background:var(--bad-soft)!important}
.nx-cm table{width:100%;border-collapse:collapse;font-size:13px}
.nx-cm th,.nx-cm td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:start;vertical-align:middle}
.nx-cm th{background:var(--th);color:var(--muted);font-weight:700;font-size:12.5px}
.nx-cm pre{white-space:pre-wrap;word-break:break-all;margin:8px 0 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--canvas);color:var(--ink);font-size:12.5px;direction:ltr;text-align:left}
.nx-cm pre:empty{display:none}
.nx-cm small,.nx-cm .muted{color:var(--muted)}
.nx-cm .error{color:var(--bad);min-height:0;margin-top:6px}
.nx-cm .success{color:var(--good)}
.nx-cm .admin-counts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.nx-cm .admin-counts span{padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--canvas);color:var(--muted)}
.nx-cm .admin-counts b{color:var(--ink);margin-inline-start:6px}
@media (max-width:900px){.nx-cm .grid-2,.nx-cm .two-fields{grid-template-columns:minmax(0,1fr)}.nx-cm .panel{padding:16px}}
.nx-cm .hidden{display:none!important}
.nx-cm .kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:12px}
.nx-cm .kpi{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.nx-cm .kpi small{color:var(--muted);font-size:12.5px}.nx-cm .kpi strong{display:block;font-size:20px;margin-top:6px;color:var(--ink);font-variant-numeric:tabular-nums}
.nx-cm .actions{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.nx-cm details>summary{cursor:pointer;font-weight:700;color:var(--ink);padding:6px 0}
.nx-cm .nx-cm-body{min-width:0}
.nx-cm :has(>table){overflow-x:auto;max-width:100%}
/* public/phase11.css (366, 568-611) — the classic supporting schedules under the screen (G4-SSNX) */
.nx-ss .ss-review>summary{cursor:pointer;font-weight:600;padding:8px 0}.nx-ss .ss-review .ss-fields,.nx-ss .ss-review .ss-movement{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:12px 0}.nx-ss .ss-review label{display:flex;flex-direction:column;gap:5px}.nx-ss .ss-review input,.nx-ss .ss-review select{width:100%;min-width:0;min-height:38px}.nx-ss .ss-review .ss-card{border:1px solid var(--border,#8297aa);border-radius:12px;padding:12px;margin:12px 0}.nx-ss .ss-review .ss-movement{border-top:1px solid var(--border,#8297aa);padding-top:12px}.nx-ss .ss-review [data-status]{min-height:1.5em}.nx-ss .ss-review [data-reference]{font-weight:600}.nx-ss .ss-review [data-result]:empty{display:none}.nx-ss .ss-review td,.nx-ss .ss-review th{text-align:start}.nx-ss .ss-review [data-result]{margin-top:14px}@media print{.nx-ss .ss-review{display:none}}
.nx-ss .ss-review>summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.nx-ss .ss-review .ss-sub{font-weight:400;font-size:12px;color:var(--muted,#5b6b7c)}
.nx-ss .ss-review .ss-intro{margin:6px 0 10px;font-size:13px;color:var(--muted,#5b6b7c)}
.nx-ss .ss-review .ss-status{margin:0 0 10px;padding:8px 12px;border-radius:10px;background:var(--panel2,#f3f6fa);font-weight:600;font-size:13px}
.nx-ss .ss-review .ss-status:empty{display:none}
.nx-ss .ss-review .ss-step{border:1px solid var(--line,#dbe4ee);border-radius:14px;padding:12px 14px;margin:0 0 10px;background:var(--panel,#fff)}
.nx-ss .ss-review .ss-step-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 8px}
.nx-ss .ss-review .ss-step-head h4{margin:0;font-size:15px}
.nx-ss .ss-review .ss-step-head small,.nx-ss .ss-review .ss-way-title,.nx-ss .ss-review .ss-upload-note{font-size:12px;color:var(--muted,#5b6b7c)}
.nx-ss .ss-review .ss-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--accent,#0869c9);color:#fff;font-size:12px;font-weight:700;flex:0 0 auto}
.nx-ss .ss-review .ss-history>summary .ss-num{margin-inline-end:8px}
.nx-ss .ss-review .ss-history>summary{cursor:pointer;font-weight:600}
.nx-ss .ss-review .ss-fields{margin:0 0 10px}
.nx-ss .ss-review .actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0}
.nx-ss .ss-review .ss-primary{background:var(--accent,#0869c9);color:#fff;border-color:transparent}
.nx-ss .ss-review .ss-link{background:none;border:0;padding:0;min-height:0;color:var(--accent,#0869c9);text-decoration:underline;cursor:pointer;font:inherit;font-size:13px}
.nx-ss .ss-review .ss-danger{color:#b42318}
.nx-ss .ss-review .ss-card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 8px}
.nx-ss .ss-review .ss-ways{display:grid;grid-template-columns:minmax(220px,320px) minmax(0,1fr);gap:14px 18px;align-items:start}
.nx-ss .ss-review .ss-way-excel{display:flex;flex-direction:column;gap:8px}
@media(max-width:760px){.nx-ss .ss-review .ss-ways{grid-template-columns:1fr}}
.nx-ss .ss-review .ss-upload{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 18px;border-radius:14px;border:1.5px solid var(--accent,#0869c9);background:var(--panel,#fff);color:var(--accent,#0869c9);font-weight:700;font-size:14px;cursor:pointer;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease,background-color .35s ease,color .35s ease,border-color .35s ease}
.nx-ss .ss-review .ss-upload:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(8,105,201,.18)}
.nx-ss .ss-review .ss-upload:focus-within{box-shadow:0 0 0 3px rgba(8,105,201,.25),0 0 18px rgba(8,105,201,.3)}
.nx-ss .ss-review .ss-upload .ss-file{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;opacity:0;overflow:hidden;clip:rect(0 0 0 0)}
.nx-ss .ss-review .ss-upload-fill{position:absolute;inset:0;background:var(--accent,#0869c9);opacity:.16;transform:scaleX(0);transform-origin:left center;pointer-events:none}
html[dir="rtl"] .nx-ss .ss-review .ss-upload-fill{transform-origin:right center}
.nx-ss .ss-review .ss-upload-face{position:relative;display:inline-flex;align-items:center;gap:10px}
.nx-ss .ss-review .ss-upload-icon{display:inline-flex;width:20px;height:20px}
.nx-ss .ss-review .ss-upload-icon svg{display:block}
.nx-ss .ss-review .ss-upload .ss-upload-check{display:none}
.nx-ss .ss-review .ss-upload[data-state="busy"] .ss-upload-fill{animation:ssUploadFill 1.5s ease-in-out infinite}
.nx-ss .ss-review .ss-upload[data-state="busy"] .ss-upload-arrow{animation:ssUploadRise .8s ease-in-out infinite}
.nx-ss .ss-review .ss-upload[data-state="done"]{background:var(--accent,#0869c9);color:#fff;border-color:transparent;box-shadow:0 10px 22px rgba(8,105,201,.28)}
.nx-ss .ss-review .ss-upload[data-state="done"] .ss-upload-arrow{display:none}
.nx-ss .ss-review .ss-upload[data-state="done"] .ss-upload-check{display:block;animation:ssUploadPop .4s ease-out}
.nx-ss .ss-review .ss-upload[data-state="error"]{border-color:#b42318;color:#b42318;animation:ssUploadShake .4s ease}
@keyframes ssUploadFill{0%{transform:scaleX(0);opacity:.16}75%{transform:scaleX(1);opacity:.26}100%{transform:scaleX(1);opacity:0}}
@keyframes ssUploadRise{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes ssUploadPop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.2)}100%{transform:scale(1);opacity:1}}
@keyframes ssUploadShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.nx-ss .ss-review input:focus-visible,.nx-ss .ss-review select:focus-visible{outline:none;border-color:var(--accent,#0869c9);box-shadow:0 0 0 3px rgba(8,105,201,.22),0 0 16px rgba(8,105,201,.28);transition:box-shadow .25s ease,border-color .25s ease}
[data-desk-motion="off"] .nx-ss .ss-review .ss-upload,[data-desk-motion="off"] .nx-ss .ss-review .ss-upload *,[data-desk-motion="reduced"] .nx-ss .ss-review .ss-upload *{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.nx-ss .ss-review .ss-upload,.nx-ss .ss-review .ss-upload *,.nx-ss .ss-review input,.nx-ss .ss-review select{animation:none!important;transition:none!important}}
/* G4-SSNX — «الجداول المساندة والتسويات» in the look of Astra's tool screens */
.nx-ss{--ss-ink:#102641;--ss-muted:#596c84;--ss-blue:#0869c9;--ss-line:#dbe4ee;--accent:#0869c9;--line:#dbe4ee;--muted:#596c84;--panel:#fff;--panel2:#f3f6fa;--border:#dbe4ee;display:flex;flex-direction:column;gap:16px;color:var(--ss-ink);min-width:0}
.nx-ss .nx-eyebrow{color:var(--ss-blue)}
.nx-ss .nx-ss-guide{background:#eaf3ff;border-inline-start:3px solid var(--ss-blue);border-radius:8px;padding:12px 16px;font-size:13px;line-height:1.8}
.nx-ss .nx-ss-guide>summary{cursor:pointer;font-weight:700;color:var(--ss-blue)}
.nx-ss .nx-ss-guide ol{margin:6px 0;padding-inline-start:22px}
.nx-ss .nx-ss-box{min-width:0}
.nx-ss .ss-review{background:#fff;border:1px solid var(--ss-line);border-radius:12px;padding:20px;min-width:0}
.nx-ss .ss-review>summary{display:none}
.nx-ss .ss-review .ss-sub,.nx-ss .ss-review .ss-intro{color:var(--ss-muted)}
.nx-ss .ss-review .ss-status{background:#eaf3ff;border-inline-start:3px solid var(--ss-blue);border-radius:8px;padding:12px 16px;line-height:1.8}
.nx-ss .ss-review .ss-step{border-color:var(--ss-line);border-radius:12px;padding:16px 18px;background:#fff}
.nx-ss .ss-review .ss-card{border:1px solid var(--ss-line);border-radius:12px;padding:16px;background:#fff;margin:0 0 12px}
.nx-ss .ss-review label{color:var(--ss-muted);font-size:13px;gap:8px}
.nx-ss .ss-review input:not([type=checkbox]):not([type=file]),.nx-ss .ss-review select,.nx-ss .ss-review textarea{min-height:44px;border:1px solid var(--ss-line);border-radius:8px;padding:10px 12px;background:#fff;color:var(--ss-ink);font:inherit}
.nx-ss .ss-review input[readonly]{background:#f7f9fc}
.nx-ss .ss-review button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:9px 14px;border:1px solid var(--ss-line);border-radius:8px;background:#fff;color:var(--ss-ink);cursor:pointer;font:inherit;transition:background-color 160ms ease,border-color 160ms ease}
.nx-ss .ss-review button:hover{background:#eaf3ff;border-color:var(--ss-blue)}
.nx-ss .ss-review button:active{background:#d8eaff}
.nx-ss .ss-review button.ss-primary{background:var(--ss-blue);border-color:var(--ss-blue);color:#fff}
.nx-ss .ss-review button.ss-primary:hover{background:#0759ab}
.nx-ss .ss-review button:disabled{opacity:.55;cursor:not-allowed}
.nx-ss .ss-review button.ss-danger{color:#9a3412}
.nx-ss .ss-review button.ss-link{min-height:0;padding:0;border:0;background:none}
.nx-ss .ss-review :focus-visible{outline:3px solid #0b96ff;outline-offset:3px}
.nx-ss .ss-review table{width:100%;border-collapse:collapse;font-size:14px}
.nx-ss .ss-review th,.nx-ss .ss-review td{text-align:start;padding:12px 14px;border-block-end:1px solid var(--ss-line);vertical-align:middle}
.nx-ss .ss-review th{font-size:12px;font-weight:600;color:var(--ss-muted);background:#f7f9fc}
.nx-ss .ss-review tbody tr:hover{background:#f7f9fc}
.nx-ss .ss-review :has(>table){overflow-x:auto;max-width:100%;border:1px solid var(--ss-line);border-radius:10px}
.nx-ss .ss-review .ss-fields>*,.nx-ss .ss-review .ss-movement>*,.nx-ss .ss-review .ss-ways>*{min-width:0}
.nx-ss .hidden{display:none!important}
@media (max-width:700px){.nx-ss .ss-review{padding:16px}.nx-ss .ss-review .ss-step{padding:12px}}
@media (prefers-reduced-motion:reduce){.nx-ss .ss-review button{transition:none}}
/* public/rev1.css (4-32, 39-65, 67-73, 75-76) — the classic reversed-balance window under the screen (G4-REV1NX), comments left out */
.nx-sa .rev1-dialog{width:min(760px,calc(100% - 24px));max-height:calc(100vh - 24px);overflow:auto;padding:20px}
.nx-sa .rev1-dialog h2{margin:0 0 4px;font-size:17px}
.nx-sa .rev1-dialog h3{margin:14px 0 6px;font-size:13.5px}
.nx-sa .rev1-dialog .rev1-close{float:inline-end;min-width:40px;min-height:40px;border:1px solid var(--line);border-radius:9px;background:transparent;color:inherit;font:inherit;cursor:pointer}
.nx-sa .rev1-dialog .rev1-context{margin:0 0 8px;font-size:12.5px;color:var(--muted)}
.nx-sa .rev1-dialog .rev1-line{margin:0 0 8px;font-size:13px;line-height:1.7}
.nx-sa .rev1-dialog .rev1-case{padding:8px 10px;border:1px solid var(--line);border-inline-start:4px solid #b7791f;border-radius:10px}
.nx-sa .rev1-dialog [data-rev1-case="advances"] .rev1-case{border-inline-start-color:#2f855a}
.nx-sa .rev1-dialog .rev1-muted{margin:0 0 8px;font-size:12.5px;color:var(--muted);line-height:1.6}
.nx-sa .rev1-table{width:100%;border-collapse:collapse;font-size:12.5px;margin:0 0 8px}
.nx-sa .rev1-table th,.nx-sa .rev1-table td{padding:5px 8px;border-bottom:1px solid var(--line);text-align:start;vertical-align:top}
.nx-sa .rev1-table tr.rev1-reversed td{font-weight:600}
.nx-sa .rev1-table td small{margin-inline-start:6px;color:var(--muted)}
.nx-sa .rev1-reclass td:nth-child(3){font-weight:600}
.nx-sa .rev1-actions{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}
.nx-sa .rev1-actions button{min-height:38px;padding:0 14px}
.nx-sa .rev1-adjust{padding:12px;border:1px solid var(--line);border-radius:12px}
.nx-sa .rev1-adjust .rev1-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
.nx-sa .rev1-adjust label{display:grid;gap:4px;font-size:12.5px}
.nx-sa .rev1-adjust label.rev1-wide{grid-column:1/-1}
.nx-sa .rev1-adjust input{min-height:38px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:transparent;color:inherit;font:inherit}
.nx-sa .rev1-adjust input[readonly]{color:var(--muted)}
.nx-sa .rev1-adjust .rev1-effect{margin:8px 0;font-size:12.5px;line-height:1.7;color:var(--muted)}
.nx-sa .rev1-adjust .rev1-message{margin:6px 0 0;font-size:12.5px;line-height:1.6}
@media (max-width:760px){
 .nx-sa .rev1-dialog{padding:14px}
 .nx-sa .rev1-adjust .rev1-fields{grid-template-columns:1fr}
 .nx-sa .p3-reverse .rev1-open,.nx-sa .rev1-actions button,.nx-sa .rev1-adjust input{min-height:44px}
}
.nx-sa .rev1-adjust select{min-height:38px;padding:0 8px;border:1px solid var(--line);border-radius:9px;background:transparent;color:inherit;font:inherit;max-width:100%}
.nx-sa .rev1-entry{margin:10px 0 0}
.nx-sa .rev1-entry h4{margin:0 0 6px;font-size:13px}
.nx-sa .rev1-entry-table td:nth-child(3),.nx-sa .rev1-entry-table td:nth-child(4),.nx-sa .rev1-entry-table th:nth-child(3),.nx-sa .rev1-entry-table th:nth-child(4){text-align:end;white-space:nowrap}
.nx-sa .rev1-recorded{margin:12px 0 0;padding:10px 12px;border:1px solid var(--line);border-inline-start:4px solid #2f855a;border-radius:12px}
.nx-sa .rev1-recorded h3{margin:0 0 6px}
.nx-sa .rev1-recorded-list,.nx-sa .rev1-recorded-lines{list-style:none;margin:0;padding:0}
.nx-sa .rev1-recorded-list>li{padding:6px 0;border-bottom:1px solid var(--line)}
.nx-sa .rev1-recorded-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 4px}
.nx-sa .rev1-recorded-head .rev1-remove{margin-inline-start:auto}
.nx-sa .rev1-recorded-lines li{font-size:12.5px;line-height:1.6;overflow-wrap:anywhere}
.nx-sa .rev1-remove{min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:transparent;color:inherit;font:inherit;font-size:12.5px;cursor:pointer;white-space:nowrap}
.nx-sa .rev1-remove[data-rev1-confirm]{border-color:#c53030;color:#c53030}
.nx-sa .rev1-recorded .rev1-message,.nx-sa .rev1-dialog .rev1-done{margin:6px 0 0;font-size:12.5px;line-height:1.6}
.nx-sa .rev1-dialog [data-rev1-case="split_done_differs"] .rev1-case{border-inline-start-color:#2f855a}
@media (max-width:760px){
 .nx-sa .rev1-adjust select,.nx-sa .rev1-remove{min-height:44px}
 .nx-sa .rev1-entry-table thead{display:none}
 .nx-sa .rev1-entry-table tr{display:grid;grid-template-columns:1fr;gap:2px;padding:6px 0;border-bottom:1px solid var(--line)}
 .nx-sa .rev1-entry-table td{border-bottom:0;padding:0 2px;overflow-wrap:anywhere}
 .nx-sa .rev1-entry-table td:nth-child(2){color:var(--muted);font-size:12px}
 .nx-sa .rev1-entry-table td:nth-child(3),.nx-sa .rev1-entry-table td:nth-child(4){text-align:start;font-weight:600}
 .nx-sa .rev1-entry-table td[data-label]::before{content:attr(data-label) ': ';font-weight:400;color:var(--muted)}
 .nx-sa .rev1-entry-table td.rev1-empty{display:none}
}
.nx-sa .rev1c-badge{display:inline-block;padding:.6rem 1rem;margin-block:.4rem .8rem;border:2px solid var(--line);border-radius:.25rem;background:var(--panel);color:var(--text);font-weight:700;max-width:100%;overflow-wrap:anywhere}
.nx-sa .rev1c-matched{border-color:var(--green);background:color-mix(in srgb,var(--green) 24%,var(--panel))}
.nx-sa .rev1c-different{border-color:var(--red);background:color-mix(in srgb,var(--red) 24%,var(--panel))}
.nx-sa .rev1c-unknown{border-color:var(--amber)}
.nx-sa .rev1-dialog [data-rev1c-advance-reason]{display:block;margin-block:.4rem}
.nx-sa .rev1-dialog :focus-visible{outline:3px solid var(--accent);outline-offset:2px}
@media(max-width:600px){.nx-sa .rev1-dialog{box-sizing:border-box}.nx-sa .rev1-dialog select,.nx-sa .rev1-dialog input{min-width:0;max-width:100%}.nx-sa .rev1-table{table-layout:fixed}.nx-sa .rev1-dialog .rev1-table td,.nx-sa .rev1-dialog .rev1-table th,.nx-sa .rev1-dialog .rev1-table bdi{white-space:normal;overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.nx-sa .rev1-dialog,.nx-sa .rev1-dialog *{scroll-behavior:auto;animation:none;transition:none}}
/* G4-REV1NX — «الحسابات المساعدة» in the look of Astra's tool screens */
.nx-sa{--sa-ink:#102641;--sa-muted:#596c84;--sa-blue:#0869c9;--sa-line:#dbe4ee;--line:#dbe4ee;--muted:#596c84;--accent:#0869c9;--panel:#fff;--text:#102641;--green:#087b71;--red:#c2410c;--amber:#bd7a14;display:flex;flex-direction:column;gap:16px;color:var(--sa-ink);min-width:0}
.nx-sa .nx-eyebrow{color:var(--sa-blue)}
.nx-sa .nx-sa-tabs{display:flex;flex-wrap:wrap;gap:8px;border-block-end:1px solid var(--sa-line);padding-block-end:10px}
.nx-sa .nx-sa-tabs button{min-height:44px;padding:9px 16px;border:1px solid var(--sa-line);border-radius:8px;background:#fff;color:var(--sa-ink);font:inherit;cursor:pointer;transition:background-color 160ms ease,border-color 160ms ease}
.nx-sa .nx-sa-tabs button:hover{background:#eaf3ff;border-color:var(--sa-blue)}
.nx-sa .nx-sa-tabs button[aria-selected="true"]{background:#eaf3ff;border-color:#b3d4f5;color:var(--sa-blue);font-weight:700}
.nx-sa .nx-sa-body{display:flex;flex-direction:column;gap:16px;min-width:0}
.nx-sa .nx-sa-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.nx-sa .nx-sa-stat{padding:18px;background:#fff;border:1px solid var(--sa-line);border-radius:12px;min-width:0}
.nx-sa .nx-sa-stat>span{display:block;color:var(--sa-muted);font-size:13px}
.nx-sa .nx-sa-stat>strong{display:block;font-size:28px;font-weight:700;margin-block:8px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.nx-sa .nx-sa-stat>small{display:block;color:var(--sa-muted);font-size:12px}
.nx-sa .nx-sa-stat .rev1c-badge{margin:8px 0 0;padding:5px 10px;border-radius:999px;border-width:1px;font-size:12px}
.nx-sa .nx-sa-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,1.3fr);gap:16px;align-items:start}
.nx-sa .nx-sa-panel{padding:20px;background:#fff;border:1px solid var(--sa-line);border-radius:12px;min-width:0}
.nx-sa .nx-sa-panel>h2{font-size:18px;line-height:26px;margin:0 0 14px}
.nx-sa .rev1-dialog{width:auto;max-height:none;overflow:visible;padding:0}
.nx-sa .rev1-dialog h2{font-size:15px}
.nx-sa .nx-sa-wrap{overflow-x:auto;max-width:100%;border:1px solid var(--sa-line);border-radius:10px}
.nx-sa .nx-sa-wrap table{width:100%;border-collapse:collapse;font-size:14px}
.nx-sa .nx-sa-wrap th,.nx-sa .nx-sa-wrap td{text-align:start;padding:12px 14px;border-block-end:1px solid var(--sa-line);vertical-align:middle}
.nx-sa .nx-sa-wrap th{font-size:12px;font-weight:600;color:var(--sa-muted);background:#f7f9fc}
.nx-sa .nx-sa-wrap .num{text-align:end;white-space:nowrap;font-variant-numeric:tabular-nums}
.nx-sa .nx-sa-wrap tfoot{font-weight:700;background:#eaf3ff}
.nx-sa .nx-sa-wrap tfoot td{border:0}
.nx-sa .nx-sa-rev td{background:#fff7e9}
.nx-sa .nx-sa-badge{display:inline-flex;border-radius:999px;padding:2px 8px;font-size:11.5px;background:#fff3dc;color:#9a3412;margin-inline-start:6px}
.nx-sa .rev1-table{font-size:13px}
.nx-sa .rev1-table th{color:var(--sa-muted);background:#f7f9fc;font-weight:600}
.nx-sa :has(>.rev1-table){overflow-x:auto;max-width:100%}
.nx-sa .rev1-actions button,.nx-sa .rev1-adjust button,.nx-sa .rev1-remove{min-height:44px;padding:9px 14px;border:1px solid var(--sa-line);border-radius:8px;background:#fff;color:var(--sa-ink);font:inherit;cursor:pointer}
.nx-sa .rev1-actions button:hover,.nx-sa .rev1-remove:hover{background:#eaf3ff;border-color:var(--sa-blue)}
.nx-sa .rev1-adjust button.primary{background:var(--sa-blue);border-color:var(--sa-blue);color:#fff}
.nx-sa .rev1-adjust button.primary:hover{background:#0759ab}
.nx-sa .rev1-adjust button:disabled{opacity:.55;cursor:not-allowed}
.nx-sa .rev1-adjust input,.nx-sa .rev1-adjust select{min-height:44px;border-color:var(--sa-line);border-radius:8px;background:#fff;color:var(--sa-ink)}
.nx-sa .rev1-adjust,.nx-sa .rev1-recorded{border-color:var(--sa-line)}
.nx-sa .rev1-adjust label>*{min-width:0}
.nx-sa .rev1-adjust select{width:100%}
.nx-sa [data-nx-sa-window]>.rev1c-badge{display:none}
.nx-sa .nx-sa-wrap td[dir="ltr"]{white-space:nowrap}
.nx-sa :focus-visible{outline:3px solid #0b96ff;outline-offset:3px}
@media (max-width:1100px){.nx-sa .nx-sa-grid{grid-template-columns:1fr}}
@media (max-width:700px){.nx-sa .nx-sa-stats{grid-template-columns:1fr}.nx-sa .nx-sa-panel{padding:16px}.nx-sa .nx-sa-stat>strong{font-size:24px}}
@media (prefers-reduced-motion:reduce){.nx-sa .nx-sa-tabs button{transition:none}}
/* G4-CFRNX — «مراجعة التدفقات» in the look of the supporting schedules screen (the classic sheets and the look read under «.nx-ss»); its own extras */
.nx-cf .ss-review .ss-cf-choice{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 10px;border:1px solid var(--ss-line);border-radius:8px;margin:0 0 8px;color:var(--ss-ink)}
.nx-cf .ss-review .ss-cf-choice input{width:20px;min-height:20px;height:20px;accent-color:var(--ss-blue)}
.nx-cf .ss-review .table-wrap{overflow-x:auto;max-width:100%}
.nx-cf .ss-review [data-cf-lines] input,.nx-cf .ss-review [data-cf-lines] select{min-width:140px}
/* public/styles.css (200-202), phase11.css (478-484), clar1.css (52-63), stm5.css (3-9, 24), stm4.css (5) — the classic statement designer under the screen (G4-DGNX), comments left out */
.nx-dg .statement-designer>summary{display:flex;justify-content:space-between;gap:16px;align-items:center;cursor:pointer}.nx-dg .statement-designer>summary span{color:var(--muted);font-size:12px}.nx-dg .designer-head{display:flex;justify-content:space-between;align-items:center;padding:10px 4px;color:var(--muted)}
.nx-dg #statementDesignerRows{display:grid;gap:8px}.nx-dg .designer-row{display:grid;grid-template-columns:64px 62px 88px 110px minmax(130px,1fr) minmax(130px,1fr) 110px 90px 130px;gap:8px;align-items:center;padding:9px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.nx-dg .designer-order{display:flex;gap:4px}.nx-dg .designer-order button{min-width:27px;padding:5px}.nx-dg .designer-code{font-size:12px}.nx-dg .designer-visible{display:flex;gap:5px;align-items:center;font-size:11px}.nx-dg .designer-lock{font-size:10px;color:var(--muted)}
.nx-dg .statement-label em{display:block;font-size:10px;font-style:normal;color:var(--muted);margin-top:3px}.nx-dg .statement-options #statementLayout{min-width:190px}.nx-dg .advanced-only.hidden{display:none!important}@media(max-width:1200px){.nx-dg .designer-row{grid-template-columns:54px 58px 80px 100px 1fr 1fr}.nx-dg .designer-row>[data-field="group"],.nx-dg .designer-row>[data-field="indent"],.nx-dg .designer-lock{grid-column:auto}}
.nx-dg .statement-label .p3-standard,.nx-dg .p3-standard{display:block;font-size:10px;color:var(--muted);margin-top:2px;opacity:1;font-family:inherit;letter-spacing:normal}
.nx-dg .designer-row{grid-template-columns:64px 84px minmax(150px,1.1fr) minmax(130px,1fr) minmax(130px,1fr) 104px 96px 88px 112px}
.nx-dg .designer-name{display:grid;gap:2px;min-width:0}.nx-dg .designer-name b{font-size:12px;line-height:1.35}.nx-dg .designer-name .designer-code{font-size:10px;color:var(--muted);font-family:ui-monospace,monospace}
.nx-dg .designer-row[data-mandatory] .designer-visible{color:var(--muted)}
.nx-dg .p3-preview-banner{margin:0 0 10px;padding:10px 12px;border:1px dashed var(--accent,#1a56db);border-radius:10px;background:var(--surface-2);font-size:13px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
@media(max-width:1200px){.nx-dg .designer-row{grid-template-columns:54px 78px minmax(120px,1fr) 1fr 1fr}.nx-dg .designer-row>[data-field="rowType"],.nx-dg .designer-row>[data-field="group"],.nx-dg .designer-row>[data-field="indent"],.nx-dg .designer-lock{grid-column:auto}}
@media(max-width:760px){.nx-dg .designer-row{grid-template-columns:1fr 1fr}.nx-dg .designer-row>.designer-name,.nx-dg .designer-row>input,.nx-dg .designer-row>select{grid-column:1 / -1}}
.nx-dg .clar1-designer-help{margin:8px 0 12px;padding:8px 12px;border:1px dashed var(--line,rgba(255,255,255,.2));border-radius:10px}
.nx-dg .clar1-designer-help>summary{cursor:pointer;font-weight:600;color:var(--accent,#43c9ff)}
.nx-dg .clar1-designer-help dl{display:grid;grid-template-columns:minmax(110px,max-content) 1fr;gap:6px 14px;margin:10px 0 2px}
.nx-dg .clar1-designer-help dt{font-weight:700}
.nx-dg .clar1-designer-help dd{margin:0;color:var(--muted,#9fb0c3)}
.nx-dg .designer-row [title]{cursor:help}
.nx-dg .designer-row input[title],.nx-dg .designer-row select[title]{cursor:auto}
@media (max-width:640px){
 .nx-dg .clar1-designer-help dl{grid-template-columns:1fr}
 .nx-dg .clar1-designer-help dd{margin-bottom:6px}
 .nx-dg .clar1-panel{padding:10px 12px}
}
.nx-dg .stm5-star{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:13px;cursor:pointer;border-radius:999px;border:1px solid var(--line,rgba(255,255,255,.18));background:transparent;color:inherit;padding:4px 12px;min-height:36px;white-space:nowrap}
.nx-dg .stm5-star span[aria-hidden]{font-size:15px;line-height:1;color:var(--muted,#9aa4b2)}
.nx-dg .stm5-star[aria-pressed="true"]{border-color:var(--accent,#43c9ff)}
.nx-dg .stm5-star[aria-pressed="true"] span[aria-hidden]{color:var(--accent,#43c9ff)}
.nx-dg .stm5-star:hover{border-color:var(--accent,#43c9ff)}
.nx-dg .stm5-star:focus-visible{outline:2px solid var(--accent,#43c9ff);outline-offset:2px}
.nx-dg .stm5-star:disabled{opacity:.6;cursor:progress}
@media(max-width:600px){.nx-dg .stm5-star{min-height:40px}.nx-dg .stm5-views{display:flex}.nx-dg .stm5-views button{flex:1 1 0}.nx-dg .stm5-year .stm5-name{max-width:40vw}}
.nx-dg .designer-lock[data-stm4-display]{color:var(--accent,#5b8cff)}
/* G4-DGNX — «مصمم شكل القائمة» in the look of Astra's tool screens */
.nx-dg{--border:var(--ss-line);--surface-2:#f7f9fc;--accent:var(--ss-blue)}
.nx-dg .nx-dg-box{display:flex;flex-direction:column;gap:16px;min-width:0}
.nx-dg .nx-dg-panel{padding:20px;background:#fff;border:1px solid var(--ss-line);border-radius:12px;min-width:0}
.nx-dg .nx-dg-layouts{display:flex;flex-wrap:wrap;align-items:end;gap:12px}
.nx-dg .nx-dg-pick{display:flex;flex-direction:column;gap:8px;color:var(--ss-muted);font-size:13px;min-width:min(320px,100%)}
.nx-dg .nx-dg-pick select{min-height:44px;border:1px solid var(--ss-line);border-radius:8px;padding:10px 12px;background:#fff;color:var(--ss-ink);font:inherit}
.nx-dg .stm5-star{min-height:44px;border-radius:8px;border-color:var(--ss-line);padding:9px 14px;color:var(--ss-ink)}
.nx-dg .stm5-star[aria-pressed="true"]{background:#eaf3ff;border-color:var(--ss-blue);color:var(--ss-blue)}
.nx-dg .nx-dg-tabs{display:flex;flex-wrap:wrap;gap:8px;border-block-end:1px solid var(--ss-line);padding-block-end:10px}
.nx-dg .nx-dg-tabs button{min-height:44px;padding:9px 16px;border:1px solid var(--ss-line);border-radius:8px;background:#fff;color:var(--ss-ink);font:inherit;cursor:pointer}
.nx-dg .nx-dg-tabs button[aria-selected="true"]{background:#eaf3ff;border-color:#b3d4f5;color:var(--ss-blue);font-weight:700}
.nx-dg .nx-dg-grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(300px,1fr);gap:16px;align-items:start}
.nx-dg .statement-designer{border:0;padding:0;margin:0;background:none}
.nx-dg .statement-designer>summary{font-size:18px;line-height:26px;font-weight:700;margin:0 0 12px}
.nx-dg #statementDesignerRows{overflow-x:auto;padding-block-end:4px}
.nx-dg .designer-row{min-width:900px;background:#fff;border-color:var(--ss-line)}
.nx-dg .designer-row input:not([type=checkbox]),.nx-dg .designer-row select,.nx-dg #statementDesignerForm input:not([type=checkbox]),.nx-dg #statementDesignerForm textarea{min-height:40px;border:1px solid var(--ss-line);border-radius:8px;padding:6px 10px;background:#fff;color:var(--ss-ink);font:inherit;min-width:0}
.nx-dg .designer-order button,.nx-dg #statementDesignerForm button{min-height:40px;border:1px solid var(--ss-line);border-radius:8px;background:#fff;color:var(--ss-ink);font:inherit;cursor:pointer;padding:6px 12px}
.nx-dg #statementDesignerForm .three-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.nx-dg #statementDesignerForm .three-fields>input,.nx-dg #statementDesignerForm>input{width:100%;box-sizing:border-box}@media (max-width:720px){.nx-dg #statementDesignerForm .three-fields{grid-template-columns:minmax(0,1fr)}}/* G4-WORDS4: the layout names at full width — no clipped «stom Financial Statements» */.nx-dg #statementDesignerForm button.primary{background:var(--ss-blue);border-color:var(--ss-blue);color:#fff}
.nx-dg #statementDesignerForm button:disabled{opacity:.55;cursor:not-allowed}
.nx-dg #statementDesignerForm button:hover:not(:disabled),.nx-dg .designer-order button:hover{background:#eaf3ff;border-color:var(--ss-blue)}
.nx-dg #statementDesignerForm button.primary:hover:not(:disabled){background:#0759ab}
.nx-dg .designer-lock{color:var(--ss-muted)}
.nx-dg #statementLayoutHistory{overflow-x:auto;max-width:100%;margin-block-start:12px}
.nx-dg #statementLayoutHistory table,.nx-dg .nx-dg-wrap table{width:100%;border-collapse:collapse;font-size:13px}
.nx-dg #statementLayoutHistory th,.nx-dg #statementLayoutHistory td,.nx-dg .nx-dg-wrap th,.nx-dg .nx-dg-wrap td{text-align:start;padding:10px 12px;border-block-end:1px solid var(--ss-line)}
.nx-dg #statementLayoutHistory th,.nx-dg .nx-dg-wrap th{font-size:12px;font-weight:600;color:var(--ss-muted);background:#f7f9fc}
.nx-dg .nx-dg-paper{position:sticky;inset-block-start:12px}
.nx-dg .nx-dg-paper>h2{font-size:18px;line-height:26px;margin:0 0 10px}
.nx-dg .nx-dg-paper-head{margin:0 0 10px;color:var(--ss-muted);font-size:13px}
.nx-dg .nx-dg-wrap{overflow-x:auto;max-width:100%;border:1px solid var(--ss-line);border-radius:10px}
.nx-dg .nx-dg-wrap .num{text-align:end;white-space:nowrap;font-variant-numeric:tabular-nums}
.nx-dg .nx-dg-wrap small{color:var(--ss-muted);margin-inline-start:6px}
.nx-dg .nx-dg-subtotal td{font-weight:700;border-block-start:1px solid var(--ss-ink)}
.nx-dg .nx-dg-total td{font-weight:800;background:#eaf3ff}
.nx-dg .nx-dg-header td{font-weight:700;color:var(--ss-blue)}
.nx-dg .nx-dg-memo td{color:var(--ss-muted);font-size:12px}
.nx-dg .nx-dg-i1 td:first-child{padding-inline-start:26px}.nx-dg .nx-dg-i2 td:first-child{padding-inline-start:38px}.nx-dg .nx-dg-i3 td:first-child{padding-inline-start:50px}.nx-dg .nx-dg-i4 td:first-child{padding-inline-start:62px}
.nx-dg :focus-visible{outline:3px solid #0b96ff;outline-offset:3px}
@media (max-width:1500px){.nx-dg .nx-dg-grid{grid-template-columns:1fr}.nx-dg .nx-dg-paper{position:static}}
@media (max-width:700px){.nx-dg .nx-dg-panel{padding:16px}}
/* G4-NTNX — «الإيضاحات» in the look of Astra's tool screen (Notes): the paper and its numbered notes, the side panels (not printed) */
.nx-nt .nx-nt-body{min-width:0}
.nx-nt .nx-nt-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,1.3fr);gap:16px;align-items:start}
.nx-nt .nx-nt-paper{padding:32px;background:#fff;border:1px solid var(--ss-line);border-radius:12px;min-width:0}
.nx-nt .nx-nt-head{padding-block-end:14px;margin-block-end:8px;border-block-end:2px solid var(--ss-ink)}
.nx-nt .nx-nt-head h2{font-size:20px;line-height:28px;margin:4px 0}
.nx-nt .nx-nt-head p{margin:0;color:var(--ss-muted);font-size:13px}
.nx-nt .nx-nt-note{padding-block:20px;border-block-end:1px solid var(--ss-line);break-inside:avoid}
.nx-nt .nx-nt-note h3{display:flex;align-items:center;gap:10px;font-size:15px;margin:0 0 8px}
.nx-nt .nx-nt-num{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:#eaf3ff;color:var(--ss-blue);font-weight:700;flex:0 0 auto}
.nx-nt .nx-nt-note>p{margin:0 0 10px;line-height:1.8;font-size:14px}
.nx-nt .nx-nt-wrap{overflow-x:auto;max-width:100%;border:1px solid var(--ss-line);border-radius:10px}
.nx-nt .nx-nt-wrap table{width:100%;border-collapse:collapse;font-size:14px}
.nx-nt .nx-nt-wrap th,.nx-nt .nx-nt-wrap td{text-align:start;padding:12px 14px;border-block-end:1px solid var(--ss-line)}
.nx-nt .nx-nt-wrap th{font-size:12px;font-weight:600;color:var(--ss-muted);background:#f7f9fc}
.nx-nt .nx-nt-wrap .num{text-align:end;white-space:nowrap;font-variant-numeric:tabular-nums}
.nx-nt .nx-nt-total td{font-weight:700;background:#eaf3ff}
.nx-nt .nx-nt-source{margin:10px 0 0;font-size:12px;color:var(--ss-muted)}
.nx-nt .nx-nt-manual{margin:10px 0 0;padding:10px 12px;border:1px dashed var(--ss-line);border-radius:8px;font-size:12.5px;color:var(--ss-muted);line-height:1.7}
.nx-nt .nx-nt-accounts{margin:10px 0 0;font-size:12.5px}
.nx-nt .nx-nt-accounts>summary{cursor:pointer;color:var(--ss-blue)}
.nx-nt .nx-nt-accounts ul{margin:6px 0 0;padding-inline-start:18px;line-height:1.8}
.nx-nt .nx-nt-foot{margin:16px 0 0;font-size:11px;color:var(--ss-muted)}
.nx-nt .nx-nt-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.nx-nt .nx-nt-panel{padding:20px;background:#fff;border:1px solid var(--ss-line);border-radius:12px}
.nx-nt .nx-nt-panel>h2{font-size:16px;margin:0 0 12px}
.nx-nt .nx-nt-panel>p{margin:0 0 6px;font-size:13px;line-height:1.7}
.nx-nt .nx-nt-pick{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px}
.nx-nt .nx-nt-pick input{width:20px;height:20px;accent-color:var(--ss-blue)}
.nx-nt .nx-nt-pick small{color:#9a3412;font-size:11.5px}
@media (max-width:1100px){.nx-nt .nx-nt-grid{grid-template-columns:1fr}}
@media (max-width:700px){.nx-nt .nx-nt-paper{padding:18px}.nx-nt .nx-nt-panel{padding:16px}}
@media print{.nx-nt .nx-nt-paper{border:0;padding:0}.nx-nt .nx-nt-grid{display:block}}
/* public/drill1.css (14-68) — the classic drill-down window under the screen (G4-SBNX), laid flat, comments left out */
.nx-sc .drill1-dialog{width:min(820px,100%);max-height:88vh;display:flex;flex-direction:column;border-radius:16px;border:1px solid var(--line,rgba(255,255,255,.16));background:var(--panel,#0f1d30);color:var(--text,inherit);box-shadow:0 18px 60px rgba(0,0,0,.35);outline:none}
.nx-sc .drill1-dialog>.drill1-head{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:14px 18px;border-bottom:1px solid var(--line,rgba(255,255,255,.12));text-align:start}
.nx-sc .drill1-dialog>.drill1-head>div{flex:1 1 55%;min-width:0}
.nx-sc .drill1-head h3{margin:0;font-size:17px}
.nx-sc .drill1-head small{color:var(--muted,#9fb0c3)}
.nx-sc .drill1-total{font-size:18px}
.nx-sc .drill1-close{font:inherit;font-size:20px;line-height:1;cursor:pointer;width:34px;height:34px;border-radius:50%;border:1px solid var(--line,rgba(255,255,255,.18));background:transparent;color:inherit;flex:none}
.nx-sc .drill1-body{padding:12px 18px 18px;overflow:auto}
.nx-sc .drill1-hint,.nx-sc .drill1-note{margin:0 0 10px;color:var(--muted,#9fb0c3);font-size:13px}
.nx-sc .drill1-line,.nx-sc .drill1-group{margin:6px 0;border-inline-start:2px solid var(--line,rgba(255,255,255,.14));padding-inline-start:10px}
.nx-sc .drill1-line>summary,.nx-sc .drill1-group>summary{display:flex;align-items:center;gap:8px;cursor:pointer;padding:6px 4px;border-radius:8px;list-style:none}
.nx-sc .drill1-line>summary::-webkit-details-marker,.nx-sc .drill1-group>summary::-webkit-details-marker{display:none}
.nx-sc .drill1-line>summary::before,.nx-sc .drill1-group>summary::before{content:'▸';color:var(--muted,#9fb0c3);transition:transform .15s ease}
.nx-sc .drill1-line[open]>summary::before,.nx-sc .drill1-group[open]>summary::before{transform:rotate(90deg)}
[dir="rtl"] .nx-sc .drill1-line>summary::before,[dir="rtl"] .nx-sc .drill1-group>summary::before{content:'◂'}
[dir="rtl"] .nx-sc .drill1-line[open]>summary::before,[dir="rtl"] .nx-sc .drill1-group[open]>summary::before{transform:rotate(-90deg)}
.nx-sc .drill1-line>summary:hover,.nx-sc .drill1-group>summary:hover{background:rgba(67,201,255,.07)}
.nx-sc .drill1-name{flex:1;min-width:0;font-weight:600}
.nx-sc .drill1-group .drill1-name{font-weight:500}
.nx-sc .drill1-count{color:var(--muted,#9fb0c3);font-size:12px}
.nx-sc .drill1-sign{display:inline-block;min-width:14px;text-align:center;font-weight:700;color:var(--accent,#43c9ff)}
.nx-sc .drill1-accounts{list-style:none;margin:4px 0 8px;padding:0}
.nx-sc .drill1-acc{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:6px 8px;border-radius:8px}
.nx-sc .drill1-acc:nth-child(odd){background:rgba(255,255,255,.025)}
.nx-sc .drill1-acc-head{flex:1;min-width:200px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}
.nx-sc .drill1-code{color:var(--muted,#9fb0c3);font-size:12px}
.nx-sc .drill1-co{font-size:11px;padding:0 6px;border-radius:6px;border:1px solid var(--line,rgba(255,255,255,.18))}
.nx-sc .drill1-cls{display:block;width:100%;color:var(--muted,#9fb0c3);font-size:12px}
.nx-sc .drill1-computed .drill1-acc-name{font-style:italic}
.nx-sc .drill1-edit-btn{font:inherit;font-size:12px;cursor:pointer;padding:3px 10px;border-radius:999px;border:1px solid var(--accent,#43c9ff);background:transparent;color:var(--accent,#43c9ff)}
.nx-sc .drill1-edit{width:100%;display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:6px;padding:10px;border-radius:10px;border:1px dashed var(--accent,#43c9ff)}
.nx-sc .drill1-edit label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted,#9fb0c3)}
.nx-sc .drill1-edit select{min-width:220px;max-width:100%}
.nx-sc .drill1-actions{display:flex;flex-wrap:wrap;gap:8px}
.nx-sc .drill1-msg{width:100%;margin:0;font-size:13px}
.nx-sc .drill1-msg p{margin:4px 0}
.nx-sc .drill1-warn{color:#f2bd55}
.nx-sc .drill1-ok{color:#3ecf8e;margin:0 0 10px}
.nx-sc .drill1-residual{display:flex;justify-content:space-between;gap:10px;margin:6px 0;padding:6px 8px;border-radius:8px;background:rgba(242,189,85,.08);font-size:13px}
.nx-sc .drill1-empty{color:var(--muted,#9fb0c3)}
@media (max-width:640px){
 .nx-sc .drill1-backdrop{padding:0;align-items:stretch}
 .nx-sc .drill1-dialog{max-height:none;height:100%;border-radius:0}
 .nx-sc .drill1-edit select{min-width:0;width:100%}
 .nx-sc .drill1-edit label{width:100%}
}
@media (prefers-reduced-motion:reduce){.nx-sc .drill1-line>summary::before,.nx-sc .drill1-group>summary::before{transition:none}}
.nx-sc .drill1-adjusted{margin:6px 0;padding:6px 8px;border-radius:8px;border:1px solid rgba(62,207,142,.35);font-size:13px}
.nx-sc .drill1-adjusted p{margin:0 0 4px}
.nx-sc .drill1-adjusted ul{list-style:none;margin:0;padding:0}
.nx-sc .drill1-adjusted li{display:flex;justify-content:space-between;gap:10px;padding:3px 0}
.nx-sc .drill1-adjusted small{display:block;margin-top:4px;color:var(--muted,#9fb0c3)}
/* G4-SBNX — «التصنيف الفرعي» in the look of Astra's tool screens (light) */
.nx-sc{--line:var(--ss-line);--muted:var(--ss-muted);--accent:var(--ss-blue);--panel:#fff;--text:var(--ss-ink)}
.nx-sc .nx-sc-tabs{display:flex;flex-wrap:wrap;gap:8px;border-block-end:1px solid var(--ss-line);padding-block-end:10px}
.nx-sc .nx-sc-tabs button{min-height:44px;padding:9px 16px;border:1px solid var(--ss-line);border-radius:8px;background:#fff;color:var(--ss-ink);font:inherit;cursor:pointer}
.nx-sc .nx-sc-tabs button[aria-selected="true"]{background:#eaf3ff;border-color:#b3d4f5;color:var(--ss-blue);font-weight:700}
.nx-sc .nx-sc-pick{display:flex;flex-direction:column;gap:8px;color:var(--ss-muted);font-size:13px;max-width:min(420px,100%)}
.nx-sc .nx-sc-pick select,.nx-sc .drill1-edit select{min-height:44px;border:1px solid var(--ss-line);border-radius:8px;padding:10px 12px;background:#fff;color:var(--ss-ink);font:inherit}
.nx-sc .nx-sc-body{min-width:0}
.nx-sc .drill1-dialog.nx-sc-window{width:auto;max-height:none;border-radius:12px;border:1px solid var(--ss-line);background:#fff;color:var(--ss-ink);box-shadow:none}
.nx-sc .drill1-total{font-variant-numeric:tabular-nums}
.nx-sc .drill1-line>summary:hover,.nx-sc .drill1-group>summary:hover{background:#eaf3ff}
.nx-sc .drill1-acc:nth-child(odd){background:#f7f9fc}
.nx-sc .drill1-edit-btn{min-height:32px;color:var(--ss-blue);border-color:var(--ss-blue)}
.nx-sc .drill1-actions button{min-height:44px;padding:9px 14px;border:1px solid var(--ss-line);border-radius:8px;background:#fff;color:var(--ss-ink);font:inherit;cursor:pointer}
.nx-sc .drill1-actions button.primary{background:var(--ss-blue);border-color:var(--ss-blue);color:#fff}
.nx-sc .drill1-warn{color:#9a3412}
.nx-sc .drill1-ok{color:#087b71;font-weight:600}
.nx-sc .drill1-residual{background:#fff7e9}
.nx-sc .drill1-adjusted{border-color:#b7e4dc}
.nx-sc :focus-visible{outline:3px solid #0b96ff;outline-offset:3px}
/* public/desk-shell.css (594-612) + public/sub2.css (12), copied, comments left out, every selector under .nx-bl */
.nx-bl .billing-page .billing-currency{display:flex;align-items:center;gap:8px;margin:0;font-size:inherit}
.nx-bl .billing-page .billing-currency select{width:auto}
.nx-bl .billing-page .commercial-plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.nx-bl .billing-plan{border:1px solid var(--line,#dbe4ee);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0}
.nx-bl .billing-plan[data-current]{border-color:var(--xc-primary,var(--desk-accent,#0869c9))}
.nx-bl .billing-plan .billing-price{font-size:1.25rem;font-weight:700}
.nx-bl .billing-plan ul{margin:0;padding-inline-start:18px}
.nx-bl .billing-quote{width:100%;margin:6px 0 10px}
.nx-bl .billing-quote th{text-align:start;font-weight:500}
.nx-bl .billing-quote tr.billing-total th,.nx-bl .billing-quote tr.billing-total td{font-weight:700}
.nx-bl .billing-instructions{white-space:pre-line;border:1px dashed var(--line,#dbe4ee);border-radius:10px;padding:8px 10px;margin:0 0 6px}
.nx-bl .billing-instructions:empty{display:none}
.nx-bl .billing-state{display:inline-block;border:1px solid currentColor;border-radius:999px;padding:1px 8px;font-size:.8rem}
.nx-bl #paymentProofForm label,.nx-bl .billing-page .billing-choose label{margin:4px 0;gap:4px;min-width:0}
.nx-bl #paymentProofForm input[type="file"]{width:100%}
.nx-bl #paymentProofStatus.error,.nx-bl #checkoutBox .error{color:var(--danger,#b42318)}
@media (max-width:700px){
 .nx-bl .billing-page .panel-head{flex-wrap:wrap;gap:8px}
}
.nx-bl .billing-top{margin:8px 0 0;font-weight:700}
/* G4-SUBNX — «الاشتراك والفواتير» in the new look (the commercial administration's light cards, fields, tables and buttons read under this page) and its own extras */
.nx-bl{--desk-border:var(--line);--desk-sub:var(--muted);--desk-soft:var(--canvas);--desk-accent:var(--primary);--desk-focus:var(--focus);--xc-primary:var(--primary);--xc-tint:var(--primary-soft);--danger:var(--bad)}
.nx-bl{--panel:var(--surface);--panel2:var(--canvas);--text:var(--ink);--accent:var(--primary);--red:var(--bad);--green:var(--good);--amber:var(--warn);--desk-border:var(--line);--desk-loss:var(--bad)}
.nx-bl #page-subscription{display:grid;gap:16px}
.nx-bl .page-intro{display:none}
.nx-bl .grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.nx-bl .grid-2>*{min-width:0}
.nx-bl .panel{min-width:0;padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);box-sizing:border-box}
.nx-bl .panel h3{margin:0 0 12px;font-size:16px;font-weight:700;color:var(--ink)}
.nx-bl .panel h4{margin:16px 0 8px;font-size:14px;color:var(--ink)}
.nx-bl .panel[hidden],.nx-bl [hidden]{display:none!important}
.nx-bl .stack{display:grid;gap:12px}
.nx-bl .two-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.nx-bl label{display:grid;gap:6px;color:var(--muted);font-size:13px}
.nx-bl .inline-check{display:flex!important;align-items:center;gap:9px}
.nx-bl .inline-check input{width:auto;min-height:0}
.nx-bl input:not([type=checkbox]):not([type=radio]):not([type=file]),.nx-bl select,.nx-bl textarea{min-height:44px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;box-sizing:border-box}
.nx-bl input:focus-visible,.nx-bl select:focus-visible,.nx-bl textarea:focus-visible,.nx-bl button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.nx-bl .panel button.primary,.nx-bl .panel .primary{background:var(--primary);border-color:var(--primary);color:#fff}
.nx-bl .panel button.primary:hover{background:var(--primary-2);color:#fff}
.nx-bl .panel button:disabled{opacity:.55;cursor:default}
.nx-bl table{width:100%;border-collapse:collapse;font-size:13px}
.nx-bl th,.nx-bl td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:start;vertical-align:middle}
.nx-bl th{background:var(--th);color:var(--muted);font-weight:700;font-size:12.5px}
.nx-bl pre{white-space:pre-wrap;word-break:break-all;margin:8px 0 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--canvas);color:var(--ink);font-size:12.5px;direction:ltr;text-align:left}
.nx-bl pre:empty{display:none}
.nx-bl small,.nx-bl .muted{color:var(--muted)}
.nx-bl .error{color:var(--bad);min-height:0;margin-top:6px}
.nx-bl .success{color:var(--good)}
@media (max-width:900px){.nx-bl .grid-2,.nx-bl .two-fields{grid-template-columns:minmax(0,1fr)}.nx-bl .panel{padding:16px}}
.nx-bl .hidden{display:none!important}
.nx-bl .kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:12px}
.nx-bl .kpi{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.nx-bl .kpi small{color:var(--muted);font-size:12.5px}.nx-bl .kpi strong{display:block;font-size:20px;margin-top:6px;color:var(--ink);font-variant-numeric:tabular-nums}
.nx-bl .actions{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.nx-bl details>summary{cursor:pointer;font-weight:700;color:var(--ink);padding:6px 0}
.nx-bl :has(>table){overflow-x:auto;max-width:100%}
.nx-bl .nx-bl-body{min-width:0}
.nx-bl .panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.nx-bl .panel-head h3{margin:0}.nx-bl .panel-head span{color:var(--muted);font-size:13px}
.nx-bl [data-commercial-status] h3{font-size:15px}.nx-bl [data-commercial-status] p{margin:0;color:var(--muted);line-height:1.7}
.nx-bl .billing-plan{background:var(--surface);border-color:var(--line);border-radius:12px;padding:16px}.nx-bl .billing-plan h4{margin:0;font-size:15px;color:var(--ink)}
.nx-bl .billing-plan[data-current]{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset}.nx-bl .billing-plan .billing-price{color:var(--ink);font-variant-numeric:tabular-nums}
.nx-bl .billing-plan ul{color:var(--muted);font-size:13px;line-height:1.8}.nx-bl .billing-plan button{margin-top:auto}
.nx-bl .billing-features{display:flex;flex-wrap:wrap;gap:6px;font-size:12.5px;font-weight:500}.nx-bl .billing-feature{padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:var(--canvas)}
.nx-bl .billing-feature[data-on="1"]{color:var(--good);border-color:color-mix(in srgb,var(--good) 35%,transparent);background:var(--good-soft,var(--canvas))}
.nx-bl .kpi strong .billing-features{margin-top:4px}.nx-bl .billing-state{color:var(--primary)}
.nx-bl .billing-card-pay,.nx-bl .billing-refund-policy,.nx-bl .billing-refund-ask,.nx-bl .billing-choose{display:grid;gap:8px;margin:10px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--canvas)}
.nx-bl .billing-card-pay h4{margin:0}.nx-bl .billing-card-pay p,.nx-bl .billing-refund-policy p{margin:0}.nx-bl .billing-card-voucher{font-weight:700;color:var(--ink)}
.nx-bl .billing-confirm{display:flex!important;align-items:flex-start;gap:9px;color:var(--ink)}.nx-bl .billing-confirm input{width:auto;min-height:0;margin-top:3px}
.nx-bl .left-actions{justify-content:flex-start}.nx-bl #checkoutBox>p{margin:0 0 8px}
.nx-bl .billing-quote{border:1px solid var(--line);border-radius:10px;overflow:hidden}.nx-bl .billing-quote td{text-align:end;font-variant-numeric:tabular-nums}
.nx-bl .panel button{min-height:40px;padding:8px 14px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font:inherit;font-weight:600;cursor:pointer}.nx-bl .panel button.primary{min-height:44px;padding:9px 18px}
.nx-bl .panel button:not(.primary):not(:disabled):hover{border-color:var(--primary);color:var(--primary)}
.nx-bl #accountPlanGrid>p,.nx-bl #accountPlanGrid>[data-sub2-request]{grid-column:1/-1}.nx-bl #accountPlanGrid>[data-sub2-request]{justify-self:start}
.nx-bl #paymentProofForm>button[type="submit"]{justify-self:start}.nx-bl .billing-plan>button{align-self:stretch}
.nx-bl input[type="file"]{padding:10px;border:1px dashed var(--line);border-radius:10px;background:var(--canvas);color:var(--muted);font:inherit;box-sizing:border-box}
.nx-bl input[type="file"]::file-selector-button{margin-inline-end:10px;padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.nx-bl .kpi .billing-state{border-radius:10px;padding:3px 10px;line-height:1.6;font-size:13px}.nx-bl .billing-features{font-size:0}.nx-bl .billing-feature{font-size:12.5px}
.nx-bl #subscriptionSummary>.kpi:has(.billing-features){grid-column:1/-1}
@media (max-width:700px){.nx-bl #subscriptionSummary{grid-template-columns:repeat(2,minmax(0,1fr))}.nx-bl #subscriptionSummary>.kpi:first-child:nth-last-child(3){grid-column:1/-1}}
.nx-bl #invoiceList td button{min-height:32px;padding:4px 10px;font-size:12.5px}.nx-bl #invoiceList a{color:var(--primary);font-weight:600}
/* G4-SUBNX — a customer's locked workspace: the banner over every screen */
.nx-lock-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;width:calc(100% - 48px);max-width:1512px;margin:16px auto 0;box-sizing:border-box}
@media (max-width:700px){.nx-lock-banner{width:calc(100% - 24px);margin-top:12px}}
/* G4-APNX10 — the two-step sign-in: the key for the authenticator app and the recovery codes (the sign-in card and «الشكل والقايمة») */
.nx-two-key{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:10px 0;padding:10px 12px;border:1px dashed var(--line);border-radius:10px;background:var(--surface)}
.nx-two-key code{font-size:15px;letter-spacing:.06em;word-break:break-all;color:var(--ink)}
.nx-two-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin:8px 0;padding-inline-start:22px}
.nx-two-codes code{font-size:14px;letter-spacing:.04em;color:var(--ink)}
.nx-two-panel{margin-top:16px}
@media (max-width:480px){.nx-two-codes{grid-template-columns:1fr}}/* G4-APNX10B: the 80-bit codes, one per line on a phone */
.nx-two-panel h2{font-size:18px;margin:0 0 8px}
.nx-auth .nx-two-key{background:#ffffff14;border-color:#ffffff40}.nx-auth .nx-two-key code,.nx-auth .nx-two-codes code{color:#fff}
/* G4-APNX11 — the announcements under the top bar (Astra's recipient card: «جديد في منصتك», the title, the message, «تمام»); the admin preview reuses the card */
.nx-ann{display:grid;gap:8px;margin:10px 16px 0}
.nx-ann-card{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 14px;padding:12px 16px;border:1px solid var(--line);border-inline-start:4px solid var(--primary);border-radius:12px;background:var(--surface);box-shadow:0 1px 2px #0000000d}
.nx-ann-card .nx-ann-eye{grid-column:1;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--primary)}
.nx-ann-card b{grid-column:1;font-size:15px;color:var(--ink)}
.nx-ann-card p{grid-column:1;margin:0;font-size:13.5px;line-height:1.6;color:var(--muted);white-space:pre-line}
.nx-ann-card .nx-btn{grid-column:2;grid-row:1/span 3;align-self:center}
@media (max-width:640px){.nx-ann{margin:8px 10px 0}.nx-ann-card{grid-template-columns:1fr}.nx-ann-card .nx-btn{grid-column:1;grid-row:auto;justify-self:start}}
/* G4-APNX8 — the maintenance notice for everyone signed in (under the top bar) */
.nx-maint-banner{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:8px 16px 0;line-height:1.7}
.nx-maint-banner span{color:var(--ink)}
/* G4-APNX1 (found by the live check once the platform has its public address, as the Review has): the XPay webhook address on the users page wraps on a phone */
.nx-us #pay1WebhookUrl{overflow-wrap:anywhere;word-break:break-all;white-space:normal}
/* G4-TABLES1 (RQA1 item 7): a table wider than its place — the frame scrolls sideways with a sign and a fade on the side that still holds columns, the first column stays (the marks come from nx/ui.js tableFrames; a frame that fits is untouched) */#nx-main [data-nx-wide]{overflow-x:auto;max-inline-size:100%;overscroll-behavior-x:contain}#nx-main [data-nx-wide]::before{content:attr(data-nx-cue);display:block;position:sticky;inset-inline-start:0;inline-size:max-content;max-inline-size:100%;box-sizing:border-box;margin:6px 6px 8px;padding:3px 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary-2);font-size:12px;font-weight:600;line-height:1.5;white-space:normal}#nx-main [data-nx-wide][data-nx-seen]::before{display:none}[dir="rtl"] #nx-main [data-nx-wide][data-nx-more~="end"]{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 34px);mask-image:linear-gradient(to right,transparent 0,#000 34px)}[dir="ltr"] #nx-main [data-nx-wide][data-nx-more~="end"]{-webkit-mask-image:linear-gradient(to left,transparent 0,#000 34px);mask-image:linear-gradient(to left,transparent 0,#000 34px)}#nx-main [data-nx-wide]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}#nx-main [data-nx-wide] tr>:is(th,td):first-child:not([colspan]){position:sticky;inset-inline-start:0;z-index:1}#nx-main [data-nx-wide] tbody tr>:is(th,td):first-child:not([colspan]){background-color:inherit;min-inline-size:180px}:where(#nx-main [data-nx-wide] tbody tr){background-color:var(--surface)}#nx-main [data-nx-wide] thead tr>:is(th,td):first-child{z-index:2}:where(#nx-main [data-nx-wide] thead) tr>:is(th,td):first-child{background-color:var(--th)}[dir="rtl"] #nx-main [data-nx-wide] tr>:is(th,td):first-child:not([colspan]){box-shadow:inset 1px 0 0 var(--line)}[dir="ltr"] #nx-main [data-nx-wide] tr>:is(th,td):first-child:not([colspan]){box-shadow:inset -1px 0 0 var(--line)}@media (max-width:760px){#nx-main [data-nx-wide] tr>:is(th,td):first-child:not([colspan]){min-inline-size:min(36vw,150px);max-inline-size:44vw;white-space:normal;overflow-wrap:break-word}#nx-main .nx-an .cx1-table,#nx-main .nx-wc [data-nx-wc-aging] table,#nx-main .nx-wc [data-nx-wc-inventory] table,#nx-main .nx-wc .cust1-table,#nx-main .nx-rp .nx-sc table{display:table;overflow:visible;max-inline-size:none}}@media print{#nx-main [data-nx-wide]{overflow:visible!important;-webkit-mask-image:none;mask-image:none}#nx-main [data-nx-wide]::before{display:none}#nx-main [data-nx-wide] tr>:is(th,td):first-child{position:static;box-shadow:none}}html.nx-printing #nx-main [data-nx-wide]{overflow:visible!important;-webkit-mask-image:none;mask-image:none}html.nx-printing #nx-main [data-nx-wide]::before{display:none}html.nx-printing #nx-main [data-nx-wide] tr>:is(th,td):first-child{position:static;box-shadow:none}/* G4-TABLES1 (RQA1 item 8): the donut's list under its ring at full width, the names on their own line */.nx-lb .lb-donut-wrap{grid-template-columns:minmax(0,1fr);justify-items:center}.nx-lb .lb-donut-wrap>.lb-plot{inline-size:min(100%,170px)}.nx-lb .lb-donut-list{inline-size:100%}.nx-lb .lb-donut-list li{grid-template-columns:14px minmax(0,1fr) auto}/* G4-APNX1 — «لوحة الإدارة» in Astra's design (the mockup's admin-panel.css: its components and measures, every selector under .nx-adm; its colours read
   from the new interface's tokens so the site colour and the dark look follow; the preview-only parts of the mockup — the state preview, the demo pills, the
   accent and theme pickers — left out) */
.nx-adm{--ap-accent:var(--primary);--ap-accent-ink:#ffffff;--ap-surface:var(--surface);--ap-canvas:var(--canvas);--ap-ink:var(--ink);--ap-muted:var(--muted);--ap-line:var(--line);--ap-soft:var(--primary-soft);--ap-ok:var(--good);--ap-ok-bg:var(--good-soft,#e6f6ef);--ap-warn:var(--warn);--ap-warn-bg:var(--warn-soft,#fff4e0);--ap-bad:var(--bad);--ap-bad-bg:var(--bad-soft,#fde8e8);--ap-gap:12px;--ap-gap-l:20px;--ap-radius:12px}
.nx-adm .ap{display:flex;flex-direction:column;gap:var(--ap-gap-l);color:var(--ap-ink);min-width:0}
.nx-adm .panel{padding:22px;background:var(--ap-surface);color:var(--ap-ink);border:1px solid var(--ap-line);border-radius:14px;min-width:0;box-sizing:border-box}
.nx-adm .muted{color:var(--ap-muted)}
.nx-adm .notice{margin:0;padding:12px 16px;border-radius:8px;background:var(--ap-soft);color:var(--ap-ink);border-inline-start:3px solid var(--ap-accent);line-height:1.7}
.nx-adm .eyebrow{color:var(--ap-accent);font-size:12px;font-weight:700;letter-spacing:.5px;margin-block-end:8px}
.nx-adm .ap h2{margin:0 0 8px;font-size:17px}.nx-adm .ap h3{font-size:15px;margin:14px 0 8px}
.nx-adm .ap-sub{display:flex;flex-wrap:wrap;gap:6px;padding:4px;background:var(--ap-surface);border:1px solid var(--ap-line);border-radius:var(--ap-radius)}
.nx-adm .ap-sub a{min-height:44px;display:inline-flex;align-items:center;padding:8px 14px;border-radius:9px;text-decoration:none;color:var(--ap-ink);font-weight:600;font-size:14px;transition:background .15s,color .15s}
.nx-adm .ap-sub a:hover{background:var(--ap-soft)}.nx-adm .ap-sub a.is-on{background:var(--ap-accent);color:var(--ap-accent-ink)}
.nx-adm .ap-coming{margin:-8px 0 0;font-size:12.5px}
.nx-adm .ap-body{display:flex;flex-direction:column;gap:var(--ap-gap-l);min-width:0}
.nx-adm .ap-panel{display:flex;flex-direction:column;gap:10px;min-width:0}
.nx-adm .ap-ph{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.nx-adm .ap-ph h2{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.nx-adm .ap-ph p{margin:0}
.nx-adm .ap-pa{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.nx-adm .ap-btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ap-line);border-radius:9px;background:var(--ap-surface);color:var(--ap-ink);padding:8px 14px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;box-sizing:border-box;transition:border-color .15s,background .15s,transform .15s}
.nx-adm .ap-btn:hover{border-color:var(--ap-accent);transform:translateY(-1px)}.nx-adm .ap-btn:focus-visible,.nx-adm .ap-sub a:focus-visible,.nx-adm .ap-kpi:focus-visible{outline:2px solid var(--ap-accent);outline-offset:2px}
.nx-adm .ap-btn--primary{background:var(--ap-accent);color:var(--ap-accent-ink);border-color:var(--ap-accent)}.nx-adm .ap-btn--danger{color:var(--ap-bad);border-color:var(--ap-bad)}
.nx-adm .ap-btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.nx-adm .ap-pill{display:inline-block;font-size:12px;font-weight:600;border-radius:999px;padding:3px 10px;background:var(--ap-soft);color:var(--ap-ink);white-space:nowrap}
.nx-adm .ap-pill--ok{background:var(--ap-ok-bg);color:var(--ap-ok)}.nx-adm .ap-pill--warn{background:var(--ap-warn-bg);color:var(--ap-warn)}.nx-adm .ap-pill--bad{background:var(--ap-bad-bg);color:var(--ap-bad)}
.nx-adm .ap-hero{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-end}.nx-adm .ap-hero h2{font-size:26px;margin:0}.nx-adm .ap-hero p{margin:6px 0 0}
.nx-adm .ap-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--ap-gap)}
.nx-adm .kpi-card{border:1px solid var(--ap-line);border-radius:12px;background:var(--ap-surface);color:var(--ap-ink);padding:18px;text-align:start;display:flex;flex-direction:column;align-items:stretch;gap:10px;min-width:0;width:100%;font:inherit;cursor:pointer;box-shadow:0 2px 5px rgba(20,47,85,.06);transition:border-color .15s,transform .15s}
.nx-adm .kpi-card:hover{border-color:var(--ap-accent);transform:translateY(-1px)}
.nx-adm .kpi-label{font-size:13px;color:var(--ap-muted)}.nx-adm .kpi-value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.6px}.nx-adm .kpi-card[data-na] .kpi-value{font-size:16px;font-weight:600}
.nx-adm .kpi-sub{font-size:12px;color:var(--ap-muted)}
.nx-adm .ap-kv-row{display:flex;align-items:baseline;gap:6px}.nx-adm .ap-unit{font-size:13px;font-weight:600;color:var(--ap-muted)}
.nx-adm .ap-src{font-size:11px;color:var(--ap-muted);display:block}
.nx-adm .grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ap-gap)}
.nx-adm .ap-grid{display:grid;gap:var(--ap-gap)}.nx-adm .ap-two{grid-template-columns:repeat(2,minmax(0,1fr))}.nx-adm .ap-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.nx-adm .ap-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.nx-adm .ap-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-block-end:1px solid var(--ap-line)}
.nx-adm .ap-list li>div{display:flex;flex-direction:column;min-width:0}.nx-adm .ap-list small{color:var(--ap-muted);font-size:12px}
.nx-adm .ap-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.nx-adm .ap-tile{display:flex;flex-direction:column;gap:2px;border:1px solid var(--ap-line);border-radius:10px;padding:10px 12px;background:var(--ap-surface);color:var(--ap-ink);min-height:44px}
.nx-adm .ap-tile b{font-size:22px;font-variant-numeric:tabular-nums}.nx-adm .ap-tile b .muted{font-size:13px;font-weight:600}.nx-adm .ap-tile span{font-size:12px;color:var(--ap-muted)}.nx-adm .ap-tile small{font-size:11px;color:var(--ap-muted)}
.nx-adm .ap-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:6px 20px;margin:0}
.nx-adm .ap-kv div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-block-end:1px solid var(--ap-line);align-items:center;flex-wrap:wrap}
.nx-adm .ap-kv dt{color:var(--ap-muted);font-size:13px}.nx-adm .ap-kv dd{margin:0;text-align:end;font-size:14px}
.nx-adm .ap-chart-host{width:100%;overflow:hidden}.nx-adm .ap-chart{width:100%;height:auto;display:block}
.nx-adm .ap-grid line{stroke:var(--ap-line);stroke-width:1}
.nx-adm .ap-area{fill:var(--ap-accent);opacity:.12}.nx-adm .ap-line{stroke:var(--ap-accent);stroke-width:2.5;stroke-linejoin:round}.nx-adm .ap-line--2{stroke:var(--ap-muted);stroke-dasharray:4 4;stroke-width:1.5}
.nx-adm .ap-chart circle{fill:var(--ap-accent);stroke:var(--ap-surface);stroke-width:2}.nx-adm .ap-ct{font-size:11px;fill:var(--ap-muted)}
.nx-adm .ap-legend{display:flex;gap:16px;font-size:12px;color:var(--ap-muted);flex-wrap:wrap}
.nx-adm .ap-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--ap-accent);vertical-align:middle}.nx-adm .ap-dot--2{background:var(--ap-muted)}
.nx-adm .ap-table{display:flex;flex-direction:column;gap:8px;min-width:0}
.nx-adm .ap-field{display:flex;flex-direction:column;gap:4px;font-size:13px;min-width:0}
.nx-adm .ap-field>span{font-weight:600;color:var(--ap-ink)}.nx-adm .ap-field small{font-weight:400;color:var(--ap-muted)}
.nx-adm .ap-field input,.nx-adm .ap-field select,.nx-adm .ap-field textarea,.nx-adm .ap-link{min-height:44px;border:1px solid var(--ap-line);border-radius:9px;padding:8px 10px;font:inherit;background:var(--ap-surface);color:var(--ap-ink);width:100%;box-sizing:border-box}
.nx-adm .ap-field--inline{min-width:140px}.nx-adm .ap-link{flex:1 1 280px;width:auto;min-width:0}
.nx-adm .ap-err{color:var(--ap-bad);font-style:normal;font-size:12px}
.nx-adm .ap-scroll{overflow:auto;max-width:100%;border:1px solid var(--ap-line);border-radius:10px}
.nx-adm .ap-table table{border-collapse:collapse;width:100%;font-size:13px;font-variant-numeric:tabular-nums}
.nx-adm .ap-table th,.nx-adm .ap-table td{padding:9px 10px;border-block-end:1px solid var(--ap-line);text-align:start;white-space:nowrap}
.nx-adm .ap-table thead th{position:sticky;inset-block-start:0;background:var(--ap-soft);z-index:1;font-size:12px;color:var(--ap-muted);font-weight:700}
.nx-adm .ap-table tbody tr:hover{background:var(--ap-soft)}.nx-adm .ap-table .ap-btn{min-height:34px;padding:4px 12px;font-size:12.5px}
.nx-adm .ap-empty{text-align:center;color:var(--ap-muted);padding:24px!important}
.nx-adm .ap-form{display:flex;flex-direction:column;gap:12px}
.nx-adm .ap-radios{border:1px solid var(--ap-line);border-radius:10px;padding:8px 14px;margin:0;display:flex;flex-wrap:wrap;gap:6px 18px}
.nx-adm .ap-radios legend{font-weight:600;font-size:13px;padding:0 6px}
.nx-adm .ap-radios label{display:inline-flex;gap:8px;align-items:flex-start;min-height:44px;cursor:pointer;padding:6px 0}
.nx-adm .ap-radios input{width:18px;height:18px;margin:4px 0 0;accent-color:var(--ap-accent)}
.nx-adm .ap-radios span{display:flex;flex-direction:column}.nx-adm .ap-radios small{color:var(--ap-muted);font-size:12px}
.nx-adm .ap-state{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:12px 16px;border-radius:var(--ap-radius);border:1px solid var(--ap-line);background:var(--ap-soft)}
.nx-adm .ap-state--error,.nx-adm .ap-state--forbidden{background:var(--ap-bad-bg)}
.nx-adm .ap-footer{font-size:12px;margin:0;padding-block-start:8px;border-block-start:1px solid var(--ap-line)}
.nx-adm .ap-dlg{width:min(560px,calc(100vw - 32px));border:1px solid var(--ap-line);border-radius:14px;padding:22px;background:var(--ap-surface);color:var(--ap-ink);box-shadow:0 18px 50px rgba(16,38,65,.22)}
.nx-adm .ap-dlg::backdrop{background:rgba(16,38,65,.35)}
.nx-adm .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:900px){.nx-adm .grid-2,.nx-adm .ap-two,.nx-adm .ap-three{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.nx-adm .ap-hero h2{font-size:22px}.nx-adm .ap-kv{grid-template-columns:1fr}.nx-adm .panel{padding:16px}.nx-adm .kpi-card{padding:13px}.nx-adm .ap-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.nx-adm .kpi-value{font-size:22px}}
@media(prefers-reduced-motion:reduce){.nx-adm .ap-btn,.nx-adm .ap-sub a,.nx-adm .kpi-card{transition:none}}
@media print{.nx-adm .ap-sub,.nx-adm .ap-pa,.nx-adm .ap-coming{display:none!important}.nx-adm .ap-scroll{overflow:visible;border:0}}
/* G4-APNX2 — «لوحة الإدارة» part 2: the pages of a group, the table toolbar and search, the file's crumb (the mockup's .ap-inner, .ap-tb, .ap-search, .ap-crumb under the screen) */
.nx-adm .ap-inner{display:flex;flex-wrap:wrap;gap:4px;border-block-end:2px solid var(--ap-line);margin-block-start:-8px}
.nx-adm .ap-inner a{min-height:44px;display:inline-flex;align-items:center;padding:8px 14px;color:var(--ap-muted);font-weight:600;text-decoration:none;border-block-end:3px solid transparent;margin-block-end:-2px}
.nx-adm .ap-inner a:hover{color:var(--ap-ink)}.nx-adm .ap-inner a.is-on{color:var(--ap-accent);border-block-end-color:var(--ap-accent)}.nx-adm .ap-inner a:focus-visible{outline:2px solid var(--ap-accent);outline-offset:2px}
.nx-adm .ap-tb{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end}
.nx-adm .ap-search{display:flex;flex:1 1 260px;min-width:0}
.nx-adm .ap-search input{width:100%;min-height:44px;border:1px solid var(--ap-line);border-radius:10px;padding:8px 12px;font:inherit;background:var(--ap-surface);color:var(--ap-ink);box-sizing:border-box}
.nx-adm .ap-search input:focus-visible,.nx-adm .ap-field input:focus-visible,.nx-adm .ap-field select:focus-visible{outline:2px solid var(--ap-accent);outline-offset:1px}
.nx-adm .ap-crumb{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-weight:700}
.nx-adm .ap-wide{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.nx-adm .ap-table td small{font-size:11.5px}
@media(max-width:900px){.nx-adm .ap-wide{grid-template-columns:minmax(0,1fr)}}
@media print{.nx-adm .ap-inner,.nx-adm .ap-tb{display:none!important}}
/* G4-APNX3 — «لوحة الإدارة» part 3: the plan cards, their prices and feature chips (the mockup's .ap-plans, .ap-plan, .ap-price, .ap-chips under the screen) */
.nx-adm .ap-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--ap-gap)}
.nx-adm .ap-plan{display:flex;flex-direction:column;gap:8px;padding:18px}.nx-adm .ap-plan--hi{border-color:var(--ap-accent);box-shadow:0 0 0 2px var(--ap-soft)}
.nx-adm .ap-plan h2{font-size:16px;margin:0}
.nx-adm .ap-price b{font-size:26px;font-variant-numeric:tabular-nums}.nx-adm .ap-price small{color:var(--ap-muted)}.nx-adm .ap-price--2 b{font-size:18px;color:var(--ap-muted)}
.nx-adm .ap-plan .ap-list li{padding:6px 0}
.nx-adm .ap-chips{display:flex;flex-wrap:wrap;gap:6px}
/* G4-APNX4 — «لوحة الإدارة» part 4: the header logo preview in the branding page (under the screen) */
.nx-adm .ap-logo{height:28px;max-width:140px;object-fit:contain;vertical-align:middle;border-radius:4px;background:var(--ap-soft);padding:2px 4px}
/* G4-APNX7 — «قوالب الأدوار والصلاحيات» (decision 12; Astra's permissions design: the role cards, the full matrix with its sticky head and first column
   scrolling inside its own area, the marks, the template editor and the give-a-template difference; under the screen) */
.nx-adm .ap-rt-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.nx-adm .ap-rt-card{border:1px solid var(--ap-line);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:6px;background:var(--ap-surface);min-width:0}
.nx-adm .ap-rt-card p{margin:0;font-size:12px;color:var(--ap-muted);line-height:1.6}
.nx-adm .ap-rt-card .ap-btn{align-self:flex-start;margin-top:auto}
.nx-adm .ap-rt-wrap{max-height:620px;overflow:auto;overscroll-behavior:contain}
.nx-adm .ap-rt-matrix{min-width:980px;table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%}
.nx-adm .ap-rt-matrix thead th{position:sticky;top:0;z-index:3;background:var(--ap-soft);color:var(--ap-ink);text-align:center;font-size:12px;white-space:normal;width:96px;padding:8px 4px}
.nx-adm .ap-rt-matrix thead th:first-child{inset-inline-start:0;z-index:4;text-align:start;width:220px}
.nx-adm .ap-rt-matrix tbody th{position:sticky;inset-inline-start:0;z-index:2;background:var(--ap-surface);text-align:start;font-weight:500;font-size:13px;padding:6px 8px}
.nx-adm .ap-rt-matrix td{text-align:center;padding:6px 4px;font-size:14px}
.nx-adm .ap-rt-matrix tr[hidden]{display:none}
.nx-adm .ap-rt-group th,.nx-adm .ap-rt-group td{background:var(--ap-canvas);border-top:1px solid var(--ap-line)}
.nx-adm .ap-rt-toggle{border:0;background:transparent;font:inherit;font-weight:700;font-size:13px;color:var(--ap-ink);cursor:pointer;padding:0;min-height:32px;text-align:start}
.nx-adm .ap-rt-yes{color:var(--ap-ok);font-weight:700}
.nx-adm .ap-rt-implied{color:var(--ap-ok);opacity:.55}
.nx-adm .ap-rt-part{color:var(--ap-warn);font-weight:700}
.nx-adm .ap-rt-no{color:var(--ap-muted)}
.nx-adm .ap-rt-form{max-width:100%}
.nx-adm .ap-rt-editor{max-height:44vh;overflow:auto;border:1px solid var(--ap-line);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:8px;margin-block:8px}
.nx-adm .ap-rt-editor fieldset{border:0;margin:0;padding:0;min-width:0}
.nx-adm .ap-rt-editor legend{font-weight:700;font-size:13px;padding:0;color:var(--ap-ink)}
.nx-adm .ap-rt-editor label{display:inline-flex;align-items:center;gap:6px;margin-inline-end:14px;font-size:13px;min-height:32px}
.nx-adm .ap-rt-editor small{color:var(--ap-muted)}
.nx-adm .ap-rt-diff{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-block:8px}
.nx-adm .ap-rt-diff ul{margin:4px 0 0;padding-inline-start:18px;font-size:12px;line-height:1.7}
@media(max-width:1150px){.nx-adm .ap-rt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.nx-adm .ap-rt-grid,.nx-adm .ap-rt-diff{grid-template-columns:minmax(0,1fr)}.nx-adm .ap-rt-wrap{max-height:480px}}
@media print{.nx-adm .ap-rt-wrap{max-height:none;overflow:visible}.nx-adm .ap-rt-matrix thead th,.nx-adm .ap-rt-matrix tbody th{position:static}}
/* G4-APNX8 — «التشغيل والصيانة» (decision 12; Astra's operations design: the tabs, the health hero with its dot; under the screen) */
.nx-adm .ap-ops-tabs{gap:8px;margin-bottom:12px}
.nx-adm .ap-ops-tabs .ap-btn[aria-selected="true"]{box-shadow:0 0 0 2px var(--ap-soft)}
.nx-adm .ap-ops-hero{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px;min-width:0}
.nx-adm .ap-ops-hero h3{margin:2px 0 4px;font-size:18px;line-height:1.4}
.nx-adm .ap-ops-hero p{margin:0;line-height:1.7}
.nx-adm .ap-ops-dot{width:12px;height:12px;border-radius:50%;margin-top:8px;flex:0 0 auto;background:var(--ap-warn)}
.nx-adm .ap-ops-dot--ok{background:var(--ap-ok)}
.nx-adm .ap-ops-dot--bad{background:var(--ap-bad)}
/* G4-APNX11 — «الإعلانات والإشعارات» (decision 12; Astra's notifications design: the composer beside the recipient preview window, the reach; under the screen) */
.nx-adm .ap-ann-compose{align-items:start}
.nx-adm .ap-ann-window{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel)}
.nx-adm .ap-ann-bar{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--surface);font-size:12px;color:var(--muted)}
.nx-adm .ap-ann-bar i{width:9px;height:9px;border-radius:50%;background:var(--line)}
.nx-adm .ap-ann-bar span{margin-inline-start:6px}
.nx-adm .ap-ann-sample{margin:14px}
.nx-adm .ap-ann-sample .nx-btn{pointer-events:none}
.nx-adm .ap-ann-reach{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;margin:14px 0 6px}
.nx-adm .ap-ann-reach b{font-size:28px;line-height:1;color:var(--ink)}
.nx-adm .ap-ann-reach small{flex-basis:100%}
/* G4-APNX11B — «القوالب ثنائية اللغة» and «حالة التسليم» (decision 12; Astra's notifications design: the variables as tags, the preview of a message, the delivery toolbar) */
.nx-adm .ap-mt-tags{display:flex;flex-wrap:wrap;gap:8px 14px;margin:6px 0 10px}
.nx-adm .ap-mt-tags span{display:inline-flex;align-items:baseline;gap:6px}
.nx-adm .ap-mt-tags code{padding:2px 8px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:12px;color:var(--ink)}
.nx-adm .ap-mt-form textarea{min-height:96px}
.nx-adm .ap-mt-preview{margin:10px 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.nx-adm .ap-mt-text{margin:6px 0 0;white-space:pre-wrap;word-break:break-word;font:inherit;line-height:1.7}
.nx-adm .ap-ml-tb{flex-wrap:wrap;align-items:end;gap:8px 12px}
.nx-adm .ap-ml-tb input[type=search]{flex:1 1 220px;min-width:0}
/* G4-APNX12 — «صندوق الموافقات» (decision 12; Astra's approvals design: the three tiles that open the tabs, the request opened in place with its decision beside it) */
.nx-adm .ap-tile--link{cursor:pointer;text-align:start;font:inherit;color:inherit;border:1px solid var(--line);background:var(--panel)}
.nx-adm .ap-tile--link:hover,.nx-adm .ap-tile--link:focus-visible{border-color:var(--accent,var(--ink))}
.nx-adm .ap-tile--link.is-on{box-shadow:inset 0 -3px 0 var(--accent,var(--ink))}
.nx-adm .ap-apr-head{justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.nx-adm .ap-apr-head p{margin:0;flex:1 1 260px}
.nx-adm .ap-apr-split{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start}
@media (max-width:900px){.nx-adm .ap-apr-split{grid-template-columns:minmax(0,1fr)}}
.nx-adm .ap-apr-headcard h2{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0}
.nx-adm .ap-apr-impact{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:12px 0 0}
.nx-adm .ap-apr-impact b{font-size:22px;color:var(--ink)}
.nx-adm .ap-apr-impact small{flex-basis:100%}
.nx-adm .ap-apr-facts{margin:0 0 8px;padding-inline-start:18px;line-height:1.8}
.nx-adm .ap-apr-talk{list-style:none;margin:0 0 8px;padding:0}
.nx-adm .ap-apr-talk li{padding:8px 0;border-bottom:1px solid var(--line)}
.nx-adm .ap-apr-talk p{margin:4px 0 0;white-space:pre-wrap;word-break:break-word}
.nx-adm .ap-apr-time{margin:0;padding-inline-start:18px;line-height:1.9}
.nx-adm .ap-apr-acts{flex-wrap:wrap}
/* G4-APNX12B — «سير العمل» (decision 12; Astra's workflow design: the path from the start to the end with its steps, the step properties beside it) */
.nx-adm .ap-wf-path{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:8px}
.nx-adm .ap-wf-path>li{position:relative}
.nx-adm .ap-wf-path>li+li::before{content:'';position:absolute;inset-inline-start:22px;top:-8px;height:8px;border-inline-start:2px solid var(--line)}
.nx-adm .ap-wf-end{padding:8px 12px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:13px}
.nx-adm .ap-wf-node{display:flex;flex-direction:column;gap:2px;width:100%;text-align:start;font:inherit;color:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);cursor:pointer}
.nx-adm .ap-wf-node.is-on,.nx-adm .ap-wf-node:focus-visible{border-color:var(--accent,var(--ink));box-shadow:inset 0 0 0 1px var(--accent,var(--ink))}
.nx-adm .ap-wf-node span{color:var(--muted);font-size:13px}
.nx-adm .ap-wf-node small{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.nx-adm .ap-wf-branches{font-size:13px}
.nx-adm .ap-wf-roles{border:1px solid var(--line);border-radius:10px;padding:8px 12px;display:flex;flex-wrap:wrap;gap:6px 14px}
.nx-adm .ap-wf-roles legend{padding:0 4px}
/* G4-APNX13B — «المساعد والردود الجاهزة» and «اسأل المساعد» (ADMIN1 answer 6: the ready answers, how it answers, the way to a person) */
.nx-adm .ap-sb-modes{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.nx-adm .ap-sb-answer{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0 0 10px}
.nx-adm .ap-sb-answer legend{font-size:12px;color:var(--muted);padding:0 4px}
.nx-adm .ap-sb-answer details{margin:4px 0 8px}
.nx-adm .ap-sb-answer summary{cursor:pointer;color:var(--muted);font-size:13px}
.nx-adm .ap-sp-answer{border-inline-start:3px solid var(--ap-accent);padding:8px 12px;margin:8px 0;background:var(--ap-soft);border-radius:8px}
.nx-adm .ap-sp-answer b{display:block;margin-bottom:4px}
.nx-adm .ap-sp-answer p{margin:0;white-space:pre-wrap;word-break:break-word}
.nx-adm .ap-sp-answer ol{margin:6px 0 0;padding-inline-start:20px}
.nx-adm .ap-sp-ways{flex-wrap:wrap;gap:8px}
.nx-adm .ap-sb-all{border:0;margin:0;padding:0;min-width:0}
/* G4-APNX13 — «المحادثة والدعم» and «الدعم والمساعدة» (decision 12; Astra's support design: the escalation steps, the conversation, the customer's tickets) */
.nx-adm .ap-sup-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.nx-adm .ap-sup-steps li{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--line);border-radius:10px}
.nx-adm .ap-sup-steps b{font-size:12px;color:var(--muted)}
.nx-adm .ap-sup-steps small{color:var(--muted)}
.nx-adm .ap-apr-talk li[data-from="staff"]{padding-inline-start:12px;border-inline-start:3px solid var(--ap-accent)}
.nx-adm.nx-sp .ap-apr-talk li[data-from="customer"]{padding-inline-start:12px;border-inline-start:3px solid var(--line)}
.nx-adm.nx-sp [data-nx-sp-welcome]{margin-bottom:12px}
.nx-adm.nx-sp .ap-panel h2 .ap-pill{vertical-align:middle}
@media (max-width:900px){.nx-adm .ap-sup-steps{grid-template-columns:minmax(0,1fr)}}
/* G4-SETNX1 — «المستهدفات والتنبيهات» (the Owner 2026-10-18, decision 11; the mockup's Settings.dc.html): the bar, the tiles, the table with the importance pill and the switch, «قواعدي», «طرق الحساب», the dialogs (under the screen) */
.nx-adm.nx-tg {--tg-ink:var(--ink,#102641);--tg-muted:var(--muted,#596c84);--tg-line:var(--line,#dbe4ee);--tg-row:#eef2f7;--tg-soft:#f7f9fc;--tg-surface:var(--surface,#ffffff);--tg-blue:var(--primary,#0869c9);--tg-blue-soft:var(--primary-soft,#eaf3ff);--tg-teal:#087b71;--tg-good:#065f46;--tg-bad:#9a3412;display:flex;flex-direction:column;gap:16px;color:var(--tg-ink);min-width:0}
.nx-adm.nx-tg .tg-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;background:var(--tg-surface);border:1px solid var(--tg-line);border-radius:12px}
.nx-adm.nx-tg .tg-bar select{height:40px;border:1px solid var(--tg-line);border-radius:10px;padding:0 12px;font:inherit;font-size:14px;font-weight:600;color:var(--tg-ink);background:var(--tg-surface);max-width:280px;min-width:0}
.nx-adm.nx-tg .tg-chip{height:40px;box-sizing:border-box;border:1px solid var(--tg-line);border-radius:10px;padding:0 12px;font-size:13px;color:var(--tg-muted);background:var(--tg-soft);display:inline-flex;align-items:center;gap:4px}
.nx-adm.nx-tg .tg-chip b{color:var(--tg-ink)}
.nx-adm.nx-tg .tg-sp{flex:1 1 auto}
.nx-adm.nx-tg .tg-head h1{margin:0 0 4px;font-size:24px;line-height:1.3}
.nx-adm.nx-tg .tg-head p{margin:0;font-size:14px;color:var(--tg-muted);line-height:1.6}
.nx-adm.nx-tg .tg-body{display:flex;flex-direction:column;gap:16px;min-width:0}
.nx-adm.nx-tg .tg-btn{height:36px;box-sizing:border-box;padding:0 14px;border:1px solid var(--tg-line);border-radius:8px;background:var(--tg-surface);color:var(--tg-ink);font:inherit;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.nx-adm.nx-tg .tg-btn--copy{height:40px;border-radius:10px;color:var(--tg-blue);font-weight:600}
.nx-adm.nx-tg .tg-btn--blue{border:0;background:var(--tg-blue);color:#ffffff;font-weight:600}
.nx-adm.nx-tg .tg-btn--save{border:0;background:var(--tg-teal);color:#ffffff;font-weight:600}
.nx-adm.nx-tg .tg-btn:disabled{opacity:.55;cursor:not-allowed}
.nx-adm.nx-tg .tg-btn:focus-visible,.nx-adm.nx-tg .tg-link:focus-visible,.nx-adm.nx-tg .tg-chips button:focus-visible,.nx-adm.nx-tg .tg-imp:focus-visible,.nx-adm.nx-tg .tg-op:focus-visible,.nx-adm.nx-tg .tg-sw:focus-visible,.nx-adm.nx-tg .tg-item:focus-visible,.nx-adm.nx-tg .tg-x:focus-visible,.nx-adm.nx-tg .tg-scroll:focus-visible{outline:2px solid var(--tg-blue);outline-offset:2px}
.nx-adm.nx-tg .tg-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.nx-adm.nx-tg .tg-tile{background:var(--tg-surface);border:1px solid var(--tg-line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}
.nx-adm.nx-tg .tg-tile>span{font-size:12px;color:var(--tg-muted)}
.nx-adm.nx-tg .tg-tile>b{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}
.nx-adm.nx-tg .tg-tile>b small{font-size:12px;color:var(--tg-muted);font-weight:400}
.nx-adm.nx-tg .tg-tile>b.tg-crit{color:var(--tg-bad)}
.nx-adm.nx-tg .tg-tile>em{font-style:normal;font-size:14px;font-weight:600;margin-top:6px;overflow-wrap:anywhere}
.nx-adm.nx-tg .tg-link{border:0;background:none;padding:0;color:var(--tg-blue);font:inherit;font-size:12px;cursor:pointer;text-align:start;align-self:flex-start;min-height:24px}
.nx-adm.nx-tg .tg-card{background:var(--tg-surface);border:1px solid var(--tg-line);border-radius:12px;overflow:hidden;min-width:0}
.nx-adm.nx-tg .tg-cardhead{padding:12px 16px;border-bottom:1px solid var(--tg-line);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.nx-adm.nx-tg .tg-chips{display:flex;gap:6px;flex-wrap:wrap}
.nx-adm.nx-tg .tg-chips button{height:32px;padding:0 12px;border:1px solid var(--tg-line);border-radius:999px;background:var(--tg-surface);color:var(--tg-ink);font:inherit;font-size:13px;cursor:pointer}
.nx-adm.nx-tg .tg-chips button[aria-pressed="true"]{background:var(--tg-blue);border-color:var(--tg-blue);color:#ffffff}
.nx-adm.nx-tg .tg-soon{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:999px;background:rgba(255,255,255,.22);font-size:11px;font-weight:600}
.nx-adm.nx-tg .tg-soonline .tg-soon,.nx-adm.nx-tg .tg-rule .tg-soon{background:var(--tg-soft);border:1px solid var(--tg-line);color:var(--tg-muted)}
.nx-adm.nx-tg .tg-scroll{overflow-x:auto}
.nx-adm.nx-tg .tg-table{width:100%;border-collapse:collapse;font-size:13px}
.nx-adm.nx-tg .tg-table thead tr{background:var(--tg-soft);color:var(--tg-muted);font-size:12px}
.nx-adm.nx-tg .tg-table th{text-align:start;padding:10px 14px;font-weight:600;white-space:nowrap}
.nx-adm.nx-tg .tg-table th.tg-e{text-align:end}
.nx-adm.nx-tg .tg-table th.tg-c,.nx-adm.nx-tg .tg-table td.tg-c{text-align:center}
.nx-adm.nx-tg .tg-table tbody tr{border-top:1px solid var(--tg-row)}
.nx-adm.nx-tg .tg-table td{padding:6px 14px;vertical-align:middle}
.nx-adm.nx-tg .tg-table td:first-child{padding:8px 14px;min-width:200px}
.nx-adm.nx-tg .tg-table td:first-child b{display:block;font-weight:600}
.nx-adm.nx-tg .tg-table td:first-child small{display:block;font-size:11.5px;color:var(--tg-muted);margin-top:2px;line-height:1.5}
.nx-adm.nx-tg .tg-table tr.tg-off{opacity:.5}
.nx-adm.nx-tg .tg-fam{color:var(--tg-muted);white-space:nowrap}
.nx-adm.nx-tg .tg-cur{text-align:end;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.nx-adm.nx-tg .tg-cur.ok{color:var(--tg-good)}
.nx-adm.nx-tg .tg-cur.bad{color:var(--tg-bad)}
.nx-adm.nx-tg .tg-pair{display:flex;gap:6px;align-items:center}
.nx-adm.nx-tg .tg-table input,.nx-adm.nx-tg .tg-rule input{width:70px;height:32px;box-sizing:border-box;border:1px solid var(--tg-line);border-radius:8px;padding:0 8px;font:inherit;font-size:13px;text-align:end;color:var(--tg-ink);background:var(--tg-surface)}
.nx-adm.nx-tg .tg-table input[name="threshold"]{width:64px}
.nx-adm.nx-tg .tg-table input[readonly]{background:var(--tg-soft);color:var(--tg-muted)}
.nx-adm.nx-tg .tg-table input:focus-visible,.nx-adm.nx-tg .tg-table select:focus-visible,.nx-adm.nx-tg .tg-rule input:focus-visible,.nx-adm.nx-tg .tg-bar select:focus-visible,.nx-adm.nx-tg .tg-fld select:focus-visible{outline:2px solid var(--tg-blue);outline-offset:1px}
.nx-adm.nx-tg .tg-table select{height:32px;border:1px solid var(--tg-line);border-radius:8px;padding:0 6px;font:inherit;font-size:12px;background:var(--tg-surface);color:var(--tg-ink);max-width:170px}
.nx-adm.nx-tg .tg-table select[name="source"]{color:var(--tg-muted)}
.nx-adm.nx-tg .tg-table :disabled{cursor:not-allowed}
.nx-adm.nx-tg .tg-imp{height:30px;padding:0 10px;border:1px solid #dbe4ee;border-radius:999px;background:#f7f9fc;color:#596c84;font:inherit;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}
.nx-adm.nx-tg .tg-imp--crit{border-color:#f5c6b0;background:#fdece4;color:#9a3412}
.nx-adm.nx-tg .tg-imp--med{border-color:#b7cfe8;background:var(--tg-blue-soft);color:var(--tg-blue)}
.nx-adm.nx-tg .tg-op{border:0;background:none;padding:0 2px;min-height:32px;color:var(--tg-muted);font:inherit;font-size:12px;cursor:pointer;white-space:nowrap}
.nx-adm.nx-tg .tg-op:hover{color:var(--tg-ink);text-decoration:underline dotted}
.nx-adm.nx-tg .tg-sw{width:40px;height:22px;border:0;border-radius:999px;background:var(--tg-line);position:relative;cursor:pointer;padding:0;vertical-align:middle;flex:none;transition:background .15s}
.nx-adm.nx-tg .tg-sw>span{position:absolute;top:3px;inset-inline-start:3px;width:16px;height:16px;border-radius:999px;background:#ffffff;box-shadow:0 1px 2px rgba(16,38,65,.25);transition:inset-inline-start .15s}
.nx-adm.nx-tg .tg-sw[aria-checked="true"]{background:var(--tg-teal)}
.nx-adm.nx-tg .tg-sw[aria-checked="true"]>span{inset-inline-start:21px}
.nx-adm.nx-tg .tg-foot{padding:10px 16px;border-top:1px solid var(--tg-line);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--tg-muted);line-height:1.6}
.nx-adm.nx-tg .tg-acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.nx-adm.nx-tg .tg-status{font-size:12px;color:var(--tg-muted)}
.nx-adm.nx-tg .tg-status.bad{color:var(--tg-bad)}
.nx-adm.nx-tg .tg-error{padding:14px 16px;border:1px solid #f5c6b0;background:#fdece4;color:var(--tg-bad);border-radius:12px}
.nx-adm.nx-tg .tg-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.nx-adm.nx-tg .tg-pad{padding:16px 18px;display:flex;flex-direction:column;gap:10px;font-size:13px}
.nx-adm.nx-tg .tg-pad h2{margin:0;font-size:15px}
.nx-adm.nx-tg .tg-rule{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--tg-line);border-radius:8px}
.nx-adm.nx-tg .tg-rule-l{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.nx-adm.nx-tg .tg-rule-l input{width:120px}
.nx-adm.nx-tg .tg-rule-r{display:inline-flex;align-items:center;gap:10px}
.nx-adm.nx-tg .tg-rule--soon{border-style:dashed;color:var(--tg-muted)}
.nx-adm.nx-tg .tg-on-word{color:var(--tg-good);font-weight:600}
.nx-adm.nx-tg .tg-off-word{color:var(--tg-muted);font-weight:600}
.nx-adm.nx-tg .tg-muted{margin:0;font-size:12px;color:var(--tg-muted);line-height:1.6}
.nx-adm.nx-tg .tg-soonline{font-size:13px;color:var(--tg-muted);display:inline-flex;align-items:center;gap:6px}
.nx-adm.nx-tg .tg-mrow{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.nx-adm.nx-tg .tg-mrow select{height:32px;border:1px solid var(--tg-line);border-radius:8px;padding:0 8px;font:inherit;font-size:12px;background:var(--tg-soft);color:var(--tg-ink);max-width:100%}
.nx-adm.nx-tg .tg-dlg-back{position:fixed;inset:0;background:rgba(16,38,65,.35);z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:120px 16px 16px;overflow:auto}
.nx-adm.nx-tg .tg-dlg{width:560px;max-width:100%;box-sizing:border-box;background:var(--tg-surface);border-radius:12px;box-shadow:0 24px 60px rgba(21,53,83,.3);padding:22px;display:flex;flex-direction:column;gap:14px;font-size:14px;color:var(--tg-ink)}
.nx-adm.nx-tg .tg-dlg-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.nx-adm.nx-tg .tg-dlg h2{margin:0;font-size:18px}
.nx-adm.nx-tg .tg-p{font-size:14px;line-height:1.7}
.nx-adm.nx-tg .tg-x{width:32px;height:32px;border:0;background:transparent;cursor:pointer;color:var(--tg-muted);font-size:18px}
.nx-adm.nx-tg .tg-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nx-adm.nx-tg .tg-fld{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--tg-muted)}
.nx-adm.nx-tg .tg-fld select,.nx-adm.nx-tg .tg-to{height:40px;box-sizing:border-box;border:1px solid var(--tg-line);border-radius:10px;padding:0 10px;background:var(--tg-surface);color:var(--tg-ink);font:inherit;font-size:14px;min-width:0}
.nx-adm.nx-tg .tg-to{display:flex;align-items:center;background:var(--tg-soft)}
.nx-adm.nx-tg .tg-items{display:flex;flex-direction:column;gap:8px}
.nx-adm.nx-tg .tg-item{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:10px 12px;border:1px solid var(--tg-line);border-radius:8px;background:var(--tg-surface);cursor:pointer;text-align:start;font:inherit;color:var(--tg-ink)}
.nx-adm.nx-tg .tg-item[aria-pressed="true"]{border-color:var(--tg-blue);background:var(--tg-blue-soft)}
.nx-adm.nx-tg .tg-item small,.nx-adm.nx-tg .tg-vrow small{color:var(--tg-muted);font-size:12px}
.nx-adm.nx-tg .tg-box{width:20px;height:20px;box-sizing:border-box;border-radius:6px;border:2px solid var(--tg-line);display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:#ffffff;flex:none}
.nx-adm.nx-tg .tg-item[aria-pressed="true"] .tg-box{border-color:var(--tg-blue);background:var(--tg-blue)}
.nx-adm.nx-tg .tg-sum{background:var(--tg-soft);border-radius:8px;padding:10px 12px;font-size:13px;color:var(--tg-muted);line-height:1.6}
.nx-adm.nx-tg .tg-dlg-acts{display:flex;gap:8px;flex-wrap:wrap}
.nx-adm.nx-tg .tg-dlg-acts .tg-btn{height:40px;border-radius:10px;font-size:14px;padding:0 16px}
.nx-adm.nx-tg .tg-vrow{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--tg-line);border-radius:8px}
@media(max-width:900px){.nx-adm.nx-tg .tg-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.nx-adm.nx-tg .tg-grid2{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.nx-adm.nx-tg .tg-two{grid-template-columns:minmax(0,1fr)}.nx-adm.nx-tg .tg-bar select{max-width:100%;flex:1 1 100%}.nx-adm.nx-tg .tg-head h1{font-size:20px}.nx-adm.nx-tg .tg-dlg-back{padding-top:40px}}
@media(prefers-reduced-motion:reduce){.nx-adm.nx-tg .tg-sw,.nx-adm.nx-tg .tg-sw>span{transition:none}}
@media print{.nx-adm.nx-tg .tg-bar,.nx-adm.nx-tg .tg-acts,.nx-adm.nx-tg .tg-cardhead>button,.nx-adm.nx-tg .tg-dlg-back{display:none!important}.nx-adm.nx-tg .tg-scroll{overflow:visible}}
/* G4-SETNX2 — «المستهدفات والتنبيهات»: the watch dialog, the screen asking for one company, the expense rule and the methods offered (under the screen) */
.nx-adm.nx-tg .tg-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.nx-adm.nx-tg .tg-three input{height:40px;box-sizing:border-box;border:1px solid var(--tg-line);border-radius:10px;padding:0 10px;background:var(--tg-surface);color:var(--tg-ink);font:inherit;font-size:14px;text-align:end;min-width:0;width:100%}
.nx-adm.nx-tg .tg-three input:focus-visible,.nx-adm.nx-tg .tg-three select:focus-visible,.nx-adm.nx-tg .tg-mrow select:focus-visible,.nx-adm.nx-tg .tg-rule-l input:focus-visible{outline:2px solid var(--tg-blue);outline-offset:1px}
.nx-adm.nx-tg .tg-dlg--sm{width:520px}
.nx-adm.nx-tg .tg-pick{padding:16px 18px;border:1px dashed var(--tg-line);border-radius:12px;background:var(--tg-surface);color:var(--tg-muted);font-size:14px;line-height:1.6}
.nx-adm.nx-tg .tg-table td:first-child .tg-link{display:block;margin-top:2px;font-size:11.5px}
.nx-adm.nx-tg .tg-rule-l input[name="spikePct"]{width:70px}
.nx-adm.nx-tg .tg-mrow select{background:var(--tg-surface)}
.nx-adm.nx-tg .tg-mrow select:disabled{background:var(--tg-soft);cursor:not-allowed}
@media(max-width:600px){.nx-adm.nx-tg .tg-three{grid-template-columns:minmax(0,1fr)}}
.nx-adm.nx-tg p.tg-status{margin:0;padding:0 16px 12px;line-height:1.6}
.nx-adm.nx-tg p.tg-status:empty{padding:0}
