@font-face{font-family:B Nazanin;src:local("B Nazanin"),local("BNazanin"),url(/fonts/B_Nazanin.ttf) format("truetype");font-weight:400}@font-face{font-family:B Nazanin;src:local("B Nazanin Bold"),local("BNazaninBold"),url(/fonts/B_Nazanin_Bold.ttf) format("truetype");font-weight:700}@font-face{font-family:B Mitra;src:local("B Mitra"),local("BMitra"),url(/fonts/B_Mitra.ttf) format("truetype");font-weight:400}@font-face{font-family:B Mitra;src:local("B Mitra Bold"),local("BMitraBold"),url(/fonts/B_Mitra_Bold.ttf) format("truetype");font-weight:700}@font-face{font-family:Vazirmatn;src:url(/fonts/Vazirmatn-Variable.ttf) format("truetype-variable");font-weight:100 900;font-display:swap}.attendance-page{--attendance-ink: #183247;--attendance-subtle: #5f7688;--attendance-faint: #93a7b6;--attendance-border: rgba(94, 144, 170, .2);--attendance-border-strong: rgba(27, 86, 112, .24);--attendance-surface: rgba(255, 255, 255, .9);--attendance-surface-strong: rgba(255, 255, 255, .95);--attendance-primary: #0d9488;--attendance-primary-deep: #0f766e;--attendance-info: #2563eb;--attendance-warning: #c57d12;--attendance-danger: #dc2626;--attendance-success: #15803d;--attendance-hold: #6d28d9;--attendance-glass-1-bg: rgba(255, 255, 255, .62);--attendance-glass-1-border: rgba(255, 255, 255, .6);--attendance-glass-1-blur: 18px;--attendance-glass-2-bg: rgba(255, 255, 255, .46);--attendance-glass-2-border: rgba(255, 255, 255, .5);--attendance-glass-2-blur: 13px;--attendance-glass-3-bg: rgba(255, 255, 255, .14);--attendance-glass-3-border: rgba(255, 255, 255, .32);--attendance-glass-3-blur: 8px;min-height:100vh;min-height:100dvh;padding:20px 16px 40px;display:flex;justify-content:center;direction:rtl;color:var(--attendance-ink);font-family:Vazirmatn,B Nazanin,B Mitra,Tahoma,sans-serif;background:radial-gradient(circle at top right,rgba(45,212,191,.18),transparent 34%),radial-gradient(circle at bottom left,rgba(14,165,233,.16),transparent 28%),linear-gradient(135deg,#eef8fb,#f8fbff 44%,#ecf5fb)}.attendance-page :is(a,button,input,select,textarea){font-family:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease,color .18s ease}.attendance-page :is(a,button,input,select,textarea):focus-visible{outline:2px solid rgba(37,99,235,.8);outline-offset:2px;box-shadow:0 0 0 4px #2563eb24}.attendance-card{width:min(1360px,100%);border-radius:26px;padding:18px 20px;position:relative;border:1px solid rgba(255,255,255,.52);background:linear-gradient(180deg,#ffffffc7,#ffffffe6),#ffffffd1;box-shadow:0 24px 70px #0f172a1f,inset 0 1px #ffffffa6;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.attendance-card--modern:before,.attendance-card--modern:after{content:"";position:absolute;inset:auto;border-radius:999px;pointer-events:none}.attendance-card--modern:before{top:42px;left:58px;width:170px;height:170px;background:radial-gradient(circle,rgba(20,184,166,.16),transparent 68%)}.attendance-card--modern:after{right:48px;bottom:72px;width:210px;height:210px;background:radial-gradient(circle,rgba(37,99,235,.14),transparent 70%)}.card-back{display:flex;justify-content:flex-start;margin-bottom:18px}.card-back button{border:1px solid rgba(13,148,136,.18);background:#ffffffb8;color:var(--attendance-primary-deep);border-radius:16px;padding:10px 18px;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 12px 28px #0d948814}.card-back button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 16px 32px #0d94881f}.attendance-hero{position:relative;overflow:hidden;margin-bottom:16px;padding:20px 24px;border-radius:24px;color:#effbff;background:radial-gradient(circle at top left,rgba(255,255,255,.18),transparent 30%),linear-gradient(135deg,#082f49f5,#0d9488eb 58%,#3b82f6e0);box-shadow:0 22px 50px #0e749038}.attendance-hero:after{content:"";position:absolute;inset:auto -80px -90px auto;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.16),transparent 68%)}.attendance-hero h2{margin:0 0 6px;font-family:Vazirmatn,B Mitra,B Nazanin,Tahoma,sans-serif;font-weight:800;font-size:clamp(1.5rem,2.2vw,1.9rem);line-height:1.15;letter-spacing:.01em;text-wrap:balance}.attendance-hero p{margin:0;max-width:760px;color:#ecfdffeb;font-size:.95rem;line-height:1.6}.attendance-hero-meta{margin-top:12px;display:flex;flex-wrap:wrap;gap:10px}.attendance-hero-meta span{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;font-size:13px;border-radius:999px;background:#ffffff1f;border:1px solid rgba(255,255,255,.16);color:#f0fdfaf5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.attendance-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.attendance-tabs button{border:1px solid rgba(27,86,112,.14);background:#ffffffad;color:var(--attendance-ink);border-radius:14px;padding:9px 16px;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 10px 20px #94a3b814;white-space:nowrap}.attendance-tabs--compact{gap:8px}.attendance-tabs--compact button{padding:7px 13px;font-size:13px;border-radius:999px;box-shadow:none}.attendance-tabs button.active{color:#f0fdfa;border-color:#0f766e66;background:linear-gradient(135deg,var(--attendance-primary-deep),var(--attendance-info));box-shadow:0 16px 32px #0e74902e}.attendance-tabs button:hover:not(.active):not(:disabled){transform:translateY(-1px);border-color:#0d948852}.attendance-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:14px;padding:14px 16px;border-radius:20px;border:1px solid var(--attendance-glass-1-border);background:var(--attendance-glass-1-bg);box-shadow:inset 0 1px #ffffffa3;-webkit-backdrop-filter:blur(var(--attendance-glass-1-blur));backdrop-filter:blur(var(--attendance-glass-1-blur))}.attendance-filter-group{flex:1 1 760px;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.attendance-filter-group label{display:grid;gap:6px;color:var(--attendance-ink);font-size:13px;font-weight:700}.attendance-filter-group span{color:var(--attendance-subtle)}.attendance-filter-group select,.attendance-filter-group input[type=date]{min-width:0;width:100%;border-radius:14px;border:1px solid rgba(148,163,184,.28);background:#ffffffe0;color:var(--attendance-ink);padding:10px 13px;font-size:14px;box-shadow:inset 0 1px 1px #ffffff8c}.attendance-filter-group select:hover,.attendance-filter-group input[type=date]:hover{border-color:#0d94884d}.attendance-toolbar-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;margin-bottom:22px;padding:12px 14px;border-radius:18px;border:1px solid var(--attendance-glass-1-border);background:var(--attendance-glass-1-bg);-webkit-backdrop-filter:blur(var(--attendance-glass-1-blur));backdrop-filter:blur(var(--attendance-glass-1-blur))}.attendance-toolbar-actions button,.inline-btn,.save{flex:0 0 auto;width:fit-content;border:none;border-radius:14px;padding:9px 15px;font-size:14px;font-weight:700;cursor:pointer;color:#f8fafc;background:linear-gradient(135deg,var(--attendance-primary-deep),var(--attendance-primary));box-shadow:0 12px 24px #0d94882e}.attendance-toolbar-actions button.secondary{color:var(--attendance-ink);background:#fffc;border:1px solid rgba(148,163,184,.24);box-shadow:0 10px 18px #0f172a0f}.attendance-toolbar-actions button.secondary.danger{color:#991b1b;border-color:#ef44443d;background:#fef2f2f5}.attendance-toolbar-actions button.secondary.warning{color:#9a6700;border-color:#f59e0b42;background:#fffbebf5}.attendance-toolbar-actions button.secondary.info{color:#1d4ed8;border-color:#3b82f63d;background:#eff6fff5}.attendance-toolbar-actions button.secondary.ghost{color:#0f766e;border-color:#0d94883d;background:#f0fdfafa}.attendance-toolbar-actions button:hover:not(:disabled),.inline-btn:hover:not(:disabled),.save:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 16px 28px #0f172a1f}.attendance-toolbar-actions button:disabled,.inline-btn:disabled,.save:disabled{opacity:.64;cursor:not-allowed;transform:none;box-shadow:none}.attendance-message,.attendance-empty{border-radius:20px;padding:16px 18px}.attendance-message{margin-bottom:18px;color:#0f4c81;border:1px solid rgba(96,165,250,.26);background:linear-gradient(180deg,#eff6fff2,#f8fafcf2)}.attendance-empty{border:1px dashed rgba(148,163,184,.32);color:var(--attendance-subtle);background:#ffffffa3}.attendance-view{display:grid;gap:14px}.attendance-summary-grid{display:flex;flex-wrap:wrap;gap:8px}.attendance-summary-card{display:inline-flex;align-items:baseline;gap:6px;padding:7px 13px;border-radius:999px;border:1px solid var(--attendance-glass-1-border);background:var(--attendance-glass-1-bg);-webkit-backdrop-filter:blur(var(--attendance-glass-1-blur));backdrop-filter:blur(var(--attendance-glass-1-blur))}.attendance-summary-card span{color:var(--attendance-subtle);font-size:12.5px;font-weight:700}.attendance-summary-card strong{font-size:15px;line-height:1;color:var(--attendance-ink)}.attendance-summary-card.accent{background:#ccfbf180}.attendance-summary-card.warning{background:#fef08a52}.attendance-summary-card.danger{background:#fecaca52}.attendance-summary-card.info{background:#bfdbfe52}.attendance-daily-shell{border-radius:28px;border:1px solid var(--attendance-glass-1-border);background:var(--attendance-glass-1-bg);padding:14px;-webkit-backdrop-filter:blur(var(--attendance-glass-1-blur));backdrop-filter:blur(var(--attendance-glass-1-blur))}.attendance-daily-table-wrap{overflow:auto;border-radius:22px;border:1px solid var(--attendance-glass-2-border);background:var(--attendance-glass-2-bg)}.attendance-daily-table{width:100%;min-width:1180px;border-collapse:separate;border-spacing:0}.attendance-daily-table thead th{position:sticky;top:0;z-index:1;background:linear-gradient(180deg,#f0fdfaeb,#ecfeffe6);color:#0f4c5c;font-size:14px;font-weight:700;text-align:right;padding:14px 12px;border-bottom:1px solid rgba(148,163,184,.24)}.attendance-daily-table tbody td{vertical-align:top;padding:13px 12px;font-size:15px;color:var(--attendance-ink);border-bottom:1px solid rgba(226,232,240,.6);background:#fff6}.attendance-daily-table tbody tr:last-child td{border-bottom:none}.attendance-daily-table tbody tr:hover td{background:#ffffff9e}.attendance-daily-table tbody tr.is-pending td{background:linear-gradient(180deg,#fffbeb80,#fff7ed8f);border-bottom-color:#c57d123d}.attendance-student-cell,.attendance-student{display:grid;gap:4px}.attendance-student-cell strong,.attendance-student strong{font-size:16px;color:var(--attendance-ink)}.attendance-student-cell span,.attendance-student span{color:var(--attendance-subtle);font-size:13px}.attendance-status-select,.attendance-note-input{width:100%;min-width:0;border-radius:999px;border:1px solid rgba(148,163,184,.26);padding:10px 16px;color:var(--attendance-ink);background:#ffffffb3;font-size:15px;font-weight:600}.attendance-note-input{border-radius:14px;font-weight:400}.attendance-status-select.status-present{color:#166534;border-color:#22c55e4d;background:#dcfce7bf}.attendance-status-select.status-absent{color:#b91c1c;border-color:#ef44444d;background:#fee2e2b8}.attendance-status-select.status-sick{color:#a16207;border-color:#f59e0b52;background:#fef3c7bf}.attendance-status-select.status-leave{color:#1d4ed8;border-color:#3b82f64d;background:#dbeafebf}.attendance-status-select.status-suspended{color:var(--attendance-hold);border-color:#6d28d952;background:#e9dcfdbf}.attendance-row-action{display:flex;align-items:center;justify-content:flex-end;gap:8px}.attendance-need-badge{font-size:11px;font-weight:700;color:var(--attendance-warning);background:#c57d121f;border:1px solid rgba(197,125,18,.26);border-radius:999px;padding:4px 10px;white-space:nowrap}.attendance-recorded-cell{display:grid;gap:4px;min-width:150px}.attendance-recorded-cell strong{color:var(--attendance-ink)}.attendance-recorded-cell span{font-size:12px;color:var(--attendance-subtle);line-height:1.6}.attendance-report-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,.95fr);gap:18px}.attendance-section{min-width:0;display:grid;align-content:start;gap:16px;padding:18px;border-radius:26px;border:1px solid var(--attendance-border);background:linear-gradient(180deg,#ffffffd6,#f7fbffeb),#ffffffd1;box-shadow:0 14px 30px #94a3b814}.attendance-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.attendance-section-head h3{margin:0 0 4px;font-size:1.42rem;color:var(--attendance-ink)}.attendance-section-head p{margin:0;color:var(--attendance-subtle);font-size:14px;line-height:1.7}.attendance-report-table{display:grid;gap:10px}.attendance-report-row{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(5,minmax(78px,.7fr)) minmax(180px,1.15fr) minmax(120px,.82fr);gap:12px;align-items:center;padding:13px 14px;border-radius:18px;border:1px solid rgba(148,163,184,.18);background:#ffffffe6;font-size:14px}.attendance-report-row.head{color:#0f4c5c;font-weight:700;background:linear-gradient(180deg,#f0fdfaeb,#ecfeffeb)}.attendance-breakdown-list{display:grid;gap:12px}.attendance-breakdown-card{display:grid;gap:10px;padding:15px 16px;border-radius:20px;border:1px solid rgba(148,163,184,.18);background:#ffffffe0}.attendance-breakdown-card strong{color:var(--attendance-ink)}.attendance-breakdown-meta{display:flex;flex-wrap:wrap;gap:10px;color:#334155;font-size:14px}.attendance-breakdown-rate{color:var(--attendance-subtle);font-size:14px}.attendance-pill{display:inline-flex;align-items:center;justify-content:center;min-width:92px;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.attendance-pill.present{color:#166534;background:#dcfce7e6}.attendance-pill.absent{color:#b91c1c;background:#fee2e2eb}.attendance-pill.sick{color:#a16207;background:#fef3c7f0}.attendance-pill.leave{color:#1d4ed8;background:#dbeafef0}.attendance-pill.suspended{color:var(--attendance-hold);background:#e9dcfdeb}@media (max-width: 1180px){.attendance-report-layout{grid-template-columns:1fr}}@media (max-width: 960px){.attendance-page{padding:18px 12px 40px}.attendance-card{padding:16px;border-radius:24px}.attendance-hero{padding:24px 20px;border-radius:22px}.attendance-toolbar{padding:16px;border-radius:20px}.attendance-filter-group{grid-template-columns:1fr}.attendance-toolbar-actions{width:100%;justify-content:stretch}.attendance-toolbar-actions button{flex:1 1 190px}.attendance-report-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:flex-start}.attendance-report-row.head{display:none}}@media (max-width: 640px){.attendance-tabs{display:grid;grid-template-columns:1fr}.attendance-tabs--compact{display:flex;flex-wrap:wrap}.attendance-toolbar-actions button,.inline-btn,.save{width:100%}.attendance-report-row{grid-template-columns:1fr}.attendance-breakdown-meta{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion: reduce){.attendance-page :is(a,button,input,select,textarea){transition:none}}@media (max-width: 640px){.rt.rt{overflow:visible}.rt table{display:block;width:100%;min-width:0;border-collapse:collapse}.rt table thead{display:none}.rt table tbody,.rt table tr,.rt table td{display:block;width:auto}.rt table tr{margin-block-end:var(--mobile-gap, 10px);padding:10px 12px;border:1px solid rgba(128,128,128,.3);border-radius:var(--radius-md, 12px);background:#8080800f}.rt table td{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:6px 0;border:0;text-align:start}.rt table tr>td+td{border-block-start:1px solid rgba(128,128,128,.22)}.rt table td[colspan]{display:block;text-align:center}.rt table td:before,:is(.rt.finance-table,.rt .finance-table)>.row>*:before{content:var(--rt-label);flex:0 0 auto;max-width:45%;font-size:12px;font-weight:500;color:inherit;opacity:.72}.rt table td[colspan]:before{content:normal}:is(.rt.finance-table,.rt .finance-table)>.head,:is(.rt.finance-table,.rt .finance-table)>[data-rt-head]{display:none}:is(.rt.finance-table,.rt .finance-table)>.row{grid-template-columns:1fr;gap:0}:is(.rt.finance-table,.rt .finance-table)>.row>*{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:6px 0}:is(.rt.finance-table,.rt .finance-table)>.row>*+*{border-block-start:1px solid rgba(128,128,128,.22)}:is(.rt.finance-table,.rt .finance-table)>.row>.row-actions{flex-wrap:wrap;justify-content:flex-start;gap:8px;padding-block-start:10px}.rt table td:nth-child(1),:is(.rt.finance-table,.rt .finance-table)>.row>*:nth-child(1){--rt-label: var(--rt-1)}.rt table td:nth-child(2),:is(.rt.finance-table,.rt .finance-table)>.row>*:nth-child(2){--rt-label: var(--rt-2)}.rt table td:nth-child(3),:is(.rt.finance-table,.rt .finance-table)>.row>*:nth-child(3){--rt-label: var(--rt-3)}.rt table td:nth-child(4),:is(.rt.finance-table,.rt .finance-table)>.row>*:nth-child(4){--rt-label: var(--rt-4)}.rt table td:nth-child(5),:is(.rt.finance-table,.rt .finance-table)>.row>*:nth-child(5){--rt-label: var(--rt-5)}.rt table td:nth-child(6),:is(.rt.finance-table,.rt .finance-table)>.row>*:nth-child(6){--rt-label: var(--rt-6)}.rt table td:nth-child(7),:is(.rt.finance-table,.rt .finance-table)>.row>*:nth-child(7){--rt-label: var(--rt-7)}.rt table td:nth-child(8),:is(.rt.finance-table,.rt .finance-table)>.row>*:nth-child(8){--rt-label: var(--rt-8)}.rt table td:nth-child(9),:is(.rt.finance-table,.rt .finance-table)>.row>*:nth-child(9){--rt-label: var(--rt-9)}.rt table td:nth-child(10),:is(.rt.finance-table,.rt .finance-table)>.row>*:nth-child(10){--rt-label: var(--rt-10)}.rt table td:nth-child(11),:is(.rt.finance-table,.rt .finance-table)>.row>*:nth-child(11){--rt-label: var(--rt-11)}.rt table td:nth-child(12),:is(.rt.finance-table,.rt .finance-table)>.row>*:nth-child(12){--rt-label: var(--rt-12)}.rt table td>*,:is(.rt.finance-table,.rt .finance-table)>.row>*>*{min-width:0}.rt table td,:is(.rt.finance-table,.rt .finance-table)>.row>*{overflow-wrap:anywhere}.rt table table{display:table}.rt table table tbody{display:table-row-group}.rt table table tr{display:table-row;margin:0;padding:0;border:0;background:none}.rt table table td{display:table-cell;padding:4px 6px}.rt table table td:before{content:normal}}@media print{.rt table{display:table}.rt table thead{display:table-header-group}.rt table tbody{display:table-row-group}.rt table tr{display:table-row}.rt table td{display:table-cell}.rt table td:before{content:normal}}
