@import url('https://fonts.googleapis.com/css2?family=Cairo:wght@400;500;600;700;800&display=swap');
:root{--bg:#f3f5f9;--panel:#fff;--ink:#172033;--muted:#7b8495;--line:#e7eaf0;--nav:#101827;--blue:#3267e8;--blue2:#eaf0ff;--green:#15966a;--amber:#b7791f;--red:#c43b4d;--shadow:0 14px 40px rgba(20,32,55,.07)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Cairo',Tahoma,Arial,sans-serif}button,input{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,#e6edff,transparent 34%),var(--bg)}.login-card{width:min(100%,430px);background:#fff;border:1px solid var(--line);border-radius:24px;padding:38px;box-shadow:var(--shadow)}.brand-mark{width:58px;height:58px;border-radius:17px;background:linear-gradient(135deg,#3b72f2,#234bb5);color:white;display:grid;place-items:center;font-weight:800;font-size:21px;box-shadow:0 9px 20px #3267e83b}.eyebrow{font-size:10px;letter-spacing:1.6px;color:var(--blue);font-weight:800;margin:18px 0 5px}.login-card h1{font-size:25px;margin:0 0 8px}.muted,.login-card small{color:var(--muted)}.login-card form{margin-top:27px}.login-card label{display:block;font-weight:700;font-size:13px;margin:16px 0}.login-card input,.search input{width:100%;border:1px solid var(--line);background:#fbfcfe;border-radius:11px;padding:12px 13px;outline:none;margin-top:7px}.login-card input:focus,.search input:focus{border-color:#8da9fa;box-shadow:0 0 0 3px #3267e81a}.primary{border:0;background:var(--blue);color:#fff;border-radius:11px;padding:12px 18px;font-weight:700}.wide{width:100%;margin-top:8px}.error{color:var(--red);font-size:12px;min-height:18px}.login-card small{display:block;text-align:center;margin-top:23px}
.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 0 0 auto;width:250px;background:var(--nav);color:#fff;padding:25px 17px;display:flex;flex-direction:column;z-index:3}.side-brand{display:flex;align-items:center;gap:12px;padding:3px 9px 30px}.side-brand b{display:block;font-size:15px}.side-brand small{color:#9aa6bc;font-size:11px}.brand-mark.small{width:42px;height:42px;border-radius:13px;font-size:15px}.sidebar nav{display:grid;gap:7px}.nav-item{display:flex;align-items:center;gap:13px;border:0;background:transparent;color:#aab5c8;text-align:right;padding:13px 15px;border-radius:11px;font-size:14px}.nav-item.active,.nav-item:hover{background:#263650;color:#fff}.side-foot{margin-top:auto;color:#aab5c8;font-size:11px;padding:13px 9px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#39cb91;margin-left:7px}.main{margin-right:250px;padding:0 34px 40px;max-width:1700px}.topbar{height:94px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:29px}.topbar .eyebrow{margin:0;color:#9aa3b2}.topbar h2{font-size:20px;margin:2px 0}.user-area{display:flex;align-items:center;gap:11px}.user-area b,.user-area small{display:block}.user-area b{font-size:12px}.user-area small{font-size:10px;color:var(--muted)}.avatar{width:37px;height:37px;border-radius:50%;display:grid;place-items:center;background:var(--blue2);color:var(--blue);font-weight:800}.ghost,.outline{background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px 13px;color:#4b566b;font-size:12px}.welcome,.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}.welcome h1,.section-head h1{font-size:23px;margin:0}.welcome p,.section-head p{color:var(--muted);font-size:12px;margin:5px 0}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 4px 18px #17203306}.stat .label{color:var(--muted);font-size:12px}.stat .value{font-size:28px;font-weight:800;margin:8px 0 0}.stat .icon{float:left;width:35px;height:35px;border-radius:11px;background:var(--blue2);color:var(--blue);display:grid;place-items:center}.notice{display:flex;gap:15px;background:#fff9eb;border:1px solid #f4e4bd;border-radius:13px;padding:16px 18px;margin-top:22px;font-size:12px;color:#72551d}.notice b{white-space:nowrap}.section-head{align-items:center}.search{display:flex;gap:8px;width:min(100%,470px)}.search input{margin:0}.search button{border:0;border-radius:10px;padding:0 20px;background:var(--blue);color:#fff}.table-wrap{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:auto;box-shadow:0 4px 18px #17203306}table{border-collapse:collapse;width:100%;min-width:750px;text-align:right}th,td{padding:13px 15px;border-bottom:1px solid var(--line);font-size:12px;white-space:nowrap}th{background:#f9fafc;color:#6f7a8d;font-weight:700}td{color:#344054}tbody tr:last-child td{border-bottom:0}.pill{display:inline-block;border-radius:20px;padding:4px 9px;font-size:10px;background:#edf2ff;color:#315fc4}.pill.good{background:#e8f7f0;color:#16845e}.pill.warn{background:#fff4df;color:#9b6815}.pill.bad{background:#fdecef;color:#b33346}.table-note{font-size:11px;color:var(--muted)}.toast{position:fixed;bottom:22px;left:22px;background:#172033;color:#fff;padding:11px 17px;border-radius:10px;font-size:12px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:none}.skeleton{height:115px;background:linear-gradient(90deg,#fff,#f4f6fa,#fff);background-size:200% 100%;animation:shine 1.4s infinite}@keyframes shine{to{background-position:-200% 0}}
@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.main{padding:0 22px 30px}}@media(max-width:720px){.sidebar{position:static;width:auto;height:auto;padding:12px;display:block}.side-brand{padding:0 5px 12px}.sidebar nav{display:flex;overflow:auto}.nav-item{white-space:nowrap;padding:9px 12px}.side-foot{display:none}.main{margin:0;padding:0 13px 25px}.topbar{height:75px;margin-bottom:20px}.welcome,.section-head{align-items:stretch;flex-direction:column}.search{width:100%}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stat{padding:14px}.stat .value{font-size:23px}.notice{display:block}.notice span{display:block;margin-top:5px}.login-card{padding:27px 22px}}
