@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap");

:root { --admin-navy:#0b1739; --admin-blue:#3157e8; --admin-green:#18a779; --admin-ink:#172033; --admin-muted:#697386; --admin-line:#e6eaf0; --admin-surface:#fff; }
body { min-height:100vh; display:flex; flex-direction:column; font-family:"DM Sans",sans-serif; color:var(--admin-ink); }

/* Shared application chrome. Page content below remains independently scoped. */
.admin-header { background:rgba(11,23,57,.98); box-shadow:0 8px 30px rgba(11,23,57,.16); }
.admin-header .navbar { min-height:74px; max-width:1440px; margin:auto; }
.admin-header .navbar-brand { gap:.7rem; margin-right:2rem; }
.admin-brand-mark { display:grid; place-items:center; width:46px; height:46px; overflow:hidden; }
.admin-brand-mark img { max-width:100%; object-fit:contain; }
.admin-brand-copy { flex-direction:column; line-height:1.1; }
.admin-brand-copy strong { font-size:1rem; letter-spacing:-.01em; }
.admin-brand-copy small { color:#9ea9c4; font-size:.67rem; font-weight:500; letter-spacing:.08em; margin-top:.25rem; text-transform:uppercase; }
.admin-header a,.admin-footer a,.dashboard-page a,.login-page a,.profile-page a { text-decoration:none!important; }
.admin-header .nav-link { position:relative; isolation:isolate; overflow:hidden; border-radius:9px; color:#c9d1e4!important; font-size:.82rem; font-weight:600; letter-spacing:.015em; padding:.7rem .85rem!important; text-transform:none; transition:color .22s ease,transform .22s ease; }
.admin-header .nav-link:before { content:""; position:absolute; z-index:-1; inset:0; border-radius:9px; background:rgba(255,255,255,.09); opacity:0; transform:scale(.82); transition:opacity .22s ease,transform .22s ease; }
.admin-header .nav-link:hover,.admin-header .nav-link.active { color:#fff!important; transform:translateY(-1px); }
.admin-header .nav-link:hover:before,.admin-header .nav-link.active:before { opacity:1; transform:scale(1); }
.admin-header .nav-link:focus-visible { outline:2px solid #8da4ff; outline-offset:2px; }
.account-nav-item { margin-left:.35rem; padding-left:.5rem; border-left:1px solid rgba(255,255,255,.12); }
.account-nav-link { display:flex!important; align-items:center; gap:.55rem; }
.account-avatar { display:grid; place-items:center; width:29px; height:29px; border-radius:50%; background:linear-gradient(135deg,#5976f2,#21b989); color:#fff; font-size:.76rem; font-weight:700; }
.admin-header .dropdown-menu { border:1px solid var(--admin-line); border-radius:12px; box-shadow:0 16px 45px rgba(25,36,60,.16); padding:.45rem; }
.admin-header .dropdown-item { border-radius:8px; font-size:.87rem; }
.admin-mobile-nav { background:var(--admin-navy); color:#fff; }

.admin-footer { background:#fff; border-top:1px solid var(--admin-line); padding:1.25rem 4.2%; }
.admin-footer-inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; max-width:1440px; margin:auto; }
.admin-footer-inner div { display:flex; flex-direction:column; }
.admin-footer strong { font-size:.85rem; }.admin-footer span,.admin-footer p { color:var(--admin-muted); font-size:.75rem; margin:0; }

/* Dashboard only. */
.dashboard-page { background:#f5f7fb!important; }
.dashboard-page #adminPageContent { max-width:1380px; }
.dashboard-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; overflow:hidden; position:relative; padding:2.15rem 2.35rem; border-radius:20px; background:linear-gradient(125deg,#101e44 0%,#2444ad 72%,#3157e8 100%); color:#fff; box-shadow:0 18px 45px rgba(32,65,166,.18); }
.dashboard-hero:after { content:""; position:absolute; right:-80px; top:-120px; width:350px; height:350px; border:65px solid rgba(255,255,255,.06); border-radius:50%; }
.dashboard-eyebrow,.section-heading span { display:block; color:#8da4ff; font-size:.7rem; font-weight:700; letter-spacing:.13em; margin-bottom:.45rem; text-transform:uppercase; }
.dashboard-hero h1 { font-size:clamp(1.65rem,3vw,2.35rem); letter-spacing:-.035em; line-height:1.2; }
.dashboard-hero p { color:#cbd5f3; font-size:.93rem; margin-top:.55rem; }
.dashboard-hero-status { position:relative; z-index:1; flex:0 0 auto; border:1px solid rgba(255,255,255,.15); border-radius:99px; background:rgba(255,255,255,.08); padding:.6rem .9rem; font-size:.78rem; }
.dashboard-hero-status span { display:inline-block; width:8px; height:8px; margin-right:.35rem; border-radius:50%; background:#49d5a5; box-shadow:0 0 0 4px rgba(73,213,165,.14); }
.dashboard-page #dashStats>section>div:first-child h2 { color:var(--admin-ink); }
.dashboard-page #dashStats .bg-white { border:1px solid var(--admin-line)!important; border-top-width:1px!important; border-radius:15px!important; box-shadow:0 7px 25px rgba(21,35,68,.055)!important; padding:1.25rem!important; transition:transform .2s,box-shadow .2s; }
.dashboard-page #dashStats a:hover .bg-white { transform:translateY(-3px); box-shadow:0 12px 30px rgba(21,35,68,.1)!important; }
.dashboard-page #dashStats h3 { color:var(--admin-ink); letter-spacing:-.03em; }
.dashboard-page #dashStats .table { font-size:.84rem; }
.dashboard-page #dashRefresh { border-radius:8px; }
.section-heading { margin-bottom:1rem; }.section-heading span { color:var(--admin-blue); margin:0; }.section-heading h2 { font-size:1.25rem; line-height:1.4; }
.quick-action { display:flex; align-items:center; gap:.9rem; min-height:90px; padding:1rem; border:1px solid var(--admin-line); border-radius:14px; background:#fff; color:var(--admin-ink); box-shadow:0 7px 22px rgba(21,35,68,.04); transition:.2s ease; }
.quick-action:hover { color:var(--admin-ink); border-color:#cbd5fa; transform:translateY(-2px); box-shadow:0 12px 28px rgba(21,35,68,.09); }
.quick-action-icon { display:grid; place-items:center; flex:0 0 43px; height:43px; border-radius:11px; background:#edf1ff; color:var(--admin-blue); font-size:1.2rem; }
.quick-action strong,.quick-action small { display:block; }.quick-action strong { font-size:.9rem; }.quick-action small { color:var(--admin-muted); font-size:.72rem; margin-top:.18rem; }

/* Login only. */
.login-page { overflow-x:hidden; background:#fff!important; }
.login-page #adminPageContent { width:100%; max-width:none; }
.login-shell { display:grid; grid-template-columns:minmax(420px,1.05fr) minmax(440px,.95fr); min-height:100vh; }
.login-panel { align-items:center; justify-content:center; padding:clamp(2rem,6vw,6rem); }
.login-intro { position:relative; overflow:hidden; background:linear-gradient(145deg,#08132f,#173174 65%,#3157e8); color:#fff; }
.login-intro:before,.login-intro:after { content:""; position:absolute; border:1px solid rgba(255,255,255,.08); border-radius:50%; }.login-intro:before { width:520px;height:520px;right:-220px;top:-180px; }.login-intro:after { width:310px;height:310px;left:-170px;bottom:-120px; }
.login-intro-content { max-width:560px; position:relative; z-index:1; }
.login-brand img { width:auto; max-width:180px; max-height:65px; object-fit:contain; margin-bottom:4.5rem; }
.login-kicker { color:#9db0f6; font-size:.74rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.login-intro h1 { font-size:clamp(2.5rem,4.2vw,4.35rem); line-height:1.05; letter-spacing:-.055em; margin:1rem 0 1.4rem; }
.login-intro p { color:#c7d1ed; font-size:1.03rem; line-height:1.7; max-width:480px; }
.login-trust { display:flex; align-items:center; gap:.65rem; color:#dbe2f7; font-size:.78rem; margin-top:3rem; }.login-trust span { display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:rgba(73,213,165,.16);color:#58dfb1; }
.login-form-panel { display:flex; background:#fff; }
.login-card { width:100%; max-width:440px; }
.login-heading>span { color:var(--admin-blue); font-size:.74rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.login-heading h2 { font-size:2rem; letter-spacing:-.04em; line-height:1.2; margin:.55rem 0 .65rem; }.login-heading p { color:var(--admin-muted); font-size:.9rem; }
.login-form { margin-top:2.25rem; }.login-form .form-label { color:#344057; font-size:.8rem; font-weight:600; }.login-form .form-control { min-height:53px; border:1px solid #dce1e9; border-radius:10px; font-size:.9rem; box-shadow:none; }.login-form .form-control:focus { border-color:#6d87ef; box-shadow:0 0 0 4px rgba(49,87,232,.1); }
.login-form .form-check-label { color:var(--admin-muted); font-size:.8rem; }.login-form .form-check-input:checked { background-color:var(--admin-blue); border-color:var(--admin-blue); }
.login-form .btn { display:flex; align-items:center; justify-content:center; gap:.65rem; min-height:54px; border:0; border-radius:10px; background:var(--admin-blue); font-size:.9rem; font-weight:600; box-shadow:0 10px 24px rgba(49,87,232,.22); }.login-form .btn:hover { background:#2748c8; }
.login-mobile-brand { color:var(--admin-navy); font-size:1.2rem; font-weight:700; margin-bottom:3rem; }

/* Profile only. */
.profile-page { background:#f5f7fb!important; }
.profile-page #adminPageContent { max-width:1240px; }
.profile-shell { width:100%; }
.profile-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; margin-bottom:1.5rem; }
.profile-eyebrow,.profile-card-heading span,.profile-section-divider span { display:block; color:var(--admin-blue); font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.profile-heading h1 { color:var(--admin-ink); font-size:clamp(1.8rem,3vw,2.35rem); letter-spacing:-.045em; line-height:1.2; margin:.3rem 0; }
.profile-heading p,.profile-card-heading p { color:var(--admin-muted); font-size:.86rem; }
.profile-back-link { display:inline-flex; align-items:center; gap:.5rem; color:#526078; font-size:.79rem; font-weight:600; padding:.65rem .85rem; border:1px solid var(--admin-line); border-radius:9px; background:#fff; box-shadow:0 3px 10px rgba(21,35,68,.03); transition:color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease; }
.profile-back-link span { transition:transform .2s ease; }
.profile-back-link:hover { color:var(--admin-blue); border-color:#c9d3fa; box-shadow:0 8px 18px rgba(49,87,232,.1); transform:translateY(-2px); }
.profile-back-link:hover span { transform:translateX(-3px); }
.profile-layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:1.25rem; align-items:start; }
.profile-summary,.profile-card { border:1px solid var(--admin-line); border-radius:17px; background:#fff; box-shadow:0 8px 28px rgba(21,35,68,.055); }
.profile-summary { padding:2rem 1.5rem; text-align:center; position:sticky; top:98px; }
.profile-avatar { display:grid; place-items:center; width:78px; height:78px; margin:0 auto 1rem; border:5px solid #edf1ff; border-radius:50%; background:linear-gradient(135deg,#3157e8,#18a779); color:#fff; font-size:1.75rem; font-weight:700; box-shadow:0 8px 22px rgba(49,87,232,.18); }
.profile-summary h2 { font-size:1.08rem; line-height:1.4; }.profile-summary>p { color:var(--admin-muted); font-size:.76rem; overflow-wrap:anywhere; margin:.2rem 0 .85rem; }
.profile-role { display:inline-flex; align-items:center; gap:.45rem; padding:.4rem .65rem; border-radius:99px; background:#eefaf6; color:#147b5c; font-size:.7rem; font-weight:600; }.profile-role i { width:6px;height:6px;border-radius:50%;background:#18a779; }
.profile-summary-divider { height:1px; background:var(--admin-line); margin:1.6rem 0; }
.profile-security-note { display:flex; align-items:flex-start; gap:.7rem; text-align:left; }.profile-security-icon { display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:9px;background:#edf1ff;color:var(--admin-blue);font-size:.75rem;font-weight:700; }.profile-security-note strong,.profile-security-note small { display:block; }.profile-security-note strong { font-size:.76rem; }.profile-security-note small { color:var(--admin-muted); font-size:.67rem; line-height:1.45; margin-top:.15rem; }
.profile-card { padding:clamp(1.35rem,3vw,2.2rem); }
.profile-card-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; padding-bottom:1.3rem; margin-bottom:1.35rem; border-bottom:1px solid var(--admin-line); }.profile-card-heading h2 { font-size:1.2rem; line-height:1.4; margin-top:.2rem; }.profile-card-heading p { font-size:.72rem; }
.profile-alert { display:flex; align-items:flex-start; gap:.75rem; border-radius:11px; padding:.85rem 1rem; margin-bottom:1.25rem; font-size:.78rem; }.profile-alert>span { display:grid;place-items:center;flex:0 0 23px;height:23px;border-radius:50%;font-size:.7rem;font-weight:700; }.profile-alert strong { display:block; margin-bottom:.12rem; }.profile-alert ul { list-style:disc; padding-left:1rem; margin-top:.3rem; }.profile-alert-success { color:#126347;background:#effaf6;border:1px solid #caeee1; }.profile-alert-success>span { background:#d3f3e7; }.profile-alert-error { color:#962d3b;background:#fff3f4;border:1px solid #f5d2d7; }.profile-alert-error>span { background:#f9dce0; }
.profile-form .form-label { color:#344057; font-size:.76rem; font-weight:600; }.profile-form .form-label span { color:#db4055; }.profile-form .form-control { min-height:50px; border:1px solid #dce1e9; border-radius:9px; color:var(--admin-ink); font-size:.83rem; box-shadow:none; }.profile-form .form-control::placeholder { color:#a3abba; }.profile-form .form-control:focus { border-color:#6d87ef; box-shadow:0 0 0 4px rgba(49,87,232,.09); }
.profile-section-divider { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; padding-top:.9rem; margin-top:.5rem; border-top:1px solid var(--admin-line); }.profile-section-divider h3 { font-size:1rem; line-height:1.4; margin-top:.15rem; }.profile-section-divider p { color:var(--admin-muted); font-size:.72rem; }
.profile-form-actions { display:flex; justify-content:flex-end; gap:.65rem; padding-top:.75rem; }.profile-form-actions .btn { min-height:44px; border-radius:9px; padding:.65rem 1rem; font-size:.78rem; font-weight:600; }.profile-cancel-btn { border:1px solid var(--admin-line); color:#526078; background:#fff; transition:background .2s ease,border-color .2s ease,transform .2s ease; }.profile-cancel-btn:hover { color:#344057; border-color:#cbd2dc; background:#f8f9fb; transform:translateY(-2px); }.profile-save-btn { display:flex;align-items:center;gap:.6rem;color:#fff;background:var(--admin-blue);box-shadow:0 8px 18px rgba(49,87,232,.18);transition:background .2s ease,box-shadow .2s ease,transform .2s ease; }.profile-save-btn span { transition:transform .2s ease; }.profile-save-btn:hover { color:#fff; background:#2748c8; box-shadow:0 12px 24px rgba(49,87,232,.26); transform:translateY(-2px); }.profile-save-btn:hover span { transform:translateX(3px); }

@media (prefers-reduced-motion:reduce) { .admin-header .nav-link,.admin-header .nav-link:before,.profile-back-link,.profile-back-link span,.profile-cancel-btn,.profile-save-btn,.profile-save-btn span { transition:none; } }

@media (max-width:991.98px) { .login-shell{display:block}.login-form-panel{min-height:100vh;padding:3rem 1.5rem}.dashboard-hero{align-items:flex-start;flex-direction:column}.dashboard-hero-status{align-self:flex-start}.profile-layout{grid-template-columns:1fr}.profile-summary{position:static}.profile-summary-divider,.profile-security-note{display:none} }
@media (max-width:767.98px) { .admin-header .navbar{min-height:64px}.admin-header .navbar-nav{text-align:left}.admin-header .nav-item{display:block}.account-nav-item{border:0;margin:.5rem 0 0;padding:0}.dashboard-hero{padding:1.5rem}.admin-footer-inner{align-items:flex-start;flex-direction:column}.profile-heading,.profile-card-heading,.profile-section-divider{align-items:flex-start;flex-direction:column}.profile-back-link{align-self:flex-start}.profile-summary{padding:1.5rem}.profile-form-actions{justify-content:stretch}.profile-form-actions .btn{flex:1} }
