@font-face {
    font-family: "YekanBakh";
    font-display: swap;
    font-style: normal;
    font-weight: 100 1000;
    src: url("../fonts/YekanBakh-VF.woff2") format("woff2");
}
@import url('https://cdn.jsdelivr.net/npm/vazirmatn@33.003/Vazirmatn-font-face.css');
:root{--bg:#f5f6f8;--card:#fff;--text:#151515;--muted:#6b7280;--line:#e5e7eb;--soft:#f8fafc;--primary:#18181b;--danger:#b42318;--success:#067647;--radius:22px;--shadow:0 18px 55px rgba(17,24,39,.08)}
*{box-sizing:border-box}html{font-family:YekanBakh,Vazirmatn,Tahoma,Arial,sans-serif;background:var(--bg);color:var(--text)}body{margin:0;min-height:100vh;background:radial-gradient(circle at top right,#fff 0,transparent 34%),var(--bg)}a{text-decoration:none;color:inherit}.shell{width:min(1180px,calc(100% - 32px));margin:auto}.narrow{width:min(720px,calc(100% - 32px))}.topbar,.admin-top{background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(229,231,235,.85);position:sticky;top:0;z-index:20}.topbar-inner,.admin-top-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar-inner{justify-content:flex-start}.topbar-inner>div:last-child,.brand-inline>div:last-child{display:flex;flex-direction:column;gap:4px}.topbar span,.brand-inline span{color:var(--muted);font-size:13px}.brand-mark{width:44px;height:44px;border-radius:14px;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:900;box-shadow:0 8px 24px rgba(24,24,27,.18)}.brand-mark.big{width:66px;height:66px;border-radius:20px;font-size:22px;margin:auto}.registration-shell{padding:48px 0 64px}.hero{max-width:750px;margin:0 auto 28px;text-align:center}.eyebrow{display:inline-flex;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12px;font-weight:800;color:#4b5563}.hero h1,.admin-title h1,.detail-head h1,.success-card h1,.qr-card h1,.install-card h1,.login-card h1{font-size:clamp(28px,5vw,46px);letter-spacing:-1.5px;margin:14px 0 10px}.hero p,.section-head p,.success-card p,.qr-card p,.muted{color:var(--muted);line-height:1.9}.stepper{max-width:900px;margin:0 auto 20px;display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.step{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 8px;border-radius:15px;color:#9ca3af;font-size:13px}.step b{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;background:#fff}.step.is-active{background:#fff;color:#111;box-shadow:0 10px 30px rgba(17,24,39,.06)}.step.is-active b,.step.is-done b{background:var(--primary);color:#fff;border-color:var(--primary)}.card{background:var(--card);border:1px solid rgba(229,231,235,.95);border-radius:var(--radius);box-shadow:var(--shadow)}.form-step{display:none;max-width:900px;margin:auto;padding:34px}.form-step.is-active{display:block;animation:fade .25s ease}@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.section-head{margin-bottom:28px}.section-head span{color:var(--muted);font-size:12px;font-weight:800}.section-head h2{font-size:26px;margin:7px 0}.section-head p{margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .full{grid-column:1/-1}label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:800;color:#374151}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);padding:14px 15px;font:inherit;font-size:15px;outline:none;transition:.2s}textarea{resize:vertical;line-height:1.8}input:focus,select:focus,textarea:focus{border-color:#888;box-shadow:0 0 0 4px rgba(17,24,39,.06)}input.invalid,select.invalid,textarea.invalid{border-color:#f04438;box-shadow:0 0 0 4px rgba(240,68,56,.08)}label small{font-weight:400;color:var(--muted);line-height:1.7}.field-error{color:var(--danger)!important;min-height:15px}.actions,.success-actions,.admin-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:28px}.btn{border:0;border-radius:14px;padding:13px 20px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:800;cursor:pointer;transition:.2s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--primary);color:#fff}.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--text)}.btn:disabled{opacity:.6;cursor:wait}.hidden{display:none!important}.review-grid,.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.review-grid>div,.detail-grid>div{background:var(--soft);border:1px solid #eef0f2;border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:6px}.review-grid .wide,.detail-grid .wide{grid-column:1/-1}.review-grid span,.detail-grid span{color:var(--muted);font-size:12px}.review-grid strong,.detail-grid strong{font-size:14px;line-height:1.8}.consent{margin-top:20px;padding:17px;border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:row;align-items:flex-start;line-height:1.9;background:#fcfcfd}.consent input{width:20px;height:20px;margin-top:4px}.form-alert{max-width:900px;margin:0 auto 18px}.privacy-note{text-align:center;color:var(--muted);font-size:12px;margin-top:18px}.success-shell,.qr-shell{padding:70px 0}.success-card,.qr-card,.install-card,.login-card{padding:38px;text-align:center}.success-icon{width:76px;height:76px;border-radius:24px;background:#ecfdf3;color:var(--success);display:grid;place-items:center;font-size:40px;font-weight:900;margin:0 auto 20px}.tracking-code{margin:24px auto;background:#111;color:#fff;border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:6px;max-width:420px}.tracking-code span{font-size:12px;color:#d1d5db}.tracking-code strong{font-size:24px;letter-spacing:2px}.success-card small{display:block;color:var(--muted);line-height:1.8;margin-top:20px}.qr-box{width:320px;max-width:100%;min-height:320px;margin:24px auto;padding:20px;background:#fff;border:1px solid var(--line);border-radius:20px;display:grid;place-items:center}.qr-box img,.qr-box canvas{max-width:100%;height:auto!important}.qr-card code{display:block;direction:ltr;overflow:auto;background:var(--soft);padding:12px;border-radius:12px;font-size:12px}.install-page,.admin-login{display:grid;place-items:center;padding:30px 0}.install-card,.login-card{text-align:right}.install-card h1,.login-card h1{text-align:center}.install-card>.eyebrow,.login-card>.eyebrow{display:flex;width:max-content;margin:auto}.alert{padding:14px;border-radius:14px;margin:18px 0;line-height:1.8}.alert.danger{background:#fff1f0;color:var(--danger);border:1px solid #fecdca}.text-link{display:block;text-align:center;color:var(--muted);font-size:13px;margin-top:20px}.brand-inline{display:flex;align-items:center;gap:12px}.admin-top nav{display:flex;gap:18px;color:#4b5563;font-size:13px;font-weight:800}.admin-shell{padding:38px 0 70px}.admin-title{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}.admin-title h1{margin-bottom:0}.admin-actions{margin:0}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:8px}.stat-card span{color:var(--muted);font-size:13px}.stat-card strong{font-size:30px}.admin-card{padding:20px}.filters{display:grid;grid-template-columns:minmax(240px,1fr) 220px auto auto;gap:12px;align-items:end;margin-bottom:18px}.filters label{gap:6px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}table{width:100%;border-collapse:collapse;min-width:980px;background:#fff}th,td{padding:15px 14px;text-align:right;border-bottom:1px solid #eef0f2;font-size:13px;vertical-align:middle}th{background:#fafafa;color:#6b7280;font-size:12px;white-space:nowrap}td strong{display:block}td small{display:block;color:var(--muted);margin-top:5px}.badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#f3f4f6;font-weight:800;white-space:nowrap}.row-action{display:inline-flex;padding:8px 11px;background:#111;color:#fff;border-radius:10px;font-size:12px}.empty{text-align:center;color:var(--muted);padding:45px}.pagination{display:flex;gap:7px;justify-content:center;margin-top:18px;flex-wrap:wrap}.pagination a{width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:#fff;display:grid;place-items:center}.pagination a.active{background:#111;color:#fff;border-color:#111}.detail-shell{padding:38px 0}.detail-card{padding:30px}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.detail-head h1{margin:12px 0 5px}.detail-head p{color:var(--muted);margin:0}.print-body{background:#eceff3}.print-toolbar{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.95);border-bottom:1px solid var(--line);padding:10px;display:flex;justify-content:center;gap:10px}.print-sheet,.print-list-sheet{width:210mm;min-height:297mm;margin:18px auto;background:#fff;padding:14mm;box-shadow:0 20px 60px rgba(0,0,0,.12);font-family:YekanBakh,Vazirmatn,Vazir,Tahoma,Arial,sans-serif}.print-header{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;border-bottom:2px solid #111;padding-bottom:14px}.print-logo{width:58px;height:58px;background:#111;color:#fff;border-radius:14px;display:grid;place-items:center;font-weight:900;font-size:20px}.print-header h1{margin:0;font-size:22px}.print-header p{margin:4px 0;font-size:12px}.print-header strong{font-size:13px}.print-meta{display:flex;flex-direction:column;gap:6px;font-size:10px;text-align:left;direction:rtl}.print-info h2,.commitment h2,.guardian-commitment h2{font-size:15px;margin:16px 0 9px;border-right:4px solid #111;padding-right:8px}.print-info-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid #777}.print-info-grid>div{padding:8px;border-left:1px solid #bbb;border-bottom:1px solid #bbb;min-height:48px}.print-info-grid .wide{grid-column:1/-1}.print-info-grid span{display:block;font-size:9px;color:#555;margin-bottom:5px}.print-info-grid b{font-size:11px;line-height:1.7}.commitment ol,.guardian-commitment ol{margin:0;padding-right:20px;column-count:2;column-gap:30px}.commitment li,.guardian-commitment li{font-size:9.5px;line-height:1.75;margin-bottom:4px;break-inside:avoid;text-align:justify}.absence-note,.guardian-commitment p{border:1px solid #aaa;background:#fafafa;padding:8px;margin-top:10px;font-size:9.5px;line-height:1.7}.absence-note p{margin:4px 0 0}.signatures{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px}.signatures>div{height:80px;border-top:1px solid #222;padding-top:8px;text-align:center;font-size:10px}.print-list-sheet header{text-align:center;border-bottom:2px solid #111;margin-bottom:15px}.print-list-sheet table{min-width:0}.print-list-sheet th,.print-list-sheet td{font-size:9px;padding:7px;border:1px solid #777}.print-list-sheet p{font-size:11px}.print-list-sheet h1{font-size:20px}
@media(max-width:760px){.shell{width:min(100% - 20px,1180px)}.topbar-inner{min-height:66px}.topbar strong{font-size:13px}.topbar span{font-size:11px}.registration-shell{padding:28px 0 50px}.hero{padding:0 8px}.hero h1{font-size:32px}.stepper{gap:3px}.step{padding:8px 2px;flex-direction:column;font-size:10px}.step b{width:25px;height:25px}.form-step{padding:22px 17px;border-radius:18px}.form-grid,.review-grid,.detail-grid{grid-template-columns:1fr}.review-grid .wide,.detail-grid .wide{grid-column:auto}.actions{position:sticky;bottom:8px;padding-top:12px;background:linear-gradient(transparent,#fff 24%)}.actions .btn{flex:1}.admin-top-inner{align-items:flex-start;padding:12px 0;flex-direction:column}.admin-top nav{width:100%;justify-content:space-between}.admin-title{align-items:stretch;flex-direction:column}.admin-actions{display:grid;grid-template-columns:1fr 1fr}.stat-grid{grid-template-columns:1fr 1fr}.stat-grid .stat-card:last-child{grid-column:1/-1}.filters{grid-template-columns:1fr 1fr}.filters .search-field{grid-column:1/-1}.detail-head{flex-direction:column}.detail-head .btn{width:100%}.qr-box{min-height:260px}.success-card,.qr-card,.install-card,.login-card{padding:25px 18px}.print-sheet,.print-list-sheet{width:100%;margin:0;padding:10mm;box-shadow:none}.print-toolbar{position:static}.print-header{grid-template-columns:auto 1fr}.print-meta{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);text-align:right}.commitment ol,.guardian-commitment ol{column-count:1}}
@media print{body{background:#fff}.print-toolbar,.topbar,.admin-top{display:none!important}.print-sheet,.print-list-sheet{margin:0;width:100%;min-height:auto;box-shadow:none;padding:8mm}.print-header{padding-bottom:8px}.print-info h2,.commitment h2,.guardian-commitment h2{margin:10px 0 6px}.commitment li,.guardian-commitment li{font-size:8.5px;line-height:1.55}.absence-note,.guardian-commitment p{font-size:8.5px}.signatures{margin-top:14px}.signatures>div{height:55px}}

/* Version 2: capacities, messaging, Jalali dates and formal print */
.alert.success{background:#ecfdf3;color:#067647;border:1px solid #abefc6}.alert.warning{background:#fffaeb;color:#b54708;border:1px solid #fedf89}.success-icon.error{background:#fff1f0;color:#b42318}.muted{color:var(--muted);line-height:1.9}.field-hint{font-size:11px;color:var(--muted);font-weight:500}.age-preview{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 17px;border:1px dashed #d0d5dd;border-radius:16px;background:#fafafa}.age-preview span{font-size:12px;color:var(--muted)}.age-preview strong{font-size:14px}.age-preview.is-valid{background:#ecfdf3;border-color:#75e0a7}.age-preview.is-valid strong{color:#067647;font-size:20px}.capacity-note,.campaign-warning,.api-note{padding:14px 16px;border:1px solid #e4e7ec;background:#f9fafb;border-radius:14px;color:#475467;font-size:12px;line-height:1.9}.success-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.success-summary>div{padding:13px;border:1px solid var(--line);background:var(--soft);border-radius:14px;display:flex;flex-direction:column;gap:5px}.success-summary span{font-size:11px;color:var(--muted)}.success-summary strong{font-size:13px}.btn.telegram{background:#229ed9;color:#fff}.school-caption{font-weight:800;margin-top:-6px}.admin-nav{display:flex;align-items:center;gap:5px!important;flex-wrap:wrap}.admin-nav a{padding:8px 10px;border-radius:10px}.admin-nav a.active{background:#111;color:#fff}.filters-wide{grid-template-columns:minmax(220px,1fr) 190px 220px auto auto}.status-dot{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;white-space:nowrap}.status-dot:before{content:"";width:7px;height:7px;border-radius:50%;background:#98a2b3}.status-dot.success{color:#067647}.status-dot.success:before{background:#12b76a}.status-dot.warning{color:#b54708}.status-dot.warning:before{background:#f79009}.status-dot.danger{color:#b42318}.status-dot.danger:before{background:#f04438}.status-dot.muted{color:#98a2b3}.inline-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.management-grid,.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.settings-grid>section:first-child,.settings-grid>section:last-child{grid-column:1/-1}.panel-heading{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:18px}.panel-heading h2{margin:0 0 5px;font-size:20px}.panel-heading p{margin:0;color:var(--muted);font-size:12px;line-height:1.8}.capacity-form{display:grid;grid-template-columns:1fr 100px 80px auto;gap:9px;align-items:end;padding:14px;background:#f8fafc;border-radius:16px;margin-bottom:16px}.capacity-form label{gap:5px;font-size:11px}.capacity-list{display:flex;flex-direction:column;gap:12px}.capacity-item{padding:14px;border:1px solid var(--line);border-radius:17px;background:#fff}.capacity-item.is-disabled{opacity:.55;background:#f9fafb}.capacity-item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.capacity-item-head strong{display:block}.capacity-item-head small{display:block;color:var(--muted);margin-top:5px}.capacity-state{padding:5px 9px;border-radius:999px;font-size:10px;font-weight:900}.capacity-state.open{background:#ecfdf3;color:#067647}.capacity-state.full{background:#fff1f0;color:#b42318}.capacity-progress{height:7px;background:#eaecf0;border-radius:99px;margin:12px 0;overflow:hidden}.capacity-progress i{display:block;height:100%;background:#18181b;border-radius:99px}.capacity-edit{display:grid;grid-template-columns:minmax(140px,1fr) 80px 60px auto auto;gap:7px;margin-top:12px}.capacity-edit input{padding:9px 10px;border-radius:10px}.btn.tiny{min-height:38px;padding:8px 11px;border-radius:10px;font-size:11px}.template-help{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:13px;background:#f8fafc;border-radius:14px;margin-bottom:16px;font-size:12px}.template-help code{direction:ltr;background:#fff;border:1px solid var(--line);border-radius:8px;padding:5px 7px}.template-create{display:grid;grid-template-columns:1fr 220px;gap:12px}.template-create .full{grid-column:1/-1}.template-create>button{justify-self:end}.template-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:16px}.template-card{padding:18px}.template-card.is-disabled{opacity:.55}.template-card form{display:flex;flex-direction:column;gap:10px}.template-card-head{display:flex;align-items:center;gap:10px}.template-card-head input{font-size:16px;font-weight:900;flex:1}.sticky-save{position:sticky;bottom:12px;display:flex;justify-content:flex-end;margin-top:18px;padding:10px;background:rgba(245,246,248,.9);backdrop-filter:blur(10px);border-radius:15px}.selected-recipient{padding:14px;border:1px solid #b2ddff;background:#eff8ff;border-radius:15px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.selected-recipient span,.selected-recipient small{color:#475467;font-size:11px}.selected-recipient a{margin-right:auto;font-size:11px;text-decoration:underline}.phone-targets{border:1px solid var(--line);border-radius:15px;padding:12px 16px;display:flex;gap:20px;flex-wrap:wrap}.phone-targets legend{font-size:12px;font-weight:900;padding:0 7px}.phone-targets label{display:flex;flex-direction:row;align-items:center;font-size:12px}.phone-targets input{width:18px;height:18px}.campaign-create{margin-bottom:18px}.campaign-numbers{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.campaign-numbers>div{border:1px solid var(--line);background:#fafafa;border-radius:15px;padding:15px;display:flex;flex-direction:column;gap:7px}.campaign-numbers span{font-size:11px;color:var(--muted)}.campaign-numbers strong{font-size:24px}.big-progress{height:12px;background:#eaecf0;border-radius:999px;overflow:hidden;margin:18px 0}.big-progress i{display:block;height:100%;background:#18181b;transition:width .25s}.campaign-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.campaign-controls>span{margin-left:auto;font-weight:900}.campaign-progress-card{margin-bottom:18px}
.print-document{width:210mm;margin:18px auto}.formal-sheet{position:relative;width:210mm;min-height:297mm;background:#fff;padding:11mm 12mm 10mm;box-shadow:0 18px 55px rgba(0,0,0,.14);font-family:YekanBakh,Vazirmatn,Vazir,Tahoma,Arial,sans-serif;color:#101828;display:flex;flex-direction:column}.formal-sheet+ .formal-sheet{margin-top:18px}.formal-header{display:grid;grid-template-columns:24mm 1fr 44mm;gap:7mm;align-items:center;border:1.5px solid #102a43;border-radius:4mm;padding:4mm;background:linear-gradient(135deg,#f8fafc,#fff)}.formal-emblem{width:22mm;height:22mm;border-radius:50%;border:1.2mm double #b08d3b;display:grid;place-items:center;background:#102a43;color:#fff;box-shadow:inset 0 0 0 1mm #fff}.formal-emblem span{font-size:17pt;font-weight:900}.formal-emblem.small{width:16mm;height:16mm}.formal-emblem.small span{font-size:12pt}.formal-title{text-align:center}.formal-title p{margin:0 0 2mm;font-size:9pt}.formal-title h1{font-size:18pt;margin:0;color:#102a43}.formal-title h2{font-size:9.5pt;margin:2mm 0 0;font-weight:700}.formal-meta{display:flex;flex-direction:column;gap:2mm}.formal-meta>div{border-bottom:1px solid #cbd5e1;padding-bottom:1.5mm}.formal-meta span{display:block;font-size:6.8pt;color:#667085}.formal-meta b{font-size:8pt}.formal-ribbon{margin:4mm 0 3mm;border-right:1.5mm solid #b08d3b;background:#f8fafc;padding:2.5mm 3mm;display:flex;justify-content:space-between;align-items:center}.formal-ribbon span{font-size:10pt;font-weight:900;color:#102a43}.formal-ribbon small{font-size:6.8pt;color:#667085}.formal-info-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #98a2b3;border-right:1px solid #98a2b3}.formal-info-grid>div{min-height:15mm;padding:2.2mm;border-left:1px solid #98a2b3;border-bottom:1px solid #98a2b3}.formal-info-grid .span-2{grid-column:span 2}.formal-info-grid .span-3{grid-column:span 3}.formal-info-grid span{display:block;font-size:6.5pt;color:#667085;margin-bottom:1.7mm}.formal-info-grid b{font-size:8.2pt;line-height:1.7}.formal-terms{margin-top:4mm}.formal-section-title{display:flex;justify-content:space-between;align-items:center;border-bottom:1.2px solid #102a43;padding-bottom:1.5mm;margin-bottom:2mm}.formal-section-title b{font-size:10pt;color:#102a43}.formal-section-title span{font-size:6.8pt;color:#667085}.formal-terms ol{margin:0;padding-right:6mm;column-count:2;column-gap:8mm}.formal-terms li{font-size:7.5pt;line-height:1.72;text-align:justify;margin-bottom:1.2mm;break-inside:avoid}.formal-footer{margin-top:auto;border-top:1px solid #cbd5e1;padding-top:2mm;display:flex;justify-content:space-between;font-size:6.5pt;color:#667085}.compact-formal-header{display:grid;grid-template-columns:18mm 1fr 38mm;gap:5mm;align-items:center;border-bottom:1.5px solid #102a43;padding-bottom:3mm}.compact-formal-header h1{font-size:15pt;margin:0;color:#102a43}.compact-formal-header p{font-size:8pt;margin:1.5mm 0 0}.code-box{border:1px solid #98a2b3;border-radius:2mm;padding:2mm;text-align:center;font-size:8pt;direction:ltr}.formal-note,.guardian-box,.office-box{border:1px solid #98a2b3;border-radius:2mm;padding:3mm;margin-top:3mm;background:#fcfcfd}.formal-note strong,.office-box strong{font-size:8pt}.formal-note p,.guardian-box p,.office-box p{font-size:7.5pt;line-height:1.75;margin:1.5mm 0 0;text-align:justify}.guardian-box ol{margin:0;padding-right:6mm}.guardian-box li{font-size:7.5pt;line-height:1.7;margin-bottom:1mm}.declaration-box{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #98a2b3;margin-top:4mm}.declaration-box>div{padding:2.5mm;border-left:1px solid #98a2b3;min-height:13mm}.declaration-box>div:last-child{border-left:0}.declaration-box span{display:block;font-size:6.5pt;color:#667085}.declaration-box b{display:block;font-size:8pt;margin-top:2mm}.formal-signatures{display:grid;grid-template-columns:repeat(3,1fr);gap:7mm;margin-top:6mm}.formal-signatures>div{height:25mm;border:1px dashed #98a2b3;border-radius:2mm;display:flex;align-items:flex-end;justify-content:center;padding:2mm}.formal-signatures span{font-size:7pt}.office-box>div{display:flex;gap:8mm;margin-top:2mm;font-size:7pt;flex-wrap:wrap}
@media(max-width:900px){.filters-wide{grid-template-columns:1fr 1fr}.filters-wide .search-field{grid-column:1/-1}.management-grid,.settings-grid,.template-grid{grid-template-columns:1fr}.settings-grid>section{grid-column:auto!important}.capacity-form{grid-template-columns:1fr 90px}.capacity-form button{grid-column:1/-1}.capacity-edit{grid-template-columns:1fr 80px 60px}.capacity-edit .btn{grid-column:auto}.admin-nav{overflow:auto;flex-wrap:nowrap;width:100%;padding-bottom:4px}.admin-nav a{white-space:nowrap}.success-summary{grid-template-columns:1fr}.campaign-numbers{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.template-create{grid-template-columns:1fr}.template-create .full{grid-column:auto}.capacity-edit{grid-template-columns:1fr 1fr}.capacity-edit input:first-of-type{grid-column:1/-1}.campaign-numbers{grid-template-columns:1fr 1fr}.formal-ribbon{flex-direction:column;align-items:flex-start;gap:2mm}}
@media print{.print-document{margin:0;width:auto}.formal-sheet{width:210mm;min-height:297mm;margin:0!important;padding:9mm 10mm;box-shadow:none;page-break-after:always}.formal-sheet:last-child{page-break-after:auto}.formal-header{grid-template-columns:22mm 1fr 42mm}.formal-terms li{font-size:7.2pt}.formal-footer{position:absolute;bottom:7mm;right:10mm;left:10mm}}

/* Persian date picker + Vaziri typography */
html,body,input,select,textarea,button{font-family:YekanBakh,Vazirmatn,Vazir,Tahoma,Arial,sans-serif!important}
.brand-logo{width:48px;height:48px;object-fit:contain;border-radius:14px;background:#fff;border:1px solid var(--line,#e5e7eb);padding:4px}
.topbar-inner .brand-logo{width:54px;height:54px}
.jalali-date{cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,#64748b 50%),linear-gradient(135deg,#64748b 50%,transparent 50%);background-position:18px calc(50% - 3px),13px calc(50% - 3px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-left:34px!important}
.jdp-overlay{position:fixed;inset:0;background:rgba(2,6,23,.55);backdrop-filter:blur(5px);z-index:9999;display:none;align-items:center;justify-content:center;padding:18px}
.jdp-overlay.is-open{display:flex}.jdp-dialog{width:min(440px,100%);background:#fff;border-radius:24px;box-shadow:0 30px 90px rgba(15,23,42,.28);padding:20px;direction:rtl}.jdp-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #e5e7eb;padding-bottom:14px}.jdp-head strong{display:block;font-size:18px;color:#111827}.jdp-head span{display:block;color:#64748b;font-size:12px;margin-top:4px}.jdp-close{border:0;background:#f1f5f9;border-radius:12px;width:38px;height:38px;font-size:26px;cursor:pointer}.jdp-selects{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.jdp-selects label{font-size:12px;color:#64748b}.jdp-selects select{width:100%;margin-top:6px}.jdp-preview{margin:16px 0;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:15px;padding:13px;text-align:center;font-size:20px;font-weight:900;color:#0f172a}.jdp-actions{display:flex;gap:10px}.jdp-actions button{flex:1;border:0;border-radius:13px;min-height:44px;font-weight:800;cursor:pointer}.jdp-cancel{background:#f1f5f9;color:#334155}.jdp-confirm{background:#111827;color:#fff}
.radio-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.radio-card{border:1px solid var(--line,#e5e7eb);border-radius:16px;padding:13px;display:flex!important;align-items:center;gap:10px;cursor:pointer;background:var(--card,#fff)}.radio-card input{width:auto}.conditional-box{border:1px solid #fecaca;background:#fff7f7;border-radius:18px;padding:16px}.group-link-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.group-link-card{border:1px solid var(--line,#e5e7eb);border-radius:20px;padding:16px;background:var(--card,#fff)}.group-qr-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.group-qr-item{text-align:center;border:1px solid #e5e7eb;border-radius:16px;padding:10px}.group-qr-item img{width:150px;max-width:100%;height:auto}.group-qr-item span{display:block;font-size:12px;font-weight:800;margin-bottom:6px}.channel-chip{display:inline-flex;padding:5px 9px;border-radius:999px;background:#f1f5f9;font-size:11px;font-weight:800}.logo-upload-preview{width:88px;height:88px;object-fit:contain;border:1px solid #e5e7eb;border-radius:18px;background:#fff;padding:6px}
@media(max-width:640px){.jdp-selects{grid-template-columns:1fr}.group-qr-pair{grid-template-columns:1fr}.stepper{overflow-x:auto;justify-content:flex-start}.step{min-width:74px}}
.formal-emblem.logo img{width:70px;height:70px;object-fit:contain}.formal-emblem.small.logo img{width:52px;height:52px}.qr-page-head{display:flex;align-items:center;gap:14px;margin:26px 0}.qr-page-head h1{margin:0}.qr-page-head p{margin:4px 0;color:#64748b}

/* Registration documents checklist — v3.2 */
.national-id-input{direction:ltr;text-align:left;letter-spacing:2px;font-variant-numeric:tabular-nums}
.documents-card{margin-top:18px;padding:24px}.documents-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.documents-head h2{margin:4px 0 3px}.documents-head p{margin:0;color:var(--muted)}.documents-progress{min-width:150px;border:1px solid var(--line);background:#fafafa;border-radius:18px;padding:13px 16px;text-align:center}.documents-progress strong{display:block;font-size:20px}.documents-progress span{font-size:11px;color:var(--muted)}.documents-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.document-item{position:relative;display:flex!important;flex-direction:row!important;align-items:center;gap:10px;min-height:62px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--card);cursor:pointer;transition:.18s ease}.document-item:hover{border-color:#a1a1aa}.document-item input{position:absolute;opacity:0;pointer-events:none}.document-tick{width:29px;height:29px;border:1.5px solid #cbd5e1;border-radius:9px;display:grid;place-items:center;flex:none;color:transparent;font-weight:900;background:#fff}.document-item strong{font-size:12px;line-height:1.7}.document-item.is-checked{border-color:#86efac;background:#f0fdf4}.document-item.is-checked .document-tick{border-color:#16a34a;background:#16a34a;color:#fff}.documents-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}.documents-footer small{color:var(--muted)}
.document-office-box{padding:2.5mm}.print-document-checklist{display:grid!important;grid-template-columns:repeat(3,1fr);gap:1.4mm 2.5mm!important;margin-top:1.5mm!important}.print-document-item{display:flex;align-items:center;gap:1.5mm;font-size:6.7pt;line-height:1.5}.print-document-item i{width:4.4mm;height:4.4mm;border:1px solid #667085;display:inline-grid;place-items:center;font-size:7pt;font-style:normal;line-height:1}.print-document-item.checked i{background:#102a43;color:#fff;border-color:#102a43}.office-status-row{display:flex!important;gap:6mm!important;margin-top:2mm!important;padding-top:2mm;border-top:1px dashed #cbd5e1;font-size:6.8pt!important}.document-office-box p{margin-top:1.5mm!important}.second-page .formal-signatures>div{height:21mm}
@media(max-width:800px){.documents-grid{grid-template-columns:1fr 1fr}.documents-head,.documents-footer{align-items:stretch;flex-direction:column}.documents-progress{min-width:0}}
@media(max-width:520px){.documents-grid{grid-template-columns:1fr}.documents-card{padding:16px}}
@media print{.document-office-box{break-inside:avoid}.print-document-checklist{grid-template-columns:repeat(3,1fr)}}


/* Separate WhatsApp numbers — v3.3 */
.contact-grid{gap:14px}.contact-block{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px;border:1px solid var(--line);border-radius:18px;background:#fafafa}.contact-block>label:first-child{grid-column:1/-1}.inline-check{display:flex!important;flex-direction:row!important;align-items:center;gap:9px;font-size:12px;cursor:pointer}.inline-check input{width:19px;height:19px;flex:none}.whatsapp-extra{grid-column:1/-1;padding-top:4px}.whatsapp-extra input{background:#fff}.contact-block:has(.whatsapp-different-toggle:checked){border-color:#bfdbfe;background:#f8fbff}@media(max-width:640px){.contact-block{grid-template-columns:1fr}.contact-block>label:first-child,.whatsapp-extra{grid-column:auto}}

/* Registration review workflow — v3.5 */
.review-badge{display:inline-flex;align-items:center;gap:6px;width:max-content;padding:7px 11px;border-radius:999px;font-size:11px;font-weight:900;line-height:1}.review-badge.pending{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}.review-badge.approved{background:#ecfdf3;color:#15803d;border:1px solid #bbf7d0}.registration-row.pending{background:#fffdf8}.registration-row.pending:hover{background:#fff9ed}.registration-row.approved{background:#fbfffc}.review-stats .stat-card{text-decoration:none;color:inherit;transition:.18s ease}.review-stats .stat-card:hover,.review-stats .stat-card.is-selected{border-color:#94a3b8;transform:translateY(-1px);box-shadow:0 10px 25px rgba(15,23,42,.06)}
.review-card{margin-top:18px;padding:24px;border-right:4px solid #fb923c}.review-card.approved{border-right-color:#22c55e}.review-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.review-card-head h2{margin:4px 0}.review-card-head p{margin:0;color:var(--muted);line-height:1.9}.review-sms-state{min-width:155px;padding:13px 16px;border:1px solid var(--line);border-radius:16px;background:#fafafa;text-align:center}.review-sms-state span,.review-sms-state small{display:block;color:var(--muted);font-size:11px}.review-sms-state strong{display:block;margin:4px 0;font-size:16px}.review-form{margin-top:18px;border-top:1px solid var(--line);padding-top:18px}.review-form textarea{margin-top:7px}.review-confirm{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:15px;padding:14px;border-radius:16px;background:#fffbeb;border:1px solid #fde68a}.review-confirm span{font-size:12px;color:#854d0e;line-height:1.8}.success-btn{background:#15803d!important;color:#fff!important;border-color:#15803d!important}.approved-detail{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:18px;border-top:1px solid var(--line);padding-top:18px}.approved-detail>div span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}.approved-detail>div strong{font-size:13px}.alert.compact{margin-top:14px;padding:11px 13px}.alert.info{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.pending-icon{background:#fff7ed!important;color:#c2410c!important}
.admin-edit-form{padding:24px}.admin-edit-form .form-divider{border:0;border-top:1px solid var(--line);margin:26px 0}.admin-edit-form .panel-heading{margin-bottom:16px}.admin-edit-form .sticky-save{position:sticky;bottom:10px;z-index:5;margin:28px -8px -8px;padding:14px;display:flex;justify-content:flex-end;gap:10px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:18px;box-shadow:0 15px 45px rgba(15,23,42,.1)}
@media(max-width:760px){.review-card-head,.review-confirm,.approved-detail{flex-direction:column;align-items:stretch}.review-sms-state{min-width:0}.admin-edit-form{padding:16px}.admin-edit-form .sticky-save{justify-content:stretch}.admin-edit-form .sticky-save .btn{flex:1}}
@media print{.review-badge{padding:1mm 2mm;font-size:7pt}.print-toolbar{display:none!important}}


/* Eligibility precheck and multi-channel notifications — v3.6 */
.eligibility-box{border:1px solid #dbeafe;background:linear-gradient(135deg,#f8fbff,#fff);border-radius:20px;padding:18px}.eligibility-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.eligibility-title span{font-size:11px;color:#2563eb;font-weight:900;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;padding:6px 10px}.eligibility-title strong{font-size:14px}.eligibility-fields{gap:12px}.eligibility-status{margin-top:14px;display:flex;align-items:center;gap:12px;border-radius:16px;padding:13px 14px;border:1px solid #e5e7eb;background:#fff}.eligibility-status i{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;flex:none;font-style:normal;font-weight:900;background:#f1f5f9;color:#475569}.eligibility-status div{display:flex;flex-direction:column;gap:3px}.eligibility-status strong{font-size:13px}.eligibility-status span{font-size:11px;color:#64748b;line-height:1.7}.eligibility-status.loading{border-color:#bfdbfe;background:#eff6ff}.eligibility-status.loading i{background:#2563eb;color:#fff;animation:eligibilityPulse 1s infinite}.eligibility-status.success{border-color:#bbf7d0;background:#f0fdf4}.eligibility-status.success i{background:#16a34a;color:#fff}.eligibility-status.danger{border-color:#fecaca;background:#fff1f2}.eligibility-status.danger i{background:#dc2626;color:#fff}.eligibility-status.danger strong,.eligibility-status.danger span{color:#991b1b}@keyframes eligibilityPulse{50%{opacity:.45}}
.channel-selector{border:1px solid var(--line);border-radius:18px;padding:15px}.channel-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.channel-check-grid>label{position:relative;display:flex!important;flex-direction:row!important;align-items:center;gap:10px;border:1px solid var(--line);border-radius:15px;padding:12px;background:#fff;cursor:pointer}.channel-check-grid input{width:20px;height:20px;flex:none}.channel-check-grid span{display:flex;flex-direction:column;gap:3px}.channel-check-grid b{font-size:12px}.channel-check-grid small{font-size:10px;color:var(--muted);font-weight:500}.channel-check-grid>label:has(input:checked){border-color:#93c5fd;background:#eff6ff}.alert.success{background:#ecfdf3;color:#067647;border:1px solid #a7f3d0}
@media(max-width:800px){.channel-check-grid{grid-template-columns:1fr 1fr}.eligibility-title{align-items:flex-start;flex-direction:column}.eligibility-fields{grid-template-columns:1fr}}
@media(max-width:520px){.channel-check-grid{grid-template-columns:1fr}}

.eligibility-action{display:flex;justify-content:flex-end;margin-top:12px}.identity-fields{grid-column:1/-1;padding-top:4px}.identity-fields.hidden{display:none!important}

/* Timeline, disciplinary confirmation and major brochures — v3.7 */
.danger-btn{background:#fff1f2!important;color:#b42318!important;border:1px solid #fecaca!important}.inline-delete-form{display:inline-flex;margin:0}.inline-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.major-guide-choice{border:1px solid #dbeafe;background:#f8fbff}.major-brochure{border:1px solid #bfdbfe;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 16px 45px rgba(37,99,235,.08)}.brochure-hero{padding:22px;background:linear-gradient(135deg,#eff6ff,#f8fbff)}.brochure-hero>span{display:inline-flex;padding:6px 10px;border-radius:999px;background:#fff;border:1px solid #bfdbfe;color:#1d4ed8;font-size:11px;font-weight:900}.brochure-hero h3{margin:12px 0 7px;font-size:23px}.brochure-hero p{margin:0;color:#475569;line-height:2}.brochure-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}.brochure-grid section{padding:19px;border-top:1px solid #e5e7eb}.brochure-grid section:nth-child(odd){border-left:1px solid #e5e7eb}.brochure-grid h4{margin:0 0 10px;font-size:14px}.brochure-grid p,.brochure-grid li{font-size:12px;line-height:1.95;color:#475569}.brochure-grid ul{padding-right:19px;margin:0}.brochure-workshop{margin:0 18px 18px;padding:15px;border-radius:16px;background:#f8fafc;border:1px solid #e2e8f0}.brochure-workshop strong{display:block;margin-bottom:5px}.brochure-workshop p{margin:0;color:#475569;line-height:1.9;font-size:12px}.brochure-note{padding:12px 18px;background:#fffbeb;color:#854d0e;border-top:1px solid #fde68a;font-size:11px;line-height:1.8}
.disciplinary-box{height:430px;overflow:auto;padding:22px;border:1px solid #d1d5db;border-radius:20px;background:#fafafa;scrollbar-width:thin;outline:none}.disciplinary-box:focus{border-color:#64748b;box-shadow:0 0 0 4px rgba(15,23,42,.05)}.disciplinary-intro{position:sticky;top:-22px;z-index:2;margin:-22px -22px 18px;padding:18px 22px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid #e5e7eb}.disciplinary-intro strong,.disciplinary-intro span{display:block}.disciplinary-intro span{margin-top:4px;color:#64748b;font-size:11px}.disciplinary-box ol{margin:0;padding-right:25px}.disciplinary-box li{padding:0 4px 13px;line-height:2;font-size:13px;color:#334155}.guardian-compact{margin-top:10px;padding:16px;border-radius:16px;background:#fff;border:1px solid #e5e7eb}.guardian-compact p{margin:7px 0 0;line-height:2;color:#475569;font-size:12px}.disciplinary-end{text-align:center;margin-top:18px;padding:13px;border-radius:14px;background:#111827;color:#fff;font-size:12px;font-weight:900}.read-state{display:flex;align-items:center;gap:10px;margin-top:12px;padding:12px 14px;border-radius:14px;border:1px solid #fde68a;background:#fffbeb;color:#854d0e;font-size:12px}.read-state i{width:26px;height:26px;border-radius:9px;background:#f59e0b;color:#fff;display:grid;place-items:center;font-style:normal}.read-state.success{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.read-state.success i{background:#16a34a}.read-state.danger{border-color:#fecaca;background:#fff1f2;color:#991b1b}.disciplinary-consent.is-locked{opacity:.55;background:#f8fafc}.disciplinary-consent.invalid{border-color:#f04438;background:#fff1f0}
.timeline-card{margin-top:18px;padding:24px}.registration-timeline{position:relative;padding-right:7px}.registration-timeline:before{content:"";position:absolute;right:20px;top:8px;bottom:8px;width:2px;background:#e2e8f0}.timeline-item{position:relative;display:grid;grid-template-columns:42px 1fr;gap:13px;padding-bottom:18px}.timeline-item:last-child{padding-bottom:0}.timeline-icon{position:relative;z-index:1;width:42px;height:42px;border-radius:14px;background:#f1f5f9;border:1px solid #e2e8f0;display:grid;place-items:center;font-weight:900;font-style:normal}.timeline-item.success .timeline-icon{background:#ecfdf3;border-color:#bbf7d0;color:#15803d}.timeline-item.danger .timeline-icon{background:#fff1f2;border-color:#fecaca;color:#b42318}.timeline-item.pending .timeline-icon{background:#fff7ed;border-color:#fed7aa;color:#c2410c}.timeline-content{border:1px solid #e5e7eb;border-radius:17px;padding:14px 16px;background:#fff}.timeline-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.timeline-title strong{font-size:13px}.timeline-title time{font-size:10px;color:#64748b;white-space:nowrap}.timeline-content p{margin:7px 0 0;line-height:1.9;color:#475569;font-size:12px}.timeline-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.timeline-meta span{font-size:10px;background:#f1f5f9;color:#475569;border-radius:999px;padding:5px 8px}.empty-timeline{text-align:center;color:#64748b;padding:28px;border:1px dashed #cbd5e1;border-radius:16px}
.brochure-admin-list{display:grid;gap:18px}.brochure-editor{scroll-margin-top:95px}.brochure-editor textarea{min-height:145px}.switch-label{display:flex!important;flex-direction:row!important;align-items:center;gap:9px;border:1px solid #e5e7eb;border-radius:14px;padding:10px 13px;background:#fafafa}.switch-label input{width:20px;height:20px}.brochure-editor .panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
@media(max-width:900px){.admin-top nav{overflow-x:auto;max-width:65vw;white-space:nowrap;padding:10px 0}.stepper{overflow-x:auto;grid-template-columns:repeat(7,minmax(76px,1fr));justify-content:flex-start}.brochure-grid{grid-template-columns:1fr}.brochure-grid section:nth-child(odd){border-left:0}.brochure-grid section+section{border-top:1px solid #e5e7eb}}
@media(max-width:640px){.disciplinary-box{height:360px;padding:16px}.disciplinary-intro{top:-16px;margin:-16px -16px 15px;padding:15px 16px}.timeline-title{align-items:flex-start;flex-direction:column}.timeline-card{padding:16px}.brochure-editor .panel-heading{flex-direction:column}.inline-actions{justify-content:stretch}.inline-actions .btn,.inline-actions form{flex:1}.inline-delete-form .btn{width:100%}}

/* Student portal, fees and HormozPay — v3.8 */
.payment-stat-grid{margin-bottom:18px}.payment-stat-grid .stat-card strong{font-size:18px}.fees-layout{align-items:start}.fee-definition-list{display:grid;gap:10px}.fee-definition-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff}.fee-definition-item.is-disabled{opacity:.55;background:#f8fafc}.fee-definition-item>div:first-child{display:flex;flex-direction:column;gap:4px}.fee-definition-item strong{font-size:13px}.fee-definition-item span{font-weight:900;color:#2563eb}.fee-definition-item small{color:var(--muted);font-size:10px}.btn.tiny{padding:7px 10px;border-radius:10px;font-size:10px;min-height:auto}.empty-cell{text-align:center;color:var(--muted);padding:28px!important}table td small{display:block;color:var(--muted);margin-top:4px;font-size:10px}
.payments-card,.announcements-admin-card{margin-top:18px;padding:24px}.payment-create-form{margin-top:18px;border-top:1px solid var(--line);padding-top:18px}.fee-select-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.fee-select-item{display:grid!important;grid-template-columns:1fr 150px;align-items:center;gap:10px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff}.fee-select-check{display:flex;align-items:center;gap:9px}.fee-select-check input{width:19px;height:19px}.fee-select-item small{grid-column:1/-1;color:var(--muted);font-size:10px}.fee-amount-input{direction:ltr;text-align:left}.payment-options{margin-top:14px;grid-template-columns:1fr 1fr 1fr}.payment-options fieldset{border:1px solid var(--line);border-radius:14px;padding:10px 12px}.payment-options fieldset label{display:inline-flex!important;flex-direction:row!important;margin-left:12px;align-items:center;gap:6px}.payment-options fieldset input{width:18px;height:18px}.payment-create-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px}.payment-create-footer .alert{margin:0;flex:1}.payment-request-list{display:grid;gap:14px;margin-top:20px}.payment-request-card{border:1px solid #fed7aa;border-radius:20px;padding:18px;background:#fffaf5}.payment-request-card.paid{border-color:#bbf7d0;background:#f7fef9}.payment-request-card.cancelled{border-color:#e5e7eb;background:#f8fafc;opacity:.75}.payment-request-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.payment-request-head>div span{font-size:10px;color:var(--muted);font-family:monospace}.payment-request-head h3{margin:5px 0 2px;font-size:22px}.payment-request-head small{color:var(--muted);font-size:10px}.payment-badge{display:inline-flex;padding:7px 10px;border-radius:999px;font-size:10px;font-weight:900;background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;white-space:nowrap}.payment-badge.paid{background:#ecfdf3;color:#15803d;border-color:#bbf7d0}.payment-badge.cancelled{background:#f1f5f9;color:#64748b;border-color:#e2e8f0}.payment-items{list-style:none;margin:14px 0;padding:0;border-top:1px dashed #d1d5db}.payment-items li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dashed #e5e7eb;font-size:12px}.payment-items li strong{white-space:nowrap}.payment-items li.unique-line{color:#854d0e}.payment-paid-info,.portal-receipt-summary{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:10px;padding:12px;border-radius:14px;background:#fff;border:1px solid #bbf7d0}.payment-paid-info div,.portal-receipt-summary div{display:flex;flex-direction:column;gap:3px}.payment-paid-info span,.portal-receipt-summary span{font-size:9px;color:var(--muted)}.payment-paid-info strong,.portal-receipt-summary strong{font-size:11px}.payment-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:13px}.payment-card-actions form{margin:0}.manual-payment{position:relative}.manual-payment summary{cursor:pointer;font-size:10px;font-weight:800;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;list-style:none}.manual-payment form{position:absolute;z-index:6;left:0;top:38px;width:270px;display:grid;gap:8px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:0 18px 45px rgba(15,23,42,.15)}.customer-receipt-admin{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#eff6ff;font-size:11px}.announcement-admin-list{display:grid;gap:12px}.announcement-admin-list article{border:1px solid var(--line);border-radius:16px;padding:14px}.announcement-admin-list article>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.announcement-admin-list small{color:var(--muted);font-size:10px}.announcement-admin-list p{font-size:12px;line-height:1.9;color:#475569}.announcement-read-state{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900}.announcement-read-state.read{background:#ecfdf3;color:#15803d}.announcement-read-state.unread{background:#fff7ed;color:#c2410c}
.portal-body{background:#f4f7fb}.portal-login-shell{padding-top:8vh}.portal-login-card{padding:26px}.portal-brand{display:flex;align-items:center;gap:15px;margin-bottom:22px}.portal-brand img{width:66px;height:66px;object-fit:contain}.portal-brand h1{margin:4px 0}.portal-brand p{margin:0;color:var(--muted)}.portal-login-links{text-align:center;margin-top:14px}.portal-login-links a{font-size:11px;color:#2563eb}.portal-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.portal-header-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:12px}.portal-header-actions{display:flex;gap:8px}.portal-shell{padding-top:24px;padding-bottom:50px}.portal-hero{padding:24px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,#fff,#f0f7ff)}.portal-hero h1{margin:7px 0}.portal-hero p{margin:0;color:var(--muted)}.portal-status-panel{min-width:220px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;border-radius:18px;background:#fff;border:1px solid var(--line)}.portal-status-panel>span{font-size:10px;color:var(--muted)}.portal-status-panel small{color:var(--muted);font-size:10px}.portal-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}.portal-summary-card{padding:16px;border:1px solid var(--line);border-radius:17px;background:#fff}.portal-summary-card span{display:block;font-size:10px;color:var(--muted);margin-bottom:6px}.portal-summary-card strong{font-size:17px}.portal-section{margin-top:16px;padding:24px}.portal-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.portal-section-head h2{margin:4px 0 0}.portal-section-head>span{font-size:10px;color:var(--muted)}.portal-payment-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.portal-payment-card{border:1px solid #fed7aa;border-radius:20px;background:#fffaf5;padding:18px}.portal-payment-card.paid{border-color:#bbf7d0;background:#f7fef9}.portal-payment-card.cancelled{opacity:.7;border-color:#e5e7eb;background:#f8fafc}.portal-receipt-summary{grid-template-columns:repeat(3,1fr);margin-bottom:10px}.customer-receipt-link{display:block;text-align:center;margin-top:10px;font-size:10px}.portal-announcement-list{display:grid;gap:12px}.portal-announcement{padding:16px;border:1px solid var(--line);border-radius:17px;background:#fff}.portal-announcement.is-new{border-color:#93c5fd;background:#f8fbff}.portal-announcement>div{display:flex;align-items:center;gap:9px}.portal-announcement>div span{font-size:9px;background:#2563eb;color:#fff;border-radius:999px;padding:4px 7px}.portal-announcement time{margin-right:auto;font-size:9px;color:var(--muted)}.portal-announcement p{font-size:12px;line-height:2;color:#334155;margin:10px 0}.portal-announcement small{font-size:9px;color:var(--muted)}
.payment-page{background:#f4f7fb}.payment-shell{padding-top:4vh;padding-bottom:4vh}.payment-page-card{padding:24px}.payment-page-brand{display:flex;align-items:center;gap:13px;padding-bottom:16px;border-bottom:1px solid var(--line)}.payment-page-brand img{width:54px;height:54px;object-fit:contain}.payment-page-brand span{font-size:10px;color:var(--muted)}.payment-page-brand h1{font-size:19px;margin:4px 0}.payment-live-state{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;background:#fff7ed;border:1px solid #fed7aa;margin:16px 0}.payment-live-state i{width:38px;height:38px;border-radius:12px;background:#f97316;color:#fff;display:grid;place-items:center;font-style:normal;font-weight:900}.payment-live-state>div{display:flex;flex-direction:column;gap:3px}.payment-live-state span{font-size:10px;color:#9a3412}.payment-live-state.paid{background:#ecfdf3;border-color:#bbf7d0}.payment-live-state.paid i{background:#16a34a}.payment-live-state.paid span{color:#166534}.payment-student{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.payment-student>div{padding:12px;border-radius:13px;background:#f8fafc;border:1px solid #e2e8f0}.payment-student span{display:block;font-size:9px;color:var(--muted);margin-bottom:4px}.payment-student strong{font-size:11px}.page-items li span{display:flex;flex-direction:column;gap:3px}.page-items li small{font-size:9px;color:var(--muted)}.payable-total{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:17px;border-radius:17px;background:#111827;color:#fff}.payable-total span{font-size:11px}.payable-total strong{font-size:22px}.copy-btn{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.1);color:inherit;border-radius:10px;padding:8px 10px;cursor:pointer;font-family:inherit;font-size:10px}.payment-bank-card{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:17px;border-radius:17px;background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff}.payment-bank-card>div{display:flex;flex-direction:column;gap:5px}.payment-bank-card span,.payment-bank-card small{font-size:10px;opacity:.82}.payment-bank-card strong{font-size:18px;letter-spacing:1px}.payment-instructions{line-height:2}.payment-due{text-align:center;padding:10px;font-size:11px}.receipt-upload-box{margin-top:14px;border:1px solid var(--line);border-radius:15px;padding:13px}.receipt-upload-box summary{font-weight:900;font-size:11px;cursor:pointer}.receipt-upload-box form{display:grid;gap:10px;margin-top:12px}.receipt-upload-box>small{display:block;color:var(--muted);margin-top:8px;font-size:9px}.payment-success-receipt{text-align:center;padding:22px}.payment-success-receipt h2{margin:8px 0}.payment-success-receipt p{font-size:11px;color:var(--muted)}.payment-footer-links{text-align:center;margin-top:15px}.payment-footer-links a{font-size:10px;color:#2563eb}
.receipt-page{background:#eef2f7}.receipt-sheet{width:190mm;min-height:250mm;margin:15mm auto;padding:15mm;background:#fff;box-shadow:0 15px 50px rgba(15,23,42,.12);font-family:YekanBakh,Vazirmatn,Tahoma}.receipt-sheet header{display:flex;align-items:center;gap:14px;border-bottom:2px solid #111827;padding-bottom:12px}.receipt-sheet header img{width:60px;height:60px;object-fit:contain}.receipt-sheet header div{flex:1}.receipt-sheet header h1{margin:0;font-size:20px}.receipt-sheet header p{margin:4px 0 0}.receipt-info{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:18px 0}.receipt-info div{padding:10px;border:1px solid #e5e7eb;border-radius:10px}.receipt-info span{display:block;font-size:9px;color:#64748b}.receipt-info strong{font-size:11px}.receipt-table{width:100%;border-collapse:collapse}.receipt-table th,.receipt-table td{border:1px solid #d1d5db;padding:10px;text-align:right}.receipt-table .total{font-weight:900;background:#f1f5f9}.receipt-sheet footer{text-align:center;margin-top:22px;font-size:9px;color:#64748b}
.settings-grid code{display:inline-block;max-width:100%;overflow:auto;background:#111827;color:#fff;border-radius:9px;padding:7px 9px;font-size:10px}
@media(max-width:900px){.fee-select-grid,.portal-payment-list{grid-template-columns:1fr}.payment-options{grid-template-columns:1fr}.portal-summary-grid{grid-template-columns:1fr 1fr}.payment-create-footer{align-items:stretch;flex-direction:column}.payment-create-footer .btn{width:100%}}
@media(max-width:640px){.fees-layout{grid-template-columns:1fr}.fee-definition-item{align-items:flex-start;flex-direction:column}.fee-select-item{grid-template-columns:1fr}.fee-select-item small{grid-column:auto}.payments-card,.announcements-admin-card,.portal-section{padding:16px}.portal-hero{align-items:stretch;flex-direction:column}.portal-status-panel{min-width:0}.portal-summary-grid{grid-template-columns:1fr 1fr}.portal-header-inner{padding:8px 14px}.portal-header .brand-inline span{display:none}.portal-payment-list{grid-template-columns:1fr}.payment-student{grid-template-columns:1fr}.payable-total{grid-template-columns:1fr auto}.payable-total .copy-btn{grid-column:1/-1}.payment-bank-card{align-items:stretch;flex-direction:column}.payment-bank-card .copy-btn{align-self:flex-start}.payment-paid-info,.portal-receipt-summary{grid-template-columns:1fr}.manual-payment form{position:fixed;left:16px;right:16px;top:25vh;width:auto}.receipt-sheet{width:auto;min-height:0;margin:0;padding:10mm;box-shadow:none}.receipt-info{grid-template-columns:1fr}.portal-announcement>div{align-items:flex-start;flex-wrap:wrap}.portal-announcement time{margin-right:0;width:100%}}
@media print{.receipt-page{background:#fff}.receipt-sheet{width:auto;min-height:0;margin:0;padding:0;box-shadow:none}.receipt-page .print-toolbar{display:none!important}}

/* v3.9 — vertical admin menu, OTP portal and compact Form 201 print */
.admin-body{padding-right:264px;background:#f5f7fb}
.admin-sidebar{position:fixed;z-index:80;top:0;right:0;bottom:0;width:264px;background:#fff;border-left:1px solid #e5e7eb;box-shadow:-10px 0 35px rgba(15,23,42,.05);display:flex;flex-direction:column;padding:18px 14px;overflow:hidden}
.admin-sidebar-brand{display:flex;align-items:center;gap:11px;padding:4px 5px 17px;border-bottom:1px solid #eef2f7;margin-bottom:12px}
.admin-sidebar-brand .brand-logo{width:46px;height:46px;object-fit:contain;flex:0 0 auto}
.admin-sidebar-brand>div{min-width:0;display:flex;flex-direction:column;gap:3px}
.admin-sidebar-brand strong{font-size:14px;white-space:nowrap}
.admin-sidebar-brand span{font-size:9px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:145px}
.admin-sidebar-brand>button{display:none;margin-right:auto;border:0;background:#f1f5f9;width:34px;height:34px;border-radius:10px;font:inherit;font-size:22px;cursor:pointer}
.admin-nav-vertical{display:flex!important;flex-direction:column;gap:5px!important;overflow-y:auto;overflow-x:hidden;padding:2px 0 12px;max-width:none!important;white-space:normal!important}
.admin-nav-vertical a{min-height:44px;border-radius:13px;padding:9px 11px;display:flex;align-items:center;gap:10px;font-size:12px;font-weight:800;color:#475569;transition:.18s;white-space:normal!important}
.admin-nav-vertical a i{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:#f1f5f9;color:#334155;font-style:normal;font-size:13px;flex:0 0 auto}
.admin-nav-vertical a:hover{background:#f8fafc;color:#0f172a;transform:translateX(-2px)}
.admin-nav-vertical a.active{background:#111827;color:#fff;box-shadow:0 9px 22px rgba(15,23,42,.14)}
.admin-nav-vertical a.active i{background:rgba(255,255,255,.16);color:#fff}
.admin-nav-vertical .logout-link{margin-top:auto;color:#b42318;background:#fff5f5}
.admin-nav-vertical .logout-link i{background:#fee2e2;color:#b42318}
.admin-nav-separator{padding:13px 8px 5px;font-size:9px;color:#94a3b8;font-weight:900;display:flex;align-items:center;gap:8px}
.admin-nav-separator:after{content:"";height:1px;background:#e2e8f0;flex:1}
.admin-menu-fab{display:none;position:fixed;z-index:95;right:14px;top:14px;width:44px;height:44px;border:0;border-radius:13px;background:#111827;color:#fff;font:inherit;font-size:20px;box-shadow:0 10px 28px rgba(15,23,42,.25);cursor:pointer}
.admin-sidebar-backdrop{display:none}
.admin-body>.shell{max-width:calc(100vw - 296px)}

.otp-identity-box{padding:15px;border-radius:16px;background:#f8fafc;border:1px solid #dbe4ef;margin-bottom:17px;line-height:1.9}
.otp-identity-box strong{display:block;font-size:13px;color:#0f172a}
.otp-identity-box p{margin:5px 0;color:#475569;font-size:11px}
.otp-identity-box span{display:block;font-size:10px;color:#2563eb;font-weight:800}
.otp-code-input{text-align:center!important;direction:ltr;letter-spacing:12px;font-size:28px!important;font-weight:900;padding-right:28px!important}
.portal-login-help{margin-top:15px;padding:12px 14px;border-radius:13px;background:#eff6ff;color:#475569;font-size:10px;line-height:1.9}
.portal-choice-list{display:grid;gap:10px}
.portal-choice-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border:1px solid #e2e8f0;border-radius:15px;background:#fff}
.portal-choice-card>div{display:flex;flex-direction:column;gap:4px}
.portal-choice-card strong{font-size:12px}.portal-choice-card span,.portal-choice-card small{font-size:9px;color:#64748b}

.compact-print-info{margin-top:1.5mm}
.compact-print-title{font-size:7.2pt;font-weight:900;color:#102a43;background:#eef3f8;border-right:1.2mm solid #b08d3b;padding:1.2mm 2mm;margin-top:1.3mm}
.compact-print-table{width:100%;min-width:0!important;border-collapse:collapse;table-layout:fixed;border:1px solid #98a2b3;background:#fff}
.compact-print-table th,.compact-print-table td{border:1px solid #c3cbd5;padding:1.15mm 1.5mm;text-align:right;vertical-align:middle;line-height:1.45}
.compact-print-table th{width:17%;background:#f8fafc;color:#667085;font-size:6.1pt;font-weight:700;white-space:normal}
.compact-print-table td{width:33%;font-size:7.2pt;font-weight:800;color:#101828;word-break:break-word}
.compact-print-table .address-row td{font-size:6.8pt;line-height:1.6}
.formal-sheet .formal-ribbon{margin-bottom:1.7mm}
.formal-sheet .formal-terms{margin-top:2.5mm}

@media(max-width:980px){
  .admin-body{padding-right:0;padding-top:64px}
  .admin-body>.shell{max-width:none}
  .admin-sidebar{transform:translateX(110%);transition:transform .22s ease;width:min(285px,88vw);box-shadow:-18px 0 55px rgba(15,23,42,.18)}
  .admin-sidebar-brand>button{display:grid;place-items:center}
  .admin-menu-fab{display:grid;place-items:center}
  .admin-sidebar-backdrop{position:fixed;z-index:70;inset:0;background:rgba(15,23,42,.42);backdrop-filter:blur(2px)}
  .admin-menu-open .admin-sidebar{transform:none}
  .admin-menu-open .admin-sidebar-backdrop{display:block}
  .admin-title{align-items:stretch;flex-direction:column}
  .admin-actions{flex-wrap:wrap}
}
@media(max-width:640px){
  .portal-choice-card{align-items:stretch;flex-direction:column}
  .portal-choice-card .btn{width:100%}
  .otp-code-input{letter-spacing:9px;font-size:24px!important}
}
@media print{
  .compact-print-title{print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .compact-print-table th{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}

/* v3.9.1 — compact admin UI and fixed single-column sidebar */
.admin-body{
  padding-right:232px;
  font-size:12px;
}
.admin-sidebar{
  width:232px;
  padding:12px 10px;
}
.admin-sidebar-brand{
  gap:8px;
  padding:2px 4px 11px;
  margin-bottom:7px;
}
.admin-sidebar-brand .brand-logo{width:38px;height:38px}
.admin-sidebar-brand strong{font-size:12px}
.admin-sidebar-brand span{font-size:8px;max-width:132px}
.admin-nav-vertical{
  display:flex!important;
  flex:1 1 auto!important;
  flex-direction:column!important;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
  align-content:stretch!important;
  width:100%!important;
  min-height:0;
  gap:3px!important;
  overflow-y:auto;
  overflow-x:hidden;
  padding:1px 1px 8px;
}
.admin-nav-vertical a{
  width:100%;
  min-width:0;
  min-height:36px;
  flex:0 0 auto!important;
  border-radius:10px;
  padding:5px 7px;
  gap:7px;
  font-size:10.5px;
  line-height:1.35;
  white-space:nowrap!important;
}
.admin-nav-vertical a span{
  min-width:0;
  flex:1 1 auto;
  white-space:nowrap!important;
  overflow:hidden;
  text-overflow:ellipsis;
}
.admin-nav-vertical a i{
  width:25px;
  height:25px;
  border-radius:8px;
  font-size:11px;
}
.admin-nav-vertical a:hover{transform:none}
.admin-nav-vertical a.active{box-shadow:0 6px 16px rgba(15,23,42,.12)}
.admin-nav-vertical .logout-link{margin-top:0}
.admin-nav-separator{
  padding:8px 6px 3px;
  font-size:7.5px;
  gap:6px;
}
.admin-body>.shell{
  width:min(1320px,calc(100% - 24px));
  max-width:calc(100vw - 254px);
}
.admin-shell,.detail-shell{padding:22px 0 42px}
.admin-title{margin-bottom:14px;gap:12px}
.admin-title h1,.detail-head h1{
  font-size:clamp(22px,2.6vw,30px);
  letter-spacing:-.5px;
  margin:7px 0 4px;
}
.admin-title p,.detail-head p{font-size:10.5px;line-height:1.7}
.admin-body .eyebrow{padding:4px 8px;font-size:8.5px}
.admin-body .card{border-radius:16px;box-shadow:0 10px 30px rgba(15,23,42,.055)}
.admin-body .admin-card,
.admin-body .detail-card,
.admin-body .review-card,
.admin-body .payments-card,
.admin-body .announcements-admin-card,
.admin-body .documents-card,
.admin-body .timeline-card{padding:15px}
.admin-body .detail-head{gap:12px;margin-bottom:14px}
.admin-body .detail-grid,.admin-body .review-grid{gap:7px}
.admin-body .detail-grid>div,.admin-body .review-grid>div{
  border-radius:11px;
  padding:9px 10px;
  gap:3px;
}
.admin-body .detail-grid span,.admin-body .review-grid span{font-size:9px}
.admin-body .detail-grid strong,.admin-body .review-grid strong{font-size:11px;line-height:1.55}
.admin-body label{font-size:10.5px;gap:5px}
.admin-body input,.admin-body select,.admin-body textarea{
  padding:9px 10px;
  border-radius:10px;
  font-size:11px;
}
.admin-body textarea{line-height:1.65}
.admin-body .btn{
  border-radius:10px;
  padding:8px 12px;
  font-size:10.5px;
  gap:6px;
}
.admin-body .btn.tiny{min-height:32px;padding:6px 9px;font-size:9.5px}
.admin-body .alert{padding:10px 12px;border-radius:11px;margin:11px 0;font-size:10.5px;line-height:1.7}
.admin-body .stat-grid{gap:9px;margin-bottom:12px}
.admin-body .stat-card{border-radius:13px;padding:13px;gap:5px}
.admin-body .stat-card span{font-size:10px}
.admin-body .stat-card strong{font-size:22px}
.admin-body .filters{gap:8px;margin-bottom:12px}
.admin-body .table-wrap{border-radius:12px}
.admin-body table{min-width:860px}
.admin-body th,.admin-body td{padding:9px 10px;font-size:10.5px}
.admin-body th{font-size:9px}
.admin-body td small{font-size:8.5px;margin-top:3px}
.admin-body .badge{padding:4px 7px;font-size:9px}
.admin-body .row-action{padding:6px 8px;border-radius:8px;font-size:9px}
.admin-body .pagination{margin-top:12px}
.admin-body .pagination a{width:31px;height:31px;border-radius:8px;font-size:10px}
.admin-body .panel-heading{margin-bottom:12px;gap:10px}
.admin-body .panel-heading h2{font-size:16px;margin-bottom:3px}
.admin-body .panel-heading p{font-size:9.5px;line-height:1.65}
.admin-body .management-grid,.admin-body .settings-grid{gap:12px}
.admin-body .template-grid{gap:11px;margin-top:11px}
.admin-body .template-card{padding:13px}
.admin-body .template-card form{gap:7px}
.admin-body .template-card-head input{font-size:12px}
.admin-body .capacity-form{padding:10px;border-radius:12px;margin-bottom:11px}
.admin-body .capacity-list{gap:8px}
.admin-body .capacity-item{padding:10px;border-radius:12px}
.admin-body .capacity-progress{margin:8px 0;height:5px}
.admin-body .capacity-edit{margin-top:8px}
.admin-body .inline-actions{gap:7px}
.admin-body .review-badge{padding:5px 8px;font-size:9px}
.admin-body .review-card{margin-top:12px;border-right-width:3px}
.admin-body .review-card-head{gap:12px}
.admin-body .review-card-head h2{font-size:17px;margin:3px 0}
.admin-body .review-card-head p{font-size:10px;line-height:1.65}
.admin-body .review-sms-state{min-width:125px;padding:9px 11px;border-radius:12px}
.admin-body .review-sms-state span,.admin-body .review-sms-state small{font-size:8.5px}
.admin-body .review-sms-state strong{font-size:12px;margin:2px 0}
.admin-body .review-form{margin-top:11px;padding-top:11px}
.admin-body .review-confirm{gap:10px;margin-top:10px;padding:10px;border-radius:12px}
.admin-body .review-confirm span{font-size:9.5px;line-height:1.6}
.admin-body .approved-detail{gap:10px;margin-top:11px;padding-top:11px}
.admin-body .documents-head{gap:12px;margin-bottom:11px}
.admin-body .documents-head h2{font-size:16px;margin:3px 0 2px}
.admin-body .documents-head p{font-size:9.5px;line-height:1.6}
.admin-body .documents-progress{min-width:112px;border-radius:12px;padding:8px 10px}
.admin-body .documents-progress strong{font-size:14px}
.admin-body .documents-progress span{font-size:8.5px}
.admin-body .documents-grid{gap:7px}
.admin-body .document-item{min-height:46px;padding:8px;border-radius:11px;gap:7px}
.admin-body .document-tick{width:23px;height:23px;border-radius:7px;font-size:10px}
.admin-body .document-item strong{font-size:9.5px;line-height:1.45}
.admin-body .documents-footer{gap:10px;margin-top:11px;padding-top:10px}
.admin-body .documents-footer small{font-size:9px}
.admin-body .payment-create-form,
.admin-body .payment-request-list{font-size:10px}
.admin-body .fee-select-grid{gap:7px}
.admin-body .fee-select-item{border-radius:11px;padding:9px}
.admin-body .payment-request-list{gap:8px}
.admin-body .payment-request-card{border-radius:12px;padding:11px}
.admin-body .payment-request-head h3{font-size:16px;margin:2px 0}
.admin-body .payment-request-head span,.admin-body .payment-request-head small{font-size:8.5px}
.admin-body .payment-items{margin:8px 0}
.admin-body .payment-items li{padding:6px 0;font-size:9.5px}
.admin-body .announcement-admin-list{gap:7px}
.admin-body .announcement-admin-list article{padding:10px;border-radius:11px}
.admin-body .announcement-admin-list strong{font-size:10.5px}
.admin-body .announcement-admin-list p{font-size:9.5px;line-height:1.65;margin:5px 0}
.admin-body .announcement-admin-list small,
.admin-body .announcement-read-state{font-size:8px}

/* Compact scrollable timeline */
.admin-body .timeline-card{margin-top:12px}
.admin-body .registration-timeline{
  max-height:460px;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:2px 3px 2px 6px;
  scrollbar-width:thin;
}
.admin-body .registration-timeline:before{right:15px;top:5px;bottom:5px;width:1px}
.admin-body .timeline-item{
  grid-template-columns:31px minmax(0,1fr);
  gap:8px;
  padding-bottom:8px;
}
.admin-body .timeline-icon{
  width:31px;
  height:31px;
  border-radius:9px;
  font-size:10px;
}
.admin-body .timeline-content{
  border-radius:11px;
  padding:8px 10px;
}
.admin-body .timeline-title{gap:7px}
.admin-body .timeline-title strong{font-size:10.5px}
.admin-body .timeline-title time{font-size:8px}
.admin-body .timeline-content p{margin:4px 0 0;font-size:9.2px;line-height:1.55}
.admin-body .timeline-meta{gap:4px;margin-top:5px}
.admin-body .timeline-meta span{font-size:7.8px;padding:3px 6px}
.admin-body .empty-timeline{padding:17px;border-radius:11px;font-size:9.5px}

@media(max-width:1100px) and (min-width:981px){
  .admin-body{padding-right:216px}
  .admin-sidebar{width:216px}
  .admin-body>.shell{max-width:calc(100vw - 236px)}
  .admin-nav-vertical a{font-size:10px}
}
@media(max-width:980px){
  .admin-body{padding-right:0;padding-top:54px}
  .admin-body>.shell{width:min(100% - 18px,1320px);max-width:none}
  .admin-sidebar{width:min(238px,86vw);padding:12px 10px}
  .admin-menu-fab{right:10px;top:10px;width:38px;height:38px;border-radius:11px;font-size:17px}
  .admin-sidebar-brand>button{width:30px;height:30px;border-radius:9px;font-size:19px}
  .admin-shell,.detail-shell{padding:15px 0 30px}
}
@media(max-width:700px){
  .admin-body .admin-card,
  .admin-body .detail-card,
  .admin-body .review-card,
  .admin-body .payments-card,
  .admin-body .announcements-admin-card,
  .admin-body .documents-card,
  .admin-body .timeline-card{padding:12px}
  .admin-body .admin-title h1,.admin-body .detail-head h1{font-size:22px}
  .admin-body .detail-head{align-items:stretch;flex-direction:column}
  .admin-body .documents-head{align-items:stretch;flex-direction:column}
  .admin-body .documents-progress{min-width:0;width:100%}
  .admin-body .registration-timeline{max-height:400px}
  .admin-body .timeline-title{align-items:flex-start;flex-direction:column;gap:2px}
}

/* v3.10 - compact financial dashboard and reports */
.dashboard-finance-card{margin-bottom:12px}
.dashboard-finance-stats{margin:0 0 11px!important}
.dashboard-finance-stats .stat-card strong,
.finance-stat-grid .stat-card strong{font-size:17px;line-height:1.45}
.stat-card.finance-positive{border-color:#bbf7d0;background:linear-gradient(145deg,#fff,#f0fdf4)}
.stat-card.finance-positive strong{color:#15803d}
.stat-card.finance-warning{border-color:#fed7aa;background:linear-gradient(145deg,#fff,#fff7ed)}
.stat-card.finance-warning strong{color:#c2410c}
.dashboard-finance-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dashboard-finance-panel{border:1px solid #e7ebf1;border-radius:12px;padding:11px;background:#fbfcfe;min-width:0}
.dashboard-finance-panel h3{font-size:11px;margin:0 0 8px;color:#172033}
.dashboard-fee-row,.dashboard-debt-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed #e3e8ef;color:inherit;text-decoration:none}
.dashboard-fee-row:last-child,.dashboard-debt-row:last-child{border-bottom:0}
.dashboard-fee-row span,.dashboard-debt-row span{display:grid;gap:2px;min-width:0}
.dashboard-fee-row b,.dashboard-debt-row b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-fee-row small,.dashboard-debt-row small{font-size:8px;color:#768198;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-fee-row>strong,.dashboard-debt-row>strong{font-size:9.5px;white-space:nowrap;color:#172033}
.dashboard-debt-row:hover{color:#1d4ed8}
.finance-report-shell{max-width:1500px!important}
.finance-filter-card{padding-top:11px!important;padding-bottom:11px!important}
.finance-filters{display:grid;grid-template-columns:170px minmax(260px,1fr) auto auto;align-items:end;margin:0!important}
.finance-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.finance-stat-grid .stat-card small{font-size:8px;color:#7a8498}
.finance-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(250px,.7fr);gap:12px;margin-bottom:12px}
.finance-breakdown-list{display:grid;gap:6px}
.finance-breakdown-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid #edf0f4;border-radius:10px;background:#fbfcfe}
.finance-breakdown-list article>div{display:grid;gap:2px}
.finance-breakdown-list strong{font-size:10px}
.finance-breakdown-list small{font-size:8px;color:#7a8498}
.finance-breakdown-list b{font-size:10px;white-space:nowrap}
.finance-breakdown-list .unique-total{background:#fffaf0;border-color:#fde7b0}
.finance-reconcile{display:grid;gap:7px}
.finance-reconcile>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid #edf0f4;border-radius:10px}
.finance-reconcile span{font-size:9px;color:#68748a}
.finance-reconcile strong{font-size:10px}
.finance-reconcile .total{background:#eef8f1;border-color:#ccebd5}
.finance-reconcile .total span,.finance-reconcile .total strong{color:#18733b}
.panel-count{display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:5px 8px;border-radius:999px;background:#eef2ff;color:#3346a8;font-size:9px}
.panel-count.warning{background:#fff2e2;color:#b45309}
.finance-table{min-width:1120px!important}
.finance-table td{vertical-align:top}
.finance-table td strong{display:block;font-size:10px}
.finance-table td small{display:block;color:#7a8498}
.pending-payment-report{border-top:3px solid #f59e0b}
.manual-payment form{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1100px){
  .finance-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .finance-dashboard-grid{grid-template-columns:1fr}
}
@media(max-width:800px){
  .dashboard-finance-grid{grid-template-columns:1fr}
  .finance-filters{grid-template-columns:1fr 1fr}
  .finance-filters .btn{width:100%}
}
@media(max-width:560px){
  .finance-stat-grid{grid-template-columns:1fr}
  .finance-filters{grid-template-columns:1fr}
  .dashboard-finance-stats{grid-template-columns:1fr 1fr!important}
  .dashboard-finance-stats .stat-card strong{font-size:13px}
  .manual-payment form{grid-template-columns:1fr}
}

/* v3.12 — landscape registrants list and compact payment receipt */
.registrants-list-sheet{
  width:297mm;
  min-height:210mm;
  padding:7mm;
}
.registrants-list-header{
  display:grid;
  grid-template-columns:16mm 1fr auto;
  align-items:center;
  gap:4mm;
  text-align:right!important;
  border-bottom:1.5px solid #111;
  margin-bottom:4mm!important;
  padding-bottom:3mm;
}
.registrants-list-header .brand-logo{
  width:14mm;
  height:14mm;
  object-fit:contain;
}
.registrants-list-header h1{
  margin:0 0 1mm;
  font-size:14pt;
}
.registrants-list-header p,
.registrants-list-header small{
  margin:0;
  font-size:7.5pt;
}
.registrants-list-header>strong{
  font-size:8pt;
  white-space:nowrap;
}
.registrants-print-table{
  width:100%;
  min-width:0!important;
  table-layout:fixed;
  border-collapse:collapse;
}
.registrants-print-table th,
.registrants-print-table td{
  border:1px solid #555;
  padding:1.35mm 1mm;
  font-size:6.7pt;
  line-height:1.45;
  vertical-align:middle;
  overflow-wrap:anywhere;
  word-break:normal;
}
.registrants-print-table th{
  background:#eef1f5;
  color:#111;
  font-weight:900;
  text-align:center;
}
.registrants-print-table tbody tr:nth-child(even){background:#fafafa}
.registrants-print-table .col-row{width:8mm;text-align:center}
.registrants-print-table .col-name{width:25mm}
.registrants-print-table .numeric-cell{width:22mm;text-align:center;white-space:nowrap}
.registrants-print-table .birth-age-cell{width:24mm;text-align:center}
.registrants-print-table .birth-age-cell span,
.registrants-print-table .birth-age-cell small{display:block;margin:0}
.registrants-print-table .birth-age-cell small{font-size:6pt;color:#444}
.registrants-print-table .phone-cell{width:23mm;text-align:center;white-space:nowrap}
.registrants-print-table .col-address{width:43mm}

.receipt-sheet{
  width:165mm;
  min-height:0;
  margin:10mm auto;
  padding:9mm;
}
.receipt-sheet header{
  gap:9px;
  padding-bottom:8px;
}
.receipt-sheet header img{width:42px;height:42px}
.receipt-sheet header h1{font-size:15px}
.receipt-sheet header p{font-size:9px}
.receipt-info{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:5px;
  margin:10px 0;
}
.receipt-info div{
  padding:6px 7px;
  border-radius:7px;
  min-height:42px;
}
.receipt-info span{font-size:7px}
.receipt-info strong{font-size:9px;line-height:1.45;overflow-wrap:anywhere}
.receipt-table{
  width:100%;
  min-width:0!important;
  table-layout:fixed;
}
.receipt-table th,
.receipt-table td{
  padding:5px 7px;
  font-size:9px;
  line-height:1.45;
}
.receipt-table th:last-child,
.receipt-table td:last-child{width:42mm;white-space:nowrap}
.receipt-sheet footer{margin-top:10px;font-size:7.5px}

@media(max-width:760px){
  .registrants-list-sheet{width:100%;min-height:0;padding:5mm}
  .receipt-info{grid-template-columns:1fr 1fr}
}
@media print{
  .registrants-print-page .print-list-sheet{
    width:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
  }
  .registrants-list-header{break-after:avoid}
  .registrants-print-table thead{display:table-header-group}
  .registrants-print-table tr{break-inside:avoid}
  .registrants-print-table th,
  .registrants-print-table td{font-size:6.4pt;padding:1.1mm .8mm}

  .receipt-sheet{
    width:165mm!important;
    margin:0 auto!important;
    padding:7mm!important;
  }
  .receipt-table th,
  .receipt-table td{font-size:8.5pt;padding:1.7mm 2mm}
}


/* v3.12.1 — ultra compact registrants print header */
.registrants-list-header{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:3mm!important;
  min-height:0!important;
  margin:0 0 2mm!important;
  padding:0 0 1.5mm!important;
  text-align:right!important;
  border-bottom:1px solid #111!important;
}
.registrants-header-main{
  display:flex!important;
  align-items:center!important;
  gap:2.5mm!important;
  min-width:0;
  flex:1;
  white-space:nowrap;
}
.registrants-list-header .brand-logo{
  width:8mm!important;
  height:8mm!important;
  min-width:8mm!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
}
.registrants-list-header h1{
  margin:0!important;
  font-size:10pt!important;
  line-height:1.2!important;
  white-space:nowrap;
}
.registrants-school-meta,
.registrants-print-date{
  margin:0!important;
  font-size:6.4pt!important;
  line-height:1.2!important;
  color:#222!important;
  white-space:nowrap;
}
.registrants-list-header>strong{
  margin:0!important;
  font-size:7pt!important;
  line-height:1!important;
  white-space:nowrap;
}
@media(max-width:900px){
  .registrants-header-main{gap:1.7mm!important}
  .registrants-school-meta,.registrants-print-date{font-size:5.8pt!important}
}
@media print{
  .registrants-list-header{margin-bottom:1.5mm!important;padding-bottom:1mm!important}
}

/* v3.12.2 — single-line, cache-resistant registrants print header */
.registrants-print-page .registrants-list-sheet{
  margin:4px auto!important;
  padding:3mm!important;
}
.registrants-print-page .registrants-list-header{
  min-height:0!important;
  height:auto!important;
  margin:0 0 1mm!important;
  padding:0 0 .8mm!important;
  gap:2mm!important;
  line-height:1!important;
}
.registrants-print-page .registrants-header-main{gap:1.7mm!important}
.registrants-print-page .registrants-list-header .brand-logo{
  width:5.5mm!important;
  height:5.5mm!important;
  min-width:5.5mm!important;
}
.registrants-print-page .registrants-list-header h1{font-size:8.4pt!important;line-height:1!important}
.registrants-print-page .registrants-school-meta,
.registrants-print-page .registrants-print-date{font-size:5.5pt!important;line-height:1!important}
.registrants-print-page .registrants-list-header>strong{font-size:6pt!important;line-height:1!important}
@media print{
  .registrants-print-page .registrants-list-sheet{padding:0!important}
  .registrants-print-page .registrants-list-header{margin-bottom:.8mm!important;padding-bottom:.6mm!important}
}
