*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f5f7fb;color:#172033;font-family:"Noto Sans Bengali", "Noto Sans", "Hind Siliguri", Inter, sans-serif;font-size:14px;line-height:1.45}button,input,select,textarea{font:inherit}button{cursor:pointer}.hide{display:none!important}:root{--primary:#0d806f;--primary2:#0a665b;--orange:#ed6b21;--dark:#0b1725;--nav:#102438;--line:#e5eaf0;--muted:#708096;--gold:#b8953d}
.logo-img{display:block;width:190px;height:54px;object-fit:contain;object-position:left center;background:#fff}.login-logo{background:#fff;border-radius:8px;padding:5px}.login-logo{width:100%;height:88px;object-fit:contain;object-position:center;margin-bottom:4px}.sidebar-logo{width:92px;height:44px;object-fit:contain;object-position:left center;background:#fff;border-radius:7px;padding:3px}.brandline{display:flex;align-items:center;gap:12px}.brandline b{display:block;font-size:13px;letter-spacing:.2px}.brandline small{display:block;color:var(--muted);margin-top:2px}.brandline .logo-img{width:175px}
.public-page{min-height:100vh;background:linear-gradient(180deg,#f4fbfa 0,#f7f9fc 55%)}.public-top{min-height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:8px 5%;gap:20px}.public-main{max-width:1000px;margin:auto;padding:55px 22px}.hero{padding:30px 0 25px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2px;color:var(--primary)}.hero h1{font-family:"Noto Sans","Hind Siliguri",sans-serif;font-size:42px;line-height:1.15;margin:8px 0}.hero p{color:var(--muted);font-size:16px}.notice-list{display:grid;gap:14px}.notice-card{background:#fff;border:1px solid var(--line);border-left:5px solid var(--primary);padding:20px 22px;border-radius:14px;box-shadow:0 5px 18px #123106}.notice-card h3{margin:0 0 7px;font-size:17px}.notice-card p{white-space:pre-wrap;line-height:1.8;margin:0;color:#4c5a6c}.notice-date{font-size:12px;color:var(--muted);margin-top:12px}
.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,#1d6c65 0,#071723 50%,#06121c 100%);padding:20px}.loginbox{background:#fff;width:min(470px,100%);padding:30px 34px;border-radius:24px;box-shadow:0 25px 80px #0005}.loginbox small{color:#657184;font-weight:700}.loginbox h1{margin:10px 0 5px;font-size:30px;letter-spacing:-.5px}.loginbox p{color:var(--muted)}.loginbox label{display:block;font-size:12px;font-weight:700;color:#566274;margin:13px 0 5px}.loginbox input{width:100%;padding:12px;border:1px solid #dce2ea;border-radius:9px;outline:none}.loginbox input:focus,.field input:focus,.field select:focus,.field textarea:focus,.search:focus{border-color:#65b8ab;box-shadow:0 0 0 3px #0d806f14}.primary{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;border:0;border-radius:9px;padding:12px 16px;font-weight:700;margin-top:14px;box-shadow:0 8px 18px #0d806f22}.primary.full{width:100%}.role-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:18px 0}.role-tabs button{border:1px solid #dce2ea;background:#f7f9fa;padding:9px;border-radius:9px;font-weight:700}.role-tabs button.active{background:#e9f7f4;color:#096957;border-color:#8bd0c3}.linkbtn{border:0;background:none;color:var(--primary);margin:15px auto 0;display:block}.hint{font-size:11px;background:#f5f7fa;padding:10px;margin-top:12px;color:#647185;border-radius:8px}
aside{position:fixed;inset:0 auto 0 0;width:255px;background:var(--dark);color:#b9c8d7;padding:15px 12px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;gap:8px;align-items:center;padding:4px 8px 22px;color:#fff}.brand b{display:block;font-size:16px}.brand small{color:#8ea4b8}nav button{display:block;width:100%;text-align:left;background:none;color:#a9bac9;border:0;border-radius:9px;padding:10px 12px;margin:2px 0;font-weight:600}nav button:hover,nav button.active{background:#15364a;color:#fff}aside footer{margin-top:auto;font-size:11px;color:#71879b;padding:10px}main{margin-left:255px}header{height:68px;background:#fff;border-bottom:1px solid var(--line);padding:0 28px;display:flex;align-items:center;justify-content:space-between}header span{font-size:13px;color:#596779}header span button{border:0;background:#f1f4f7;padding:7px;border-radius:7px}.hamb{display:none;border:0;background:none;font-size:20px}#content{padding:28px;max-width:1500px;margin:auto}.head{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.head h1{margin:0;font-family:"Noto Sans","Hind Siliguri",sans-serif;font-size:27px;letter-spacing:-.3px}.muted{color:var(--muted);font-size:13px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.card,.panel,.form{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 3px 14px #123405}.stat small{color:#718096}.stat strong{display:block;font-size:23px;margin-top:8px}.grid{display:grid;grid-template-columns:1.3fr .7fr;gap:16px;margin-top:16px}.panel h3{margin-top:0}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px 8px;border-bottom:1px solid #edf0f4;text-align:left;white-space:nowrap}.table th{font-size:11px;color:#6d7888}.formgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.field label{display:block;font-size:12px;font-weight:700;margin-bottom:5px;color:#566274}.field input,.field select,.field textarea,.search{width:100%;padding:10px;border:1px solid #dce2ea;border-radius:9px}.full{grid-column:1/-1}.btn{border:1px solid #dce2ea;background:#fff;border-radius:9px;padding:9px 13px;font-weight:600}.btn:hover{border-color:#b8c6d4;background:#f9fbfc}.btn.light{background:#f5f8f8}.pill{background:#eaf7f3;color:#11745f;padding:5px 8px;border-radius:99px;font-size:11px;font-weight:700}.quick{display:grid;grid-template-columns:1fr 1fr;gap:9px}.quick button{background:#f6f9fa;border:1px solid #e4ebee;border-radius:9px;padding:15px;text-align:left}.empty{text-align:center;color:#7b8798;padding:30px}.actions{display:flex;gap:8px;flex-wrap:wrap}.notice-admin{display:flex;justify-content:space-between;gap:10px;align-items:start;padding:13px 0;border-bottom:1px solid #eee}.result-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.result-summary .mini{padding:12px;background:#f7f9fb;border:1px solid #e7edf2;border-radius:10px}.result-summary small{display:block;color:var(--muted);font-size:11px}.result-summary strong{display:block;margin-top:3px}.result-sheet{background:#fff;border:1px solid #dfe6ed;border-radius:12px;padding:18px;margin-top:14px}.result-sheet h3{margin:0}.student-confirm{background:#fff;border:1px solid #dfe6ed;padding:30px;border-radius:10px}.student-confirm .confirm-head{text-align:center;border-bottom:2px solid var(--primary);padding-bottom:15px;margin-bottom:18px}.student-confirm .confirm-logo{width:300px;height:82px;object-fit:contain;background:#fff}.student-confirm .idbox{display:inline-block;background:#eef8f6;border:1px solid #a8d7ce;color:#075e53;font-size:18px;font-weight:800;padding:9px 15px;border-radius:8px;margin:8px 0}.cert-preview{background:#fffdf6;border:10px double var(--primary);padding:45px;text-align:center;min-height:430px;display:grid;place-items:center}.cert-inner{width:100%;border:1px solid #c9b36a;padding:35px}.cert-inner h1{font-family:Georgia,serif;font-size:34px;letter-spacing:3px}.cert-inner h2{font-family:Georgia,serif;font-size:28px}.modal{position:fixed;inset:0;background:#08132199;display:grid;place-items:center;padding:20px;z-index:50}.modalbox{background:#fff;border-radius:15px;padding:22px;width:min(900px,100%);max-height:90vh;overflow:auto}
@media print{body{background:#fff}.no-print,aside,header{display:none!important}main{margin:0}#content{padding:0}.student-confirm,.result-sheet{box-shadow:none;border:1px solid #bbb}.cert-preview{border:10px double #0d806f;box-shadow:none;min-height:180mm}}
@media(max-width:950px){aside{transform:translateX(-100%);transition:.2s}aside.open{transform:none}main{margin-left:0}.hamb{display:inline-block;margin-right:10px}.cards{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr 1fr}.result-summary{grid-template-columns:1fr 1fr}}
@media(max-width:600px){#content{padding:16px}.cards,.formgrid,.result-summary{grid-template-columns:1fr}.head{display:block}.actions{margin-top:10px}header{padding:0 16px}.hero h1{font-size:32px}.public-top{padding:0 18px}.brandline b{font-size:10px}.brandline small{font-size:9px}.brandline .logo-img{width:125px;height:46px}.loginbox{padding:25px 20px}}

.print-brand{display:flex;align-items:center;gap:18px;border-bottom:2px solid var(--primary);padding-bottom:14px;margin-bottom:20px}.print-brand img{width:240px;height:76px;object-fit:contain}.print-brand .print-title{font-weight:800;font-size:18px}.print-brand .print-sub{font-size:12px;color:#667085;margin-top:3px}
@media print{.print-brand{display:flex!important}.print-brand img{width:220px;height:70px}}
.section-title{font-size:16px;font-weight:800;margin:24px 0 12px;padding:10px 12px;border-left:4px solid #ec6d22;background:#f7f9fc;color:#17284f}.profile-field{border:1px solid #e6eaf0;padding:10px;border-radius:8px}.profile-field small{display:block;color:#667085}.profile-field b{display:block;margin-top:3px}.terms-box{margin:20px 0;padding:14px;border:1px solid #d9e0ea;background:#fffaf5;border-radius:10px}.attendance-row{padding:12px;border-bottom:1px solid #edf0f4;display:flex;justify-content:space-between;gap:10px;align-items:center}.attendance-row select{min-width:110px}.mark-input{width:120px}.result-top{display:flex;justify-content:space-between;gap:12px;align-items:start}.warn{background:#fff0e4!important;color:#a74b10!important}

/* MJPTTI Professional Documents v10 */
.official-letterhead{width:100%;margin:0 auto 10px!important;padding:4mm 0 3mm!important;border-bottom:2px solid #ec6d22!important;display:flex!important;justify-content:space-between!important;align-items:center!important;gap:6mm!important}
.official-letterhead .cl-brand{display:flex;align-items:center;gap:3mm;min-width:0}
.official-letterhead .cl-brand img{width:43mm;height:24mm;object-fit:contain;object-position:left center}
.official-letterhead .cl-name{font-size:15pt;line-height:1.05;letter-spacing:1px}
.official-letterhead .cl-subname{font-size:7pt;letter-spacing:.7px}
.official-letterhead .cl-motto{font-size:6pt}
.official-letterhead .cl-contact{width:62mm;font-size:6pt}
.official-document,.certificate-document{max-width:1000px;margin:0 auto}
.document-title{text-align:center;border-bottom:1px solid #dce3eb;padding:2mm 0 3mm;margin-bottom:4mm}
.document-title span{font-size:6.5pt;letter-spacing:1.5px;font-weight:800;color:#ec6d22}
.document-title h1{font-size:18pt;color:#17284f;margin:1mm 0;font-weight:900;letter-spacing:.4px}
.document-subtitle{font-size:8pt;color:#667085}
.receipt-no{display:inline-block;border:1px solid #9bb1ce;background:#f3f6fa;border-radius:2mm;padding:1.5mm 4mm;font-size:8pt;font-weight:800;color:#17284f}
.receipt-status{display:inline-block;padding:1.5mm 3mm;border-radius:2mm;background:#eaf7f3;color:#11745f;font-size:7pt;font-weight:900;letter-spacing:.8px;margin-bottom:3mm}
.receipt-table th{width:15%;background:#f7f9fb}.receipt-table td{width:35%}
.amount-box{margin:5mm 0;padding:4mm 6mm;border:1px solid #b9d9d1;background:#f4fbf9;border-radius:2mm;display:flex;justify-content:space-between;align-items:center}
.amount-box span{font-size:8pt;font-weight:800;color:#536174}.amount-box strong{font-size:19pt;color:#075e53}
.receipt-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:2mm;margin:4mm 0}.receipt-summary>div{border:1px solid #e0e6ee;padding:3mm;text-align:center;background:#fbfcfd}.receipt-summary small{display:block;color:#667085;font-size:6.5pt}.receipt-summary b{display:block;margin-top:1mm;font-size:9pt;color:#17284f}
.receipt-note,.result-footer-note{font-size:7pt;color:#667085;border-left:2px solid #ec6d22;background:#fff8f1;padding:2mm 3mm;margin-top:4mm}
.result-document .mini-profile{margin:3mm 0}.result-document .result-summary{grid-template-columns:repeat(4,1fr)}.result-table th{background:#17284f;color:#fff}.result-table td{text-align:center}.result-table td:nth-child(2){text-align:left}.result-table th:nth-child(2){text-align:left}
.certificate-document .official-letterhead{margin-bottom:0!important}.certificate{min-height:245mm}.cert-border{position:relative;min-height:225mm!important;border:10px double #1d315e!important;outline:2px solid #ec6d22;outline-offset:-18px;padding:50px 65px!important;background:linear-gradient(135deg,#fff,#fbfcff)}
.cert-kicker{font-size:8pt;letter-spacing:2px;font-weight:900;color:#ec6d22;margin-bottom:8px}.cert-title{font-size:38px!important}.cert-achievement{margin-top:12px;font-size:11pt;color:#17284f}.cert-logo{width:270px!important;max-height:80px!important}.cert-meta{font-size:9pt}.cert-sign{margin-top:auto!important;padding-top:28px}
.confirmation-shell .confirm-grid{grid-template-columns:repeat(4,1fr)}.confirmation-shell .confirm-field{min-height:7.5mm;padding:1.1mm 1.4mm}.confirmation-shell .confirm-field b{font-size:6.2pt}.confirmation-shell .confirm-field span{font-size:5.2pt}.confirmation-shell .compact-rules{margin-top:2mm}.confirmation-shell .rules-grid li{font-size:5.2pt;margin-bottom:.7mm}
@media print{.official-letterhead{page-break-inside:avoid}.receipt-document,.result-document,.certificate-document{max-width:none}.certificate-document .certificate{min-height:245mm}.receipt-summary{grid-template-columns:repeat(4,1fr)}}
@media(max-width:700px){.official-letterhead{display:block!important;text-align:center}.official-letterhead .cl-brand{justify-content:center}.official-letterhead .cl-brand img{width:55mm;object-position:center}.official-letterhead .cl-contact{width:auto;margin-top:2mm;border-left:0!important;padding-left:0!important}.receipt-summary{grid-template-columns:1fr 1fr}.result-document .result-summary{grid-template-columns:1fr 1fr}}

.dashboard-shell{position:relative;isolation:isolate}.dashboard-shell:before{content:"";position:absolute;inset:0;background:url('mjptti-logo.png') center/320px auto no-repeat;opacity:.035;pointer-events:none;z-index:-1}.dashboard-clock{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:9px 14px;margin:-8px 0 16px;font-weight:700;color:#475467;box-shadow:0 3px 12px #123405}.dashboard-batches{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.dashboard-batch{display:flex;flex-direction:column;gap:4px}.dashboard-batch small{color:#667085}.payment-search-panel{margin-bottom:16px}.payment-search-results{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}.payment-result{text-align:left;border:1px solid #e0e7ef;background:#f9fbfc;border-radius:10px;padding:10px}.payment-result small{display:block;color:#667085;margin-top:3px}.rating-panel{margin-top:16px;border:1px solid #dfe7ed;border-radius:12px;padding:15px;background:linear-gradient(135deg,#f8fcfb,#fff)}.rating-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.rating-grid span{background:#fff;border:1px solid #e4eaee;border-radius:8px;padding:9px}.rating-grid b{display:block;margin-top:3px;color:var(--primary)}.rating-total{margin-top:10px;font-weight:700;color:#17284f}.certificate-document .official-letterhead{display:none!important}.cert-border{overflow:hidden}.cert-border:before{content:"";position:absolute;left:50%;top:50%;width:90mm;height:90mm;transform:translate(-50%,-50%);background:url('mjptti-logo.png') center/contain no-repeat;opacity:.035;z-index:0;pointer-events:none}.cert-border>*{position:relative;z-index:1}.cert-logo{position:relative;z-index:2}
@media(max-width:950px){.dashboard-batches{grid-template-columns:1fr 1fr}.payment-search-results{grid-template-columns:1fr}.rating-grid{grid-template-columns:1fr 1fr}}
\n/* v18: compact original vertical letterhead — same design, smaller height */\n.official-letterhead{\n  width:100%;\n  margin:0 auto 4px!important;\n  padding:1.5mm 0 1mm!important;\n  display:flex!important;\n  flex-direction:column!important;\n  align-items:center!important;\n  justify-content:center!important;\n  gap:0!important;\n  text-align:center!important;\n  border-bottom:2px solid #ec6d22;\n}\n.official-letterhead .cl-brand{\n  display:flex!important;\n  flex-direction:column!important;\n  align-items:center!important;\n  justify-content:center!important;\n  gap:0!important;\n  text-align:center!important;\n}\n.official-letterhead .cl-brand img{\n  width:25mm!important;\n  height:15mm!important;\n  margin:0 0 .5mm!important;\n  object-fit:contain!important;\n}\n.official-letterhead .cl-brand-copy{\n  display:flex!important;\n  flex-direction:column!important;\n  align-items:center!important;\n  gap:0!important;\n  text-align:center!important;\n}\n.official-letterhead .cl-name{\n  font-size:11pt!important;\n  line-height:1.02!important;\n  letter-spacing:.45px!important;\n  margin:0!important;\n}\n.official-letterhead .cl-subname{\n  font-size:6.5pt!important;\n  line-height:1.05!important;\n  letter-spacing:.25px!important;\n  margin:0!important;\n}\n.official-letterhead .cl-motto{\n  font-size:5.6pt!important;\n  line-height:1.05!important;\n  letter-spacing:.65px!important;\n  margin:.25mm 0 0!important;\n}\n.official-letterhead .cl-phone,.official-letterhead .cl-email{\n  font-size:5.8pt!important;\n  line-height:1.05!important;\n  margin:0!important;\n  padding:0!important;\n  color:#263858!important;\n}\n@media print{\n  .official-letterhead{margin-bottom:3px!important;padding:1mm 0 .7mm!important}\n}\n
/* v19: compact official letterhead — same layout, smaller logo/text */
.official-letterhead{padding:1.5mm 0 1mm!important;gap:0!important;margin-bottom:4px!important}
.official-letterhead .cl-brand{gap:0!important}
.official-letterhead .cl-brand img{width:18mm!important;height:13mm!important;max-height:13mm!important;margin:0 auto .5mm!important}
.official-letterhead .cl-name{font-size:10.5pt!important;line-height:1!important;letter-spacing:.55px!important}
.official-letterhead .cl-subname{display:none!important}
.official-letterhead .cl-motto{font-size:5pt!important;line-height:1!important;margin-top:.6mm!important}
.official-letterhead .cl-phone,.official-letterhead .cl-email{font-size:5pt!important;line-height:1.05!important;margin-top:.5mm!important}
.confirm-title-row .confirm-kicker{font-size:5.5pt!important}
.confirm-title-row h1{font-size:12pt!important;line-height:1.05!important;margin:.5mm 0!important;letter-spacing:.4px!important}
.confirm-title-row .confirm-subtitle{font-size:6pt!important}

/* Student Batch & Course Search */
.student-search-panel{padding:18px}
.student-filter-grid{display:grid;grid-template-columns:1fr 1fr 1.35fr auto;gap:12px;align-items:end}
.student-filter-grid label{display:block;font-size:12px;font-weight:700;color:#566274}
.student-filter-grid select,.student-filter-grid input{width:100%;margin-top:6px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#172033;outline:none}
.student-filter-grid select:focus,.student-filter-grid input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0d806f18}
.student-filter-grid .search{margin:0}
.student-filter-actions{display:flex;align-items:end}
.filter-summary{margin:12px 0;color:var(--muted);font-size:12px;padding:9px 11px;background:#f7f9fb;border:1px solid var(--line);border-radius:9px}
@media(max-width:900px){.student-filter-grid{grid-template-columns:1fr 1fr}.student-filter-actions{grid-column:1/-1}}
@media(max-width:560px){.student-filter-grid{grid-template-columns:1fr}.student-filter-actions{grid-column:auto}}

.receive-summary{margin:14px 0}.receive-cards{grid-template-columns:repeat(4,1fr);margin:0}.receive-student-meta{margin-top:8px;padding:10px;border:1px solid #e5e9ef;background:#f8fafc}.payment-entry-panel .section-title{margin-top:8px}@media(max-width:700px){.receive-cards{grid-template-columns:1fr 1fr}}
.expense-form-panel .formgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-item-row{display:grid;grid-template-columns:2fr .7fr 1fr 1fr auto;gap:8px;align-items:center;margin:8px 0}.expense-item-row input{width:100%;padding:10px;border:1px solid #d0d5dd;border-radius:8px}.expense-item-total{padding:10px;text-align:right}.expense-total-box{margin:18px 0}.signature-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:42px;text-align:center}.signature-preview span{font-weight:700}.signature-preview hr{margin:35px 0 6px;border:0;border-top:1px solid #222}.btn.danger{color:#b42318;border-color:#fecdca}@media(max-width:700px){.expense-form-panel .formgrid,.signature-preview{grid-template-columns:1fr}.expense-item-row{grid-template-columns:1fr 1fr}.expense-item-row .exp-item-name{grid-column:1/-1}.expense-item-total{grid-column:1/-1;text-align:left}}
/* v33: expense voucher footer signatures */
.expense-signatures{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:55px;text-align:center;align-items:end}
.expense-signatures>div:first-child{justify-self:start;width:85%}
.expense-signatures>div:last-child{justify-self:end;width:85%}
.expense-signatures hr{margin:42px 0 7px;border:0;border-top:1px solid #222}
.voucher-footer-date{text-align:center;margin-top:14px;font-size:11px;color:#475467}
@media print{.expense-signatures{display:grid!important;grid-template-columns:1fr 1fr!important;gap:70px!important;page-break-inside:avoid}.expense-signatures>div:first-child{text-align:center!important;justify-self:start!important}.expense-signatures>div:last-child{text-align:center!important;justify-self:end!important}.voucher-footer-date{margin-top:10px}}

/* v34: voucher print footer signatures */
.voucher-signature-footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:18mm;padding-top:10mm;width:100%;box-sizing:border-box;}
.voucher-signature-left,.voucher-signature-right{width:38%;text-align:center;}
.voucher-signature-left{margin-right:auto;}
.voucher-signature-right{margin-left:auto;}
.voucher-signature-footer .signature-line{border-top:1px solid #222;margin-top:16mm;margin-bottom:2mm;}
@media print{.voucher-signature-footer{position:relative;margin-top:25mm;padding-top:0;page-break-inside:avoid!important;break-inside:avoid!important;}.voucher-signature-left,.voucher-signature-right{width:38%;}.voucher-footer-date{text-align:center;margin-top:8mm;}}
/* v39: all-staff monthly salary sheet */
.salary-sheet-print{width:100%;box-sizing:border-box}
.salary-sheet-table th,.salary-sheet-table td{padding:3.5px 4px!important;font-size:7.2pt!important;line-height:1.05!important;white-space:nowrap}
.salary-summary-table th,.salary-summary-table td,.salary-total-table th,.salary-total-table td{padding:4px 5px!important;font-size:7.5pt!important}
.salary-sheet-footer{display:flex;justify-content:flex-end;align-items:flex-end;width:100%;margin-top:12mm;padding-top:4mm;page-break-inside:avoid;break-inside:avoid}.salary-authorized{width:42mm;text-align:center}.salary-authorized .signature-line{border-top:1px solid #222;margin-top:10mm;margin-bottom:2mm}.salary-authorized small{display:block;font-size:6.5pt;margin-top:1mm;color:#667085}
@media print{
  @page{size:A4 landscape;margin:7mm}
  .salary-sheet-print{page-break-inside:avoid!important;break-inside:avoid!important}
  .salary-sheet-print .official-letterhead{margin-bottom:2mm!important}
  .salary-sheet-print .document-title{margin:2mm 0 3mm!important}
  .salary-sheet-table{table-layout:auto}
  .salary-sheet-table th,.salary-sheet-table td{font-size:6.6pt!important;padding:2.8px 3px!important}
  .salary-summary-table th,.salary-summary-table td,.salary-total-table th,.salary-total-table td{font-size:6.8pt!important;padding:3px 4px!important}
  .salary-sheet-footer{margin-top:8mm;padding-top:0}.salary-authorized{width:45mm}.salary-authorized .signature-line{margin-top:8mm}
}

/* v41: global print watermark for every printable document */
@media print{
  html,body{background:#fff!important}
  body{position:relative!important}
  body::before{
    content:url('mjptti-logo.png');
    position:fixed;
    left:50%;
    top:50%;
    width:105mm;
    height:105mm;
    object-fit:contain;
    transform:translate(-50%,-50%);
    opacity:.12;
    pointer-events:none;
    z-index:0;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  body>*{position:relative;z-index:1}
  .no-print,aside,header{z-index:2}
}
/* Exam & Result v44 */
.result-status{display:inline-block;min-width:58px;text-align:center;padding:5px 9px;border-radius:6px;font-weight:900;font-size:11px;background:#eef2f7;color:#344054}.result-status.pass{background:#dcfce7;color:#166534;border:1px solid #86efac}.result-status.fail{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.result-entry-table td{vertical-align:top}.exam-note{width:100%;min-width:180px;box-sizing:border-box;border:1px solid #d0d5dd;border-radius:6px;padding:7px;resize:vertical}.field{display:flex;flex-direction:column;gap:5px}.field.full{grid-column:1/-1}.field label{font-weight:800;font-size:13px;color:#344054}.field select[multiple]{min-height:150px}.actions{margin-top:14px}.result-entry-table .mark-input{width:95px}.result-sheet{margin-bottom:18px}.result-sheet .result-status{font-size:10px}
@media print{.result-status.pass{background:#dcfce7!important;color:#166534!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.result-status.fail{background:#fee2e2!important;color:#991b1b!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

.result-search-panel{border-top:4px solid var(--primary)}
.result-search-title h3{margin:0 0 4px;font-size:20px}
.result-search-title p{margin:0}
.result-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.result-search-cards{margin:14px 0}
.result-filter-note{padding:4px 0;color:#526174}
.result-search-card{margin-top:14px}
.result-search-card .result-top{align-items:center}
@media(max-width:1050px){.result-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.result-filter-grid{grid-template-columns:1fr}.result-search-card .result-top{align-items:flex-start;gap:10px;flex-direction:column}}

/* Certificate v2: A4 portrait single-page layout with double watermark */
.certificate-document .certificate{width:210mm;max-width:100%;height:281mm;min-height:0;margin:0 auto;padding:4mm;box-sizing:border-box;display:block;background:#fff}
.certificate-document .cert-border{position:relative;width:100%;height:273mm;min-height:0!important;max-width:none;margin:0;padding:18mm 15mm 14mm!important;box-sizing:border-box;border:3px solid #1d315e!important;outline:1px solid #ec6d22;outline-offset:-7px;border-radius:1mm;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#fff,#fbfcff)}
.certificate-document .cert-border:before{content:"";position:absolute;left:50%;top:50%;width:90mm;height:90mm;transform:translate(-50%,-50%);background:url('mjptti-logo.png') center/contain no-repeat;opacity:.035;z-index:0;pointer-events:none}.certificate-document .cert-border:after{display:none!important}
.certificate-document .cert-border>*{position:relative;z-index:1}
.certificate-document .cert-border{background-image:linear-gradient(135deg,#fff,#fbfcff)!important}
@media print{
  @page{size:A4 portrait;margin:8mm}
  .certificate-document{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
  .certificate-document .certificate{width:100%!important;height:273mm!important;min-height:273mm!important;max-height:273mm!important;padding:4mm!important;margin:0!important;page-break-after:avoid!important;page-break-inside:avoid!important}
  .certificate-document .cert-border{height:265mm!important;min-height:0!important;padding:18mm 15mm 14mm!important;margin:0!important;page-break-inside:avoid!important}
  .certificate-document .cert-title{font-size:25pt!important;letter-spacing:2.5px!important;margin:6mm 0 3mm!important}
  .certificate-document .cert-name{font-size:25pt!important;margin:5mm 0!important}
  .certificate-document .cert-course{font-size:17pt!important;margin:4mm 0!important}
  .certificate-document .cert-meta{font-size:7.5pt!important;margin-top:7mm!important}
  .certificate-document .cert-sign{margin-top:auto!important;padding-top:8mm!important}
}


/* Certificate form + sample-inspired A4 portrait certificate */
.certificate-details-panel{border:1px solid #dfe5ee}.certificate-auto-note{padding:10px 12px;border-left:3px solid #ec6d22;background:#fff8f1;color:#536174;margin-bottom:14px;font-size:12px}.certificate-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.cert-input{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:700;color:#344054}.cert-input input{width:100%;padding:9px 10px;border:1px solid #d9e0e8;border-radius:7px;background:#fff;font:inherit;font-weight:500;color:#172033}.certificate-form-actions{display:flex;gap:10px;margin-top:15px}.cert-input:nth-child(5),.cert-input:nth-child(6),.cert-input:nth-child(16),.cert-input:nth-child(17){grid-column:span 1}@media(max-width:800px){.certificate-form-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.certificate-form-grid{grid-template-columns:1fr}.certificate-form-actions{flex-direction:column}}

/* v35: certificate statement and institute address below signatures */
.print-certificate .cert-footer{display:block!important;text-align:center!important;border-top:0!important;margin:2mm 2mm 0!important;padding-top:1mm!important;font-size:6pt!important;line-height:1.45!important;color:#596273!important;}
.print-certificate .cert-footer div:first-child{font-weight:700!important;color:#344054!important;}
.print-certificate .cert-footer div:last-child{margin-top:.6mm!important;font-weight:600!important;}
@media print{.print-certificate .cert-footer{display:block!important;page-break-inside:avoid!important;break-inside:avoid!important;}}

.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:#344054}.form-grid input,.form-grid select{width:100%;box-sizing:border-box;padding:10px 11px;border:1px solid #d9e0e8;border-radius:8px;background:#fff;font:inherit;font-weight:500;color:#172033}.form-actions{display:flex;gap:10px;margin-top:16px}.form-grid input[readonly]{background:#f3f6fa;font-weight:700;letter-spacing:.3px}@media(max-width:700px){.form-grid{grid-template-columns:1fr}}


/* Student Photo Upload */
.photo-upload-box{margin-top:14px;border:1px dashed #b9c8d7;background:#f8fbfc;border-radius:12px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.photo-upload-box>div:first-child{display:grid;gap:4px}.photo-upload-box b{font-size:13px}.photo-upload-box small{display:block;color:#718096;font-size:11px}.photo-upload-box input{margin-top:7px}
.student-photo-preview{width:90px;height:112px;border:1px solid #cfd8e3;border-radius:8px;background:#fff;display:grid;place-items:center;overflow:hidden;color:#9aa6b5;font-size:10px;text-align:center;flex:none}
.student-photo-preview img{width:100%;height:100%;object-fit:cover}

/* Professional Student ID Card */
.idcard-preview-header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.idcard-preview-header h3{margin:0}.idcard-preview-header p{margin:4px 0 0;color:#718096;font-size:12px}
.idcard-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
.idcard-preview-grid>div{display:flex;flex-direction:column;align-items:center;gap:7px}.idcard-label{font-size:11px;font-weight:800;letter-spacing:1.5px;color:#667085}
.idcard-face{width:85.6mm;height:53.98mm;position:relative;overflow:hidden;border-radius:3.2mm;background:#fff;border:1px solid #ccd5df;box-shadow:0 10px 25px rgba(18,48,5,.12);font-family:"Noto Sans", "Noto Sans Bengali", "Hind Siliguri", sans-serif;color:#17284f}
.idcard-front{padding:3.2mm;background:linear-gradient(135deg,#ffffff 0%,#f5faf9 100%)}
.idcard-top{height:10mm;display:flex;align-items:center;gap:2.3mm;border-bottom:.5mm solid #ec6d21;padding-bottom:1.6mm}
.idcard-logo{width:14mm;height:8mm;object-fit:contain}.idcard-top b{display:block;font-size:5.2pt;line-height:1.05;letter-spacing:.25px}.idcard-top small{display:block;font-size:3.9pt;color:#ec6d21;margin-top:.7mm;font-weight:700}
.idcard-title{text-align:center;font-size:6.7pt;font-weight:900;letter-spacing:1.2px;color:#182b55;padding:1.8mm 0 1.3mm}
.idcard-front-body{display:flex;gap:3.2mm;height:31mm}.idcard-photo{width:22mm;height:27mm;object-fit:cover;border:1px solid #b8c7d8;border-radius:1.4mm;background:#eef3f7;flex:none}.idcard-photo-empty{display:grid;place-items:center;font-size:6pt;font-weight:800;color:#8793a3}
.idcard-main-info{min-width:0;flex:1}.idcard-main-info h2{font-size:9.5pt;line-height:1.1;margin:0;color:#102c50;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.idcard-bn{font-size:5.5pt;color:#6b7686;margin:.8mm 0 1.2mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.idcard-row{display:grid;grid-template-columns:16mm 1fr;gap:1mm;border-bottom:.2mm solid #e2e8ef;padding:.7mm 0;font-size:5pt;line-height:1.1}.idcard-row span{color:#778397}.idcard-row b{color:#17284f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.idcard-footer{position:absolute;left:3.2mm;right:3.2mm;bottom:2.1mm;border-top:.2mm solid #dfe6ee;padding-top:1mm;display:flex;justify-content:space-between;font-size:4.2pt;color:#697688}
.idcard-back{padding:3.2mm;background:linear-gradient(135deg,#f8fbfd 0%,#eef7f5 100%)}.idcard-back-head{display:flex;align-items:center;gap:2.5mm;border-bottom:.5mm solid #ec6d21;padding-bottom:1.5mm}.idcard-back-logo{width:15mm;height:8mm;object-fit:contain}.idcard-back-head b{display:block;font-size:7pt;letter-spacing:.6px}.idcard-back-head small{font-size:4.2pt;color:#ec6d21;font-weight:800}
.idcard-back-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.3mm;margin-top:2mm}.idcard-back-grid>div{border:1px solid #dbe3ea;background:#fff;padding:1.1mm 1.4mm;border-radius:1mm;min-height:7mm}.idcard-back-grid .wide{grid-column:1/-1;min-height:9mm}.idcard-back-grid span{display:block;font-size:4pt;color:#7a8798}.idcard-back-grid b{display:block;font-size:4.8pt;color:#17284f;margin-top:.5mm;line-height:1.1;overflow:hidden;text-overflow:ellipsis}
.idcard-rules{margin-top:1.6mm;background:#fff;border:1px solid #dce3e9;border-radius:1mm;padding:1.4mm 1.7mm}.idcard-rules>b{font-size:4.5pt;color:#ec6d21;letter-spacing:.8px}.idcard-rules ul{margin:.6mm 0 0;padding-left:3mm}.idcard-rules li{font-size:3.65pt;line-height:1.25;margin:0 0 .45mm}
.idcard-contact{text-align:center;font-size:3.8pt;line-height:1.25;color:#5e6b7c;margin-top:1.5mm}.idcard-contact b{color:#182b55}.idcard-back-sign{position:absolute;right:3.2mm;bottom:2mm;font-size:4pt;border-top:.2mm solid #778397;padding-top:.7mm;width:22mm;text-align:center}
.idcard-print-note{text-align:center;margin-top:16px}.idcard-print-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:270mm;page-break-after:always}.idcard-print-page:last-child{page-break-after:auto}.idcard-print-label{font-size:10px;font-weight:800;letter-spacing:2px;margin-bottom:7mm;color:#667085}
@media(max-width:800px){.idcard-preview-grid{grid-template-columns:1fr}.photo-upload-box{align-items:flex-start}.idcard-preview-header{display:block}.idcard-preview-header .actions{margin-top:10px}}


/* vNext — Portrait CR80 Student ID Card */
.idcard-preview-grid{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start;justify-content:center}
.idcard-face{width:53.98mm!important;height:85.60mm!important;min-width:53.98mm!important;min-height:85.60mm!important;box-sizing:border-box;position:relative;overflow:hidden;border-radius:3mm!important;background:#fff;border:1px solid #d9dee8;box-shadow:0 10px 28px rgba(15,23,42,.14);color:#17213b;font-family:Inter,"Noto Sans",sans-serif}
.idcard-front{padding:4mm 3.5mm 3.2mm;text-align:center;background:linear-gradient(180deg,#f8fbff 0%,#fff 38%,#fff 100%)}
.idcard-front:before{content:"";position:absolute;left:0;right:0;top:0;height:2.2mm;background:linear-gradient(90deg,#182b55,#ec6d22,#182b55)}
.idcard-front-brand{padding-top:1.5mm}.idcard-logo{width:15mm;height:15mm;object-fit:contain;display:block;margin:0 auto 1.2mm}.idcard-institute{font-size:6.3pt;font-weight:900;line-height:1.15;letter-spacing:.25px;color:#182b55}.idcard-card-title{font-size:5.5pt;font-weight:800;letter-spacing:1.1px;color:#ec6d22;margin-top:1mm}
.idcard-photo-wrap{margin:2.5mm auto 1.5mm}.idcard-photo{width:25mm!important;height:31mm!important;object-fit:cover;border-radius:1.5mm;border:1px solid #b8c2d4;background:#eef2f7;display:block;margin:auto}.idcard-photo-empty{display:flex!important;align-items:center;justify-content:center;font-size:6pt;font-weight:800;color:#667085}
.idcard-student-name{font-size:8.2pt;font-weight:900;line-height:1.05;text-transform:uppercase;color:#182b55}.idcard-student-bn{font-family:"Noto Sans Bengali",sans-serif;font-size:6.3pt;font-weight:700;margin-top:.5mm}
.idcard-info-list{margin-top:2mm;text-align:left;border-top:1px solid #e3e8f0}.idcard-info-list>div{display:flex;justify-content:space-between;gap:2mm;border-bottom:1px solid #e8ecf2;padding:1mm 0;font-size:5.3pt;line-height:1.1}.idcard-info-list span{color:#667085;font-weight:800}.idcard-info-list b{text-align:right;color:#182b55;max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.idcard-back{padding:6mm 4mm 4mm;text-align:center;background:linear-gradient(180deg,#f8fbff,#fff)}
.idcard-back-message h3{font-size:8pt;color:#182b55;margin:0 0 2mm;letter-spacing:.5px}.idcard-back-message p{font-family:"Noto Sans Bengali",sans-serif;font-size:6.4pt;line-height:1.45;margin:0 0 1.5mm;color:#374151}.idcard-back-en{font-family:Inter,"Noto Sans",sans-serif!important;font-size:5.7pt!important;color:#667085!important}
.idcard-back-contact{margin:3mm 0 2.5mm;padding:2.2mm;border:1px solid #dfe5ee;border-radius:1.5mm;background:#f8fafc;display:flex;flex-direction:column;gap:.7mm;font-size:5.2pt;line-height:1.25}.idcard-back-contact b{font-size:5.8pt;color:#182b55}.idcard-back-contact span{color:#4b5563}
.idcard-back-logo{width:14mm;height:14mm;object-fit:contain;display:block;margin:1mm auto 2mm}.idcard-qr-wrap{display:flex;flex-direction:column;align-items:center;gap:1mm}.idcard-qr{width:27mm!important;height:27mm!important;object-fit:contain;border:1px solid #d7dee8;padding:1mm;background:#fff}.idcard-qr-wrap small{font-size:4.8pt;font-weight:900;letter-spacing:.8px;color:#182b55}.idcard-verify-note{font-family:"Noto Sans Bengali",sans-serif;font-size:4.8pt;line-height:1.3;color:#667085;margin-top:1.5mm}
.idcard-print-page{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:280mm}.print-idcard .idcard-print-label{font:800 9pt Inter,sans-serif;letter-spacing:2px;color:#667085;margin-bottom:8mm}.print-idcard .idcard-face{width:53.98mm!important;height:85.60mm!important;min-width:53.98mm!important;min-height:85.60mm!important;box-shadow:none!important;border-radius:2mm!important;page-break-inside:avoid;break-inside:avoid}
@page idcardPage{size:A4 portrait;margin:12mm}.print-idcard{background:#fff;page:idcardPage}.print-idcard .idcard-print-page{page-break-after:always;break-after:page}.print-idcard .idcard-print-page:last-child{page-break-after:auto;break-after:auto}.print-idcard .idcard-print-label{font:800 9pt Inter,sans-serif;letter-spacing:2px;color:#667085;margin-bottom:8mm}.print-idcard .idcard-face{width:53.98mm!important;height:85.60mm!important;min-width:53.98mm!important;min-height:85.60mm!important;box-shadow:none!important;border-radius:2mm!important;page-break-inside:avoid;break-inside:avoid}
@media print{.print-idcard{padding:0!important}.print-idcard .idcard-print-page{min-height:270mm}.print-idcard .idcard-print-label{display:none!important}.print-idcard .idcard-face{box-shadow:none!important}}

/* vNext — One-page portrait duplex ID card print sheet */
.idcard-duplex-sheet{width:53.98mm;height:171.20mm;margin:0 auto;padding:0;display:flex;flex-direction:column;gap:0;background:#fff;overflow:hidden}
.idcard-duplex-face{width:53.98mm;height:85.60mm;min-width:53.98mm;min-height:85.60mm;flex:none;overflow:hidden}
.idcard-duplex-face .idcard-face{width:53.98mm!important;height:85.60mm!important;min-width:53.98mm!important;min-height:85.60mm!important;border-radius:0!important;box-shadow:none!important;border:0!important}
@page idcardDuplexPage{size:53.98mm 171.20mm;margin:0}
.print-idcard-duplex{width:53.98mm!important;min-width:53.98mm!important;margin:0!important;padding:0!important;background:#fff;page:idcardDuplexPage}
.print-idcard-duplex body{margin:0!important;padding:0!important;width:53.98mm!important;min-width:53.98mm!important}
.print-idcard-duplex .idcard-duplex-sheet{width:53.98mm!important;height:171.20mm!important;margin:0!important;padding:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;page-break-after:avoid!important;break-after:avoid!important}
.print-idcard-duplex .idcard-duplex-face{width:53.98mm!important;height:85.60mm!important;min-width:53.98mm!important;min-height:85.60mm!important;flex:none!important;overflow:hidden!important}
.print-idcard-duplex .idcard-face{width:53.98mm!important;height:85.60mm!important;min-width:53.98mm!important;min-height:85.60mm!important;box-shadow:none!important;border:0!important;border-radius:0!important}
@media print{
  html,body{margin:0!important;padding:0!important;background:#fff!important}
  .print-idcard-duplex{width:53.98mm!important;min-width:53.98mm!important;padding:0!important;margin:0!important}
  .print-idcard-duplex .idcard-duplex-sheet{width:53.98mm!important;height:171.20mm!important}
}

/* Final portrait ID card design: compact safe-area layout, English-only content */
.idcard-face{box-sizing:border-box!important;overflow:hidden!important;font-family:Inter,"Noto Sans",Arial,sans-serif!important}
.idcard-front,.idcard-back{width:53.98mm!important;height:85.60mm!important;padding:0!important;border:0!important;border-radius:2.4mm!important;position:relative!important;box-sizing:border-box!important;overflow:hidden!important}
.idcard-front{background:linear-gradient(160deg,#f7fbff 0%,#ffffff 42%,#eef5fb 100%)!important;color:#17284f!important}
.idcard-back{background:linear-gradient(160deg,#f2f7fb 0%,#ffffff 45%,#edf4f8 100%)!important;color:#17284f!important}
.idcard-accent{position:absolute;left:0;right:0;top:0;height:3.2mm;background:linear-gradient(90deg,#102a56 0%,#1c5d8f 48%,#d59a2d 100%)!important}
.idcard-front-brand{position:relative!important;padding:6mm 3.5mm 0!important;text-align:center!important}
.idcard-logo{width:13mm!important;height:13mm!important;object-fit:contain!important;display:block!important;margin:0 auto 1mm!important}
.idcard-institute{font-size:5.55pt!important;line-height:1.15!important;font-weight:900!important;letter-spacing:.22px!important;color:#102a56!important;white-space:nowrap!important}
.idcard-card-title{font-size:5pt!important;line-height:1!important;font-weight:900!important;letter-spacing:1.15px!important;color:#c38316!important;margin-top:.9mm!important}
.idcard-photo-wrap{margin:2mm auto 1.2mm!important}
.idcard-photo{width:22mm!important;height:26mm!important;object-fit:cover!important;display:block!important;margin:auto!important;border:1px solid #9db0c5!important;border-radius:1.2mm!important;background:#e8eef4!important;box-shadow:0 1.5mm 3mm rgba(16,42,86,.10)!important}
.idcard-photo-empty{display:flex!important;align-items:center!important;justify-content:center!important;font-size:5.2pt!important;font-weight:900!important;color:#718096!important}
.idcard-student-name{margin:0 3.5mm!important;font-size:7.1pt!important;line-height:1.05!important;font-weight:900!important;text-transform:uppercase!important;color:#102a56!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;text-align:center!important}
.idcard-info-list{margin:1.4mm 4mm 0!important;border-top:1px solid #d9e2eb!important;text-align:left!important}
.idcard-info-list>div{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:1.5mm!important;height:4.45mm!important;box-sizing:border-box!important;border-bottom:1px solid #e3e9ef!important;font-size:4.45pt!important;line-height:1!important}
.idcard-info-list span{color:#66758a!important;font-weight:800!important;letter-spacing:.35px!important;flex:none!important}
.idcard-info-list b{color:#102a56!important;font-weight:800!important;max-width:65%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;text-align:right!important}
.idcard-front-footer{position:absolute!important;left:4mm!important;right:4mm!important;bottom:2.3mm!important;text-align:center!important;font-size:3.45pt!important;letter-spacing:.7px!important;color:#7a8798!important;font-weight:800!important}
.idcard-back-title{position:relative!important;padding:7mm 4mm 0!important;text-align:center!important;font-size:7.2pt!important;line-height:1!important;font-weight:900!important;letter-spacing:.65px!important;color:#102a56!important}
.idcard-back-message{margin:2.3mm 5mm 0!important;text-align:center!important;font-size:5pt!important;line-height:1.35!important;color:#526174!important}
.idcard-back-contact{margin:2.5mm 4.5mm 0!important;padding:2mm 2.2mm!important;border:1px solid #d7e0e9!important;border-radius:1.3mm!important;background:rgba(255,255,255,.88)!important;display:flex!important;flex-direction:column!important;gap:.65mm!important;text-align:center!important;font-size:4.45pt!important;line-height:1.2!important;min-height:13mm!important;box-sizing:border-box!important}
.idcard-back-contact b{font-size:5.1pt!important;color:#102a56!important;line-height:1.1!important}
.idcard-back-contact span{color:#526174!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.idcard-back-logo{width:10.5mm!important;height:10.5mm!important;object-fit:contain!important;display:block!important;margin:1.5mm auto 1.1mm!important}
.idcard-qr-wrap{display:flex!important;flex-direction:column!important;align-items:center!important;gap:.65mm!important}
.idcard-qr{width:22mm!important;height:22mm!important;object-fit:contain!important;border:1px solid #d3dce6!important;padding:.7mm!important;background:#fff!important;box-sizing:border-box!important}
.idcard-qr-wrap small{font-size:4.15pt!important;line-height:1!important;font-weight:900!important;letter-spacing:.7px!important;color:#102a56!important}
.idcard-verify-note{margin:1mm 5mm 0!important;text-align:center!important;font-size:3.75pt!important;line-height:1.3!important;color:#66758a!important}
.idcard-back-footer{position:absolute!important;left:3.5mm!important;right:3.5mm!important;bottom:2.2mm!important;text-align:center!important;font-size:3.1pt!important;letter-spacing:.45px!important;color:#8793a2!important;font-weight:800!important}
.idcard-duplex-sheet{width:53.98mm!important;height:171.20mm!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;gap:0!important}
.idcard-duplex-face{width:53.98mm!important;height:85.60mm!important;min-width:53.98mm!important;min-height:85.60mm!important;flex:0 0 85.60mm!important;overflow:hidden!important}
.print-idcard-duplex .idcard-face{width:53.98mm!important;height:85.60mm!important;min-width:53.98mm!important;min-height:85.60mm!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:hidden!important}
@page idcardDuplexPage{size:53.98mm 171.20mm;margin:0!important}
.print-idcard-duplex{page:idcardDuplexPage!important;width:53.98mm!important;min-width:53.98mm!important;padding:0!important;margin:0!important;background:#fff!important}
@media print{html,body{margin:0!important;padding:0!important;background:#fff!important}.print-idcard-duplex .idcard-duplex-sheet{width:53.98mm!important;height:171.20mm!important;overflow:hidden!important}.print-idcard-duplex .idcard-duplex-face{overflow:hidden!important}}


/* Logo harmony: framed white logo panel with premium navy/gold border */
.idcard-logo-frame{width:16.5mm!important;height:13.8mm!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0 auto 1mm!important;padding:1mm!important;box-sizing:border-box!important;background:linear-gradient(145deg,#ffffff,#f7f9fc)!important;border:.45mm solid #c99632!important;border-radius:2.4mm!important;box-shadow:0 1mm 2.8mm rgba(16,42,86,.16), inset 0 0 0 .25mm rgba(16,42,86,.14)!important}
.idcard-logo-frame .idcard-logo{width:13mm!important;height:11mm!important;margin:0!important;object-fit:contain!important}
.idcard-back-logo-frame{width:13.5mm!important;height:13.5mm!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:1.5mm auto 1.1mm!important;padding:1mm!important;box-sizing:border-box!important;background:linear-gradient(145deg,#ffffff,#f7f9fc)!important;border:.4mm solid #c99632!important;border-radius:50%!important;box-shadow:0 1mm 2.8mm rgba(16,42,86,.15), inset 0 0 0 .22mm rgba(16,42,86,.14)!important}
.idcard-back-logo-frame .idcard-back-logo{width:10.5mm!important;height:10.5mm!important;margin:0!important;object-fit:contain!important}

/* vPremium — Student ID Card visual system */
.idcard-preview-header{padding:4mm 4.5mm;border-radius:4mm;background:linear-gradient(135deg,#0b2144,#173f69 55%,#b88424);color:#fff;box-shadow:0 4mm 12mm rgba(11,33,68,.18);margin-bottom:5mm}
.idcard-preview-header h3{color:#fff!important;letter-spacing:.3px}.idcard-preview-header p{color:rgba(255,255,255,.78)!important}
.idcard-action-buttons{display:flex;flex-wrap:wrap;gap:2mm;justify-content:flex-end}.idcard-action-buttons .btn,.idcard-action-buttons .primary{border-radius:2.2mm!important;font-weight:800!important;box-shadow:0 1.5mm 4mm rgba(0,0,0,.12)!important}
.idcard-preview-grid{gap:7mm!important}.idcard-preview-grid>div{padding:4mm;border-radius:4mm;background:linear-gradient(145deg,#f7f9fc,#eef3f8);border:1px solid #dbe4ee;box-shadow:0 2mm 8mm rgba(15,35,60,.07)}
.idcard-label{padding:1.5mm 3mm;border-radius:99px;background:#102a56;color:#fff!important}
.idcard-face{border:0!important;box-shadow:0 5mm 15mm rgba(16,42,86,.20)!important}
.idcard-front,.idcard-back{background:linear-gradient(145deg,#ffffff 0%,#f7faff 52%,#eaf1f8 100%)!important}
.idcard-accent{height:4mm!important;background:linear-gradient(90deg,#071d3a 0%,#155a8a 52%,#d6a33b 100%)!important}
.idcard-front-brand{padding-top:6.6mm!important}.idcard-logo{filter:drop-shadow(0 1mm 1.5mm rgba(16,42,86,.14))}
.idcard-card-title{display:inline-block!important;padding:1mm 3mm!important;border-radius:99px!important;background:linear-gradient(90deg,#d8aa4b,#b97917)!important;color:#fff!important;box-shadow:0 1mm 2mm rgba(185,121,23,.2)}
.idcard-photo{border:1.2px solid #c4a45c!important;box-shadow:0 1.5mm 4mm rgba(16,42,86,.16)!important}
.idcard-info-list{background:rgba(255,255,255,.7)!important;border:1px solid #dce5ee!important;border-radius:2mm!important;padding:0 1.5mm!important}
.idcard-info-list>div{border-bottom:1px solid #e4eaf0!important}.idcard-info-list>div:last-child{border-bottom:0!important}
.idcard-back-title{padding-top:8mm!important}.idcard-back-contact{box-shadow:0 1.5mm 4mm rgba(16,42,86,.08)!important;border-color:#cbd9e6!important}
.idcard-qr{border:1.2px solid #b9913b!important;box-shadow:0 1.5mm 4mm rgba(16,42,86,.12)!important}
@media(max-width:900px){.idcard-action-buttons{justify-content:flex-start}.idcard-preview-grid{grid-template-columns:1fr!important}}

/* Premium print controls */
.print-idcard-duplex .np{position:fixed!important;right:5mm!important;top:5mm!important;display:flex!important;gap:2mm!important;z-index:9999!important}
.print-idcard-duplex .np button{border:0!important;border-radius:2mm!important;padding:2.5mm 4mm!important;background:#102a56!important;color:#fff!important;font:800 9pt Inter,Arial,sans-serif!important;cursor:pointer!important;box-shadow:0 2mm 5mm rgba(16,42,86,.2)!important}
.print-idcard-duplex .np button:last-child{background:#b98224!important}
@media print{.print-idcard-duplex .np{display:none!important}}

/* vExact: true physical-size ID card printing/PDF — no A4 sheet */
@media print {
  @page idcardExactPage { size: 53.98mm 85.60mm; margin: 0; }
}
.print-idcard-duplex .idcard-exact-page {
  width: 53.98mm !important;
  height: 85.60mm !important;
  min-width: 53.98mm !important;
  min-height: 85.60mm !important;
  max-width: 53.98mm !important;
  max-height: 85.60mm !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  page-break-after: always !important;
  break-after: page !important;
  page: idcardExactPage !important;
}
.print-idcard-duplex .idcard-exact-page:last-of-type {
  page-break-after: auto !important;
  break-after: auto !important;
}
.print-idcard-duplex .idcard-exact-page .idcard-face {
  width: 53.98mm !important;
  height: 85.60mm !important;
  min-width: 53.98mm !important;
  min-height: 85.60mm !important;
  max-width: 53.98mm !important;
  max-height: 85.60mm !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
}
