/* ==========================================================================
   متوسطة بابل للبنين — نظام التصميم الموحد (v2)
   --------------------------------------------------------------------------
   الترتيب: 1) الخط  2) المتغيرات (Tokens)  3) الأساس  4) الهيكل  5) المكونات
            6) النماذج  7) الجداول  8) الصفحات الخاصة  9) الجوال وإمكانية الوصول
   الطباعة في ملف مستقل: print.css
   قواعد النظام:
     • كل لون/مسافة/حجم خط يأتي من المتغيرات أدناه، ولا قيم عشوائية في الصفحات.
     • الظل للعناصر الطافية فقط (نوافذ/قوائم)؛ البطاقات بحد خفيف.
     • الجرأة البصرية في مكانين فقط: واجهة الدخول وشريط الرئيسية.
   ========================================================================== */

/* ---------- 1) الخط: Cairo مُستضاف محليًا (عربي + لاتيني، وزن متغيّر) ---------- */
@font-face{
  font-family:'Cairo';font-style:normal;font-weight:200 1000;font-display:swap;
  src:url('fonts/cairo-var.woff') format('woff');
}

/* ---------- 2) المتغيرات ---------- */
:root{
  /* الهوية */
  --lapis:#163E93; --lapis-deep:#0A1F4D; --lapis-mid:#10306F;
  --glaze:#C99A2E; --glaze-ink:#7A5A10; --glaze-soft:#F8EFD3;
  --mist:#F3F5F9; --white:#FFFFFF;

  /* الأسطح والحدود والنصوص */
  --paper:var(--mist); --card:var(--white); --surface-2:#EAEFF6; --thead:#EEF2F8;
  --line:#E0E6EF; --line-strong:#C6D0E0;
  --text:#1B2640; --muted:#5A687F; --heading:#0A1F4D;
  --control-border:#8493AC; --control-border-h:#566784;
  --input-border:#CBD4E3; --input-border-h:#9FB0C9;
  --focus:#2461BE;

  /* الحالات */
  --ok:#1E7A53; --ok-soft:#E3F4EB; --bad:#B3302C; --bad-soft:#FBEAE8;
  --warn:#8A5D06; --warn-soft:#FCF1D3; --info:#1E55AE; --info-soft:#E7F0FC;

  /* أسماء قديمة تعتمد عليها صفحات (لا تُحذف) */
  --royal:var(--lapis); --navy:var(--lapis-deep); --skyline:#2461BE; --gold:var(--glaze);
  --ink:var(--lapis-deep); --ink-2:var(--lapis-mid); --ink-3:var(--lapis);
  --accent:#8F6A12; --accent-2:var(--glaze); --accent-soft:var(--glaze-soft);
  --row-alt:rgba(22,62,147,.028);
  --stat-blue:#2563EB; --stat-gold:#B8860B; --stat-green:#0F9D63; --stat-purple:#7C3AED; --stat-teal:#0891B2; --stat-red:#DC2626;
  --grad-brand:var(--glaze); --grad-ink:var(--lapis);

  /* الخطوط */
  --f-body:'Cairo',system-ui,-apple-system,'Segoe UI',Tahoma,Arial,sans-serif;
  --f-display:var(--f-body);
  --fs-xs:.75rem; --fs-sm:.8125rem; --fs-base:.9375rem; --fs-md:1rem; --fs-lg:1.125rem; --fs-xl:1.375rem; --fs-2xl:1.75rem;
  --lh:1.65; --lh-tight:1.4;

  /* المسافات (سلّم 4px) */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px;

  /* الأحجام والأشكال */
  --ctl:42px; --ctl-sm:34px;
  --r-sm:8px; --r:12px; --r-lg:16px; --side:260px;
  --sh-pop:0 10px 30px rgba(10,31,77,.18);
  --sh-lg:0 20px 48px rgba(10,31,77,.28);
  --sh-sm:none; --sh-md:0 4px 14px rgba(10,31,77,.1);
  --ease:cubic-bezier(.2,.65,.3,1);
  --t:.14s;

  --chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23566784' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  --crenel:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='10' viewBox='0 0 20 10'%3E%3Cpath d='M0 10V7h4V4h3V0h6v4h3v3h4v3z' fill='%23C99A2E'/%3E%3C/svg%3E");
  color-scheme:light;
}
:root[data-theme="dark"]{
  --paper:#0C1426; --card:#131D33; --surface-2:#1A2640; --thead:#1A2640;
  --line:#26334D; --line-strong:#34456A;
  --text:#DCE4F3; --muted:#9AA9C4; --heading:#EEF3FC;
  --control-border:#6A7DA3; --control-border-h:#8FA3C9; --input-border:#33425F; --input-border-h:#485B80;
  --focus:#8DB6F0;
  --accent:#E3B650; --accent-2:#D6A638; --accent-soft:#2B2514; --glaze-soft:#2B2514; --glaze-ink:#E3B650;
  --ok:#43C18A; --ok-soft:#10301F; --bad:#F0766B; --bad-soft:#3A1B1A;
  --warn:#E3B650; --warn-soft:#33270F; --info:#6AA6E6; --info-soft:#122844;
  --row-alt:rgba(255,255,255,.025);
  --lapis-deep:#070F25; --lapis-mid:#0C1A3E;
  --sh-pop:0 10px 30px rgba(0,0,0,.5); --sh-lg:0 20px 48px rgba(0,0,0,.6); --sh-md:0 4px 14px rgba(0,0,0,.4);
  --chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239AA9C4' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  color-scheme:dark;
}

/* ---------- 3) الأساس ---------- */
*{box-sizing:border-box}
html,body{margin:0}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px;scroll-padding-bottom:96px}
body{
  font-family:var(--f-body);color:var(--text);font-size:var(--fs-base);line-height:var(--lh);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  background:var(--paper);transition:background-color .2s var(--ease),color .2s var(--ease);
}
a{color:var(--info);text-decoration:none} a:hover{text-decoration:underline}
h1,h2,h3,h4{margin:0 0 .5em;line-height:var(--lh-tight);font-weight:700;color:var(--heading)}
h2{font-size:var(--fs-md)} h3{font-size:var(--fs-base)}
p{margin:0 0 .8em}
.muted,small{color:var(--muted)}
small{font-size:var(--fs-sm)}
b,strong{font-weight:700}
.ltr{direction:ltr;unicode-bidi:isolate;display:inline-block}
[dir=ltr]{unicode-bidi:isolate}
.ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
::selection{background:var(--glaze-soft);color:var(--lapis-deep)}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--input-border-h);border-radius:20px;border:3px solid var(--paper)}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}
.skip-link{position:absolute;top:-60px;right:12px;z-index:100;background:var(--lapis-deep);color:#fff;padding:10px 16px;border-radius:0 0 8px 8px;transition:top .15s}
.skip-link:focus{top:0;color:#fff;text-decoration:none}
[hidden]{display:none!important}
.print-only{display:none}
.no-wrap{white-space:nowrap}

/* ---------- 4) الهيكل: القائمة الجانبية والشريط العلوي والمحتوى ---------- */
.side{position:fixed;inset:0 0 0 auto;width:var(--side);background:var(--lapis-deep);color:#D5DFF3;overflow-y:auto;z-index:30;display:flex;flex-direction:column;overscroll-behavior:contain}
.side::before{content:"";display:block;height:10px;flex:none;background:var(--crenel) repeat-x 0 0/20px 10px}
.brand{display:flex;gap:12px;align-items:flex-start;padding:16px 16px 16px;border-bottom:1px solid rgba(255,255,255,.1)}
.brand img,.brand .mark{width:46px;height:46px;border-radius:50%;object-fit:contain;aspect-ratio:1;background:#fff;display:grid;place-items:center;font-weight:700;color:var(--lapis);font-size:21px;flex:none;box-shadow:0 0 0 2px var(--glaze)}
.brand strong{display:block;font-size:var(--fs-base);color:#fff;font-weight:700;line-height:1.35}
.brand small{display:block;color:#A9BBDD;font-size:var(--fs-xs);line-height:1.4;margin-top:2px}
.side nav{padding:10px 12px 18px;flex:1}
.side nav a{position:relative;display:flex;align-items:center;gap:11px;padding:8px 12px;min-height:40px;border-radius:10px;color:#CBD7EE;font-size:var(--fs-base);margin-bottom:2px;transition:background var(--t),color var(--t)}
.side nav a .ic{opacity:.72}
.side nav a:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none}
.side nav a.on{background:rgba(201,154,46,.16);color:#fff;font-weight:600}
.side nav a.on::before{content:"";position:absolute;inset:8px 0 8px auto;width:3px;border-radius:3px;background:var(--glaze);right:-12px}
.side nav a.on .ic{opacity:1;color:var(--glaze)}
.side details.nav-group{margin:8px 0 2px}
.side .nav-group-toggle{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;color:#9DB0D3;font-size:var(--fs-sm);font-weight:600;cursor:pointer;list-style:none;user-select:none;transition:background var(--t),color var(--t)}
.side .nav-group-toggle::-webkit-details-marker{display:none}
.side .nav-group-toggle span{flex:1}
.side .nav-group-toggle .chev{width:14px;height:14px;opacity:.7;transition:transform .2s var(--ease)}
.side details[open]>.nav-group-toggle .chev{transform:rotate(180deg)}
.side .nav-group-toggle:hover{background:rgba(255,255,255,.06);color:#E6EDFA}
.side .nav-group-toggle.on{color:#E6EDFA}
.side-foot{padding:14px 18px;border-top:1px solid rgba(255,255,255,.1);color:#8DA1C9;font-size:var(--fs-xs);text-align:center}
.side-user{display:none}
.scrim{display:none}

.top{position:sticky;top:0;z-index:20;margin-right:var(--side);background:color-mix(in srgb,var(--card) 94%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:10px 32px;min-height:60px}
.top h1{font-size:var(--fs-lg);margin:0;flex:1;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.who{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm)}
.who .role{background:var(--glaze-soft);color:var(--glaze-ink);padding:2px 12px;border-radius:20px;font-weight:600;font-size:var(--fs-xs);line-height:1.8}
.who select{padding:4px 8px;width:auto;min-height:36px}
.uchip{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--text)!important;text-decoration:none!important;padding:3px 10px 3px 10px;border-radius:30px;min-height:40px}
.uchip:hover{background:var(--surface-2)}
.uavatar{width:30px;height:30px;border-radius:50%;background:var(--lapis);color:#fff;display:grid;place-items:center;font-size:var(--fs-sm);font-weight:700;flex:none}
:root[data-theme="dark"] .uavatar{background:#2A5BC4}
.who .out{color:var(--muted);display:flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;border-radius:var(--r-sm)}
.who .out:hover{background:var(--bad-soft);color:var(--bad)}
.theme-switch{background:none;border:1px solid var(--line);color:var(--muted);display:flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:0 8px;border-radius:var(--r-sm);cursor:pointer;position:relative;transition:background var(--t),color var(--t)}
.theme-switch:hover{background:var(--surface-2);color:var(--text);text-decoration:none}
.theme-switch .ic.sun{display:none}
:root[data-theme="dark"] .theme-switch .ic.sun{display:block}
:root[data-theme="dark"] .theme-switch .ic.moon{display:none}
.burger{display:none;background:none;border:1px solid var(--line);font-size:20px;line-height:1;cursor:pointer;padding:6px 11px;min-width:44px;min-height:44px;border-radius:var(--r-sm);color:var(--text)}
.burger:hover{background:var(--surface-2)}
.notif-bell{position:relative}
.notif-badge{position:absolute;top:-4px;left:-4px;min-width:17px;height:17px;padding:0 4px;border-radius:20px;background:var(--bad);color:#fff;font-size:.64rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 0 0 2px var(--card)}

/* المحتوى: يتمركز في المساحة المتاحة بعرض أقصى مريح للقراءة */
.main{margin-right:var(--side);padding:24px 32px 56px}
.main>*{max-width:1360px;margin-inline:auto}
.main>.flash{margin-bottom:var(--s4)}
body.bare .main,body.bare main{margin:0;padding:0}
body.bare main>*{max-width:none;margin-inline:0}
.main>h2{margin:var(--s5) auto var(--s3)}
.main>h2:first-child{margin-top:0}

/* ---------- 5) المكونات ---------- */
/* البطاقات */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:var(--s5) var(--s5) var(--s4);margin-bottom:var(--s4)}
.card>h2:first-child{padding-bottom:var(--s3);border-bottom:1px solid var(--line);margin-bottom:var(--s4)}
.card>.head-row:first-child:has(+ :is(.tbl-wrap,table,.empty,ul,form,.stats,dl,.tbl-filter,.sf,.filters)){padding-bottom:var(--s3);border-bottom:1px solid var(--line);margin-bottom:var(--s4)}
.card>.head-row:first-child h2{margin:0}
.card>:last-child{margin-bottom:0}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4);margin-bottom:var(--s4)}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);margin-bottom:var(--s4)}
.grid2>.card,.grid3>.card{margin-bottom:0}
.head-row{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;justify-content:space-between;margin-bottom:var(--s3)}
.head-row h2{margin:0}
.actions{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center}
.inline{display:inline}
.kv{display:grid;grid-template-columns:140px 1fr;gap:6px 16px;margin:0}
.kv dt{color:var(--muted);font-size:var(--fs-sm)} .kv dd{margin:0}
.plain{list-style:none;padding:0;margin:0}.plain li{padding:8px 0;border-bottom:1px dashed var(--line)}.plain li:last-child{border-bottom:0}
.tbl-wrap+p,.tbl-wrap+.muted,.tbl-wrap+small{margin-top:var(--s3)}
.empty{text-align:center;color:var(--muted);padding:var(--s5) var(--s3);font-size:var(--fs-base)}

/* بطاقات الإحصاء */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--s3);margin-bottom:var(--s4)}
.stat{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:var(--s3) var(--s4);display:block;color:var(--text)}
a.stat{transition:border-color var(--t),background var(--t)}
a.stat:hover{border-color:var(--lapis);text-decoration:none;background:color-mix(in srgb,var(--lapis) 4%,var(--card))}
.stat b{display:block;font-size:var(--fs-2xl);line-height:1.2;font-weight:700;font-variant-numeric:tabular-nums;color:var(--heading)}
.stat span{color:var(--muted);font-size:var(--fs-sm)}
.stat.accent{border-color:var(--glaze);border-inline-start:4px solid var(--glaze);background:color-mix(in srgb,var(--glaze-soft) 55%,var(--card))}
.stat-ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;margin-bottom:var(--s2)}
.stat-ic .ic{width:17px;height:17px}
.stats.mini{grid-template-columns:repeat(3,1fr);gap:var(--s2)}
.stats.mini .stat{padding:var(--s2) var(--s3)}.stats.mini .stat b{font-size:var(--fs-xl)}

/* الأزرار */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);font:inherit;font-size:var(--fs-base);font-weight:500;border:1px solid var(--input-border-h);background:var(--card);color:var(--text);padding:0 var(--s4);min-height:40px;line-height:1.2;border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;transition:background var(--t),border-color var(--t),color var(--t)}
.btn:hover{background:var(--surface-2);border-color:var(--control-border);text-decoration:none}
.btn:active{background:var(--line);transform:translateY(1px)}
.btn.primary{background:var(--lapis);border-color:var(--lapis);color:#fff;font-weight:600}
.btn.primary:hover{background:var(--lapis-mid);border-color:var(--lapis-mid)}
.btn.primary:active{background:var(--lapis-deep)}
:root[data-theme="dark"] .btn.primary{background:#2A5BC4;border-color:#2A5BC4}
.btn.accent{background:var(--glaze);border-color:var(--glaze);color:var(--lapis-deep);font-weight:600}
.btn.accent:hover{background:#D8A937;border-color:#D8A937}
.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,var(--line))}
.btn.danger:hover{background:var(--bad-soft);border-color:var(--bad)}
.btn.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}
.btn.ok:hover{background:var(--ok-soft);border-color:var(--ok)}
.btn.sm{padding:0 var(--s3);min-height:var(--ctl-sm);font-size:var(--fs-sm)}
.btn.block{width:100%;min-height:48px;font-size:var(--fs-md)}
.btn .ic{width:16px;height:16px}
:where(button,.btn,a,summary)[disabled],.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}
.btn-link{background:none;border:0;color:var(--muted);cursor:pointer;font:inherit;padding:8px 4px}
.btn-link:hover{color:var(--bad)}
.btn.is-loading{position:relative;pointer-events:none;opacity:.85}
.btn.is-loading::after{content:"";width:14px;height:14px;border:2px solid currentColor;border-inline-end-color:transparent;border-radius:50%;animation:spin .7s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
button,.btn,summary,label.check,.att-opts label,a.stat,.quick a,.tabs a,.pager a{cursor:pointer;touch-action:manipulation}

/* الشارات والرسائل */
.badge{display:inline-flex;align-items:center;gap:5px;padding:1px 10px;border-radius:20px;font-size:var(--fs-xs);font-weight:600;line-height:1.9;background:var(--surface-2);color:var(--muted);white-space:nowrap}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.bad{background:var(--bad-soft);color:var(--bad)}
.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.info{background:var(--info-soft);color:var(--info)}
.badge.muted{background:var(--surface-2);color:var(--muted)}
.flash{display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--r-sm);margin-bottom:var(--s4);border:1px solid;border-inline-start-width:4px;font-size:var(--fs-base);line-height:1.6;transition:opacity .3s}
.flash.ok{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}
.flash.bad{background:var(--bad-soft);border-color:var(--bad);color:var(--bad)}
.flash.warn{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}
.flash.info{background:var(--info-soft);border-color:var(--info);color:var(--info)}
.flash.fade-out{opacity:0}
.flash b,.flash strong{color:inherit}

/* التبويبات والترقيم */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line-strong);margin-bottom:var(--s4);flex-wrap:wrap}
.tabs a{padding:8px var(--s4);border-radius:var(--r-sm) var(--r-sm) 0 0;color:var(--muted);border:1px solid transparent;border-bottom:0;font-weight:500;min-height:40px;display:inline-flex;align-items:center}
.tabs a:hover{background:var(--surface-2);text-decoration:none;color:var(--text)}
.tabs a.on{background:var(--card);border-color:var(--line-strong);margin-bottom:-1px;color:var(--heading);font-weight:700;box-shadow:inset 0 3px 0 var(--glaze)}
.pager{display:flex;gap:4px;flex-wrap:wrap;margin-top:var(--s4)}
.pager a{min-width:36px;text-align:center;padding:5px 11px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--text)}
.pager a:hover{background:var(--surface-2);text-decoration:none}
.pager a.on{background:var(--lapis);color:#fff;border-color:var(--lapis)}

/* النوافذ المنبثقة */
dialog.modal-overlay{border:0;border-radius:var(--r-lg);padding:0;width:min(660px,92vw);max-height:90vh;box-shadow:var(--sh-lg);background:var(--card);color:var(--text);margin:auto;overflow:hidden;animation:modalIn .16s var(--ease)}
dialog.modal-overlay[open]{display:flex;flex-direction:column}
dialog.modal-overlay::backdrop{background:rgba(7,19,48,.55)}
@keyframes modalIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
dialog.modal-overlay.modal-lg{width:min(920px,95vw)}
dialog.modal-overlay.modal-xl{width:min(1180px,97vw)}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) var(--s5);border-bottom:1px solid var(--line);background:var(--card);flex:none}
.modal-head :is(h2,h3){margin:0;font-size:var(--fs-lg)}
.modal-close{background:none;border:0;cursor:pointer;color:var(--muted);width:38px;height:38px;border-radius:var(--r-sm);font-size:1.6rem;line-height:1;transition:background var(--t),color var(--t)}
.modal-close:hover{background:var(--surface-2);color:var(--bad)}
.modal-body{padding:var(--s5);overflow-y:auto;flex:1;min-height:0}
.modal-body .card{border:0;padding:0;margin:0;background:transparent}
.modal-body .card>h2:first-child{border-bottom:0;padding-bottom:0}
.modal-body .card+.card{margin-top:var(--s5);padding-top:var(--s5);border-top:1px dashed var(--line)}
.modal-body .tbl-wrap{max-height:none}
.modal-body .sticky-top{position:sticky;top:calc(-1 * var(--s5));z-index:6;margin:calc(-1 * var(--s5)) calc(-1 * var(--s5)) var(--s4);padding:var(--s3) var(--s5);background:var(--card);border-bottom:1px solid var(--line)}
.modal-body>.card>h2:first-child,.modal-body>#modal-content>h2:first-child,.modal-body .sticky-top>h2:first-child,.modal-body .sticky-top>h3:first-child{display:none}
.modal-body .sticky-top .actions{margin-inline-start:auto}
.modal-body .tabs{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.modal-body .tabs a{flex:none;white-space:nowrap}
.modal-body form>.form-actions,.modal-body form>.actions:last-child{position:sticky;bottom:calc(-1 * var(--s5));z-index:5;margin:var(--s4) calc(-1 * var(--s5)) calc(-1 * var(--s5));padding:var(--s3) var(--s5);background:var(--card);border-top:1px solid var(--line)}
.modal-loading{padding:56px 20px;text-align:center;color:var(--muted)}
.modal-loading::before{content:"";display:block;width:26px;height:26px;margin:0 auto 12px;border:3px solid var(--line-strong);border-top-color:var(--lapis);border-radius:50%;animation:spin .8s linear infinite}
dialog.confirm-dialog{width:min(460px,92vw)}
#confirmDialogMsg{font-weight:700;margin:0 0 6px}
.confirm-detail{white-space:pre-line;margin:0;line-height:1.8}

/* قائمة الإجراءات (⋯) */
.action-menu{position:relative;display:inline-block}
.action-menu summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:var(--ctl-sm);height:var(--ctl-sm);border-radius:var(--r-sm);border:1px solid var(--line);color:var(--muted);background:var(--card)}
.action-menu summary::-webkit-details-marker{display:none}
.action-menu summary:hover,.action-menu[open] summary{background:var(--surface-2);color:var(--text)}
.action-menu-items{position:absolute;top:calc(100% + 4px);left:0;min-width:160px;background:var(--card);border:1px solid var(--line-strong);border-radius:var(--r-sm);box-shadow:var(--sh-pop);padding:5px;z-index:35;display:flex;flex-direction:column;gap:2px}
.action-menu-items a,.action-menu-items button,.action-menu-items .btn{display:block;width:100%;text-align:right;padding:8px 11px;min-height:0;border-radius:6px;border:0;background:none;color:var(--text);font:inherit;cursor:pointer}
.action-menu-items a:hover,.action-menu-items button:hover,.action-menu-items .btn:hover{background:var(--surface-2);text-decoration:none}
.action-menu-items .danger,.action-menu-items button.danger{color:var(--bad)}
.action-menu-items form{margin:0}

/* إعدادات الظهور */
.layout-opts{display:flex;gap:var(--s3);margin:var(--s4) 0 var(--s5)}
.layout-opt{flex:1;display:flex;flex-direction:column;align-items:center;gap:10px;padding:var(--s5) var(--s3);border:1.5px solid var(--line-strong);border-radius:var(--r);background:var(--card);color:var(--text);cursor:pointer;font:inherit;transition:border-color var(--t),background var(--t)}
.layout-opt .ic{width:26px;height:26px;opacity:.75}
.layout-opt:hover{border-color:var(--lapis)}
.layout-opt.selected{border-color:var(--lapis);background:color-mix(in srgb,var(--lapis) 9%,var(--card));color:var(--lapis);font-weight:700;box-shadow:inset 0 0 0 1px var(--lapis)}
:root[data-theme="dark"] .layout-opt.selected{color:#8DB6F0;border-color:#5B8FE0;box-shadow:inset 0 0 0 1px #5B8FE0}
.layout-opt.selected .ic{opacity:1}
.layout-actions{display:flex;align-items:center;gap:var(--s4)}

/* ---------- 6) النماذج ---------- */
input,select,textarea{font:inherit;font-size:var(--fs-base);border:1px solid var(--control-border);border-radius:var(--r-sm);padding:8px var(--s3);min-height:var(--ctl);background:var(--card);color:var(--text);width:100%;transition:border-color var(--t),box-shadow var(--t)}
textarea{min-height:0;line-height:1.7;resize:vertical}
input:hover,select:hover,textarea:hover{border-color:var(--control-border-h)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--lapis);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 28%,transparent)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}
:where(input,select,textarea):user-invalid{border-color:var(--bad)}
input:disabled,select:disabled,textarea:disabled,input[readonly]{background:var(--surface-2);color:var(--muted);cursor:not-allowed}
select:not([multiple]):not([size]){appearance:none;-webkit-appearance:none;background-image:var(--chev);background-repeat:no-repeat;background-position:left 12px center;padding-left:36px;cursor:pointer}
input[type=checkbox],input[type=radio]{width:18px;height:18px;min-height:0;padding:0;accent-color:var(--lapis);flex:none}
input[type=file]{padding:5px var(--s2);font-size:var(--fs-sm);max-width:100%;color:var(--muted)}
input[type=file]::file-selector-button{margin-inline-end:var(--s3);border:0;background:var(--surface-2);color:var(--text);padding:6px 14px;border-radius:6px;font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer}
input[type=file]::file-selector-button:hover{background:var(--line)}
input[type=date],input[type=time],input[type=number]{text-align:right}
input[type=number]{font-variant-numeric:tabular-nums}

.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--s4);min-width:0}
.field>span{font-size:var(--fs-sm);font-weight:600;color:var(--heading)}
.field>span.req::after,.field.req>span::after{content:" *";color:var(--bad)}
.field>small{font-size:var(--fs-xs);line-height:1.5}
.field img{object-fit:contain;max-width:100%;height:auto!important;max-height:96px;width:auto!important}
.field.wide img{max-height:140px}
.check{display:flex;align-items:center;gap:var(--s2);margin:6px 0;font-size:var(--fs-base)}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px var(--s4)}

/* شبكة النماذج: عمودان ثابتان على الشاشات الواسعة بدل التفاف غير منتظم */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s5)}
.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.form-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.form-grid .wide{grid-column:1/-1}
/* أقسام النموذج: عنوان + وصف + حقول */
.form-section{padding:var(--s5) 0 var(--s2);border-top:1px solid var(--line)}
.form-section:first-of-type{border-top:0;padding-top:0}
.child .field input[type=file]{max-width:440px}
.form-section>h3{margin:0 0 2px;font-size:var(--fs-md)}
.form-section>.fs-desc{margin:0 0 var(--s4);color:var(--muted);font-size:var(--fs-sm)}
.form-actions{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid var(--line)}
.media-field{min-width:0}
.media-cur{display:flex;align-items:center;gap:var(--s4);margin:calc(-1 * var(--s2)) 0 var(--s4)}
.form-actions .push{margin-inline-start:auto}
.savebar{position:sticky;bottom:0;z-index:10;display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;margin:var(--s4) calc(-1 * var(--s5)) calc(-1 * var(--s4));padding:var(--s3) var(--s5) calc(var(--s3) + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--card) 95%,transparent);backdrop-filter:blur(8px);border-top:1px solid var(--line);border-radius:0 0 var(--r) var(--r)}
.savebar .muted{font-size:var(--fs-sm)}
form[aria-busy="true"] .savebar .muted{display:none}
.pw-wrap{position:relative;display:block}
.pw-wrap input{padding-inline-end:48px}
.pw-toggle{position:absolute;inset-block:0;inset-inline-end:0;width:46px;display:grid;place-items:center;background:none;border:0;color:var(--muted);cursor:pointer;border-radius:0 var(--r-sm) var(--r-sm) 0}
.pw-toggle:hover{color:var(--text)}
.pw-toggle .ic{width:20px;height:20px}

/* شريط الفلترة (الخادم والعميل بشكل واحد) */
.filters,.sf{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:flex-end;margin:0 0 var(--s4);padding:var(--s3);border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}
.filters .field,.sf .field{margin:0;min-width:150px;gap:4px}
.filters .field>span,.sf .field>span{font-size:var(--fs-xs);color:var(--muted);font-weight:600}
.filters .field.grow,.sf .field.grow{flex:1 1 220px}
.filters .btn,.sf .btn{align-self:flex-end}
.sf input[type=search],.sf input[type=date],.sf select{width:100%}
.sf-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:var(--ctl)}
.sf-chips button{border:1px solid var(--control-border);background:var(--card);color:var(--muted);border-radius:999px;padding:0 14px;font:inherit;font-size:var(--fs-sm);cursor:pointer;min-height:var(--ctl-sm);transition:background var(--t),color var(--t)}
.sf-chips button:hover{background:var(--surface-2);color:var(--text)}
.sf-chips button.on{background:var(--lapis);border-color:var(--lapis);color:#fff;font-weight:600}
.sf-meta{display:flex;align-items:center;gap:var(--s3);margin-inline-start:auto;font-size:var(--fs-sm);color:var(--muted);min-height:var(--ctl)}
.sf-meta .btn{min-height:var(--ctl-sm)}
.sf:not(.sf-active) [data-sf-reset]{display:none}
.sf-empty{padding:var(--s5);text-align:center;color:var(--muted)}
tr[hidden]{display:none!important}
.sf-toggle{display:none;align-self:flex-end;gap:var(--s2)}
.sf-toggle .sf-n{background:var(--lapis);color:#fff;border-radius:999px;min-width:20px;height:20px;padding:0 6px;font-size:var(--fs-xs);line-height:20px;text-align:center}
.tbl-filter{display:flex;align-items:center;gap:var(--s3);margin:0 0 var(--s3)}
.tbl-filter input{max-width:320px}
.tbl-filter small{white-space:nowrap}

/* ---------- 7) الجداول ---------- */
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-sm);-webkit-overflow-scrolling:touch;background:var(--card)}
.tbl-wrap[tabindex]:focus-visible{outline-offset:-3px}
table.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-base)}
.tbl .col-n{width:52px;text-align:center;color:var(--muted)}
.tbl td.col-n{font-variant-numeric:tabular-nums}
.tbl th{background:var(--thead);text-align:right;font-weight:700;padding:10px var(--s4);border-bottom:1px solid var(--line-strong);white-space:nowrap;color:var(--heading);font-size:var(--fs-sm)}
.tbl td{padding:10px var(--s4);border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child>td{border-bottom:0}
.tbl tbody tr:hover td,.tbl tr:hover>td{background:color-mix(in srgb,var(--lapis) 4%,transparent)}
.tbl tbody tr:focus-within>td{background:var(--accent-soft)}
.tbl tr.hl td{background:var(--info-soft)}
.tbl .num,.tbl td.num,.tbl th.num{text-align:center;font-variant-numeric:tabular-nums}
.tbl td[dir=ltr]{white-space:nowrap;text-align:right}
.tbl td.actions{display:table-cell;white-space:nowrap;text-align:left;width:1%}
.tbl td.actions>*{margin-inline-end:6px;vertical-align:middle}
.tbl td.actions>*:last-child{margin-inline-end:0}
.tbl td>a:not(.btn){font-weight:500}
.tbl input.score{width:84px;text-align:center}
.tbl .sub{display:block;color:var(--muted);font-size:var(--fs-xs);line-height:1.4}
td.pass{color:var(--ok);font-weight:700} td.fail{color:var(--bad);font-weight:700}
.stat b,.books-stat strong,.meter-head b{font-variant-numeric:tabular-nums}

/* مفتاح اختيار الحضور */
.att-opts{display:inline-flex;border:1px solid var(--control-border);border-radius:var(--r-sm);overflow:hidden;background:var(--card)}
.att-opts label{display:block;margin:0}
.att-opts label+label{border-inline-start:1px solid var(--control-border)}
.att-opts input{position:absolute;opacity:0;width:1px;height:1px}
.att-opts span{display:block;padding:7px 14px;min-width:62px;text-align:center;font-size:var(--fs-sm);font-weight:500;color:var(--muted);background:var(--card);transition:background var(--t)}
.att-opts label:hover span{background:var(--surface-2)}
.att-opts input:focus-visible+span{outline:2px solid var(--focus);outline-offset:-2px}
.att-opts input:checked+span{color:#fff;font-weight:700}
.att-opts input:checked+span.present{background:var(--ok)}
.att-opts input:checked+span.absent{background:var(--bad)}
.att-opts input:checked+span.late{background:var(--warn)}
.att-opts input:checked+span.excused{background:var(--info)}
:root[data-theme="dark"] .att-opts input:checked+span.late,:root[data-theme="dark"] .att-opts input:checked+span.present{color:#07130d}

/* الجدول الأسبوعي */
table.week{width:100%;border-collapse:collapse;table-layout:fixed;font-size:var(--fs-sm);min-width:720px}
.week th,.week td{border:1px solid var(--line);padding:6px;text-align:center;vertical-align:top}
.week th{background:var(--thead);color:var(--heading);font-weight:700}
.week td{height:68px;background:var(--card)}
.week .slot{padding:3px 0}
.week .slot+.slot{border-top:1px dashed var(--line);margin-top:4px;padding-top:6px}
.week .slot b{display:block;color:var(--heading);font-weight:700}
.week .slot small{display:block;line-height:1.5}
.week td.free{background:var(--paper)}
.week td.free:hover{background:var(--glaze-soft)}
.week td.free .btn{min-height:30px;min-width:30px;padding:0 8px;border-style:dashed;border-color:var(--line-strong);color:var(--muted);background:transparent}
.week td.free .btn:hover{border-style:solid;border-color:var(--lapis);color:var(--lapis)}
.week tr.today-row th{background:var(--lapis);color:#fff}
.week tr.today-row td{background:color-mix(in srgb,var(--glaze-soft) 60%,var(--card))}
.week tr.today-row td.free{background:color-mix(in srgb,var(--glaze-soft) 40%,var(--paper))}

/* حالات خاصة: شريط الحفظ العلوي، إحصاءات صغيرة، مدخلات الدرجات */
.sticky-top{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;justify-content:space-between;margin-bottom:var(--s3)}
.sticky-top h2,.sticky-top h3{margin:0;font-size:var(--fs-md)}
.sticky-top .actions{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center}
.sticky-page{position:sticky;top:60px;z-index:19;display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;justify-content:space-between;padding:var(--s3) var(--s4);margin:0 auto var(--s4);background:color-mix(in srgb,var(--card) 95%,transparent);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:var(--r)}
.sticky-page h2{margin:0;font-size:var(--fs-md)}
.pill-stats{display:flex;flex-wrap:wrap;gap:6px;font-size:var(--fs-xs)}
.pill-stats span{padding:2px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);color:var(--muted)}
.pill-stats b{color:var(--text)}
.grade-in{width:92px;text-align:center}
.grade-in.bad{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,var(--card))}
.grade-clear{min-height:30px;padding:0 9px}
.danger-zone{margin-top:var(--s4);border:1px dashed var(--bad);border-radius:var(--r);padding:var(--s3) var(--s4)}
.danger-zone summary{cursor:pointer;color:var(--bad);font-weight:700}
.row-muted{opacity:.55}

/* ---------- 8) الصفحات الخاصة ---------- */
/* تسجيل الدخول (موضع الجرأة الأول) */
.login-wrap{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:1.1fr 1fr;background:var(--paper)}
.login-art{position:relative;overflow:hidden;isolation:isolate;background-color:var(--lapis-deep);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;min-height:100vh;min-height:100dvh}
.login-art>img.art-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:72% 30%;z-index:-1}
.login-art::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,19,48,.95) 0%,rgba(7,19,48,.78) 38%,rgba(7,19,48,.15) 72%,rgba(7,19,48,.3) 100%)}
.login-art::after{content:"";position:absolute;inset:auto 0 0 0;height:10px;background:var(--crenel) repeat-x 0 0/20px 10px}
.login-art>*{position:relative;z-index:1}
.login-art .art-body{padding:48px 56px 52px;max-width:640px}
.login-art h1{font-size:clamp(1.8rem,3.2vw,2.8rem);color:#fff;margin:18px 0 6px;line-height:1.3}
.login-art p{color:#C6D3EE;margin:0 0 22px}
.login-art ul{list-style:none;padding:0;margin:0;display:grid;gap:10px;font-size:var(--fs-base);color:#DCE6F8}
.login-art li{padding-right:26px;position:relative}
.login-art li:before{content:"";position:absolute;right:0;top:.7em;width:12px;height:4px;background:var(--crenel) no-repeat 0 100%/12px 6px}
.login-art .school-identity{align-items:center;text-align:center}
.login-art .school-identity-name{font-size:clamp(1.6rem,3.2vw,2.5rem)}
.seal{position:relative;width:88px;height:88px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:2.2rem;font-weight:700;color:var(--lapis);overflow:hidden;box-shadow:0 0 0 3px var(--glaze),0 10px 26px rgba(0,0,0,.4)}
.seal img{width:100%;height:100%;object-fit:cover;display:block}
.login-card{align-self:center;justify-self:center;width:min(420px,90%);background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s6) var(--s6) var(--s5);box-shadow:var(--sh-md)}
.login-card h2{font-size:var(--fs-xl);margin-bottom:6px}
.login-card .muted{font-size:var(--fs-sm);margin-bottom:var(--s5);line-height:1.7}
.login-theme{position:fixed;top:16px;left:16px;z-index:50}
.login-theme .theme-switch{background:rgba(7,19,48,.5);border-color:rgba(255,255,255,.3);color:#fff;backdrop-filter:blur(6px)}
.login-theme .theme-switch:hover{background:rgba(7,19,48,.7)}

/* شريط الرئيسية (موضع الجرأة الثاني) */
.dash-hero{position:relative;border-radius:var(--r-lg);overflow:hidden;margin-bottom:var(--s4);min-height:150px;display:flex;align-items:flex-end;justify-content:flex-end;background:var(--lapis-deep);isolation:isolate}
.dash-hero img.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right center;z-index:-2}
.dash-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(270deg,rgba(7,19,48,.1) 20%,rgba(7,19,48,.6) 55%,rgba(7,19,48,.92) 100%)}
.dash-hero::after{content:"";position:absolute;inset:auto 0 0 0;height:8px;background:var(--crenel) repeat-x 0 0/20px 10px}
.dash-hero-body{padding:var(--s5) var(--s6) var(--s6);display:flex;align-items:center;gap:var(--s4);color:#fff;width:min(60%,620px)}
.dash-hero .hero-mark{width:60px;height:60px;border-radius:50%;object-fit:contain;aspect-ratio:1;flex:none;background:#fff;box-shadow:0 0 0 2px var(--glaze)}
.dash-hero .hero-mark.letter{display:grid;place-items:center;font-size:1.5rem;font-weight:700;color:var(--lapis)}
.dash-hero h2{margin:0 0 var(--s2);color:#fff;font-size:clamp(1.25rem,2.4vw,1.75rem);line-height:1.4;overflow-wrap:anywhere}
.dash-hero p{margin:2px 0 0;color:#D3DFF5;font-size:var(--fs-sm)}
.hero-meta{display:flex;flex-wrap:wrap;gap:4px var(--s4);margin-top:var(--s2);font-size:var(--fs-sm);color:#F0D79A}
.hero-meta a{color:#fff;text-decoration:underline}
.quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--s3);margin-bottom:var(--s4)}
.quick a{display:flex;align-items:center;gap:10px;padding:0 var(--s4);min-height:48px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--heading);font-weight:600;transition:border-color var(--t),background var(--t)}
.quick a .ic{color:var(--lapis)}
:root[data-theme="dark"] .quick a .ic{color:#8DB6F0}
.quick a:hover{border-color:var(--lapis);text-decoration:none;background:color-mix(in srgb,var(--lapis) 5%,var(--card))}
.panel-dark{background:var(--lapis-deep);color:#fff;border-color:var(--lapis-deep)}
.panel-dark :is(h2,h3),.panel-dark .muted{color:#fff;border-color:rgba(255,255,255,.15)}
.panel-dark .stat-ic{background:rgba(255,255,255,.14);color:#fff}
.school-identity{display:flex;flex-direction:column;gap:6px;min-width:0;line-height:1.6}
.school-identity .school-identity-name{margin:0 0 4px;line-height:1.45;overflow-wrap:anywhere}
.school-identity-line{font-size:var(--fs-base);opacity:.9;overflow-wrap:anywhere}
.brand .school-identity{gap:2px}.brand .school-identity-line{font-size:.7rem;font-weight:400;line-height:1.6;opacity:.75}
.school-authority{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-base);line-height:1.7;opacity:.92;margin-bottom:var(--s3)}
.school-authority span:empty{display:none}
.ann-carousel{border-top:4px solid var(--glaze);margin-bottom:var(--s5);overflow:hidden}
.ann-carousel h2{margin:0}.ann-controls{align-items:center;flex-wrap:wrap}
.ann-slide{padding:var(--s4) 0;overflow-wrap:anywhere}
.ann-carousel.is-ready .ann-slide{animation:annReveal .4s ease}
.ann-carousel .ann-img{display:block;max-height:340px;max-width:100%;object-fit:contain;margin:auto;border-radius:var(--r-sm)}
.ann-count{font-size:var(--fs-sm);color:var(--muted);min-width:42px;text-align:center;direction:ltr;unicode-bidi:isolate;display:inline-block}
@keyframes annReveal{from{opacity:.3;transform:translateX(18px)}to{opacity:1;transform:none}}

/* الأبناء والإعلانات */
.child{display:flex;gap:14px;align-items:center;margin-bottom:var(--s3)}
.child h2{margin:0}
.avatar{width:50px;height:50px;border-radius:50%;background:var(--glaze-soft);color:var(--glaze-ink);display:grid;place-items:center;font-weight:700;font-size:1.2rem;flex:none;overflow:hidden;box-shadow:inset 0 0 0 2px var(--glaze)}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar.sm{width:36px;height:36px;font-size:var(--fs-base)}
.ann{border-inline-start:4px solid var(--glaze)}
.ann img,.ann-img{max-width:100%;border-radius:var(--r-sm)}
.ann-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s4)}
.ann-grid>.card{margin-bottom:0}
.ann.off{opacity:.6}
.ann-title{margin:6px 0}
.ann-img{display:block;margin:6px 0}
.ann-body{line-height:1.9;margin:6px 0}
.children-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:var(--s5);align-items:start}
.children-grid .stats.mini{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.year-chip{font-variant-numeric:tabular-nums;white-space:nowrap}

/* مؤشرات الأداء والرسوم */
.meters{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--s4);margin-bottom:var(--s4)}
.meter{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4) var(--s5)}
.meter .meter-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:var(--s2)}
.meter .meter-head span{font-size:var(--fs-sm);font-weight:600}
.meter .meter-head b{font-size:var(--fs-lg);font-weight:700;color:var(--heading)}
.meter-track{height:8px;border-radius:20px;background:var(--line);overflow:hidden}
.meter-fill{height:100%;border-radius:20px;background:var(--glaze);transition:width .4s var(--ease)}
.meter-fill.ok{background:var(--ok)}.meter-fill.info{background:var(--info)}
.meter-fill.warn{background:var(--glaze)}.meter-fill.bad{background:var(--bad)}
.bars-chart{display:flex;align-items:flex-end;gap:10px;height:200px;padding:10px 6px 0;overflow-x:auto}
.bars-chart .bar-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:44px;flex:1;height:100%}
.bars-chart .bar{width:100%;max-width:38px;border-radius:4px 4px 0 0;background:var(--lapis);position:relative}
:root[data-theme="dark"] .bars-chart .bar{background:#3D74D6}
.bars-chart .bar-val{font-size:var(--fs-xs);font-weight:700;color:var(--heading);margin-bottom:4px;font-variant-numeric:tabular-nums}
.bars-chart .bar-lbl{font-size:var(--fs-xs);color:var(--muted);margin-top:8px;text-align:center;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.donut-wrap{display:flex;align-items:center;gap:var(--s5);flex-wrap:wrap}
.donut-legend{display:grid;gap:7px;font-size:var(--fs-sm)}
.donut-legend .dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-left:7px;vertical-align:middle}

/* مكتبة الكتب المدرسية */
.books-heading{display:flex;align-items:center;gap:var(--s4);margin:0 0 var(--s4);padding:var(--s5) var(--s5);background:var(--lapis-deep);color:#fff;border-radius:var(--r);position:relative;overflow:hidden}
.books-heading::after{content:"";position:absolute;inset:auto 0 0 0;height:8px;background:var(--crenel) repeat-x 0 0/20px 10px;opacity:.9}
.books-heading-icon{width:56px;height:56px;border-radius:50%;flex:0 0 56px;display:grid;place-items:center;background:rgba(255,255,255,.1);border:1px solid rgba(201,154,46,.6)}
.books-heading-icon .ic{width:27px;height:27px;stroke:#F0D79A}
.books-heading-copy{flex:1;min-width:0}
.books-heading h2{margin:0 0 4px;color:#fff;font-size:var(--fs-xl)}
.books-heading p{margin:0;color:#D3DFF5;font-size:var(--fs-sm);line-height:1.8}
.books-heading .btn.primary{background:var(--glaze);color:var(--lapis-deep);border-color:var(--glaze);flex:none}
.books-heading .btn.primary:hover{background:#D8A937}
.books-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3);margin-bottom:var(--s4)}
.books-stat{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:var(--s4) var(--s5);display:flex;align-items:center;justify-content:space-between;gap:10px}
.books-stat span{color:var(--muted);font-size:var(--fs-sm)}
.books-stat strong{font-size:var(--fs-2xl);font-weight:700;color:var(--heading)}
.books-filter-card{margin-bottom:var(--s4)}
.books-filters{display:flex;gap:var(--s3);align-items:flex-end;flex-wrap:wrap}
.books-filters .field{flex:1;min-width:160px;margin:0}
.books-filters .books-search{flex:2;min-width:210px}
.books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:var(--s4);margin-top:var(--s3)}
.book-card{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:var(--s4);display:flex;flex-direction:column;gap:var(--s3);min-width:0;transition:border-color var(--t)}
.book-card:hover{border-color:var(--lapis)}
.book-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.book-cover{width:48px;height:52px;border-radius:6px;display:grid;place-items:center;background:var(--lapis);color:#fff;border-inline-start:5px solid var(--glaze)}
.book-cover .ic{width:24px;height:24px}
.book-card h3{color:var(--heading);font-size:var(--fs-md);line-height:1.7;margin:0;overflow-wrap:anywhere;font-weight:700}
.book-tags{display:flex;gap:6px;flex-wrap:wrap}
.book-tags span{background:var(--surface-2);color:var(--muted);border-radius:50px;font-size:var(--fs-xs);padding:2px 10px}
.book-desc{color:var(--muted);font-size:var(--fs-sm);line-height:1.7;margin:0;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.book-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:auto;padding-top:var(--s3);border-top:1px solid var(--line)}
.book-actions form{margin:0}.book-actions .btn{white-space:nowrap}
.books-empty{text-align:center;padding:36px 16px;color:var(--muted)}
.books-empty>.ic{width:43px;height:43px;color:var(--glaze);opacity:.8}
.books-empty h2{margin:12px 0 5px}
.books-empty p{margin:0 0 15px}
.books-list-card>.head-row{margin-bottom:var(--s3)}

/* عارض الملفات (PDF/صورة) */
.viewer{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface-2)}
.viewer-bar{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;justify-content:space-between;padding:var(--s3);background:var(--card);border-bottom:1px solid var(--line)}
.viewer-bar .name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.viewer-stage{display:flex;justify-content:center;background:#525659;min-height:300px}
.viewer-stage iframe{width:100%;height:78vh;border:0;background:#fff}
.viewer-stage img{max-width:100%;height:auto;display:block;background:#fff}
.viewer-stage.img{padding:14px;background:var(--surface-2);overflow:auto}
.pdf-fallback{display:none;padding:30px;text-align:center;color:#fff}

/* معاينة الطباعة على الشاشة (النماذج الرسمية؛ تنسيق الطباعة في print.css) */
.print-head{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;border-bottom:2px solid #222;padding-bottom:10px;margin-bottom:14px;font-size:var(--fs-base)}
.print-head .ph-c{text-align:center}.print-head .ph-c img{height:70px}
.print-head h2{margin:6px 0 0;font-size:var(--fs-xl);color:#000;font-weight:700}
.print-head .ph-l{text-align:left}
.ph-sub{color:#444;font-size:var(--fs-sm)}
.signs{display:flex;justify-content:space-between;margin-top:40px;text-align:center}
.sheet{background:#fff;color:#111;border:1px solid var(--line);border-radius:var(--r);padding:var(--s5);margin-bottom:var(--s4)}
.sheet table.tbl th,.sheet table.tbl td{border:1px solid #bbb}
.sheet .tbl-wrap{border:0}
.print-bar{display:flex;gap:var(--s2);margin-bottom:var(--s3)}
.info-tbl{width:100%;border-collapse:collapse;margin:10px 0}
.info-tbl td{padding:4px 6px}
.rep h2{margin-bottom:2px}.rep .form-grid{margin:10px 0}
.page-break{page-break-after:always}

/* ---------- 9) الشاشات المتوسطة والصغيرة وإمكانية الوصول ---------- */
@media (max-width:1100px){
  :root{--side:236px}
  .grid3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .main{padding:20px 20px 56px}
  .top{padding:10px 20px}
  .form-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .side{transform:translateX(100%);transition:transform .22s var(--ease);width:min(300px,86vw);visibility:hidden}
  body.nav-open .side{transform:none;visibility:visible;box-shadow:-12px 0 36px rgba(0,0,0,.35)}
  .scrim{display:block;position:fixed;inset:0;z-index:25;background:rgba(7,19,48,.55);opacity:0;pointer-events:none;transition:opacity .2s}
  body.nav-open .scrim{opacity:1;pointer-events:auto}
  body.nav-open{overflow:hidden}
  .top,.main{margin-right:0}
  .main{padding:16px 14px 56px}
  .top{padding:8px 14px;gap:8px}
  .top h1{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35;font-size:var(--fs-md)}
  .sticky-page{top:60px}
  .burger{display:block}
  .who{gap:6px}
  .who .uname,.who .role,.who select{display:none}
  .who .out,#navLayoutTrigger{display:none}
  .side-user{display:block;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04)}
  .su-id{display:flex;align-items:center;gap:12px}
  .su-id .uavatar{width:42px;height:42px;font-size:1.05rem;flex:none}
  .su-id strong{display:block;color:#fff;font-size:var(--fs-base);line-height:1.35;overflow-wrap:anywhere}
  .su-id small{color:#B9C8E8;font-size:var(--fs-sm)}
  .su-roles{display:flex;gap:4px;margin-top:12px;padding:4px;border-radius:12px;background:rgba(0,0,0,.28)}
  .su-roles button{flex:1;min-height:44px;padding:6px 8px;border:0;border-radius:9px;background:transparent;color:#DCE6F8;font:inherit;font-size:var(--fs-sm);cursor:pointer}
  .su-roles button.on{background:var(--glaze);color:#1B1400;font-weight:700}
  .su-roles button:not(.on):hover{background:rgba(255,255,255,.1)}
  .su-links{display:flex;gap:8px;margin-top:10px}
  .su-links a{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;border:1px solid rgba(255,255,255,.2);border-radius:10px;color:#fff;text-decoration:none;font-size:var(--fs-sm)}
  .su-links a:hover{background:rgba(255,255,255,.1)}
  .su-links .ic{width:18px;height:18px}
  .login-wrap{grid-template-columns:1fr}
  .login-art{min-height:0;height:280px}
  .login-art .art-body{padding:24px 24px 28px}
  .login-art h1{font-size:1.7rem;margin-top:12px}
  .login-art ul{display:none}
  .seal{width:64px;height:64px;font-size:1.6rem}
  .login-card{margin:-8px auto 32px;position:relative;z-index:2}
  .kv{grid-template-columns:110px 1fr}
  .grid2,.grid3{grid-template-columns:1fr}
  .card{padding:var(--s4)}
  .savebar{margin:var(--s4) calc(-1 * var(--s4)) calc(-1 * var(--s4));padding:10px var(--s4)}
  .tabs{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;margin-inline:-2px;padding-inline:2px}
  .tabs::-webkit-scrollbar{display:none}
  .tabs a{flex:none;white-space:nowrap;scroll-snap-align:center}
  .dash-hero-body{width:100%}
}
@media (max-width:760px){
  .dash-hero{min-height:150px}
  .dash-hero::before{background:linear-gradient(0deg,rgba(7,19,48,.95) 0%,rgba(7,19,48,.7) 55%,rgba(7,19,48,.1) 100%)}
  .dash-hero-body{padding:var(--s4) var(--s4) var(--s5)}
  .dash-hero .hero-mark{width:50px;height:50px}
  .books-stats{gap:7px}.books-stat{padding:var(--s3);flex-direction:column;align-items:flex-start}
  .books-filters .field{min-width:calc(50% - 12px)}
  .modal-body .sticky-top{margin:calc(-1 * var(--s4)) calc(-1 * var(--s4)) var(--s3);padding:10px var(--s4);top:calc(-1 * var(--s4))}
}
@media (max-width:700px){
  .form-grid,.form-grid.cols-3,.form-grid.cols-4{grid-template-columns:minmax(0,1fr)}
  /* جدول الحصص: بطاقة لكل يوم */
  .tbl-wrap:has(>table.week){overflow:visible;border:0}
  table.week{display:block;min-width:0;border:0}
  table.week tbody{display:block}
  table.week tr:first-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  table.week tr{display:block;margin-bottom:10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);overflow:hidden}
  table.week th{display:flex;align-items:center;gap:8px;border:0;border-bottom:1px solid var(--line);padding:10px 14px;text-align:right}
  table.week td{display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-bottom:1px dashed var(--line);height:auto;padding:10px 14px;text-align:left}
  table.week td:last-child{border-bottom:0}
  table.week td[data-label]::before{content:attr(data-label);flex:none;font-weight:700;color:var(--heading);font-size:var(--fs-sm)}
  table.week td .slot{text-align:left;flex:1;min-width:0}
  table.week td .slot+.slot{margin-top:8px}
  table.week td.free:not(:has(a)){display:none}
  table.week td.free{background:var(--paper)}
  table.week tr.today-row{border-color:var(--glaze)}
}
@media (max-width:640px){
  .stats,.stats.mini{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2)}
  .stats>:last-child:nth-child(odd){grid-column:1/-1}
  .stat{min-width:0;padding:var(--s3)}
  .stat b{font-size:var(--fs-xl)}
  .stat span,.stat small{overflow-wrap:anywhere}
  .filters,.sf{padding:var(--s3)}
  .filters .field,.sf .field{min-width:calc(50% - 6px);flex:1 1 calc(50% - 6px)}
  .filters .field.grow,.sf .field.grow{flex-basis:100%}
  .sf-meta{width:100%;margin:0}
  .sf-collapsible .sf-toggle{display:inline-flex}
  .sf-collapsible .field.grow{flex:1 1 calc(100% - 128px);min-width:0}
  .sf-collapsible:not(.sf-open)>.field:not(.grow){display:none}
  .actions .btn{flex:1}
  .head-row{align-items:flex-start}
  .meters{grid-template-columns:1fr}
  .print-head{grid-template-columns:1fr;text-align:center}
  .print-head .ph-l,.print-head .ph-r{text-align:center}
  .btn,input,select{min-height:46px}
  .btn.sm{min-height:38px}
  .tbl-filter input{max-width:none}
  .savebar .muted{display:none}
  .savebar .btn{flex:1}
  .form-actions .btn{flex:1}
  .school-identity-line{font-size:var(--fs-sm)}
  .top .who .year-chip{display:none}
  .viewer-stage iframe{height:68vh}
  dialog.modal-overlay{width:96vw;max-height:94vh;border-radius:var(--r)}
  .modal-head{padding:var(--s3) var(--s4)}
  .modal-body{padding:var(--s4)}
  .modal-body form>.form-actions,.modal-body form>.actions:last-child{bottom:calc(-1 * var(--s4));margin-inline:calc(-1 * var(--s4));margin-bottom:calc(-1 * var(--s4));padding-inline:var(--s4)}
  .ann-carousel .head-row{align-items:flex-start;gap:var(--s3);flex-direction:column}
  .dash-hero-body{flex-direction:column;align-items:flex-start}
  .books-heading{flex-wrap:wrap;padding:var(--s4);gap:10px}
  .books-heading-icon{width:44px;height:44px;flex-basis:44px}
  .books-heading .books-add{width:100%}
  .books-filters .field{flex:1 1 100%;min-width:100%}
  .books-filters .btn{flex:1}
  .books-grid{grid-template-columns:1fr}
}
@media (max-width:480px){
  .top{padding:8px 10px}
  .top h1{font-size:var(--fs-base)}
  .brand{padding:14px}
  .uchip .uname{display:none}
  .card{padding:14px}
  .savebar{margin:var(--s4) -14px -14px;padding:10px 14px}
  .login-card{padding:var(--s5) var(--s4)}
}

/* الجداول على الجوال: بطاقة مدمجة لكل صف (data-label تُضاف من app.js) */
@media (max-width:560px){
  .tbl-wrap{overflow-x:visible;border:0;background:transparent}
  table.tbl,table.tbl tbody{display:block;width:100%;min-width:0;border:0}
  table.tbl thead tr,table.tbl tr:first-child:has(>th){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  table.tbl tr{display:block;margin-bottom:var(--s2);border:1px solid var(--line);border-radius:var(--r-sm);padding:0 var(--s3);background:var(--card)}
  table.tbl tr:hover>td{background:transparent}
  table.tbl td{display:flex;align-items:center;justify-content:flex-start;gap:var(--s3);text-align:right;padding:6px 0;min-width:0;overflow-wrap:anywhere;border-bottom:0}
  table.tbl td[data-label]::before{content:attr(data-label);font-weight:600;color:var(--muted);font-size:var(--fs-xs);flex:0 0 84px}
  table.tbl td[data-label="#"]{display:none}
  /* أول خلية ظاهرة = عنوان البطاقة */
  table.tbl tr>td:first-child:not([data-label="#"]),table.tbl tr>td[data-label="#"]+td{padding:10px 0 8px;border-bottom:1px solid var(--line);margin-bottom:4px;font-weight:700;font-size:var(--fs-md)}
  table.tbl tr>td:first-child:not([data-label="#"])::before,table.tbl tr>td[data-label="#"]+td::before{display:none}
  table.tbl td:not([data-label]){justify-content:flex-start}
  table.tbl td.actions{flex-wrap:wrap;justify-content:flex-start;width:auto;border-top:1px solid var(--line);margin-top:4px;padding:8px 0 10px}
  table.tbl td[dir=ltr]{white-space:normal;direction:rtl}
  table.tbl td .btn,table.tbl td form{max-width:100%}
  table.tbl td input[type=text]{min-width:0}
  .att-opts{display:flex;width:100%}
  .att-opts label{flex:1}
  .att-opts span{min-width:0;padding:10px 4px}
  .action-menu-items{left:auto;inset-inline-start:0;max-width:calc(100vw - 48px)}
}

/* أهداف اللمس ≥ 44px */
@media (pointer:coarse){
  .btn,.btn.sm,.theme-switch,.who .out,.burger,.modal-close,.action-menu summary,.pager a,.tabs a,.pw-toggle{min-height:44px;min-width:44px}
  .btn.sm{padding-inline:14px}
  .side nav a,.side .nav-group-toggle{min-height:44px}
  input[type=checkbox],input[type=radio]{width:22px;height:22px}
  .check,.checks .check{min-height:44px}
  .att-opts span{padding-block:11px}
  .tbl td.actions>*{margin-block:2px}
  .uchip{min-height:44px}
  .tbl td>a:not(.btn){display:inline-block;padding-block:10px}
  .action-menu-items a,.action-menu-items button,.action-menu-items .btn{min-height:44px;display:flex;align-items:center}
}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* ---------- الوضع الأفقي للقائمة (خيار المستخدم) ---------- */
@media (min-width:901px){
  :root[data-nav-layout="horizontal"] .side{position:static;inset:auto;width:100%;height:auto;flex-direction:row;flex-wrap:wrap;align-items:stretch;overflow:visible;border-bottom:1px solid rgba(255,255,255,.1)}
  :root[data-nav-layout="horizontal"] .side::before{flex:0 0 100%}
  :root[data-nav-layout="horizontal"] .side .brand{border-bottom:0;flex:0 0 auto;padding:8px 16px}
  :root[data-nav-layout="horizontal"] .side nav{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px;flex:1;padding:8px 10px}
  :root[data-nav-layout="horizontal"] .side nav>a{white-space:nowrap;margin-bottom:0}
  :root[data-nav-layout="horizontal"] .side nav a.on::before{display:none}
  :root[data-nav-layout="horizontal"] .side .side-foot{display:none}
  :root[data-nav-layout="horizontal"] .top,
  :root[data-nav-layout="horizontal"] .main{margin-right:0}
  :root[data-nav-layout="horizontal"] .burger{display:none}
  :root[data-nav-layout="horizontal"] .side details.nav-group{position:relative;margin:0}
  :root[data-nav-layout="horizontal"] .side .nav-group-toggle{padding:9px 12px;white-space:nowrap;color:#CBD7EE;font-size:var(--fs-base)}
  :root[data-nav-layout="horizontal"] .side .nav-group-toggle:hover{background:rgba(255,255,255,.08)}
  :root[data-nav-layout="horizontal"] .side details[open]>.nav-group-toggle{background:rgba(255,255,255,.1);color:#fff}
  :root[data-nav-layout="horizontal"] .side .nav-group-toggle .chev{transform:none}
  :root[data-nav-layout="horizontal"] .side details[open]>.nav-group-toggle .chev{transform:rotate(180deg)}
  :root[data-nav-layout="horizontal"] .side .nav-group-items{position:absolute;top:calc(100% + 6px);right:0;min-width:230px;background:var(--lapis-mid);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-sm);box-shadow:var(--sh-lg);padding:6px;z-index:40;display:flex;flex-direction:column;gap:1px}
  :root[data-nav-layout="horizontal"] .side .nav-group-items a{padding:9px 12px}
}


/* === تحسين كثافة الواجهات والتنقل — 2026-10-25 === */
/* زر طي القائمة على الكمبيوتر مع الحفاظ على شريط التنقل الأفقي مستقلًا */
@media (min-width:901px){
  .burger{display:inline-flex;align-items:center;justify-content:center;font-size:0;flex:none}
  .burger .ic{width:20px;height:20px}
  :root.sidebar-collapsed:not([data-nav-layout="horizontal"]) .side{
    transform:translateX(100%);visibility:hidden;pointer-events:none
  }
  :root.sidebar-collapsed:not([data-nav-layout="horizontal"]) .top,
  :root.sidebar-collapsed:not([data-nav-layout="horizontal"]) .main{margin-right:0}
  :root[data-nav-layout="horizontal"] .burger{display:none}
  :root[data-nav-layout="horizontal"] .side nav{flex-wrap:nowrap;min-width:0}
  :root[data-nav-layout="horizontal"] .side .nav-group-items{max-height:min(68vh,480px);overflow-y:auto}
}
/* ترويسة أقصر، بدون قص أزرارها في الشاشات المتوسطة */
.top{min-height:56px;padding-block:7px;gap:10px}
.top h1{line-height:1.4}
.who{min-width:0;flex-wrap:nowrap}
.who .uchip{min-width:0;max-width:220px}
.who .uname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side .nav-group-toggle:focus-visible,.burger:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
/* قوائم الاختيار حقول قابلة للقراءة دون اختزال متعمد */
.sf .field{min-width:0}
.sf .field select,.filters select{max-width:100%;min-width:0;text-overflow:ellipsis}
.sf .field option,.filters option{white-space:normal;direction:rtl}
.sf-meta{flex-wrap:wrap}
.legacy-eval-types>summary{cursor:pointer;font-weight:700;color:var(--heading);padding:4px 0}
.legacy-eval-types>summary:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
/* البيانات الطويلة في جداول الإدارة لا تتجاوز العرض المتاح */
.tbl td,.tbl th{overflow-wrap:break-word}
.tbl td.actions{overflow-wrap:normal}
@media (max-width:1100px){
  .top{padding-inline:14px}
  .who .uchip{max-width:145px}
}
@media (max-width:900px){
  .top{min-height:54px}
  .burger{display:inline-flex;align-items:center;justify-content:center;font-size:0}
  .burger .ic{width:20px;height:20px}
  .who .uchip{max-width:46px}
  .top h1{min-width:80px}
}
@media (max-width:480px){
  .top{gap:6px;padding-inline:10px}
  .who{gap:3px}
  .who .theme-switch{min-width:36px;padding-inline:5px}
  .top h1{font-size:var(--fs-base)}
}

/* === ولي الأمر في الجداول: الاسم + الهاتف (اتصال) + واتساب — 2026-10-25 === */
.head-title{display:flex;flex-direction:column;gap:6px;min-width:0}
.head-title h2{margin:0}
.pill-stats a{padding:2px 10px;border-radius:999px;border:1px solid var(--line);text-decoration:none}
.pill-stats .pill-warn{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}
.pill-stats .pill-warn b{color:inherit}
.pill-stats .pill-warn:hover{border-color:var(--warn);text-decoration:none}
.guardian{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
.guardian .g-name{font-weight:600;color:var(--heading);font-size:var(--fs-sm);line-height:1.4}
.g-phone{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.phone-num{display:inline-flex;align-items:center;gap:6px;direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums;font-weight:600;font-size:var(--fs-sm);color:var(--text)!important;letter-spacing:.3px;white-space:nowrap;padding:3px 11px 3px 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);transition:border-color var(--t),background var(--t)}
.phone-num .ic{width:14px;height:14px;color:var(--ok)}
.phone-num:hover{text-decoration:none;border-color:var(--line-strong);background:var(--card)}
.g-wa{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,#25D366 15%,transparent);color:#128C4A;transition:background var(--t),color var(--t)}
.g-wa .ic{width:16px;height:16px}
.g-wa:hover{background:#25D366;color:#fff;text-decoration:none}
:root[data-theme="dark"] .g-wa{color:#4BE08A}
.g-missing{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm)}
.students-tbl .child{margin:0}
.students-tbl .child small.sub{text-align:right}
@media (pointer:coarse){
  .phone-num{padding:8px 14px 8px 12px}
  .g-wa{width:40px;height:40px}
}

/* === قائمة الإجراءات (⋮) بأيقونات — 2026-10-25 === */
.action-menu summary{width:36px;height:36px;transition:background var(--t),color var(--t),border-color var(--t)}
.action-menu summary .ic{width:18px;height:18px}
.action-menu[open] summary{background:var(--surface-2);color:var(--heading);border-color:var(--line-strong)}
.action-menu-items{min-width:190px;padding:6px;animation:menuIn .12s var(--ease)}
.action-menu-items a,.action-menu-items button,.action-menu-items .btn{display:flex;align-items:center;gap:10px;padding:9px 12px;font-weight:500;white-space:nowrap}
.action-menu-items .ic{width:17px;height:17px;color:var(--muted);flex:none}
.action-menu-items a:hover .ic{color:var(--lapis)}
:root[data-theme="dark"] .action-menu-items a:hover .ic{color:#8DB6F0}
.action-menu-items form{border-top:1px solid var(--line);margin-top:4px;padding-top:4px}
.action-menu-items:has(.ic) form button{padding-inline-start:39px}
@keyframes menuIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* === مفتاح اختيار من عدة أزرار متلاصقة (مثل جنس المدرس) — 2026-10-25 === */
.seg{display:inline-flex;align-self:flex-start;max-width:100%;border:1px solid var(--control-border);border-radius:var(--r-sm);overflow:hidden;background:var(--card)}
.seg label{display:block;margin:0;cursor:pointer}
.seg label+label{border-inline-start:1px solid var(--control-border)}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{display:flex;align-items:center;justify-content:center;min-height:calc(var(--ctl) - 2px);padding:0 18px;min-width:84px;font-size:var(--fs-base);font-weight:600;color:var(--muted);transition:background var(--t),color var(--t);white-space:nowrap}
.seg label:hover span{background:var(--surface-2);color:var(--text)}
.seg input:focus-visible+span{outline:2px solid var(--focus);outline-offset:-2px}
.seg input:checked+span{background:var(--lapis);color:#fff}
:root[data-theme="dark"] .seg input:checked+span{background:#2A5BC4}
@media (max-width:480px){.seg{display:flex;align-self:stretch}.seg label{flex:1}.seg span{min-width:0;padding:0 8px}}

/* === صفحة النتائج ونافذة نشر الدرجات — 2026-10-25 === */
.count-pill{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--lapis);color:#fff;font-size:var(--fs-xs);font-weight:700;line-height:1}
:root[data-theme="dark"] .count-pill{background:#2A5BC4}
.results-head .filters{margin:var(--s4) 0 0}
.results-head .results-cols{margin:var(--s4) 0 0}
.dist{margin:0 0 var(--s4)}
.dist-bar{display:flex;gap:2px;height:12px;border-radius:999px;overflow:hidden;background:var(--line)}
.dist-bar span{display:block;height:100%;min-width:4px}
.dist-bar .ok,.dist-legend i.ok{background:var(--ok)}
.dist-bar .warn,.dist-legend i.warn{background:var(--glaze)}
.dist-bar .bad,.dist-legend i.bad{background:var(--bad)}
.dist-bar .muted,.dist-legend i.muted{background:var(--line-strong)}
.dist-legend{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px;font-size:var(--fs-sm);color:var(--muted)}
.dist-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-inline-end:6px;vertical-align:middle}
.dist-legend b{color:var(--heading);margin-inline-start:2px}
.results-tbl th{white-space:nowrap}
.results-tbl td.pass{color:var(--text);font-weight:600}
.results-tbl td.fail{color:var(--bad);font-weight:700;background:color-mix(in srgb,var(--bad) 9%,transparent)}
.rank{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:800;font-size:var(--fs-sm)}
.rank.r1{background:linear-gradient(135deg,#F6D365,#C99A2E);color:#4A3500}
.rank.r2{background:linear-gradient(135deg,#EEF1F5,#AEB8C6);color:#2B3445}
.rank.r3{background:linear-gradient(135deg,#F3CDA9,#C68A55);color:#4A2A10}
.pg-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:var(--s3) 0;font-size:var(--fs-sm);color:var(--muted)}
.pg-summary b{color:var(--heading)}
.pg-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.pg-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card)}
.pg-list li.on{border-color:color-mix(in srgb,var(--ok) 40%,var(--line));background:color-mix(in srgb,var(--ok-soft) 55%,var(--card))}
.pg-name{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.pg-list form{margin:0;flex:none}

/* === المواد الدراسية والإعلانات — 2026-10-25 === */
.subj{display:flex;align-items:center;gap:12px;min-width:0}
.subj-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;background:color-mix(in srgb,var(--lapis) 10%,transparent);color:var(--lapis)}
:root[data-theme="dark"] .subj-ic{background:rgba(110,155,234,.14);color:#8DB6F0}
.pill-link{display:inline-flex;align-items:center;gap:6px;padding:3px 12px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);color:var(--text)!important;font-weight:600;font-size:var(--fs-sm);white-space:nowrap}
.pill-link .ic{width:15px;height:15px;color:var(--muted)}
.pill-link:hover{border-color:var(--line-strong);background:var(--card);text-decoration:none}
.ann-badges{display:inline-flex;flex-wrap:wrap;gap:4px}

/* === صفحة الدرجات: شريط الإدخال وعنصر الحذف بالقائمة — 2026-10-25 === */
.prog-cell{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px}
.prog{width:72px;height:6px;border-radius:999px;background:var(--line);overflow:hidden;flex:none}
.prog span{display:block;height:100%;border-radius:999px;background:var(--glaze)}
.prog.done span{background:var(--ok)}
.prog-cell small{font-variant-numeric:tabular-nums;color:var(--muted)}
.pill-stats span.pill-warn{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}
.action-menu-items a.danger{color:var(--bad);border-top:1px solid var(--line);margin-top:4px;padding-top:10px}
.action-menu-items a.danger .ic{color:var(--bad)}
.action-menu-items a.danger:hover{background:var(--bad-soft)}

/* رأس صفحة النتائج: أزرار مرتّبة بصف واحد، واختيار الطالب ملتصق بزر الطباعة */
.results-head .head-row>.actions{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;justify-content:flex-end}
.cards-print{display:inline-flex;align-items:stretch;margin:0;gap:0}
.cards-print select{width:210px;height:40px;min-height:40px;border:1px solid var(--input-border-h);border-inline-start:0;border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--card);color:var(--text);font:inherit;padding:0 var(--s3)}
.cards-print .btn{border-radius:var(--r-sm) 0 0 var(--r-sm)}
@media (max-width:640px){.results-head .head-row>.actions{justify-content:stretch;width:100%}.results-head .head-row>.actions>*{flex:1 1 100%}.cards-print{width:100%}.cards-print select{flex:1 1 auto;width:auto;min-width:0}}

/* الترفيعات: واجهة مبسّطة */
.crumbs{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--muted);margin-bottom:2px}
.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--text);text-decoration:underline}
.promo-filters .filters{align-items:flex-end}
.promo-filters .adv{align-self:flex-end;position:relative}
.promo-filters .adv summary{cursor:pointer;color:var(--muted);font-size:var(--fs-sm);min-height:40px;display:flex;align-items:center;list-style:none}
.promo-filters .adv summary::-webkit-details-marker{display:none}
.promo-filters .adv summary::before{content:"⚙";margin-inline-end:6px}
.promo-filters .adv[open]{flex:1 1 100%;order:9}
.promo-filters .adv-body{display:flex;gap:var(--s3);flex-wrap:wrap;padding:var(--s2) 0}
.promo-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
.promo-stats .stat.ok b{color:var(--ok,#1a7f4b)}
.promo-basis{margin:6px 2px}
.promo-tbl td.actions{white-space:nowrap}
.promo-calc{margin-top:4px;font-size:var(--fs-sm)}.promo-calc summary{cursor:pointer;color:var(--muted)}
.promo-summary{font-size:var(--fs-lg,1.05rem);margin:0 0 var(--s3)}
.promo-confirm{display:flex;gap:var(--s3);align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--line)}
.promo-actions{margin:var(--s3) 0;display:flex;gap:var(--s2);flex-wrap:wrap}
.promo-ops{margin-top:var(--s3)}.promo-ops summary{cursor:pointer;font-weight:600}
.promo-ops input[type=text]{max-width:150px}
@media (max-width:640px){
  .promo-filters .filters>.field,.promo-filters .filters>.btn{flex:1 1 100%}
  .promo-filters .filters>label.field:nth-of-type(-n+2){flex:1 1 calc(50% - 8px);min-width:0}
  .promo-confirm{flex-direction:column;align-items:stretch}.promo-confirm .btn{width:100%}
}

/* درجة تغيّرت بترفيع معتمد: أخضر هادئ */
.tbl td.promoted{background:var(--ok-soft);color:var(--ok);font-weight:700}
.promo-key{display:inline-block;width:.8em;height:.8em;border-radius:3px;background:var(--ok-soft);border:1px solid var(--ok);vertical-align:-1px}
.promo-carry-note{margin-top:6px;padding:6px 9px;border-inline-start:3px solid var(--ok);background:var(--ok-soft);border-radius:6px;font-size:.9em}

/* PWA: زر التثبيت (يظهر فقط عند دعم التثبيت) */
.pwa-install[hidden]{display:none}
.pwa-install{display:flex;align-items:center;justify-content:center;gap:9px;min-height:46px;margin:10px 14px;padding:0 16px;width:calc(100% - 28px);box-sizing:border-box;background:linear-gradient(180deg,#F7C54A,#E8A817);color:#0A1F4D;border:0;border-radius:12px;font:inherit;font-size:var(--fs-sm);font-weight:700;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.25);transition:transform .15s,box-shadow .15s}
.pwa-install:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.3)}
.pwa-install:active{transform:none}
.pwa-install .ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.login-pwa{position:fixed;bottom:calc(14px + env(safe-area-inset-bottom));left:0;right:0;z-index:50;display:flex;justify-content:center;pointer-events:none}
.login-pwa .pwa-install{pointer-events:auto;width:auto;margin:0;padding:0 22px}
.pwa-steps{padding-inline-start:20px;line-height:2}
@media (display-mode: standalone){.pwa-install{display:none}}

/* صفحة حسابي */
.acct-hero{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap}
.acct-avatar{width:84px;height:84px;border-radius:50%;background:var(--glaze-soft);color:var(--glaze-ink);display:grid;place-items:center;font-weight:700;font-size:2rem;flex:none;overflow:hidden;box-shadow:inset 0 0 0 3px var(--glaze)}
.acct-avatar.lg{width:96px;height:96px;font-size:2.4rem}
.acct-avatar img{width:100%;height:100%;object-fit:cover}
.acct-id{flex:1;min-width:180px}
.acct-id h2{margin:0 0 4px;font-size:var(--fs-lg,1.25rem)}
.acct-user{color:var(--muted);margin-bottom:8px;text-align:start}
.acct-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);align-items:start}
.acct-grid>.card{margin-bottom:0}
.acct-photo{display:flex;align-items:center;gap:var(--s4);margin-bottom:var(--s4);flex-wrap:wrap}
.acct-photo-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:1;min-width:200px}
.acct-photo-actions small{flex-basis:100%}
.acct small.err{color:var(--bad);min-height:0}
.acct small.err:empty{display:none}
.acct input[aria-invalid="true"]{border-color:var(--bad)}
.acct input:disabled{opacity:.7;cursor:not-allowed}
.acct-actions{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s2)}
.acct-actions .btn[disabled]{opacity:.5;cursor:not-allowed}
.acct-note{margin:var(--s3) 0 0;font-size:var(--fs-xs)}
.acct .spin{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;display:inline-block;margin-inline-end:8px;vertical-align:-2px;animation:acctspin .7s linear infinite}
.acct .spin[hidden]{display:none}
@keyframes acctspin{to{transform:rotate(360deg)}}
.pw-meter{display:flex;align-items:center;gap:10px;margin:-4px 0 var(--s3)}
.pw-meter .bar{flex:1;height:6px;border-radius:6px;background:var(--line);overflow:hidden}
.pw-meter .bar i{display:block;height:100%;width:0;border-radius:6px;background:var(--bad);transition:width .2s,background .2s}
.pw-meter[data-lvl="1"] .bar i{width:25%}
.pw-meter[data-lvl="2"] .bar i{width:50%;background:#E08A1E}
.pw-meter[data-lvl="3"] .bar i{width:75%;background:#7BAE2F}
.pw-meter[data-lvl="4"] .bar i{width:100%;background:var(--ok)}
.pw-meter .lvl{font-size:var(--fs-xs);color:var(--muted);min-width:90px;text-align:end}
.pw-rules{list-style:none;margin:0 0 var(--s4);padding:0;display:grid;gap:4px;font-size:var(--fs-xs);color:var(--muted)}
.pw-rules li::before{content:"○";margin-inline-end:8px}
.pw-rules li.ok{color:var(--ok)}
.pw-rules li.ok::before{content:"✓"}
.uavatar{overflow:hidden}
.uavatar img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:820px){.acct-grid{grid-template-columns:1fr}.acct-hero .btn{width:100%}}
.acct [hidden]{display:none!important}
.acct-top{display:flex;align-items:center;gap:var(--s5);margin-bottom:var(--s4);flex-wrap:wrap}
.acct-avatar-wrap{position:relative;flex:none}
.acct-cam{position:absolute;inset-block-end:0;inset-inline-end:0;width:34px;height:34px;border-radius:50%;background:var(--lapis);color:#fff;display:grid;place-items:center;cursor:pointer;border:3px solid var(--card)}
.acct-cam .ic{width:16px;height:16px}
.acct-cam:hover{background:var(--lapis-mid)}
.acct-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s4)}
.acct-id .btn-link{margin-top:6px;color:var(--bad)}
.acct-id .btn-link[hidden]{display:none}
@media (max-width:820px){.acct-fields{grid-template-columns:1fr}.acct-top{justify-content:center;text-align:center}}
.acct-bar{margin-top:var(--s4);padding-top:var(--s2)}
.acct .field span em{font-style:normal;font-weight:400;font-size:var(--fs-xs)}
.input-lock{display:flex;gap:8px;align-items:stretch}
.input-lock input{flex:1;min-width:0}
.input-lock input[readonly]{background:var(--surface-2);color:var(--muted);cursor:not-allowed}
.lock-btn{display:inline-flex;align-items:center;gap:6px;padding:0 14px;min-height:44px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--text);font:inherit;font-size:var(--fs-sm);cursor:pointer;white-space:nowrap}
.lock-btn:hover{background:var(--surface-2)}
.lock-btn .ic{width:16px;height:16px}
.lock-btn.open{color:var(--bad)}
.pw-help{margin:-6px 0 var(--s4);padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2)}
.pw-help[hidden]{display:none}
.pw-help .pw-meter{margin:0 0 10px}
.pw-rules{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.pw-rules li{padding:3px 10px;border-radius:20px;border:1px solid var(--line);background:var(--card);font-size:var(--fs-xs)}
.pw-rules li::before{content:"○";margin-inline-end:5px}
.pw-rules li.ok{color:var(--ok);border-color:var(--ok);background:var(--ok-soft)}
.pw-rules li.ok::before{content:"✓"}
.reauth{margin-top:var(--s4);border-color:var(--glaze);background:var(--glaze-soft)}
.reauth[hidden]{display:none}
.reauth-head{display:flex;gap:12px;align-items:center;margin-bottom:var(--s3);color:var(--glaze-ink)}
.reauth-head .ic{width:22px;height:22px;flex:none}
.reauth-head small{display:block;color:var(--muted);font-weight:400}
.reauth .field{margin-bottom:0;max-width:420px}
.acct-avatar{position:relative}
.acct-avatar.cropping{cursor:grab;touch-action:none;box-shadow:inset 0 0 0 3px var(--glaze),0 0 0 3px var(--card),0 0 0 5px var(--glaze)}
.acct-avatar.cropping:active{cursor:grabbing}
.acct-avatar.cropping+.acct-cam{display:none}
.zoom{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs);color:var(--muted);margin-top:8px;max-width:230px}
.zoom[hidden]{display:none}
.zoom input{width:100%}
/* الهيدر: صورة أوضح بحلقة ذهبية واحدة */
.who .uavatar{width:36px;height:36px}
.who .uchip{padding:2px 4px 2px 10px}
@media (max-width:480px){.who .uchip{padding:0;border:0;background:none;box-shadow:none;min-width:44px;justify-content:center}.who .uavatar{width:38px;height:38px}}
/* السنوات الدراسية والأرشيف */
.ya-checks{list-style:none;margin:0 0 var(--s4);padding:0;display:grid;gap:6px}
.ya-checks li{padding:8px 12px;border-radius:var(--r-sm);border:1px solid var(--line);border-inline-start-width:4px}
.ya-checks li.ok{border-color:var(--ok);background:var(--ok-soft)}
.ya-checks li.warn{border-color:#E08A1E}
.ya-checks li.bad{border-color:var(--bad);background:var(--bad-soft)}
.ya-list{margin:8px 0 0;padding-inline-start:20px;line-height:1.9}
.reauth-box{margin:var(--s4) 0;padding:var(--s4);border:1px solid var(--glaze);background:var(--glaze-soft);border-radius:var(--r-sm)}
.ya-export>summary{cursor:pointer;display:inline-block;list-style:none}
.ya-export>summary::-webkit-details-marker{display:none}
.ya-fmts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s3);margin-top:var(--s3)}
.ya-fmts form{display:flex;flex-direction:column;gap:6px}
.ya-fmts .btn{display:flex;flex-direction:column;align-items:flex-start;gap:4px;height:100%;width:100%;text-align:start;padding:12px 14px}
.ya-fmts .btn small{font-weight:400;color:var(--muted);white-space:normal;line-height:1.5}

/* حصص اليوم — جدول الشعب × الحصص */
.lp-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px}
.lp-search{flex:1;min-width:200px;max-width:360px;padding:9px 12px;border:1px solid var(--border,#d8dee9);border-radius:10px;background:var(--card,#fff);color:inherit;font:inherit}
.lp-sum{color:#64748b;font-size:13px}
.lp-wrap{overflow-x:auto;border:1px solid var(--border,#e2e8f0);border-radius:12px}
.lp-tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.lp-tbl th,.lp-tbl td{padding:8px 10px;text-align:center;vertical-align:middle;border-bottom:1px solid var(--border,#eef1f6);border-inline-start:1px solid var(--border,#eef1f6)}
.lp-tbl thead th{background:#0A1F4D;color:#fff;font-weight:600;position:sticky;top:0;white-space:nowrap}
.lp-tbl thead th small{display:block;opacity:.75;font-weight:400;font-size:11px}
.lp-tbl thead th em{display:inline-block;margin-top:2px;background:#22c55e;color:#fff;font-style:normal;font-size:10px;border-radius:99px;padding:0 8px}
.lp-tbl thead th.now{background:#15803d}
.lp-tbl tbody th.lp-sec{background:rgba(10,31,77,.05);color:inherit;white-space:nowrap;text-align:start;font-weight:700;position:sticky;inset-inline-start:0;z-index:1}
.lp-tbl thead th.lp-sec{text-align:start;position:sticky;inset-inline-start:0;z-index:2}
.lp-tbl tbody tr:last-child th,.lp-tbl tbody tr:last-child td{border-bottom:0}
.lp-tbl tbody tr:hover td{background:rgba(10,31,77,.035)}
.lp-tbl td.now{background:rgba(34,197,94,.09)}
.lp-tbl tr[hidden]{display:none}
.lp-c1{line-height:1.35}.lp-c1+.lp-c1{margin-top:6px;padding-top:6px;border-top:1px dashed var(--border,#e2e8f0)}
.lp-c1 b{display:block;font-weight:600}
.lp-c1 small{display:block;color:#64748b;font-size:11.5px}
.lp-empty{color:#cbd5e1}
@media (prefers-color-scheme:dark){.lp-tbl tbody th.lp-sec{background:#1b2540}.lp-tbl tbody tr:hover td{background:rgba(255,255,255,.04)}.lp-c1 small{color:#94a3b8}}

@media (max-width:720px){
  .lp-wrap{overflow:visible;border:0}
  .lp-tbl,.lp-tbl tbody{display:block}
  .lp-tbl thead{display:none}
  .lp-tbl tbody tr{display:block;margin:0 0 12px;border:1px solid var(--border,#e2e8f0);border-radius:12px;overflow:hidden;background:var(--card,#fff)}
  .lp-tbl tbody tr[hidden]{display:none}
  .lp-tbl tbody th.lp-sec{display:block;position:static;background:#0A1F4D;color:#fff;padding:10px 14px;border:0;font-size:14px}
  .lp-tbl td{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:start;padding:9px 14px;border:0;border-bottom:1px solid var(--border,#eef1f6)}
  .lp-tbl tr td:last-child{border-bottom:0}
  .lp-tbl td::before{content:attr(data-p) "\A" attr(data-t);white-space:pre;flex:0 0 78px;color:#64748b;font-size:11.5px;line-height:1.4;font-weight:600}
  .lp-tbl td>div,.lp-tbl td>.lp-empty{flex:1;text-align:end}
  .lp-tbl td:has(.lp-empty){display:none}
  .lp-tbl td.now{background:rgba(34,197,94,.12);box-shadow:inset 3px 0 0 #22c55e}
  .lp-sum{width:100%}
  .lp-search{max-width:none}
}

.ins-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;margin-top:8px;border-radius:10px;border-inline-start:4px solid #3b82f6;background:rgba(59,130,246,.07)}
.ins-row.warn{border-color:#f59e0b;background:rgba(245,158,11,.1)}
@media (max-width:720px){.ins-row{flex-direction:column;align-items:flex-start}}
