@import url("https://fonts.googleapis.com/css2?family=Lalezar&family=Vazirmatn:wght@400;500;600;700;800;900&display=swap");

:root{--bg:#f6fbfa;--panel:#fff;--ink:#19332f;--muted:#74837f;--line:#dfe9e5;--teal:#087f72;--teal2:#10a18e;--gold:#e5a82b;--gold2:#f6cf70;--rose:#ef7a8a;--blue:#5aa7d8;--violet:#8b7bd9;--red:#c84c4c;--shadow:0 16px 45px rgba(18,67,58,.10);--radius:22px}
*{box-sizing:border-box}body{margin:0;font-family:"Vazirmatn","Segoe UI",Tahoma,Arial,sans-serif;background:radial-gradient(circle at 90% 0,#dff7f1 0,transparent 28%),linear-gradient(180deg,#fbfefd,#f3f8f6);color:var(--ink);min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.page{max-width:1240px;margin:auto;padding:24px}.site-header{max-width:1240px;margin:0 auto;padding:18px 24px;display:flex;justify-content:space-between;align-items:center}.brand-wrap{display:flex;align-items:center;gap:12px}.brand-logo{width:58px;height:58px}.brand-wrap h1{margin:0;font-size:25px}.brand-wrap p{margin:4px 0 0;color:var(--muted);font-size:13px}.ghost{border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 14px;color:var(--ink)}
.welcome-card{background:linear-gradient(125deg,#075f56,#0d9484);color:#fff;border-radius:30px;padding:32px;display:flex;justify-content:space-between;align-items:center;overflow:hidden;box-shadow:0 20px 55px rgba(7,95,86,.18)}.welcome-card h2{font-size:34px;margin:6px 0 10px}.welcome-card p{margin:0;color:#dcf7f1}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.2px;color:#79b8ad}.welcome-card .eyebrow{color:#f8da87}.mosque-art{width:250px;max-width:35%;opacity:.95}.role-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:18px}.role-card{border:1px solid var(--line);background:#fff;border-radius:22px;padding:24px 14px;min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;box-shadow:var(--shadow);transition:.18s}.role-card:hover{transform:translateY(-4px);border-color:#badbd4}.role-icon{font-size:38px}.role-card b{font-size:17px}.role-card small{color:var(--muted);line-height:1.7}.role-coach{background:linear-gradient(180deg,#fff,#f2fbf8)}.role-leader{background:linear-gradient(180deg,#fff,#fff8e9)}.role-game{background:linear-gradient(180deg,#fff,#f3f7ff)}.role-student{background:linear-gradient(180deg,#fff,#fff4f7)}.role-manager{background:linear-gradient(180deg,#fff,#f6f3ff)}
.login-shell{max-width:850px;margin:45px auto;display:grid;grid-template-columns:.9fr 1.1fr;background:#fff;border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:var(--shadow)}.login-side{background:linear-gradient(145deg,#075f56,#0b8e80);color:#fff;padding:40px;display:flex;flex-direction:column;justify-content:center}.login-side img{width:90px}.login-side h2{font-size:29px;margin:18px 0 8px}.login-side p{color:#dcf7f1;line-height:1.9}.login-form{padding:40px;display:flex;flex-direction:column;justify-content:center;gap:14px}.login-form label,.field{font-size:13px;color:#52645f}.login-form input,.field input,.field select,.field textarea,input,select,textarea{width:100%;margin-top:7px;border:1px solid #d8e4e0;background:#fbfdfc;border-radius:12px;padding:12px 13px;outline:none;color:var(--ink)}input:focus,select:focus,textarea:focus{border-color:#72c9bc;box-shadow:0 0 0 3px #e6f8f4}.btn{border:0;border-radius:12px;padding:11px 15px}.primary{background:linear-gradient(135deg,var(--teal),var(--teal2));color:#fff}.gold{background:linear-gradient(135deg,#c98e1b,var(--gold2));color:#fff}.soft{background:#eef5f3;color:#275f57}.danger-soft{background:#fff0f0;color:var(--red)}.full{width:100%}.form-msg{min-height:20px;font-size:13px;color:var(--red)}
.panel-shell{display:grid;grid-template-columns:250px 1fr;gap:18px}.sidebar{background:#fff;border:1px solid var(--line);border-radius:24px;padding:16px;box-shadow:var(--shadow);height:max-content;position:sticky;top:18px}.user-mini{display:flex;gap:10px;align-items:center;padding:6px 4px 16px;border-bottom:1px solid var(--line)}.avatar{width:45px;height:45px;border-radius:15px;background:linear-gradient(135deg,#d9f4ee,#fff1c8);display:grid;place-items:center;font-weight:900;color:#116e64}.user-mini small{display:block;color:var(--muted);margin-top:4px}.sidebar nav{display:flex;flex-direction:column;gap:7px;margin:14px 0}.nav-btn{border:0;background:transparent;text-align:right;padding:11px 12px;border-radius:12px;color:#50615d}.nav-btn.active,.nav-btn:hover{background:#eaf6f3;color:#086f64;font-weight:700}.panel-content{min-width:0}.panel-top{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}.panel-top h2{margin:4px 0 0}.scanner-btn{background:#172f2b;color:#fff}.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:0 10px 30px rgba(20,60,52,.06)}.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.metric{padding:18px;border-radius:18px;border:1px solid var(--line);background:linear-gradient(180deg,#fff,#f8fbfa)}.metric .num{font-size:28px;font-weight:900;margin:7px 0}.metric small{color:var(--muted)}.section-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.section-title h3{margin:0}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:650px}.table th,.table td{text-align:right;padding:11px 9px;border-bottom:1px solid #edf2f0;font-size:13px}.table th{color:#657671;font-size:12px;background:#f8fbfa}.pill{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;font-size:11px;background:#eef5f3;color:#286158}.pill.goldish{background:#fff6df;color:#8c6418}.pill.rose{background:#fff0f3;color:#9f5360}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.mini-btn{border:0;border-radius:9px;padding:7px 9px;background:#eef5f3;color:#285f56}.mini-btn.edit{background:#fff7df;color:#8a6216}.mini-btn.del{background:#fff0f0;color:#b94c4c}.search-line{display:flex;gap:8px;align-items:end}.search-line .field{flex:1}.empty{text-align:center;color:var(--muted);padding:30px 10px}.student-profile{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:15px;border-radius:18px;background:linear-gradient(135deg,#f5fbf9,#fffaf0);border:1px solid var(--line)}.profile-balances{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.coin-action-box{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.segmented{display:flex;background:#f0f5f3;border-radius:12px;padding:4px}.segmented button{flex:1;border:0;background:transparent;padding:9px;border-radius:9px}.segmented button.active{background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.06);font-weight:700}.amount-step{display:grid;grid-template-columns:repeat(10,1fr);gap:5px}.amount-step button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px}.amount-step button.active{background:#087f72;color:#fff;border-color:#087f72}
.modal{position:fixed;inset:0;background:rgba(14,37,32,.45);display:grid;place-items:center;padding:18px;z-index:99}.modal-card{width:min(720px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:24px;padding:22px;position:relative;box-shadow:0 28px 80px rgba(0,0,0,.22)}.modal-x{position:absolute;left:14px;top:12px;border:0;background:#f1f5f4;width:36px;height:36px;border-radius:50%;font-size:22px}.scanner-wrap{display:grid;grid-template-columns:1fr 1fr;gap:14px}.scanner-box{border:1px solid var(--line);border-radius:18px;padding:12px;background:#fbfdfc}.scan-manual{display:flex;gap:7px}.scan-manual input{margin:0}.success-box{background:#ebf8f3;border:1px solid #bfe6d8;border-radius:15px;padding:13px;color:#17695f}.warning-box{background:#fff8e4;border:1px solid #efdba3;border-radius:15px;padding:13px;color:#765716}.error-box{background:#fff0f0;border:1px solid #efcaca;border-radius:15px;padding:13px;color:#9e4444}
.student-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.student-tab{border:1px solid var(--line);border-radius:22px;padding:18px;background:#fff;text-align:right}.student-tab.active{border-color:#71c7ba;background:#f0fbf8}.student-tab .tab-icon{font-size:30px}.student-tab b{display:block;margin:8px 0}.student-tab small{color:var(--muted)}.bank-card{max-width:560px;aspect-ratio:1.586/1;border-radius:28px;padding:24px;color:#fff;background:radial-gradient(circle at 90% 15%,rgba(255,255,255,.14),transparent 22%),linear-gradient(135deg,#075f56,#0b927f 64%,#064c47);position:relative;overflow:hidden;box-shadow:0 20px 50px rgba(7,95,86,.23)}.bank-card:before{content:"";position:absolute;width:260px;height:260px;border:48px solid rgba(255,255,255,.045);border-radius:50%;left:-100px;bottom:-150px}.bank-top,.bank-middle,.bank-bottom{position:relative;z-index:2}.bank-top{display:flex;justify-content:space-between;align-items:flex-start}.bank-top .logos{display:flex;align-items:center;gap:8px}.bank-top img{width:54px;height:54px}.bank-mosque{width:110px!important;height:auto!important;opacity:.9}.bank-title{font-size:24px;font-weight:900}.bank-middle{display:grid;grid-template-columns:1fr 115px;gap:18px;align-items:end;margin-top:26px}.bank-qr{background:#fff;padding:8px;border-radius:14px;height:115px}.bank-qr canvas,.bank-qr img{width:100%!important;height:100%!important}.bank-label{font-size:11px;color:#cdece6}.bank-name{font-size:21px;font-weight:800;margin:4px 0 13px}.bank-id{font-family:monospace;letter-spacing:1px;font-size:18px}.bank-bottom{display:flex;justify-content:space-between;margin-top:18px;font-size:11px;color:#d8f2ed}.prayer-head{display:flex;justify-content:space-between;gap:10px;align-items:end;flex-wrap:wrap}.prayer-grid{width:100%;border-collapse:separate;border-spacing:5px;margin-top:10px}.prayer-grid th{font-size:12px;color:#61726e;padding:7px}.prayer-grid td{padding:10px 8px;border-radius:10px;text-align:center;background:#f5f8f7;font-size:12px}.prayer-grid td.done{background:#dff5ea;color:#176555;font-weight:800}.prayer-grid td.day{background:#fff6df;color:#7d5c17;font-weight:800}.prayer-score{padding:14px;border-radius:16px;background:linear-gradient(135deg,#fff8e6,#fff);border:1px solid #efdda8}.conversion-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.convert-card{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fbfdfc}.convert-card h4{margin:0 0 8px}.convert-card p{color:var(--muted);font-size:12px;line-height:1.8}.game-big{font-size:42px;font-weight:900;color:#416da8}.money-big{font-size:33px;font-weight:900;color:#8a6419}.print-actions{display:flex;gap:8px;margin-top:12px}
@media(max-width:1050px){.role-grid{grid-template-columns:repeat(3,1fr)}.panel-shell{grid-template-columns:220px 1fr}.cards-3{grid-template-columns:1fr 1fr}.amount-step{grid-template-columns:repeat(5,1fr)}}
@media(max-width:760px){.page,.site-header{padding:12px}.welcome-card{padding:24px}.welcome-card h2{font-size:27px}.mosque-art{display:none}.role-grid{grid-template-columns:1fr 1fr}.login-shell{grid-template-columns:1fr}.login-side{padding:25px}.panel-shell{display:block}.sidebar{position:static;margin-bottom:12px}.sidebar nav{display:grid;grid-template-columns:1fr 1fr}.panel-top{align-items:flex-start}.cards-3,.section-grid,.scanner-wrap,.student-tabs,.conversion-grid{grid-template-columns:1fr}.coin-action-box{grid-template-columns:1fr}.bank-card{padding:18px}.bank-middle{grid-template-columns:1fr 95px}.bank-qr{height:95px}.bank-mosque{width:80px!important}}
@media(max-width:470px){.role-grid{grid-template-columns:1fr}.site-header .brand-wrap p{display:none}.panel-top{display:block}.scanner-btn{margin-top:10px}.sidebar nav{grid-template-columns:1fr}.search-line{display:block}.search-line .btn{margin-top:8px;width:100%}.bank-title{font-size:19px}.bank-name{font-size:17px}.bank-id{font-size:14px}.prayer-grid{border-spacing:3px}.prayer-grid td{padding:8px 4px}}
@media print{body *{visibility:hidden!important}.bank-card,.bank-card *{visibility:visible!important}.bank-card{position:absolute;right:10mm;top:10mm;width:86mm;height:54mm;max-width:none;border-radius:5mm;box-shadow:none;padding:5mm;-webkit-print-color-adjust:exact;print-color-adjust:exact}.bank-title{font-size:5mm}.bank-name{font-size:4mm}.bank-id{font-size:3.5mm}.bank-top img{width:10mm;height:10mm}.bank-mosque{width:22mm!important}.bank-middle{grid-template-columns:1fr 21mm;gap:3mm;margin-top:4mm}.bank-qr{height:21mm;padding:1.5mm;border-radius:2mm}.bank-bottom{font-size:2mm;margin-top:3mm}}

/* V4.2 */
.convert-card.ready{border-color:#c8dfd9;background:linear-gradient(180deg,#ffffff,#f4fbf8)}
.convert-available{margin:10px 0;padding:9px 10px;border-radius:10px;background:#eef7f4;font-size:12px;color:var(--ink)}
button:disabled{opacity:.48;cursor:not-allowed;transform:none!important;filter:grayscale(.25)}
.ready-pill{background:#e8fbf5!important;color:#087f72!important;border-color:#bfe8dc!important;font-weight:700}

/* v4.2.8 brand refresh */
.brand-logo{width:72px!important;height:72px!important;filter:drop-shadow(0 6px 10px rgba(7,20,63,.12))}
.bank-card{background:radial-gradient(circle at 83% 15%,rgba(255,255,255,.15),transparent 20%),radial-gradient(circle at 15% 80%,rgba(234,182,77,.12),transparent 30%),linear-gradient(135deg,#06123b 0%,#082653 46%,#075f5a 100%)!important;border:1px solid rgba(239,194,98,.55);box-shadow:0 22px 56px rgba(3,15,47,.28)!important}
.bank-card:after{content:"";position:absolute;inset:10px;border:1px solid rgba(255,221,143,.18);border-radius:21px;pointer-events:none}
.bank-top .logos img{width:68px!important;height:68px!important;filter:drop-shadow(0 5px 10px rgba(0,0,0,.2))}
.bank-title{font-size:27px!important;color:#fff4d1}.bank-label{color:#d7e9e3!important}
.bank-name{font-size:23px!important;color:#fff}.bank-chip{width:54px;height:38px;border-radius:8px;margin-top:6px;background:linear-gradient(135deg,#f7dc8a,#c28b26);display:grid;grid-template-columns:repeat(2,1fr);gap:2px;padding:5px;box-shadow:inset 0 0 0 1px rgba(100,62,5,.25)}.bank-chip span{border:1px solid rgba(98,64,13,.3);border-radius:2px}
.bank-qr{border:2px solid #e7bd62!important;box-shadow:0 7px 16px rgba(0,0,0,.15)}
.bank-bottom-new{align-items:flex-end!important;gap:12px!important}.bank-org{font-weight:700;color:#ffe7a5;max-width:78%;line-height:1.7;font-size:11px}.bank-brand-en{white-space:nowrap;letter-spacing:1px;opacity:.82}
@media(max-width:560px){.brand-logo{width:60px!important;height:60px!important}.bank-org{font-size:9px}.bank-brand-en{font-size:9px}.bank-top .logos img{width:58px!important;height:58px!important}}
@media print{.bank-card{-webkit-print-color-adjust:exact;print-color-adjust:exact}.bank-org{color:#ffe7a5!important}}

/* V4.3.0 - Prayer card: row number, weekday and Persian date */
.prayer-grid th{white-space:nowrap}
.prayer-grid td.row-no{background:#eef5f3;color:#45635d;font-weight:800;min-width:48px}
.prayer-grid td.weekday{background:#f3f7fb;color:#375a78;font-weight:800;min-width:90px;white-space:nowrap}
.prayer-grid td.prayer-date{background:#fff8e8;color:#7b5a17;font-weight:800;min-width:105px;white-space:nowrap;direction:ltr}
.prayer-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:600px){.prayer-grid{min-width:720px}.prayer-grid th,.prayer-grid td{font-size:11px}.prayer-grid td.row-no{min-width:42px}.prayer-grid td.weekday{min-width:80px}.prayer-grid td.prayer-date{min-width:96px}}

/* v4.3.3 student refresh behavior */
.student-panel-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#fbfdfc}
@media(max-width:560px){.student-panel-tools{align-items:stretch}.student-panel-tools .btn{width:100%}}

/* ===== V4.3.4: self-registration + profile photos ===== */
.role-register{background:linear-gradient(145deg,#fffdf3,#fff7d7);border-color:#ecd792}
.role-register .role-icon{background:#fff1b8}
.avatar.has-photo{padding:0;overflow:hidden;background:#fff}
.avatar.has-photo img{width:100%;height:100%;object-fit:cover;display:block}
.table-avatar,.student-photo,.editor-avatar,.bank-owner-photo{object-fit:cover;border-radius:50%;border:2px solid rgba(8,127,114,.15);background:#eef6f4;display:inline-grid;place-items:center;font-weight:800;color:#087f72;overflow:hidden;flex:0 0 auto}
.table-avatar{width:42px;height:42px}
.student-photo{width:68px;height:68px;font-size:24px}
.editor-avatar{width:92px;height:92px;font-size:30px}
.bank-owner-photo{width:48px;height:48px;border-color:rgba(255,255,255,.38);background:rgba(255,255,255,.14);color:#fff}
.avatar-fallback{display:grid;place-items:center}
.student-identity{display:flex;align-items:center;gap:12px;min-width:0}
.user-photo-editor{display:flex;gap:16px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:16px;background:#f8fbfa;margin-bottom:14px}
.upload-btn{display:inline-block;margin-left:6px}
.bank-owner{display:flex;align-items:center;gap:10px}
@media(max-width:560px){.user-photo-editor{align-items:flex-start;flex-direction:column}.student-photo{width:56px;height:56px}.student-identity{align-items:flex-start}}

/* V4.3.5 registration profile */
.register-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.birth-wrap{margin:10px 0}.birth-title{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}
.birth-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.login-form textarea,.login-form select,.field textarea,.field select{width:100%;padding:12px 13px;border:1px solid #d6e2df;border-radius:12px;background:#fbfdfc;outline:none;margin-top:7px;font:inherit}
.login-form textarea:focus,.login-form select:focus,.field textarea:focus,.field select:focus{border-color:#67c7ba;box-shadow:0 0 0 3px #e4f7f3}
.profile-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px;background:#f8fbfa;border:1px solid var(--line);border-radius:14px;padding:12px;margin-top:12px}
.profile-details div{font-size:13px}.profile-details b{display:block;margin-bottom:3px}.profile-details .wide{grid-column:1/-1}
@media(max-width:620px){.register-grid,.birth-grid,.profile-details{grid-template-columns:1fr}}

.register-photo-box{display:flex;gap:14px;align-items:center;padding:14px;border:1px dashed var(--line);border-radius:16px;background:#fafdfc;margin:12px 0}
.register-photo-preview{width:98px;height:98px;flex:0 0 auto}.register-photo-preview img,.register-photo-preview .editor-avatar{width:98px;height:98px}
.expand-btn{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:#fff;color:#365d56;font-size:18px;display:inline-grid;place-items:center;transition:.18s}.expand-btn.open{transform:rotate(180deg);background:#eaf6f3}
.user-detail-row td{background:#fbfdfc;padding:0!important}.user-detail-box{display:none;padding:16px}.user-detail-row.open .user-detail-box{display:block}
.user-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.user-detail-item{padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}.user-detail-item small{display:block;color:var(--muted);margin-bottom:4px}.user-detail-address{grid-column:1/-1}
@media(max-width:760px){.user-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.register-photo-box{align-items:flex-start;flex-direction:column}.user-detail-grid{grid-template-columns:1fr}}


/* ===== V4.3.8 typography refresh ===== */
body{font-family:"Vazirmatn","Segoe UI",Tahoma,Arial,sans-serif;font-weight:500;line-height:1.75}
button,input,select,textarea{font-family:"Vazirmatn","Segoe UI",Tahoma,Arial,sans-serif}
.site-header,.page,.modal-card{font-feature-settings:"ss01" 1,"ss02" 1}
.brand-wrap h1,.welcome-card h2,.login-side h2,.bank-title{font-family:"Lalezar","Vazirmatn",sans-serif;font-weight:400;letter-spacing:.1px}
.brand-wrap h1{font-size:29px;line-height:1.25}
.welcome-card h2{font-size:38px;line-height:1.35}
.login-side h2{font-size:32px;line-height:1.4}
.panel-top h2,.section-title h3,.card>h3{font-weight:800;letter-spacing:-.15px}
.role-card b{font-weight:800;font-size:18px}
.role-card small,.brand-wrap p,.welcome-card p,.login-side p{font-weight:500}
.nav-btn{font-weight:600}
.nav-btn.active,.nav-btn:hover{font-weight:800}
.btn,.mini-btn,.ghost,.scanner-btn{font-weight:700}
.metric .num,.balance,.game-big,.money-big{font-weight:900;letter-spacing:-.4px}
.table th{font-weight:700}.table td{font-weight:500}
.field,.login-form label{font-weight:600}
input,select,textarea{font-weight:500}
.student-tab b,.bank-name,.user-mini b{font-weight:800}
.bank-title{font-size:30px!important;line-height:1.2}
.bank-name{letter-spacing:-.2px}
.bank-id{font-family:"Vazirmatn",monospace;font-weight:700;letter-spacing:.6px}
.eyebrow{font-weight:800}
.pill,.badge{font-weight:700}
.prayer-grid th{font-weight:800}.prayer-grid td{font-weight:600}
@media(max-width:760px){.welcome-card h2{font-size:31px}.brand-wrap h1{font-size:25px}.login-side h2{font-size:28px}.bank-title{font-size:24px!important}}

/* V4.3.9 - manual prayer entry */
.manual-date-preview{min-height:46px;display:flex;align-items:center;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:#f8fbfa;font-weight:800;color:var(--ink)}
.manual-success{border-right:4px solid #b7791f;background:#fff9e8}
.prayer-grid td.manual-entry{background:#fff1cc !important;color:#7a4b00 !important;box-shadow:inset 0 0 0 1px #e9c86f}
.prayer-grid td.auto-entry{background:#e9f8f3 !important;color:#08685e !important}
.manual-tag{display:block;width:max-content;margin:4px auto 0;padding:2px 6px;border-radius:999px;background:#d79a24;color:#fff;font-size:10px;font-weight:800}

/* V4.3.11 - پایدارسازی فرم مدیریت کاربران */
.modal{overscroll-behavior:contain}
.modal-card{overscroll-behavior:contain;scrollbar-gutter:stable}
#userForm input,#userForm select,#userForm textarea{font-size:16px}
#ufNational{direction:ltr;text-align:left}
@media(max-width:760px){
 .modal{place-items:start center;padding:10px;overflow:auto}
 .modal-card{margin-top:8px;width:100%;max-height:calc(100svh - 20px);border-radius:18px;padding:18px 14px}
 #userForm .section-grid{grid-template-columns:1fr}
}

/* V4.4.0 - terms, ranking, speed and mobile refinements */
.panel-top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.term-picker{display:flex;flex-direction:column;gap:4px;min-width:220px;font-size:11px;color:var(--muted)}
.term-picker select{margin:0;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-family:inherit;font-size:13px;max-width:320px}
.term-list-item{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px 14px;text-align:right;margin-bottom:8px;display:flex;flex-direction:column;gap:4px}
.term-list-item small{color:var(--muted)}.term-list-item.active{border-color:#71c7ba;background:#f0fbf8}
.term-roster{display:grid;gap:8px}.term-roster-row{display:grid;grid-template-columns:minmax(180px,1.3fr) auto 150px auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:14px;background:#fbfdfc}
.term-roster-row>div:first-child{min-width:0}.term-roster-row b,.term-roster-row small{display:block}.term-roster-row small{color:var(--muted);margin-top:3px}.term-check{display:flex;gap:6px;align-items:center;font-size:12px}.term-check input{width:auto}.mini-field{margin:0}.mini-field select{margin:0}
.term-user-box{display:grid;grid-template-columns:1.4fr 1fr;gap:10px;padding:12px;border-radius:14px;background:#f5faf8;border:1px dashed #bcded7;margin-top:12px}
.ranking-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px;border-radius:22px;background:linear-gradient(135deg,#0a7569,#0ca18f);color:#fff}.ranking-hero h3{font-size:26px;margin:6px 0}.ranking-hero p{margin:0;color:#daf6f0;line-height:1.9}.rank-score{text-align:center;background:rgba(255,255,255,.15);padding:14px 20px;border-radius:18px;min-width:130px}.rank-score small,.rank-score b{display:block}.rank-score b{font-size:38px;margin-top:4px}.rank-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.rank-card{padding:20px;border-radius:20px;border:1px solid var(--line);background:#fff}.rank-card span{display:block;color:var(--muted);font-size:13px}.rank-card b{display:block;font-size:38px;margin-top:8px}.rank-card b small{font-size:14px;color:var(--muted)}.level-rank{background:linear-gradient(135deg,#fff8e8,#fff)}.overall-rank{background:linear-gradient(135deg,#eef9f6,#fff)}
.credit-ledger{display:grid;gap:8px;min-width:0}.credit-ledger-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fbfdfc;min-width:0}.credit-ledger-row>div:first-child{min-width:0}.credit-ledger-row b,.credit-ledger-row div,.credit-ledger-row small{overflow-wrap:anywhere}.credit-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;color:var(--muted);font-size:11px;white-space:nowrap}
body{overflow-x:hidden}.panel-content,.card,.student-profile,.section-grid>*{min-width:0}.table-wrap{max-width:100%;-webkit-overflow-scrolling:touch}
@media(max-width:760px){
 .panel-top{flex-direction:column;align-items:stretch}.panel-top-actions{width:100%;justify-content:stretch}.term-picker{width:100%;min-width:0}.term-picker select{max-width:none;width:100%}
 .term-roster-row{grid-template-columns:1fr 1fr}.term-roster-row>div:first-child{grid-column:1/-1}.term-user-box{grid-template-columns:1fr}
 .ranking-hero{align-items:stretch;flex-direction:column}.rank-score{width:100%}.rank-grid{grid-template-columns:1fr}
 .credit-ledger-row{align-items:flex-start;flex-direction:column}.credit-meta{align-items:flex-start;white-space:normal;width:100%;padding-top:8px;border-top:1px dashed var(--line)}
 .student-profile{grid-template-columns:1fr}.student-profile>.btn{width:100%}.profile-balances{align-items:stretch}.profile-balances .pill{white-space:normal}
 .cash-spend-card .section-title{align-items:flex-start;flex-direction:column}
}

/* ===== V4.5.0 ===== */
.notes-list{display:grid;gap:10px;margin-top:12px}.note-item{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fbfdfc}.note-item.coach{border-right:4px solid #0a8f80}.note-item.leader{border-right:4px solid #d59b27}.note-item>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.note-item p{margin:8px 0;line-height:1.9}.note-item small{color:var(--muted)}.note-editor{display:grid;gap:8px;margin-bottom:12px}
.manager-ranking-list{display:grid;gap:9px}.manager-rank-row{display:grid;grid-template-columns:52px minmax(160px,1fr) 90px minmax(180px,auto);gap:12px;align-items:center;border:1px solid var(--line);border-radius:15px;padding:12px;background:#fff}.rank-no{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#eef5f3;font-weight:900;font-size:18px}.rank-person{display:grid;gap:3px}.rank-person small,.rank-points small{color:var(--muted)}.rank-points{text-align:center}.rank-points b{display:block;font-size:20px}.rank-breakdown{display:flex;gap:7px;flex-wrap:wrap}.rank-breakdown span{background:#f7f9f8;border:1px solid var(--line);border-radius:999px;padding:5px 8px;font-size:12px}
.camp-admin-card{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:14px;margin-top:8px}.camp-admin-card>div:first-child{display:grid;gap:4px}.camp-admin-card small{color:var(--muted)}.camp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.camp-card{border:1px solid var(--line);border-radius:18px;padding:16px;background:linear-gradient(180deg,#fff,#f8fbfa)}.camp-card h3{margin:8px 0}.camp-card p{color:var(--muted);line-height:1.9;min-height:44px}.camp-date{font-size:12px;color:#23675e;font-weight:800}.camp-facts{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.camp-facts span,.camp-summary span{padding:6px 9px;border-radius:999px;background:#eef5f3;font-size:12px}.camp-summary{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.consent-box{border:1px solid #ead69b;background:#fffaf0;border-radius:16px;padding:14px;margin:12px 0}.consent-box p{line-height:2}.signature-box{background:#fff;border:1px dashed #b9c7c3;border-radius:13px;padding:8px;margin:10px 0}.signature-box canvas{display:block;width:100%;height:150px;background:#fff;touch-action:none;border-radius:8px}.receipt-preview{display:block;max-width:220px;max-height:180px;object-fit:contain;border:1px solid var(--line);border-radius:12px;margin-top:8px}.camp-reg-list{display:grid;gap:12px}.camp-reg-card{border:1px solid var(--line);border-radius:15px;padding:13px}.camp-reg-card>div:first-child{display:grid;gap:3px}.camp-reg-card small{color:var(--muted)}.camp-proof-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.camp-proof-grid a,.camp-proof-grid>div{border:1px solid var(--line);border-radius:12px;padding:8px;text-align:center;text-decoration:none;color:inherit}.camp-proof-grid img{width:100%;height:140px;object-fit:contain;border-radius:8px}.camp-proof-grid span{display:block;margin-top:6px;font-size:12px}.proof-empty{display:grid;place-items:center;color:var(--muted);min-height:150px}
/* Mobile hardening for student workspace and credit history */
@media(max-width:760px){
 .manager-rank-row{grid-template-columns:44px 1fr 74px}.rank-breakdown{grid-column:2/4}.camp-grid{grid-template-columns:1fr}.camp-admin-card{align-items:flex-start;flex-direction:column}.camp-proof-grid{grid-template-columns:1fr}.camp-summary{align-items:flex-start;flex-direction:column}
 .student-profile{align-items:flex-start!important;flex-direction:column!important}.student-profile>.btn{width:100%}.profile-balances{display:flex!important;flex-wrap:wrap!important;gap:6px!important}.profile-balances .pill{max-width:100%;white-space:normal}
 .cash-spend-card{min-width:0!important}.credit-ledger{min-width:0!important}.credit-ledger-row{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;min-width:0!important}.credit-meta{text-align:right!important;display:flex!important;gap:8px!important;flex-wrap:wrap!important}
 .section-grid{grid-template-columns:1fr!important}.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.student-tabs{grid-template-columns:repeat(2,minmax(0,1fr))!important}.student-tab{min-width:0!important}
}

/* V4.5.1 */
.nav-coin-icon{width:22px;height:22px;vertical-align:middle;margin-left:6px}
.coin-heading{display:flex;align-items:center;gap:8px}.coin-heading img{width:30px;height:30px}.coin-value{display:flex;align-items:center;gap:7px}.coin-value img{width:32px;height:32px}
.parent-code-box{background:#fffaf0;border:1px solid #ead69b!important}
.camp-jalali-box{background:#f8fbfa;border:1px solid var(--line)!important}
.camp-admin-card small{display:block}
.warning-box{border:1px solid #f0cc87;background:#fff8e6;color:#7a5918;border-radius:13px;padding:10px;line-height:1.9;margin:9px 0}

@media(max-width:760px){
 .panel-top{flex-wrap:wrap}.panel-top>div{min-width:0}.panel-top h2{font-size:22px}
 .sidebar nav{grid-template-columns:1fr 1fr!important}
 .nav-btn{min-width:0;white-space:normal;display:flex;align-items:center;gap:5px}
 .manager-ranking-list{min-width:0}.manager-rank-row{grid-template-columns:40px minmax(0,1fr)!important;gap:8px}.rank-points{grid-column:2}.rank-breakdown{grid-column:1/3!important}
 .camp-reg-card,.camp-card,.camp-admin-card{min-width:0}.camp-proof-grid{grid-template-columns:1fr!important}
 .camp-proof-grid img{height:auto;max-height:260px}
 .modal-card{width:min(96vw,680px)!important;max-height:90vh;overflow:auto}
 .credit-ledger-row,.cash-spend-card{max-width:100%;overflow:hidden}
}
/* V4.5.3: parent portal + term controls */
.role-parent,.role-parent-register{border-color:#d9e7e3}
.term-list-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line,#dfe9e6);border-radius:14px;margin-top:8px;background:#fff}
.term-list-item.active{border-color:#60bcae;background:#f1fbf8}
.term-main-btn{border:0;background:transparent;display:flex;flex:1;min-width:0;flex-direction:column;align-items:flex-start;text-align:right;gap:3px;padding:4px;cursor:pointer;color:inherit}
.term-main-btn b,.term-main-btn small{max-width:100%;overflow-wrap:anywhere}
.parent-child-list{display:grid;gap:10px;margin-top:12px}
.parent-child-card{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line,#dfe9e6);border-radius:15px;background:#fafdfc}
.parent-child-card img{width:54px;height:54px;object-fit:cover;border-radius:14px}
.parent-child-card small{display:block;color:#6e817c;margin-top:4px}
@media(max-width:650px){.term-list-item{align-items:stretch;flex-direction:column}.term-list-item .row-actions{width:100%}.term-list-item .row-actions button{flex:1}.parent-child-card{align-items:flex-start}}

/* V4.5.5 - clearer segmented coin controls */
.segmented button{color:#365d56;font-weight:800;border:1px solid transparent;transition:.15s;background:#eef5f3}
.segmented button+button{margin-right:4px}
.segmented button.active{background:linear-gradient(135deg,#087f72,#10a18e)!important;color:#fff!important;border-color:#087f72!important;box-shadow:0 5px 14px rgba(8,127,114,.22)!important}
@media(max-width:760px){.segmented{gap:6px;background:transparent;padding:0}.segmented button{min-height:44px;background:#eaf4f1;border-color:#d5e7e1}.segmented button.active{font-weight:900}}

/* V4.5.6 - prayer sticker colors + camp payment card */
.prayer-sticker{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:72px;min-height:34px;padding:4px 11px 4px 8px;border-radius:999px;font-weight:900;font-size:11px;color:#fff;box-shadow:inset 0 -2px 0 rgba(0,0,0,.09),0 2px 7px rgba(0,0,0,.09);vertical-align:middle;white-space:nowrap}
.prayer-sticker .sticker-mosque{width:32px;height:23px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 32px}.prayer-sticker .sticker-mosque img{display:block;width:32px;height:23px;object-fit:contain;filter:drop-shadow(0 1px 0 rgba(255,255,255,.22))}
.sticker-green{background:#19ad73}.sticker-red{background:#e45252}.sticker-yellow{background:#f2c84b;color:#513c00}.sticker-purple{background:#8a5dc7}.sticker-blue{background:#3988d5}
.prayer-sticker-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.prayer-color-select{margin-top:8px}
.payment-card-no,.payment-note{direction:rtl}.payment-card-no b,.payment-note b{direction:ltr;display:inline-block;letter-spacing:1px}
@media(max-width:600px){.prayer-sticker{min-width:62px;padding:3px 7px;font-size:10px}.prayer-sticker .sticker-mosque{width:27px;height:20px;flex-basis:27px}.prayer-sticker .sticker-mosque img{width:27px;height:20px}}
.prayer-sticker .sticker-mosque{display:inline-flex;width:22px;height:18px;color:#163831}
.prayer-sticker .sticker-mosque svg{width:100%;height:100%;fill:currentColor;display:block}
.sticker-red .sticker-mosque,.sticker-purple .sticker-mosque,.sticker-blue .sticker-mosque{color:#fff}
.sticker-green .sticker-mosque{color:#0f4031}.sticker-yellow .sticker-mosque{color:#493700}

/* V4.5.7: camp receipt viewer + parent consent history */
.camp-proof-button{width:100%;border:1px solid var(--line);border-radius:12px;padding:8px;background:#fff;color:inherit;text-align:center;cursor:pointer}
.camp-proof-button img{width:100%;height:140px;object-fit:contain;border-radius:8px;display:block}
.camp-proof-button span{display:block;margin-top:6px;font-size:12px;font-weight:800;color:#245f56}
.document-image-view{display:grid;place-items:center;padding:12px;border:1px solid var(--line);border-radius:16px;background:#f7faf9;margin:12px 0;max-height:70vh;overflow:auto}
.document-image-view img{display:block;max-width:100%;max-height:64vh;object-fit:contain;border-radius:10px;background:#fff}
.signature-view img{max-height:260px}
.parent-consent-history{display:grid;gap:10px}
.consent-history-card{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:15px;background:#fbfdfc}
.consent-history-card small{display:block;color:var(--muted);margin-top:4px}
@media(max-width:650px){.consent-history-card{align-items:flex-start;flex-direction:column}.consent-history-card .row-actions{width:100%;justify-content:space-between}.camp-proof-button img{height:auto;max-height:260px}}

/* ============================================================
   V4.6.0 - Card, exams, attendance, parent portal
   ============================================================ */
.bank-card-v46{width:min(560px,100%);margin-inline:auto;box-sizing:border-box;background:linear-gradient(135deg,#07183e 0%,#0d3156 52%,#087b72 100%)!important;border:1px solid rgba(237,195,108,.7)!important;box-shadow:0 18px 48px rgba(8,30,66,.28)!important}
.bank-v46-top{display:flex;align-items:center;gap:12px;position:relative;z-index:2;direction:ltr}.bank-v46-logo{width:76px!important;height:64px!important;object-fit:cover;object-position:center 30%;border-radius:12px;background:#050505;border:1px solid rgba(245,206,126,.7)}.bank-v46-titlebox{direction:rtl;text-align:right}.bank-v46-middle{margin-top:22px}.bank-org{font-weight:800;color:#ffe7a5}.bank-brand-en{letter-spacing:1px;font-weight:800}.bank-card .bank-owner-photo{border:2px solid rgba(255,224,157,.75)}
.term-day-list{display:grid;gap:8px}.term-day-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:#fbfdfc}.term-day-row>div{display:grid;gap:3px}.term-day-row small{color:var(--muted)}
.attendance-list{display:grid;gap:7px}.attendance-row{display:grid;grid-template-columns:42px minmax(150px,1fr) 100px minmax(120px,auto);align-items:center;gap:10px;padding:10px 12px;border-radius:14px;border:1px solid var(--line)}.attendance-row.is-present{background:#eefaf5;border-color:#b7e5d3}.attendance-row.is-absent{background:#fff4f4;border-color:#f1c9c9}.attendance-no{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#fff;font-weight:900}.attendance-row>div{display:grid}.attendance-row small{color:var(--muted)}.attendance-status{font-weight:900}
.exam-list,.exam-grid{display:grid;gap:12px}.exam-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exam-card,.exam-student-card,.exam-q-draft,.essay-grade,.exam-answer{border:1px solid var(--line);border-radius:17px;padding:14px;background:linear-gradient(180deg,#fff,#f8fbfa)}.exam-card{display:flex;align-items:center;justify-content:space-between;gap:12px}.exam-card>div:first-child,.exam-q-draft>div{display:grid;gap:4px}.exam-card small,.exam-q-draft small{color:var(--muted)}.exam-q-draft{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}.exam-student-card{display:flex;flex-direction:column;justify-content:space-between;gap:10px}.exam-student-card h3{margin:7px 0}.exam-student-card p{color:var(--muted);line-height:1.9}.exam-result{padding:9px 12px;border-radius:12px;font-weight:900;text-align:center}.exam-result.passed{background:#def5e8;color:#17654d}.exam-result.failed{background:#ffe8e8;color:#a23b3b}.exam-result.pending_review,.exam-result.submitted{background:#fff5d7;color:#806014}.exam-resource{display:grid;gap:10px;margin:12px 0}.exam-resource img,.exam-resource video{display:block;width:100%;max-height:320px;object-fit:contain;border:1px solid var(--line);border-radius:14px;background:#111}.exam-answer-list,.essay-grade-list{display:grid;gap:12px;margin:14px 0}.exam-answer>b,.essay-grade>b{display:block;margin-bottom:10px}.mcq-options{display:grid;gap:8px}.mcq-options label{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid var(--line);border-radius:11px;background:#fff}.student-answer{padding:12px;border-radius:12px;background:#fff;border:1px dashed #c8d5d1;line-height:1.9;margin:8px 0}.parent-mini-list{display:grid;gap:8px;max-height:520px;overflow:auto}.parent-mini-list>div{display:grid;gap:3px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fbfdfc}.parent-mini-list small{color:var(--muted)}.attendance-parent-present{border-right:4px solid #25a06f!important}.attendance-parent-absent{border-right:4px solid #d94c4c!important}
@media(max-width:760px){.exam-grid{grid-template-columns:1fr}.attendance-row{grid-template-columns:38px 1fr 86px}.attendance-row>small{grid-column:2/4}.bank-card-v46{max-width:100%;padding:16px!important;border-radius:20px!important}.bank-v46-logo{width:62px!important;height:54px!important}.bank-v46-middle{grid-template-columns:minmax(0,1fr) 90px!important;gap:10px!important}.bank-card .bank-name{font-size:16px!important}.bank-card .bank-bottom{gap:8px;flex-direction:column;align-items:flex-start}.parent-activity-cards{grid-template-columns:1fr!important}}

/* Always print one Arman card on one physical page. */
@page{size:90mm 58mm;margin:0}
@media print{
 html,body{width:90mm!important;height:58mm!important;margin:0!important;padding:0!important;overflow:hidden!important;background:#fff!important}
 body.printing-arman-card *{visibility:hidden!important}
 body.printing-arman-card .bank-card,body.printing-arman-card .bank-card *{visibility:visible!important}
 body.printing-arman-card .bank-card{position:fixed!important;inset:2mm!important;width:86mm!important;height:54mm!important;max-width:none!important;min-width:86mm!important;min-height:54mm!important;margin:0!important;padding:4.5mm!important;border-radius:4mm!important;box-shadow:none!important;page-break-inside:avoid!important;break-inside:avoid!important;overflow:hidden!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
 body.printing-arman-card .print-actions{display:none!important}
 body.printing-arman-card .bank-v46-logo{width:13mm!important;height:11mm!important;border-radius:2mm!important}
 body.printing-arman-card .bank-title{font-size:4.8mm!important}.bank-label{font-size:2.2mm!important}.bank-name{font-size:3.8mm!important}.bank-v46-middle{grid-template-columns:1fr 21mm!important;gap:3mm!important;margin-top:3mm!important}.bank-qr{height:21mm!important;padding:1.2mm!important}.bank-bottom{font-size:1.9mm!important;margin-top:2.5mm!important;display:flex!important;flex-direction:row!important}.bank-owner-photo{width:10mm!important;height:10mm!important}
}


/* ===================== V4.6.1 Card + term calendar ===================== */
.bank-card-v461{display:flex;flex-direction:column;min-height:0;padding:20px 22px!important}
.bank-v461-header{display:flex;align-items:center;justify-content:space-between;gap:14px;position:relative;z-index:2;direction:rtl;min-height:66px}
.bank-v461-right{display:flex;align-items:center;gap:11px;min-width:0}
.bank-v461-arman-logo{width:58px;height:58px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 4px 8px rgba(0,0,0,.18))}
.bank-v461-farhang-logo{width:64px;height:58px;object-fit:cover;object-position:center 28%;border-radius:10px;background:#050505;border:1px solid rgba(245,206,126,.65);flex:0 0 auto}
.bank-v461-titlebox{text-align:right;min-width:0}.bank-v461-titlebox .bank-title{font-size:24px;line-height:1.2}.bank-cultural{font-size:13px;color:#d7f1eb;margin-top:5px;font-weight:700}
.bank-v461-body{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:16px;align-items:end;flex:1;min-height:0;margin-top:10px}
.bank-v461-owner{display:flex;align-items:center;gap:10px;min-width:0}.bank-v461-owner>div:last-child{min-width:0}.bank-v461-owner .bank-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:0}
.bank-v461-footer{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:8px;border-top:1px solid rgba(255,255,255,.18);font-size:10px;color:#ffe7a5;font-weight:800;line-height:1.4}
.bank-v461-footer span:last-child{color:#d8f2ed;letter-spacing:.8px;white-space:nowrap}
.term-calendar-wrap{border:1px solid var(--line);border-radius:18px;padding:14px;background:#fbfdfc}.term-calendar-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;text-align:center;margin-bottom:12px}.term-calendar-head b{display:block;font-size:18px}.term-calendar-head small{display:block;color:var(--muted);margin-top:3px}.term-week-head,.term-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.term-week-head span{text-align:center;font-size:11px;color:var(--muted);padding:5px 2px}.term-cal-day{border:1px solid var(--line);background:#fff;border-radius:12px;min-height:65px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--ink)}.term-cal-day span{font-weight:900;font-size:17px}.term-cal-day small{font-size:9px;color:var(--muted)}.term-cal-day.selected{background:#e0f6ed;border-color:#58bca8;color:#0c6b5d}.term-cal-day.selected b{font-size:10px}.term-cal-day.disabled{opacity:.3;background:#f3f4f4}.term-cal-empty{min-height:65px}.term-weekly-tools{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}.term-weekly-tools>span{font-size:12px;color:var(--muted);margin-left:4px}.term-day-summary{margin-top:14px}.term-day-summary h4{margin:0 0 8px}.coach-class-days{display:flex;gap:7px;overflow-x:auto;padding:8px 0 12px;scrollbar-width:thin}.class-day-chip{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:13px;padding:8px 12px;display:flex;flex-direction:column;gap:3px;color:var(--ink)}.class-day-chip b{font-size:12px}.class-day-chip span{font-size:10px;color:var(--muted)}.class-day-chip.active{background:#e6f7f2;border-color:#49b39f}.class-day-chip.future{opacity:.45}
@media(max-width:700px){.bank-card-v461{padding:15px!important}.bank-v461-arman-logo{width:48px;height:48px}.bank-v461-farhang-logo{width:52px;height:48px}.bank-v461-titlebox .bank-title{font-size:20px}.bank-cultural{font-size:11px}.bank-v461-body{grid-template-columns:minmax(0,1fr) 88px;gap:9px}.bank-v461-footer{font-size:8px}.term-calendar-wrap{padding:9px}.term-week-head,.term-calendar-grid{gap:3px}.term-cal-day{min-height:52px;border-radius:9px;padding:5px 2px}.term-cal-day span{font-size:14px}.term-cal-day small{display:none}.term-calendar-head{grid-template-columns:1fr 1fr}.term-calendar-head>div{grid-column:1/3;grid-row:1}.term-calendar-head #termCalPrev{grid-column:1;grid-row:2}.term-calendar-head #termCalNext{grid-column:2;grid-row:2}.term-week-head span{font-size:9px}.term-weekly-tools{gap:4px}.term-weekly-tools .mini-btn{font-size:10px;padding:6px 7px}}
@page{size:86mm 54mm;margin:0}
@media print{
 html,body{width:86mm!important;height:54mm!important;margin:0!important;padding:0!important;overflow:hidden!important;background:#fff!important}
 body.printing-arman-card{width:86mm!important;height:54mm!important}
 body.printing-arman-card *{visibility:hidden!important}
 body.printing-arman-card #studentBankCard,body.printing-arman-card #studentBankCard *{visibility:visible!important}
 body.printing-arman-card #studentBankCard{position:absolute!important;top:0!important;right:0!important;left:auto!important;width:86mm!important;height:54mm!important;min-width:86mm!important;min-height:54mm!important;max-width:86mm!important;max-height:54mm!important;margin:0!important;padding:3.6mm 4mm!important;border-radius:0!important;box-shadow:none!important;overflow:hidden!important;display:flex!important;page-break-after:avoid!important;page-break-before:avoid!important;page-break-inside:avoid!important;break-inside:avoid!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
 body.printing-arman-card .bank-v461-header{min-height:10mm!important;gap:2mm!important}body.printing-arman-card .bank-v461-arman-logo{width:9.5mm!important;height:9.5mm!important}body.printing-arman-card .bank-v461-farhang-logo{width:10.5mm!important;height:9.5mm!important;border-radius:1mm!important}body.printing-arman-card .bank-v461-titlebox .bank-title{font-size:4.4mm!important}body.printing-arman-card .bank-cultural{font-size:2.3mm!important;margin-top:.5mm!important}body.printing-arman-card .bank-v461-body{grid-template-columns:1fr 18mm!important;gap:2.5mm!important;margin-top:1.5mm!important}body.printing-arman-card .bank-owner-photo{width:9mm!important;height:9mm!important}body.printing-arman-card .bank-label{font-size:1.8mm!important}body.printing-arman-card .bank-name{font-size:3.3mm!important;margin:0!important}body.printing-arman-card .bank-qr{height:18mm!important;padding:1mm!important;border-radius:1.5mm!important}body.printing-arman-card .bank-v461-footer{position:absolute!important;right:4mm!important;left:4mm!important;bottom:2.8mm!important;margin:0!important;padding-top:1.4mm!important;font-size:1.65mm!important;line-height:1.2!important}body.printing-arman-card .print-actions{display:none!important}
}

/* V4.6.2 - دفتر حضور و غیاب ترمی */
.term-day-actions{display:flex;gap:6px;flex-wrap:wrap}
.attendance-book-card{overflow:hidden}
.attendance-book-scroll{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:16px;background:#fff}
.attendance-book{border-collapse:separate;border-spacing:0;min-width:max-content;width:100%;font-size:12px}
.attendance-book th,.attendance-book td{border-left:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px;vertical-align:middle;text-align:center;background:#fff}
.attendance-book thead th{position:sticky;top:0;z-index:3;background:#f4faf8;min-width:138px}
.attendance-book thead th small{display:block;color:var(--muted);font-weight:500;line-height:1.8;margin-top:3px}
.attendance-book .attendance-student-col{position:sticky;right:0;z-index:4;min-width:190px;max-width:230px;text-align:right;background:#fbfdfc;display:table-cell}
.attendance-book thead .attendance-student-col{z-index:5;background:#eaf6f2}
.attendance-book tbody .attendance-student-col>div{display:grid;gap:3px}.attendance-book tbody .attendance-student-col small{color:var(--muted);direction:ltr;text-align:right}.attendance-row-no{display:inline-grid;width:26px;height:26px;place-items:center;border-radius:8px;background:#eef5f3;margin-left:6px;float:right}
.attendance-choice{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;min-width:180px}
.att-choice{border:1px solid var(--line);background:#f7f9f8;border-radius:9px;padding:6px 4px;display:grid;gap:1px;place-items:center;color:var(--ink);min-height:48px}.att-choice span{font-size:15px}.att-choice small{font-size:9px}.att-choice.active.present{background:#daf4e8;border-color:#64c59f;color:#0b6b50}.att-choice.active.excused{background:#fff5cf;border-color:#e4c65c;color:#7a5c00}.att-choice.active.absent{background:#fde5e5;border-color:#df8c8c;color:#9b2929}.att-choice:disabled{opacity:.55}
.att-actor{font-size:9px;color:var(--muted);margin-top:4px;white-space:nowrap}
.attendance-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;font-size:12px}.attendance-legend span{padding:6px 10px;border-radius:999px}.attendance-legend .present{background:#daf4e8}.attendance-legend .excused{background:#fff5cf}.attendance-legend .absent{background:#fde5e5}
@media(max-width:700px){.attendance-book .attendance-student-col{min-width:145px}.attendance-choice{min-width:158px}.att-choice{min-height:44px;padding:4px 2px}.attendance-book th,.attendance-book td{padding:5px}}

.attendance-parent-excused{background:#fff8dc!important;border-color:#e7ce74!important}
/* V4.6.4 - Parent complete child overview */
.parent-wallet-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}
.metric-card{border:1px solid var(--line,#dfe9e6);border-radius:16px;padding:14px;background:#fbfdfc;display:flex;flex-direction:column;gap:5px;min-width:0}
.metric-card span{font-size:13px;color:var(--muted,#6e817c)}
.metric-card b{font-size:22px;line-height:1.5;overflow-wrap:anywhere}
.metric-card small{color:var(--muted,#6e817c)}
.parent-finance-history{margin-top:14px}
@media(max-width:900px){.parent-wallet-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.parent-wallet-grid{grid-template-columns:1fr}.parent-finance-history{display:block}.parent-finance-history>.card{margin-top:12px}}


/* v4.6.5 visual polish */
.site-header-v465{direction:rtl;gap:18px}
.header-left-brand{display:flex;align-items:center;gap:12px;margin-right:auto;direction:ltr}
.header-farhang-logo{width:74px;height:64px;object-fit:cover;object-position:center 28%;border-radius:12px;background:#050505;border:1px solid rgba(10,117,105,.18);box-shadow:0 7px 20px rgba(7,95,86,.12)}
.inline-coin-icon{width:22px;height:22px;display:inline-block;vertical-align:middle;object-fit:contain;flex:0 0 auto}
.dashboard-coin-icon{width:46px;height:46px;display:inline-block;object-fit:contain;filter:drop-shadow(0 5px 8px rgba(176,116,12,.18))}
.coin-line,.coin-pill{display:inline-flex!important;align-items:center;gap:6px}
.manager-rank-row .coin-line .inline-coin-icon{width:18px;height:18px}
/* Requested bank-card typeface. Uses B Koodak when installed on the device. */
.bank-card-v461,.bank-card-v461 *{font-family:"B Koodak","B Koodak Bold","B Koodak","Vazirmatn",Tahoma,sans-serif!important}
.bank-v461-titlebox .bank-title{font-weight:700!important;letter-spacing:0!important}
.bank-cultural,.bank-v461-footer,.bank-label,.bank-name{letter-spacing:0!important}
@media(max-width:620px){
 .site-header-v465{align-items:center;padding:13px 12px}
 .header-farhang-logo{width:54px;height:48px;border-radius:9px}
 .site-header-v465 .brand-logo{width:52px!important;height:52px!important}
 .site-header-v465 .brand-wrap{gap:8px;min-width:0}
 .site-header-v465 .brand-wrap h1{font-size:22px!important}
 .site-header-v465 .brand-wrap p{display:block!important;font-size:9px;line-height:1.6;max-width:210px}
 .header-left-brand .ghost{padding:7px 9px;font-size:11px}
}
@media print{
 body.printing-arman-card .bank-card-v461,body.printing-arman-card .bank-card-v461 *{font-family:"B Koodak","B Koodak Bold","Vazirmatn",Tahoma,sans-serif!important}
}

/* V4.6.6 - landing logo placement + centered card owner */
.welcome-farhang-logo{width:170px;height:145px;object-fit:contain;border-radius:18px;background:#050505;box-shadow:0 10px 28px rgba(0,0,0,.18);flex:0 0 auto}
.bank-v461-owner{justify-content:center!important;padding-inline-start:12%;text-align:center}
.bank-v461-owner>div:last-child{text-align:center}
@media(max-width:760px){.welcome-farhang-logo{display:none}.bank-v461-owner{padding-inline-start:5%}}
@media print{body.printing-arman-card .bank-v461-owner{justify-content:center!important;padding-inline-start:8%!important;text-align:center!important}}

/* V4.6.7 - Arman card owner/QR alignment */
.bank-card-v461 .bank-v461-body{margin-top:2px;transform:translateY(-8px)}
.bank-card-v461 .bank-v461-owner{justify-self:left;text-align:right}
.bank-card-v461 .bank-qr{justify-self:left}
@media(max-width:700px){.bank-card-v461 .bank-v461-body{transform:translateY(-6px)}}
@media print{
 body.printing-arman-card .bank-v461-body{margin-top:0!important;transform:translateY(-1.8mm)!important}
 body.printing-arman-card .bank-v461-owner{justify-self:left!important;text-align:right!important}
 body.printing-arman-card .bank-qr{justify-self:left!important}
}

/* V4.6.8 - Arman card layout per annotated reference */
.bank-card-v461 .bank-v461-body{
  grid-template-columns:108px minmax(0,1fr)!important;
  gap:22px!important;
  align-items:start!important;
  margin-top:0!important;
  transform:translateY(-12px)!important;
  direction:ltr!important;
}
.bank-card-v461 .bank-qr{
  grid-column:1!important;
  justify-self:start!important;
  align-self:start!important;
  width:108px!important;
  height:108px!important;
}
.bank-card-v461 .bank-v461-owner{
  grid-column:2!important;
  justify-self:stretch!important;
  align-self:start!important;
  justify-content:flex-start!important;
  padding:10px 0 0 0!important;
  text-align:right!important;
  direction:rtl!important;
  min-height:86px!important;
}
.bank-card-v461 .bank-v461-owner>div:last-child{
  text-align:right!important;
  width:100%!important;
}
.bank-card-v461 .bank-v461-owner .bank-label{
  margin-bottom:5px!important;
}
.bank-card-v461 .bank-v461-owner .bank-name{
  font-size:22px!important;
  line-height:1.35!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
@media(max-width:700px){
  .bank-card-v461 .bank-v461-body{grid-template-columns:92px minmax(0,1fr)!important;gap:12px!important;transform:translateY(-8px)!important}
  .bank-card-v461 .bank-qr{width:92px!important;height:92px!important}
  .bank-card-v461 .bank-v461-owner{padding-top:7px!important;min-height:74px!important}
  .bank-card-v461 .bank-v461-owner .bank-name{font-size:18px!important}
}
@media print{
  body.printing-arman-card .bank-v461-body{
    grid-template-columns:18mm minmax(0,1fr)!important;
    gap:3mm!important;
    margin-top:0!important;
    transform:translateY(-2.2mm)!important;
    direction:ltr!important;
    align-items:start!important;
  }
  body.printing-arman-card .bank-qr{
    grid-column:1!important;
    width:18mm!important;
    height:18mm!important;
    justify-self:start!important;
    align-self:start!important;
  }
  body.printing-arman-card .bank-v461-owner{
    grid-column:2!important;
    justify-self:stretch!important;
    align-self:start!important;
    justify-content:flex-start!important;
    padding:1.5mm 0 0 0!important;
    text-align:right!important;
    direction:rtl!important;
    min-height:15mm!important;
  }
  body.printing-arman-card .bank-v461-owner>div:last-child{text-align:right!important;width:100%!important}
  body.printing-arman-card .bank-name{font-size:3.5mm!important;line-height:1.25!important;white-space:normal!important}
}

/* V4.6.9 - move QR/owner block down toward vertical center */
.bank-card-v461 .bank-v461-body{transform:translateY(14px)!important}
@media(max-width:700px){.bank-card-v461 .bank-v461-body{transform:translateY(10px)!important}}
@media print{body.printing-arman-card .bank-v461-body{transform:translateY(2.2mm)!important}}

/* V4.7.0 - internal Arman card number / wallet */
.bank-card-v461{position:relative}
.bank-card-number{position:absolute;z-index:3;left:145px;right:92px;top:188px;text-align:center;direction:ltr;font-family:"B Koodak","Vazirmatn",Tahoma,sans-serif;font-size:22px;font-weight:800;letter-spacing:2.2px;color:#f8dfaa;text-shadow:0 1px 2px rgba(0,0,0,.25);white-space:nowrap}
.card-no-pill{direction:ltr;letter-spacing:1.2px;font-variant-numeric:tabular-nums}
.arman-wallet-summary{border:1px solid rgba(9,138,125,.18)!important;background:linear-gradient(135deg,#fbfffe,#f5fbf9)!important}
@media(max-width:700px){.bank-card-number{left:120px;right:72px;top:164px;font-size:17px;letter-spacing:1.4px}}
@media print{body.printing-arman-card .bank-card-number{left:23mm!important;right:17mm!important;top:34mm!important;font-size:3.7mm!important;letter-spacing:.55mm!important;color:#f8dfaa!important}}


/* V4.7.2 - card number lower + robust single-page printing */
.bank-card-number{
  top:242px!important;
  left:145px!important;
  right:92px!important;
  direction:ltr!important;
  unicode-bidi:isolate!important;
  font-family:Arial,"Segoe UI",sans-serif!important;
  font-variant-numeric:tabular-nums!important;
  letter-spacing:3px!important;
}
@media(max-width:700px){
  .bank-card-number{
    top:205px!important;
    left:116px!important;
    right:68px!important;
    font-size:17px!important;
    letter-spacing:2px!important;
  }
}

@page{
  size:85.6mm 53.98mm;
  margin:0;
}
@media print{
  html,body{
    width:85.6mm!important;
    height:53.98mm!important;
    min-width:85.6mm!important;
    min-height:53.98mm!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    background:#fff!important;
  }
  body.printing-arman-card{
    width:85.6mm!important;
    height:53.98mm!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }
  body.printing-arman-card #modal{
    position:static!important;
    inset:auto!important;
    display:block!important;
    width:85.6mm!important;
    height:53.98mm!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    background:transparent!important;
  }
  body.printing-arman-card .modal-card,
  body.printing-arman-card #modalBody{
    position:static!important;
    width:85.6mm!important;
    height:53.98mm!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:visible!important;
    background:transparent!important;
  }
  body.printing-arman-card .modal-x,
  body.printing-arman-card #modalBody>h3,
  body.printing-arman-card .print-actions{
    display:none!important;
  }
  body.printing-arman-card #studentBankCard{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:auto!important;
    bottom:auto!important;
    width:85.6mm!important;
    height:53.98mm!important;
    min-width:85.6mm!important;
    min-height:53.98mm!important;
    max-width:85.6mm!important;
    max-height:53.98mm!important;
    margin:0!important;
    padding:3.6mm 4mm!important;
    box-sizing:border-box!important;
    border-radius:3.5mm!important;
    overflow:hidden!important;
    transform:none!important;
    page-break-before:avoid!important;
    page-break-after:avoid!important;
    page-break-inside:avoid!important;
    break-before:avoid-page!important;
    break-after:avoid-page!important;
    break-inside:avoid!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  body.printing-arman-card .bank-v461-body{
    transform:translateY(2.2mm)!important;
  }
  body.printing-arman-card .bank-card-number{
    top:38.5mm!important;
    left:22mm!important;
    right:15mm!important;
    font-size:3.55mm!important;
    line-height:1!important;
    letter-spacing:.7mm!important;
    font-family:Arial,"Segoe UI",sans-serif!important;
    font-variant-numeric:tabular-nums!important;
  }
  body.printing-arman-card .bank-v461-footer{
    right:4mm!important;
    left:4mm!important;
    bottom:2.2mm!important;
    padding-top:1.2mm!important;
    font-size:1.55mm!important;
    line-height:1.1!important;
    white-space:nowrap!important;
  }
}

/* V4.7.3 - مربیان هر سطح و حضور و غیاب تفکیکی */
.coach-assignment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.coach-level-card{border:1px solid var(--line);border-radius:18px;padding:14px;background:linear-gradient(180deg,#fff,#f8fbfa)}
.coach-level-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.coach-level-head>b{font-size:16px}.coach-subject-field{margin-top:8px}.coach-subject-field>span{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.attendance-assignment-picker{min-width:270px;margin:0}.attendance-class-banner{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 12px;margin:12px 0;border-radius:14px;background:#eef8f5;border:1px solid #cfe9e2}.attendance-class-banner span{font-size:12px;color:var(--muted)}
.card-to-discount-box{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:13px;border:1px solid #f0d99b;background:#fff9e7;border-radius:15px;margin:12px 0}.card-to-discount-actions{display:flex;gap:8px;align-items:center}.card-to-discount-actions input{min-width:170px;margin:0}
@media(max-width:800px){.coach-assignment-grid{grid-template-columns:1fr}.attendance-assignment-picker{min-width:100%;width:100%}.attendance-class-banner,.card-to-discount-box{align-items:stretch;flex-direction:column}.card-to-discount-actions{flex-direction:column}.card-to-discount-actions input,.card-to-discount-actions button{width:100%}}

/* V4.7.5 - پیام‌های غیرمخرب و فرم‌های پایدار */
.toast-host{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:9999;display:grid;gap:8px;width:min(92vw,520px);pointer-events:none}
.app-toast{pointer-events:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:14px;box-shadow:0 14px 40px rgba(0,0,0,.16);opacity:0;transform:translateY(-12px);transition:.2s ease;font-weight:700;backdrop-filter:blur(8px)}
.app-toast.show{opacity:1;transform:translateY(0)}.app-toast.success{background:#eaf8f2;color:#17695f;border:1px solid #bfe6d8}.app-toast.error{background:#fff0f0;color:#9e4444;border:1px solid #efcaca}.app-toast.warning{background:#fff8e4;color:#765716;border:1px solid #efdba3}.app-toast button{border:0;background:transparent;color:inherit;font-size:20px;cursor:pointer;padding:0 4px}.form-inline-message{margin:8px 0 12px}.exam-card .row-actions{align-items:center}.exam-q-draft .row-actions{flex-shrink:0}

/* V2: cinema, center classes, mobile attendance */
.cinema-screen{margin:12px auto 18px;max-width:520px;text-align:center;padding:10px 18px;border-radius:50% 50% 12px 12px;background:#edf3f7;font-weight:800;box-shadow:0 8px 20px rgba(15,23,42,.08)}
.cinema-seat-map{display:flex;flex-direction:column;gap:8px;overflow-x:auto;padding:8px 2px 14px}
.cinema-row{display:flex;align-items:center;gap:10px;min-width:max-content}.cinema-row-label{width:70px;font-size:12px;color:#64748b}.cinema-seats{display:flex;gap:7px;flex-wrap:nowrap}
.cinema-seat{width:42px;height:38px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;cursor:pointer;font-weight:700;position:relative}.cinema-seat:hover{transform:translateY(-1px)}
.cinema-seat.selected{background:#dbeafe;border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.12)}.cinema-seat.taken{background:#1f2937;color:#fff;border-color:#111827;cursor:not-allowed}.cinema-seat.blocked{background:#fee2e2;border-color:#ef4444;color:#991b1b}.cinema-seat.removed{opacity:.25;border-style:dashed}.cinema-seat.blocked span{position:absolute;inset:0;display:grid;place-items:center;font-size:32px;line-height:1;color:#b91c1c}
.cinema-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;margin:10px 0 14px}.cinema-event-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.cinema-event-card{border:1px solid #e2e8f0;border-radius:16px;padding:14px;background:#fff}.cinema-event-card img{width:100%;height:220px;object-fit:cover;border-radius:12px;margin-bottom:8px}
.ticket-card{max-width:620px;margin:auto;border:2px dashed #64748b;border-radius:18px;padding:24px;text-align:center;background:#fff}.ticket-card img{width:84px}.ticket-seats{font-size:24px;font-weight:900;margin:16px 0}
@media(max-width:760px){.panel-shell{display:block}.sidebar{position:static;width:auto}.panel-content{padding:12px}.table-wrap{overflow-x:auto}.coach-attendance-grid,.attendance-grid{min-width:0!important}.cinema-seat{width:38px;height:36px}.cinema-row-label{width:54px}.btn,.mini-btn{min-height:42px}.attendance-status-btn{min-height:44px;padding:8px 10px}}
@media print{body *{visibility:hidden!important}#cinTicket,#cinTicket *{visibility:visible!important}#cinTicket{position:absolute;inset:20px;max-width:none}.modal-x,#printTicket{display:none!important}}
.cinema-aisle{display:inline-block;width:28px;flex:0 0 28px}
@media(max-width:700px){.cinema-aisle{width:14px;flex-basis:14px}}

/* V2.1.0 hotfix */
.welcome-farhang-logo{background:transparent!important;box-shadow:none!important;object-fit:contain!important;border-radius:0!important}
.header-farhang-logo{background:transparent!important;object-fit:contain!important;border:0!important;box-shadow:none!important}
.panel-home-btn{margin-top:12px}
.cinema-seats{direction:rtl!important;justify-content:flex-start}
.cinema-row{direction:rtl!important}
.v21-jdate{margin-top:10px;box-shadow:none}
@media(max-width:760px){.panel-home-btn{display:block!important}.cinema-seat-map{direction:rtl}.attendance-book-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}}

/* V2.2.0 cinema editor, public tracking, performance/mobile polish */
.cinema-row-editor{display:grid;gap:6px;min-width:max-content;padding:5px 0;border-bottom:1px dashed #edf0f2}.cinema-row-editor:last-child{border-bottom:0}.cinema-row-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.cinema-row-actions{display:flex;gap:6px}.cinema-row-groups{direction:ltr;display:grid;grid-template-columns:minmax(250px,1fr) minmax(250px,1fr);gap:38px;align-items:center;min-height:42px}.cinema-seat-group{display:flex;gap:7px;direction:ltr;min-height:38px}.cinema-seat-group.left{justify-content:flex-end}.cinema-seat-group.right{justify-content:flex-start}.cinema-seat-edit-wrap{position:relative;display:inline-flex}.seat-delete-btn{position:absolute;top:-8px;left:-7px;width:18px;height:18px;border-radius:50%;border:0;background:#dc2626;color:#fff;font-size:12px;line-height:18px;padding:0;cursor:pointer;z-index:2}.cinema-layout-editor{overflow:hidden}.cinema-public-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.cinema-track-list{display:grid;gap:12px}.status-success{background:#dcfce7!important;color:#166534!important}.status-warning{background:#fef3c7!important;color:#92400e!important}.status-danger{background:#fee2e2!important;color:#991b1b!important}.cinema-event-card img,.receipt-preview{content-visibility:auto}.panel-body,.card{contain:layout style}
@media(max-width:760px){.cinema-row-groups{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr);gap:18px}.cinema-seat-group{gap:5px}.cinema-seat{width:35px;height:34px;font-size:12px}.cinema-row-head{align-items:flex-start;flex-direction:column}.cinema-row-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.cinema-public-actions{grid-template-columns:1fr}.cinema-event-grid,.camp-grid,.section-grid{grid-template-columns:1fr!important}.camp-reg-card,.camp-admin-card{overflow-wrap:anywhere}.ticket-card{padding:14px}.modal-card{width:min(96vw,720px)!important;max-height:92vh!important}.cinema-seat-map{padding-bottom:18px;-webkit-overflow-scrolling:touch}.cinema-screen{position:sticky;left:0;right:0}.student-panel-tools{align-items:stretch;flex-direction:column}.student-panel-tools .btn{width:100%}}


/* V2.8.4 - ARMAN CARD: reference layout requested by center */
.arman-card-reference{width:min(760px,100%);aspect-ratio:1.586/1;box-sizing:border-box;margin-inline:auto;position:relative;overflow:hidden;border-radius:22px!important;padding:28px 32px!important;color:#fff!important;background:radial-gradient(circle at 82% 12%,rgba(69,202,255,.18),transparent 24%),radial-gradient(circle at 18% 76%,rgba(0,211,255,.13),transparent 28%),linear-gradient(135deg,#2f58b6 0%,#2e56b3 48%,#2550ad 100%)!important;border:0!important;box-shadow:0 18px 46px rgba(28,61,145,.28)!important;direction:rtl}
.arman-card-reference:before{content:"";position:absolute;inset:0;background:repeating-radial-gradient(ellipse at 25% 65%,transparent 0 10px,rgba(31,225,255,.08) 11px 12px);opacity:.75;pointer-events:none}
.ac-top,.ac-main,.ac-number,.ac-footer{position:relative;z-index:2}.ac-top{display:grid;grid-template-columns:1fr auto 62px;align-items:center;gap:14px;direction:ltr}.ac-en{display:flex;align-items:center;gap:12px;font:500 27px/1 Arial,sans-serif;white-space:nowrap}.ac-en i{height:2px;background:#fff;opacity:.95;flex:1}.ac-fa{direction:rtl;font-size:27px;font-weight:900;white-space:nowrap}.ac-logo{width:58px;height:58px;object-fit:contain;filter:brightness(0) invert(1)}
.ac-main{display:grid;grid-template-columns:43% 1fr;gap:34px;align-items:center;margin-top:26px;direction:ltr}.ac-media{display:grid;grid-template-columns:1.45fr 1fr;align-items:center;direction:ltr}.ac-photo{height:186px;position:relative;z-index:2}.ac-photo .bank-owner-photo,.ac-photo img.bank-owner-photo{width:100%!important;height:100%!important;border-radius:22px!important;border:0!important;object-fit:cover!important;background:#fff!important}.ac-qr{height:130px;width:130px;background:#fff;padding:12px;border:3px solid #fff;border-radius:0 22px 22px 0;box-sizing:border-box;margin-left:-2px}.ac-qr canvas,.ac-qr img{width:100%!important;height:100%!important;display:block}.ac-owner{direction:rtl;text-align:right;align-self:center}.ac-owner-label{font-size:25px;font-weight:900;margin-bottom:10px}.ac-owner-name{font-size:38px;font-weight:950;line-height:1.55;color:#fff;text-shadow:0 2px 1px rgba(0,0,0,.06)}
.ac-number{margin-top:26px;background:#fff;color:#3156b2;border-radius:15px;padding:11px 20px;text-align:center;direction:ltr;font:800 39px/1.25 Arial,"Segoe UI",sans-serif;letter-spacing:4px;font-variant-numeric:tabular-nums;white-space:nowrap}.ac-footer{display:flex;align-items:center;gap:12px;margin-top:25px;font-size:17px;font-weight:700;white-space:nowrap}.ac-footer i{height:2px;background:#fff;flex:1;opacity:.9}
@media(max-width:700px){.arman-card-reference{padding:16px 18px!important;border-radius:16px!important}.ac-top{grid-template-columns:1fr auto 42px;gap:8px}.ac-en,.ac-fa{font-size:16px}.ac-logo{width:40px;height:40px}.ac-main{gap:15px;margin-top:14px}.ac-photo{height:110px}.ac-qr{width:78px;height:78px;padding:7px;border-radius:0 14px 14px 0}.ac-owner-label{font-size:14px;margin-bottom:4px}.ac-owner-name{font-size:21px;line-height:1.4}.ac-number{margin-top:14px;border-radius:10px;padding:7px 10px;font-size:22px;letter-spacing:2px}.ac-footer{margin-top:12px;font-size:9px;gap:7px}}
@page{size:85.6mm 53.98mm;margin:0}
@media print{html,body{width:85.6mm!important;height:53.98mm!important;margin:0!important;padding:0!important}body.printing-arman-card{display:block!important}body.printing-arman-card *{visibility:hidden!important}body.printing-arman-card #studentBankCard,body.printing-arman-card #studentBankCard *{visibility:visible!important}body.printing-arman-card #studentBankCard{position:fixed!important;inset:0!important;width:85.6mm!important;height:53.98mm!important;min-width:85.6mm!important;min-height:53.98mm!important;max-width:85.6mm!important;max-height:53.98mm!important;margin:0!important;padding:3.2mm 3.8mm!important;border-radius:3mm!important;box-sizing:border-box!important;transform:none!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body.printing-arman-card .ac-top{grid-template-columns:1fr auto 8mm!important;gap:1.5mm!important}body.printing-arman-card .ac-en,body.printing-arman-card .ac-fa{font-size:3.2mm!important}body.printing-arman-card .ac-logo{width:7.5mm!important;height:7.5mm!important}body.printing-arman-card .ac-main{grid-template-columns:43% 1fr!important;gap:4mm!important;margin-top:2.8mm!important;transform:none!important}body.printing-arman-card .ac-photo{height:18.5mm!important}body.printing-arman-card .ac-photo .bank-owner-photo{width:100%!important;height:100%!important;border-radius:2.2mm!important}body.printing-arman-card .ac-qr{width:13.5mm!important;height:13.5mm!important;padding:1mm!important;border-width:.5mm!important;border-radius:0 2mm 2mm 0!important}body.printing-arman-card .ac-owner-label{font-size:2.8mm!important;margin-bottom:1mm!important}body.printing-arman-card .ac-owner-name{font-size:4.6mm!important;line-height:1.35!important}body.printing-arman-card .ac-number{margin-top:2.5mm!important;padding:1.2mm 2mm!important;border-radius:1.7mm!important;font-size:4.7mm!important;letter-spacing:.65mm!important;line-height:1.2!important;position:relative!important;inset:auto!important}body.printing-arman-card .ac-footer{position:relative!important;inset:auto!important;margin-top:2.5mm!important;padding:0!important;border:0!important;font-size:1.75mm!important;line-height:1!important}.print-actions{display:none!important}}


/* V2.8.5 - ARMAN CARD matched to supplied reference + larger photo area */
.arman-card-reference{
  width:min(804px,100%)!important;
  aspect-ratio:1004/626!important;
  padding:26px 34px 24px!important;
  border-radius:0!important;
  background:
    radial-gradient(circle at 74% 9%,rgba(60,179,255,.13),transparent 28%),
    radial-gradient(circle at 12% 82%,rgba(0,213,255,.15),transparent 34%),
    repeating-radial-gradient(ellipse at 14% 67%,transparent 0 9px,rgba(0,222,255,.085) 10px 11px),
    linear-gradient(115deg,#2b56b4 0%,#2f59b8 55%,#2852ac 100%)!important;
  box-shadow:0 18px 45px rgba(35,66,150,.28)!important;
  overflow:hidden!important;
}
.arman-card-reference:before{display:none!important}
.ac-top{grid-template-columns:minmax(0,1fr) auto 66px!important;gap:16px!important;height:66px!important;align-items:start!important}
.ac-en{font-family:Arial,"Segoe UI",sans-serif!important;font-size:29px!important;font-weight:400!important;gap:14px!important;padding-top:7px!important}
.ac-en i{height:2px!important;background:#fff!important;opacity:1!important}
.ac-fa{font-family:"Vazirmatn",Tahoma,sans-serif!important;font-size:31px!important;font-weight:700!important;line-height:1.2!important;padding-top:2px!important}
.ac-logo{width:64px!important;height:64px!important;object-fit:contain!important;filter:brightness(0) invert(1)!important;margin-top:-4px!important}
.ac-main{display:grid!important;grid-template-columns:43.5% minmax(0,1fr)!important;gap:42px!important;align-items:center!important;margin-top:18px!important;direction:ltr!important}
.ac-media{display:grid!important;grid-template-columns:minmax(0,1.55fr) minmax(105px,.98fr)!important;align-items:center!important;gap:0!important;direction:ltr!important;min-width:0!important}
.ac-photo{height:198px!important;width:100%!important;overflow:hidden!important;border-radius:25px!important;background:#fff!important;position:relative!important;z-index:2!important}
.ac-photo .bank-owner-photo,.ac-photo img.bank-owner-photo{
  display:block!important;width:100%!important;height:100%!important;max-width:none!important;
  border-radius:25px!important;border:0!important;object-fit:cover!important;object-position:center 20%!important;
  background:#fff!important;margin:0!important;padding:0!important;
}
.ac-photo .avatar-fallback{display:grid!important;place-items:center!important;font-size:72px!important;font-weight:900!important;color:#3157b1!important}
.ac-qr{width:138px!important;height:138px!important;align-self:center!important;margin-left:-3px!important;padding:12px!important;background:#2f58b6!important;border:3px solid #fff!important;border-left-width:3px!important;border-radius:0 28px 28px 0!important;box-sizing:border-box!important;overflow:hidden!important}
.ac-qr canvas,.ac-qr img{background:#fff!important;width:100%!important;height:100%!important;display:block!important}
.ac-owner{direction:rtl!important;text-align:right!important;align-self:center!important;min-width:0!important;padding-top:4px!important}
.ac-owner-label{font-family:"Vazirmatn",Tahoma,sans-serif!important;font-size:26px!important;font-weight:800!important;line-height:1.3!important;margin:0 0 8px!important;color:#fff!important}
.ac-owner-name{font-family:"Vazirmatn",Tahoma,sans-serif!important;font-size:41px!important;font-weight:900!important;line-height:1.55!important;letter-spacing:-1.7px!important;color:#fff!important;text-shadow:none!important;overflow-wrap:anywhere!important}
.ac-owner-name--medium{font-size:36px!important;line-height:1.5!important}
.ac-owner-name--long{font-size:31px!important;line-height:1.45!important}
.ac-number{margin-top:22px!important;background:#fff!important;color:#3157b0!important;border-radius:15px!important;padding:11px 18px 10px!important;text-align:center!important;direction:ltr!important;font-family:Arial,"Segoe UI",sans-serif!important;font-size:42px!important;font-weight:800!important;line-height:1.25!important;letter-spacing:3.5px!important;font-variant-numeric:tabular-nums!important;white-space:nowrap!important}
.ac-footer{display:flex!important;align-items:center!important;gap:12px!important;margin-top:22px!important;font-family:"Vazirmatn",Tahoma,sans-serif!important;font-size:16px!important;font-weight:600!important;line-height:1.2!important;white-space:nowrap!important;color:#fff!important}
.ac-footer i{height:2px!important;background:#fff!important;flex:1!important;opacity:1!important}

@media(max-width:700px){
 .arman-card-reference{padding:13px 17px 12px!important;min-width:0!important}
 .ac-top{grid-template-columns:minmax(0,1fr) auto 39px!important;gap:7px!important;height:42px!important}
 .ac-en{font-size:15px!important;gap:7px!important;padding-top:4px!important}.ac-fa{font-size:16px!important}.ac-logo{width:38px!important;height:38px!important}
 .ac-main{grid-template-columns:44% minmax(0,1fr)!important;gap:14px!important;margin-top:9px!important}
 .ac-media{grid-template-columns:minmax(0,1.55fr) minmax(58px,.98fr)!important}.ac-photo{height:112px!important;border-radius:14px!important}.ac-photo .bank-owner-photo,.ac-photo img.bank-owner-photo{border-radius:14px!important;object-position:center 18%!important}
 .ac-qr{width:77px!important;height:77px!important;padding:6px!important;border-width:2px!important;border-radius:0 15px 15px 0!important}
 .ac-owner-label{font-size:13px!important;margin-bottom:3px!important}.ac-owner-name{font-size:21px!important;letter-spacing:-.7px!important;line-height:1.5!important}.ac-owner-name--medium{font-size:19px!important}.ac-owner-name--long{font-size:17px!important}
 .ac-number{margin-top:10px!important;border-radius:8px!important;padding:6px 8px!important;font-size:21px!important;letter-spacing:1.5px!important}.ac-footer{margin-top:10px!important;font-size:8px!important;gap:6px!important}
}

@media print{
 html,body{width:85.6mm!important;height:53.98mm!important;margin:0!important;padding:0!important}
 body.printing-arman-card #studentBankCard{width:85.6mm!important;height:53.98mm!important;min-width:85.6mm!important;min-height:53.98mm!important;max-width:85.6mm!important;max-height:53.98mm!important;padding:2.5mm 3mm 2.2mm!important;border-radius:0!important}
 body.printing-arman-card .ac-top{grid-template-columns:minmax(0,1fr) auto 6.5mm!important;gap:1.3mm!important;height:6.7mm!important}
 body.printing-arman-card .ac-en{font-size:2.75mm!important;padding-top:.6mm!important}body.printing-arman-card .ac-fa{font-size:2.9mm!important}body.printing-arman-card .ac-logo{width:6.2mm!important;height:6.2mm!important}
 body.printing-arman-card .ac-main{grid-template-columns:43.5% minmax(0,1fr)!important;gap:3.7mm!important;margin-top:1.6mm!important}
 body.printing-arman-card .ac-media{grid-template-columns:minmax(0,1.55fr) minmax(10.5mm,.98fr)!important}
 body.printing-arman-card .ac-photo{height:17.8mm!important;border-radius:2.2mm!important}body.printing-arman-card .ac-photo .bank-owner-photo{border-radius:2.2mm!important;object-position:center 20%!important}
 body.printing-arman-card .ac-qr{width:12.8mm!important;height:12.8mm!important;padding:.9mm!important;border-width:.35mm!important;border-radius:0 2.1mm 2.1mm 0!important}
 body.printing-arman-card .ac-owner-label{font-size:2.55mm!important;margin-bottom:.7mm!important}body.printing-arman-card .ac-owner-name{font-size:4.15mm!important;line-height:1.5!important;letter-spacing:-.14mm!important}body.printing-arman-card .ac-owner-name--medium{font-size:3.7mm!important}body.printing-arman-card .ac-owner-name--long{font-size:3.25mm!important}
 body.printing-arman-card .ac-number{margin-top:1.9mm!important;padding:1mm 1.4mm!important;border-radius:1.3mm!important;font-size:4.3mm!important;letter-spacing:.42mm!important}
 body.printing-arman-card .ac-footer{margin-top:1.8mm!important;font-size:1.55mm!important;gap:1.1mm!important}
}

/* V2.8.6 - exact reference geometry for Arman card */
.arman-card-reference{
  width:min(1004px,100%)!important;aspect-ratio:1004/626!important;position:relative!important;container-type:inline-size!important;overflow:hidden!important;padding:0!important;border:0!important;border-radius:0!important;direction:ltr!important;color:#fff!important;
  background:radial-gradient(circle at 78% 9%,rgba(64,185,255,.13),transparent 28%),radial-gradient(circle at 12% 80%,rgba(0,220,255,.15),transparent 35%),repeating-radial-gradient(ellipse at 14% 68%,transparent 0 9px,rgba(0,221,255,.075) 10px 11px),linear-gradient(116deg,#2c57b5 0%,#2f59b8 54%,#2852ad 100%)!important;
  box-shadow:0 18px 46px rgba(28,61,145,.28)!important;
}
.arman-card-reference:before{display:none!important}
.arman-card-reference .ac-top,.arman-card-reference .ac-main,.arman-card-reference .ac-media,.arman-card-reference .ac-owner,.arman-card-reference .ac-number,.arman-card-reference .ac-footer{position:static!important;display:block!important;margin:0!important;padding:0!important;transform:none!important}
.arman-card-reference .ac-en{position:absolute!important;left:4.18%!important;top:6.55%!important;width:64.1%!important;height:6.5%!important;display:flex!important;align-items:center!important;gap:1.55cqw!important;font-family:Arial,"Segoe UI",sans-serif!important;font-size:3.65cqw!important;font-weight:400!important;line-height:1!important;white-space:nowrap!important}
.arman-card-reference .ac-en i{display:block!important;flex:1!important;height:.21cqw!important;background:#fff!important;opacity:1!important}
.arman-card-reference .ac-fa{position:absolute!important;right:14.05%!important;top:6.25%!important;font-family:"Vazirmatn","Segoe UI",Tahoma,sans-serif!important;font-size:3.75cqw!important;font-weight:700!important;line-height:1.1!important;white-space:nowrap!important;direction:rtl!important}
.arman-card-reference .ac-logo{position:absolute!important;right:4.45%!important;top:4.15%!important;width:8.25%!important;height:10.6%!important;object-fit:contain!important;filter:none!important;margin:0!important}
.arman-card-reference .ac-photo{position:absolute!important;left:4.18%!important;top:18.37%!important;width:24.70%!important;height:39.62%!important;overflow:hidden!important;border-radius:3.15cqw!important;background:#fff!important;z-index:3!important}
.arman-card-reference .ac-photo .bank-owner-photo,.arman-card-reference .ac-photo img.bank-owner-photo{width:100%!important;height:100%!important;display:block!important;max-width:none!important;object-fit:cover!important;object-position:center 18%!important;border:0!important;border-radius:3.15cqw!important;background:#fff!important;margin:0!important;padding:0!important}
.arman-card-reference .ac-photo .avatar-fallback{width:100%!important;height:100%!important;display:grid!important;place-items:center!important;font-size:9cqw!important;color:#3157b1!important;background:#fff!important}
.arman-card-reference .ac-qr{position:absolute!important;left:28.65%!important;top:23.95%!important;width:16.70%!important;height:28.12%!important;box-sizing:border-box!important;padding:2.05cqw!important;background:#3158b5!important;border:.32cqw solid #fff!important;border-left-width:.32cqw!important;border-radius:0 3.15cqw 3.15cqw 0!important;margin:0!important;overflow:hidden!important;z-index:2!important}
.arman-card-reference .ac-qr canvas,.arman-card-reference .ac-qr img{width:100%!important;height:100%!important;display:block!important;background:#fff!important}
.arman-card-reference .ac-owner{position:absolute!important;right:4.55%!important;top:23.35%!important;width:47%!important;height:31.5%!important;text-align:right!important;direction:rtl!important;color:#fff!important}
.arman-card-reference .ac-owner-label{margin:0 0 2.7cqw 0!important;font-family:"Vazirmatn","Segoe UI",Tahoma,sans-serif!important;font-size:3.55cqw!important;font-weight:800!important;line-height:1.05!important;color:#fff!important}
.arman-card-reference .ac-owner-name{margin:0!important;font-family:"Vazirmatn","Segoe UI",Tahoma,sans-serif!important;font-size:5.55cqw!important;font-weight:900!important;line-height:1.42!important;letter-spacing:-.16cqw!important;color:#fff!important;text-shadow:none!important;overflow-wrap:normal!important;word-break:normal!important}
.arman-card-reference .ac-owner-name--medium{font-size:5.05cqw!important;line-height:1.46!important}.arman-card-reference .ac-owner-name--long{font-size:4.45cqw!important;line-height:1.48!important}
.arman-card-reference .ac-number{position:absolute!important;left:4.18%!important;top:63.58%!important;width:91.64%!important;height:16.52%!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:0 2cqw!important;border-radius:2.55cqw!important;background:#fff!important;color:#3157b0!important;direction:ltr!important;text-align:center!important;font-family:Arial,"Segoe UI",sans-serif!important;font-size:6.65cqw!important;font-weight:800!important;line-height:1!important;letter-spacing:.63cqw!important;font-variant-numeric:tabular-nums!important;white-space:nowrap!important}
.arman-card-reference .ac-footer{position:absolute!important;left:3.95%!important;right:4.65%!important;bottom:6.35%!important;height:4.9%!important;display:flex!important;align-items:center!important;gap:1.05cqw!important;color:#fff!important;direction:ltr!important;font-family:"Vazirmatn","Segoe UI",Tahoma,sans-serif!important;font-size:2.05cqw!important;font-weight:500!important;line-height:1!important;white-space:nowrap!important}
.arman-card-reference .ac-footer i{display:block!important;flex:1!important;height:.20cqw!important;background:#fff!important;opacity:1!important}.arman-card-reference .ac-footer span{direction:rtl!important;display:block!important}
#modal .modal-card:has(.arman-card-reference){width:min(96vw,1080px)!important;max-height:96vh!important;overflow:auto!important}#modal .modal-card:has(.arman-card-reference) #modalBody{overflow:visible!important}#modal .modal-card:has(.arman-card-reference) .print-actions{margin-top:14px!important}
@media(max-width:700px){#modal .modal-card:has(.arman-card-reference){width:98vw!important;padding:10px!important}.arman-card-reference .ac-owner-label{margin-bottom:2.2cqw!important}}
@media print{body.printing-arman-card #studentBankCard{width:85.6mm!important;height:53.98mm!important;min-width:85.6mm!important;min-height:53.98mm!important;max-width:85.6mm!important;max-height:53.98mm!important;padding:0!important;border-radius:0!important;position:fixed!important;inset:0!important}}

/* ===== V2.8.8 UX / support / filters / duplex card print ===== */
.nav-btn{position:relative;display:flex;align-items:center;gap:8px}.nav-btn>span{flex:1}.nav-new-badge{font-style:normal;background:#d92d20;color:#fff;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:800;line-height:1.5}.nav-new-badge.hidden{display:none!important}
.student-filter-grid{display:grid;grid-template-columns:1fr 1fr 2fr auto;gap:10px;align-items:end;margin-bottom:14px}.student-filter-search{min-width:0}
.support-grid{align-items:start}.support-ticket{border:1px solid var(--line);border-radius:16px;padding:14px;margin-top:10px;background:#fff}.support-ticket.answered{background:#f7fcfa}.support-ticket small{display:block;color:var(--muted);margin-top:5px}.support-reply{margin-top:12px;padding:12px;border-radius:12px;background:#eef8f5;border-right:4px solid #0e8b79}.support-answer-box{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin-top:10px}.support-answer-box textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit;resize:vertical}
.attendance-mobile{display:none}.attendance-mobile-row{border:1px solid var(--line);border-radius:16px;padding:12px;margin-top:9px;background:#fff}.attendance-mobile-student{display:flex;align-items:center;gap:10px;margin-bottom:10px}.attendance-mobile-student>span{width:30px;height:30px;border-radius:9px;background:#edf6f4;display:grid;place-items:center;font-weight:800}.attendance-mobile-student b,.attendance-mobile-student small{display:block}.attendance-mobile-student small{color:var(--muted);margin-top:2px}.attendance-mobile .attendance-choice{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.attendance-mobile .att-choice{min-height:54px}
.arman-duplex-print{display:none}.print-card-face{width:85.6mm;height:53.98mm;box-sizing:border-box;position:relative;overflow:hidden}.print-front-inner,.print-front-card{width:100%;height:100%}.print-front-card .ac-qr{display:none!important}.print-front-card .ac-media{display:block!important}.print-front-card .ac-photo{left:4.18%!important;width:28.5%!important}.card-back-design{position:absolute;inset:0;background:radial-gradient(circle at 10% 90%,rgba(41,210,255,.20),transparent 35%),linear-gradient(135deg,#163d9a,#3159bd 62%,#153d98);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:"Vazirmatn","Segoe UI",Tahoma,sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}.card-back-design:before{content:"";position:absolute;inset:3mm;border:.25mm solid rgba(255,255,255,.25);border-radius:3mm}.card-back-logo{position:absolute;top:4mm;right:5mm;width:12mm;height:12mm;object-fit:contain}.card-back-title{position:absolute;top:5.5mm;left:6mm;font-size:4.6mm;font-weight:900}.card-back-qr{width:29mm;height:29mm;background:#fff;padding:1.5mm;border-radius:2.4mm;box-sizing:border-box;z-index:2}.card-back-qr canvas,.card-back-qr img{width:100%!important;height:100%!important}.card-back-scan{font-size:2.4mm;margin-top:2mm;z-index:2}.card-back-address{position:absolute;bottom:5mm;right:5mm;text-align:right;font-size:2.6mm;line-height:1.7;font-weight:700;z-index:2}.card-back-no{position:absolute;bottom:5mm;left:5mm;font-family:Arial,sans-serif;font-size:2.7mm;letter-spacing:.3mm;direction:ltr;z-index:2}
@media(max-width:900px){.student-filter-grid{grid-template-columns:1fr 1fr}.student-filter-search{grid-column:1/-1}.student-filter-grid>.btn{grid-column:1/-1}.support-answer-box{grid-template-columns:1fr}}
@media(max-width:760px){.attendance-desktop{display:none!important}.attendance-mobile{display:block}.attendance-assignment-picker{width:100%;margin-top:10px}.attendance-class-banner{align-items:flex-start!important;flex-direction:column!important}.attendance-choice{position:static!important}.panel-content{scroll-margin-top:10px}.support-grid{grid-template-columns:1fr!important}}
@media print{
 @page{size:85.6mm 53.98mm;margin:0}
 body.printing-arman-card-duplex *{visibility:hidden!important}
 body.printing-arman-card-duplex .arman-duplex-print,body.printing-arman-card-duplex .arman-duplex-print *{visibility:visible!important}
 body.printing-arman-card-duplex .arman-duplex-print{display:block!important;position:absolute!important;inset:0!important;margin:0!important;padding:0!important;width:85.6mm!important}
 body.printing-arman-card-duplex .print-card-face{display:block!important;width:85.6mm!important;height:53.98mm!important;margin:0!important;padding:0!important;break-after:page!important;page-break-after:always!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
 body.printing-arman-card-duplex .print-card-back{break-after:auto!important;page-break-after:auto!important}
 body.printing-arman-card-duplex .print-front-card{position:absolute!important;inset:0!important;width:85.6mm!important;height:53.98mm!important;max-width:none!important;min-width:0!important;min-height:0!important;padding:0!important;border-radius:0!important;box-shadow:none!important;transform:none!important}
 body.printing-arman-card-duplex .print-front-card .ac-number{font-size:6.65cqw!important}
 body.printing-arman-card-duplex .print-front-card .ac-photo{left:4.18%!important;width:28.5%!important}
 body.printing-arman-card-duplex .print-front-card .ac-owner{right:4.55%!important;width:58%!important}
}

/* === V2.8.10: duplex card preview + independent panel scrolling === */
.arman-card-preview-stack{display:grid;grid-template-columns:1fr;gap:22px;justify-items:center}.card-side-label{font-weight:900;color:#334b45;margin:4px 0 8px;text-align:center}.arman-card-back-preview{position:relative;overflow:hidden;color:#fff;min-height:0}.arman-card-back-preview .back-preview-logo{position:absolute;right:5%;top:5%;width:15%;height:23%;object-fit:contain}.arman-card-back-preview .back-preview-title{position:absolute;left:6%;top:7%;font-weight:900;font-size:4.2cqw}.arman-card-back-preview .back-preview-qr{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:38%;aspect-ratio:1;background:#fff;padding:1.2%;border-radius:3%;display:grid;place-items:center}.arman-card-back-preview .back-preview-qr canvas,.arman-card-back-preview .back-preview-qr img{width:100%!important;height:100%!important;display:block}.arman-card-back-preview .back-preview-scan{position:absolute;left:50%;top:77%;transform:translateX(-50%);font-size:2.1cqw;font-weight:800;white-space:nowrap}.arman-card-back-preview .back-preview-address{position:absolute;right:5%;bottom:5%;font-size:2.15cqw;line-height:1.65;font-weight:800}.arman-card-back-preview .back-preview-no{position:absolute;left:5%;bottom:6%;font:800 2.3cqw Arial;direction:ltr}.arman-card-back-preview:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 16% 72%,rgba(24,188,255,.18),transparent 34%),radial-gradient(circle at 86% 16%,rgba(68,122,255,.20),transparent 36%),linear-gradient(135deg,#153b96 0%,#3159bd 50%,#17429f 100%);z-index:-2}.arman-card-back-preview:after{content:"";position:absolute;inset:0;background:repeating-radial-gradient(ellipse at 18% 70%,rgba(255,255,255,.035) 0 1px,transparent 1px 5px);z-index:-1}

@media (min-width:761px){
  #panelPage:not(.hidden){height:calc(100dvh - 88px);overflow:hidden}
  #panelPage:not(.hidden) .panel-shell{height:100%;min-height:0;overflow:hidden;align-items:stretch}
  #panelPage:not(.hidden) .sidebar{position:relative;top:auto;height:100%;max-height:none;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-bottom:28px}
  #panelPage:not(.hidden) .panel-content{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-left:4px;padding-bottom:36px}
}
@media (max-width:760px){
  #panelPage:not(.hidden){height:calc(100dvh - 78px);overflow:hidden}
  #panelPage:not(.hidden) .panel-shell{display:grid!important;grid-template-rows:minmax(180px,36dvh) minmax(0,1fr);height:100%;min-height:0;gap:10px;overflow:hidden}
  #panelPage:not(.hidden) .sidebar{position:relative!important;top:auto!important;height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;margin:0}
  #panelPage:not(.hidden) .panel-content{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:8px 4px 28px}
  .arman-card-preview-stack{gap:16px}.card-side-label{font-size:13px}
}

/* === V2.8.11: exact front proportions, cleaner back, truly independent scrolling === */
.arman-card-reference .ac-media{width:25%!important}
.arman-card-reference .ac-photo{width:100%!important;height:100%!important}
.arman-card-reference .ac-owner{right:4.5%!important;width:54%!important}
.arman-card-reference .ac-owner-name{font-family:Tahoma,"Segoe UI",Arial,sans-serif!important;font-size:6.15cqw!important;line-height:1.38!important;font-weight:900!important}
.arman-card-back-preview .back-preview-logo{right:5.5%!important;top:6%!important;width:12%!important;height:18%!important}
.arman-card-back-preview .back-preview-title{left:6%!important;top:7.5%!important;font-size:4.2cqw!important}
.arman-card-back-preview .back-preview-qr{top:43%!important;width:30%!important;padding:1%!important}
.arman-card-back-preview .back-preview-scan{top:70%!important;font-size:1.9cqw!important}
.arman-card-back-preview .back-preview-address{left:7%!important;right:7%!important;bottom:7%!important;text-align:center!important;font-size:2.1cqw!important;line-height:1.7!important}
.arman-card-back-preview .back-preview-no{display:none!important}

@media (min-width:761px){
 html,body{height:100%;overflow:hidden!important}
 #panelPage:not(.hidden){height:100dvh!important;overflow:hidden!important;padding-bottom:0!important}
 #panelPage:not(.hidden) .panel-shell{height:calc(100dvh - 30px)!important;overflow:hidden!important;align-items:stretch!important}
 #panelPage:not(.hidden) .sidebar,#panelPage:not(.hidden) .panel-content{height:100%!important;max-height:100%!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;scrollbar-gutter:stable both-edges!important}
 #panelPage:not(.hidden) .sidebar{position:relative!important;top:auto!important}
 #panelPage:not(.hidden) .panel-content{min-height:0!important}
}
@media (max-width:760px){
 html,body{height:100%;overflow:hidden!important}
 #panelPage:not(.hidden){height:100dvh!important;overflow:hidden!important}
 #panelPage:not(.hidden) .panel-shell{height:100%!important;overflow:hidden!important;grid-template-rows:minmax(155px,34dvh) minmax(0,1fr)!important}
 #panelPage:not(.hidden) .sidebar,#panelPage:not(.hidden) .panel-content{overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;touch-action:pan-y!important}
}

/* === V2.8.13: restore landing scroll + true independent panel scrolling === */
html,body{
  height:auto!important;
  min-height:100%!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
}
body:not(.panel-mode){
  min-height:100vh!important;
  overflow-y:auto!important;
  touch-action:auto!important;
}
body:not(.panel-mode) #appRoot{
  min-height:100vh!important;
  height:auto!important;
  overflow:visible!important;
}
body:not(.panel-mode) .page:not(.hidden){
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}

body.panel-mode{
  height:100dvh!important;
  min-height:100dvh!important;
  overflow:hidden!important;
}
body.panel-mode #appRoot{
  height:100dvh!important;
  min-height:0!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
body.panel-mode .site-header{
  flex:0 0 auto!important;
  width:100%!important;
}
body.panel-mode #panelPage:not(.hidden){
  flex:1 1 auto!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden!important;
  padding-top:8px!important;
  padding-bottom:8px!important;
}
body.panel-mode #panelPage:not(.hidden) .panel-shell{
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden!important;
  align-items:stretch!important;
}
body.panel-mode #panelPage:not(.hidden) .sidebar,
body.panel-mode #panelPage:not(.hidden) .panel-content{
  min-height:0!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-y!important;
  scrollbar-gutter:stable!important;
}
body.panel-mode #panelPage:not(.hidden) .sidebar{
  position:relative!important;
  top:auto!important;
  height:100%!important;
  padding-bottom:32px!important;
}
body.panel-mode #panelPage:not(.hidden) .panel-content{
  height:100%!important;
  padding-bottom:40px!important;
}

@media (min-width:761px){
  body.panel-mode #panelPage:not(.hidden) .panel-shell{
    display:grid!important;
    grid-template-columns:250px minmax(0,1fr)!important;
    grid-template-rows:minmax(0,1fr)!important;
    gap:18px!important;
  }
}
@media (max-width:760px){
  body.panel-mode #panelPage:not(.hidden){
    padding:6px 10px 8px!important;
  }
  body.panel-mode #panelPage:not(.hidden) .panel-shell{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:minmax(150px,34dvh) minmax(0,1fr)!important;
    gap:10px!important;
  }
  body.panel-mode #panelPage:not(.hidden) .sidebar{
    width:100%!important;
    margin:0!important;
  }
  body.panel-mode #panelPage:not(.hidden) .panel-content{
    width:100%!important;
    padding:6px 2px 32px!important;
  }
}

/* V2.8.14 global copyright footer */
.arman-global-footer{position:fixed;left:50%;bottom:4px;transform:translateX(-50%);z-index:900;width:max-content;max-width:calc(100vw - 24px);padding:3px 10px;border-radius:9px;background:rgba(255,255,255,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#52605d;font-size:10px;line-height:1.5;text-align:center;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,.06)}
@media(max-width:640px){.arman-global-footer{bottom:2px;font-size:8.5px;padding:2px 7px;max-width:calc(100vw - 12px)}}
.support-contact-box{margin-top:14px;padding:12px 14px;border:1px solid rgba(11,143,125,.22);border-radius:14px;background:rgba(11,143,125,.06);text-align:center;line-height:1.9}.support-contact-box a{direction:ltr;display:inline-block;font-weight:900;font-size:17px;color:#087b6d;text-decoration:none}.support-contact-box small{display:block;color:#65736f}.support-contact-box .support-phone-label{font-weight:800}

/* V2.8.16 cinema responsible desk */
.cinema-receipt-button{margin-top:10px;max-width:340px}
.cinema-receipt-button img{max-height:180px;object-fit:contain;background:#fff}
.cinema-teaser-preview{display:block;width:min(100%,720px);max-height:420px;margin:10px auto;border-radius:14px;background:#000}
.responsible-seat-map .cinema-seats{gap:8px}
.cinema-seat.responsible-seat{width:78px;height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:3px;cursor:default;overflow:hidden}
.cinema-seat.responsible-seat b{font-size:13px;line-height:1}
.cinema-seat.responsible-seat small{font-size:9px;line-height:1.15;max-width:70px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cinema-seat.responsible-seat.seat-free{background:#fff;color:#334155}
.cinema-seat.responsible-seat.seat-pending{background:#fef3c7;border-color:#f59e0b;color:#78350f}
.cinema-seat.responsible-seat.seat-approved{background:#dcfce7;border-color:#22c55e;color:#14532d}
@media(max-width:760px){.cinema-seat.responsible-seat{width:66px;height:52px}.cinema-seat.responsible-seat small{max-width:58px;font-size:8px}}

/* V2.8.18 multi-role user editor */
.multi-role-field{grid-column:1/-1}.multi-role-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:7px}.multi-role-options label{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid #dbe7e4;border-radius:10px;background:#f7fbfa}.multi-role-options input{width:auto}.multi-role-pill{margin-inline-start:4px;font-size:11px;opacity:.9}


/* V2.8.19 - clearer cinema left/right split + aisles + receipt viewer */
.cinema-side-heads{direction:ltr;display:grid;grid-template-columns:minmax(240px,1fr) 58px minmax(240px,1fr);gap:12px;align-items:center;margin:10px 0 4px;padding:0 8px;font-weight:900;color:#23403b;text-align:center}.cinema-row-groups{grid-template-columns:minmax(240px,1fr) 58px minmax(240px,1fr)!important;gap:12px!important}.cinema-center-aisle{height:100%;min-height:40px;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 8px}.cinema-center-aisle i{display:block;border-left:2px dashed #cbd5d1;opacity:.9}.cinema-horizontal-aisle{height:28px;display:flex;align-items:center;justify-content:center;margin:2px 0 6px;color:#82918d;font-size:10px;letter-spacing:.5px;background:linear-gradient(90deg,transparent,#f5f8f7 25%,#f5f8f7 75%,transparent);border-top:1px dashed #d8e0de;border-bottom:1px dashed #d8e0de}.document-image-view{display:grid;place-items:center;max-height:70vh;overflow:auto;padding:10px;background:#f7faf9;border:1px solid var(--line);border-radius:14px}.document-image-view img{display:block;max-width:min(100%,900px);max-height:66vh;width:auto;height:auto;object-fit:contain;border-radius:10px;box-shadow:0 8px 30px #0f172a14}.camp-proof-button{width:100%;border:1px solid var(--line);border-radius:12px;padding:8px;background:#fff;cursor:pointer;color:inherit;text-align:center}.camp-proof-button img{width:100%;height:140px;object-fit:contain;border-radius:8px}.camp-proof-button span{display:block;margin-top:6px;font-size:12px;font-weight:800}
@media(max-width:760px){.cinema-side-heads{grid-template-columns:minmax(170px,1fr) 42px minmax(170px,1fr);font-size:12px;min-width:430px}.cinema-row-groups{grid-template-columns:minmax(170px,1fr) 42px minmax(170px,1fr)!important}.cinema-center-aisle{gap:5px;padding:0 4px}.cinema-horizontal-aisle{min-width:430px}.document-image-view{max-height:72vh}.document-image-view img{max-height:68vh}}

/* V2.8.20: single vertical cinema aisle only */
.cinema-center-aisle{display:flex!important;align-items:center;justify-content:center!important;min-height:40px!important;padding:0 6px!important;background:transparent!important;border:0!important;color:#82918d;font-size:10px;font-weight:800;writing-mode:vertical-rl;letter-spacing:1px}.cinema-center-aisle i{display:none!important}.cinema-horizontal-aisle{display:none!important}

/* V2.8.67: restore stable, non-overlapping cinema seat layout. */
.cinema-seat-map{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.cinema-row-editor{min-width:600px;width:max-content;max-width:none}
.cinema-row-groups{display:grid!important;grid-template-columns:minmax(235px,max-content) 54px minmax(235px,max-content)!important;column-gap:10px!important;align-items:center;direction:ltr;min-width:max-content}
.cinema-seat-group{display:flex!important;flex-flow:row nowrap!important;flex-wrap:nowrap!important;align-items:center;min-width:235px;white-space:nowrap;gap:6px}
.cinema-seat-group.left{justify-content:flex-end}.cinema-seat-group.right{justify-content:flex-start}
.cinema-seat-group .cinema-seat,.cinema-seat-edit-wrap{flex:0 0 auto!important;min-width:0}
.cinema-center-aisle{width:54px;min-width:54px;align-self:stretch;min-height:40px}
@media(max-width:760px){.cinema-row-editor{min-width:510px}.cinema-row-groups{grid-template-columns:minmax(198px,max-content) 36px minmax(198px,max-content)!important;column-gap:7px!important}.cinema-seat-group{min-width:198px;gap:4px}.cinema-center-aisle{width:36px;min-width:36px}.cinema-seat-group .cinema-seat{width:32px;height:33px;flex-shrink:0}.cinema-seat-map{touch-action:pan-x pan-y}}
