/* ==========================================================================
   senoraclass.lk — brand layer (loaded on every page by database/brand.php)
   Palette taken from the logo: deep navy, royal blue, sky blue, gold.
   ========================================================================== */
:root{
  --sc-navy:#0a1f4e; --sc-navy-2:#06122f; --sc-blue:#1683ff; --sc-blue-2:#0a6cf0;
  --sc-sky:#2bb3ff; --sc-gold:#f5b301; --sc-gold-2:#ffcf3f;
  --sc-grad:linear-gradient(135deg,#0a6cf0 0%,#1683ff 45%,#2bb3ff 100%);
  --sc-grad-dark:linear-gradient(135deg,#06122f 0%,#0a1f4e 60%,#0f2f73 100%);
}

/* ---------- global polish (safe, non-layout) ---------- */
::selection{background:rgba(22,131,255,.25)}
html{scrollbar-color:#1683ff33 transparent}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:linear-gradient(#1683ff88,#0a1f4e88);border-radius:10px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(#1683ff,#0a1f4e);background-clip:padding-box}
:focus-visible{outline:2px solid var(--sc-blue);outline-offset:2px}
.btn-primary{background:var(--sc-grad)!important;border-color:transparent!important;box-shadow:0 6px 18px -6px rgba(22,131,255,.55)}
.btn-primary:hover{filter:brightness(1.06);transform:translateY(-1px)}
.text-primary{color:var(--sc-blue)!important}
.bg-primary{background:var(--sc-blue)!important}

/* ---------- loader ---------- */
#senora-loader{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;overflow:hidden;
  font-family:'Poppins','Plus Jakarta Sans',system-ui,sans-serif;transition:opacity .6s ease,visibility .6s}
#senora-loader .sl-bg{position:absolute;inset:0;background:
  radial-gradient(900px 520px at 50% 42%,#ffffff 0%,#ffffff 38%,#eaf3ff 70%,#d6e7ff 100%)}
#senora-loader .sl-bg::after{content:"";position:absolute;inset:-50%;
  background:conic-gradient(from 0deg,transparent 0 70%,rgba(22,131,255,.10) 80%,transparent 90%);
  animation:sl-spin 6s linear infinite}
#senora-loader .sl-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;width:min(78vw,460px)}
#senora-loader .sl-logo{position:relative;width:100%;overflow:hidden;border-radius:18px;
  opacity:0;transform:translateY(24px) scale(.82);filter:blur(10px);
  animation:sl-in 1s cubic-bezier(.2,.9,.25,1.15) .15s forwards}
#senora-loader .sl-logo img{display:block;width:100%;height:auto;
  margin:0}
#senora-loader .sl-shine{position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.85) 50%,transparent 65%);
  transform:translateX(-120%);animation:sl-shine 1.4s ease 1.05s forwards}
#senora-loader .sl-glow{position:absolute;top:30%;left:50%;width:70%;aspect-ratio:1;transform:translate(-50%,-50%) scale(.4);
  background:radial-gradient(circle,rgba(22,131,255,.30),transparent 65%);border-radius:50%;opacity:0;
  animation:sl-glow 2.4s ease-in-out .3s infinite}
#senora-loader .sl-orbit{position:absolute;top:28%;left:50%;width:62%;aspect-ratio:2.4;transform:translate(-50%,-50%) rotate(-12deg);
  border-radius:50%;border:2px solid transparent;border-top-color:var(--sc-gold);border-right-color:rgba(245,179,1,.35);
  opacity:0;animation:sl-fade .5s ease .9s forwards,sl-spin 2.2s linear .9s infinite}
#senora-loader .sl-star{position:absolute;top:-7px;left:50%;width:14px;height:14px;background:var(--sc-gold);
  clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);
  filter:drop-shadow(0 0 6px rgba(245,179,1,.9))}
#senora-loader .sl-tag{display:flex;align-items:center;gap:12px;letter-spacing:.32em;text-transform:uppercase;
  font-size:clamp(10px,2.4vw,13px);font-weight:600;color:var(--sc-navy)}
#senora-loader .sl-tag span{opacity:0;transform:translateY(8px);animation:sl-up .5s ease forwards}
#senora-loader .sl-tag span:nth-of-type(1){animation-delay:1.05s}
#senora-loader .sl-tag span:nth-of-type(2){animation-delay:1.25s}
#senora-loader .sl-tag span:nth-of-type(3){animation-delay:1.45s}
#senora-loader .sl-tag i{width:6px;height:6px;border-radius:50%;background:var(--sc-blue);opacity:0;animation:sl-fade .3s ease 1.3s forwards}
#senora-loader .sl-bar{width:58%;height:4px;border-radius:4px;background:rgba(10,31,78,.10);overflow:hidden;margin-top:4px}
#senora-loader .sl-bar b{display:block;height:100%;width:40%;border-radius:4px;background:linear-gradient(90deg,var(--sc-blue),var(--sc-gold));
  animation:sl-bar 1.1s ease-in-out infinite}
#senora-loader .sl-pixels i{position:absolute;width:14px;height:14px;border-radius:3px;background:var(--sc-blue);opacity:0;
  animation:sl-pix 3s ease-in-out infinite}
#senora-loader .sl-pixels i:nth-child(1){left:14%;top:30%;animation-delay:.2s}
#senora-loader .sl-pixels i:nth-child(2){left:20%;top:62%;background:var(--sc-sky);animation-delay:.8s;width:10px;height:10px}
#senora-loader .sl-pixels i:nth-child(3){right:16%;top:24%;background:var(--sc-navy);animation-delay:.5s}
#senora-loader .sl-pixels i:nth-child(4){right:12%;top:68%;background:var(--sc-gold);animation-delay:1.2s;width:9px;height:9px}
#senora-loader .sl-pixels i:nth-child(5){left:42%;top:12%;background:var(--sc-sky);animation-delay:1.6s;width:8px;height:8px}
#senora-loader .sl-pixels i:nth-child(6){right:40%;bottom:12%;animation-delay:2s;width:11px;height:11px}

#senora-loader.sl-quick .sl-logo{animation-duration:.35s;animation-delay:0s}
#senora-loader.sl-quick .sl-tag,#senora-loader.sl-quick .sl-orbit,#senora-loader.sl-quick .sl-pixels,#senora-loader.sl-quick .sl-shine{display:none}
#senora-loader.sl-out{opacity:0;visibility:hidden}
#senora-loader.sl-out .sl-stage{transform:scale(1.06);transition:transform .6s ease}

@keyframes sl-in{to{opacity:1;transform:none;filter:none}}
@keyframes sl-shine{to{transform:translateX(120%)}}
@keyframes sl-glow{0%,100%{opacity:.35;transform:translate(-50%,-50%) scale(.75)}50%{opacity:.9;transform:translate(-50%,-50%) scale(1)}}
@keyframes sl-spin{to{transform:translate(-50%,-50%) rotate(348deg)}}
#senora-loader .sl-bg::after{animation-name:sl-rot}
@keyframes sl-rot{to{transform:rotate(360deg)}}
@keyframes sl-fade{to{opacity:1}}
@keyframes sl-up{to{opacity:1;transform:none}}
@keyframes sl-bar{0%{transform:translateX(-110%)}100%{transform:translateX(260%)}}
@keyframes sl-pix{0%,100%{opacity:0;transform:translateY(10px) rotate(0)}40%,60%{opacity:.75;transform:translateY(-8px) rotate(20deg)}}
@media (prefers-reduced-motion:reduce){#senora-loader *{animation-duration:.01s!important;animation-iteration-count:1!important}}

/* ---------- logo placement in app shells ---------- */
/* admin / teacher sidebars: square brand mark on a white app-icon tile */
.sidebar-header .logo-img,img.logo-img{content:url(logo-mark.png);object-fit:contain!important;background:#fff!important;
  padding:4px;border:1px solid rgba(22,131,255,.25)!important;box-shadow:0 6px 18px -8px rgba(22,131,255,.6)!important}
/* student sidebar: full wordmark, never stretched */
.sidebar .logo img{width:auto!important;max-width:190px;height:48px!important;object-fit:contain;border-radius:0!important;margin-left:0!important}
[data-theme="dark"] .sidebar .logo img,body.dark-mode .sidebar .logo img,body.dark .sidebar .logo img{content:url(logo-wordmark-light.png)}
/* public header/footer logo */
.logo-wrap img{object-fit:contain}

/* ---------- brand accents ---------- */
.site-info h2{background:linear-gradient(90deg,var(--sc-blue),var(--sc-sky));-webkit-background-clip:text;background-clip:text;color:transparent!important}
.nav-item.active,.sidebar a.active{position:relative}
.nav-item.active::before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:3px;border-radius:3px;background:var(--sc-gold)}

/* ==========================================================================
   APP SHELLS — student app + admin/teacher panel, restyled to the logo
   ========================================================================== */
body{font-family:'Poppins','Noto Sans Sinhala',system-ui,sans-serif}

/* student sidebar: white card, pixel accent, gradient active pill */
.sidebar .menu a{border-radius:14px;transition:background .2s,color .2s,transform .2s}
.sidebar .menu a:hover{background:#eef5ff;transform:translateX(2px)}
.sidebar .menu a.active{background:linear-gradient(135deg,#0a1f4e,#1683ff)!important;color:#fff!important;box-shadow:0 10px 24px -12px rgba(22,131,255,.8)}
.sidebar .menu a.active i.bx{background:rgba(255,255,255,.18)!important;color:var(--sc-gold-2)!important;box-shadow:none}
.sidebar .menu-section{color:#1683ff!important}
.sidebar .logo{position:relative;padding-bottom:14px;border-bottom:1px dashed rgba(22,131,255,.25)}

/* admin sidebar: deep-navy gradient with gold active marker */
#sidebar.sidebar,.sidebar#sidebar{background:linear-gradient(180deg,#06122f 0%,#0a1f4e 70%,#0f2f73 100%)!important;border-right:1px solid rgba(43,179,255,.12)!important}
#sidebar .nav-item{color:#c3d1f0!important;border-radius:12px}
#sidebar .nav-item:hover{background:rgba(43,179,255,.10)!important;color:#fff!important}
#sidebar .nav-item.active{background:linear-gradient(90deg,rgba(22,131,255,.35),rgba(22,131,255,.06))!important;color:#fff!important}
#sidebar .nav-item.active i:first-child{background:linear-gradient(135deg,#1683ff,#2bb3ff)!important;color:#fff!important}
#sidebar .nav-item.active::before{display:block!important;content:"";position:absolute;left:0;top:18%;bottom:18%;width:3px;border-radius:3px;background:var(--sc-gold)}
#sidebar .site-info p{color:var(--sc-gold)!important;letter-spacing:.12em;text-transform:uppercase;font-size:10.5px!important;font-weight:600}
#sidebar .sidebar-header{border-bottom:1px solid rgba(255,255,255,.06)}
#sidebar .nav-search input{background:rgba(255,255,255,.06)!important;border-color:rgba(255,255,255,.1)!important;color:#fff!important}
/* student sidebar shares id="sidebar" → navy shell: white logo, light text */
#sidebar .logo img{content:url(logo-wordmark-light.png)}
#sidebar .logo{border-bottom-color:rgba(255,255,255,.1)}
#sidebar .menu a{color:#c3d1f0!important}
#sidebar .menu a:hover{background:rgba(43,179,255,.12)!important;color:#fff!important}
#sidebar .menu a i.bx{background:rgba(255,255,255,.06);color:#9fb6e6}
#sidebar .menu a.active{background:linear-gradient(135deg,#1683ff,#2bb3ff)!important;color:#fff!important}
#sidebar .menu-section{color:var(--sc-gold)!important}
#sidebar .menu-section::before{background:rgba(255,255,255,.08)!important}
