
/* 1-3. TOKENS: color, type, space, radius, shadow, layout */
:root{--primary:#6B1236;--primary-dark:#4E0D29;--primary-50:#F8EEF2;--gold:#D4A017;--gold-light:#F4C037;--gold-50:#FBF4DC;--gold-d:#7A5A06;
--bg:#F8F9FC;--card:#fff;--text:#1E293B;--muted:#64748B;--line:#E2E8F0;
--ok:#15803D;--ok-bg:#E8F5EC;--warn:#B45309;--warn-bg:#FEF3C7;--err:#B91C1C;--err-bg:#FDECEC;--info:#1D4ED8;--info-bg:#E8EFFD;
--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--r:10px;--r-lg:14px;
--sh:0 1px 2px rgba(30,41,59,.06),0 2px 8px rgba(30,41,59,.05);--sh-lg:0 12px 32px rgba(30,41,59,.18);
--sw:260px;--th:60px;--bn:62px}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{font:400 15px/1.6 Poppins,'Hind Siliguri',sans-serif;background:var(--bg);color:var(--text)}
h2{font-size:1.4rem;font-weight:600;color:var(--primary-dark);line-height:1.3}
h3{font-size:1rem;font-weight:600;color:var(--primary-dark);margin:22px 0 8px}
.sub{color:var(--muted);font-size:.875rem;margin:2px 0 16px;max-width:70ch}
.i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
/* 4. SIDEBAR */
.sb{position:fixed;inset:0 auto 0 0;width:var(--sw);background:var(--primary-dark);color:#E9D5DE;display:flex;flex-direction:column;z-index:40;transition:transform .2s}
.brand{display:flex;gap:12px;align-items:center;padding:18px 16px;border-bottom:1px solid rgba(255,255,255,.12)}
.logo{width:46px;height:46px;border:1.5px dashed var(--gold);border-radius:8px;display:grid;place-items:center;font-size:9px;line-height:1.15;text-align:center;color:var(--gold-light);flex:none}
.brand b{display:block;color:#fff;font-size:1rem;line-height:1.3}.brand small{color:var(--gold-light);font-size:.72rem}
.nav{padding:12px 10px;overflow:auto;flex:1}
.nav a{display:flex;gap:12px;align-items:center;padding:10px 12px;margin-bottom:2px;border-radius:8px;border-left:3px solid transparent;color:inherit;text-decoration:none;font-size:.9rem}
.nav a:hover{background:rgba(255,255,255,.08)}
.nav a.on{background:rgba(212,160,23,.18);color:#fff;border-left-color:var(--gold)}
.ov{display:none;position:fixed;inset:0;background:rgba(30,41,59,.5);z-index:39}.ov.on{display:block}
/* 5. TOPBAR */
.top{position:sticky;top:0;z-index:30;height:var(--th);margin-left:var(--sw);background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 24px}
.top .sp{flex:1;font-weight:600;color:var(--primary-dark)}
.ham{display:none}
.av{width:36px;height:36px;border-radius:50%;background:var(--primary);color:var(--gold-light);display:grid;place-items:center;font-weight:600;font-size:.85rem;flex:none}
main{margin-left:var(--sw);padding:24px;max-width:1240px}
section{margin-bottom:44px}
/* 10. BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 18px;border-radius:8px;border:1px solid transparent;font:inherit;font-weight:500;font-size:.9rem;cursor:pointer;background:var(--primary);color:#fff;text-decoration:none}
.btn:hover{background:var(--primary-dark)}
.b-gold{background:var(--gold);color:#2B1B00}.b-gold:hover{background:var(--gold-light)}
.b-out{background:#fff;color:var(--primary);border-color:var(--primary)}.b-out:hover{background:var(--primary-50)}
.b-gh{background:transparent;color:var(--primary)}.b-gh:hover{background:var(--primary-50)}
.b-dn{background:var(--err)}.b-dn:hover{background:#991B1B}
.sm{min-height:32px;padding:0 12px;font-size:.8rem}.lg{min-height:48px;padding:0 26px;font-size:1rem}.ib{padding:0;width:40px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.spin{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:r .8s linear infinite}
@keyframes r{to{transform:rotate(1turn)}}
/* 7. CARDS */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh);padding:20px}
.grid{display:grid;gap:16px}.g3{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.stat{border-top:3px solid var(--gold)}.stat small{display:block;color:var(--muted);font-size:.8rem}.stat b{font-size:1.7rem;font-weight:600;color:var(--primary)}
.bar{display:grid;grid-template-columns:minmax(88px,1.1fr) minmax(48px,3fr) auto;gap:10px;align-items:center;font-size:.82rem;margin:9px 0}
.bar span{line-height:1.25;overflow-wrap:anywhere}.bar b{white-space:nowrap;text-align:right}
.pb{height:8px;background:var(--line);border-radius:9px;overflow:hidden}.pb i{display:block;height:100%;background:var(--primary)}
.sw{display:flex;gap:10px;flex-wrap:wrap}.sw div{width:118px;border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:.72rem;background:#fff}.sw i{display:block;height:48px}.sw span{display:block;padding:6px 8px}
.ts{display:grid;gap:6px}
/* 8. TABLES */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff}
table{width:100%;border-collapse:collapse;font-size:.875rem}
th{background:var(--primary-50);color:var(--primary-dark);text-align:left;font-weight:600}
th,td{padding:10px 14px;border-bottom:1px solid var(--line)}
tbody tr:hover td{background:#FBF9FA}
.bd{display:inline-block;padding:2px 10px;border-radius:99px;font-size:.75rem;font-weight:500}
.bd.ok{background:var(--ok-bg);color:var(--ok)}.bd.wn{background:var(--warn-bg);color:var(--warn)}.bd.er{background:var(--err-bg);color:var(--err)}
/* 9. FORMS */
.fg{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.f label{display:block;font-size:.82rem;font-weight:500;margin-bottom:4px}.f label i{color:var(--err);font-style:normal}
.in{width:100%;min-height:42px;padding:8px 12px;border:1px solid #CBD5E1;border-radius:8px;font:inherit;background:#fff;color:var(--text)}
.in:focus{outline:2px solid var(--gold);border-color:var(--primary)}
.hp{font-size:.76rem;color:var(--muted);margin-top:4px}
.f.er .in{border-color:var(--err);background:var(--err-bg)}.f.er .hp{color:var(--err)}
input[type=checkbox],input[type=radio]{accent-color:var(--primary);width:18px;height:18px;vertical-align:middle;margin-right:6px}
/* 12. ALERTS */
.al{display:flex;gap:12px;padding:12px 16px;border-radius:10px;border:1px solid;border-left-width:4px;font-size:.88rem;margin-bottom:10px}
.a-ok{background:var(--ok-bg);border-color:var(--ok);color:#14532D}.a-wn{background:var(--warn-bg);border-color:var(--warn);color:#78350F}
.a-er{background:var(--err-bg);border-color:var(--err);color:#7F1D1D}.a-in{background:var(--info-bg);border-color:var(--info);color:#1E3A8A}
/* 13. TOASTS */
#ts{position:fixed;right:16px;bottom:16px;display:grid;gap:8px;z-index:90}
.toast{background:var(--primary-dark);color:#fff;border-left:4px solid var(--gold);padding:12px 16px;border-radius:10px;box-shadow:var(--sh-lg);min-width:260px;font-size:.88rem}
.toast.er{border-color:#F87171}.toast.ok{border-color:#4ADE80}
/* 11. MODALS */
dialog{border:0;border-radius:var(--r-lg);padding:0;width:min(480px,92vw);box-shadow:var(--sh-lg);color:var(--text);margin:auto}
dialog::backdrop{background:rgba(30,41,59,.5)}
.mh{padding:16px 20px;border-bottom:1px solid var(--line);font-weight:600;color:var(--primary-dark)}.mb{padding:20px}
.mf{padding:14px 20px;display:flex;justify-content:flex-end;gap:8px;background:var(--bg)}
/* 14-16. LOADING / EMPTY / ERROR */
.sk{background:#E2E8F0;border-radius:6px;height:14px;margin:9px 0;animation:pu 1.4s ease-in-out infinite}
@keyframes pu{50%{opacity:.45}}
.st{text-align:center;padding:30px 16px}.st .i{width:44px;height:44px;color:var(--primary);margin-bottom:6px}
.st h3{margin:4px 0}.st p{color:var(--muted);font-size:.88rem;margin-bottom:14px}.st.e .i{color:var(--err)}
/* 17-18. MOBILE + BOTTOM NAV */
.bn{display:none;position:fixed;inset:auto 0 0 0;height:calc(var(--bn) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:#fff;border-top:1px solid var(--line);z-index:35}
.bn a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.68rem;color:var(--muted);text-decoration:none}
.bn a.on{color:var(--primary);box-shadow:inset 0 3px 0 var(--gold)}
/* 19. BREAKPOINTS: mobile <640, tablet 640-1023, desktop >=1024 */
@media(max-width:1023px){.sb{transform:translateX(-100%)}.sb.open{transform:none}.top,main{margin-left:0}.ham{display:inline-flex}}
@media(max-width:639px){.bn{display:flex}body{padding-bottom:calc(var(--bn) + 16px)}.top{padding:0 12px}main{padding:16px 12px}#ts{left:12px;right:12px;bottom:calc(var(--bn) + 10px)}.hm{display:none}
.rt thead{display:none}.rt tr{display:block;border:1px solid var(--line);border-radius:10px;margin:10px;padding:4px 0}.rt td{display:flex;justify-content:space-between;gap:12px;border:0;padding:6px 14px}.rt td::before{content:attr(data-l);color:var(--muted);font-size:.78rem}.rt tbody tr:hover td{background:none}.tw:has(.rt){border:0;background:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* 20-24. DOCUMENTS (result sheet, admit card, routine, tabulation) */
.dw{overflow-x:auto;padding:4px}
.doc{background:#fff;border:1px solid var(--line);box-shadow:var(--sh);padding:26px;width:100%;max-width:794px;box-sizing:border-box;margin:0 auto;font-size:.8rem;line-height:1.5}
.doc.land{width:100%;max-width:1123px}.doc.half{width:100%;max-width:700px}
.dh{display:flex;gap:14px;align-items:center;justify-content:center;border-bottom:3px double var(--primary);padding-bottom:12px;margin-bottom:12px;text-align:center}
.dh h4{font-size:1.3rem;font-weight:700;color:var(--primary);line-height:1.2}.dh small{color:var(--gold-d);font-weight:500;font-size:.78rem}
.dt{text-align:center;margin-bottom:10px}.dt span{display:inline-block;background:var(--primary);color:#fff;font-weight:600;padding:3px 18px;border-radius:99px;border-bottom:2px solid var(--gold)}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:3px 28px;margin:10px 0}.kv span{color:var(--muted)}
.mt th,.mt td{border:1px solid #CBD5E1;padding:5px 8px;text-align:center}.mt td:first-child{text-align:left}.mt th{background:var(--primary-50)}
.fl{color:var(--err);font-weight:600}
.sum{display:flex;gap:10px;margin:12px 0}.sum div{flex:1;border:1px solid var(--gold);background:var(--gold-50);border-radius:8px;padding:6px 10px;text-align:center}.sum b{display:block;font-size:1.05rem;color:var(--primary)}
.sg{display:flex;justify-content:space-between;flex-wrap:wrap;gap:22px 12px;margin-top:38px}.sg span{border-top:1px solid var(--text);padding-top:4px;min-width:120px;flex:1 1 120px;max-width:220px;text-align:center;font-size:.74rem}
.ph{width:84px;height:100px;border:1px dashed #94A3B8;display:grid;place-items:center;font-size:.68rem;color:var(--muted);text-align:center;flex:none}
.tb th,.tb td{border:1px solid #CBD5E1;padding:4px 6px;text-align:center;font-size:.76rem}
.tb th:nth-child(1),.tb td:nth-child(1){position:sticky;left:0;min-width:48px;background:#fff}
.tb th:nth-child(2),.tb td:nth-child(2){position:sticky;left:48px;min-width:140px;text-align:left;background:#fff}
.tb th{background:var(--primary-50)}.tb td.t{font-weight:600;color:var(--primary)}
/* 24. PRINT LAYOUTS: A4 portrait 12mm (result, admit, routine), A4 landscape 10mm (tabulation) */
@media print{@page{size:A4;margin:12mm}
.sb,.top,.bn,.ov,#ts{display:none!important}
body.pr main{margin:0;padding:0;max-width:none}body.pr section:not(.hp){display:none}body.pr .nop{display:none!important}
body.pr .dw{overflow:visible;padding:0}body.pr .doc{width:100%;border:0;box-shadow:none;padding:0}
thead{display:table-header-group}tr{break-inside:avoid}
*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.tb td:nth-child(-n+2),.tb th:nth-child(-n+2){position:static}}

.auth{max-width:420px;margin:0 auto;padding:40px 16px}.auth .brand{border:0;justify-content:center;flex-direction:column;text-align:center}.auth .brand b{color:var(--primary)}.auth .brand small{color:var(--gold-d)}main{max-width:none}.mx td,.mx th{padding:6px 10px;text-align:center}.mx td:first-child,.mx th:first-child{text-align:left}

.fl2{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.fl2 .in{width:auto;min-width:140px;flex:1 1 140px}
.thumb{width:44px;height:52px;object-fit:cover;border-radius:6px;border:1px solid var(--line);background:#fff}.big{width:96px;height:116px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.kv2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 24px}.kv2 span{color:var(--muted);font-size:.8rem;display:block}
.ck{display:inline-block;margin:0 14px 6px 0;font-weight:400}.pg{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px;align-items:center}
main{overflow-x:hidden}
@media print{main{margin:0!important;padding:0!important}.nop{display:none!important}.card{box-shadow:none}}

@media print{.doc{width:100%!important;border:1px solid #999!important;box-shadow:none!important;margin:0 0 8mm!important;break-inside:avoid;padding:14px!important}.pb-after{break-after:page}.card{border:0}}
.seat{display:inline-block;min-width:92px;padding:4px 8px;margin:2px;border:1px solid var(--line);border-radius:8px;font-size:.78rem;background:#fff}

.pr-only{display:none}@media print{.pr-only{display:inline}}
.mk{text-align:right}.tt,.pc,.gr{white-space:nowrap}.mk:disabled,.st:disabled{opacity:.55}

/* Bangla fonts: if you drop the woff2 files into public/assets/fonts/, printing works even offline (Google Fonts link is the online fallback). */
@font-face{font-family:'Hind Siliguri';font-weight:400;font-display:swap;src:local('Hind Siliguri'),local('HindSiliguri-Regular'),url(/assets/fonts/HindSiliguri-Regular.woff2) format('woff2')}
@font-face{font-family:'Hind Siliguri';font-weight:600;font-display:swap;src:local('Hind Siliguri SemiBold'),local('HindSiliguri-SemiBold'),url(/assets/fonts/HindSiliguri-SemiBold.woff2) format('woff2')}
@font-face{font-family:'Poppins';font-weight:400;font-display:swap;src:local('Poppins'),local('Poppins-Regular'),url(/assets/fonts/Poppins-Regular.woff2) format('woff2')}
@media print{*{-webkit-print-color-adjust:exact;print-color-adjust:exact}body{background:#fff!important}.tw{overflow:visible!important;border:0!important}.card{box-shadow:none!important}}
/* portals: touch-friendly, mobile-first */
.portal .btn{min-height:44px}.portal .btn.sm{min-height:40px}.portal .in{min-height:46px;font-size:1rem}.portal .bn a{min-height:var(--bn)}.portal .card{border-radius:14px}
.portal .grid{gap:12px}.portal main{padding-bottom:84px}@media(min-width:640px){.portal main{padding-bottom:24px}}

/* QA fixes: helper classes that templates already use, and overflow safety */
.sp2{justify-content:space-between;align-items:center}.rowerr{display:block;color:var(--err);font-size:.75rem;margin-top:2px}
.mt td,.mt th,.rt td,.tb td{overflow-wrap:anywhere}img{max-width:100%;height:auto}
.in:focus-visible,.btn:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--primary);color:#fff;padding:8px 14px;z-index:99}.skip:focus{left:8px;top:8px}
@media print{.sheet,.doc,.cert{overflow:visible!important}.skip{display:none!important}tr,img{break-inside:avoid}thead{display:table-header-group}}
.print-only{display:none}@media print{.print-only{display:block}}

/* ===== v2: logo image, grouped sidebar, split login, colourful dashboard cards ===== */
.logo.has-img{border:0;background:#fff;padding:3px;overflow:hidden}.logo.has-img img{width:100%;height:100%;object-fit:contain;display:block}
.brand .logo{width:46px;height:46px}
/* sidebar groups (native <details>: works without JavaScript) */
.nav .ng{margin-bottom:2px}.nav summary{list-style:none;display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:8px;border-left:3px solid transparent;cursor:pointer;font-size:.9rem;user-select:none}
.nav summary::-webkit-details-marker{display:none}.nav summary:hover{background:rgba(255,255,255,.08)}.nav summary span{flex:1}
.nav summary.on{color:#fff}.nav .ch{width:16px;height:16px;transition:transform .2s;opacity:.7}.nav details[open]>summary .ch{transform:rotate(180deg)}
.nav details[open]>summary{color:#fff}
.nav .sl{margin:2px 0 6px 22px;padding-left:10px;border-left:1px solid rgba(255,255,255,.16)}
.nav .sl a{padding:7px 12px;font-size:.84rem;margin-bottom:1px;border-left:0;border-radius:6px;display:block;opacity:.88}
.nav .sl a.on{background:rgba(212,160,23,.2);color:#fff;opacity:1;box-shadow:inset 3px 0 0 var(--gold)}
/* login: split card */
body.lg{background:#F4F5F9;min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.lw{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:880px;min-height:464px;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 20px 50px rgba(30,41,59,.14)}
.lw .lp{position:relative;overflow:hidden;background:linear-gradient(150deg,#5A1030 0%,#6B1236 55%,#7A1640 100%);color:#fff;padding:36px 30px;display:flex;flex-direction:column}
.lw .lp::after{content:"";position:absolute;right:-70px;bottom:-60px;width:230px;height:230px;border-radius:50%;background:rgba(212,160,23,.28)}
.lw .lg-logo{width:68px;height:68px;border-radius:14px;background:#fff;display:grid;place-items:center;padding:6px;margin-bottom:14px}.lw .lg-logo img{max-width:100%;max-height:100%;object-fit:contain}
.lw .lg-logo.ph0{border:1.5px dashed var(--gold);background:transparent;color:var(--gold-light);font-size:.7rem;text-align:center;line-height:1.2}
.lw h1{font-size:1.65rem;font-weight:700;line-height:1.25;margin-bottom:4px}.lw .tg{color:#F3DDE6;font-size:.9rem}
.lw ul{list-style:none;padding:0;margin:auto 0 0;position:relative;z-index:1;display:grid;gap:9px;font-size:.86rem;color:#F6E7EE}
.lw li::before{content:"✓";color:var(--gold-light);font-weight:700;margin-right:9px}
.lw .lf{padding:36px 30px;display:flex;flex-direction:column;justify-content:center}
.lw .lf h2{font-size:1.4rem;color:#111827;margin-bottom:4px}.lw .lf .ls{color:var(--muted);font-size:.88rem;margin-bottom:18px}
.lw .f{margin-bottom:14px}.lw .f label{font-weight:600;font-size:.84rem}
.lw .in{min-height:46px;border-radius:10px}
.pw{position:relative}.pw .in{padding-right:70px}.pw button{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--muted);font:inherit;font-size:.8rem;cursor:pointer;padding:8px 10px;border-radius:6px}.pw button:hover{background:var(--primary-50);color:var(--primary)}
.lw .btn.go{width:100%;min-height:48px;border-radius:10px;font-weight:600;font-size:1rem;margin-top:4px}
.lw .lnk{margin-top:16px;text-align:center;font-size:.82rem;color:var(--muted)}.lw .lnk a{color:var(--primary);text-decoration:none;font-weight:500}
@media(max-width:700px){.lw{grid-template-columns:1fr;min-height:0}.lw .lp{padding:24px 22px}.lw ul{margin-top:16px}.lw .lf{padding:26px 22px}}
/* dashboard cards */
.dhd{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;flex-wrap:wrap}.dhd h2{font-size:1.5rem}
.dg{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
@media(max-width:800px){.dg{gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.dg>.sc:last-child:nth-child(2n+1){grid-column:1/-1}.sc{padding:14px 14px 16px;min-height:94px}.sc b{font-size:1.45rem;margin-top:6px}.sc small{font-size:.8rem}}
.sc{position:relative;overflow:hidden;color:#fff;border-radius:16px;padding:18px 18px 20px;box-shadow:0 6px 16px rgba(30,41,59,.14);min-height:104px}
.sc::after{content:"";position:absolute;right:-26px;top:-26px;width:104px;height:104px;border-radius:50%;background:rgba(255,255,255,.16)}
.sc small{display:block;font-size:.88rem;opacity:.95;position:relative;z-index:1}.sc b{display:block;font-size:1.55rem;font-weight:700;line-height:1.3;margin-top:8px;position:relative;z-index:1;overflow-wrap:anywhere}
.c1{background:linear-gradient(135deg,#6B1236,#9C2457)}.c2{background:linear-gradient(135deg,#17803F,#2BB673)}.c3{background:linear-gradient(135deg,#1D6FB8,#3A9AE0)}.c4{background:linear-gradient(135deg,#6B4BB5,#8C6FD6)}
.c5{background:linear-gradient(135deg,#C2740F,#EAA02B)}.c6{background:linear-gradient(135deg,#0F7A64,#1FA88A)}.c7{background:linear-gradient(135deg,#B8293D,#E2585F)}.c8{background:linear-gradient(135deg,#2B7A2B,#58B058)}
.c9{background:linear-gradient(135deg,#C2255C,#E8590C)}.c10{background:linear-gradient(135deg,#0B7285,#22B8CF)}.c11{background:linear-gradient(135deg,#364FC7,#5C7CFA)}.c12{background:linear-gradient(135deg,#3D4A63,#6B7A99)}
@media print{.sc{box-shadow:none}}

/* custom print header image (Settings > প্রিন্ট হেডার) */
.dh-img{margin-bottom:12px;text-align:center}.dh-img img{display:block;width:100%;height:auto;max-height:44mm;object-fit:contain;margin:0 auto}
.hd-row{display:grid;grid-template-columns:200px 1fr;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.hd-row:first-of-type{border-top:0}
.hd-prev{width:220px;flex:none;border:1px dashed #CBD5E1;border-radius:8px;min-height:56px;display:grid;place-items:center;background:#fff;padding:4px;font-size:.78rem;color:var(--muted);text-align:center}.hd-prev img{max-width:100%;max-height:70px;display:block}
.hd-act{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.hd-act form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.hd-act input[type=file]{max-width:240px;font-size:.8rem}
@media(max-width:700px){.hd-row{grid-template-columns:1fr}}
/* print center tiles */
.pt{display:block;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}.pt:hover{transform:translateY(-2px);box-shadow:var(--sh-lg)}.pt .i{width:28px;height:28px;color:var(--primary)}.pt h3{margin:10px 0 4px}.pt p{color:var(--muted);font-size:.84rem;margin:0}

.ac-note{margin-top:10px;border:1px dashed #999;border-radius:6px;padding:8px 10px;font-size:12px;line-height:1.6}.ac-note b{display:block;margin-bottom:2px}
/* admit card, 2 per page: each card fills a half page (cut line between); font size steps down with the number of subjects so every subject fits */
@media print{.ac2 .doc{display:flex!important;flex-direction:column;height:127mm;margin:0 0 14mm!important;padding:5mm 7mm!important;box-sizing:border-box;position:relative;overflow:visible;line-height:1.3!important;font-size:12px}
.ac2 .doc:nth-of-type(2n){margin-bottom:0!important}.ac2 .doc:nth-of-type(2n+1):not(:first-of-type){break-before:page}
.ac2 .doc:nth-of-type(2n+1)::after{content:"✂ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -";position:absolute;left:0;right:0;bottom:-9.5mm;height:4mm;line-height:4mm;text-align:center;font-size:10px;color:#555;white-space:nowrap;overflow:hidden;letter-spacing:1px}
.ac2 .doc .dh{margin:0 0 .4em!important;padding:0 0 .4em!important}.ac2 .doc .dh h4{font-size:1.5em;margin:0}.ac2 .doc .dh img{height:3.6em!important;width:auto}.ac2 .doc .dh-img img{max-height:16mm;width:100%;object-fit:contain}.ac2 .doc .logo{width:3.6em;height:3.6em}
.ac2 .doc .dt{margin:.4em 0!important;font-size:1.15em}
.ac2 .doc .row{gap:1em!important}.ac2 .doc .ph,.ac2 .doc img.big{width:5.6em!important;height:6.8em!important}
.ac2 .doc .kv{font-size:1em!important;gap:.15em 1em!important}
.ac2 .doc .tw{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;margin-top:.6em}.ac2 .doc .mt{font-size:1em!important;flex:1 1 auto;height:100%;margin-top:0!important}.ac2 .doc .mt th,.ac2 .doc .mt td{padding:.15em .4em!important;font-size:1em!important;line-height:1.25;vertical-align:middle}
.ac2 .ac-note{font-size:.85em!important;line-height:1.35!important;margin-top:.5em!important;padding:.3em .6em!important}
.ac2 .doc .sg{margin-top:1.8em!important;font-size:.95em}

.ac2 .doc[data-n="0"]{font-size:14px!important}
.ac2 .doc[data-n="1"]{font-size:14px!important}
.ac2 .doc[data-n="2"]{font-size:14px!important}
.ac2 .doc[data-n="3"]{font-size:14px!important}
.ac2 .doc[data-n="4"]{font-size:14px!important}
.ac2 .doc[data-n="5"]{font-size:14px!important}
.ac2 .doc[data-n="6"]{font-size:13.2px!important}
.ac2 .doc[data-n="7"]{font-size:12.2px!important}
.ac2 .doc[data-n="8"]{font-size:11.4px!important}
.ac2 .doc[data-n="9"]{font-size:10.6px!important}
.ac2 .doc[data-n="10"]{font-size:9.9px!important}
.ac2 .doc[data-n="11"]{font-size:9.3px!important}
.ac2 .doc[data-n="12"]{font-size:8.7px!important}
.ac2 .doc[data-n="13"]{font-size:8.2px!important}
.ac2 .doc[data-n="14"]{font-size:7.8px!important}
.ac2 .doc[data-n="15"]{font-size:7.4px!important}
.ac2 .doc[data-n="16"]{font-size:7.0px!important}
.ac2 .doc[data-n="17"]{font-size:6.7px!important}
.ac2 .doc[data-n="18"]{font-size:6.3px!important}
.ac2 .doc[data-n="19"]{font-size:6.0px!important}
.ac2 .doc[data-n="20"]{font-size:5.8px!important}
.ac2 .doc[data-n="21"]{font-size:5.5px!important}
.ac2 .doc[data-n="22"]{font-size:5.3px!important}
.ac2 .doc[data-n="23"]{font-size:5.0px!important}
.ac2 .doc[data-n="24"]{font-size:4.8px!important}
.ac2 .doc[data-n="25"]{font-size:4.8px!important}
.ac2 .doc[data-n="26"]{font-size:4.8px!important}
.ac2 .doc[data-n="27"]{font-size:4.8px!important}
.ac2 .doc[data-n="28"]{font-size:4.8px!important}
.ac2 .doc[data-n="29"]{font-size:4.8px!important}
.ac2 .doc[data-n="30"]{font-size:4.8px!important}
.ac2 .doc[data-n="31"]{font-size:4.8px!important}
.ac2 .doc[data-n="32"]{font-size:4.8px!important}
.ac2 .doc[data-n="33"]{font-size:4.8px!important}
.ac2 .doc[data-n="34"]{font-size:4.8px!important}
.ac2 .doc[data-n="35"]{font-size:4.8px!important}
.ac2 .doc[data-n="36"]{font-size:4.8px!important}
.ac2 .doc[data-n="37"]{font-size:4.8px!important}
.ac2 .doc[data-n="38"]{font-size:4.8px!important}
.ac2 .doc[data-n="39"]{font-size:4.8px!important}
.ac2 .doc[data-n="40"]{font-size:4.8px!important}
}

/* admit card look: brand double frame, rounded corners, logo watermark */
.doc.ac{position:relative;border:2px solid var(--primary)!important;border-radius:12px!important;background:#fff;overflow:visible}
.doc.ac::before{content:"";position:absolute;inset:4px;border:1px solid var(--gold);border-radius:8px;pointer-events:none;z-index:0}
.doc.ac>*{position:relative;z-index:1}
.doc.ac>.wm{position:absolute;z-index:0;inset:0;overflow:hidden;border-radius:10px;pointer-events:none}
.doc.ac>.wm img{position:absolute;left:50%;top:54%;width:50%;height:auto;max-height:60%;transform:translate(-50%,-50%);object-fit:contain;opacity:.09}
.doc.ac .dh,.doc.ac .dh-img{border-bottom:2px solid var(--primary)!important}
.doc.ac .dt span{background:linear-gradient(90deg,var(--primary-dark),var(--primary),var(--primary-dark));letter-spacing:.3px;padding:3px 26px;box-shadow:0 0 0 2px #fff,0 0 0 3px var(--gold)}
.doc.ac .kv{background:var(--gold-50);border:1px solid #EBD79A;border-radius:8px;padding:.3em .7em}
.doc.ac .ph,.doc.ac img.big{border:2px solid var(--primary);border-radius:8px;padding:2px;background:#fff;object-fit:cover}
.doc.ac .mt{border-collapse:separate;border-spacing:0;border:1px solid var(--primary);border-radius:8px;overflow:hidden;background:rgba(255,255,255,.55)}
.doc.ac .mt th{background:var(--primary)!important;color:#fff!important;border-color:var(--primary-dark)!important}
.doc.ac .mt td{border-color:#E4D3DA!important}.doc.ac .mt tbody tr:nth-child(even) td{background:rgba(248,238,242,.7)}
.doc.ac .ac-note{background:rgba(251,244,220,.75);border:1px dashed var(--gold-d);border-radius:8px}
.doc.ac .sg span{border-top:1px solid var(--primary)}
@media print{.doc.ac .dt span{box-shadow:0 0 0 1.5px #fff,0 0 0 2.5px var(--gold)}}
