:root{--g-50: #ECFDF5;--g-100: #D2F9E7;--g-200: #A6F0D1;--g-300: #6FE0B6;--g-400: #34C79A;--g-500: #16A782;--g-600: #0E8F6E;--g-700: #0B7359;--g-800: #0A5C49;--g-900: #08493B;--n-0: #FFFFFF;--n-25: #FBFCFD;--n-50: #F6F8FA;--n-100: #EEF1F4;--n-200: #E2E7EC;--n-300: #CBD3DB;--n-400: #9AA6B2;--n-500: #6B7785;--n-600: #4C5764;--n-700: #364049;--n-800: #232B33;--n-900: #151B22;--blue-50: #EFF5FF;--blue-100: #DCE9FF;--blue-600: #1F56C9;--blue-700: #1A45A3;--amber-50: #FEF6E7;--amber-100: #FBE8C2;--amber-600: #C0730A;--amber-700: #8F560C;--red-50: #FEECEC;--red-100: #FBD5D5;--red-600: #CC362C;--red-700: #A22019;--violet-50: #F3EEFE;--violet-600: #6638C7;--brand: var(--g-600);--brand-hover: var(--g-700);--brand-active: var(--g-800);--brand-fg: #FFFFFF;--brand-subtle: var(--g-50);--brand-subtle-fg: var(--g-700);--brand-border: var(--g-200);--brand-ring: rgba(14,143,110,.16);--bg: var(--n-50);--surface: var(--n-0);--surface-2: var(--n-25);--surface-sunken: var(--n-100);--surface-hover: var(--n-100);--text: var(--n-900);--text-2: var(--n-600);--text-3: var(--n-500);--text-disabled: var(--n-400);--border: var(--n-200);--border-strong: var(--n-300);--border-subtle: var(--n-100);--icon: var(--n-700);--icon-2: var(--n-500);--success: var(--g-600);--success-bg: var(--g-50);--success-fg: var(--g-700);--success-border: var(--g-200);--info: var(--blue-600);--info-bg: var(--blue-50);--info-fg: var(--blue-700);--info-border: var(--blue-100);--warning: var(--amber-600);--warning-bg: var(--amber-50);--warning-fg: var(--amber-700);--warning-border: var(--amber-100);--danger: var(--red-600);--danger-bg: var(--red-50);--danger-fg: var(--red-700);--danger-border: var(--red-100);--neutral-bg: var(--n-100);--neutral-fg: var(--n-600);--purple-bg: var(--violet-50);--purple-fg: var(--violet-600);--sh-xs: 0 1px 2px rgba(16,24,40,.05);--sh-sm: 0 1px 3px rgba(16,24,40,.07), 0 1px 2px rgba(16,24,40,.04);--sh-md: 0 6px 16px -4px rgba(16,24,40,.1), 0 2px 6px -2px rgba(16,24,40,.06);--sh-lg: 0 16px 32px -8px rgba(16,24,40,.16), 0 4px 10px -4px rgba(16,24,40,.08);--sh-brand: 0 8px 20px -6px rgba(14,143,110,.35);--focus-ring: 0 0 0 4px var(--brand-ring);--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-7: 32px;--s-8: 40px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-pill: 999px;--maxw: 1200px;--sidebar-w: 248px;--topbar-h: 68px;--ease: cubic-bezier(.4,0,.2,1);--dur-fast: .12s;--dur: .2s;--font-ui: "IBM Plex Sans Arabic", "Plus Jakarta Sans", -apple-system, "Segoe UI", sans-serif;--t-h1: 1.5rem;--t-h3: 1.1875rem;--t-body-lg: 1rem;--t-body: .875rem;--t-caption: .8125rem;--t-micro: .6875rem}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-ui);background:var(--bg);color:var(--text);font-size:var(--t-body);line-height:1.55;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:var(--t-body)}a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-hover)}.num{font-variant-numeric:tabular-nums}.layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-w);flex:none;display:flex;flex-direction:column;background:var(--surface);border-inline-end:1px solid var(--border);overflow:hidden}.sidebar .brand{height:var(--topbar-h);flex:none;display:flex;align-items:center;gap:10px;padding:0 18px;border-bottom:1px solid var(--border-subtle)}.sidebar .brand .mark{width:34px;height:34px;border-radius:10px;background:var(--brand);display:grid;place-items:center;color:#fff;flex:none;box-shadow:var(--sh-brand)}.sidebar .brand .name{font-size:20px;font-weight:800;color:var(--text)}.sidebar .brand .name small{display:block;font-size:var(--t-micro);font-weight:500;color:var(--text-3);line-height:1.2}.sidebar nav{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:2px}.sidebar .section{padding:12px 11px 4px;font-size:var(--t-micro);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}.sidebar nav a{position:relative;display:flex;align-items:center;gap:12px;height:40px;padding:0 11px;border-radius:9px;font-size:var(--t-body);font-weight:500;color:var(--text-2);transition:background var(--dur-fast),color var(--dur-fast)}.sidebar nav a:hover{background:var(--surface-hover);color:var(--text)}.sidebar nav a.active{background:var(--brand-subtle);color:var(--brand-active);font-weight:600}.sidebar nav a.active:before{content:"";position:absolute;inset-inline-start:-12px;top:8px;height:24px;width:3px;border-radius:3px 0 0 3px;background:var(--brand)}.sidebar nav a svg{color:var(--icon-2);flex:none}.sidebar nav a.active svg{color:var(--brand)}.sidebar .foot{flex:none;border-top:1px solid var(--border-subtle);padding:12px 16px;display:flex;align-items:center;justify-content:space-between}.sidebar .foot .powered{line-height:1.25}.sidebar .foot .powered div:first-child{font-size:var(--t-micro);color:var(--text-3)}.sidebar .foot .powered div:last-child{font-size:12px;font-weight:800;letter-spacing:.04em;color:var(--text)}.frame{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:var(--topbar-h);flex:none;display:flex;align-items:center;gap:14px;padding:0 24px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.topbar .title{font-size:var(--t-body-lg);font-weight:700}.topbar .spacer{flex:1}.topbar .user-chip{display:flex;align-items:center;gap:10px;height:40px;padding:0 6px 0 14px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface);font-size:var(--t-caption)}.topbar .user-chip .avatar{width:30px;height:30px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700}.icon-btn{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--icon-2);transition:all var(--dur-fast) var(--ease)}.icon-btn:hover{background:var(--brand-subtle);border-color:var(--brand-border);color:var(--brand)}.main{flex:1;overflow-y:auto;padding:var(--s-6) var(--s-6) var(--s-8)}.main>.inner{max-width:var(--maxw);margin:0 auto}h1{font-size:var(--t-h1);font-weight:800;line-height:1.28}.sub{color:var(--text-2);font-size:var(--t-caption);margin:4px 0 var(--s-5)}.eyebrow{font-size:var(--t-micro);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin:var(--s-6) 0 var(--s-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:var(--sh-sm)}.card.flush{padding:0;overflow:hidden}.grid{display:grid;gap:var(--s-3)}.tiles{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:var(--s-4)}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s-4) var(--s-4);box-shadow:var(--sh-sm);display:flex;flex-direction:column;gap:2px;transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.stat:hover{transform:translateY(-2px);box-shadow:var(--sh-md)}.stat .head{display:flex;align-items:center;justify-content:space-between}.stat .lbl{font-size:var(--t-caption);font-weight:500;color:var(--text-2)}.stat .ico{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--neutral-bg);color:var(--neutral-fg)}.stat .num{font-size:1.75rem;font-weight:800;line-height:1.2}.stat.s-ok .num{color:var(--success-fg)}.stat.s-ok .ico{background:var(--success-bg);color:var(--success)}.stat.s-bad .num{color:var(--danger-fg)}.stat.s-bad .ico{background:var(--danger-bg);color:var(--danger)}.stat.s-warn .num{color:var(--warning-fg)}.stat.s-warn .ico{background:var(--warning-bg);color:var(--warning)}.stat.s-brand .ico{background:var(--brand-subtle);color:var(--brand)}.bar{height:8px;background:var(--surface-sunken);border-radius:var(--r-pill);overflow:hidden;display:flex}.bar>div{height:100%;transition:width var(--dur) var(--ease)}.bar .f-ok{background:var(--success)}.bar .f-warn{background:var(--amber-600)}.bar .f-bad{background:var(--danger)}.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:var(--r-pill);font-size:12px;font-weight:600;white-space:nowrap}.chip .dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.c-ok{background:var(--success-bg);color:var(--success-fg)}.c-bad{background:var(--danger-bg);color:var(--danger-fg)}.c-warn{background:var(--warning-bg);color:var(--warning-fg)}.c-info{background:var(--info-bg);color:var(--info-fg)}.c-muted{background:var(--neutral-bg);color:var(--neutral-fg)}.c-brand{background:var(--brand-subtle);color:var(--brand-subtle-fg)}.c-purple{background:var(--purple-bg);color:var(--purple-fg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--brand);color:var(--brand-fg);border:none;border-radius:var(--r-md);padding:10px 18px;font-size:var(--t-body);font-weight:600;transition:background var(--dur-fast),transform var(--dur-fast);box-shadow:var(--sh-xs)}.btn:hover{background:var(--brand-hover)}.btn:active{background:var(--brand-active);transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:default}.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn.ghost{background:var(--surface);color:var(--text-2);border:1px solid var(--border);box-shadow:none}.btn.ghost:hover{background:var(--brand-subtle);color:var(--brand);border-color:var(--brand-border)}.btn.danger-ghost{background:var(--surface);color:var(--danger);border:1px solid var(--border);box-shadow:none}.btn.danger-ghost:hover{background:var(--danger-bg);border-color:var(--danger-border)}.btn.sm{padding:6px 13px;font-size:var(--t-caption)}table{width:100%;border-collapse:collapse;font-size:var(--t-caption)}th{text-align:right;color:var(--text-3);font-weight:600;font-size:var(--t-micro);letter-spacing:.04em;text-transform:uppercase;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface-2)}td{padding:12px 16px;border-bottom:1px solid var(--border-subtle);vertical-align:top}tr:last-child td{border-bottom:none}tbody tr{transition:background var(--dur-fast)}tbody tr.row-click{cursor:pointer}tbody tr.row-click:hover{background:var(--surface-hover)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--s-4)}.field label{font-size:var(--t-caption);font-weight:600;color:var(--text)}.field input,.field select{border:1px solid var(--border-strong);border-radius:var(--r-md);padding:10px 14px;background:var(--surface);color:var(--text);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.field input:focus,.field select:focus{outline:none;border-color:var(--brand);box-shadow:var(--focus-ring)}.toggles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--s-2)}.toggle{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:var(--r-md);padding:10px 14px;font-size:var(--t-caption);font-weight:500;cursor:pointer;background:var(--surface);color:var(--text-2);transition:all var(--dur-fast) var(--ease)}.toggle:hover{border-color:var(--border-strong);background:var(--surface-hover)}.toggle.on{border-color:var(--brand);background:var(--brand-subtle);color:var(--brand-active);font-weight:600;box-shadow:0 0 0 3px var(--brand-ring)}.toggle .box{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--border-strong);display:grid;place-items:center;flex:none;background:var(--surface);transition:all var(--dur-fast)}.toggle.on .box{background:var(--brand);border-color:var(--brand);color:#fff}.filters{display:flex;gap:var(--s-2);flex-wrap:wrap;margin-bottom:var(--s-4)}.filters select,.filters input{border:1px solid var(--border-strong);border-radius:var(--r-md);padding:9px 13px;background:var(--surface);font-size:var(--t-caption);color:var(--text)}.filters select:focus,.filters input:focus{outline:none;border-color:var(--brand);box-shadow:var(--focus-ring)}.filters input{flex:1;min-width:200px}.auth-wrap{min-height:100vh;display:flex}.auth-aside{flex:1;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:var(--s-8);background:linear-gradient(155deg,var(--g-700),var(--g-600) 55%,var(--g-800));color:#fff}.auth-aside .blob{position:absolute;border-radius:50%;background:#ffffff14}.auth-aside h2{font-size:1.875rem;font-weight:800;line-height:1.28;position:relative}.auth-aside p{font-size:var(--t-body-lg);color:#ffffffd9;margin-top:var(--s-3);position:relative;max-width:420px}.auth-form{width:460px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--surface);padding:var(--s-7)}.auth-card{width:100%;max-width:350px}.auth-card .mark{width:44px;height:44px;border-radius:12px;background:var(--brand);display:grid;place-items:center;color:#fff;margin-bottom:var(--s-4);box-shadow:var(--sh-brand)}.auth-card h1{font-size:1.5rem;margin-bottom:2px}.auth-card .sub{margin-bottom:var(--s-5)}.alert{display:flex;gap:10px;align-items:flex-start;border-radius:var(--r-md);padding:11px 14px;font-size:var(--t-caption);margin-bottom:var(--s-3);border:1px solid}.alert.a-danger{background:var(--danger-bg);color:var(--danger-fg);border-color:var(--danger-border)}.alert.a-info{background:var(--info-bg);color:var(--info-fg);border-color:var(--info-border)}.alert.a-success{background:var(--success-bg);color:var(--success-fg);border-color:var(--success-border)}.alert svg{flex:none;margin-top:1px}.upload-zone{border:1.5px dashed var(--border-strong);border-radius:var(--r-lg);padding:var(--s-7);text-align:center;color:var(--text-2);background:var(--surface);cursor:pointer;margin-bottom:var(--s-4);display:flex;flex-direction:column;align-items:center;gap:8px;transition:all var(--dur-fast) var(--ease)}.upload-zone:hover{border-color:var(--brand);background:var(--brand-subtle);color:var(--brand-subtle-fg)}.upload-zone svg{color:var(--icon-2)}.upload-zone:hover svg{color:var(--brand)}.verdict{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s-4) var(--s-4);margin-bottom:var(--s-2);box-shadow:var(--sh-xs)}.verdict .req{font-size:var(--t-caption);margin:8px 0 4px;line-height:1.6}.verdict .why{font-size:var(--t-caption);color:var(--text-2)}.verdict .quote{font-size:12.5px;background:var(--surface-2);color:var(--text-2);border-inline-start:3px solid var(--brand);padding:8px 12px;margin-top:8px;border-radius:var(--r-sm)}.pager{display:flex;gap:var(--s-2);align-items:center;justify-content:center;margin-top:var(--s-4);font-size:var(--t-caption);color:var(--text-2)}.detail-row{font-size:var(--t-caption);color:var(--text-2)}.empty{text-align:center;color:var(--text-3);padding:var(--s-8) 0;font-size:var(--t-caption)}.section-title{font-size:var(--t-h3);font-weight:700;margin:var(--s-6) 0 var(--s-3)}.skel{background:var(--surface-sunken);border-radius:var(--r-sm);animation:shimmer 1.5s var(--ease) infinite}@keyframes shimmer{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}@media (max-width: 900px){.sidebar,.auth-aside{display:none}.auth-form{width:100%}.main{padding:var(--s-4)}}
