/* Shared design system. Colours come from CSS variables generated from admin branding settings. */
:root{
  --brand-primary:#1d4ed8;--brand-secondary:#0b2447;--brand-accent:#38bdf8;
  --page-bg:#f3f6fb;--page-text:#1e293b;--header-bg:#0b2447;--footer-bg:#0b2447;
  --btn-bg:#1d4ed8;--link-color:#1d4ed8;--site-font:system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --surface:#ffffff;--surface-2:#eef2f9;--border-c:#dbe3f0;--muted-c:#64748b;
}
[data-bs-theme="dark"]{
  --page-bg:#0f172a;--page-text:#e2e8f0;--surface:#1e293b;--surface-2:#273449;--border-c:#334155;--muted-c:#94a3b8;
}
body{font-family:var(--site-font);background:var(--page-bg);color:var(--page-text);}
a{color:var(--link-color)}
.text-muted{color:var(--muted-c)!important}
.btn-primary{--bs-btn-bg:var(--btn-bg);--bs-btn-border-color:var(--btn-bg);--bs-btn-hover-bg:color-mix(in srgb,var(--btn-bg) 82%,#000);--bs-btn-hover-border-color:color-mix(in srgb,var(--btn-bg) 82%,#000);--bs-btn-active-bg:color-mix(in srgb,var(--btn-bg) 72%,#000);--bs-btn-active-border-color:color-mix(in srgb,var(--btn-bg) 72%,#000);--bs-btn-disabled-bg:var(--btn-bg);--bs-btn-disabled-border-color:var(--btn-bg)}
.btn-outline-primary{--bs-btn-color:var(--btn-bg);--bs-btn-border-color:var(--btn-bg);--bs-btn-hover-bg:var(--btn-bg);--bs-btn-hover-border-color:var(--btn-bg);--bs-btn-active-bg:var(--btn-bg)}
.text-primary{color:var(--brand-primary)!important}
.bg-primary{background-color:var(--brand-primary)!important}
.btn-accent{background:var(--brand-accent);border-color:var(--brand-accent);color:#04223a;font-weight:600}
.btn-accent:hover{background:color-mix(in srgb,var(--brand-accent) 85%,#fff);color:#04223a}
.page-link{color:var(--brand-primary)}
.page-item.active .page-link{background:var(--brand-primary);border-color:var(--brand-primary)}
.form-control:focus,.form-select:focus{border-color:var(--brand-primary);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--brand-primary) 22%,transparent)}
.form-check-input:checked{background-color:var(--brand-primary);border-color:var(--brand-primary)}
.skip-link{position:absolute;left:8px;top:8px;z-index:3000;background:#fff;padding:.5rem 1rem;border-radius:.4rem}

/* header */
.announce-bar{background:var(--brand-accent);color:#04223a;font-size:.88rem;padding:.4rem 0}
.site-header{background:var(--header-bg);position:sticky;top:0;z-index:1030;box-shadow:0 2px 12px rgba(0,0,0,.18)}
.site-header .navbar{padding:.55rem 0}
.brand-logo{height:38px;width:auto;max-width:150px;object-fit:contain}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:var(--brand-accent);color:#04223a;font-size:1.25rem}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-name{font-weight:700;letter-spacing:.2px}
.brand-tag{font-size:.7rem;opacity:.75;font-weight:400}
.site-header .nav-link{color:rgba(255,255,255,.85);font-weight:500}
.site-header .nav-link:hover{color:#fff}
.search-form .form-control{border-radius:.5rem 0 0 .5rem;min-width:200px}
.search-form .btn{border-radius:0 .5rem .5rem 0}
.header-center .navbar .container{flex-wrap:wrap;justify-content:center}
.header-center .navbar-brand{margin:0 auto;flex:1 0 100%;justify-content:center;padding-bottom:.4rem}
@media(min-width:992px){.header-center .navbar-collapse{flex:1 0 100%;justify-content:center}.header-center .navbar-toggler{display:none}}

/* hero */
.hero{background:linear-gradient(135deg,var(--brand-secondary) 0%,color-mix(in srgb,var(--brand-primary) 85%,#000) 100%);color:#fff;padding:4rem 0 5rem;position:relative;overflow:hidden}
.hero.has-image{background-size:cover;background-position:center}
.hero.has-image::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(11,36,71,.88),rgba(29,78,216,.7))}
.hero .container{position:relative}
.hero h1{font-weight:800;font-size:clamp(1.9rem,4.5vw,3.1rem)}
.hero p.lead{opacity:.9;max-width:42rem}
.hero-search{max-width:640px}
.hero-search .form-control{padding:.85rem 1.1rem;border:0}
.hero-search .btn{padding:.85rem 1.4rem}
.stat-strip{margin-top:-2.6rem;position:relative;z-index:2}
.stat-card{background:var(--surface);border-radius:1rem;padding:1.1rem 1.25rem;box-shadow:0 8px 24px rgba(15,23,42,.1);display:flex;align-items:center;gap:.9rem;height:100%}
.stat-card .ico{width:46px;height:46px;border-radius:12px;background:color-mix(in srgb,var(--brand-primary) 12%,transparent);color:var(--brand-primary);display:flex;align-items:center;justify-content:center;font-size:1.3rem}
.stat-card .num{font-size:1.5rem;font-weight:700;line-height:1}

/* sections / cards */
.section-title{font-weight:700;margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.section-title a{font-size:.9rem;font-weight:500}
.card{background:var(--surface);border-color:var(--border-c)}
.card-style-shadow .card{border:0;box-shadow:0 2px 10px rgba(15,23,42,.08)}
.card-style-border .card{box-shadow:none;border:1px solid var(--border-c)}
.card-style-flat .card{box-shadow:none;border:0;background:var(--surface-2)}
.resource-card{transition:transform .15s ease,box-shadow .15s ease;overflow:hidden}
.resource-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(15,23,42,.14)!important}
.resource-card .thumb{background:linear-gradient(135deg,color-mix(in srgb,var(--brand-primary) 14%,var(--surface)),color-mix(in srgb,var(--brand-accent) 22%,var(--surface)))}
.resource-card .thumb img{object-fit:cover;width:100%;height:100%}
.thumb-ph{display:flex;align-items:center;justify-content:center;font-size:2.6rem;color:var(--brand-primary);opacity:.65}
.badge-kind{background:color-mix(in srgb,var(--brand-primary) 14%,transparent);color:var(--brand-primary);font-weight:600}
.badge-kind.kind-paper{background:color-mix(in srgb,#f59e0b 20%,transparent);color:#b45309}
.cat-card{display:block;padding:1.1rem 1.2rem;border-radius:1rem;background:var(--surface);text-decoration:none;color:inherit;height:100%;border:1px solid var(--border-c);transition:all .15s}
.cat-card:hover{border-color:var(--brand-primary);transform:translateY(-2px);box-shadow:0 8px 20px rgba(15,23,42,.1)}
.cat-card .ico{font-size:1.6rem;color:var(--brand-primary)}
.empty-state{border:2px dashed var(--border-c);border-radius:1rem}
.filter-panel{background:var(--surface);border-radius:1rem;padding:1rem;border:1px solid var(--border-c)}

/* footer */
.site-footer{background:var(--footer-bg);color:rgba(255,255,255,.92)}
.site-footer a{color:rgba(255,255,255,.8);text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer h6{text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;opacity:.7}
.social-links a{display:inline-flex;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.12);align-items:center;justify-content:center;margin-right:.4rem;font-size:1.05rem}
.social-links a:hover{background:var(--brand-accent);color:#04223a;text-decoration:none}
.footer-bottom{border-top:1px solid rgba(255,255,255,.14)}

/* resource detail + preview */
.pdf-viewer{background:var(--surface-2);border:1px solid var(--border-c);border-radius:.8rem;overflow:hidden}
.pdf-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.5rem .75rem;background:var(--surface);border-bottom:1px solid var(--border-c)}
.pdf-canvas-wrap{max-height:75vh;overflow:auto;padding:1rem;text-align:center;background:var(--surface-2)}
.pdf-canvas-wrap canvas{max-width:100%;height:auto;box-shadow:0 2px 10px rgba(0,0,0,.2);background:#fff}
.meta-list dt{font-weight:600;color:var(--muted-c);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
.meta-list dd{margin-bottom:.75rem}

/* questions */
.q-item{background:var(--surface);border:1px solid var(--border-c);border-left:4px solid var(--brand-primary);border-radius:.7rem;padding:1rem 1.1rem;margin-bottom:.9rem}
.q-item.imp-high{border-left-color:#dc2626}.q-item.imp-medium{border-left-color:#f59e0b}.q-item.imp-practice{border-left-color:#0ea5e9}
.q-item .q-body p:last-child{margin-bottom:0}
.q-answer{background:var(--surface-2);border-radius:.5rem;padding:.75rem 1rem;margin-top:.75rem}
.rtl-content,.rtl-content *{font-family:'Noto Nastaliq Urdu','Jameel Noori Nastaleeq',var(--site-font);line-height:2.1}
.mcq-options{list-style:none;padding-left:0}
.mcq-options li{padding:.2rem 0}
.mcq-options li.correct{font-weight:600;color:#15803d}

/* rich editor */
.rt-wrap{border:1px solid var(--border-c);border-radius:.5rem;background:var(--surface)}
.rt-toolbar{display:flex;gap:.25rem;flex-wrap:wrap;padding:.35rem;border-bottom:1px solid var(--border-c);background:var(--surface-2);border-radius:.5rem .5rem 0 0}
.rt-toolbar button{border:0;background:transparent;padding:.2rem .55rem;border-radius:.3rem;color:inherit}
.rt-toolbar button:hover{background:var(--border-c)}
.rt-area{min-height:130px;padding:.6rem .8rem;outline:0;overflow:auto;max-height:420px}
.rt-area:focus{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--brand-primary) 30%,transparent)}

.auth-card{max-width:460px;margin:3rem auto}

@media print{
  .site-header,.site-footer,.announce-bar,.no-print,.breadcrumb,.pagination{display:none!important}
  body{background:#fff!important;color:#000!important}
  .q-item{break-inside:avoid;border:1px solid #bbb;box-shadow:none}
  .container{max-width:100%!important}
  a[href]:after{content:none!important}
}
