:root{--red:#1b4a80;--red-dark:#123a6b;--red-soft:#e7eef7;--accent-l:#8fb3e3;--ink:#17181c;--muted:#6b7280;--line:#e4e7ec;--bg:#eef0f4;--card:#ffffff;--ok:#128a4c;--warn:#b7791f;--radius:14px;--shadow:0 1px 3px rgba(16,20,30,0.06),0 8px 24px rgba(16,20,30,0.05)}*{box-sizing:border-box}body,html{height:100%}body{margin:0;font-family:Segoe UI Variable Text,Segoe UI,Tahoma,Noto Kufi Arabic,Cairo,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}::selection{background:rgba(27,74,128,.18)}.shell{display:flex;min-height:100vh}.sidebar{width:250px;flex:0 0 250px;background:#fff;-webkit-border-end:1px solid var(--line);border-inline-end:1px solid var(--line);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.sb-brand{padding:18px 16px;border-bottom:1px solid var(--line);gap:10px}.sb-brand,.sb-logo{display:flex;align-items:center}.sb-logo{width:38px;height:38px;border-radius:10px;background:var(--red-soft);justify-content:center;overflow:hidden}.sb-logo img{width:24px;height:auto;display:block}.sb-title{font-weight:800;font-size:15px;color:var(--red-dark)}.sb-group,.sb-sub{font-size:11px;color:var(--muted)}.sb-group{padding:10px 12px 2px;font-weight:700;letter-spacing:.4px}.sb-link{display:flex;align-items:center;gap:9px;padding:8px 14px;margin:1px 8px;border-radius:8px;color:#374151;font-size:13.5px;position:relative}.sb-link:hover{background:var(--red-soft);color:var(--red-dark)}.sb-link.active{background:var(--red);color:#fff;font-weight:600}.sb-user{margin-top:auto;padding:14px 16px;border-top:1px solid var(--line);font-size:12.5px}.main{flex:1 1;padding:22px 26px;min-width:0}.page-head{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.page-title{font-size:20px;font-weight:800;margin:0}.spacer{flex:1 1}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:14px;gap:14px;margin-bottom:20px}.kpi{padding:16px;border-radius:var(--radius);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.kpi .k-lbl{font-size:12px;color:var(--muted);margin-bottom:6px}.kpi .k-val{font-size:22px;font-weight:800}.kpi.red{-webkit-border-start:4px solid var(--red);border-inline-start:4px solid var(--red)}.kpi.ok{-webkit-border-start:4px solid var(--ok);border-inline-start:4px solid var(--ok)}.kpi.warn{-webkit-border-start:4px solid var(--warn);border-inline-start:4px solid var(--warn)}.kpi.dark{-webkit-border-start:4px solid var(--ink);border-inline-start:4px solid var(--ink)}.tbl-wrap{overflow-x:auto}@media (min-width:901px){.card.tbl-wrap{max-height:calc(100vh - 190px);overflow:auto}.card.tbl-wrap .tbl thead th{position:-webkit-sticky;position:sticky;top:0;z-index:2;box-shadow:0 1px 0 var(--line)}}table.tbl{width:100%;border-collapse:collapse;background:#fff}.tbl th{text-align:start;font-size:12px;color:var(--muted);padding:10px 12px;border-bottom:2px solid var(--line);white-space:nowrap;background:#fafafa}.tbl td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tbody tr:hover{background:#f4f7fb}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 14px;cursor:pointer;font-size:13.5px;font-weight:600;display:inline-flex;align-items:center;gap:6px}.btn:hover{border-color:#c8d2e0;background:#f9fafb}.btn-primary{background:var(--red);border-color:var(--red);color:#fff}.btn-primary:hover{background:var(--red-dark);border-color:var(--red-dark)}.btn-ghost{border-color:transparent;background:transparent}.btn-sm{padding:4px 9px;font-size:12.5px;border-radius:7px}.btn-danger{color:#c62828;border-color:#fdeaea;background:#fdeaea}.input,select.input,textarea.input{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 11px;background:#fff;outline:none}.input:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(27,74,128,.14)}label.fld{display:block;font-size:12.5px;font-weight:600;margin-bottom:5px;color:#374151}.frm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:14px;gap:14px}.frm-grid .full{grid-column:1/-1}.search-box{position:relative}.search-box .input{width:240px;-webkit-padding-end:30px;padding-inline-end:30px}.search-clear{position:absolute;inset-inline-end:6px;top:50%;transform:translateY(-50%);border:none;background:transparent;cursor:pointer;color:var(--muted);font-size:12px;padding:4px 6px;border-radius:6px}.search-clear:hover{color:var(--ink);background:var(--red-soft)}@media (max-width:900px){.search-box .input{width:150px}}.sk{display:inline-block;height:12px;border-radius:6px;background:linear-gradient(90deg,#e9edf2 25%,#f6f8fa 45%,#e9edf2 65%);background-size:200% 100%;animation:skShimmer 1.1s linear infinite}@keyframes skShimmer{to{background-position:-200% 0}}.spin{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;display:inline-block;animation:spinRot .7s linear infinite}@keyframes spinRot{to{transform:rotate(1turn)}}.empty-state{display:flex;flex-direction:column;align-items:center;gap:9px;padding:38px 10px;color:var(--muted)}.empty-state .es-ic{font-size:34px;filter:grayscale(.4);opacity:.85}.empty-state .es-t{font-size:13.5px}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:700;background:#f3f4f6}.badge.red{background:var(--red-soft);color:var(--red-dark)}.badge.green{background:#e6f6ec;color:#128a4c}.badge.amber{background:#fdf3e2;color:#b7791f}.modal-bg{position:fixed;inset:0;background:rgba(13,23,38,.5);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:50;overflow-y:auto}.modal{background:#fff;border-radius:14px;width:100%;max-width:860px;box-shadow:0 20px 50px rgba(8,28,54,.3)}.modal-sm{max-width:360px;margin-top:8vh}.modal-head{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line);font-weight:800;font-size:16px}.modal-body{padding:20px}.modal-foot{display:flex;gap:10px;justify-content:flex-start;padding:14px 20px;border-top:1px solid var(--line)}.lines-tbl td{padding:4px 6px}.lines-tbl .input{padding:6px 8px;border-radius:7px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 700px at 80% -10%,#23262f 0,#15161a 55%,#101116 100%)}.login-card{width:380px;max-width:92vw;padding:0;border:none;border-radius:18px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.45)}.login-head{background:linear-gradient(135deg,#1c1e24,#26282f);padding:30px 30px 26px;text-align:center}.login-head img{height:46px;width:auto;max-width:82%}.login-tag{text-align:center;font-size:8.5px;letter-spacing:2.2px;font-weight:700;color:#8fb3e3;margin:12px 0 0;direction:ltr}.login-body{padding:26px 30px 30px}.login-title{font-size:17px;font-weight:800;margin:0 0 4px}.login-sub{color:var(--muted);font-size:12px;margin:0 0 18px}.err-msg{background:#fdeaea;color:#c62828;border-radius:9px;padding:9px 13px;font-size:13px;margin-bottom:12px}.toast{position:fixed;bottom:24px;inset-inline-start:24px;z-index:90;background:var(--ink);color:#fff;border-radius:10px;padding:11px 18px;box-shadow:var(--shadow);font-size:13.5px}.toast.err{background:#c62828}.mobile-bar,.nav-scrim,.nav-toggle{display:none}@media (max-width:900px){.shell{flex-direction:column}.mobile-bar{display:flex;align-items:center;gap:10px;position:-webkit-sticky;position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--line);padding:10px 14px}.nav-burger{font-size:22px;line-height:1;cursor:pointer;padding:4px 10px;border-radius:8px;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color .15s ease}.nav-burger:active{background:var(--red-soft)}.mobile-bar .sb-logo{width:30px;height:30px;border-radius:8px}.mobile-bar .sb-logo img{width:19px}.sidebar{position:fixed;top:0;bottom:0;inset-inline-start:0;z-index:80;height:100vh;width:min(300px,84vw);transform:translateX(100%);transition:transform .22s var(--ez)}.nav-toggle:checked~.sidebar{transform:none;box-shadow:0 0 44px rgba(8,28,54,.32)}.nav-toggle:checked~.nav-scrim{display:block;position:fixed;inset:0;z-index:70;background:rgba(13,23,38,.5);animation:ovFade .2s var(--ez)}.main{padding:14px}}@media print{.mobile-bar,.nav-scrim,.no-print,.page-head .btn,.search-box,.sidebar{display:none!important}.main{padding:0}body{background:#fff}.card.tbl-wrap{max-height:none!important;overflow:visible!important}}:root{--ez:cubic-bezier(0.22,0.61,0.36,1);--ezb:cubic-bezier(0.34,1.56,0.64,1)}.badge,.btn,.card,.input,.kpi,.modal,.sb-link{transition:background-color .16s var(--ez),border-color .16s var(--ez),color .16s var(--ez),box-shadow .22s var(--ez),transform .18s var(--ez),filter .18s var(--ez)}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.main>*{animation:pageIn .32s var(--ez) both}.main>:nth-child(2){animation-delay:.05s}.main>:nth-child(3){animation-delay:.1s}.main>:nth-child(n+4){animation-delay:.14s}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 3px 8px rgba(16,20,30,.08)}.btn:active:not(:disabled){transform:translateY(0) scale(.985)}.btn-primary:hover{box-shadow:0 7px 16px rgba(27,74,128,.32)}.btn-danger:hover{background:#c62828;border-color:#c62828;color:#fff}.btn:focus-visible,.sb-link:focus-visible{outline:2px solid rgba(27,74,128,.45);outline-offset:2px}.input:hover:not(:focus){border-color:#b9c5d6}.sb-link>span:first-child{filter:grayscale(1);opacity:.75;transition:transform .2s var(--ezb),filter .18s var(--ez),opacity .15s var(--ez)}.sb-link:hover>span:first-child{transform:translateY(-1px) scale(1.15);filter:grayscale(0);opacity:1}.sb-link.active>span:first-child{filter:grayscale(0);opacity:1;transform:scale(1.06)}.sb-logo{transition:transform .22s var(--ezb),box-shadow .22s var(--ez)}.sb-brand:hover .sb-logo{transform:scale(1.06) rotate(-3deg);box-shadow:0 6px 14px rgba(27,74,128,.28)}.kpi{position:relative;overflow:hidden}.kpi:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(8,28,54,.12)}.kpi .k-val{transition:color .18s var(--ez)}.kpi.red:hover .k-val{color:var(--red)}.kpi.ok:hover .k-val{color:var(--ok)}.kpi.warn:hover .k-val{color:var(--warn)}.tbl tbody tr{transition:background-color .12s var(--ez),box-shadow .12s var(--ez)}.tbl tbody tr:hover{box-shadow:inset 3px 0 0 var(--accent-l)}.badge{transition:transform .15s var(--ezb)}.badge:hover{transform:scale(1.06)}@keyframes upFade{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:none}}@keyframes ovFade{0%{opacity:0}to{opacity:1}}.modal-bg{animation:ovFade .18s var(--ez)}.modal{animation:upFade .22s var(--ez)}@keyframes toastUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.toast{animation:toastUp .24s var(--ezb)}@keyframes riseIn{0%{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:none}}.login-card{animation:riseIn .38s var(--ez)}@keyframes logoIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.login-head img{animation:logoIn .5s .08s var(--ez) both}.login-tag{animation:logoIn .5s .16s var(--ez) both}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.login-wrap{background:#EEF2F8}.login-card{border:1px solid transparent;border-radius:24px;box-shadow:0 10px 24px rgba(20,41,75,.18)}.login-head{background:linear-gradient(150deg,#2669D6,#1A4FAE 45%,#0E3A84);position:relative;overflow:hidden}.login-head:after,.login-head:before{content:"";position:absolute;border-radius:50%;pointer-events:none}.login-head:before{width:220px;height:220px;background:rgba(255,255,255,.08);inset-inline-end:-70px;top:-90px}.login-head:after{width:200px;height:200px;background:rgba(255,255,255,.05);inset-inline-start:-60px;bottom:-110px}.login-head img,.login-tag{position:relative}.login-tag{color:rgba(255,255,255,.78)}.login-title{color:#14294B}.login-sub{color:#4B5A70}.login-card .input{background:#F1F5FB;border-color:#E3E9F2;color:#14294B}.login-card .input:focus{border-color:#1E63D0;box-shadow:0 0 0 3px rgba(30,99,208,.25);background:#fff}.login-card .btn-primary{background:#1E63D0;border-color:#1E63D0;border-radius:14px;padding-top:11px;padding-bottom:11px;font-weight:800}.login-card .btn-primary:hover{background:#1A4FAE;border-color:#1A4FAE;box-shadow:0 6px 16px rgba(30,99,208,.28)}.login-card .err-msg{background:#FDE8E8;color:#C62828;border-radius:12px}.login-head .login-wordmark{display:block;height:54px;width:auto;max-width:78%;margin:4px auto 0;object-fit:contain;position:relative;animation:logoIn .5s .08s var(--ez) both}@media (max-width:420px){.login-head .login-wordmark{height:46px}}