:root {
  --bg: #f7f4ee; --card: #ffffff; --text: #1a1814; --muted: #6b6560; --dim: #a09a94;
  --border: #e2ddd6; --border2: #ccc8c0; --saffron: #e8620a; --saf-h: #c9520a;
  --green: #1a7a4a; --slate: #2c3248; --red: #c0392b; --blue: #2563eb; --gold: #b5860a;
  --r: 10px; --shadow: 0 2px 16px rgba(26,24,20,.07); --shadow-l: 0 8px 32px rgba(26,24,20,.12);
}
[data-theme="dark"] {
  --bg: #111318; --card: #1c1f28; --text: #e8e4dc; --muted: #7a7888; --dim: #4a4858;
  --border: #2a2e3a; --border2: #363a4a; --saffron: #e8620a; --saf-h: #ff7c30;
  --green: #00c87a; --slate: #4a5278; --red: #ff4757; --blue: #4a9eff; --gold: #d4a843;
  --shadow: 0 2px 16px rgba(0,0,0,.3); --shadow-l: 0 8px 32px rgba(0,0,0,.5);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Nunito',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column;transition:background .3s,color .3s;}
body::before{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image: repeating-linear-gradient(0deg,transparent,transparent 27px,rgba(180,160,130,.13) 27px,rgba(180,160,130,.13) 28px),
  linear-gradient(90deg, transparent 52px, rgba(220,100,80,.12) 52px, rgba(220,100,80,.12) 53px, transparent 53px),
  radial-gradient(circle, rgba(180,160,130,.06) 1px, transparent 1px);
  background-size: 100% 28px, 100% 100%, 28px 28px;
}
[data-theme="dark"] body::before{
  background-image: repeating-linear-gradient(0deg,transparent,transparent 27px,rgba(80,90,120,.2) 27px,rgba(80,90,120,.2) 28px),
  linear-gradient(90deg, transparent 52px, rgba(180,80,80,.12) 52px, rgba(180,80,80,.12) 53px, transparent 53px),
  radial-gradient(circle, rgba(80,90,120,.07) 1px, transparent 1px);
}

header{position:relative;z-index:10;background:var(--card);border-bottom:1px solid var(--border);padding:0 clamp(14px,5vw,40px);display:flex;align-items:center;justify-content:space-between;height:62px;box-shadow:var(--shadow);}
.logo{font-family:'Playfair Display',serif;font-weight:800;font-size:1.1rem;letter-spacing:-.02em;display:flex;align-items:center;gap:9px;cursor:pointer;user-select:none;}
.logo-sq{width:32px;height:32px;border-radius:8px;background:var(--saffron);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:800;color:#fff;font-family:'Playfair Display',serif;}
.hdr-right{display:flex;align-items:center;gap:8px;}
.icon-btn{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:6px 12px;border-radius:7px;cursor:pointer;font-size:.82rem;font-weight:600;font-family:'Nunito',sans-serif;transition:all .15s;}
.icon-btn:hover{border-color:var(--border2);background:var(--card);}

main{position:relative;z-index:1;flex:1;display:grid;grid-template-columns:1fr min(560px,100%) 300px 1fr;column-gap:20px;padding:clamp(20px,5vw,48px) clamp(14px,5vw,20px);}
.card{grid-column:2;background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-l);overflow:hidden;}

.progress-track{display:flex;border-bottom:1px solid var(--border);background:var(--bg);}
.step-tab{flex:1;padding:13px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;border-right:1px solid var(--border);transition:background .2s;color:var(--muted);}
.step-tab:last-child{border-right:none;}
.step-tab.active{background:var(--slate);color:#fff;}
.step-tab.done{background:var(--green);color:#fff;}
[data-theme="dark"] .step-tab.active{background:#2c3248;}
.step-num{font-size:.88rem;font-weight:700;width:24px;height:24px;border:2px solid currentColor;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.step-tab.done .snv{display:none;}
.step-tab.done .step-num::after{content:'✓';font-size:.8rem;}
.step-label{font-size:.65rem;text-transform:uppercase;font-weight:700;letter-spacing:.05em;}

.form-section{display:none;padding:28px 26px 24px;}
.form-section.active{display:block;animation:fadeUp .28s ease;}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}

.sec-title{font-family:'Playfair Display',serif;font-size:1.3rem;font-weight:700;margin-bottom:4px;letter-spacing:-.02em;}
.sec-sub{font-size:.82rem;color:var(--muted);margin-bottom:22px;line-height:1.5;}
.bilingual{font-style:italic;color:var(--dim);font-size:.9em;font-family:'Nunito',sans-serif;font-weight:400;}

.field{margin-bottom:16px;}
.field label{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:7px;}
.field input,.field select{width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:8px;font-family:'Nunito',sans-serif;font-size:.93rem;color:var(--text);background:var(--bg);transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;}
.field input:focus,.field select:focus{outline:none;border-color:var(--saffron);box-shadow:0 0 0 3px rgba(232,98,10,.1);}
.field input.err,.field select.err{border-color:var(--red);}
.ferr{font-size:.74rem;color:var(--red);margin-top:5px;display:none;}
.ferr.show{display:block;}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden;}
.select-wrap{position:relative;}
.select-wrap::after{content:'▾';position:absolute;right:13px;top:50%;transform:translateY(-50%);pointer-events:none;font-size:.8rem;color:var(--dim);}

.btn-row{display:flex;gap:10px;margin-top:20px;}
.btn{flex:1;padding:12px;font-family:'Nunito',sans-serif;font-weight:700;font-size:.88rem;border:1.5px solid var(--border);border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .18s;}
.btn-primary{background:var(--saffron);color:#fff;border-color:var(--saffron);}
.btn-primary:hover{background:var(--saf-h);border-color:var(--saf-h);transform:translateY(-1px);box-shadow:0 4px 12px rgba(232,98,10,.3);}
.btn-ghost{background:transparent;color:var(--text);}
.btn-ghost:hover{background:var(--bg);}
.btn-dark{background:var(--slate);color:#fff;border-color:var(--slate);}
.btn-dark:hover{background:var(--saffron);border-color:var(--saffron);transform:translateY(-1px);}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;}
.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .65s linear infinite;display:none;}
.btn.loading .spinner{display:block;}.btn.loading .btxt{display:none;}
@keyframes spin{to{transform:rotate(360deg);}}

.imsg{padding:9px 13px;border-radius:8px;font-size:.8rem;font-weight:600;margin-top:10px;display:none;line-height:1.5;}
.imsg.info{background:#e8f4fd;color:#1a5c8a;border:1px solid #b3d9f5;display:block;}
.imsg.error{background:#fdecea;color:#7a1a1a;border:1px solid #f5b3b3;display:block;}
.imsg.ok{background:#e8fdf0;color:#1a4e2e;border:1px solid #b3f5cc;display:block;}
[data-theme="dark"] .imsg.info{background:rgba(74,158,255,.1);color:#4a9eff;border-color:rgba(74,158,255,.3);}
[data-theme="dark"] .imsg.error{background:rgba(255,71,87,.1);color:#ff4757;border-color:rgba(255,71,87,.3);}
[data-theme="dark"] .imsg.ok{background:rgba(0,200,122,.1);color:#00c87a;border-color:rgba(0,200,122,.3);}

.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;}
.rv{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 13px;}
.rv .rl{font-size:.63rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;font-weight:700;}
.rv .rval{font-size:.9rem;font-weight:600;}
.rv.full{grid-column:1/-1;}

.action-links{margin-top:20px;padding-top:18px;border-top:1px solid var(--border);}
.action-links-title{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);font-weight:700;margin-bottom:10px;}
.alink{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;background:transparent;border:1.5px solid var(--border);color:var(--text);font-family:'Nunito',sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s;width:100%;text-align:left;margin-bottom:8px;}
.alink:last-child{margin-bottom:0;}
.alink:hover{border-color:var(--saffron);color:var(--saffron);}
.alink-icon{font-size:1rem;}

#admit-wrap{display:none;}
#admit-wrap.active{display:block;animation:fadeUp .35s ease;}
.ac-copy{border:1.5px solid var(--border);border-radius:var(--r);margin:18px 18px 0;overflow:hidden;background:var(--card);}
.ac-copy:last-of-type{margin-bottom:0;}
.ac-header{padding:16px 20px 14px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:2px solid var(--saffron);position:relative;background:var(--card);}
.ac-header::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--saffron);}
.ac-left{padding-left:10px;}
.ac-acad-name{font-family:'Playfair Display',serif;font-weight:800;font-size:1.25rem;letter-spacing:-.01em;color:var(--text);line-height:1.1;}
.ac-exam-name{font-size:.78rem;color:var(--muted);margin-top:3px;font-weight:500;}
.ac-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;}
.ac-badge{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;border:1.5px solid var(--saffron);color:var(--saffron);padding:3px 10px;border-radius:4px;}
.ac-copy-tag{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600;}

.ac-body{padding:16px 20px 14px;}
.ac-meta-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.ac-type-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 11px;border-radius:4px;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border:1.5px solid;}
.ac-type-badge.academic{color:var(--green);border-color:var(--green);background:rgba(26,122,74,.06);}
.ac-type-badge.competitive{color:var(--saffron);border-color:var(--saffron);background:rgba(232,98,10,.06);}
.ac-exam-date-pill{font-size:.72rem;color:var(--muted);font-weight:600;background:var(--bg);border:1px solid var(--border);padding:3px 10px;border-radius:4px;}

.ac-roll-qr-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;background:var(--bg);border-radius:8px;margin-bottom:14px;border:1px solid var(--border);}
.roll-block .rl{font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:2px;}
.roll-num{font-family:'Roboto Mono',monospace;font-size:2.8rem;font-weight:500;color:var(--text);line-height:1;letter-spacing:-.02em;}
.qr-box{border:1.5px solid var(--border2);border-radius:6px;overflow:hidden;width:88px;height:88px;background:#fff;flex-shrink:0;}
.qr-box canvas{width:100%!important;height:100%!important;display:block;}

.ac-fields{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;}
.af{padding:8px 12px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);}
.af:nth-child(even){border-right:none;}
.af:nth-last-child(-n+2){border-bottom:none;}
.af.full{grid-column:1/-1;border-right:none;}
.af.full:last-child{border-bottom:none;}
.af .al{font-size:.58rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:2px;}
.af .av{font-size:.86rem;font-weight:600;color:var(--text);}
.cls-badge{display:inline-block;padding:1px 9px;border-radius:3px;font-size:.76rem;font-weight:700;background:transparent;color:var(--text);border:1.5px solid var(--text);}

.student-sig-row{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border);display:flex;align-items:flex-end;gap:16px;}
.sig-block{flex:1;}
.sig-line{border-bottom:1.5px solid var(--border2);height:28px;margin-bottom:4px;}
.sig-lbl{font-size:.58rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:700;}

.ac-actions{padding:14px 18px 18px;display:flex;gap:10px;}
.btn-green{background:var(--green);color:#fff;border-color:var(--green);}

.scissors-wrap{margin:14px 18px;display:flex;align-items:center;gap:0;}
.scissors-line{flex:1;border-top:1.5px dashed var(--border2);}
.scissors-icon{padding:0 10px;font-size:1rem;color:var(--muted);transform:rotate(90deg);line-height:1;flex-shrink:0;}
.scissors-caption{font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);padding:0 8px;white-space:nowrap;}

.sidebar{grid-column:3;align-self:start;display:flex;flex-direction:column;gap:12px;}
.sb-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow);}
.sb-card h3{font-size:.72rem;color:var(--saffron);text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin-bottom:9px;}
.sb-card p{font-size:.82rem;color:var(--muted);line-height:1.6;}
.phone-link{font-weight:700;color:var(--text);font-size:.88rem;margin-top:8px;display:block;}

.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;z-index:100;}
.modal-overlay.show{display:flex;}
.modal{background:var(--card);padding:24px;border-radius:var(--r);width:min(400px,92vw);box-shadow:0 16px 48px rgba(0,0,0,.2);border:1px solid var(--border);}
.modal-close{float:right;background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--muted);}
.modal h3{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:700;margin-bottom:16px;}

.reg-closed-banner{background:#fff3e8;border:1.5px solid #f5c88c;border-radius:var(--r);padding:14px 18px;margin-bottom:18px;font-size:.84rem;color:#7a3a08;font-weight:600;display:none;}
[data-theme="dark"] .reg-closed-banner{background:rgba(232,98,10,.1);border-color:rgba(232,98,10,.3);color:var(--saf-h);}
.reg-closed-banner.show{display:block;}

@media print {
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    box-sizing: border-box !important;
  }
  
  /* Force exact A4 size with near-zero margins */
  @page {
    size: A4 portrait;
    margin: 5mm !important; 
  }
  
  body, html {
    background: #fff !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 100% !important;
  }
  
  /* Hide everything except the admit card */
  body::before, body::after, header, .sidebar, .progress-track, .form-section, .no-print {
    display: none !important;
  }
  
  main { display: block; padding: 0; margin: 0; }
  .card { border: none !important; box-shadow: none !important; margin: 0 !important; border-radius: 0 !important; }
  
  /* The Wrapper: Locked to exactly fit one A4 page without overflowing */
  #admit-wrap {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    height: 285mm !important; 
    max-height: 285mm !important;
    overflow: hidden !important;
  }
  
  /* The Copies: Locked to exactly 130mm each */
  .ac-copy {
    height: 130mm !important;
    max-height: 130mm !important;
    width: 96% !important;
    margin: 2mm auto !important;
    border: 1.5px solid #aaa !important;
    border-radius: 0 !important;
    background: #fff !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    overflow: hidden !important;
  }
  
  /* The Scissors: Locked to exactly 10mm */
  .scissors-wrap {
    height: 10mm !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
  }
  
  /* Typography and Colors for B&W Printers */
  .ac-header { border-bottom: 2px solid #333 !important; background: #fff !important; padding: 10px 16px !important; }
  .ac-header::before { background: #333 !important; }
  .ac-body { padding: 10px 16px !important; }
  .ac-acad-name { color: #000 !important; font-size: 1.15rem !important; }
  .ac-exam-name { color: #444 !important; }
  .ac-badge { border-color: #555 !important; color: #333 !important; padding: 2px 8px !important;}
  .roll-num { color: #000 !important; font-size: 2.5rem !important;}
  .ac-roll-qr-row { background: #f5f5f5 !important; border-color: #ccc !important; padding: 8px 12px !important; margin-bottom: 10px !important;}
  .ac-type-badge { border-color: #555 !important; color: #333 !important; background: #f0f0f0 !important; }
  .cls-badge { border-color: #333 !important; color: #000 !important; background: transparent !important; }
  .ac-fields { border-color: #bbb !important; }
  .af { border-color: #bbb !important; padding: 6px 10px !important;}
  .af .al { color: #555 !important; }
  .af .av { color: #000 !important; }
  .ac-exam-date-pill { background: #f5f5f5 !important; border-color: #ccc !important; color: #444 !important; }
  .qr-box { border: 1.5px solid #000 !important; width: 80px !important; height: 80px !important;}
  .scissors-line { border-top-color: #aaa !important; }
  .scissors-icon { color: #666 !important; }
  .scissors-caption { color: #888 !important; }
  .sig-line { border-bottom-color: #888 !important; }
  .sig-lbl { color: #555 !important; }
  .student-sig-row { border-top-color: #ccc !important; margin-top: 8px !important; padding-top: 8px !important;}
}

@media(max-width:980px){main{grid-template-columns:1fr;padding:14px;}.card,.sidebar{grid-column:1;}.sidebar{flex-direction:row;flex-wrap:wrap;}.sb-card{flex:1;min-width:180px;}}
@media(max-width:500px){.review-grid,.ac-fields{grid-template-columns:1fr;}.rv.full,.af.full{grid-column:1;}.ac-roll-qr-row{flex-direction:column;align-items:flex-start;}.form-section{padding:22px 16px;}.roll-num{font-size:2.6rem;}}
