@font-face{font-family:Cairo;src:local('Cairo'),url('Cairo.woff2') format('woff2');font-display:swap}
:root{--navy:#142f39;--blue:#2b93d1;--green:#146b58;--gold:#ad8437;--gold2:#c6aa70;--muted:#637579;--line:#dce5e5;--bg:#eef2f2}
*{box-sizing:border-box}
body{margin:0;background:#edf1f5;color:var(--navy);font:16px Cairo,Tahoma,Arial,sans-serif}
button,input,select{font:inherit}
button,a,input,select{outline-offset:4px}
button{cursor:pointer;border:0;border-radius:10px;padding:12px 20px;background:var(--green);color:#fff;font-weight:700}
button:hover{filter:brightness(.94)}
button:disabled{opacity:.5;cursor:wait}
button.secondary{background:#fff;border:1px solid var(--line);color:var(--navy)}
button.danger{background:#b0433a}
a{color:var(--blue)}
header.topbar{background:#fff;color:var(--navy);border-bottom:1px solid var(--line);padding:10px max(5vw,20px);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.brand{display:inline-flex;background:#fff;border-radius:12px;line-height:0}
.brand-logo{height:52px;width:auto;max-width:190px;object-fit:contain;background:#fff;display:block}
header.topbar small{color:var(--muted);display:block;font-size:14px}
nav.menu{display:flex;gap:8px;flex-wrap:wrap}
nav.menu a{color:var(--navy);text-decoration:none;padding:10px 15px;border:1px solid var(--line);border-radius:9px;font-size:14px;font-weight:700}
nav.menu a[aria-current="page"]{background:var(--blue);border-color:var(--blue);color:#fff}
.userbox{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
.userbox button{padding:8px 14px;font-size:13px;background:#fff;color:var(--navy);border:1px solid var(--line)}
.links a:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.auth-card{max-width:430px;margin:36px auto}
.note-item{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin:8px 0;background:#fff}
main{max-width:1120px;margin:30px auto;padding:0 20px}
h1{font-size:27px;margin:0 0 7px}
h2{font-size:19px;margin:0 0 14px}
p{line-height:1.9}
.muted{color:var(--muted)}
.intro{margin-bottom:22px}
.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px}
.grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:22px;align-items:start}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:18px 0}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;text-align:center}
.card b{display:block;font-size:34px;color:var(--navy)}
.card span{color:var(--muted);font-size:14px}
.links{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:16px}
.links a{display:block;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;text-decoration:none;color:var(--navy);font-weight:700}
.links a small{display:block;font-weight:400;color:var(--muted);margin-top:6px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:block;font-size:14px;font-weight:700;margin-bottom:7px}
input,select{width:100%;padding:11px;border:1px solid #b9cbcc;border-radius:9px;background:#fff;color:var(--navy)}
input[type=file]{font-size:14px}
fieldset{border:0;margin:0;padding:0}
.field{margin-bottom:16px}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.note{background:#e9f1ef;border-right:3px solid var(--green);padding:12px 15px;font-size:14px;border-radius:6px}
.warn{background:#fdf3e7;border-right:3px solid var(--gold);padding:12px 15px;font-size:14px;border-radius:6px}
.tag{display:inline-block;color:#146b58;background:#e5f3ed;padding:5px 12px;border-radius:30px;font-size:14px}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.toolbar input,.toolbar select{width:auto;min-width:180px;flex:1}
.tablewrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:16px}
table{width:100%;border-collapse:collapse;min-width:640px}
th,td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:right;font-size:14px}
th{background:#f4f8f8}
tr:last-child td{border-bottom:0}
.thumb{width:44px;height:56px;object-fit:cover;border-radius:6px;border:1px solid var(--line);background:#fff}
.preview{display:flex;align-items:center;flex-direction:column;gap:18px}
/* ===== شارة الطالب على القالب الأصلي badge-template.png (983×1600) =====
   نظام موحد: الحاوية الخارجية بأبعاد العرض المصغّر، وكل عنصر داخلي نسبي —
   معامل التحجيم الوحيد هو عرض الحاوية. التنسيقات معزولة ببادئة bt- ولا تتأثر
   بتنسيقات العناوين والنصوص العامة. يتطلب cqw حاوية من النوع inline-size. */
.badge-tpl{position:relative;width:100%;max-width:360px;aspect-ratio:983/1600;overflow:hidden;background:#fff;direction:rtl;flex:none;box-shadow:0 12px 30px #142f3912;print-color-adjust:exact;-webkit-print-color-adjust:exact;container-type:inline-size}
.badge-tpl,.badge-tpl *{margin:0;padding:0;box-sizing:border-box;letter-spacing:normal;text-transform:none}
.bt-tpl{position:absolute;left:0;top:0;width:100%;height:100%;display:block}
.bt-photo{position:absolute;background-color:#ffffff !important;overflow:hidden}
.bt-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover !important;display:block}
.bt-nophoto{position:absolute;inset:0;display:grid;place-items:center;font-size:14px;color:#777;background-color:#ffffff !important}
.bt-name,.bt-sub{position:absolute;display:flex;flex-direction:column;justify-content:center;font-family:Cairo,Tahoma,Arial,sans-serif;direction:rtl;line-height:1.4;overflow:visible;white-space:normal;overflow-wrap:break-word}
.bt-name{text-align:center;font-weight:800;color:#000}
.bt-sub{text-align:right;font-weight:700;color:#241a12}
.badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.badges-grid .panel{display:flex;flex-direction:column;align-items:center;gap:12px}
.rating{display:flex;gap:8px;direction:ltr;justify-content:flex-end}
.rating button{padding:0;background:none;color:#9aa6a8;font-size:34px;line-height:1.3}
.rating button.selected{color:#a87615}
.stars{font-size:32px;letter-spacing:5px;direction:ltr;color:#d4dcdd}
.stars .filled{color:#a87615}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.stat{border:1px solid var(--line);padding:20px;border-radius:14px;text-align:center}
.stat b{display:block;font-size:38px;line-height:1.5;color:var(--green)}
.stat.absent b{color:#af4a43}
.empty{text-align:center;padding:48px 20px}
.status{min-height:24px;margin-top:12px;color:var(--green);font-size:14px}
.back{display:inline-block;margin-bottom:16px;text-decoration:none;font-weight:700}
footer{max-width:1080px;margin:26px auto 40px;padding:0 20px;color:var(--muted);font-size:13px;line-height:2}
.student-view{grid-template-columns:360px 1fr}
[hidden]{display:none !important}
@media(max-width:760px){
  header.topbar{align-items:flex-start;flex-direction:column}
  .brand-logo{height:40px;max-width:150px}
  button{padding:14px 22px}
  .grid,.student-view{grid-template-columns:1fr}
  main{padding:0 12px;margin-top:20px}
  .panel{padding:18px}
  .row{grid-template-columns:1fr}
  h1{font-size:23px}
}
/* ===== الطباعة: إخفاء الموقع وإظهار الشارة/الكشف فقط ===== */
#print-area{display:none}
@media print{
  @page{size:auto;margin:10mm}
  body{background:#fff;background-image:none !important}
  body.print-badge header,body.print-badge main,body.print-badge footer,body.print-badge nav,body.print-badge .no-print{display:none !important}
  body.print-badge #print-area{display:block !important}
  body.print-badge #print-area .badge-tpl{box-shadow:none;margin:0 auto;width:var(--bt-print-w,85mm);max-width:none;height:auto}
  body.print-attendance header,body.print-attendance .no-print,body.print-attendance footer,body.print-attendance nav{display:none !important}
  body.print-attendance main{max-width:none;margin:0}
}
/* ===== كشف المتابعة الشهرية (مطابق لنموذج الإكسل) ===== */
.sheet{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px;margin-top:16px}
.sheet-scroll{overflow-x:auto}
.sheet-title{text-align:center;font-size:22px;font-weight:800;margin:0}
.sheet-sub{text-align:center;font-size:15px;color:var(--muted);margin:4px 0 14px}
.sheet-meta{display:flex;flex-wrap:wrap;gap:6px 26px;justify-content:flex-start;font-size:14px;font-weight:700;margin-bottom:12px}
.sheet-meta span{white-space:nowrap}
table.sheet-table{border-collapse:collapse;width:100%;min-width:960px;background:#fff}
.sheet-table th,.sheet-table td{border:1px solid #33414f;text-align:center;padding:6px 4px;font-size:12px;color:#111}
.sheet-table thead th{background:#1B365D;color:#fff;font-size:13px}
.sheet-table .week-row th{background:#F0F4F8;color:#142f39;font-size:12px}
.sheet-table td.name{text-align:right;font-weight:700;overflow-wrap:break-word;word-break:break-word;vertical-align:middle}
.sheet-table td.day{width:34px;height:30px}
.day-date{display:block;font-size:10px;font-weight:400;line-height:1.4}
.hol{background:#e8ecec !important;color:#555}
.hol-btn{font-size:10px;padding:2px 6px;border-radius:6px;background:#fff;border:1px solid var(--line);color:var(--navy)}
.hol-btn.on{background:#b0433a;border-color:#b0433a;color:#fff}
.sheet-foot{margin-top:12px;font-size:13px;background:#f6f8f8;border:1px dashed #9fb3b3;border-radius:8px;padding:10px 14px}
.sheet-page + .sheet-page{margin-top:26px}
.dwd{font-weight:700;line-height:1.3;white-space:nowrap;word-break:normal;overflow-wrap:normal}
.day-date{white-space:nowrap;word-break:normal;overflow-wrap:normal}
/* صفحة طباعة مستقلة للكشف بمعزل عن طباعة الشارة */
@page sheetlandscape{size:A4 landscape;margin:8mm}
body.print-sheet{page:sheetlandscape}
@media print{
  body.print-sheet .sheet{border:0;border-radius:0;padding:0;margin:0;max-width:none;width:100%;overflow:visible;background:#fff}
  body.print-sheet main{padding:0}
  body.print-sheet .sheet-scroll{overflow:visible}
  body.print-sheet table.sheet-table{width:100%;min-width:0;max-width:none;table-layout:fixed;border-collapse:collapse;background:#fff;transform:none;zoom:1}
  body.print-sheet .sheet-table th,body.print-sheet .sheet-table td{border:1px solid #000;color:#000;overflow-wrap:break-word;word-break:break-word;vertical-align:middle}
  body.print-sheet .sheet-table thead th{background:#fff !important;font-size:10pt;padding:0.5mm;white-space:nowrap;word-break:normal;overflow-wrap:normal}
  body.print-sheet .sheet-table .week-row th{font-size:8pt;background:#fff !important;padding:0.8mm 0.5mm;vertical-align:middle}
  body.print-sheet .sheet-table .dwd{font-size:8pt;line-height:1.4;margin-bottom:0.4mm}
  body.print-sheet .sheet-table .day-date{font-size:8pt;line-height:1.4}
  body.print-sheet .sheet-table tbody td{font-size:9.5pt;padding:0.5mm;height:7mm;min-height:7mm}
  body.print-sheet .sheet-table td.name{text-align:right;font-weight:700}
  body.print-sheet .sheet-title{font-size:15pt;color:#000}
  body.print-sheet .sheet-sub{font-size:11pt;color:#000}
  body.print-sheet .sheet-meta{font-size:9pt;color:#000;gap:2mm 8mm}
  body.print-sheet .sheet-meta span{white-space:normal}
  body.print-sheet .sheet-foot{font-size:10pt;color:#000;border:1px solid #000;background:#fff !important}
  body.print-sheet .sheet-foot .legend{font-size:8pt}
  body.print-sheet .hol{background:#ededed !important;color:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.print-sheet thead{display:table-header-group}
  body.print-sheet tbody tr{break-inside:avoid;page-break-inside:avoid}
  body.print-sheet .sheet-page{break-after:page;page-break-after:always}
  body.print-sheet .sheet-page:last-child{break-after:auto;page-break-after:auto}
  body.print-sheet .sheet-page + .sheet-page{margin-top:0}
}
/* ===== بطاقتا القيادة والنافذة المنبثقة ===== */
.lead-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:4px}
.lead-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}
.lead-card h3{margin:0 0 8px;font-size:17px}
.lead-card .muted{font-size:13px}
details.advanced,details.logbox{margin-top:14px;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:#fbfdfd}
details.advanced summary,details.logbox summary{cursor:pointer;font-weight:700;font-size:15px}
.modal-overlay{position:fixed;inset:0;background:rgba(20,47,57,.55);display:grid;place-items:center;z-index:50;padding:16px}
.modal{background:#fff;border-radius:18px;max-width:640px;width:100%;max-height:86vh;overflow:auto;padding:22px}
.modal h3{margin:0 0 10px}
/* ===== مربع الغياب اليومي (X) ===== */
.daybox{min-width:44px;min-height:44px;width:44px;height:44px;padding:0;border:2px solid #9fb3b8;border-radius:10px;background:#fff;color:transparent;font-size:24px;font-weight:800;line-height:1;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none;display:inline-flex;align-items:center;justify-content:center}
.daybox:hover{border-color:#5b7a80}
.daybox:focus-visible{outline:3px solid #1b5faa;outline-offset:2px}
.daybox[aria-checked="true"]{color:#c0392b;border-color:#c0392b;background:#fdf0ef}
.daycell{display:flex;flex-direction:column;align-items:center;gap:6px}
.daycell .daynote{max-width:130px}
