@import url('https://fonts.googleapis.com/css2?family=Cairo:wght@400;500;600;700;800;900&display=swap');
:root{--bg:#f5f7fb;--card:#fff;--primary:#2454d6;--primary2:#183a9e;--dark:#101827;--dark2:#172133;--text:#182033;--muted:#6b7280;--line:#e6ebf3;--soft:#f8fbff;--green:#16a34a;--red:#dc2626;--orange:#f59e0b;--cyan:#0891b2;--purple:#7c3aed;--shadow:0 16px 45px rgba(15,23,42,.08);--r:22px}
*{font-family:Cairo,sans-serif;box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 5% 5%,rgba(36,84,214,.12),transparent 28%),linear-gradient(135deg,#f7f9fd,#eef4fb 58%,#f9fbff);color:var(--text);overflow-x:hidden}.fw-black{font-weight:900}.text-muted{color:var(--muted)!important}.btn{border-radius:13px;font-weight:800}.btn-main{background:linear-gradient(135deg,var(--primary),var(--primary2));border:0;color:#fff;box-shadow:0 12px 26px rgba(36,84,214,.2)}.btn-main:hover{color:#fff}.btn-ghost{background:#fff;border:1px solid var(--line);color:var(--primary2)}.btn-ghost:hover{background:#edf3ff;color:var(--primary2)}.form-label{font-size:12px;font-weight:900;color:#374151}.form-control,.form-select,.input-group-text{border-color:#dbe3ef;border-radius:13px;min-height:42px;font-size:13px}.required:after{content:' *';color:var(--red)}.badge-soft{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900;white-space:nowrap}.b-green{background:#e9f9ef;color:#15803d}.b-red{background:#fff1f2;color:#be123c}.b-orange{background:#fff7ed;color:#c2410c}.b-blue{background:#eff6ff;color:#1d4ed8}.b-purple{background:#f5f3ff;color:#6d28d9}.b-gray{background:#f3f4f6;color:#4b5563}.b-cyan{background:#ecfeff;color:#0e7490}.sidebar{position:fixed;inset:16px 16px 16px auto;width:280px;background:rgba(15,23,42,.97);color:#fff;border-radius:28px;padding:18px;box-shadow:var(--shadow);z-index:100;display:flex;flex-direction:column}.sidebar-brand{display:flex;gap:12px;align-items:center;padding:10px 8px 18px;border-bottom:1px solid rgba(255,255,255,.09);margin-bottom:12px}.sidebar-logo{width:48px;height:48px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(135deg,#60a5fa,var(--primary));font-size:20px}.side-nav{display:grid;gap:8px}.side-link{border:0;background:transparent;color:rgba(255,255,255,.72);border-radius:16px;padding:12px 13px;text-align:right;display:flex;align-items:center;gap:11px;font-weight:900;text-decoration:none}.side-link i{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.08)}.side-link:hover,.side-link.active{background:rgba(255,255,255,.1);color:#fff}.side-link.active i{background:#fff;color:var(--primary)}.sidebar-footer{margin-top:auto;background:rgba(255,255,255,.07);border-radius:20px;padding:14px}.main{padding:16px 312px 16px 16px;min-height:100vh}.topbar{border-radius:28px;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border:1px solid rgba(229,234,243,.9);padding:18px;box-shadow:0 10px 26px rgba(15,23,42,.06);margin-bottom:16px;position:sticky;top:12px;z-index:60}.page-title{font-size:24px;font-weight:900}.page-subtitle{font-size:13px;color:var(--muted)}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.cardx{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 10px 26px rgba(15,23,42,.06)}.card-head{padding:18px 18px 0;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.card-title{font-size:17px;font-weight:900}.card-subtitle{font-size:12px;color:var(--muted)}.card-bodyx{padding:18px}.filter-toggle{background:#f8fbff;border:1px solid var(--line);border-radius:14px;padding:8px 12px;color:var(--primary2);font-weight:900;font-size:13px}.note-box{background:#f8fbff;border:1px solid var(--line);border-radius:16px;padding:12px;font-size:12px;color:var(--muted)}.mobile-menu{display:none}.select2-container--bootstrap-5 .select2-selection{border-radius:13px;min-height:42px;border-color:#dbe3ef}@media(max-width:991px){.sidebar{inset:10px;width:auto;transform:translateX(calc(100% + 20px));transition:.25s}.sidebar.open{transform:translateX(0)}.main{padding:10px}.mobile-menu{display:inline-flex}}@media print{body{background:#fff}.main{padding:0}.sidebar,.topbar{display:none!important}}
.app-footer{margin-top:18px;background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:18px;padding:12px 16px;display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;color:#334155;font-size:12px;font-weight:900;box-shadow:0 10px 24px rgba(15,23,42,.05)}
.app-footer a{color:var(--primary2);text-decoration:none}
.app-footer a:hover{text-decoration:underline}
@media print{.app-footer{display:none!important}}

body.auth-body{min-height:100vh;background:#eef3f8;color:#142033}
.login-page{min-height:100vh;padding:32px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(11,31,54,.96),rgba(22,54,82,.92) 44%,rgba(238,243,248,.98) 44%);position:relative;overflow:hidden}
.login-page:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(0deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:54px 54px;opacity:.45;pointer-events:none}
.login-shell{position:relative;width:min(1120px,100%);display:grid;grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);background:#fff;border:1px solid rgba(226,232,240,.9);border-radius:8px;box-shadow:0 24px 70px rgba(15,23,42,.22);overflow:hidden}
.login-hero{min-height:650px;padding:42px;display:flex;flex-direction:column;justify-content:space-between;gap:28px;background:linear-gradient(150deg,#10243d,#183b55 66%,#24465e);color:#fff;position:relative}
.login-hero:after{content:"";position:absolute;inset:auto 34px 34px 34px;height:142px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:repeating-linear-gradient(135deg,rgba(255,255,255,.16) 0 2px,transparent 2px 16px);opacity:.5}
.login-brand{position:relative;z-index:1;display:flex;align-items:center;gap:12px;font-size:20px;font-weight:900}
.login-page .brand-mark{width:50px;height:50px;border-radius:8px;display:grid;place-items:center;background:#f59e0b;color:#111827;box-shadow:0 14px 34px rgba(245,158,11,.25)}
.login-hero-content{position:relative;z-index:1;max-width:650px}
.login-kicker{display:inline-flex;align-items:center;margin-bottom:14px;color:#bae6fd;font-weight:900;font-size:13px}
.login-hero h1{font-size:42px;line-height:1.25;font-weight:900;margin:0 0 16px;color:#fff}
.login-hero p{font-size:17px;line-height:2;margin:0;color:rgba(255,255,255,.82);max-width:620px}
.service-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.service-item{min-height:128px;padding:16px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(255,255,255,.1);backdrop-filter:blur(10px);display:flex;align-items:flex-start;gap:12px}
.service-item i{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;flex:0 0 38px;background:#fff;color:#1d4ed8}
.service-item strong{display:block;font-size:15px;font-weight:900;margin-bottom:6px;color:#fff}
.service-item span{display:block;font-size:12px;line-height:1.8;color:rgba(255,255,255,.78)}
.login-stats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:520px}
.login-stats div{border-radius:8px;background:#fff;color:#172033;padding:13px 14px;box-shadow:0 12px 26px rgba(15,23,42,.12)}
.login-stats b{display:block;font-size:20px;font-weight:900;color:#0f766e}
.login-stats span{font-size:12px;font-weight:800;color:#64748b}
.login-panel{padding:42px;display:flex;flex-direction:column;justify-content:center;background:#fff}
.panel-head{display:flex;align-items:center;gap:14px;margin-bottom:30px}
.panel-icon{width:54px;height:54px;border-radius:8px;display:grid;place-items:center;background:#eaf2ff;color:#2454d6;font-size:22px}
.panel-head h2{font-size:30px;font-weight:900;margin:0 0 6px;color:#101827}
.panel-head p{margin:0;color:#64748b;font-size:14px;font-weight:700}
.login-form{display:grid;gap:18px}
.input-wrap{position:relative}
.input-wrap i{position:absolute;top:50%;right:15px;transform:translateY(-50%);color:#64748b;z-index:2}
.input-wrap .form-control{height:50px;border-radius:8px;padding-right:44px;padding-left:14px;border-color:#d8e1ed;font-weight:700;background:#fbfdff}
.input-wrap .form-control:focus{border-color:#2454d6;box-shadow:0 0 0 .22rem rgba(36,84,214,.12);background:#fff}
.login-submit{min-height:50px;border-radius:8px;font-size:15px}
.login-panel .alert{border-radius:8px;font-size:13px;font-weight:900}
.login-support{margin-top:22px;padding:14px;border:1px solid #e6ebf3;border-radius:8px;background:#f8fafc;color:#475569;display:flex;align-items:center;gap:10px;font-size:12px;font-weight:800;line-height:1.8}
.login-support i{color:#0f766e}
@media(max-width:991px){.login-page{padding:18px;background:#eef3f8}.login-shell{grid-template-columns:1fr}.login-panel{order:-1;padding:28px}.login-hero{min-height:auto;padding:28px}.login-hero:after{display:none}.login-hero h1{font-size:30px}.login-hero p{font-size:15px}.service-grid,.login-stats{grid-template-columns:1fr}}
@media(max-width:575px){.login-page{padding:10px;place-items:stretch}.login-shell{min-height:calc(100vh - 20px)}.login-hero{padding:22px}.login-brand{font-size:18px}.login-page .brand-mark{width:44px;height:44px}.login-hero h1{font-size:25px}.panel-head{align-items:flex-start}.panel-head h2{font-size:24px}.login-panel{padding:22px}.service-item{min-height:auto}.login-stats div{padding:11px 12px}}
