/* School AI - self-contained stylesheet (no CDN needed, works offline on Pydroid).
   Base components first; the "AI theme" block at the end sets the look (violet / indigo / pink gradients). */
:root{
  --board:#163a2e;--board2:#1d4a3b;--board3:#245a48;--chalk:#f5f2e8;--chalk2:#c9d6cf;
  --pencil:#f6b81a;--pencil2:#ffd35c;--ink:#2340a0;--ink2:#1b3184;--ink-soft:#e8edfb;
  --leaf:#1e9b62;--leaf-soft:#e3f5ec;--apple:#d6453d;--apple-soft:#fdeceb;--sun:#f0a020;--sun-soft:#fff4dc;
  --sky:#1f8fd6;--sky-soft:#e3f2fc;--plum:#7b4bc4;--plum-soft:#f0e9fb;--teal:#12928c;--teal-soft:#dff4f2;--coral:#e8743b;--coral-soft:#fdeee5;
  --paper:#f7f4ec;--card:#fff;--line:#e6e0d2;--text:#1f2a24;--muted:#6b7468;
  --r:14px;--r-sm:9px;--sh:0 1px 2px rgba(22,58,46,.06),0 6px 20px rgba(22,58,46,.07);
  --head:"Baloo 2","Mukta","Noto Sans Devanagari",system-ui,sans-serif;--body:"Mukta","Noto Sans Devanagari",system-ui,"Segoe UI",Arial,sans-serif;
  --side:250px;--top:60px;--tab:0px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--body);font-size:16px;line-height:1.5}
h1,h2,h3,h4,h5,h6{font-family:var(--head);font-weight:700;line-height:1.2;margin:0 0 .5rem;color:var(--board)}
h3{font-size:1.6rem}h4{font-size:1.45rem}h5{font-size:1.2rem}h6{font-size:1.05rem}
p{margin:0 0 1rem}a{color:var(--ink);text-decoration:none}a:hover{text-decoration:underline}
hr{border:0;border-top:1px solid var(--line);margin:1rem 0}
code{font-size:.85em;color:var(--apple);background:#fff3f2;padding:1px 5px;border-radius:5px;word-break:break-word}
img,svg{vertical-align:middle}
table{border-collapse:collapse}
label{display:inline-block}
button,input,select,textarea{font:inherit;color:inherit}
textarea{font-family:inherit}
::selection{background:var(--pencil2)}

/* ---------------------------------------------------------------- app shell */
.side{position:fixed;inset:0 auto 0 0;width:var(--side);background:var(--board);color:var(--chalk);z-index:40;display:flex;flex-direction:column;
  background-image:radial-gradient(ellipse at 20% 0%,rgba(255,255,255,.06),transparent 60%),repeating-linear-gradient(135deg,rgba(255,255,255,.012) 0 2px,transparent 2px 6px);
  border-right:6px solid #6b4a2b;box-shadow:inset -1px 0 0 rgba(0,0,0,.2)}
.brand{display:flex;align-items:center;gap:10px;padding:16px 16px 12px;color:var(--chalk)!important;text-decoration:none!important}
.brand .logo{width:42px;height:42px;border-radius:12px;background:var(--pencil);display:grid;place-items:center;flex:0 0 auto;box-shadow:0 3px 0 #c98f00}
.brand .logo svg{width:26px;height:26px;color:var(--board)}
.brand b{display:block;font-family:var(--head);font-size:1.15rem;line-height:1.1;color:#fff}
.brand small{display:block;color:var(--chalk2);font-size:.78rem;line-height:1.2;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side nav{flex:1;overflow-y:auto;padding:4px 10px 12px}
.grp{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#9fb8ac;margin:14px 8px 4px;font-weight:700}
.nav-i{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:10px;color:var(--chalk)!important;text-decoration:none!important;position:relative;margin:1px 0}
.nav-i svg{width:21px;height:21px;flex:0 0 auto;opacity:.9}
.nav-i span{display:flex;flex-direction:column;line-height:1.15}
.nav-i b{font-weight:600;font-size:.98rem}.nav-i small{font-size:.72rem;color:#a9c0b5}
.nav-i:hover{background:rgba(255,255,255,.07)}
.nav-i.on{background:rgba(246,184,26,.16);color:#fff!important}
.nav-i.on::before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:5px;border-radius:0 4px 4px 0;background:var(--pencil)}
.nav-i.on svg{color:var(--pencil);opacity:1}
.nav-i .cnt{margin-left:auto;background:var(--pencil);color:var(--board);font-size:.72rem;font-weight:800;border-radius:20px;padding:0 7px}
.side-foot{border-top:1px solid rgba(255,255,255,.08);padding:10px 12px;display:flex;align-items:center;gap:10px}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--chalk);color:var(--board);display:grid;place-items:center;font-weight:800;font-family:var(--head);flex:0 0 auto}
.side-foot .who{flex:1;min-width:0;line-height:1.15}.side-foot .who a{color:#fff;font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-foot .who small{color:var(--chalk2);font-size:.75rem}
.iconbtn{background:transparent;border:0;color:inherit;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;cursor:pointer}
.iconbtn:hover{background:rgba(255,255,255,.1)}.iconbtn svg{width:20px;height:20px}

.top{position:sticky;top:0;z-index:30;height:var(--top);display:flex;align-items:center;gap:12px;padding:0 22px;background:rgba(247,244,236,.92);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.has-nav .top,.has-nav .main{margin-left:var(--side)}
.top .menu{display:none;color:var(--board)}
.top .menu:hover{background:var(--line)}
.search{flex:1;max-width:460px;position:relative}
.search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted)}
.search input{width:100%;height:40px;border:1px solid var(--line);background:#fff;border-radius:20px;padding:0 14px 0 38px;outline:0}
.search input:focus{border-color:var(--ink);box-shadow:0 0 0 3px var(--ink-soft)}
.top .today{margin-left:auto;color:var(--muted);font-size:.9rem;white-space:nowrap}
.top .owner-back{margin-left:8px}
.main{min-height:calc(100vh - var(--top))}
.wrap{max-width:1180px;margin:0 auto;padding:22px 22px 40px}
.scrim{display:none}
.tabbar{display:none}

@media (max-width:991.98px){
  :root{--tab:64px}
  .has-nav .top,.has-nav .main{margin-left:0}
  .side{transform:translateX(-105%);transition:transform .22s ease;width:280px}
  body.nav-open .side{transform:none}
  body.nav-open .scrim{display:block;position:fixed;inset:0;background:rgba(10,25,20,.45);z-index:35}
  .top{padding:0 12px}.top .menu{display:grid}.top .today{display:none}
  .wrap{padding:16px 14px calc(30px + var(--tab))}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;height:var(--tab);background:var(--board);z-index:30;padding-bottom:env(safe-area-inset-bottom);
    border-top:3px solid var(--pencil)}
  .tabbar a,.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--chalk2);font-size:.72rem;
    text-decoration:none;background:none;border:0;cursor:pointer;padding:0}
  .tabbar svg{width:22px;height:22px}
  .tabbar .on{color:var(--pencil)}
}
@media print{.side,.top,.tabbar,.noprint,.scrim{display:none!important}.has-nav .main{margin:0}.wrap{padding:0;max-width:none}body{background:#fff}.card{box-shadow:none;border:1px solid #ccc}}

/* ---------------------------------------------------------------- components */
.card{background:var(--card);border:1px solid #ece6d8;border-radius:var(--r);box-shadow:var(--sh);position:relative;min-width:0;word-wrap:break-word}
.card-body{padding:1rem}
.card>.table-responsive:first-child,.card>.table-responsive:first-child table{border-top-left-radius:var(--r);border-top-right-radius:var(--r)}
.stat{font-family:var(--head);font-size:30px;font-weight:800;line-height:1;color:var(--board)}
.muted,.text-muted{color:var(--muted)!important}
.small,small{font-size:.86rem}
.pre{white-space:pre-wrap}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:600;line-height:1.3;padding:.5rem 1rem;border-radius:var(--r-sm);
  border:1.5px solid transparent;cursor:pointer;text-decoration:none!important;transition:transform .05s,background .15s,box-shadow .15s;user-select:none;
  font-size:.97rem;background:transparent;color:var(--text);white-space:normal;text-align:center;vertical-align:middle}
.btn:active{transform:translateY(1px)}
.btn:focus-visible{outline:0;box-shadow:0 0 0 3px var(--ink-soft)}
.btn:disabled,.btn.disabled{opacity:.55;pointer-events:none}
.btn-sm{padding:.25rem .6rem;font-size:.86rem;border-radius:8px}
.btn-lg{padding:.75rem 1.3rem;font-size:1.08rem;border-radius:12px}
.btn-primary{background:var(--ink);color:#fff;box-shadow:0 2px 0 var(--ink2)}.btn-primary:hover{background:var(--ink2)}
.btn-success{background:var(--leaf);color:#fff;box-shadow:0 2px 0 #147548}.btn-success:hover{background:#17844f}
.btn-danger{background:var(--apple);color:#fff;box-shadow:0 2px 0 #a8312a}.btn-danger:hover{background:#bd372f}
.btn-warning{background:var(--pencil);color:#2b2104;box-shadow:0 2px 0 #c98f00}.btn-warning:hover{background:#e9a800}
.btn-dark{background:var(--board);color:#fff}.btn-dark:hover{background:var(--board2)}
.btn-light{background:#fff;color:var(--board);border-color:var(--line)}.btn-light:hover{background:var(--paper)}
.btn-link{color:var(--ink);padding-left:.4rem;padding-right:.4rem}.btn-link:hover{text-decoration:underline!important}
.btn-outline-primary{border-color:#b8c4ec;color:var(--ink);background:#fff}.btn-outline-primary:hover{background:var(--ink-soft);border-color:var(--ink)}
.btn-outline-secondary{border-color:var(--line);color:#45504a;background:#fff}.btn-outline-secondary:hover{background:var(--paper);border-color:#cfc6b3}
.btn-outline-success{border-color:#9fd8bb;color:#13784a;background:#fff}.btn-outline-success:hover{background:var(--leaf-soft);border-color:var(--leaf)}
.btn-outline-danger{border-color:#f0b5b1;color:#b3302a;background:#fff}.btn-outline-danger:hover{background:var(--apple-soft);border-color:var(--apple)}
.btn-outline-dark{border-color:#cfd5d1;color:var(--board);background:#fff}.btn-outline-dark:hover{background:#eef2ef;border-color:var(--board)}
.btn-outline-light{border-color:rgba(255,255,255,.5);color:#fff}.btn-outline-light:hover{background:rgba(255,255,255,.12)}
.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}
.btn-check+.btn{margin:0 1px}
.btn-check:checked+.btn-outline-success{background:var(--leaf);border-color:var(--leaf);color:#fff}
.btn-check:checked+.btn-outline-danger{background:var(--apple);border-color:var(--apple);color:#fff}
.btn-check:checked+.btn-outline-secondary{background:#6b7468;border-color:#6b7468;color:#fff}
.btn-check:focus-visible+.btn{box-shadow:0 0 0 3px var(--ink-soft)}

.badge{display:inline-block;padding:.22em .6em;font-size:.76em;font-weight:700;line-height:1.2;border-radius:20px;color:#fff;background:#6b7468;vertical-align:.1em;white-space:nowrap}
.bg-primary{background:var(--ink)!important;color:#fff}.bg-success{background:var(--leaf)!important;color:#fff}.bg-danger{background:var(--apple)!important;color:#fff}
.bg-warning{background:var(--pencil)!important;color:#2b2104}.bg-info{background:#bfe3f8!important;color:#0c4a6e}.bg-secondary{background:#8a9089!important;color:#fff}
.bg-light{background:#f1eee6!important;color:var(--text)}.bg-white{background:#fff!important}
.text-dark{color:var(--text)!important}

.alert{position:relative;padding:.75rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-left-width:5px;border-radius:var(--r-sm);background:#fff}
.alert-success{background:var(--leaf-soft);border-color:#bfe6d1;border-left-color:var(--leaf);color:#0f5a37}
.alert-danger{background:var(--apple-soft);border-color:#f6c8c4;border-left-color:var(--apple);color:#8a221c}
.alert-warning{background:var(--sun-soft);border-color:#f7dfaa;border-left-color:var(--pencil);color:#6b4a00}
.alert-info{background:var(--ink-soft);border-color:#ccd6f5;border-left-color:var(--ink);color:#1b2f74}

.form-control,.form-select{display:block;width:100%;padding:.5rem .75rem;font-size:1rem;line-height:1.45;background:#fff;border:1.5px solid #ddd6c6;border-radius:var(--r-sm);
  appearance:none;-webkit-appearance:none;transition:border-color .15s,box-shadow .15s;min-height:42px}
.form-control:focus,.form-select:focus{border-color:var(--ink);outline:0;box-shadow:0 0 0 3px var(--ink-soft)}
.form-control::placeholder{color:#9a9f97}
textarea.form-control{min-height:auto}
.form-select{padding-right:2.2rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23163a2e' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-repeat:no-repeat;background-position:right .7rem center;background-size:14px 11px}
.form-control-sm,.form-select-sm{min-height:34px;padding:.25rem .55rem;font-size:.9rem;border-radius:8px}
.form-select-sm{padding-right:1.8rem}
.form-control-lg{min-height:50px;font-size:1.15rem;padding:.6rem .9rem}
.form-label{margin-bottom:.3rem;font-weight:600}
.form-check{display:block;min-height:1.5rem;padding-left:1.7em;margin-bottom:.2rem}
.form-check .form-check-input{float:left;margin-left:-1.7em}
.form-check-inline{display:inline-block;margin-right:1rem}
.form-check-input{width:1.15em;height:1.15em;margin-top:.22em;accent-color:var(--leaf);cursor:pointer}
.form-check-label{cursor:pointer}
.input-group{display:flex;width:100%}.input-group>.form-control{flex:1;border-top-right-radius:0;border-bottom-right-radius:0}
.input-group>.btn{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}
.input-group-sm>.form-control{min-height:34px;font-size:.9rem;padding:.25rem .55rem}

.table{width:100%;margin-bottom:0;vertical-align:top;color:var(--text)}
.table th,.table td{padding:.6rem .7rem;border-bottom:1px solid #efe9dc;text-align:inherit}
.table thead th{background:#faf7f0;color:#4c5a51;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;border-bottom:2px solid var(--line);white-space:nowrap}
.table tbody tr:hover>*{background:#fcfaf5}
.table tbody tr:last-child>*{border-bottom:0}
.table-sm th,.table-sm td{padding:.4rem .55rem}
.table-bordered th,.table-bordered td{border:1px solid #e6e0d2}
.table-danger>*,.table tbody tr.table-danger:hover>*{background:#fdeceb!important}
.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}
.align-middle,.align-middle td,.align-middle th{vertical-align:middle!important}

/* ---------------------------------------------------------------- grid */
.container,.container-fluid{width:100%;margin:0 auto;padding:0 12px}
.row{--gx:1.5rem;--gy:0;display:flex;flex-wrap:wrap;margin-top:calc(-1*var(--gy));margin-right:calc(-.5*var(--gx));margin-left:calc(-.5*var(--gx))}
.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--gx)*.5);padding-left:calc(var(--gx)*.5);margin-top:var(--gy)}
.g-2{--gx:.5rem;--gy:.5rem}.g-3{--gx:1rem;--gy:1rem}
.col{flex:1 0 0%}.col-auto{flex:0 0 auto;width:auto}
.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.3333%}.col-6{flex:0 0 auto;width:50%}.col-8{flex:0 0 auto;width:66.6667%}.col-12{flex:0 0 auto;width:100%}
@media (min-width:768px){
  .col-md-1{flex:0 0 auto;width:8.3333%}.col-md-2{flex:0 0 auto;width:16.6667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.3333%}
  .col-md-5{flex:0 0 auto;width:41.6667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.3333%}.col-md-12{flex:0 0 auto;width:100%}
}
@media (min-width:992px){
  .col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.3333%}.col-lg-5{flex:0 0 auto;width:41.6667%}.col-lg-6{flex:0 0 auto;width:50%}
  .col-lg-7{flex:0 0 auto;width:58.3333%}.col-lg-8{flex:0 0 auto;width:66.6667%}
}

/* ---------------------------------------------------------------- utilities */
.d-flex{display:flex!important}.d-inline{display:inline!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}
.flex-wrap{flex-wrap:wrap!important}.flex-grow-1{flex-grow:1!important}
.justify-content-between{justify-content:space-between!important}.justify-content-center{justify-content:center!important}
.align-items-center{align-items:center!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}
.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}
.m-0{margin:0!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}
.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}
.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}
.ms-2{margin-left:.5rem!important}.ms-auto{margin-left:auto!important}.me-auto{margin-right:auto!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}
.p-0{padding:0!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}
.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}
.pb-0{padding-bottom:0!important}.pt-2{padding-top:.5rem!important}.ps-3{padding-left:1rem!important}.ps-5{padding-left:3rem!important}
.w-100{width:100%!important}.w-auto{width:auto!important}.h-100{height:100%!important}
.text-center{text-align:center!important}.text-end{text-align:right!important}.text-nowrap{white-space:nowrap!important}
.text-success{color:#15824f!important}.text-danger{color:var(--apple)!important}.text-white{color:#fff!important}.text-warning-emphasis{color:#9a6700!important}
.text-reset{color:inherit!important}.text-decoration-none{text-decoration:none!important}.text-decoration-line-through{text-decoration:line-through!important}
.fw-bold{font-weight:700!important}.fs-3{font-size:1.65rem!important}.fs-4{font-size:1.4rem!important}.fs-5{font-size:1.2rem!important}.fs-6{font-size:1rem!important}
.rounded{border-radius:var(--r-sm)!important}.border{border:1px solid var(--line)!important}.border-top{border-top:1px solid #efe9dc!important}
.border-bottom{border-bottom:1px solid #efe9dc!important}.border-success{border-color:var(--leaf)!important}.border-danger{border-color:var(--apple)!important}
.float-end{float:right!important}.position-sticky{position:sticky!important}.bottom-0{bottom:var(--tab)!important}

/* ---------------------------------------------------------------- dashboard */
.hero{position:relative;overflow:hidden;border-radius:18px;background:var(--board);color:var(--chalk);padding:22px 24px;margin-bottom:18px;
  border:6px solid #7a5532;box-shadow:inset 0 0 0 1px rgba(0,0,0,.25),var(--sh);
  background-image:radial-gradient(ellipse at 15% 10%,rgba(255,255,255,.08),transparent 55%),radial-gradient(ellipse at 90% 100%,rgba(255,255,255,.05),transparent 50%)}
.hero h3{color:#fff;font-size:1.7rem;margin:0}
.hero .sub{color:var(--chalk2);margin-top:2px}
.hero .chalk-line{height:3px;width:90px;background:var(--pencil);border-radius:3px;margin:10px 0 0}
.hero .acts{display:flex;gap:8px;flex-wrap:wrap}
.hero .doodle{position:absolute;right:18px;top:12px;opacity:.13;width:150px;height:150px;color:#fff;pointer-events:none}
.ai{border-radius:var(--r);background:#fff;border:1px solid #ece6d8;box-shadow:var(--sh);padding:14px 16px;margin-bottom:18px}
.ai-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.ai-h .spark{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--pencil),#ff8f3a);display:grid;place-items:center;color:#3a2600}
.ai-h .spark svg{width:18px;height:18px}
.ai-h b{font-family:var(--head);font-size:1.08rem;color:var(--board)}
.tip{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:11px;margin-top:6px;border:1px solid transparent}
.tip .ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:0 0 auto}
.tip .ic svg{width:19px;height:19px}
.tip .tx{flex:1;min-width:0;line-height:1.3}.tip .tx small{display:block;color:var(--muted)}
.tip.red{background:var(--apple-soft);border-color:#f6d0cc}.tip.red .ic{background:var(--apple);color:#fff}
.tip.amber{background:var(--sun-soft);border-color:#f6e2b6}.tip.amber .ic{background:var(--pencil);color:#3a2600}
.tip.blue{background:var(--ink-soft);border-color:#d3dbf6}.tip.blue .ic{background:var(--ink);color:#fff}
.tip.green{background:var(--leaf-soft);border-color:#c7ead7}.tip.green .ic{background:var(--leaf);color:#fff}
.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:18px}
.kpi{background:#fff;border:1px solid #ece6d8;border-radius:var(--r);box-shadow:var(--sh);padding:14px;display:flex;gap:12px;align-items:center;color:inherit!important;text-decoration:none!important}
.kpi .ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto}.kpi .ic svg{width:22px;height:22px}
.kpi .v{font-family:var(--head);font-weight:800;font-size:1.45rem;line-height:1;color:var(--board)}.kpi .l{font-size:.8rem;color:var(--muted);line-height:1.2;margin-top:3px}
.mods{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.mod{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid #ece6d8;border-radius:var(--r);padding:14px;box-shadow:var(--sh);color:inherit!important;
  text-decoration:none!important;position:relative;overflow:hidden;transition:transform .12s,box-shadow .12s}
.mod::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--c)}
.mod:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(22,58,46,.12)}
.mod .ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--cs);color:var(--c)}.mod .ic svg{width:24px;height:24px}
.mod b{font-family:var(--head);font-size:1.12rem;color:var(--board);line-height:1.1}.mod b small{font-family:var(--body);font-weight:500;color:var(--muted);font-size:.78rem;margin-left:4px}
.mod p{margin:0;font-size:.86rem;color:#59635d;line-height:1.35}
.mod .go{margin-top:auto;font-size:.84rem;font-weight:700;color:var(--c)}
.c-green{--c:var(--leaf);--cs:var(--leaf-soft)}.c-amber{--c:#c98400;--cs:var(--sun-soft)}.c-blue{--c:var(--ink);--cs:var(--ink-soft)}.c-plum{--c:var(--plum);--cs:var(--plum-soft)}
.c-red{--c:var(--apple);--cs:var(--apple-soft)}.c-teal{--c:var(--teal);--cs:var(--teal-soft)}.c-sky{--c:var(--sky);--cs:var(--sky-soft)}.c-coral{--c:var(--coral);--cs:var(--coral-soft)}
.kpi .ic,.tile-ic{background:var(--cs);color:var(--c)}
.panel-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.panel-h h6{margin:0}
.listrow{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px 0;border-top:1px dashed #e8e1d1}
.sec-title{font-family:var(--head);font-size:1.05rem;color:var(--board);margin:4px 0 10px;display:flex;align-items:center;gap:8px}
.sec-title::after{content:"";flex:1;height:1px;background:var(--line)}
@media (max-width:1100px){.kpis{grid-template-columns:repeat(3,1fr)}.mods{grid-template-columns:repeat(3,1fr)}}
@media (max-width:700px){.kpis{grid-template-columns:repeat(2,1fr)}.mods{grid-template-columns:repeat(2,1fr)}.hero{padding:16px}.hero h3{font-size:1.35rem}.hero .doodle{display:none}
  .mod p{display:none}.kpi{padding:10px}.kpi .ic{width:36px;height:36px}}

/* ---------------------------------------------------------------- login */
.auth{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.auth-board{background:var(--board);color:var(--chalk);padding:44px 48px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;
  border-right:10px solid #7a5532;background-image:radial-gradient(ellipse at 20% 10%,rgba(255,255,255,.08),transparent 55%),repeating-linear-gradient(135deg,rgba(255,255,255,.014) 0 2px,transparent 2px 7px)}
.auth-board h1{color:#fff;font-size:2.6rem;margin:14px 0 4px}.auth-board h1 span{color:var(--pencil)}
.auth-board .lead{color:var(--chalk2);font-size:1.12rem;max-width:460px}
.feat{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin-top:22px;max-width:520px}
.feat div{display:flex;gap:10px;align-items:center;color:var(--chalk)}.feat svg{width:22px;height:22px;color:var(--pencil);flex:0 0 auto}
.chalk-tray{position:absolute;left:0;right:0;bottom:0;height:12px;background:#6b4a2b}
.auth-form{display:flex;align-items:center;justify-content:center;padding:30px 20px;background:var(--paper);
  background-image:repeating-linear-gradient(transparent 0 31px,#e3ddcf 31px 32px);background-position:0 12px}
.auth-card{width:100%;max-width:400px;background:#fff;border-radius:18px;padding:28px;box-shadow:0 20px 50px rgba(22,58,46,.16);border:1px solid #ece6d8;position:relative}
.auth-card::before{content:"";position:absolute;left:28px;top:0;bottom:0;width:2px;background:#f2b9b4;opacity:.7;display:none}
@media (max-width:860px){.auth{grid-template-columns:1fr}.auth-board{padding:26px 22px 34px;border-right:0;border-bottom:8px solid #7a5532}.auth-board h1{font-size:2rem}
  .feat{grid-template-columns:1fr 1fr;font-size:.92rem}.chalk-tray{display:none}}

/* ---------------------------------------------------------------- public pay page header */
.pubbar{background:var(--board);color:#fff;padding:12px 16px;display:flex;align-items:center;gap:10px;border-bottom:4px solid var(--pencil)}
.pubbar .logo{width:32px;height:32px;border-radius:9px;background:var(--pencil);display:grid;place-items:center}.pubbar .logo svg{width:20px;height:20px;color:var(--board)}
.pubbar b{font-family:var(--head)}
@media (max-width:700px){.tip{flex-wrap:wrap;align-items:flex-start}.tip .tx{flex-basis:calc(100% - 50px)}.tip .btn{margin-left:46px}.ai-h .muted{display:none}}
.auth-board .brand small{max-width:none}


/* =====================================================================================================
   AI THEME v6 - deep indigo navigation, violet→pink gradients, soft glass surfaces
   ===================================================================================================== */
:root{--board:#17123a;--board2:#221a52;--chalk:#f4f2ff;--chalk2:#b7b0e3;--ink:#5b3df5;--ink2:#4a2fe0;--ink-soft:#ece8ff;
  --paper:#f6f5fb;--line:#e8e5f5;--text:#1d1b3a;--muted:#6b6a85;--r:18px;--r-sm:12px;
  --grad:linear-gradient(135deg,#5b3df5 0%,#8b5cf6 48%,#ec4899 100%);--grad2:linear-gradient(135deg,#6366f1,#8b5cf6);
  --sh:0 1px 2px rgba(40,30,120,.05),0 8px 28px rgba(40,30,120,.08);
  --leaf:#10b981;--leaf-soft:#e7f8f1;--apple:#ef4444;--apple-soft:#fdecec;--sky:#0ea5e9;--plum:#8b5cf6;--teal:#14b8a6;--coral:#f97316}
body{background:#f6f5fb;background-image:radial-gradient(900px 500px at 100% -10%,rgba(139,92,246,.10),transparent 60%),radial-gradient(700px 420px at -10% 110%,rgba(236,72,153,.07),transparent 60%);background-attachment:fixed}
::selection{background:#ddd3ff}
h1,h2,h3,h4,h5,h6{color:#1d1b3a;letter-spacing:-.01em}
a{color:var(--ink)}
.side{background:linear-gradient(185deg,#1d1650 0%,#140f36 60%,#100c2c 100%);border-right:0;box-shadow:6px 0 30px rgba(20,15,60,.12)}
.side::after{content:"";position:absolute;left:-60px;top:-60px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(139,92,246,.35),transparent 70%);pointer-events:none}
.brand{position:relative;z-index:1}
.brand .logo{background:var(--grad);box-shadow:0 8px 20px rgba(139,92,246,.45)}
.brand .logo svg{color:#fff}
.brand b::after{content:" AI";display:none}
.grp{color:#8f88c7}
.nav-i{position:relative;z-index:1;transition:background .15s}
.nav-i small{color:#9d97cf}
.nav-i:hover{background:rgba(255,255,255,.06)}
.nav-i.on{background:linear-gradient(90deg,rgba(139,92,246,.38),rgba(236,72,153,.14));box-shadow:inset 0 0 0 1px rgba(167,139,250,.25)}
.nav-i.on::before{background:linear-gradient(#a78bfa,#ec4899);width:4px}
.nav-i.on svg{color:#fff}
.nav-i .cnt{background:#ec4899;color:#fff}
.avatar{background:var(--grad);color:#fff}
.side-foot{position:relative;z-index:1}
.top{background:rgba(246,245,251,.78);border-bottom:1px solid rgba(232,229,245,.9)}
.search input{border-color:#e6e2f7;border-radius:14px;box-shadow:0 1px 2px rgba(40,30,120,.04)}
.card{border:1px solid #eeebfa;border-radius:var(--r)}
.btn-primary{background:linear-gradient(135deg,#5b3df5,#8b5cf6);box-shadow:0 6px 16px rgba(91,61,245,.28);border:0}
.btn-primary:hover{background:linear-gradient(135deg,#4a2fe0,#7c4ef0)}
.btn-success{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 6px 16px rgba(16,185,129,.25);border:0}
.btn-danger{background:linear-gradient(135deg,#ef4444,#e11d48);box-shadow:0 6px 16px rgba(239,68,68,.22);border:0}
.btn-warning{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#3b2400;box-shadow:0 6px 16px rgba(245,158,11,.25);border:0}
.btn-dark{background:#1d1650}
.btn-outline-primary{border-color:#d9d0ff}
.form-control,.form-select{border-color:#e3def5;border-radius:12px}
.table thead th{background:#faf9ff;color:#5b5a78;border-bottom-color:#ece9fb}
.table th,.table td{border-bottom-color:#f1eefb}
.badge.bg-primary,.bg-primary{background:linear-gradient(135deg,#5b3df5,#8b5cf6)!important}
.alert-info{background:#f1edff;border-color:#e0d8ff;border-left-color:#8b5cf6;color:#3b2a8f}
.stat{color:#1d1b3a}
.hero{background:var(--grad);border:0;border-radius:24px;box-shadow:0 20px 44px rgba(91,61,245,.28);color:#fff;
  background-image:radial-gradient(circle at 88% 12%,rgba(255,255,255,.22) 0,rgba(255,255,255,.22) 70px,transparent 71px),radial-gradient(circle at 96% 90%,rgba(255,255,255,.12) 0,rgba(255,255,255,.12) 110px,transparent 111px),var(--grad)}
.hero h3,.hero .sub{color:#fff}.hero .sub{opacity:.88}
.hero .chalk-line{background:rgba(255,255,255,.7)}
.hero .btn-light{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(6px)}
.hero .btn-light:hover{background:rgba(255,255,255,.28)}
.hero .btn-warning{background:#fff;color:#5b3df5;box-shadow:0 8px 20px rgba(30,10,90,.25)}
.ai{border:1.5px solid transparent;background:linear-gradient(#fff,#fff) padding-box,var(--grad) border-box;border-radius:20px}
.ai-h .spark{background:var(--grad);color:#fff;box-shadow:0 6px 14px rgba(139,92,246,.35);animation:pulse 2.6s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.ai-h b{color:#1d1b3a}
.tip{border-radius:14px}
.tip.blue{background:#f1edff;border-color:#e0d8ff}.tip.blue .ic{background:linear-gradient(135deg,#5b3df5,#8b5cf6)}
.tip.red .ic{background:linear-gradient(135deg,#ef4444,#ec4899)}.tip.amber .ic{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.tip.green .ic{background:linear-gradient(135deg,#10b981,#34d399)}
.kpi,.mod{border-color:#eeebfa;border-radius:18px}
.c-green{--c:#10b981;--c2:#34d399;--cs:#e7f8f1}.c-amber{--c:#f59e0b;--c2:#fbbf24;--cs:#fff4dc}.c-blue{--c:#5b3df5;--c2:#8b5cf6;--cs:#efeaff}
.c-plum{--c:#a855f7;--c2:#d946ef;--cs:#f6e9ff}.c-red{--c:#ef4444;--c2:#ec4899;--cs:#fdecec}.c-teal{--c:#14b8a6;--c2:#22d3ee;--cs:#e0f7f5}
.c-sky{--c:#0ea5e9;--c2:#6366f1;--cs:#e0f2fe}.c-coral{--c:#f97316;--c2:#fb7185;--cs:#ffedd5}
.kpi .ic,.mod .ic{background:linear-gradient(135deg,var(--c),var(--c2));color:#fff;box-shadow:0 8px 18px -6px var(--c)}
.mod::after{height:0}
.mod:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(60,40,160,.14)}
.mod .go{color:var(--c)}
.sec-title{color:#1d1b3a}
.tabbar{background:rgba(255,255,255,.96);border-top:1px solid var(--line);box-shadow:0 -6px 24px rgba(40,30,120,.08);backdrop-filter:blur(10px)}
.tabbar a,.tabbar button{color:#6b6a85}
.tabbar .on{color:#5b3df5}
.tabbar .on svg{filter:drop-shadow(0 4px 8px rgba(91,61,245,.35))}
.auth-board{background:var(--grad);border-right:0;background-image:radial-gradient(circle at 85% 15%,rgba(255,255,255,.18) 0,rgba(255,255,255,.18) 120px,transparent 121px),radial-gradient(circle at 10% 95%,rgba(255,255,255,.10) 0,rgba(255,255,255,.10) 160px,transparent 161px),var(--grad)}
.auth-board h1 span{color:#fde68a}
.auth-board .lead{color:rgba(255,255,255,.9)}
.feat div{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:8px 10px;backdrop-filter:blur(6px)}
.feat svg{color:#fff}
.chalk-tray{display:none}
.auth-form{background:#f6f5fb;background-image:radial-gradient(rgba(91,61,245,.12) 1px,transparent 1px);background-size:18px 18px}
.auth-card{border-radius:24px;box-shadow:0 24px 60px rgba(60,40,160,.18)}
.pubbar{background:var(--grad);border-bottom:0}
.pubbar .logo{background:rgba(255,255,255,.2)}.pubbar .logo svg{color:#fff}
@media (max-width:991.98px){.tabbar{border-top:1px solid var(--line)}}
@media (max-width:860px){.auth-board{border-bottom:0}}

.kpis{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}

/* language switch */
.langsw{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:#f1eefc;border:1px solid #e3def5;flex:0 0 auto}
.langsw a{padding:4px 10px;border-radius:999px;font-size:.8rem;font-weight:600;color:#5b5880;text-decoration:none;white-space:nowrap}
.langsw a.on{background:var(--grad,#5b3df5);color:#fff;box-shadow:0 2px 8px rgba(91,61,245,.3)}
.top .langsw{margin-left:10px}
@media (max-width:991px){.top .langsw{margin-left:auto}.top .langsw a{padding:4px 7px;font-size:.75rem}}

.date-words{font-size:.78rem;color:#5b3df5;font-weight:600;margin-top:2px;white-space:nowrap}
.d-flex>.date-words{align-self:center;margin:0 4px}
/* wide tables on phones: soft shadow shows there is more to scroll */
@media (max-width:767px){.table-responsive{background:linear-gradient(90deg,#fff 30%,rgba(255,255,255,0)) left/40px 100% no-repeat local,linear-gradient(270deg,#fff 30%,rgba(255,255,255,0)) right/40px 100% no-repeat local,radial-gradient(farthest-side at 0 50%,rgba(60,40,140,.18),transparent) left/14px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,rgba(60,40,140,.18),transparent) right/14px 100% no-repeat scroll}
.table-responsive table{min-width:560px}}

/* =====================================================================================================
   AI THEME v15 - light & airy "digital AI": pale mesh background, light glass sidebar,
   indigo → violet → cyan accent (the colours of AI products), soft glow on active items
   ===================================================================================================== */
:root{--grad:linear-gradient(120deg,#4f46e5 0%,#7c3aed 45%,#06b6d4 100%);--grad2:linear-gradient(120deg,#6366f1,#22d3ee);
  --ink:#5b4bf0;--ink2:#4338ca;--ink-soft:#eef0ff;--paper:#f7f8fe;--line:#e7e9f7;--text:#1b1d3a;--muted:#6a6f8f;
  --glow:0 10px 30px -10px rgba(79,70,229,.45);--sh:0 1px 2px rgba(30,40,120,.04),0 10px 30px rgba(30,40,120,.06)}
body{background:#f7f8fe;background-image:
  radial-gradient(800px 480px at 105% -8%,rgba(34,211,238,.13),transparent 62%),
  radial-gradient(760px 460px at -8% 108%,rgba(124,58,237,.10),transparent 62%),
  radial-gradient(rgba(79,70,229,.07) 1px,transparent 1px);
  background-size:auto,auto,22px 22px;background-attachment:fixed}
::selection{background:#c7d2fe}
/* sidebar: light frosted glass */
.side{background:rgba(255,255,255,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:#2a2d4f;border-right:1px solid #e9eaf8;box-shadow:4px 0 24px rgba(30,40,120,.05)}
.side::after{left:auto;right:-80px;top:-80px;width:260px;height:260px;background:radial-gradient(circle,rgba(34,211,238,.18),transparent 70%)}
.side::before{content:"";position:absolute;left:-90px;bottom:40px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(124,58,237,.12),transparent 70%);pointer-events:none}
.brand{color:#1b1d3a!important}.brand small{color:#7a7f9e}
.brand .logo{background:var(--grad);box-shadow:var(--glow)}
.grp{color:#9aa0c0;letter-spacing:.08em}
.nav-i{color:#33365a!important}
.nav-i svg{color:#6b6fd8}
.nav-i small{color:#8c90ae}
.nav-i:hover{background:#f1f2ff}
.nav-i.on{background:var(--grad);box-shadow:var(--glow)}
.nav-i.on::before{display:none}
.nav-i.on,.nav-i.on b{color:#fff!important}.nav-i.on small{color:rgba(255,255,255,.85)}.nav-i.on svg{color:#fff}
.nav-i .cnt{background:linear-gradient(135deg,#f43f5e,#ec4899)}
.side-foot{border-top:1px solid #eceefa}
.side-foot .who a,.side-foot .who{color:#1b1d3a!important}.side-foot .who small{color:#7a7f9e}
.side-foot svg,.side-foot a{color:#5b4bf0}
.side nav::-webkit-scrollbar{width:6px}.side nav::-webkit-scrollbar-thumb{background:#dfe1f5;border-radius:6px}
/* top bar & surfaces */
.top{background:rgba(247,248,254,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(231,233,247,.9)}
.top .menu{color:#1b1d3a}
.card,.kpi,.mod{background:rgba(255,255,255,.92);border:1px solid #eceefb;box-shadow:var(--sh)}
.card:hover{box-shadow:0 1px 2px rgba(30,40,120,.04),0 14px 36px rgba(30,40,120,.08)}
.mod:hover{transform:translateY(-3px);box-shadow:0 18px 40px -12px rgba(79,70,229,.30)}
h1,h2,h3,h4,h5,h6,.stat,.kpi .v,.mod b,.sec-title,.ai-h b{color:#1b1d3a}
/* buttons & inputs */
.btn-primary{background:var(--grad);box-shadow:var(--glow);border:0}
.btn-primary:hover{background:linear-gradient(120deg,#4338ca,#6d28d9 45%,#0891b2)}
.btn-outline-primary{border-color:#cfd3ff;color:#4f46e5}.btn-outline-primary:hover{background:#eef0ff;border-color:#a5b4fc}
.form-control,.form-select{border-color:#e2e5f6;background-color:#fff}
.form-control:focus,.form-select:focus{border-color:#a5b4fc;box-shadow:0 0 0 4px rgba(99,102,241,.14)}
.badge.bg-primary,.bg-primary{background:var(--grad)!important}
.table thead th{background:#f8f9ff;color:#5c6185}
.alert-info{background:#eef6ff;border-color:#d6e8ff;border-left-color:#22d3ee;color:#1e3a8a}
a{color:#4f46e5}
/* hero, AI panel, login */
.hero{background-image:radial-gradient(circle at 88% 12%,rgba(255,255,255,.22) 0,rgba(255,255,255,.22) 70px,transparent 71px),radial-gradient(circle at 96% 90%,rgba(255,255,255,.12) 0,rgba(255,255,255,.12) 110px,transparent 111px),var(--grad);box-shadow:0 22px 48px -14px rgba(79,70,229,.45)}
.hero .btn-warning{color:#4f46e5}
.ai{background:linear-gradient(#fff,#fff) padding-box,var(--grad) border-box}
.ai-h .spark{background:var(--grad);box-shadow:var(--glow)}
.tip.blue{background:#eef2ff;border-color:#dfe4ff}.tip.blue .ic{background:var(--grad2)}
.c-blue{--c:#4f46e5;--c2:#06b6d4;--cs:#eef0ff}.c-plum{--c:#7c3aed;--c2:#c026d3;--cs:#f5ecff}
.auth-board{background-image:radial-gradient(circle at 85% 15%,rgba(255,255,255,.18) 0,rgba(255,255,255,.18) 120px,transparent 121px),radial-gradient(circle at 10% 95%,rgba(255,255,255,.10) 0,rgba(255,255,255,.10) 160px,transparent 161px),var(--grad)}
.auth-form{background:#f7f8fe;background-image:radial-gradient(rgba(79,70,229,.12) 1px,transparent 1px)}
.pubbar{background:var(--grad)}
.langsw{background:#f1f2ff;border-color:#e2e5f6}.langsw a.on{background:var(--grad);box-shadow:0 2px 10px rgba(79,70,229,.35)}
.date-words{color:#4f46e5}
.tabbar .on{color:#4f46e5}
@media (max-width:991.98px){.side{background:rgba(255,255,255,.97)}}
.side .brand b{color:#1b1d3a}
.auth-board .brand b{color:#fff}.auth-board .brand small{color:rgba(255,255,255,.82)}

/* owner sidebar: Chhatrapati Shivaji Maharaj + bhagwa */
.ohero{position:relative;z-index:1;display:flex;align-items:center;gap:10px;margin:0 12px 10px;padding:8px 10px;border-radius:16px;
 background:linear-gradient(120deg,rgba(255,153,51,.16),rgba(255,94,0,.07));border:1px solid rgba(255,122,0,.28)}
.ohero-pic{width:50px;height:50px;border-radius:50%;flex:0 0 auto;padding:2px;background:linear-gradient(135deg,#ffb347,#ff5e00);display:block;text-decoration:none!important}
.ohero-pic img,.ohero-pic span{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:top;display:grid;place-items:center;background:#fff4e8;font-size:20px}
.ohero-t{flex:1;min-width:0;line-height:1.15}.ohero-t b{display:block;color:#c2410c;font-size:.95rem}.ohero-t small{display:block;color:#ea580c;font-weight:700;font-size:.8rem}
.bhagwa{width:26px;height:36px;flex:0 0 auto}.bhagwa .flap{transform-origin:6px 22px;animation:flap 2.6s ease-in-out infinite}
@keyframes flap{0%,100%{transform:skewY(0) scaleX(1)}50%{transform:skewY(-4deg) scaleX(.93)}}
@media (prefers-reduced-motion:reduce){.bhagwa .flap{animation:none}}

/* maker credit (brand) */
.made-by{position:relative;z-index:1;margin:6px 12px 8px;padding:7px 10px;border-radius:12px;font-size:.76rem;color:#6b6890;background:rgba(124,58,237,.06);text-align:center}
.made-by b{color:#4f46e5}.made-by a{color:#4f46e5;text-decoration:none}
.made-by-login{position:absolute;left:0;right:0;bottom:10px;text-align:center;font-size:.8rem;color:#8a87a8}.made-by-login b{color:#4f46e5}
.auth{position:relative}
.made-by-login{left:auto;right:0;width:47.6%;color:#6b6890;font-size:.85rem}
@media (max-width:860px){.made-by-login{position:static;width:auto;padding:14px 0 18px}}

/* school first: school name on top of the sidebar and a school headline on every page */
.side .sbrand{align-items:center}
.side .sbrand .logo{width:46px;height:46px;border-radius:14px;font-size:1.35rem;font-weight:800;color:#fff;overflow:hidden}
.side .sbrand .logo.has-img{background:#fff;box-shadow:0 2px 10px rgba(79,70,229,.18)}
.side .sbrand .logo img{width:100%;height:100%;object-fit:contain}
.side .sbrand b{font-size:1.02rem;line-height:1.2;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:168px}
.side .sbrand b::after{display:none}
.schoolbar{display:flex;align-items:center;gap:14px;margin:0;padding:14px 26px;background:linear-gradient(120deg,rgba(79,70,229,.10),rgba(124,58,237,.08) 45%,rgba(6,182,212,.08));border-bottom:1px solid rgba(124,58,237,.14)}
.schoolbar img{width:52px;height:52px;object-fit:contain;border-radius:12px;background:#fff;padding:3px;box-shadow:0 2px 10px rgba(79,70,229,.15)}
.schoolbar .sb-ic{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:26px;background:#fff;box-shadow:0 2px 10px rgba(79,70,229,.12)}
.schoolbar .sb-t{min-width:0;flex:1}
.schoolbar h1{margin:0;font-size:1.55rem;font-weight:800;line-height:1.15;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.schoolbar small{display:block;color:#6b6890;font-size:.85rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.schoolbar .sb-by{font-size:.72rem;color:#9a98b5;white-space:nowrap;align-self:flex-end}
@media (max-width:760px){.schoolbar{padding:10px 14px;gap:10px}.schoolbar h1{font-size:1.15rem}.schoolbar img,.schoolbar .sb-ic{width:40px;height:40px;font-size:20px}.schoolbar .sb-by{display:none}}
@media print{.schoolbar{display:none}}

/* sub-tabs inside a merged menu item (विद्यार्थी / संदेश / कर्मचारी) */
.subtabs{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;margin:0 0 16px;padding:5px;border-radius:16px;background:rgba(255,255,255,.7);border:1px solid rgba(124,58,237,.14);scrollbar-width:none}
.subtabs::-webkit-scrollbar{display:none}
.subtabs a{flex:0 0 auto;padding:8px 14px;border-radius:12px;color:#4b4f72;font-weight:600;font-size:.92rem;text-decoration:none;white-space:nowrap}
.subtabs a:hover{background:rgba(124,58,237,.07);color:#4f46e5}
.subtabs a.on{background:var(--grad);color:#fff;box-shadow:0 4px 14px rgba(79,70,229,.28)}
.subtabs .cnt{display:inline-block;min-width:18px;padding:0 6px;border-radius:9px;background:#ef4444;color:#fff;font-size:.72rem;line-height:18px;text-align:center;margin-left:2px}
.subtabs a.on .cnt{background:#fff;color:#4f46e5}
