:root{
  --purple:#37294f; --purple-2:#5b2c83; --green:#8bbe3f; --green-d:#6f9c2c;
  --sand:#f6e6c8; --sand-d:#e9d3a8; --bg:#f7f5f1; --card:#fff; --ink:#23202b;
  --muted:#7a7486; --line:#e3ddd2; --red:#c0392b; --amber:#b7791f;
  --radius:12px; --shadow:0 2px 10px rgba(55,41,79,.08);
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:Tajawal,"Segoe UI",Tahoma,sans-serif;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.6;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--purple-2)}
main.wrap{width:100%;max-width:1200px;margin:0 auto;padding:20px 16px;flex:1}
main.center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px}
.foot{text-align:center;color:var(--muted);font-size:13px;padding:14px}

/* شريط علوي */
.topbar{background:var(--purple);color:#fff;display:flex;align-items:center;gap:18px;padding:8px 16px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none}
.brand img{height:46px;background:#fff;border-radius:8px;padding:3px}
.brand span{display:flex;flex-direction:column;line-height:1.2}
.brand small{opacity:.75;font-size:12px}
.mainnav{display:flex;gap:6px;flex:1}
.navbtn{color:#fff;text-decoration:none;padding:6px 12px;border-radius:8px}
.navbtn:hover{background:rgba(255,255,255,.12)}
.who{display:flex;align-items:center;gap:12px;font-size:14px}
.who em{font-style:normal;background:var(--green);color:var(--purple);border-radius:20px;padding:1px 9px;margin-inline-start:4px;font-weight:700;font-size:12px}
.topbar .linkbtn{color:#fff}
.topbar .linkbtn.danger{color:#ffb3a8}

/* أزرار */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:#fff;color:var(--ink);font:inherit;font-weight:700;padding:8px 18px;border-radius:9px;cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(.97)}
.btn.primary{background:var(--purple);border-color:var(--purple);color:#fff}
.btn.green{background:linear-gradient(#9ccc4f,var(--green-d));border-color:var(--green-d);color:#fff;box-shadow:0 2px 0 #557a20}
.btn.wide{width:100%}
.linkbtn{background:none;border:0;padding:0;font:inherit;font-size:14px;color:var(--purple-2);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.linkbtn.danger{color:var(--red)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--green);outline-offset:2px}

/* نماذج */
label{display:flex;flex-direction:column;gap:4px;font-weight:500;font-size:14px}
input,select{font:inherit;padding:8px 10px;border:1px solid #cfc7b8;border-radius:8px;background:#fff;color:var(--ink);min-width:0}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}
.login{width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px;text-align:center}
.login label{text-align:right}
.login h1{font-size:20px;margin:0;color:var(--purple)}
.login-logo{height:120px;margin:0 auto}
.muted{color:var(--muted)}
.hint{color:var(--muted);font-size:13px;margin:4px 0}
.center{text-align:center}
.alert{border-radius:9px;padding:10px 14px;margin-bottom:14px;background:#eef7e2;border:1px solid #cfe5ae;text-align:right}
.alert.err{background:#fdecea;border-color:#f3c2bc;color:#8a2318}
.alert.warn{background:#fff6e0;border-color:#f0d9a2}
code.pw{font-size:18px;background:#fff;border:1px dashed var(--purple-2);padding:2px 10px;border-radius:6px;direction:ltr;display:inline-block;user-select:all}

/* شريط البحث (على طريقة برنامج أكسس) */
.filterbar{background:var(--sand);border:1px solid var(--sand-d);border-radius:var(--radius);padding:14px 18px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.fb-logo{height:70px}
.filters{display:flex;gap:12px;align-items:flex-end;flex:1;flex-wrap:wrap}
.filters .grow{flex:1;min-width:180px}
.filters select{min-width:90px}
.yearbox{display:flex;flex-direction:column;align-items:center;font-size:13px;color:var(--muted)}
.yearbox strong{font-size:18px;color:var(--purple)}

.listhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:20px 0 10px;flex-wrap:wrap}
.listhead h2{margin:0;color:var(--purple);font-size:22px}
.count{background:var(--purple);color:#fff;border-radius:20px;padding:2px 12px;font-size:14px}

/* الجداول */
.grid{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.grid th{background:#efeaf5;color:var(--purple);text-align:right;padding:10px 12px;font-size:14px}
.grid td{padding:9px 12px;border-top:1px solid var(--line);vertical-align:middle}
.grid tr:hover td{background:#faf8fc}
.grid tr.inactive td{opacity:.55}
.mono{font-family:Consolas,monospace;font-size:14px}
.acts{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.acts form{margin:0}
.tag{display:inline-block;border-radius:20px;padding:1px 10px;font-size:12px;font-weight:700;background:#eee}
.tag.admin{background:var(--purple);color:#fff}
.tag.supervisor{background:#e5dcf1;color:var(--purple-2)}
.tag.teacher{background:#e7f2d6;color:#4d6f1c}
.tag.on{background:#e7f2d6;color:#4d6f1c}
.tag.off{background:#fde2de;color:var(--red)}
.tag.wait{background:#fff0d0;color:var(--amber)}
.warn-text{color:var(--red);font-size:14px}

/* نموذج المستخدم */
.editform{margin-bottom:22px;display:flex;flex-direction:column;gap:14px}
.editform h3{margin:0;color:var(--purple)}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
fieldset{border:1px solid var(--line);border-radius:10px;padding:10px 14px}
legend{font-weight:700;color:var(--purple);padding:0 6px}
.secgrid{border-collapse:collapse}
.secgrid th,.secgrid td{padding:6px 10px;text-align:center}
.secgrid tbody th{color:var(--purple)}
.secgrid input{width:20px;height:20px;accent-color:var(--green-d)}
.actions{display:flex;gap:10px}

@media (max-width:760px){
  .row3{grid-template-columns:1fr}
  .grid{display:block;overflow-x:auto;white-space:nowrap}
  .fb-logo{display:none}
  .who{width:100%;justify-content:space-between}
  .secgrid th,.secgrid td{padding:4px 5px}
}

/* ===== قائمة التلاميذ: التقدم ===== */
.listmeta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.grid tr.clickable{cursor:pointer}
.stname{color:var(--ink);text-decoration:none;font-weight:500}
.stname:hover{color:var(--purple-2);text-decoration:underline}
.prog{display:inline-block;width:90px;height:8px;border-radius:8px;background:#ece7f1;vertical-align:middle;overflow:hidden}
.prog span{display:block;height:100%;background:var(--amber)}
.prog.full span{background:var(--green-d)}

/* ===== شاشة التقييم ===== */
.evtools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.navpair{display:flex;align-items:center;gap:8px}
.tabs{display:flex;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.tab{padding:7px 16px;text-decoration:none;color:var(--ink);font-weight:500}
.tab.on{background:var(--purple);color:#fff}
.savestate{font-weight:700;font-size:14px;min-height:1.5em}
.savestate.ok{color:var(--green-d)} .savestate.err{color:var(--red)} .savestate.busy{color:var(--muted)}

.evcard{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 22px;max-width:1000px;margin:0 auto}
.evhead{display:grid;grid-template-columns:120px 1fr 150px;align-items:center;gap:12px;border-bottom:2px solid var(--purple);padding-bottom:10px}
.eh-logo img{height:100px}
.eh-title{text-align:center}
.eh-title h1{margin:0;font-size:30px;font-weight:800}
.eh-title h1.purple{color:#7a2d8f} .eh-title h1.red{color:#d0202e}
.eh-title p{margin:4px 0 0;font-weight:700}
.eh-school{display:flex;flex-direction:column;align-items:center;font-size:13px}
.eh-school img{height:70px}
.evinfo{display:flex;flex-wrap:wrap;gap:6px 26px;padding:12px 0;border-bottom:1px solid var(--line)}
.evinfo span{color:var(--muted)}
.evinfo strong{color:#1f3fa0}
.evinfo .progress{margin-inline-start:auto}

.panels{display:grid;grid-template-columns:1fr 1fr;grid-auto-flow:row;gap:14px;margin-top:14px;direction:ltr}
.panel{border:1px solid #cbbfdc;border-radius:10px;padding:10px 12px}
.panel.side-left{grid-column:1} .panel.side-right{grid-column:2} .panel.side-full{grid-column:1 / -1}
.panel h2{margin:0 0 8px;text-align:center;color:#6b2c91;font-size:18px}
.panel[dir=ltr]{font-family:Calibri,"Segoe UI",Tajawal,sans-serif}
.grp.has-sub{display:grid;grid-template-columns:110px 1fr;gap:8px;border-top:1px solid var(--line);padding:6px 0}
.subttl{font-weight:700;display:flex;align-items:center;color:var(--ink)}
.crits{display:flex;flex-direction:column;gap:6px}
.side-full .crits{flex-direction:row;flex-wrap:wrap;justify-content:space-around}
.crit{display:grid;grid-template-columns:1fr 150px;gap:8px;align-items:center;padding:3px 6px;border-radius:7px;border-inline-start:4px solid transparent}
.side-full .crit{grid-template-columns:auto 150px}
.crit.filled{border-inline-start-color:var(--green)}
.crit label{font-weight:500;font-size:14px;text-align:center;border:1px solid #d8d2e2;border-radius:6px;padding:4px 6px;background:#fbfaff}
.crit select{padding:5px 6px;width:100%}
.crit select.failed{border-color:var(--red);background:#fdecea}
.range{display:flex;align-items:center;gap:4px;font-size:13px;white-space:nowrap}
.range select{width:62px}
.evnotes{margin-top:14px}
.evnotes label{margin-bottom:4px}
.evnotes textarea{width:100%;font:inherit;padding:8px 10px;border:1px solid #cfc7b8;border-radius:8px;resize:vertical}
.scale-line{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;border:1px solid var(--line);border-radius:8px;padding:6px 12px;margin:12px 0 0;font-weight:500;font-size:14px}
select:disabled,textarea:disabled{background:#f1eff3;color:#555}

@media (max-width:760px){
  .panels{grid-template-columns:1fr}
  .panel.side-left,.panel.side-right{grid-column:1}
  .evhead{grid-template-columns:70px 1fr 80px}
  .eh-logo img{height:64px} .eh-school img{height:44px}
  .eh-title h1{font-size:20px}
  .crit,.side-full .crit{grid-template-columns:1fr 130px}
  .grp.has-sub{grid-template-columns:1fr}
  .savestate{width:100%;margin:0}
}

/* ===== إضافات: الصفحة الرئيسية الفارغة، الإعدادات، التنقل، التواقيع ===== */
.empty-state{text-align:center;padding:50px 16px;color:var(--muted)}
.empty-state img{height:110px;opacity:.35}
.empty-state p{font-size:18px;margin:12px 0 0}
.btn.small{padding:4px 12px;font-size:14px}
.btn:disabled,select:disabled,input:disabled{opacity:.55;cursor:not-allowed}
.jump{max-width:260px;margin-inline-start:auto}
.mt{margin-top:14px!important}
.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.settings-grid .card{display:flex;flex-direction:column;gap:12px}
.settings-grid h3{margin:0;color:var(--purple)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pubrow{display:flex;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--line)}
.pubrow span:first-child{font-weight:700;min-width:110px}
.pubrow .btn{margin-inline-start:auto}
.signs{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-top:16px;padding-top:10px}
.sign-sup p{margin:4px 0}
.sign-admin{display:flex;gap:8px;align-items:flex-start}
.stamp{width:130px;height:95px;border:2px dotted #555;border-radius:4px}
.dots{display:inline-block;min-width:200px;border-bottom:2px dotted #666;height:1em;vertical-align:baseline}
.dots.short{min-width:140px}
.parents-line{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:12px;font-size:15px}
@media (max-width:760px){
  .settings-grid{grid-template-columns:1fr}
  .signs{flex-direction:column}
  .jump{max-width:100%;width:100%;order:9;margin:0}
}

/* ===== الأرشيف والترحيل والاستيراد وإدارة التلاميذ ===== */
.span2{grid-column:1 / -1}
.actions.wrap{flex-wrap:wrap;align-items:center}
.narrow{max-width:760px;margin-left:auto;margin-right:auto}
.dangerzone{margin-top:16px;border:1px solid #f3c2bc}
.btn.danger-btn{background:var(--red);border-color:var(--red);color:#fff}
.newyear{border-top:2px dashed var(--line);padding-top:12px;display:flex;flex-direction:column;gap:10px}
.newyear h4{margin:0;color:var(--red)}
label.check{flex-direction:row;align-items:center;gap:8px;align-self:end;padding-bottom:10px}
label.check input{width:20px;height:20px}
.yearbox select{font-weight:700;color:var(--purple)}
.stickybar{position:sticky;bottom:0;background:var(--bg);padding:12px 0;border-top:1px solid var(--line);align-items:center}
.promo .grid select{padding:4px 6px}

/* ===== العمل دون إنترنت ===== */
.savestate.offline{color:var(--amber)}
.buds-net{position:fixed;bottom:12px;left:12px;z-index:50;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:30px;padding:6px 14px;font:inherit;font-size:13px;box-shadow:var(--shadow);cursor:pointer;max-width:calc(100vw - 24px)}
.buds-net i{width:10px;height:10px;border-radius:50%;background:var(--green-d);flex:none}
.buds-net.wait i,.buds-net.sync i{background:var(--amber)}
.buds-net.off i{background:var(--red)}
.buds-net.off{border-color:#f3c2bc}
@media print{.buds-net{display:none}}
