:root{
    --ink:#152238;
    --navy-deep:#0B1B33;
    --meadow:#2455A4;
    --meadow-dark:#0F2447;
    --meadow-light:#EAF1FC;
    --gold:#E07A34;
    --gold-light:#FDEFE3;
    --teal:#0E93A8;
    --teal-light:#E3F4F7;
    --purple:#6249A6;
    --purple-light:#EFEBFB;
    --sand:#F3F6FB;
    --canvas:#FFFFFF;
    --slate:#6B7684;
    --white:#FFFFFF;
    --danger:#C0453D;
    --danger-light:#FBEAE9;
    --green:#2E9155;
    --green-light:#E7F5EC;
    --border:#E7E8EC;
    --radius:14px;
    --shadow-sm:0 2px 8px rgba(21,34,56,0.05);
    --shadow-md:0 10px 28px rgba(21,34,56,0.09);
    /* ألوان "حالة" ثابتة (منجز/تحذير/متأخر/لم يبدأ) - منفصلة عن ألوان التصنيف أعلاه، تُستخدم
       لمعنى الحالة فقط (شرائح، أشرطة تقدم) بدل ما نعيد استخدام لون هوية (meadow/gold..) بمعنى مختلف */
    --status-good:#2E9155;
    --status-warn:#C9962B;
    --status-bad:#C0453D;
    --status-idle:#9AA3AF;
    /* ست ألوان تصنيفية (ترتيب ثابت، متحقق منه بمكتبة الألوان الداخلية) - تُستخدم كلون تمييز صغير
       (نقطة/شريط) بجانب اسم العنصر نصيًا دايمًا، مو بديل عن النص. مستخدمة حاليًا لتلوين الأهداف
       الاستراتيجية الستة بالخطة التشغيلية بنفس الترتيب اللي انزرعت فيه بقاعدة البيانات. */
    --goal-1:#2a78d6;
    --goal-2:#eb6834;
    --goal-3:#1baf7a;
    --goal-4:#eda100;
    --goal-5:#e87ba4;
    --goal-6:#008300;
  }
  *{box-sizing:border-box;}
  body{
    font-family:'IBM Plex Sans Arabic', sans-serif;
    background-color:#FAFAFB;
    background-image:
      repeating-linear-gradient(45deg, rgba(18,130,152,0.04) 0px, rgba(18,130,152,0.04) 1.5px, transparent 1.5px, transparent 38px),
      repeating-linear-gradient(-45deg, rgba(224,122,52,0.03) 0px, rgba(224,122,52,0.03) 1.5px, transparent 1.5px, transparent 38px);
    background-attachment:fixed;
    margin:0; color:var(--ink); -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{ font-family:'Tajawal', sans-serif; margin:0; letter-spacing:-0.01em; }
  .hidden{ display:none !important; }

  /* ===== شاشة الدخول ===== */
  #login-screen{
    display:grid; grid-template-columns: minmax(0, 44fr) minmax(0, 56fr); min-height:100vh; min-height:100dvh;
  }
  .brand-panel{
    background: radial-gradient(120% 90% at 85% 10%, #1E4A8E 0%, #13336A 45%, #0C2147 100%);
    position:relative; overflow:hidden; isolation:isolate;
    display:flex; flex-direction:column; justify-content:space-between; gap:40px;
    padding:64px 56px 48px; color:#fff;
  }
  .lg-traces{ position:absolute; inset:0; width:100%; height:100%; z-index:-1; }
  .lg-traces .t{ stroke:#2FC1B2; stroke-width:2; opacity:.55; stroke-dasharray:900; stroke-dashoffset:900; animation:lgDraw 2.2s cubic-bezier(.65,0,.35,1) forwards; }
  .lg-traces .t2, .lg-traces .t5{ stroke:#6FA4F2; opacity:.45; }
  .lg-traces .t2{ animation-delay:.15s; } .lg-traces .t3{ animation-delay:.35s; } .lg-traces .t4{ animation-delay:.5s; }
  .lg-traces .t5{ animation-delay:.25s; }
  .lg-traces .nodes circle{ fill:#0C2147; stroke:#2FC1B2; stroke-width:2.5; opacity:0; animation:lgNode .4s ease-out 1.6s forwards; }
  @keyframes lgDraw{ to{ stroke-dashoffset:0; } }
  @keyframes lgNode{ to{ opacity:.9; } }
  @media (prefers-reduced-motion: reduce){
    .lg-traces .t{ animation:none; stroke-dashoffset:0; }
    .lg-traces .nodes circle{ animation:none; opacity:.9; }
  }
  .lg-brand{ max-width:420px; }

  .lg-word{ margin:0 0 22px !important; line-height:0 !important; }
  .lg-word img{ width:300px; max-width:100%; height:auto; display:block; }
  .brand-panel h1{ font-size:40px; line-height:1.25; font-weight:800; margin:0 0 14px; color:#fff; letter-spacing:0; }
  .brand-panel p{ font-size:16px; color:#BFD3F0; max-width:360px; line-height:1.8; margin:0; }
  .lg-today{ display:flex; flex-direction:column; gap:2px; padding-inline-start:14px; border-inline-start:3px solid #2FC1B2; font-size:14px; color:#BFD3F0; }
  .lg-today b{ font-family:'Tajawal', sans-serif; font-size:20px; color:#fff; font-weight:800; }
  .login-panel{
    display:flex; align-items:center; justify-content:center; padding:48px 40px; background:#fff;
  }
  .login-card{ width:100%; max-width:380px; display:flex; flex-direction:column; }
  /* حقوق المنصة أسفل الصفحات */
  .site-foot, .login-foot{ display:flex; align-items:center; justify-content:center; gap:8px; color:#9AA3B2; font-size:12px; font-weight:600; }
  .site-foot{ padding:6px 16px 22px; }
  .site-foot img, .login-foot img{ height:16px; width:auto; opacity:.5; }
  .login-panel{ position:relative; }
  .login-foot{ position:absolute; left:0; right:0; bottom:18px; }
  @media print{ .site-foot, .login-foot{ display:none !important; } }
  .login-card h2{ font-size:28px; font-weight:800; color:var(--navy, #0F2447); margin:0 0 6px; }
  .login-card p.sub{ color:var(--slate); font-size:14.5px; margin:0 0 30px; }
  .login-card .field label{ font-weight:600; color:#3A4558; }
  .login-card input{ font-size:15.5px; padding:14px 16px; border-radius:12px; text-align:right; }
  .login-card input::placeholder{ text-align:right; }
  .login-card input:focus{ border-color:#2353A5; box-shadow:0 0 0 4px rgba(35,83,165,0.14); outline:none; }
  .lg-pass{ position:relative; }
  .lg-pass input{ padding-left:52px; }
  .lg-eye{ position:absolute; left:6px; top:50%; transform:translateY(-50%); width:40px; height:40px; border:0; border-radius:10px; background:transparent; color:#7A8496; display:flex; align-items:center; justify-content:center; padding:0; cursor:pointer; }
  .lg-eye:hover{ background:#EEF1F6; color:#2353A5; }
  .lg-eye[aria-pressed="true"]{ color:#2353A5; }
  .lg-eye:focus-visible, .lg-link:focus-visible{ outline:2px solid #2353A5; outline-offset:2px; }
  .login-card .btn-primary{ margin-top:8px; padding:15px; font-size:16px; border-radius:12px; }
  .login-card .btn-primary:disabled{ opacity:.7; cursor:wait; }
  .lg-link{ align-self:center; margin-top:18px; background:none; border:0; padding:6px 10px; border-radius:8px; color:#2353A5; font-weight:600; font-size:14px; cursor:pointer; font-family:inherit; width:auto; }
  .lg-link:hover{ background:#EEF4FF; }
  .field{ margin-bottom:16px; }
  .field label{ display:block; font-size:13px; color:var(--slate); margin-bottom:6px; font-weight:500; }
  input{
    width:100%; padding:13px 14px; border:1.5px solid var(--border); border-radius:10px;
    font-size:15px; font-family:inherit; transition:0.15s; background:var(--sand);
  }
  input:focus{ outline:none; border-color:var(--meadow); background:#fff; box-shadow:0 0 0 3px var(--meadow-light); }
  button{
    border:none; border-radius:10px; font-family:inherit; cursor:pointer; transition:0.15s;
  }
  .btn-primary{
    width:100%; padding:12px; background:var(--meadow); color:#fff; font-size:14px; font-weight:700;
  }
  .btn-primary:hover{ background:var(--meadow-dark); box-shadow:var(--shadow-sm); }
  .btn-secondary{ background:var(--sand); color:var(--ink); border:1.5px solid var(--border); font-weight:600; }
  .btn-secondary:hover{ background:#EAEEF4; }
  /* توحيد حجم الأزرار الثانوية (اعتماد/رفض/حذف/إعادة تعيين...) بحجم واحد متناسق */
  button[style*="width:auto"]{ padding:8px 14px !important; font-size:13px !important; border-radius:8px !important; font-weight:600; }
  .error-msg{ color:var(--danger); background:var(--danger-light); padding:10px 14px; border-radius:8px; font-size:13px; margin-bottom:14px; display:none; }

  /* ===== هيكل اللوحة (اتجاه «مساحات العمل»): شريط علوي أبيض + أزرار مساحات + خلفية دافئة ===== */
  #dashboard-screen{ min-height:100vh; background:var(--canvas); }
  #dashboard-screen.hidden{ display:none; }
  .app-body{ min-width:0; display:flex; flex-direction:column; min-height:100vh; }
  .topnav{ position:sticky; top:0; z-index:40; background:rgba(255,255,255,0.96); backdrop-filter:blur(8px); border-bottom:1px solid var(--border); }
  .tn-inner{ max-width:1320px; margin:0 auto; padding:10px 32px; display:flex; align-items:center; gap:16px; }
  .topnav .brand{ display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); flex-shrink:0; }
  .topnav .brand img{ height:38px; width:auto; }
  .topnav .brand span{ font-family:'Tajawal'; font-weight:800; font-size:15.5px; color:var(--meadow-dark); white-space:nowrap; }
  .tn-pills{ flex:1; display:flex; align-items:center; justify-content:center; gap:4px; min-width:0; }
  .tn-pill{ padding:9px 16px; border-radius:99px; color:var(--ink); text-decoration:none; font-size:14.5px; font-weight:500; white-space:nowrap; transition:background 0.12s, color 0.12s; }
  .tn-pill:hover{ background:var(--sand); }
  .tn-pill.active{ background:var(--meadow-dark); color:#fff; font-weight:600; }
  .tn-pill:focus-visible{ outline:2px solid var(--teal); outline-offset:2px; }
  .tn-actions{ display:flex; align-items:center; gap:8px; flex-shrink:0; }
  .tn-search{ height:44px; display:flex; align-items:center; gap:8px; padding:0 14px; border-radius:99px; background:#fff; border:1px solid var(--border); color:var(--slate); font-family:inherit; font-size:14px; cursor:pointer; }
  .tn-search:hover{ border-color:#C3CCDB; color:var(--ink); }
  .tn-user{ position:relative; }
  .tn-avatar{ width:44px; height:44px; border-radius:50%; background:var(--teal-light); color:#0B5866; display:flex; align-items:center; justify-content:center; font-family:'Tajawal'; font-weight:800; font-size:16px; padding:0; }
  .tn-avatar:hover, .tn-avatar[aria-expanded="true"]{ box-shadow:0 0 0 3px #D3EEF2; }
  .user-menu{ position:absolute; top:calc(100% + 8px); left:0; min-width:230px; background:#fff; border:1px solid var(--border); border-radius:14px; box-shadow:0 18px 40px rgba(27,36,51,0.14); padding:6px; z-index:60; display:flex; flex-direction:column; }
  .user-menu .um-head{ padding:10px 12px 12px; border-bottom:1px solid #EEF1F6; margin-bottom:4px; }
  .user-menu .name{ font-size:14px; font-weight:700; color:var(--ink); }
  .user-menu .role{ font-size:12px; color:var(--slate); margin-top:2px; }
  .um-item{ display:flex; align-items:center; gap:10px; width:100%; padding:10px 12px; border-radius:10px; background:transparent; color:var(--ink); font-size:13.5px; font-weight:500; text-align:right; }
  .um-item:hover{ background:var(--sand); }
  .um-item.um-danger{ color:var(--danger); }
  .um-item.um-danger:hover{ background:var(--danger-light); }
  kbd{ font-family:inherit; font-size:11.5px; border:1px solid var(--border); border-radius:6px; padding:2px 7px; color:var(--slate); background:var(--sand); direction:ltr; white-space:nowrap; }

  /* أزرار "رجوع للرئيسية" القديمة داخل الأقسام: الشريط العلوي ومسار التنقل يغنون عنها
     (أزرار الرجوع الداخلية مثل "رجوع للقائمة" تبقى ظاهرة) */
  #dashboard-screen .back-link[id^="back-to-tiles"]{ display:none; }

  @media (max-width: 1100px){ .tn-search span, .tn-search kbd{ display:none; } .tn-search{ width:44px; padding:0; justify-content:center; } .tn-inner{ padding:10px 20px; } }
  @media (max-width: 899px){
    .tn-inner{ flex-wrap:wrap; padding:8px 14px 0; gap:8px 10px; }
    .topnav .brand{ flex:1; }
    .topnav .brand img{ height:32px; }
    .tn-pills{ order:3; flex:1 0 100%; justify-content:flex-start; overflow-x:auto; scrollbar-width:none; padding:2px 0 10px; margin:0 -14px; padding-inline:14px; }
    .tn-pills::-webkit-scrollbar{ display:none; }
    .tn-pill{ padding:8px 14px; font-size:14px; background:var(--sand); }
    .tn-pill.active{ background:var(--meadow-dark); }
  }

  /* ===== البحث الشامل ===== */
  .search-modal{ position:fixed; inset:0; z-index:200; background:rgba(11,27,51,0.45); display:flex; align-items:flex-start; justify-content:center; padding:10vh 16px 16px; }
  .search-modal.hidden{ display:none; }
  .search-box{ width:100%; max-width:640px; background:#fff; border-radius:16px; box-shadow:0 24px 60px rgba(11,27,51,0.3); overflow:hidden; display:flex; flex-direction:column; max-height:76vh; }
  .search-input-row{ display:flex; align-items:center; gap:10px; padding:0 16px; border-bottom:1px solid var(--border); color:var(--slate); }
  .search-input-row input{ flex:1; border:0 !important; outline:none; box-shadow:none !important; font-family:inherit; font-size:16px; padding:18px 0 !important; margin:0 !important; background:transparent; color:var(--ink); }
  .search-results{ overflow-y:auto; padding:8px; }
  .search-group-label{ font-size:12px; font-weight:700; color:var(--slate); padding:10px 10px 4px; }
  .search-item{ display:flex; align-items:center; gap:12px; width:100%; padding:10px; border-radius:10px; background:transparent; border:0; text-align:right; font-family:inherit; color:var(--ink); cursor:pointer; }
  .search-item:hover, .search-item.active{ background:var(--meadow-light); }
  .search-item .si-ic{ width:34px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center; flex-shrink:0; background:var(--sand); color:var(--meadow-dark); font-weight:800; font-size:13px; }
  .search-item .si-ic svg{ width:17px; height:17px; }
  .search-item .si-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
  .search-item .si-title{ font-size:14px; font-weight:600; }
  .search-item .si-sub{ font-size:12px; color:var(--slate); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .search-empty{ padding:24px; text-align:center; color:var(--slate); font-size:13.5px; }
  .search-card{ padding:16px; display:flex; flex-direction:column; gap:12px; }
  .search-card .sc-head{ display:flex; align-items:center; gap:12px; }
  .search-card .sc-actions{ display:flex; flex-wrap:wrap; gap:8px; }

  /* ===== الرئيسية الجديدة ===== */
  .home-hero{ margin-bottom:18px; }
  .home-hero h1{ font-size:28px; font-weight:900; color:var(--meadow-dark); margin:0; }
  .home-hero p{ color:var(--slate); font-size:14.5px; margin:4px 0 0; }
  .home-quick{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
  .home-quick:empty{ display:none; }
  .quick-chip{ display:inline-flex; align-items:center; gap:8px; min-height:40px; padding:8px 14px; border-radius:99px; background:#fff; border:1px solid var(--border); color:var(--ink); font-family:inherit; font-size:13.5px; font-weight:600; cursor:pointer; text-decoration:none; }
  .quick-chip:hover{ border-color:var(--meadow); color:var(--meadow); }
  .quick-chip .ic{ width:16px; height:16px; }
  .home-section-title{ font-size:16px; font-weight:700; color:var(--meadow-dark); margin:26px 0 12px; }
  .home-block:empty{ display:none; }
  .kpi-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:12px; margin-bottom:18px; }
  .kpi{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:14px 16px; display:flex; flex-direction:column; gap:4px; }
  .kpi .k-label{ font-size:12.5px; color:var(--slate); }
  .kpi .k-value{ font-family:'Tajawal'; font-size:28px; font-weight:900; color:var(--meadow-dark); line-height:1.15; }
  .kpi .k-note{ font-size:12px; color:var(--slate); }
  .kpi .k-bar{ height:6px; border-radius:99px; background:#EAEEF4; overflow:hidden; margin-top:4px; }
  .kpi .k-bar > div{ height:100%; background:var(--teal); border-radius:99px; }
  .home-cols{ display:flex; flex-wrap:wrap; gap:16px; align-items:flex-start; }
  .home-card{ background:#fff; border:1px solid var(--border); border-radius:16px; padding:16px 18px; display:flex; flex-direction:column; gap:10px; min-width:0; }
  .home-card h3{ margin:0; font-size:16px; font-weight:700; color:var(--meadow-dark); }
  .attn{ display:flex; align-items:center; gap:12px; padding:11px 12px; border-radius:12px; background:#F7F9FC; }
  .attn .bar{ width:6px; align-self:stretch; min-height:34px; border-radius:99px; flex-shrink:0; }
  .attn .txt{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
  .attn .txt b{ font-size:14px; font-weight:600; }
  .attn .txt span{ font-size:12px; color:var(--slate); }
  .attn button{ flex-shrink:0; border:0; border-radius:10px; background:var(--meadow-dark); color:#fff; font-family:inherit; font-size:13px; font-weight:600; padding:9px 14px; cursor:pointer; }
  .attn button.ghost{ background:#fff; color:var(--ink); border:1px solid var(--border); }
  .today-row{ display:flex; gap:12px; align-items:baseline; font-size:14px; padding:4px 0; }
  .today-row .t{ width:70px; flex-shrink:0; font-size:12.5px; color:var(--slate); }
  .today-row button{ background:none; border:0; padding:0; font:inherit; color:var(--meadow); font-weight:600; cursor:pointer; }
  .ws-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(250px, 1fr)); gap:16px; margin-bottom:24px; }
  .ws-card{ background:#fff; border:1px solid var(--border); border-radius:20px; padding:20px 22px; display:flex; flex-direction:column; gap:14px; transition:box-shadow 0.15s, border-color 0.15s; }
  .ws-card:hover{ border-color:#C9D3E3; box-shadow:0 10px 28px rgba(27,36,51,0.06); }
  .ws-card .ws-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; text-decoration:none; }
  .ws-card .ws-title{ font-family:'Tajawal'; font-size:24px; font-weight:800; color:var(--meadow-dark); }
  .ws-card .ws-head:hover .ws-title{ color:var(--meadow); }
  .ws-card .ws-ic, .wsp-ic, .wsp-card-ic{ width:44px; height:44px; border-radius:14px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .ws-card .ws-ic .ic, .wsp-card-ic svg{ width:22px; height:22px; }
  .ws-links{ display:flex; flex-wrap:wrap; gap:6px; }
  .ws-links a{ font-size:13px; padding:6px 11px; border-radius:99px; background:var(--sand); color:#4A5568; text-decoration:none; font-weight:500; }
  .ws-links a:hover{ background:var(--meadow-light); color:var(--meadow); }
  .ws-status{ font-size:13px; font-weight:600; border-radius:10px; padding:8px 10px; line-height:1.5; margin-top:auto; }
  .ws-status.is-loading{ min-height:36px; background:linear-gradient(90deg, #EEF1F6 25%, #F7F9FC 50%, #EEF1F6 75%); background-size:200% 100%; animation:wsShimmer 1.2s infinite linear; }
  @keyframes wsShimmer{ from{ background-position:200% 0; } to{ background-position:-200% 0; } }
  .home-section-title.ws-first{ display:none; }
  /* صفحة مساحة العمل */
  .wsp-head{ display:flex; align-items:flex-start; gap:16px; margin:6px 0 24px; }
  .wsp-ic{ width:60px; height:60px; border-radius:18px; }
  .wsp-ic .ic{ width:28px; height:28px; }
  .wsp-titles{ flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; align-items:flex-start; }
  .wsp-titles .crumb{ font-size:12.5px; color:var(--slate); }
  .wsp-titles .crumb a{ color:var(--meadow); text-decoration:none; }
  .wsp-titles h1{ font-size:34px; font-weight:900; color:var(--meadow-dark); }
  .wsp-titles .ws-status{ margin-top:2px; }
  .wsp-titles .ws-status.is-loading{ width:260px; }
  .wsp-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:14px; }
  .wsp-card{ display:flex; align-items:center; gap:14px; background:#fff; border:1px solid var(--border); border-radius:18px; padding:18px; text-decoration:none; color:var(--ink); transition:box-shadow 0.15s, border-color 0.15s, transform 0.15s; }
  .wsp-card:hover{ border-color:#C9D3E3; box-shadow:0 10px 28px rgba(27,36,51,0.07); transform:translateY(-1px); }
  .wsp-card:focus-visible{ outline:2px solid var(--teal); outline-offset:2px; }
  .wsp-card-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
  .wsp-card-main b{ font-size:16px; font-weight:700; color:var(--meadow-dark); }
  .wsp-card-main span{ font-size:13px; color:var(--slate); line-height:1.6; }
  .wsp-arrow{ color:#A3AEC2; flex-shrink:0; }
  @media (max-width: 899px){ .wsp-titles h1{ font-size:26px; } .wsp-ic{ width:50px; height:50px; } .ws-card .ws-title{ font-size:21px; } }
  .day-hero{ background:var(--meadow-dark); color:#fff; border-radius:18px; padding:18px 20px; display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
  .day-hero .dh-label{ font-size:13px; color:#B9C6DE; }
  .day-hero .dh-big{ font-family:'Tajawal'; font-size:24px; font-weight:800; }
  .day-hero .dh-actions{ display:flex; flex-wrap:wrap; gap:8px; margin-top:6px; }
  .day-hero .dh-actions button{ border:0; border-radius:10px; padding:10px 14px; font-family:inherit; font-size:13.5px; font-weight:600; cursor:pointer; background:#fff; color:var(--meadow-dark); }
  .day-hero .dh-actions button.alt{ background:rgba(255,255,255,0.14); color:#fff; }
  .home-hero.hero-centered{ text-align:center; margin:12px 0 16px; }
  .home-hero.hero-centered h1{ font-size:32px; }
  #home-bigsearch:empty{ display:none; }
  .big-search{
    display:flex; align-items:center; gap:12px; width:100%; max-width:680px; height:58px; margin:0 auto 14px; padding:0 18px;
    background:#fff; border:1.5px solid var(--meadow-dark); border-radius:16px; box-shadow:0 10px 30px rgba(15,36,71,0.08);
    font-family:inherit; font-size:16px; color:var(--slate); cursor:text; text-align:right;
  }
  .big-search svg{ color:var(--meadow-dark); flex-shrink:0; }
  .big-search span{ flex:1; }
  .home-quick.quick-centered{ justify-content:center; margin-bottom:26px; }
  .cmd-table{ width:100%; border-collapse:collapse; font-size:13.5px; min-width:420px; }
  .cmd-table th{ font-size:12px; color:var(--slate); font-weight:600; padding:7px 8px; text-align:center; }
  .cmd-table td{ padding:7px 8px; text-align:center; border-top:1px solid #EEF1F6; }
  .cmd-table .al-r{ text-align:right; }
  .cmd-table .ok{ color:#1F6A3C; font-weight:800; }
  .cmd-table .miss{ color:#9B2F28; font-weight:800; }
  .cmd-bar{ height:8px; background:#EAEEF4; border-radius:99px; overflow:hidden; }
  .cmd-bar > div{ height:100%; background:var(--teal); border-radius:99px; }
  .cmd-link{ background:none; border:0; padding:4px 0; font-family:inherit; font-size:13px; font-weight:600; color:var(--meadow); cursor:pointer; }
  .cmd-chart{ display:flex; align-items:flex-end; gap:10px; height:150px; padding-top:4px; }
  .cc-col{ flex:1; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:5px; min-width:0; }
  .cc-bar{ width:100%; max-width:46px; background:var(--teal); border-radius:6px 6px 0 0; }
  .cc-col:last-child .cc-bar{ background:var(--meadow-dark); }
  .cc-val{ font-size:11.5px; font-weight:700; color:var(--ink); }
  .cc-lbl{ font-size:11.5px; color:var(--slate); }
  .page-header .crumb{ font-size:12px; color:var(--slate); margin-bottom:2px; }
  .page-header .crumb a{ color:var(--meadow); text-decoration:none; }
  @media (max-width: 899px){ .main{ padding:18px 14px !important; } .home-hero h1{ font-size:23px; } }

  .main{ flex:1; padding:24px 32px 40px; min-width:0; max-width:1320px; width:100%; margin-inline:auto; box-sizing:border-box; }




  .tiles{ display:grid; grid-template-columns:repeat(auto-fit, minmax(230px,1fr)); gap:18px; }
  .tile{
    background:#fff; border-radius:var(--radius); padding:22px; border:1px solid var(--border);
    cursor:pointer; transition:0.18s; position:relative; box-shadow:var(--shadow-sm);
  }
  .tile:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); border-color:transparent; }








  .tile h3{ font-size:15px; margin-bottom:4px; font-weight:700; }
  .tile p{ font-size:12.5px; color:var(--slate); margin:0; }
  .tile .arrow{ position:absolute; left:20px; top:22px; color:#D5D8DE; }

  .page-header{ display:flex; align-items:center; gap:12px; margin-bottom:20px; }
  .ic-diamond{
    width:38px; height:38px; border-radius:11px;
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
    background:var(--meadow-light); color:var(--meadow);
  }
  .ic-diamond svg{ width:18px; height:18px; }
  .page-header h2{ font-size:24px; margin:0; font-weight:800; color:var(--meadow-dark); }
  .page-header p{ color:var(--slate); font-size:13.5px; margin:2px 0 0; }
  .diamond-teal{ background:var(--teal-light); color:var(--teal); }
  .diamond-gold{ background:var(--gold-light); color:var(--gold); }
  .diamond-purple{ background:var(--purple-light); color:var(--purple); }
  .diamond-navy{ background:var(--meadow-light); color:var(--meadow-dark); }
  .diamond-green{ background:var(--green-light); color:var(--green); }

  .panel{ background:#fff; border-radius:var(--radius); padding:26px; border:1px solid var(--border); box-shadow:var(--shadow-sm); }
  .back-link{ color:var(--meadow); cursor:pointer; font-size:14px; margin-bottom:16px; display:inline-flex; align-items:center; gap:6px; font-weight:600; }
  .back-link:hover{ color:var(--meadow-dark); }

  .stat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:26px; }
  .stat-card{
    background:#fff; border-radius:12px; padding:18px; border:1px solid var(--border);
    box-shadow:var(--shadow-sm); border-top:3px solid var(--meadow); transition:0.18s;
  }
  .stat-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-2px); }
  /* تلوين تلقائي لشريط أعلى بطاقات الإحصائيات (نفس أسلوب تدوير الألوان بـ .tile) - أي شاشة تستخدم
     .stat-card تاخذ التنويع تلقائيًا بدون ما تحتاج تغيير بالكود اللي يولّدها */
  .stat-card:nth-of-type(4n+1){ border-top-color:var(--meadow); }
  .stat-card:nth-of-type(4n+2){ border-top-color:var(--green); }
  .stat-card:nth-of-type(4n+3){ border-top-color:var(--gold); }
  .stat-card:nth-of-type(4n+4){ border-top-color:var(--purple); }
  .stat-card .label{ font-size:12.5px; color:var(--slate); margin-bottom:6px; font-weight:600; }
  .stat-card .value{ font-size:28px; font-weight:800; font-family:'Tajawal'; color:var(--ink); }

  /* نسخة مصغّرة من stat-card - لإحصائيات ثانوية تحت الصناديق الرئيسية بدون ما تنافسها بصريًا */
  .stat-card.compact{ padding:12px 14px; border-radius:10px; }
  .stat-card.compact .label{ font-size:11.5px; margin-bottom:4px; }
  .stat-card.compact .value{ font-size:17px; }
  .stat-card.compact.bud-stat .icon-chip{ width:30px; height:30px; }
  .stat-card.compact.bud-stat .icon-chip svg{ width:14px; height:14px; }
  .stat-grid.compact-grid{ gap:10px; margin-bottom:22px; }

  /* جداول بسيطة لتقارير الاختبارات (وأي جدول بيانات مشابه) */
  .er-table{ width:100%; border-collapse:collapse; font-size:12.5px; }
  .er-table th, .er-table td{ padding:7px 10px; text-align:center; border-bottom:1px solid #ECEAE1; }
  .er-table th{ background:var(--sand); font-weight:700; color:var(--slate); font-size:11.5px; }
  .er-table.small th, .er-table.small td{ padding:4px 6px; font-size:11.5px; }
  .er-key-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:8px; }
  .er-key-item{ display:flex; flex-direction:column; gap:4px; }
  .er-key-item label{ font-size:11.5px; color:var(--slate); font-weight:600; }
  .er-key-item select{ padding:7px 8px; }

  /* ===== الخطة الأسبوعية: هيدر متدرّج + جدول مواد بوسوم ملوّنة ===== */





  .wp-grade-select{
    background:rgba(255,255,255,.16) !important; border:1px solid rgba(255,255,255,.32) !important; color:#fff !important;
    font-weight:700; margin:0 !important; max-width:200px;
  }
  .wp-grade-select option{ color:#16233A; }





  .wp-table-card{ background:#fff; border:1px solid var(--border); border-radius:14px; overflow:hidden; margin-bottom:12px; }
  table.wp-table{ width:100%; border-collapse:collapse; font-size:12.5px; }
  table.wp-table td{ padding:13px; vertical-align:top; border-bottom:1px solid var(--border); }
  table.wp-table tr:last-child td{ border-bottom:none; }
  .wp-subj-cell{ width:120px; font-weight:800; color:var(--ink); background:var(--sand); }
  .wp-tag{ display:inline-block; font-size:10px; font-weight:700; padding:2px 9px; border-radius:20px; margin-inline-end:6px; }
  .wp-tag-lesson{ background:var(--meadow-light); color:var(--meadow); }
  .wp-tag-hw{ background:var(--gold-light); color:var(--gold); }
  .wp-tag-test{ background:var(--danger-light); color:var(--danger); }
  .wp-topic-text{ font-size:12.5px; line-height:1.65; margin:6px 0 0; }
  .wp-no-hw{ color:var(--slate); font-size:11.5px; margin-top:6px; }
  .wp-row-actions{ display:flex; gap:6px; margin-top:10px; }
  .wp-row-actions button{ width:auto; font-size:11.5px; padding:5px 12px; }

  .er-items-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
  @media (max-width:1200px){ .er-items-grid{ grid-template-columns:repeat(3,1fr); } }
  @media (max-width:820px){ .er-items-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:820px){ .as-grid{ grid-template-columns:1fr !important; } }
  @media (max-width:520px){ .er-items-grid{ grid-template-columns:1fr; } }
  .er-choice-list{ display:flex; flex-direction:column; gap:9px; }
  .er-choice-row{ font-size:12px; }
  .er-choice-label{ display:flex; align-items:center; justify-content:space-between; margin-bottom:4px; color:var(--ink); gap:6px; }
  .er-choice-bar{ background:var(--sand); border-radius:5px; height:8px; overflow:hidden; }
  .er-choice-bar-fill{ height:100%; border-radius:5px; }

  .er-dist-layout{ display:grid; grid-template-columns:1.15fr 1fr; gap:18px; align-items:start; }
  @media (max-width:900px){ .er-dist-layout{ grid-template-columns:1fr; } }
  .er-chart-card{ margin:0; }
  .er-chart-wrap{ position:relative; height:270px; }
  .er-chart-wrap canvas{ width:100% !important; height:100% !important; }

  .form-card{ background:#fff; border-radius:12px; padding:20px; margin-bottom:26px; border:1px solid var(--border); box-shadow:var(--shadow-sm); }
  .form-card h4{ font-size:15px; margin-bottom:14px; font-weight:700; }
  select, textarea{
    width:100%; padding:11px 12px; border:1.5px solid var(--border); border-radius:10px;
    font-size:14px; font-family:inherit; margin-bottom:10px; background:#fff;
  }
  select:focus, textarea:focus{ outline:none; border-color:var(--meadow); box-shadow:0 0 0 3px var(--meadow-light); }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; align-items:start; }
  .form-row button, .form-row .btn-primary{ width:auto !important; justify-self:start; }

  .emp-row{
    display:flex; justify-content:space-between; align-items:center; gap:12px;
    padding:12px 16px; border:1px solid var(--border); border-radius:12px; margin-bottom:10px;
    background:#fff; transition:0.15s;
  }
  .emp-row:hover{ box-shadow:var(--shadow-sm); }
  .emp-row .avatar-circle{
    width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-weight:700; font-size:13px; flex-shrink:0; background:var(--teal-light); color:var(--teal);
  }
  .emp-row .info{ flex:1; min-width:0; }
  .emp-row .name{ font-weight:700; font-size:14px; }
  .emp-row .title{ font-size:12px; color:var(--slate); margin-top:2px; }
  .text-action-btn{
    width:auto; background:transparent; color:var(--teal); border:none; cursor:pointer;
    padding:6px 4px; font-size:13px; font-weight:600; flex-shrink:0; font-family:inherit;
  }
  .badge{ font-size:10.5px; padding:3px 10px; border-radius:20px; flex-shrink:0; white-space:nowrap; font-weight:600; }
  .badge-meadow{ background:var(--meadow-light); color:var(--meadow); }
  .badge-gold{ background:var(--gold-light); color:var(--gold); }
  .badge-danger{ background:var(--danger-light); color:var(--danger); }
  .badge-gray{ background:var(--sand); color:var(--slate); }
  .badge-green{ background:var(--green-light); color:var(--green); }
  .badge-purple{ background:var(--purple-light); color:var(--purple); }

  /* ===== المهام الإدارية (كالندر المدير/الوكيل الأسبوعي - لوحة مصفوفة أيزنهاور) ===== */




  .at-week-strip-wrap{ margin-bottom:18px; }
  .at-week-strip{ display:flex; gap:6px; overflow-x:auto; padding:2px 2px 8px; scrollbar-width:thin; }
  .at-week-pill{
    flex-shrink:0; min-width:40px; height:40px; border-radius:12px; border:1px solid var(--border);
    background:#fff; color:var(--ink); font-size:12.5px; font-weight:700; display:flex; align-items:center;
    justify-content:center; padding:0 8px; transition:0.15s; cursor:pointer;
  }
  .at-week-pill:hover{ box-shadow:var(--shadow-sm); }
  .at-week-pill.active{ background:var(--purple); border-color:var(--purple); color:#fff; }

  .at-stat-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:20px; }

  .at-add-card{
    background:#fff; border:1px solid var(--border); border-radius:16px; padding:20px; margin-bottom:22px; box-shadow:var(--shadow-sm);
  }
  .at-add-head{ display:flex; align-items:center; gap:10px; margin-bottom:16px; }
  .at-add-head .icon-chip{ width:36px; height:36px; border-radius:10px; background:var(--purple-light); color:var(--purple); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .at-add-head .icon-chip svg{ width:17px; height:17px; }
  .at-add-head h4{ margin:0; font-size:14.5px; font-weight:700; }
  .at-field-label{ font-size:11.5px; color:var(--slate); display:block; margin-bottom:6px; font-weight:600; }
  .at-add-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }

  .at-priority-grid{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .at-priority-btn{
    display:flex; flex-direction:column; align-items:flex-start; gap:2px; text-align:right;
    border:1.5px solid var(--border); border-radius:10px; padding:8px 10px; background:#fff; cursor:pointer;
    font-family:inherit; transition:0.15s;
  }
  .at-priority-btn .t{ font-size:11.5px; font-weight:700; }
  .at-priority-btn .s{ font-size:9.5px; color:var(--slate); }
  .at-priority-btn:hover{ box-shadow:var(--shadow-sm); }
  .at-priority-btn[data-pr="important_urgent"].active{ background:var(--danger-light); border-color:var(--danger); }
  .at-priority-btn[data-pr="important_urgent"].active .t{ color:var(--danger); }
  .at-priority-btn[data-pr="important_not_urgent"].active{ background:var(--gold-light); border-color:var(--gold); }
  .at-priority-btn[data-pr="important_not_urgent"].active .t{ color:var(--gold); }
  .at-priority-btn[data-pr="urgent_not_important"].active{ background:var(--purple-light); border-color:var(--purple); }
  .at-priority-btn[data-pr="urgent_not_important"].active .t{ color:var(--purple); }
  .at-priority-btn[data-pr="not_important_not_urgent"].active{ background:var(--sand); border-color:var(--slate); }

  .at-add-submit-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:6px; }

  .at-task-card{
    background:#fff; border-radius:12px; padding:13px 14px; margin-bottom:10px; box-shadow:var(--shadow-sm);
    border-inline-start:3px solid var(--border); transition:0.15s;
  }
  .at-task-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-1px); }
  .at-task-card.pr-important_urgent{ border-inline-start-color:var(--danger); }
  .at-task-card.pr-important_not_urgent{ border-inline-start-color:var(--gold); }
  .at-task-card.pr-urgent_not_important{ border-inline-start-color:var(--purple); }
  .at-task-card.pr-not_important_not_urgent{ border-inline-start-color:var(--slate); }
  .at-task-card.status-done{ opacity:0.6; }
  .at-task-card.status-done h6{ text-decoration:line-through; }
  .at-task-card h6{ margin:0 0 5px; font-size:14px; font-weight:700; line-height:1.4; }
  .at-task-card .meta{ font-size:11.5px; color:var(--slate); margin:0; }
  .at-task-card .badge-row{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:9px; }
  .at-task-card .note{
    display:flex; align-items:flex-start; gap:7px; font-size:11.5px; color:var(--ink); background:var(--sand);
    border-radius:8px; padding:8px 10px; margin-top:9px; line-height:1.6;
  }
  .at-task-card .note svg{ flex-shrink:0; margin-top:1px; color:var(--slate); }
  .at-task-card .note b{ font-weight:700; }
  .at-task-card .foot-row{ display:flex; align-items:center; gap:6px; margin-top:10px; }
  .at-status-toggle{
    display:inline-flex; align-items:center; gap:5px; border:none; cursor:pointer; font-family:inherit;
    font-size:10.5px; font-weight:700; padding:4px 10px; border-radius:20px; transition:0.15s;
  }
  .at-status-toggle.pending{ background:var(--sand); color:var(--slate); }
  .at-status-toggle.done{ background:var(--green-light); color:var(--green); }

  /* ===== بيانات التواصل (أرقام كل مدرسة لصفحة ولي الأمر) ===== */
  .sc-add-card{
    background:#fff; border:1px solid var(--border); border-radius:16px; padding:20px; margin-bottom:22px; box-shadow:var(--shadow-sm);
  }
  .sc-add-head{ display:flex; align-items:center; gap:10px; margin-bottom:16px; }
  .sc-add-head .icon-chip{ width:36px; height:36px; border-radius:10px; background:var(--green-light); color:var(--green); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .sc-add-head .icon-chip svg{ width:17px; height:17px; }
  .sc-add-head h4{ margin:0; font-size:14.5px; font-weight:700; }

  .sc-type-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:6px; }
  .sc-type-btn{
    display:flex; align-items:center; justify-content:center; text-align:center;
    border:1.5px solid var(--border); border-radius:10px; padding:10px 8px; background:#fff; cursor:pointer;
    font-family:inherit; transition:0.15s;
  }
  .sc-type-btn .t{ font-size:11.5px; font-weight:700; }
  .sc-type-btn:hover{ box-shadow:var(--shadow-sm); }
  .sc-type-btn.active{ background:var(--green-light); border-color:var(--green); }
  .sc-type-btn.active .t{ color:var(--green); }

  .sc-group-label{ font-size:12px; font-weight:700; color:var(--slate); margin:20px 2px 10px; }
  .sc-group-label:first-of-type{ margin-top:4px; }

  .sc-tile{
    display:flex; align-items:center; gap:12px; background:#fff; border-radius:12px; padding:12px 14px;
    margin-bottom:9px; box-shadow:var(--shadow-sm); transition:0.15s;
  }
  .sc-tile:hover{ box-shadow:var(--shadow-md); }
  .sc-tile .avatar{
    width:38px; height:38px; border-radius:50%; background:var(--green-light); color:var(--green); flex-shrink:0;
    display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px;
  }
  .sc-tile .info{ flex:1; min-width:0; }
  .sc-tile .role{ font-size:13px; font-weight:700; margin:0; }
  .sc-tile .name, .sc-tile .sub{ font-size:11.5px; color:var(--slate); margin:2px 0 0; }
  .sc-tile .meta-row{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:6px; }
  .sc-tile .phone-chip{ font-size:11px; color:var(--ink); background:var(--sand); border-radius:20px; padding:3px 10px; direction:ltr; display:inline-block; }
  .sc-tile .foot{ display:flex; align-items:center; gap:6px; flex-shrink:0; }
  .sc-tile .sc-edit-btn, .sc-tile .sc-delete-btn{
    width:30px; height:30px; border-radius:9px; border:1px solid var(--border); background:#fff; cursor:pointer;
    display:flex; align-items:center; justify-content:center; color:var(--slate); transition:0.15s;
  }
  .sc-tile .sc-edit-btn:hover{ background:var(--purple-light); color:var(--purple); border-color:var(--purple); }
  .sc-tile .sc-delete-btn:hover{ background:var(--danger-light); color:var(--danger); border-color:var(--danger); }
  .at-delete-btn{
    width:26px; height:26px; flex-shrink:0; padding:0; margin-inline-start:auto; background:transparent; color:var(--slate);
    border-radius:8px; display:inline-flex; align-items:center; justify-content:center; border:none; cursor:pointer; transition:0.15s;
  }
  .at-delete-btn:hover{ background:var(--danger-light); color:var(--danger); }

  @media (max-width: 900px){
    .at-add-row{ grid-template-columns:1fr; }
    .at-stat-row{ grid-template-columns:1fr 1fr 1fr; }
  }
  .exam-var-chip{ display:inline-block; background:var(--meadow-light); color:var(--meadow); font-size:12.5px; font-weight:600; padding:5px 12px; border-radius:20px; cursor:grab; user-select:none; border:1px dashed var(--meadow); direction:ltr; }
  .exam-var-chip:active{ cursor:grabbing; }
  .ring-wrap{ display:flex; align-items:center; gap:10px; }
  .ring-score{ font-family:'Tajawal'; font-weight:700; font-size:15px; }











  .placeholder{ text-align:center; padding:60px 20px; color:var(--slate); }
  .placeholder .ic-big{ margin-bottom:14px; color:#D5D8DE; }

  /* ===== داشبورد دليل الخطة التشغيلية (مرحلة أولى: قسم الخطة التشغيلية كنموذج) ===== */
  .op-stat-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:20px; }
  .op-stat-tile{
    background:#fff; border:1px solid var(--border); border-radius:12px; padding:16px;
    box-shadow:var(--shadow-sm); position:relative; overflow:hidden;
  }
  .op-stat-tile::before{ content:''; position:absolute; inset-inline-start:0; top:0; bottom:0; width:4px; background:var(--op-accent, var(--meadow)); }
  .op-stat-tile .lbl{ font-size:11.5px; color:var(--slate); margin-bottom:6px; font-weight:600; }
  .op-stat-tile .val{ font-size:24px; font-weight:800; font-family:'Tajawal'; }
  .op-stat-tile .sub{ font-size:10.5px; color:var(--slate); margin-top:3px; }

  .op-bar-track{ height:6px; border-radius:4px; background:var(--sand); overflow:hidden; flex:1; }
  .op-bar-fill{ height:100%; border-radius:4px; transition:width 0.3s; }

  .op-goal-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:20px; }
  .op-goal-card{
    background:#fff; border:1px solid var(--border); border-radius:12px; padding:14px;
    box-shadow:var(--shadow-sm); border-top:4px solid var(--goal-color, var(--meadow));
    cursor:pointer; transition:0.15s; user-select:none;
  }
  .op-goal-card:hover{ box-shadow:var(--shadow-md); }
  .op-goal-card.active{ outline:2px solid var(--goal-color, var(--meadow)); outline-offset:1px; }

  .op-filter-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:-6px 0 20px; }
  .op-filter-chip{
    font-size:11.5px; font-weight:600; padding:6px 13px; border-radius:20px; cursor:pointer;
    background:var(--sand); color:var(--ink); border:1px solid transparent; user-select:none; transition:0.15s;
  }
  .op-filter-chip:hover{ box-shadow:var(--shadow-sm); }
  .op-filter-chip.active{ background:var(--goal-color, var(--meadow)); color:#fff; }

  #opplan-filter-badge{
    font-size:11px; font-weight:600; padding:4px 10px; border-radius:20px; cursor:pointer;
    background:var(--meadow-light); color:var(--meadow-dark); display:inline-flex; align-items:center; gap:5px;
  }
  .op-goal-card .gtitle{ display:flex; align-items:flex-start; gap:7px; margin-bottom:8px; }
  .op-goal-card .goal-dot{ width:8px; height:8px; border-radius:50%; background:var(--goal-color, var(--meadow)); margin-top:5px; flex-shrink:0; }
  .op-goal-card h5{ font-size:12.5px; margin:0; line-height:1.5; font-weight:700; }
  .op-goal-card .gmeta{ font-size:11px; color:var(--slate); margin-bottom:10px; }
  .op-goal-card .gring{ display:flex; align-items:center; gap:10px; }
  .op-goal-card .gpct{ font-size:15px; font-weight:800; flex-shrink:0; }

  .op-legend{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:14px; }
  .op-legend-item{ display:flex; align-items:center; gap:5px; font-size:11px; color:var(--slate); }
  .op-legend-dot{ width:7px; height:7px; border-radius:50%; }

  .op-program-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
  .op-program-card{
    background:#fff; border:1px solid var(--border); border-radius:12px; padding:12px 14px;
    box-shadow:var(--shadow-sm); border-inline-start:4px solid var(--goal-color, var(--meadow));
    cursor:pointer; transition:0.15s;
  }
  .op-program-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-1px); }
  .op-program-card .phead{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:5px; }
  .op-plan-code{ font-size:10px; color:var(--slate); background:var(--sand); border-radius:6px; padding:2px 7px; font-weight:700; flex-shrink:0; }
  .op-status-chip{ font-size:10px; font-weight:700; padding:2px 8px; border-radius:20px; display:inline-flex; align-items:center; gap:3px; flex-shrink:0; white-space:nowrap; }
  .op-status-chip.good{ background:var(--green-light); color:var(--status-good); }
  .op-status-chip.warn{ background:var(--gold-light); color:var(--status-warn); }
  .op-status-chip.bad{ background:var(--danger-light); color:var(--status-bad); }
  .op-status-chip.idle{ background:var(--sand); color:var(--status-idle); }
  .op-program-card h5{ font-size:13px; margin:0 0 3px; font-weight:700; }
  .op-program-dept{ font-size:11px; color:var(--slate); margin-bottom:8px; }
  .op-program-progress{ display:flex; align-items:center; gap:8px; }
  .op-program-progress .ppct{ font-size:11.5px; font-weight:800; width:32px; flex-shrink:0; }

  /* ===== رأس داشبورد الخطة التشغيلية + الرسوم البيانية التفاعلية ===== */
  .op-dashboard{ margin-bottom:30px; }
  .op-page-head{ margin-bottom:18px; }
  .op-page-head h2{ font-size:19px; margin:0 0 4px; font-weight:700; }
  .op-page-head p{ font-size:12.5px; color:var(--slate); margin:0; }
  .op-scope-note{
    display:inline-flex; align-items:center; gap:6px; background:var(--meadow-light); color:var(--meadow);
    font-size:11.5px; font-weight:700; padding:4px 12px; border-radius:20px; margin-top:8px;
  }
  .op-section-title{ font-size:14.5px; margin:0 0 12px; font-weight:700; color:var(--ink); }

  .op-chart-row{ display:grid; grid-template-columns:1.3fr 1fr; gap:14px; margin-bottom:22px; }
  .op-chart-card{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:18px; box-shadow:var(--shadow-sm); }
  .op-chart-card h3{ font-size:13.5px; margin:0 0 2px; font-weight:700; }
  .op-chart-sub{ font-size:11px; color:var(--slate); margin:0 0 12px; }
  .op-chart-box{ position:relative; height:220px; }
  .op-donut-wrap{ display:flex; align-items:center; gap:18px; }
  .op-donut-box{ position:relative; width:150px; height:150px; flex-shrink:0; }
  .op-donut-legend{ flex:1; }
  .op-donut-legend .row{ display:flex; align-items:center; gap:8px; font-size:12px; margin-bottom:8px; }
  .op-donut-legend .row .sw{ width:9px; height:9px; border-radius:50%; flex-shrink:0; }
  .op-donut-legend .row .n{ flex:1; }
  .op-donut-legend .row .v{ color:var(--slate); font-weight:700; }
  .op-donut-center{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; pointer-events:none; }
  .op-donut-center .big{ font-size:22px; font-weight:800; }
  .op-donut-center .small{ font-size:10px; color:var(--slate); }

  @media (max-width: 900px){
    .op-stat-row{ grid-template-columns:repeat(2,1fr); }
    .op-goal-grid{ grid-template-columns:1fr 1fr; }
    .op-program-grid{ grid-template-columns:1fr; }
    .op-chart-row{ grid-template-columns:1fr; }
  }

  /* ===== "مهامي الأسبوعية" (شاشة الموظف المشارك بالخطة التشغيلية) =====
     حلقة تقدم شخصية + شريط أسابيع أفقي بدل زر تالي/سابق نصي + لوحة كانبان 3 أعمدة
     بدل قائمة نصية طويلة - نفس منطق البيانات (plan_status/completion status) بس بعرض مرئي أوضح */
  .myop-ring-card{
    display:flex; align-items:center; gap:16px; background:#fff; border:1px solid var(--border);
    border-radius:14px; padding:14px 16px; margin-bottom:16px; box-shadow:var(--shadow-sm);
  }
  .myop-ring{ position:relative; width:64px; height:64px; flex-shrink:0; }
  .myop-ring svg{ width:100%; height:100%; transform:rotate(-90deg); }
  .myop-ring .track{ fill:none; stroke:var(--sand); stroke-width:7; }
  .myop-ring .fill{ fill:none; stroke:var(--meadow); stroke-width:7; stroke-linecap:round; transition:stroke-dasharray 0.4s, stroke 0.4s; }
  .myop-ring-pct{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; }
  .myop-ring-title{ margin:0 0 3px; font-size:13.5px; font-weight:700; }
  .myop-ring-sub{ margin:0; font-size:11.5px; color:var(--slate); }

  .myop-week-strip-wrap{ margin-bottom:18px; }
  .myop-week-strip{ display:flex; gap:6px; overflow-x:auto; padding:2px 2px 8px; scrollbar-width:thin; }
  .myop-week-pill{
    flex-shrink:0; min-width:38px; height:38px; border-radius:12px; border:1px solid var(--border);
    background:#fff; color:var(--ink); font-size:12.5px; font-weight:700; display:flex; align-items:center;
    justify-content:center; padding:0 6px; transition:0.15s;
  }
  .myop-week-pill.active{ background:var(--meadow); border-color:var(--meadow); color:#fff; }


  .op-kanban{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; align-items:start; }
  .op-kanban-col{ background:var(--sand); border-radius:14px; padding:10px; min-height:60px; }
  .op-kanban-col .colhead{ display:flex; align-items:center; gap:6px; padding:4px 6px 10px; font-size:12.5px; font-weight:800; }
  .op-kanban-col .colhead .dot{ width:8px; height:8px; border-radius:50%; flex-shrink:0; }
  .op-kanban-col .colhead .count{ margin-inline-start:auto; background:#fff; border-radius:20px; padding:1px 8px; font-size:11px; color:var(--slate); }
  .op-kanban-col.needs .colhead .dot{ background:var(--status-warn); }
  .op-kanban-col.waiting .colhead .dot{ background:var(--status-idle); }
  .op-kanban-col.done .colhead .dot{ background:var(--status-good); }

  .myop-task-card{
    background:#fff; border-radius:12px; padding:11px 12px; margin-bottom:8px; box-shadow:var(--shadow-sm);
    border-inline-start:3px solid var(--border);
  }
  .op-kanban-col.needs .myop-task-card{ border-inline-start-color:var(--status-warn); }
  .op-kanban-col.waiting .myop-task-card{ border-inline-start-color:var(--status-idle); }
  .op-kanban-col.done .myop-task-card{ border-inline-start-color:var(--status-good); }
  .myop-task-card.overdue{ border-inline-start-color:var(--status-bad); background:var(--danger-light); }
  .myop-task-card h6{ margin:0 0 5px; font-size:13px; font-weight:700; line-height:1.4; }
  .myop-task-card .desc{ font-size:11.5px; color:var(--slate); margin:0 0 8px; line-height:1.5; }
  .myop-duration-chip{
    display:inline-flex; align-items:center; gap:4px; font-size:10px; font-weight:700; color:var(--purple);
    background:var(--purple-light); border-radius:20px; padding:2px 8px; margin-bottom:8px;
  }
  .myop-overdue-chip{
    display:inline-flex; align-items:center; gap:4px; font-size:10px; font-weight:800; color:var(--status-bad);
    background:#fff; border-radius:20px; padding:2px 8px; margin-inline-start:6px;
  }
  .myop-task-card .badge-row{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
  .myop-task-card .btn-primary{ width:100%; padding:8px; margin-top:10px; font-size:12.5px; }
  .op-kanban-empty{ text-align:center; font-size:11.5px; color:var(--slate); padding:16px 6px; }

  @media (max-width: 720px){
    .op-kanban{ grid-template-columns:1fr; }
  }

  /* ===== إسناد البرامج للمشاركين (لوحة المدير) ===== */
  .opa-checklist{ max-height:320px; overflow-y:auto; border:1px solid var(--border); border-radius:10px; padding:6px 8px; }
  .opa-goal-heading{ font-size:11px; font-weight:800; color:var(--slate); margin:10px 4px 4px; }
  .opa-item{ display:flex; align-items:center; gap:8px; padding:6px 6px; border-radius:8px; font-size:12.5px; cursor:pointer; }
  .opa-item:hover{ background:var(--sand); }
  .opa-item input[type=checkbox]{ width:16px; height:16px; flex-shrink:0; }
  .opa-item .code{ font-size:10px; color:var(--slate); background:var(--sand); border-radius:6px; padding:1px 6px; flex-shrink:0; }
  .opa-assigned-to{ font-size:10.5px; color:var(--meadow-dark); margin-inline-start:auto; padding-inline-start:8px; flex-shrink:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

  .pr-manage-row{ display:flex; align-items:center; gap:8px; padding:8px 6px; border-radius:8px; font-size:12.5px; border-bottom:1px solid var(--border); }
  .pr-manage-row:last-child{ border-bottom:none; }
  .pr-manage-row:hover{ background:var(--sand); }
  .pr-manage-row .code{ font-size:10px; color:var(--slate); background:var(--sand); border-radius:6px; padding:1px 6px; }
  .pr-delete-btn{ width:30px; height:30px; flex-shrink:0; padding:0; background:var(--danger-light); color:var(--danger); border-radius:8px; display:flex; align-items:center; justify-content:center; }

  /* ===== "برامجي المسندة" (شاشة الموظف - إدخال مهام كل برنامج على حدة) ===== */
  .myprog-card{ border:1px solid var(--border); border-radius:12px; padding:12px 14px; margin-bottom:10px; background:#fff; }
  .myprog-card .mphead{ display:flex; align-items:center; gap:10px; cursor:pointer; }
  .myprog-card .mphead h5{ flex:1; margin:0; font-size:13.5px; font-weight:700; }
  .myprog-card .mpmeta{ font-size:11px; color:var(--slate); margin:3px 0 0; }
  .myprog-status{ font-size:10.5px; font-weight:700; padding:3px 9px; border-radius:20px; flex-shrink:0; white-space:nowrap; }
  .myprog-status.idle{ background:var(--sand); color:var(--status-idle); }
  .myprog-status.progress{ background:var(--gold-light); color:var(--status-warn); }
  .myprog-status.complete{ background:var(--green-light); color:var(--status-good); }
  .myprog-body{ margin-top:12px; border-top:1px solid var(--border); padding-top:12px; }
  .myprog-existing{ margin-bottom:10px; }
  .myprog-existing .row{ display:flex; align-items:center; gap:8px; font-size:12px; padding:5px 0; border-bottom:1px dashed var(--border); }
  .myprog-existing .row:last-child{ border-bottom:none; }
  .myprog-row{ display:flex; gap:6px; align-items:center; margin-bottom:8px; flex-wrap:wrap; }
  .myprog-row select{ width:auto; flex-shrink:0; }
  .myprog-row input[type=number]{ width:88px; flex-shrink:0; }
  .myprog-row input[type=text]{ flex:1; min-width:140px; }
  .myprog-row .mp-remove{ flex-shrink:0; width:34px; height:34px; padding:0; background:var(--danger-light); color:var(--danger); border-radius:8px; font-size:14px; }
  .myprog-actions{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
  .myprog-actions button{ width:auto; padding:9px 16px; font-size:12.5px; }
  @media (max-width: 480px){
    .myprog-row input[type=text]{ width:100%; flex-basis:100%; }
  }

  /* ===== الجدول الدراسي الأسبوعي بالصفحة الرئيسية للمعلم ===== */
  .weekly-sched-table{ width:100%; border-collapse:separate; border-spacing:3px; min-width:460px; }
  .weekly-sched-table thead th{ font-size:10px; color:var(--slate); font-weight:700; padding:2px 3px; text-align:center; }
  .weekly-sched-table .wp-day{ font-size:10px; color:var(--slate); font-weight:700; text-align:center; width:36px; white-space:nowrap; }
  .wp-cell{ border-radius:7px; padding:3px 2px; text-align:center; vertical-align:middle; min-width:56px; height:36px; background:var(--sand); border:1px solid transparent; }
  .wp-cell:not(.wp-empty){ background:color-mix(in srgb, var(--cell-color) 14%, white); border-color:color-mix(in srgb, var(--cell-color) 45%, white); }
  .wp-subject{ font-size:9.5px; font-weight:700; color:var(--ink); line-height:1.25; }
  .wp-class{ font-size:8px; color:var(--slate); margin-top:1px; line-height:1.2; }
  .wp-empty{ background:#F7F8FA; }
  @media (max-width: 520px){
    .weekly-sched-table{ min-width:400px; }
    .wp-cell{ min-width:48px; height:32px; }
  }

  /* ===== ربط أسماء المعلمين المستخرجة من ملف الجدول (حسب الفصول) بحسابات المعلمين يدويًا ===== */
  .stl-row{ border:1px solid var(--border); border-radius:12px; padding:10px 14px; margin-bottom:8px; background:#fff; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  .stl-name{ font-weight:700; font-size:13px; }
  .stl-select{ min-width:220px; }
  @media (max-width: 520px){
    .op-stat-row{ grid-template-columns:1fr 1fr; }
    .op-goal-grid{ grid-template-columns:1fr; }
  }

  /* ===== تجاوب مع الجوال ===== */
  @media (max-width: 720px){
    #login-screen{ grid-template-columns: 1fr; grid-template-rows:auto 1fr; }
    .brand-panel{ padding:28px 20px 26px; gap:18px; justify-content:flex-start; }
    .lg-brand{ display:flex; align-items:center; gap:14px; }
    .lg-logo{ width:58px; margin:0; flex-shrink:0; }
    .lg-word img{ width:156px; }
    .brand-panel h1{ font-size:21px; margin:0; }
    .brand-panel p{ display:none; }
    .lg-traces{ opacity:.45; }
    .lg-today{ flex-direction:row; flex-wrap:wrap; align-items:baseline; gap:4px 10px; font-size:12.5px; }
    .lg-today b{ font-size:15px; }
    .login-panel{ padding:30px 20px 40px; align-items:flex-start; }
    .login-panel{ flex-direction:column; align-items:stretch; }
    .login-foot{ position:static; margin-top:34px; }
    .login-card h2{ font-size:24px; }

    .main{ padding:18px 14px; }
    .main-header h2{ font-size:19px; }
    .tiles{ grid-template-columns: repeat(auto-fit, minmax(140px,1fr)); gap:12px; }
    .tile{ padding:16px; }

    .stat-grid{ grid-template-columns:1fr 1fr; }
    .form-row{ grid-template-columns:1fr; }
    .panel{ padding:18px; }
  }

  /* ===== قسم الميزانية: رأس داخلي + تبويبات مصمَّمة ===== */
  .bud-head{
    background:#fff; border:1px solid var(--border); border-radius:16px;
    padding:18px 20px; margin-bottom:20px; box-shadow:var(--shadow-sm);
  }
  .bud-head-title{ display:flex; align-items:center; gap:14px; margin-bottom:16px; }
  .bud-head-icon{
    width:46px; height:46px; border-radius:12px; background:var(--gold-light); color:var(--gold);
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
  }
  .bud-head-icon svg{ width:23px; height:23px; }
  .bud-head-title h3{ margin:0; font-size:17px; }
  .bud-head-title p{ margin:2px 0 0; font-size:12.5px; color:var(--slate); }

  .bud-tabs{ display:flex; gap:6px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .bud-tab{
    display:flex; align-items:center; gap:7px; padding:9px 16px; border-radius:10px;
    background:var(--sand); color:var(--slate); font-size:13px; font-weight:700;
    border:1.5px solid transparent; white-space:nowrap; flex-shrink:0; cursor:pointer;
    transition:0.15s; font-family:inherit;
  }
  .bud-tab svg{ width:16px; height:16px; flex-shrink:0; }
  .bud-tab:hover{ color:var(--ink); }
  .bud-tab.active{ background:var(--meadow-light); color:var(--meadow); border-color:var(--meadow); }

  .bud-panel{ animation:budFadeIn 0.18s ease; }
  @keyframes budFadeIn{ from{ opacity:0; transform:translateY(4px); } to{ opacity:1; transform:translateY(0); } }

  .bud-section-card{ padding-top:20px; }
  .bud-section-head{ display:flex; align-items:flex-start; gap:12px; margin-bottom:16px; }
  .bud-section-head h4{ margin:0 0 2px; font-size:14.5px; }
  .bud-section-head p{ margin:0; font-size:12px; color:var(--slate); }
  .bud-section-icon{
    width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
  }
  .bud-section-icon svg{ width:19px; height:19px; }
  details.bud-section-card summary{ list-style:none; }
  details.bud-section-card summary::-webkit-details-marker{ display:none; }
  details.bud-section-card summary::after{
    content:'˅'; margin-inline-start:auto; align-self:center; color:var(--slate); font-size:16px; flex-shrink:0;
  }
  details[open].bud-section-card summary::after{ content:'˄'; }

  .stat-card.bud-stat{ display:flex; align-items:flex-start; gap:12px; }
  .stat-card.bud-stat .icon-chip{
    width:34px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center;
    flex-shrink:0; background:var(--sand);
  }
  .stat-card.bud-stat .icon-chip svg{ width:17px; height:17px; }
  .stat-card.bud-stat .body{ min-width:0; flex:1; }

  /* رمز الريال السعودي الرسمي - يُرسم بلون currentColor عبر mask عشان يتلوّن حسب كل بطاقة/أيقونة */
  .riyal-icon{
    display:inline-block; background-color:currentColor; flex-shrink:0;
    -webkit-mask:url('riyal-symbol.png') center / contain no-repeat;
    mask:url('riyal-symbol.png') center / contain no-repeat;
  }

  @media (max-width: 520px){
    .bud-head{ padding:14px 14px; }
    .bud-tabs{ gap:5px; }
    .bud-tab{ padding:8px 12px; font-size:12px; }
    .bud-tab span{ display:inline; }
  }

  /* ===== قسم الملفات: شبكة المجلدات وقائمة الملفات ===== */






























  /* ---------- متابعة أداء الموظفين: سجل الملاحظات + إدارة المؤشرات ---------- */
  .eval-note-row{
    display:flex; align-items:flex-start; gap:12px; padding:12px 4px; border-bottom:1px solid var(--border);
  }
  .eval-note-row:last-child{ border-bottom:none; }
  .eval-note-badge{
    flex-shrink:0; font-size:11px; font-weight:700; padding:3px 10px; border-radius:20px; white-space:nowrap; margin-top:1px;
  }
  .eval-note-body{ flex:1; min-width:160px; }
  .eval-note-content{ font-size:13px; line-height:1.6; word-break:break-word; }
  .eval-note-meta{ font-size:11.5px; color:var(--slate); margin-top:4px; }

  .eval-note-delete{
    flex-shrink:0; background:none; border:none; color:var(--slate); cursor:pointer; font-size:17px;
    line-height:1; padding:2px 4px; border-radius:6px;
  }
  .eval-note-delete:hover{ color:var(--danger); background:var(--danger-light); }

  .eval-indicator-row{
    display:flex; align-items:center; gap:12px; padding:10px 4px; border-bottom:1px solid var(--border); flex-wrap:wrap;
  }
  .eval-indicator-row:last-child{ border-bottom:none; }
  .eval-indicator-row.inactive{ opacity:.5; }
  .eval-indicator-row .ei-name{ flex:1; min-width:120px; font-weight:700; font-size:13.5px; }
  .eval-indicator-row .ei-weight{ font-size:12px; color:var(--slate); }
  .eval-indicator-row .ei-actions{ display:flex; gap:6px; flex-shrink:0; }
  .eval-indicator-row .ei-actions button{
    border:none; border-radius:8px; padding:6px 11px; font-size:11.5px; font-weight:700; cursor:pointer; font-family:inherit;
  }
  .ei-toggle-btn{ background:var(--sand); color:var(--ink); }
  .ei-delete-btn{ background:var(--danger-light); color:var(--danger); }

  .eval-breakdown-row{ display:flex; align-items:center; gap:10px; padding:8px 4px; border-bottom:1px solid var(--border); }
  .eval-breakdown-row:last-child{ border-bottom:none; }
  .eval-breakdown-row .eb-name{ flex:1; font-size:13px; font-weight:600; min-width:100px; }
  .eval-breakdown-row .eb-bar-wrap{ flex:2; max-width:160px; height:6px; background:var(--sand); border-radius:4px; overflow:hidden; }
  .eval-breakdown-row .eb-bar{ height:100%; border-radius:4px; }
  .eval-breakdown-row .eb-score{ font-family:'Tajawal'; font-weight:700; font-size:12.5px; width:32px; text-align:left; flex-shrink:0; }

  /* ===== قسم الاختبارات: قائمة الفترات + خطوات الفترة ===== */
  #exams-module.panel{ background:transparent; border:0; box-shadow:none; padding:0; }
  .ex-students-strip{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 16px; background:#fff; border:1px solid var(--border); border-radius:16px; padding:14px 18px; margin-bottom:22px; }
  .ess-main{ flex:1; min-width:240px; display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
  .ess-main > b{ font-size:14.5px; color:var(--meadow-dark); }
  .ess-stats{ display:flex; flex-wrap:wrap; gap:6px; }
  .ess-total{ font-size:13px; font-weight:700; background:var(--meadow-dark); color:#fff; border-radius:99px; padding:4px 11px; }
  .ess-chip{ font-size:13px; background:var(--sand); border-radius:99px; padding:4px 11px; color:#4A5568; }
  .ess-chip b{ color:var(--ink); }



  .ex-list-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
  .ex-list-head h3{ font-size:20px; font-weight:800; color:var(--meadow-dark); }
  .ex-new-period{ margin-bottom:16px; }
  .ex-period-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); gap:14px; }
  .ex-empty{ grid-column:1/-1; display:flex; flex-direction:column; gap:4px; align-items:center; text-align:center; padding:34px 16px; background:#fff; border:1px dashed #C9D3E3; border-radius:18px; color:var(--slate); font-size:13.5px; }
  .ex-empty b{ color:var(--ink); font-size:15px; }
  .ex-period-card{ background:#fff; border:1px solid var(--border); border-radius:18px; padding:18px; display:flex; flex-direction:column; gap:12px; cursor:pointer; transition:box-shadow 0.15s, border-color 0.15s, transform 0.15s; }
  .ex-period-card:hover{ border-color:#C9D3E3; box-shadow:0 10px 28px rgba(27,36,51,0.07); transform:translateY(-1px); }
  .ex-period-card:focus-visible{ outline:2px solid var(--teal); outline-offset:2px; }
  .epc-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
  .epc-titles{ display:flex; flex-direction:column; gap:3px; min-width:0; }
  .epc-titles b{ font-family:'Tajawal'; font-size:18px; font-weight:800; color:var(--meadow-dark); }
  .epc-titles span{ font-size:12.5px; color:var(--slate); }
  .epc-bar{ display:flex; gap:4px; }
  .epc-bar i{ flex:1; height:6px; border-radius:99px; background:#EAEEF4; }
  .epc-bar i.on{ background:var(--teal); }
  .epc-bar i.cur{ background:#F3C9A6; }
  .epc-stage{ font-size:12.5px; font-weight:600; color:#7A5410; }
  .epc-stage.ok{ color:#1F6A3C; }

  .ex-period-head{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; margin-bottom:14px; }
  .ex-back{ padding:4px 0 !important; font-size:13px; }
  .ex-period-title h3{ font-size:24px; font-weight:900; color:var(--meadow-dark); }
  .ex-period-meta{ font-size:13px; color:var(--slate); margin-top:2px; }
  .ex-steps{ display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:8px; margin-bottom:18px; scroll-margin-top:90px; }
  .ex-step-btn{ display:flex; align-items:center; gap:10px; padding:10px 12px; background:#fff; border:1px solid var(--border); border-radius:14px; text-align:right; color:var(--ink); min-width:0; }
  .ex-step-btn:hover{ border-color:#C9D3E3; }
  .esb-num{ width:28px; height:28px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:13px; background:var(--sand); color:var(--slate); }
  .esb-txt{ display:flex; flex-direction:column; min-width:0; }
  .esb-txt b{ font-size:13.5px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .esb-txt span{ font-size:11.5px; color:var(--slate); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .ex-step-btn.done .esb-num{ background:var(--green-light); color:#1F6A3C; }
  .ex-step-btn.cur{ border-color:var(--meadow-dark); box-shadow:0 0 0 1px var(--meadow-dark); }
  .ex-step-btn.cur .esb-num{ background:var(--meadow-dark); color:#fff; }
  .ex-step-head{ margin-bottom:12px; }
  .ex-step-head h4{ font-size:19px; font-weight:800; color:var(--meadow-dark); }
  .ex-step-head p{ font-size:13.5px; color:var(--slate); margin:3px 0 0; }
  .ex-sub{ font-family:'Tajawal'; font-size:15px; font-weight:800; color:var(--meadow-dark); margin:4px 0 10px; display:flex; align-items:center; gap:8px; }
  .ex-pill{ font-family:'IBM Plex Sans Arabic'; font-size:12px; font-weight:600; background:#FDF2DF; color:#7A5410; border-radius:99px; padding:2px 9px; }
  .ex-pill.ok{ background:var(--green-light); color:#1F6A3C; }
  .ex-step-nav{ display:flex; justify-content:space-between; gap:10px; margin-top:16px; }
  .ex-step-nav .btn-primary{ width:auto; padding:11px 18px; margin-inline-start:auto; }
  .ex-step-nav .btn-secondary{ padding:10px 16px; }
  .ex-edit-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:10px 12px; margin-bottom:12px; }
  .ex-edit-grid label{ font-size:12.5px; color:var(--slate); display:flex; flex-direction:column; gap:4px; font-weight:600; }
  .ex-edit-grid input, .ex-edit-grid select{ margin:0 !important; }
  .ex-warn{ background:#FDF2DF; color:#7A5410; border-radius:10px; padding:10px 12px; font-size:13px; font-weight:600; margin-bottom:12px; }
  .ex-ok{ color:#1F6A3C; font-size:13px; font-weight:600; margin-inline-start:10px; }
  .ex-loc-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:8px 12px; }
  .ex-loc{ display:flex; align-items:center; gap:8px; }
  .ex-loc span{ min-width:58px; font-size:13px; font-weight:700; color:var(--ink); }
  .ex-loc input{ margin:0 !important; padding:9px 11px; }
  .ex-gen-state{ display:flex; align-items:center; gap:8px; font-size:13.5px; margin-bottom:12px; }
  .ex-dot{ width:10px; height:10px; border-radius:50%; background:var(--status-warn); flex-shrink:0; }
  .ex-dot.ok{ background:var(--status-good); }
  .ex-results-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:10px; }
  .ex-results-head{ grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; margin-top:4px; }
  .ex-com-card{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:14px; display:flex; flex-direction:column; gap:8px; }
  .ex-com-card.open{ grid-column:1/-1; }
  .ecc-head{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
  .ecc-title{ display:flex; flex-direction:column; min-width:0; }
  .ecc-title b{ font-size:15px; color:var(--meadow-dark); }
  .ecc-title span{ font-size:12px; color:var(--slate); }
  .ecc-count{ font-family:'Tajawal'; font-size:22px; font-weight:900; color:var(--meadow-dark); }
  .ecc-grades{ display:flex; flex-wrap:wrap; gap:5px; }
  .ecc-grades span{ font-size:11.5px; background:var(--sand); border-radius:99px; padding:2px 8px; color:#4A5568; }
  .ecc-grades .ecc-seats{ background:var(--meadow-light); color:var(--meadow); font-weight:600; }
  .ecc-actions{ display:flex; gap:12px; }
  .ecc-actions button{ padding:2px 0 !important; font-size:13px; }
  .ecc-table{ display:none; overflow-x:auto; }
  .ex-com-card.open .ecc-table{ display:block; }
  .ecc-table table{ width:100%; border-collapse:collapse; font-size:13px; }
  .ecc-table th{ background:var(--sand); font-weight:700; color:var(--slate); font-size:12px; padding:6px 8px; text-align:right; }
  .ecc-table td{ padding:6px 8px; border-bottom:1px solid #EEF1F6; }
  .ex-print-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:10px; margin-bottom:18px; }
  .ex-print-tile{ display:flex; align-items:center; gap:12px; padding:14px; background:#fff; border:1px solid var(--border); border-radius:14px; text-align:right; color:var(--ink); width:100%; }
  .ex-print-tile:hover:not(:disabled){ border-color:#C9D3E3; box-shadow:0 8px 22px rgba(27,36,51,0.06); }
  .ex-print-tile:disabled{ opacity:0.5; cursor:not-allowed; }
  .ept-ic{ width:42px; height:42px; border-radius:12px; background:var(--gold-light); color:#A4501A; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .ept-ic svg{ width:20px; height:20px; }
  .ept-main{ display:flex; flex-direction:column; gap:2px; min-width:0; }
  .ept-main b{ font-size:14.5px; font-weight:700; color:var(--meadow-dark); }
  .ept-main span{ font-size:12.5px; color:var(--slate); line-height:1.5; }
  @media (max-width: 899px){
    .ex-steps{ display:flex; overflow-x:auto; scrollbar-width:none; margin-inline:-14px; padding-inline:14px; }
    .ex-steps::-webkit-scrollbar{ display:none; }
    .ex-step-btn{ flex:0 0 auto; }
    .ex-period-grid{ grid-template-columns:1fr; }
  }

  /* ===== ألوان: خلفية بيضاء + أزرار ملوّنة ===== */
  #dashboard-screen .form-card, #dashboard-screen .home-card, #dashboard-screen .kpi, .ws-card, .wsp-card, .ex-period-card, .ex-com-card, .ex-print-tile, .ex-step-btn, .ex-students-strip{ box-shadow:0 1px 3px rgba(21,34,56,0.06); }
  .quick-chip{ border-color:transparent; }
  .quick-chip.qc-diamond-teal{ background:#E3F4F7; color:#0B6E7E; }
  .quick-chip.qc-diamond-gold{ background:#FDEFE3; color:#A4501A; }
  .quick-chip.qc-diamond-purple{ background:#EFEBFB; color:#5A3E9E; }
  .quick-chip.qc-diamond-navy{ background:#EAF1FC; color:#2455A4; }
  .quick-chip.qc-diamond-green{ background:#E7F5EC; color:#1F6A3C; }
  .quick-chip:hover{ filter:brightness(0.96); border-color:currentColor; color:inherit; }
  .ws-links a:hover{ filter:brightness(0.95); }
  .tn-pill:hover{ background:var(--meadow-light); color:var(--meadow); }
  .tn-pill.active:hover{ background:var(--meadow-dark); color:#fff; }
  /* بطاقات الطباعة: لكل نوع لونه (نفس ألوان الأزرار القديمة) */
  .ex-print-tile{ border-inline-start:4px solid var(--pt, #2455A4); }
  .ex-print-tile .ept-ic{ background:var(--pt, #2455A4); color:#fff; }
  .ex-print-tile .ept-main b{ color:var(--pt, #2455A4); }
  #exam-print-all-btn{ --pt:#E8763A; }
  #exam-roster-print-btn{ --pt:#2C5F8A; }
  #exam-class-sheets-btn{ --pt:#1E5B3A; }
  #exam-conditions-print-btn{ --pt:#7A4FC7; }
  #exam-labels-print-btn{ --pt:#5A3E9E; }
  #exam-labels-print-bygrade-btn{ --pt:#8A5FD1; }
  .ex-step-btn:nth-child(1) .esb-num{ background:#EAF1FC; color:#2455A4; }
  .ex-step-btn:nth-child(2) .esb-num{ background:#EFEBFB; color:#5A3E9E; }
  .ex-step-btn:nth-child(3) .esb-num{ background:#E3F4F7; color:#0B6E7E; }
  .ex-step-btn:nth-child(4) .esb-num{ background:#FDEFE3; color:#A4501A; }
  .ex-step-btn:nth-child(5) .esb-num{ background:#E7F5EC; color:#1F6A3C; }
  .ex-step-btn.done .esb-num{ background:var(--status-good); color:#fff; }
  .ex-step-btn.cur .esb-num{ background:var(--meadow-dark); color:#fff; }

  /* ===== تقارير الاختبارات: طريقة العمل + وضعين + بطاقات التقارير ===== */
  #exam-reports-module.panel{ background:transparent; border:0; box-shadow:none; padding:0; }
  .er-flow{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; margin-bottom:16px; }
  .er-flow-step{ display:flex; align-items:center; gap:12px; padding:14px; background:#fff; border:1px solid var(--border); border-top:4px solid var(--fc); border-radius:14px; text-align:right; color:var(--ink); box-shadow:0 1px 3px rgba(21,34,56,0.06); }
  .er-flow-step:hover{ box-shadow:0 8px 22px rgba(21,34,56,0.08); }
  .efs-n{ width:34px; height:34px; border-radius:50%; background:var(--fc); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Tajawal'; font-weight:900; font-size:16px; flex-shrink:0; }
  .efs-t{ display:flex; flex-direction:column; gap:2px; min-width:0; }
  .efs-t b{ font-size:14px; color:var(--meadow-dark); }
  .efs-t span{ font-size:12px; color:var(--slate); }
  .seg-tabs{ display:inline-flex; gap:4px; background:var(--sand); border-radius:99px; padding:4px; margin-bottom:16px; }
  .seg-tabs button{ white-space:nowrap; background:transparent; border:0; border-radius:99px; padding:9px 18px; font-size:14px; font-weight:600; color:var(--slate); }
  .seg-tabs button.active{ background:#fff; color:var(--meadow-dark); box-shadow:0 1px 4px rgba(21,34,56,0.12); }
  .er-reports-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
  .er-reports-head h4{ font-size:18px; font-weight:800; color:var(--meadow-dark); }
  #er-upload-card{ margin-bottom:16px; border-top:4px solid #E07A34; }
  #er-mode-sheet #as-toggle-btn{ display:none; }
  .er-report-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:12px; }
  .er-report-card{ position:relative; display:flex; align-items:flex-start; gap:12px; background:#fff; border:1px solid var(--border); border-radius:16px; padding:16px; cursor:pointer; box-shadow:0 1px 3px rgba(21,34,56,0.06); transition:box-shadow 0.15s, transform 0.15s; }
  .er-report-card:hover{ box-shadow:0 10px 26px rgba(21,34,56,0.09); transform:translateY(-1px); }
  .er-report-card:focus-visible{ outline:2px solid var(--teal); outline-offset:2px; }
  .erc-ic{ width:48px; height:48px; border-radius:13px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .erc-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
  .erc-main b{ font-size:15px; color:var(--meadow-dark); line-height:1.45; padding-inline-end:20px; }
  .erc-main > span{ font-size:12.5px; color:var(--slate); }
  .erc-chips{ display:flex; flex-wrap:wrap; gap:5px; margin-top:4px; }
  .erc-chips i{ font-style:normal; font-size:11.5px; background:var(--sand); color:#4A5568; border-radius:99px; padding:2px 9px; }
  .er-report-card .er-delete-btn{ position:absolute; top:10px; left:10px; border:0; background:none; color:var(--danger); font-size:13px; padding:4px 7px; border-radius:7px; opacity:0.55; }
  .er-report-card .er-delete-btn:hover{ opacity:1; background:var(--danger-light); }
  @media (max-width: 899px){ .er-flow{ grid-template-columns:1fr; } .seg-tabs{ display:flex; } .seg-tabs button{ flex:1; padding:9px 10px; } }

  /* ===== متابعة الاختبارات: لوحة المواد + لوحة جانبية للتفاصيل ===== */
  #exam-tracking-module.panel{ background:transparent; border:0; box-shadow:none; padding:0; }
  .tr-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
  .tr-periods{ display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; min-width:0; flex:1; }
  .tr-periods::-webkit-scrollbar{ display:none; }
  .tr-periods button{ flex-shrink:0; border:1px solid var(--border); background:#fff; border-radius:99px; padding:9px 16px; font-size:14px; font-weight:600; color:var(--ink); }
  .tr-periods button.active{ background:var(--meadow-dark); border-color:var(--meadow-dark); color:#fff; }
  .tr-setup{ display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); gap:14px; margin-bottom:18px; }
  .tr-setup .form-card{ margin:0; border-top:4px solid var(--purple); }
  .tr-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
  .tr-toolbar .seg-tabs{ margin:0; }
  .tr-cnt{ font-size:11.5px; background:var(--meadow-light); color:var(--meadow); border-radius:99px; padding:0 7px; margin-inline-start:2px; }
  .tr-cnt:empty{ display:none; }
  #tr-filter button[data-f="mine"] .tr-cnt{ background:var(--danger); color:#fff; }
  .tr-grades{ display:flex; gap:4px; }
  .tr-grades button{ border:1px solid var(--border); background:#fff; border-radius:99px; padding:6px 12px; font-size:13px; color:var(--slate); }
  .tr-grades button.active{ background:var(--meadow-light); border-color:var(--meadow-light); color:var(--meadow); font-weight:700; }
  .tr-board{ display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:12px; }
  .tr-loading{ padding:24px; text-align:center; color:var(--slate); font-size:13.5px; grid-column:1/-1; }
  .tr-card{ display:flex; flex-direction:column; gap:10px; background:#fff; border:1px solid var(--border); border-radius:16px; padding:16px; text-align:right; color:var(--ink); box-shadow:0 1px 3px rgba(21,34,56,0.06); transition:box-shadow 0.15s, transform 0.15s; }
  .tr-card:hover{ box-shadow:0 10px 26px rgba(21,34,56,0.09); transform:translateY(-1px); }
  .tr-card.is-mine{ border-color:#F0B9B4; box-shadow:0 0 0 1px #F0B9B4, 0 6px 18px rgba(192,69,61,0.08); }
  .trc-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
  .trc-title{ display:flex; flex-direction:column; gap:2px; min-width:0; }
  .trc-title b{ font-size:16px; color:var(--meadow-dark); }
  .trc-title span{ font-size:12.5px; color:var(--slate); }
  .trc-num{ font-family:'Tajawal'; font-weight:900; font-size:17px; color:var(--meadow-dark); }
  .trc-mine{ background:var(--danger); color:#fff; font-size:12px; font-weight:700; border-radius:99px; padding:3px 10px; flex-shrink:0; }
  .trc-closed{ background:var(--green-light); color:#1F6A3C; font-size:12px; font-weight:700; border-radius:99px; padding:3px 10px; flex-shrink:0; }
  .trc-bar{ display:flex; gap:3px; }
  .trc-bar i{ flex:1; height:7px; border-radius:99px; background:#EAEEF4; }
  .trc-bar i.on{ background:var(--status-good); }
  .trc-bar i.cur{ background:var(--gold); }
  .trc-now{ font-size:12.5px; color:var(--slate); line-height:1.6; }
  .trc-now b{ color:var(--ink); font-weight:600; }
  .trc-abs{ display:inline-block; background:var(--danger-light); color:var(--danger); border-radius:99px; padding:0 8px; font-size:11.5px; font-weight:600; }
  .tr-card.is-closed .trc-bar i{ background:var(--status-good); }

  .tr-drawer{ position:fixed; inset:0; z-index:150; background:rgba(11,27,51,0.4); display:flex; justify-content:flex-end; }
  [dir="rtl"] .tr-drawer, .tr-drawer{ justify-content:flex-end; }
  .trd-panel{ width:min(560px, 100%); height:100%; background:#fff; box-shadow:12px 0 40px rgba(11,27,51,0.2); padding:20px 22px 30px; overflow-y:auto; display:flex; flex-direction:column; gap:14px; animation:trdIn 0.2s ease; }
  @keyframes trdIn{ from{ transform:translateX(-24px); opacity:0; } to{ transform:none; opacity:1; } }
  .trd-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
  .trd-head h3{ font-size:21px; font-weight:900; color:var(--meadow-dark); }
  .trd-sub{ font-size:13px; color:var(--slate); margin-top:2px; }
  .trd-close{ width:40px; height:40px; border-radius:12px; background:var(--sand); color:var(--ink); font-size:15px; flex-shrink:0; }
  #trd-tabs{ align-self:flex-start; margin:0; }
  .trd-steps{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
  .trs{ position:relative; display:flex; align-items:center; gap:12px; padding:10px 0; }
  .trs:not(:last-child)::after{ content:''; position:absolute; right:13px; top:38px; bottom:-10px; width:2px; background:#EAEEF4; }
  .trs.done:not(:last-child)::after{ background:#BFE3CC; }
  .trs-dot{ width:28px; height:28px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:12.5px; font-weight:800; background:#EAEEF4; color:var(--slate); position:relative; z-index:1; }
  .trs.done .trs-dot{ background:var(--status-good); color:#fff; }
  .trs.cur .trs-dot{ background:var(--gold); color:#fff; box-shadow:0 0 0 4px var(--gold-light); }
  .trs-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
  .trs-main b{ font-size:14px; font-weight:600; }
  .trs.cur .trs-main b{ font-weight:800; color:var(--meadow-dark); }
  .trs-main span{ font-size:12px; color:var(--slate); }
  .trs-right{ flex-shrink:0; text-align:left; }
  .trs-meta{ font-size:11.5px; color:var(--slate); }
  .trs .stage-approve-btn{ width:auto; padding:8px 16px; }
  .tra-bar{ display:flex; align-items:center; gap:10px; }
  .tra-search{ flex:1; margin:0 !important; padding:10px 12px; }
  .tra-count{ font-size:12.5px; font-weight:700; color:var(--danger); white-space:nowrap; }
  .tra-list{ display:flex; flex-direction:column; gap:10px; margin-top:10px; }
  .tra-gl{ font-size:12.5px; font-weight:800; color:var(--meadow-dark); padding:4px 2px; position:sticky; top:-20px; background:#fff; }
  .tra-gl span{ font-weight:600; color:var(--slate); }
  .tra-row{ display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:10px; cursor:pointer; font-size:13.5px; }
  .tra-row:hover{ background:var(--sand); }
  .tra-row input{ width:18px !important; height:18px; margin:0; accent-color:var(--danger); flex-shrink:0; }
  .tra-row.absent{ background:var(--danger-light); color:#8A3A30; }
  .tra-name{ flex:1; min-width:0; }
  .tra-seat{ font-size:12px; color:var(--slate); font-weight:700; }
  .tra-actions{ position:sticky; bottom:-30px; background:#fff; padding:12px 0 4px; display:flex; align-items:center; gap:12px; border-top:1px solid var(--border); }
  .tra-msg{ font-size:13px; color:#1F6A3C; font-weight:600; }
  @media (max-width: 899px){ .trd-panel{ width:100%; padding:16px 14px 24px; } .tr-board{ grid-template-columns:1fr; } }

  /* ===== الزيارات الصفية ===== */
  #visits-module.panel{ background:transparent; border:0; box-shadow:none; padding:0; }
  .cv-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
  .cv-tools{ display:flex; gap:8px; }
  .cv-dl-status{ font-size:12.5px; color:var(--slate); margin:-6px 0 10px; }
  .cv-dl-status:empty{ display:none; }
  .cv-mine-title{ font-size:20px; font-weight:800; color:var(--meadow-dark); }
  .cv-search{ width:240px !important; margin:0 !important; padding:9px 12px; border-radius:99px; }
  .cv-board{ display:flex; flex-direction:column; gap:10px; }
  .cv-teacher{ background:#fff; border:1px solid var(--border); border-radius:16px; box-shadow:0 1px 3px rgba(21,34,56,0.06); overflow:visible; }
  .cvt-head{ display:flex; align-items:center; gap:12px; width:100%; padding:14px 16px; background:transparent; text-align:right; color:var(--ink); border-radius:16px; }
  .cvt-head:hover{ background:#FAFBFD; }
  .cvt-av{ width:42px; height:42px; border-radius:50%; background:var(--teal-light); color:#0B6E7E; display:flex; align-items:center; justify-content:center; font-family:'Tajawal'; font-weight:800; font-size:14px; flex-shrink:0; }
  .cvt-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
  .cvt-main b{ font-size:15.5px; color:var(--meadow-dark); }
  .cvt-main span{ font-size:12.5px; color:var(--slate); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .cvt-tiers, .cvv-tiers{ display:flex; gap:4px; flex-shrink:0; }
  .cvt-tiers i, .cvv-tiers i{ font-style:normal; font-size:12px; font-weight:700; border-radius:99px; padding:2px 8px; }
  .t-star{ background:#FFF4D6; color:#8A6100; }
  .t-ok{ background:var(--green-light); color:#1F6A3C; }
  .t-imp{ background:#EAF1FC; color:#2455A4; }
  .cvt-count{ font-family:'Tajawal'; font-size:22px; font-weight:900; color:var(--meadow-dark); display:flex; flex-direction:column; align-items:center; line-height:1; min-width:46px; }
  .cvt-count small{ font-family:'IBM Plex Sans Arabic'; font-size:11px; font-weight:500; color:var(--slate); margin-top:3px; }
  .cvt-chev{ color:var(--slate); transition:transform 0.15s; flex-shrink:0; }
  .cv-teacher.open .cvt-chev{ transform:rotate(180deg); }
  .cvt-body{ display:none; border-top:1px solid var(--border); padding:6px 16px 12px; }
  .cv-teacher.open .cvt-body{ display:block; }
  .cv-teacher.open:not([data-key]) .cvt-visits{ padding:6px 16px 12px; }
  .cvt-foot{ padding-top:8px; }
  .cv-visit{ display:flex; align-items:center; gap:12px; padding:11px 0; border-bottom:1px solid #EEF1F6; }
  .cv-visit:last-child{ border-bottom:0; }
  .cvv-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
  .cvv-main b{ font-size:14px; }
  .cvv-main span{ font-size:12.5px; color:var(--slate); }
  .cv-st{ font-size:11.5px; font-weight:700; border-radius:99px; padding:3px 10px; flex-shrink:0; white-space:nowrap; }
  .cv-st.draft{ background:#FDF2DF; color:#7A5410; }
  .cv-st.pub{ background:#EAF1FC; color:#2455A4; }
  .cv-st.seen{ background:var(--green-light); color:#1F6A3C; }
  .cvv-actions{ display:flex; align-items:center; gap:6px; flex-shrink:0; }
  .cvv-actions .btn-secondary{ width:auto; padding:7px 14px; font-size:13px; }
  .row-menu{ position:relative; }
  .row-menu-btn{ width:36px; height:36px; border-radius:10px; background:var(--sand); color:var(--ink); font-size:18px; line-height:1; font-weight:800; }
  .row-menu-btn:hover{ background:#E4E9F1; }
  .row-menu-pop{ position:absolute; top:calc(100% + 4px); left:0; z-index:30; min-width:170px; background:#fff; border:1px solid var(--border); border-radius:12px; box-shadow:0 14px 34px rgba(21,34,56,0.16); padding:5px; display:flex; flex-direction:column; }
  .row-menu-pop button{ width:100%; text-align:right; background:transparent; padding:9px 12px; border-radius:8px; font-size:13.5px; color:var(--ink); }
  .row-menu-pop button:hover{ background:var(--sand); }
  .row-menu-pop button.danger{ color:var(--danger); }
  .row-menu-pop button.danger:hover{ background:var(--danger-light); }
  .cv-unvisited{ display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:10px; }
  .cvu-card{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; background:#fff; border:1px dashed #E3B98F; border-radius:14px; padding:14px; }
  .cvu-card .cvt-av{ background:var(--gold-light); color:#A4501A; }
  .cvu-card b{ font-size:14.5px; color:var(--meadow-dark); }
  .cvu-card span:last-child{ font-size:12px; color:#A4501A; }
  @media (max-width: 899px){
    .cvt-tiers, .cvt-head .cv-st{ display:none; }
    .cv-visit{ flex-wrap:wrap; }
    .cvv-main{ flex:1 0 100%; }
    .cv-search{ width:100% !important; }
  }
  @media (max-width: 899px){
    .cvv-actions{ margin-inline-start:auto; }
    .kpi-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
    .kpi .k-value{ font-size:24px; }
  }

  /* ===== المناوبات اليومية ===== */
  #duty-module.panel{ background:transparent; border:0; box-shadow:none; padding:0; }


  .duty-h{ font-size:20px; font-weight:800; color:var(--meadow-dark); }






  .ds{ font-size:13px; border-radius:99px; padding:6px 12px; background:var(--sand); color:#4A5568; }
  .ds b{ font-family:'Tajawal'; font-size:15px; margin-inline-end:2px; }
  .ds-all{ background:var(--meadow-dark); color:#fff; }
  .ds-present{ background:var(--green-light); color:#1F6A3C; }
  .ds-late{ background:#FDF2DF; color:#7A5410; }
  .ds-absent{ background:var(--danger-light); color:#8A3A30; }





































  /* ===== جدول اليوم والبدلاء ===== */
  #substitutes-module.panel{ background:transparent; border:0; box-shadow:none; padding:0; }
  .dd-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
  .dd-date{ display:flex; align-items:center; gap:6px; }
  .dd-date input{ width:auto !important; margin:0 !important; padding:9px 10px; }
  .dd-nav{ width:38px; height:38px; border-radius:10px; background:var(--sand); color:var(--ink); font-size:16px; font-weight:700; }
  .dd-dayname{ font-family:'Tajawal'; font-size:19px; font-weight:800; color:var(--meadow-dark); margin-inline-start:6px; }
  .dd-actions{ display:flex; gap:6px; flex-wrap:wrap; }
  .dd-actions button{ width:auto; padding:9px 13px; font-size:13px; }
  .dd-actions button:disabled{ opacity:0.45; cursor:not-allowed; }
  .dd-actions .dd-danger{ color:var(--danger); }
  .dd-msg{ position:fixed; bottom:22px; left:50%; transform:translateX(-50%); z-index:160; background:var(--meadow-dark); color:#fff; font-size:13.5px; font-weight:600; padding:11px 18px; border-radius:12px; box-shadow:0 12px 30px rgba(11,27,51,0.25); max-width:calc(100% - 32px); }
  .dd-msg.bad{ background:var(--danger); }
  .dd-layout{ display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:16px; align-items:start; }
  .dd-main{ min-width:0; }
  .dd-stats{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
  .dd-swapbar{ display:flex; align-items:center; justify-content:space-between; gap:10px; background:var(--meadow-dark); color:#fff; border-radius:12px; padding:10px 14px; margin-bottom:10px; font-size:13.5px; font-weight:600; }
  .dd-swapbar button{ width:auto; background:rgba(255,255,255,0.16); color:#fff; padding:6px 12px; font-size:13px; }
  .dd-gridwrap{ overflow-x:auto; background:#fff; border:1px solid var(--border); border-radius:16px; box-shadow:0 1px 3px rgba(21,34,56,0.05); }
  .dd-grid{ width:100%; border-collapse:separate; border-spacing:0; min-width:760px; table-layout:fixed; }
  .dd-grid thead th{ font-size:12.5px; color:var(--slate); font-weight:700; padding:9px 4px; text-align:center; background:#F7F9FC; position:sticky; top:0; }
  .dd-grid .dd-corner{ width:78px; }
  .dd-grid .dd-cls{ font-size:13px; font-weight:700; color:var(--meadow-dark); padding:4px 8px; text-align:right; white-space:nowrap; background:#FBFCFE; border-top:1px solid #EEF1F6; }
  .dd-grid tr.dd-grade-start > *{ border-top:2px solid #DCE3EE; }
  .dd-cell{ position:relative; border-top:1px solid #EEF1F6; border-inline-start:1px solid #EEF1F6; padding:5px 6px; height:52px; vertical-align:middle; text-align:center; cursor:pointer; user-select:none; transition:background 0.1s; }
  .dd-cell:hover{ background:#F5F8FD; }
  .dd-cell:focus-visible{ outline:2px solid var(--teal); outline-offset:-2px; }
  .dc-sub{ display:block; font-size:12px; font-weight:700; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .dc-t{ display:block; font-size:11.5px; color:var(--slate); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .dc-flag{ position:absolute; top:2px; left:3px; font-size:9.5px; font-weight:800; color:#fff; background:var(--danger); border-radius:6px; padding:0 4px; }
  .dd-cell.is-changed{ background:#E8F0FC; }
  .dd-cell.is-changed .dc-t{ color:#1F4F94; font-weight:700; }
  .dd-cell.is-free{ background:repeating-linear-gradient(-45deg, #F3F5F9, #F3F5F9 6px, #FAFBFD 6px, #FAFBFD 12px); }
  .dd-cell.is-free .dc-sub{ color:var(--slate); font-weight:600; }
  .dd-cell.is-out{ background:#FBEAE9; }
  .dd-cell.is-out .dc-t{ color:var(--danger); text-decoration:line-through; }
  .dd-cell.is-conflict{ box-shadow:inset 0 0 0 2px var(--danger); }
  .dd-cell.is-selected{ box-shadow:inset 0 0 0 2px var(--meadow-dark); background:#EEF3FB; }
  .dd-cell.is-swapfrom{ box-shadow:inset 0 0 0 2px var(--gold); background:var(--gold-light); }
  .dd-cell.is-over{ box-shadow:inset 0 0 0 2px var(--teal); background:var(--teal-light); }
  .dd-cell.is-dragging{ opacity:0.4; }
  .dd-cell.is-mine{ background:var(--teal-light); }
  .dd-cell.is-mine .dc-t{ color:#0B6E7E; font-weight:700; }
  .dd-none{ background:#FAFBFC; }
  .dd-off{ padding:30px; text-align:center; color:var(--slate); }
  .dd-legend{ display:flex; flex-wrap:wrap; gap:14px; font-size:12px; color:var(--slate); margin-top:10px; }
  .dd-legend span{ display:inline-flex; align-items:center; gap:6px; }
  .lg{ width:14px; height:14px; border-radius:4px; display:inline-block; }
  .lg-changed{ background:#E8F0FC; border:1px solid #BCD0F0; }
  .lg-out{ background:#FBEAE9; border:1px solid #F0B9B4; }
  .lg-conflict{ background:#fff; box-shadow:inset 0 0 0 2px var(--danger); }
  .lg-free{ background:repeating-linear-gradient(-45deg, #E7EBF2, #E7EBF2 3px, #fff 3px, #fff 6px); }
  .dd-hint{ font-size:12.5px; color:var(--slate); margin:8px 0 0; }
  .dd-side{ position:sticky; top:84px; display:flex; flex-direction:column; gap:12px; max-height:calc(100vh - 100px); overflow-y:auto; }
  .dd-card{ background:#fff; border:1px solid var(--border); border-radius:16px; padding:14px; box-shadow:0 1px 3px rgba(21,34,56,0.05); }
  .dd-card h4{ font-size:15px; font-weight:800; color:var(--meadow-dark); margin:0 0 10px; }
  .dd-card h5{ font-size:13.5px; font-weight:800; color:var(--meadow-dark); margin:14px 0 8px; }
  .dd-card h5 span{ font-weight:500; color:var(--slate); font-size:12px; }
  .dd-status-form{ display:grid; grid-template-columns:1fr 1fr; gap:6px; }
  .dd-status-form select{ margin:0 !important; padding:9px 8px; font-size:13px; }
  #dd-st-teacher{ grid-column:1/-1; }
  .dd-status-form .btn-primary{ width:auto; padding:9px 14px; }
  .dd-status-list{ display:flex; flex-direction:column; gap:6px; margin-top:10px; }
  .dd-st{ display:flex; align-items:center; gap:8px; border-radius:10px; padding:8px 10px; background:var(--danger-light); }
  .dd-st.st-leave, .dd-st.st-late{ background:#FDF2DF; }
  .dd-st-main{ flex:1; min-width:0; display:flex; flex-direction:column; }
  .dd-st-main b{ font-size:13.5px; }
  .dd-st-main span{ font-size:12px; color:var(--slate); }
  .dd-st button{ width:28px; height:28px; padding:0; background:rgba(255,255,255,0.7); color:var(--danger); font-size:12px; border-radius:8px; flex-shrink:0; }
  .dd-empty-panel{ font-size:12.5px; color:var(--slate); margin:4px 0; line-height:1.7; }
  .dcp-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
  .dcp-head > div{ display:flex; flex-direction:column; gap:2px; }
  .dcp-head b{ font-size:15px; color:var(--meadow-dark); }
  .dcp-head span{ font-size:13px; color:var(--ink); }
  .dcp-head .dcp-base{ font-size:12px; color:var(--slate); }
  .dcp-close{ width:30px; height:30px; padding:0; background:var(--sand); color:var(--ink); border-radius:8px; flex-shrink:0; }
  .dcp-warn{ margin-top:8px; background:var(--danger-light); color:#8A3A30; font-size:12.5px; font-weight:600; border-radius:8px; padding:7px 10px; }
  .dcp-actions{ display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
  .dcp-actions button{ width:auto; padding:8px 12px; font-size:13px; }
  .dcp-note{ display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--slate); font-weight:600; margin-top:10px; }
  .dcp-note input{ margin:0 !important; padding:8px 10px; font-size:13px; }
  .dcp-free{ display:flex; flex-direction:column; gap:5px; }
  .dcp-t{ display:flex; flex-direction:column; align-items:flex-start; gap:1px; width:100%; text-align:right; background:#F7F9FC; border:1px solid var(--border); border-radius:10px; padding:8px 10px; color:var(--ink); cursor:grab; }
  .dcp-t:hover{ border-color:var(--teal); background:var(--teal-light); }
  .dcp-t b{ font-size:13.5px; }
  .dcp-t span{ font-size:11.5px; color:var(--slate); }
  .dd-sheet-grip{ display:none; }
  .dd-mine-h{ font-size:17px; font-weight:800; color:var(--meadow-dark); margin:18px 0 8px; }
  .dd-mine-row{ display:flex; flex-direction:column; gap:2px; background:#fff; border:1px solid var(--border); border-inline-start:4px solid var(--teal); border-radius:12px; padding:10px 12px; margin-bottom:6px; }
  .dd-mine-row b{ font-size:14px; }
  .dd-mine-row span{ font-size:12.5px; color:var(--slate); }
  @media (max-width: 1100px){ .dd-layout{ grid-template-columns:minmax(0,1fr) 300px; } }
  @media (max-width: 899px){
    .dd-layout{ grid-template-columns:1fr; }
    .dd-side{ position:static; max-height:none; overflow:visible; }
    .dd-grid{ min-width:620px; }
    .dd-cell{ height:48px; padding:4px; }
    #dd-cell-card{ position:fixed; inset:auto 0 0 0; z-index:140; border-radius:18px 18px 0 0; max-height:72vh; overflow-y:auto; transform:translateY(105%); transition:transform 0.2s ease; box-shadow:0 -12px 40px rgba(11,27,51,0.2); }
    #dd-cell-card.sheet-open{ transform:none; }
    .dd-sheet-grip{ display:block; width:42px; height:5px; border-radius:99px; background:#D5DCE7; margin:-4px auto 10px; }
    .dd-hint{ display:none; }
    .dd-msg{ bottom:auto; top:120px; }
  }
  .dd-layout.single{ grid-template-columns:1fr; }

  /* ===== متابعة الخطة الأسبوعية ===== */
  #weekly-tracking-module.panel{ background:transparent; border:0; box-shadow:none; padding:0; }
  .wt-perms{ margin-bottom:16px; border-top:4px solid var(--purple); }
  .wt-perm-add{ display:flex; gap:8px; margin-top:12px; }
  .wt-perm-add select{ flex:1; margin:0 !important; }
  .wt-grades{ display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:12px; }
  .wt-grade{ background:#fff; border:1px solid var(--border); border-radius:16px; padding:16px; display:flex; flex-direction:column; gap:10px; box-shadow:0 1px 3px rgba(21,34,56,0.05); }
  .wt-gh{ display:flex; align-items:center; justify-content:space-between; }
  .wt-gh b{ font-family:'Tajawal'; font-size:19px; font-weight:800; color:var(--meadow-dark); }
  .wt-gcount{ font-size:13px; font-weight:700; color:#7A5410; background:#FDF2DF; border-radius:99px; padding:3px 10px; }
  .wt-gcount.full{ color:#1F6A3C; background:var(--green-light); }
  .wt-chips{ display:flex; flex-wrap:wrap; gap:6px; }
  .wt-chip{ display:inline-flex; flex-direction:column; border-radius:10px; padding:5px 10px; line-height:1.4; }
  .wt-chip b{ font-size:13px; font-weight:700; }
  .wt-chip span{ font-size:11px; }
  .wt-chip.ok{ background:var(--green-light); color:#1F6A3C; }
  .wt-chip.miss{ background:var(--danger-light); color:#8A3A30; }
  .wt-tlist{ display:grid; grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); gap:8px; }
  .wt-t{ display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--border); border-inline-start:4px solid var(--danger); border-radius:12px; padding:10px 12px; }
  .wt-t .cvt-av{ width:36px; height:36px; font-size:12.5px; background:var(--danger-light); color:#8A3A30; }
  .wt-t-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
  .wt-t-main b{ font-size:14px; }
  .wt-t-main span{ font-size:12px; color:var(--slate); }
  .wt-t-n{ font-family:'Tajawal'; font-size:20px; font-weight:900; color:var(--danger); }

  /* ===== بوابة الموظفين ===== */
  #portal-module.panel{ background:transparent; border:0; box-shadow:none; padding:0; }
  .pt-toolbar{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
  .pt-toolbar .seg-tabs{ margin:0; }
  .pt-actions{ display:flex; gap:8px; margin-inline-start:auto; }
  .pt-panel{ margin-bottom:14px; border-top:4px solid var(--meadow); }
  .pt-hint{ font-size:12.5px; color:var(--slate); margin:-4px 0 10px; }
  #portal-bulk-toggle{ cursor:default !important; }
  #portal-bulk-chevron{ display:none; }
  .pt-list{ display:flex; flex-direction:column; gap:8px; }
  .pt-row{ display:flex; align-items:center; flex-wrap:wrap; gap:12px; background:#fff; border:1px solid var(--border); border-radius:14px; padding:11px 14px; box-shadow:0 1px 3px rgba(21,34,56,0.05); }
  .pt-row.is-unlinked{ border-inline-start:4px solid #E3B98F; }
  .pt-row .cvt-av{ width:40px; height:40px; font-size:13px; }
  .pt-main{ flex:1; min-width:150px; display:flex; flex-direction:column; gap:1px; }
  .pt-main b{ font-size:14.5px; color:var(--meadow-dark); }
  .pt-main span{ font-size:12.5px; color:var(--slate); }
  .pt-acc{ display:flex; align-items:center; gap:6px; }
  .pt-login{ font-size:12px; color:var(--slate); }
  .pt-linkbox{ flex:1 0 100%; display:flex; gap:8px; padding-top:4px; }
  .pt-linkbox.hidden{ display:none !important; }
  .pt-linkbox select{ flex:1; margin:0 !important; }
  @media (max-width: 899px){ .pt-actions{ margin-inline-start:0; width:100%; } .pt-actions button{ flex:1; } .pt-toolbar .seg-tabs{ width:100%; } }

  /* ===== متابعة أداء الموظفين ===== */
  #notes-module .bud-head-title{ display:none; }
  #notes-module .bud-head{ padding:10px 14px; }
  .ev-toolbar{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
  .ev-toolbar select{ width:auto !important; margin:0 !important; padding:9px 12px; border-radius:99px; }
  #notes-module.panel{ background:transparent; border:0; box-shadow:none; padding:0; }

  /* ===== الخطة الأسبوعية ===== */
  #weekly-module.panel{ background:transparent; border:0; box-shadow:none; padding:0; }
  .wp-toolbar{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
  .wp-toolbar .seg-tabs{ margin:0; }
  .wp-week-label{ font-family:'Tajawal'; font-size:16px; font-weight:800; color:var(--meadow-dark); padding:0 4px; }
  .wp-admin-actions{ display:flex; align-items:center; gap:8px; margin-inline-start:auto; flex-wrap:wrap; }
  .wp-admin-actions .btn-secondary{ width:auto; padding:9px 13px; font-size:13px; }
  .wp-publish{ display:inline-flex; align-items:center; gap:8px; cursor:pointer; background:#FDF2DF; color:#7A5410; border-radius:99px; padding:7px 12px 7px 14px; font-size:13px; font-weight:700; }
  .wp-publish.on{ background:var(--green-light); color:#1F6A3C; }
  .wp-publish input{ position:absolute; opacity:0; width:1px !important; height:1px; pointer-events:none; }
  .wp-switch{ width:34px; height:20px; border-radius:99px; background:#D9C29A; position:relative; transition:background 0.15s; flex-shrink:0; }
  .wp-switch::after{ content:''; position:absolute; top:2px; right:2px; width:16px; height:16px; border-radius:50%; background:#fff; transition:right 0.15s; box-shadow:0 1px 2px rgba(0,0,0,0.2); }
  .wp-publish.on .wp-switch{ background:var(--status-good); }
  .wp-publish.on .wp-switch::after{ right:16px; }
  .wp-publish input:focus-visible + .wp-switch{ outline:2px solid var(--teal); outline-offset:2px; }
  .wp-msg{ font-size:12.5px; color:#1F6A3C; background:var(--green-light); border-radius:10px; padding:8px 12px; margin-bottom:12px; word-break:break-all; }
  .wp-note-card{ border-top:4px solid var(--gold); }
  .wp-status{ background:#fff; border:1px solid var(--border); border-radius:16px; padding:14px 16px; margin-bottom:14px; display:flex; flex-direction:column; gap:10px; box-shadow:0 1px 3px rgba(21,34,56,0.05); }
  .wp-status:empty{ display:none; }
  .wp-status-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
  .wp-status-head b{ font-size:15px; color:var(--meadow-dark); }
  .wp-status .wt-chip{ border:0; text-align:right; cursor:pointer; font-family:inherit; }
  .wp-status .wt-chip:hover{ filter:brightness(0.96); }
  #weekly-form-card{ scroll-margin-top:90px; border-top:4px solid var(--meadow); }
  @media (max-width: 899px){ .wp-admin-actions{ margin-inline-start:0; } .wp-toolbar .seg-tabs{ width:100%; } .wp-toolbar .seg-tabs button{ flex:1; } }

  /* ===== تبويبات المراحل العامة (.tabs/.tab) بنفس شكل seg-tabs ===== */
  .tabs{ display:inline-flex; flex-wrap:wrap; gap:4px; background:var(--sand); border-radius:99px; padding:4px; margin-bottom:14px; }
  .tabs .tab{ border:0; background:transparent; border-radius:99px; padding:8px 16px; font-size:14px; font-weight:600; color:var(--slate); white-space:nowrap; width:auto; }
  .tabs .tab:hover{ color:var(--ink); }
  .tabs .tab.active{ background:#fff; color:var(--meadow-dark); box-shadow:0 1px 4px rgba(21,34,56,0.12); }

  /* ===== الجدول الدراسي ===== */
  #schedule-module.panel{ background:transparent; border:0; box-shadow:none; padding:0; }
  .sc-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
  .sc-toolbar .seg-tabs{ margin:0; }
  .sc-import{ border-top:4px solid var(--meadow); }
  .sc-section-row{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
  .sc-section-row label{ font-size:13px; font-weight:700; color:var(--slate); }
  .sc-section-row select{ width:auto !important; min-width:220px; margin:0 !important; }

  /* ===== كشوف المتابعة ===== */
  #followups-module.panel{ background:transparent; border:0; box-shadow:none; padding:0; }
  #followups-module .bud-head-title{ display:none; }
  #followups-module .bud-head{ padding:10px 14px; }

/* ===== مساحة الإدارة: الصلاحيات + ترتيب الأقسام الإدارية ===== */
#perms-module.panel, #opplan-module.panel, #budget-module.panel, #admin-tasks-module.panel,
#computerlab-module.panel, #school-contacts-module.panel{ background:transparent; border:0; box-shadow:none; padding:0; }
#opplan-module .bud-head-title, #budget-module > .bud-head > .bud-head-title, #opplan-subtitle{ display:none; }
#opplan-module .bud-head, #budget-module > .bud-head{ justify-content:flex-start; background:transparent; border:0; box-shadow:none; padding:0; margin-bottom:14px; }
.adm-bar{ display:flex; justify-content:flex-end; margin:4px 0 12px; }
.adm-add-toggle{ width:auto !important; padding:9px 18px !important; }
.adm-add-toggle.is-open{ background:#fff !important; color:var(--navy) !important; border:1px solid var(--border) !important; }

#pm-tabs{ margin-bottom:14px; }
.pm-add{ margin-bottom:14px; }
.pm-add-row{ display:grid; grid-template-columns:2fr 2fr 1.3fr auto; gap:10px; align-items:end; }
.pm-add-row select, .pm-add-row input{ margin:0; }
.pm-add-row .btn-primary{ width:auto; padding:11px 20px; white-space:nowrap; }
.pm-list{ display:flex; flex-direction:column; gap:8px; margin-top:12px; }
.pm-teacher{ display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--border); border-radius:14px; padding:11px 14px; box-shadow:0 1px 3px rgba(21,34,56,0.05); }
.pm-teacher.is-empty{ border-inline-start:4px solid #E3B98F; }
.pm-teacher .cvt-av{ width:40px; height:40px; font-size:13px; flex-shrink:0; }
.pm-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; }
.pm-main b{ font-size:14px; color:var(--navy); }
.pm-chips{ display:flex; flex-wrap:wrap; gap:6px; }
.pm-chip{ display:inline-flex; align-items:center; gap:6px; background:#EEF4FF; color:#2F5DB8; border-radius:999px; padding:4px 6px 4px 12px; font-size:12.5px; font-weight:600; }
.pm-chip button{ border:0; background:rgba(47,93,184,0.12); color:inherit; width:20px; height:20px; border-radius:50%; font-size:10px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; padding:0; font-family:inherit; }
.pm-chip button:hover{ background:#E5484D; color:#fff; }
.pm-none{ font-size:12.5px; color:#B0703A; background:#FFF4EA; border-radius:999px; padding:4px 12px; }
.pm-plus{ flex-shrink:0; width:36px; height:36px; border-radius:10px; border:1px dashed #9DB4DE; background:#F5F8FE; color:#2F5DB8; font-size:20px; cursor:pointer; font-family:inherit; line-height:1; }
.pm-plus:hover{ background:#2F5DB8; color:#fff; border-style:solid; }
@media (max-width:720px){
  .pm-add-row{ grid-template-columns:1fr 1fr; }
  .pm-add-row .btn-primary{ grid-column:1 / -1; width:100%; }
  .pm-teacher{ align-items:flex-start; }
}

/* ===== الخطة التشغيلية: تبويب الموظفين + لوحة الموظف + الاعتماد المجمّع ===== */
.ope-sort{ width:auto; margin:0; }
.ope-add{ display:flex; gap:8px; margin-inline-start:auto; align-items:center; }
.ope-add select{ width:auto; min-width:200px; margin:0; }
.ope-add .btn-primary{ width:auto; padding:10px 16px; white-space:nowrap; }
.ope-list{ display:grid; grid-template-columns:repeat(auto-fill, minmax(340px, 1fr)); gap:10px; margin-top:12px; }
.ope-card{ display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--border); border-radius:14px; padding:12px 14px; box-shadow:0 1px 3px rgba(21,34,56,0.05); text-align:right; cursor:pointer; font-family:inherit; color:inherit; width:100%; transition:border-color .15s, box-shadow .15s; }
.ope-card:hover{ border-color:#9DB4DE; box-shadow:0 4px 14px rgba(21,34,56,0.08); }
.ope-card .cvt-av{ width:42px; height:42px; font-size:13px; flex-shrink:0; }
.ope-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:5px; }
.ope-main b{ font-size:14.5px; color:var(--navy); }
.ope-meta{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; font-size:12px; color:var(--slate); }
.ope-stage{ font-size:11.5px; font-weight:700; border-radius:999px; padding:2px 9px; background:#EEF1F6; color:#5B6678; }
.ope-stage.ok{ background:#E6F6EE; color:#1E8A55; }
.ope-stage.warn{ background:#FFF4E5; color:#B36B00; }
.ope-stage.bad{ background:#FDECEC; color:#C53A3A; }
.ope-bar{ height:7px; background:#EEF1F6; border-radius:99px; overflow:hidden; }
.ope-bar.thin{ height:5px; margin-top:6px; }
.ope-bar i{ display:block; height:100%; background:linear-gradient(90deg, #2F9E6A, #3CB57C); border-radius:99px; }
.ope-side{ display:flex; flex-direction:column; align-items:flex-end; gap:3px; flex-shrink:0; min-width:78px; }
.ope-pct{ font-size:20px; font-weight:900; color:var(--navy); line-height:1; }
.ope-sub{ font-size:11px; color:var(--slate); }
.ope-flags{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:4px; }
.ope-flag{ font-size:11px; font-weight:700; border-radius:999px; padding:2px 8px; white-space:nowrap; }
.ope-flag.wait{ background:#EEF4FF; color:#2F5DB8; }
.ope-flag.late{ background:#FDECEC; color:#C53A3A; }

.ope-kpis{ display:grid; grid-template-columns:repeat(4, 1fr); gap:8px; }
.ope-kpis div{ background:#F7F9FC; border:1px solid var(--border); border-radius:12px; padding:10px; text-align:center; display:flex; flex-direction:column; gap:2px; }
.ope-kpis b{ font-size:19px; color:var(--navy); }
.ope-kpis span{ font-size:11px; color:var(--slate); }
.ope-kpis .bad{ background:#FFF5F5; border-color:#F6CACA; } .ope-kpis .bad b{ color:#C53A3A; }
.ope-kpis .wait{ background:#F3F7FF; border-color:#C9D8F3; } .ope-kpis .wait b{ color:#2F5DB8; }
.ope-sec{ display:flex; flex-direction:column; gap:8px; margin-top:16px; }
.ope-sec-h{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.ope-sec-h h4{ margin:0; font-size:15px; color:var(--navy); }
.ope-sec-h .btn-primary{ width:auto; padding:8px 14px; font-size:13px; }
.ope-hint{ font-size:12px; color:var(--slate); font-weight:500; }
.ope-link{ background:none; border:0; padding:4px 2px; color:#2F5DB8; font-weight:700; font-size:13px; cursor:pointer; font-family:inherit; width:auto; }
.ope-link.strong{ background:#EEF4FF; border-radius:10px; padding:7px 12px; }
.ope-link.danger{ color:#C53A3A; margin-top:22px; align-self:flex-start; font-weight:600; }
.ope-prog{ border:1px solid var(--border); border-radius:12px; padding:10px 12px; background:#fff; }
.ope-prog-h{ display:flex; align-items:flex-start; gap:8px; }
.ope-prog-t{ flex:1; min-width:0; display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.ope-prog-t b{ font-size:13.5px; color:var(--navy); }
.ope-prog-pct{ font-weight:900; color:var(--navy); font-size:14px; }
.ope-unassign{ width:24px; height:24px; border-radius:50%; border:0; background:#F2F4F8; color:#7A8496; font-size:11px; cursor:pointer; padding:0; flex-shrink:0; }
.ope-unassign:hover{ background:#E5484D; color:#fff; }
.ope-tasks{ display:flex; flex-direction:column; margin-top:8px; border-top:1px dashed var(--border); }
.ope-task{ display:flex; align-items:center; gap:10px; padding:7px 0; border-bottom:1px dashed #EEF1F6; font-size:13px; }
.ope-task:last-child{ border-bottom:0; }
.ope-when{ flex-shrink:0; width:84px; font-size:11.5px; font-weight:700; color:var(--slate); }
.ope-tt{ flex:1; min-width:0; color:var(--ink); }
.ope-tt small{ display:block; font-size:11px; color:#C53A3A; margin-top:2px; }
.ope-st{ flex-shrink:0; font-size:11px; font-weight:700; border-radius:999px; padding:3px 9px; background:#EEF1F6; color:#5B6678; white-space:nowrap; }
.ope-st.ok{ background:#E6F6EE; color:#1E8A55; }
.ope-st.wait{ background:#EEF4FF; color:#2F5DB8; }
.ope-st.bad{ background:#FDECEC; color:#C53A3A; }
.ope-st.now{ background:#FFF4E5; color:#B36B00; }
.ope-assign{ background:#F7F9FC; border:1px solid var(--border); border-radius:14px; padding:12px; }
.ope-assign-list{ max-height:340px; overflow-y:auto; background:#fff; }
.ope-assign-actions{ display:flex; align-items:center; gap:10px; }
.ope-assign-actions .btn-primary{ width:auto; padding:9px 18px; }

.ope-appr{ display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--border); border-radius:12px; padding:10px 12px; transition:opacity .15s; }
.ope-appr.busy{ opacity:.45; pointer-events:none; }
.ope-appr-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.ope-appr-main b{ font-size:13.5px; color:var(--navy); }
.ope-appr-main span{ font-size:12px; color:var(--slate); }
.ope-appr-main small{ font-size:11.5px; color:#5B6678; }
.ope-appr-btns{ display:flex; gap:6px; flex-shrink:0; }
.ope-appr-btns button{ width:auto; padding:7px 12px; font-size:12.5px; border-radius:9px; border:0; cursor:pointer; font-family:inherit; font-weight:700; }
.ope-ok{ background:#1E8A55; color:#fff; }
.ope-no{ background:#FDECEC; color:#C53A3A; }
.ope-appr-group{ background:#F7F9FC; border:1px solid var(--border); border-radius:14px; padding:12px; margin-top:12px; }
.ope-who{ display:flex; align-items:center; gap:8px; background:none; border:0; padding:0; cursor:pointer; font-family:inherit; width:auto; color:inherit; }
.ope-who b{ font-size:14.5px; color:var(--navy); }
.ope-who:hover b{ text-decoration:underline; }
.ope-who .cvt-av{ width:34px; height:34px; font-size:12px; }
#opplan-approvals-cnt:empty{ display:none; }
@media (max-width:720px){
  .ope-list{ grid-template-columns:1fr; }
  .ope-add{ width:100%; margin:0; } .ope-add select{ flex:1; min-width:0; }
  .ope-kpis{ grid-template-columns:repeat(2, 1fr); }
  .ope-appr{ flex-direction:column; align-items:stretch; }
  .ope-appr-btns button{ flex:1; }
  .ope-when{ width:64px; }
  .ope-task{ flex-wrap:wrap; } .ope-tt{ flex-basis:calc(100% - 74px); }
}

/* ===== هوية المدرسة ===== */
.br-grid{ display:grid; grid-template-columns:minmax(0, 1.25fr) minmax(0, 1fr); gap:16px; align-items:start; }
.br-form{ margin:0; }
.br-help{ display:block; font-size:12px; color:var(--slate); margin-top:5px; }
.br-logo-row{ display:flex; gap:14px; align-items:center; margin-top:6px; }
.br-logo-box{ width:96px; height:72px; border-radius:12px; border:1px solid var(--border); background:#F7F9FC; display:flex; align-items:center; justify-content:center; flex-shrink:0; overflow:hidden; padding:6px; }
.br-logo-box img{ max-width:100%; max-height:100%; object-fit:contain; }
.br-logo-box.is-empty{ border-style:dashed; }
.br-logo-box span{ font-size:11px; color:#97A1B2; }
.br-logo-info{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.br-logo-info b{ font-size:13.5px; color:var(--navy); }
.br-logo-actions{ display:flex; align-items:center; gap:6px; margin-top:4px; }
.br-upload{ display:inline-flex; align-items:center; background:#EEF4FF; color:#2353A5; border-radius:10px; padding:7px 14px; font-weight:700; font-size:13px; cursor:pointer; }
.br-upload:hover{ background:#DCE8FD; }
.br-upload:focus-within{ outline:2px solid #2353A5; outline-offset:2px; }
.br-remove{ margin:0 !important; }
.br-auth{ flex-wrap:wrap; }
.br-save-row{ display:flex; align-items:center; gap:12px; margin-top:18px; }
.br-save-row .btn-primary{ width:auto; padding:11px 24px; }
.br-saved{ color:#1E8A55; font-weight:700; font-size:13.5px; }
.br-preview-col{ position:sticky; top:84px; display:flex; flex-direction:column; gap:8px; background:#F7F9FC; border:1px solid var(--border); border-radius:16px; padding:16px; }
.br-preview-col h4{ margin:0 0 4px; font-size:15px; color:var(--navy); }
.br-prev-label{ font-size:12px; color:var(--slate); font-weight:600; margin-top:6px; }
.br-prev-nav{ display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--border); border-radius:12px; padding:10px 14px; }
.br-prev-nav img{ height:34px; width:auto; max-width:80px; object-fit:contain; }
.br-prev-nav .brand-bar{ display:block; width:3px; height:24px; border-radius:2px; background:#0E93A8; flex-shrink:0; }
.br-prev-nav span{ font-family:'Tajawal', sans-serif; font-weight:800; font-size:15px; color:var(--navy); }
.br-prev-doc{ background:#fff; border:1px solid var(--border); border-radius:6px; padding:14px; box-shadow:0 2px 10px rgba(21,34,56,0.06); }
.br-prev-head{ display:flex; align-items:center; gap:10px; border-bottom:2px solid #1F3E70; padding-bottom:10px; }
.br-prev-logo{ width:76px; height:44px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.br-prev-logo img{ max-width:100%; max-height:100%; object-fit:contain; }
.br-prev-titles{ flex:1; text-align:center; display:flex; flex-direction:column; gap:2px; }
.br-prev-titles b{ font-size:14px; color:#1F3E70; }
.br-prev-titles span{ font-size:11.5px; color:#3A4558; }
.br-prev-lines{ display:flex; flex-direction:column; gap:7px; margin-top:12px; }
.br-prev-lines i{ display:block; height:7px; border-radius:4px; background:#EEF1F6; }
@media (max-width:900px){ .br-grid{ grid-template-columns:1fr; } .br-preview-col{ position:static; } }

/* ===== زر الإعدادات بالشريط العلوي ===== */
.tn-gear{ width:44px; height:44px; border-radius:50%; background:#fff; border:1px solid var(--border); color:var(--slate); display:flex; align-items:center; justify-content:center; padding:0; cursor:pointer; flex-shrink:0; transition:color .15s, border-color .15s, background .15s; }
.tn-gear:hover{ color:#2353A5; border-color:#9DB4DE; }
.tn-gear.active{ background:#0F2447; border-color:#0F2447; color:#fff; }
.tn-gear:focus-visible{ outline:2px solid #2353A5; outline-offset:2px; }
.tn-gear svg{ transition:transform .4s ease; }
.tn-gear:hover svg{ transform:rotate(45deg); }
@media (prefers-reduced-motion: reduce){ .tn-gear svg{ transition:none; } .tn-gear:hover svg{ transform:none; } }

/* ===== صفحة الإعدادات ===== */
#settings-module.panel{ background:transparent; border:0; box-shadow:none; padding:0; }
.st-layout{ display:grid; grid-template-columns:250px minmax(0, 1fr); gap:20px; align-items:start; }
.st-nav{ position:sticky; top:84px; display:flex; flex-direction:column; gap:4px; background:#fff; border:1px solid var(--border); border-radius:16px; padding:8px; }
.st-nav button{ display:flex; flex-direction:column; align-items:flex-start; gap:1px; text-align:right; background:transparent; border:0; border-radius:11px; padding:10px 12px; cursor:pointer; font-family:inherit; color:var(--ink); width:100%; border-inline-start:3px solid transparent; }
.st-nav button b{ font-size:14px; font-weight:700; }
.st-nav button small{ font-size:11.5px; color:var(--slate); }
.st-nav button:hover{ background:#F3F6FB; }
.st-nav button.active{ background:#EEF4FF; border-inline-start-color:#2353A5; }
.st-nav button.active b{ color:#2353A5; }
.st-nav button:focus-visible{ outline:2px solid #2353A5; outline-offset:1px; }
.st-body{ min-width:0; }
.st-head{ margin-bottom:14px; }
.st-head h3{ font-size:20px; color:var(--navy, #0F2447); margin:0 0 3px; }
.st-head p{ font-size:13px; color:var(--slate); margin:0; }
.st-embed{ background:transparent; border:0; padding:0; box-shadow:none; }
.st-card{ margin-bottom:14px; }
.st-card h4{ margin:0 0 6px; }
.st-help{ font-size:12.5px; color:var(--slate); margin:0 0 12px; line-height:1.7; }
.st-help.warn{ color:#B36B00; margin:10px 0 0; }
.st-upload-row{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.st-upload-row input[type=file]{ flex:1; min-width:220px; margin:0; }
.st-upload-row .btn-primary{ width:auto; padding:11px 20px; }
.st-upload-row .btn-primary:disabled{ opacity:.7; cursor:wait; }
.st-ok{ display:inline-block; margin-top:10px; background:#E6F6EE; color:#1E8A55; font-weight:700; font-size:13px; border-radius:10px; padding:8px 12px; }
.st-ok.err{ background:#FDECEC; color:#C53A3A; }
#st-semester{ display:inline-flex; }
.st-kpis{ display:grid; grid-template-columns:1.3fr repeat(3, 1fr); gap:10px; margin-bottom:14px; }
.st-kpi{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:12px 14px; display:flex; flex-direction:column; gap:2px; }
.st-kpi b{ font-family:'Tajawal', sans-serif; font-size:24px; color:var(--navy, #0F2447); line-height:1.1; }
.st-kpi span{ font-size:12px; color:var(--slate); }
.st-kpi.main{ background:#0F2447; border-color:#0F2447; }
.st-kpi.main b{ color:#fff; } .st-kpi.main span{ color:#BFD3F0; }
.st-grade{ display:flex; align-items:flex-start; gap:14px; padding:10px 0; border-bottom:1px dashed var(--border); }
.st-grade:last-of-type{ border-bottom:0; }
.st-grade-h{ width:120px; flex-shrink:0; display:flex; flex-direction:column; }
.st-grade-h b{ font-size:14px; color:var(--navy, #0F2447); }
.st-grade-h span{ font-size:12px; color:var(--slate); }
.st-secs{ display:flex; flex-wrap:wrap; gap:6px; }
.st-sec{ display:inline-flex; align-items:center; gap:6px; background:#F3F6FB; border-radius:10px; padding:5px 10px 5px 6px; font-size:12.5px; color:#4A5568; }
.st-sec b{ background:#fff; border:1px solid var(--border); border-radius:7px; min-width:24px; height:24px; display:inline-flex; align-items:center; justify-content:center; color:var(--navy, #0F2447); font-size:12.5px; }
.st-sec.warn{ background:#FFF4E5; color:#B36B00; }
.st-hint{ font-size:12.5px; color:var(--slate); }
.ess-link{ font-size:13px; font-weight:700; color:#2353A5; text-decoration:none; padding:6px 10px; border-radius:9px; }
.ess-link:hover{ background:#EEF4FF; }
.op-sem-label{ font-weight:800; color:var(--navy, #0F2447); font-size:13.5px; }
@media (max-width:900px){
  .st-layout{ grid-template-columns:1fr; gap:12px; }
  .st-nav{ position:static; flex-direction:row; overflow-x:auto; padding:6px; scrollbar-width:none; }
  .st-nav button{ width:auto; flex-shrink:0; border-inline-start:0; border-bottom:3px solid transparent; }
  .st-nav button small{ display:none; }
  .st-nav button.active{ border-bottom-color:#2353A5; }
  .st-kpis{ grid-template-columns:1fr 1fr; }
  .st-kpi.main{ grid-column:1 / -1; }
  .st-grade{ flex-direction:column; gap:6px; }
}

/* ===== الاختبار بنموذجين ===== */
.as-models-box{ background:#F7F9FC; border:1px solid var(--border); border-radius:10px; padding:9px 11px; margin-bottom:8px; }
.as-models-on{ display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:700; cursor:pointer; margin:0; }
.as-models-on input{ width:auto; margin:0; }
#as-models-opts{ margin-top:8px; display:flex; flex-direction:column; gap:8px; }
.as-models-mode{ font-size:12.5px; font-weight:700; display:flex; flex-direction:column; gap:4px; }
.as-models-mode select{ margin:0; }
.as-model-tabs{ align-self:flex-start; }
.as-models-hint{ font-size:11.5px; color:var(--slate); margin:0; }
.as-ord{ width:auto; margin:0; padding:3px 4px; font-size:11.5px; border-radius:7px; }
.as-dist{ background:#fff; border:1px solid var(--border); border-radius:10px; padding:9px 11px; margin-top:8px; }
.as-dist-head{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; font-size:12.5px; }
.as-dist-head b{ color:var(--navy, #0F2447); }
.as-dist-list{ display:flex; flex-direction:column; gap:2px; max-height:260px; overflow-y:auto; margin-top:8px; border-top:1px dashed var(--border); padding-top:6px; }
.as-dist-row{ display:flex; align-items:center; gap:8px; font-size:12.5px; padding:3px 0; }
.as-dist-row span{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.as-dist-row small{ color:var(--slate); flex-shrink:0; }
.as-dist-m{ width:30px; height:26px; border-radius:8px; border:0; font-weight:900; font-family:inherit; cursor:pointer; padding:0; flex-shrink:0; }
.as-dist-m.a{ background:#EEF4FF; color:#2353A5; }
.as-dist-m.b{ background:#FFF4E5; color:#B36B00; }
.er-models-sum{ background:#F7F9FC; border:1px solid var(--border); border-radius:12px; padding:12px 14px; }
.er-models-h{ display:flex; flex-wrap:wrap; align-items:baseline; gap:8px; }
.er-models-h b{ color:var(--navy, #0F2447); font-size:14px; }
.er-models-h span{ font-size:12.5px; color:var(--slate); }
.er-models-p{ font-size:12.5px; color:var(--slate); margin:0; }
.er-unknown{ margin-top:10px; border-top:1px dashed var(--border); padding-top:8px; }
.er-unknown p{ font-size:12.5px; color:#B36B00; margin:0 0 6px; font-weight:600; }
.er-unk-row{ display:flex; align-items:center; gap:8px; font-size:12.5px; padding:3px 0; font-weight:400; }
.er-unk-row span{ flex:1; min-width:0; }
.er-unk-row small{ color:var(--slate); direction:ltr; }
.er-unk-row select{ width:auto; margin:0; padding:5px 8px; }
.er-unk-hint{ font-style:normal; font-size:11px; color:var(--slate); white-space:nowrap; }
.er-mpick{ display:inline-flex; gap:4px; flex:0 0 auto !important; }
.er-mpick button{ width:30px; height:30px; border-radius:50%; border:1.5px solid #C9CED8; background:#fff; color:var(--ink); font-weight:700; font-size:13px; padding:0; cursor:pointer; }
.er-mpick button.on{ background:var(--meadow); border-color:var(--meadow); color:#fff; }
.er-model-switch{ margin:4px 0 12px; }
.er-mixed-note{ background:#FFF4E5; color:#8A5200; border-radius:10px; padding:10px 12px; font-size:13px; margin-bottom:12px; }

/* ===== شريط علوي كحلي + خلفية صفحة رمادية فاتحة باردة (البطاقات البيضاء تبرز عليها) ===== */
:root{ --canvas:#F2F5FA; --nav-bg:#0F2447; --nav-bg2:#173A73; }
.topnav{ background:linear-gradient(100deg, var(--nav-bg) 0%, #12305E 60%, var(--nav-bg2) 100%); backdrop-filter:none; border-bottom:0; box-shadow:0 2px 14px rgba(11,27,51,0.18); }
.topnav .brand span{ color:#fff; }
/* نفس تنسيق الشعار: مُدار | اسم المدرسة */
.topnav .brand{ gap:12px; }
.topnav .brand .brand-bar{ display:block; width:3px; height:26px; border-radius:2px; background:#38C1D3; flex-shrink:0; }
.topnav .brand span{ font-size:16px; letter-spacing:0; }
@media (max-width: 720px){ .topnav .brand .brand-bar{ height:22px; } .topnav .brand{ gap:9px; } }
.topnav .brand img.on-chip{ background:#fff; border-radius:10px; padding:3px 6px; }
.topnav .tn-pill{ color:rgba(255,255,255,0.82); }
.topnav .tn-pill:hover{ background:rgba(255,255,255,0.1); color:#fff; }
.topnav .tn-pill.active, .topnav .tn-pill.active:hover{ background:#fff; color:#0F2447; font-weight:700; }
.topnav .tn-pill:focus-visible{ outline-color:#7FD8CF; }
.topnav .tn-search{ background:rgba(255,255,255,0.08); border-color:rgba(255,255,255,0.18); color:rgba(255,255,255,0.8); }
.topnav .tn-search:hover{ background:rgba(255,255,255,0.14); border-color:rgba(255,255,255,0.3); color:#fff; }
.topnav .tn-search kbd{ background:rgba(255,255,255,0.1); border-color:rgba(255,255,255,0.22); color:rgba(255,255,255,0.75); }
.topnav .tn-gear{ background:rgba(255,255,255,0.08); border-color:rgba(255,255,255,0.18); color:rgba(255,255,255,0.85); }
.topnav .tn-gear:hover{ background:rgba(255,255,255,0.14); color:#fff; border-color:rgba(255,255,255,0.3); }
.topnav .tn-gear.active{ background:#fff; color:#0F2447; border-color:#fff; }
.topnav .tn-avatar{ background:#2FC1B2; color:#0B2B3A; }
.topnav .tn-avatar:hover, .topnav .tn-avatar[aria-expanded="true"]{ box-shadow:0 0 0 3px rgba(47,193,178,0.35); }
@media (max-width: 899px){
  .topnav .tn-pill{ background:rgba(255,255,255,0.08); }
  .topnav .tn-pill.active{ background:#fff; }
}
.as-assign-tabs{ align-self:flex-start; margin-top:4px; }
#as-assign-hint{ display:block; font-weight:400; margin-top:4px; }

/* زر اعتماد جدول اليوم: نقطة تنبيه لو فيه تعديلات ما انعتمدت */
.dd-approve{ position:relative; }
.dd-approve.dirty::after{ content:''; position:absolute; top:-3px; inset-inline-end:-3px; width:10px; height:10px; border-radius:50%; background:var(--danger, #C0453D); box-shadow:0 0 0 2px #fff; }

/* ===== التنبيهات (جرس + لوحة جانبية) ===== */
.nt-bell{ position:relative; }
.nt-badge{ position:absolute; top:-3px; inset-inline-end:-3px; min-width:19px; height:19px; padding:0 5px; border-radius:99px; background:#E5484D; color:#fff; font:800 11px/19px 'Tajawal', sans-serif; text-align:center; box-shadow:0 0 0 2px var(--navy, #0F2447); }
.nt-wrap{ position:fixed; inset:0; z-index:200; display:flex; justify-content:flex-start; }
.nt-wrap.hidden{ display:none; }
.nt-overlay{ position:absolute; inset:0; background:rgba(11,27,51,.42); }
.nt-panel{ position:relative; width:min(460px, 100%); height:100%; background:#fff; box-shadow:-12px 0 40px rgba(11,27,51,.2); display:flex; flex-direction:column; animation:ntIn .18s ease; }
@keyframes ntIn{ from{ transform:translateX(30px); opacity:0; } to{ transform:none; opacity:1; } }
.nt-head{ display:flex; align-items:center; gap:10px; padding:16px 18px 12px; border-bottom:1px solid var(--border, #E3E8F0); }
.nt-head h3{ flex:1; margin:0; font-size:18px; font-weight:800; color:var(--navy, #0F2447); }
.nt-icon{ width:34px; height:34px; border-radius:10px; border:1px solid var(--border, #E3E8F0); background:#fff; color:var(--slate); font-size:15px; cursor:pointer; }
.nt-tabs{ display:flex; gap:6px; padding:10px 18px; border-bottom:1px solid var(--border, #E3E8F0); }
.nt-tabs button{ border:0; background:var(--sand, #F3F6FB); color:var(--slate); font:700 13px inherit; font-family:inherit; padding:8px 12px; border-radius:10px; cursor:pointer; }
.nt-tabs button.on{ background:var(--navy, #0F2447); color:#fff; }
.nt-tabs .nt-new{ margin-inline-start:auto; background:var(--meadow, #2455A4); color:#fff; }
.nt-body{ flex:1; overflow-y:auto; padding:14px 18px 28px; }
.nt-empty{ text-align:center; color:var(--slate); padding:40px 10px; font-size:14px; line-height:1.8; }
.nt-empty.sm{ padding:12px; font-size:13px; }
.nt-list{ display:flex; flex-direction:column; gap:8px; }
.nt-item{ display:flex; flex-direction:column; gap:5px; text-align:right; width:100%; border:1px solid var(--border, #E3E8F0); background:#fff; border-radius:14px; padding:12px 14px; cursor:pointer; font-family:inherit; position:relative; }
.nt-item:hover{ border-color:#C9D6EE; }
.nt-item.unread{ background:#F4F8FF; border-color:#C9D9F5; }
.nt-item.unread::before{ content:''; position:absolute; top:16px; inset-inline-start:-4px; width:8px; height:8px; border-radius:50%; background:var(--meadow, #2455A4); }
.nt-item-top{ display:flex; justify-content:space-between; gap:10px; align-items:baseline; }
.nt-item-top b{ font-size:14.5px; color:var(--ink, #152238); }
.nt-time{ font-size:11.5px; color:var(--slate); white-space:nowrap; }
.nt-item-meet{ font-size:12.5px; color:var(--meadow-dark, #1C4486); }
.nt-item-sub{ display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:12px; color:var(--slate); }
.nt-chip{ font-size:11px; font-weight:700; padding:3px 9px; border-radius:99px; white-space:nowrap; }
.nt-chip.ok{ background:#E4F5EC; color:#16794A; }
.nt-chip.wait{ background:#FFF3E3; color:#A85A0E; }
.nt-detail h2{ font-size:20px; margin:0 0 4px; color:var(--navy, #0F2447); }
.nt-detail h4{ font-size:14px; margin:18px 0 8px; color:var(--ink); }
.nt-meta{ font-size:12.5px; color:var(--slate); margin-bottom:12px; }
.nt-meet{ background:#EEF4FD; border-radius:12px; padding:10px 14px; font-size:13.5px; line-height:1.9; color:var(--ink); margin-bottom:12px; }
.nt-text{ white-space:pre-line; font-size:14px; line-height:1.9; color:var(--ink); margin:0 0 14px; }
.nt-resp{ border-top:1px solid var(--border, #E3E8F0); padding-top:14px; display:flex; flex-direction:column; gap:10px; }
.nt-resp-h{ font-size:13px; font-weight:700; color:var(--slate); }
.nt-choices{ display:flex; flex-wrap:wrap; gap:8px; }
.nt-choice{ border:1.5px solid var(--border, #E3E8F0); background:#fff; border-radius:12px; padding:10px 16px; font:700 14px inherit; font-family:inherit; cursor:pointer; color:var(--ink); }
.nt-choice.on{ background:var(--meadow, #2455A4); border-color:var(--meadow, #2455A4); color:#fff; }
.nt-resp textarea, .nt-form input, .nt-form textarea{ width:100%; box-sizing:border-box; border:1.5px solid var(--border, #E3E8F0); border-radius:12px; padding:10px 12px; font:inherit; font-size:14px; }
.nt-msg{ display:none; margin-top:10px; font-size:13px; font-weight:700; color:var(--meadow-dark, #1C4486); }
.nt-msg.show{ display:block; }
.nt-form{ display:flex; flex-direction:column; gap:8px; }
.nt-form label{ font-size:13px; font-weight:800; color:var(--ink); margin-top:6px; }
.nt-form label small{ color:var(--slate); font-weight:600; }
.nt-groups, .nt-seg, .nt-opt-quick{ display:flex; flex-wrap:wrap; gap:6px; }
.nt-groups button, .nt-seg button, .nt-opt-quick button{ border:1px solid var(--border, #E3E8F0); background:#fff; border-radius:10px; padding:7px 12px; font:700 12.5px inherit; font-family:inherit; cursor:pointer; color:var(--ink); }
.nt-seg button.on{ background:var(--navy, #0F2447); border-color:var(--navy, #0F2447); color:#fff; }
.nt-people{ max-height:220px; overflow-y:auto; border:1px solid var(--border, #E3E8F0); border-radius:12px; padding:4px; }
.nt-person{ display:flex !important; align-items:center; gap:8px; padding:7px 9px; border-radius:9px; cursor:pointer; margin:0 !important; font-weight:600 !important; }
.nt-person:hover{ background:var(--sand, #F3F6FB); }
.nt-person.on{ background:#EEF4FD; }
.nt-person input{ width:auto !important; }
.nt-person span{ flex:1; font-size:13.5px; }
.nt-person small{ font-size:11px; color:var(--slate); }
.nt-count{ font-size:12px; color:var(--slate); }
.nt-row2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.nt-row2 > div{ display:flex; flex-direction:column; gap:6px; }
@media (max-width:480px){ .nt-row2{ grid-template-columns:1fr; } }
.nt-opts{ display:flex; flex-direction:column; gap:8px; }
.nt-opts.hidden{ display:none; }
.nt-opt-list{ display:flex; flex-direction:column; gap:6px; }
.nt-opt{ display:flex; gap:6px; }
.nt-opt button{ border:0; background:var(--sand, #F3F6FB); border-radius:10px; width:38px; cursor:pointer; color:var(--slate); }
.nt-submit{ margin-top:12px; padding:13px; font-size:15px; }
.nt-stats{ display:grid; grid-template-columns:repeat(auto-fit, minmax(90px, 1fr)); gap:8px; margin:6px 0 4px; }
.nt-stats > div{ background:var(--sand, #F3F6FB); border-radius:12px; padding:10px; text-align:center; }
.nt-stats b{ display:block; font:800 22px 'Tajawal', sans-serif; color:var(--navy, #0F2447); }
.nt-stats span{ font-size:12px; color:var(--slate); }
.nt-opt-res{ margin-bottom:12px; }
.nt-opt-res-top{ display:flex; justify-content:space-between; font-size:14px; margin-bottom:5px; }
.nt-bar{ height:8px; background:var(--sand, #F3F6FB); border-radius:99px; overflow:hidden; margin-bottom:6px; }
.nt-bar i{ display:block; height:100%; background:var(--meadow, #2455A4); border-radius:99px; }
.nt-names{ display:flex; flex-wrap:wrap; gap:5px; }
.nt-name{ background:#fff; border:1px solid var(--border, #E3E8F0); border-radius:99px; padding:3px 10px; font-size:12px; }
.nt-none{ color:var(--slate); font-size:12px; }
.nt-reply{ border:1px solid var(--border, #E3E8F0); border-radius:12px; padding:9px 12px; margin-bottom:8px; }
.nt-reply b{ font-size:13px; }
.nt-reply p{ margin:4px 0 0; font-size:13.5px; white-space:pre-line; line-height:1.8; }
.nt-actions{ display:flex; gap:8px; margin-top:18px; flex-wrap:wrap; }
.nt-del{ color:var(--danger, #C0453D) !important; }
@media print{ .nt-wrap, .nt-bell{ display:none !important; } }

/* ===== ملفات الإنجاز ===== */
#achv-root{ display:flex; flex-direction:column; gap:14px; }
.av-empty{ text-align:center; color:var(--slate); padding:28px 12px; }
.av-setup h3{ margin:0 0 6px; font-family:'Tajawal'; color:var(--meadow-dark); }
.av-setup p{ margin:0 0 12px; color:var(--slate); font-size:13.5px; line-height:1.7; }
.av-url-row{ display:flex; gap:8px; flex-wrap:wrap; }
.av-url-row input{ flex:1 1 320px; min-width:0; padding:10px 12px; border:1px solid var(--border); border-radius:10px; font-size:13px; }
.av-url-row .btn-primary{ width:auto; padding:10px 18px; }
.av-source{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:12px 14px; box-shadow:var(--shadow-sm); }
.av-source-info{ display:flex; gap:10px; align-items:flex-start; min-width:0; flex:1 1 280px; }
.av-source-info b{ display:block; font-size:14px; color:var(--ink); }
.av-source-info span{ display:block; font-size:12.5px; color:var(--slate); line-height:1.6; }
.av-dot{ width:10px; height:10px; border-radius:50%; background:var(--status-idle); margin-top:6px; flex-shrink:0; }
.av-dot.ok{ background:var(--status-good); }
.av-source-actions{ display:flex; gap:8px; }
.av-source-actions button{ width:auto; padding:8px 14px; font-size:13px; }
.av-stats{ grid-template-columns:repeat(4,1fr); margin-bottom:0; }
@media (max-width:720px){ .av-stats{ grid-template-columns:repeat(2,1fr); } }
.av-note{ background:var(--gold-light); color:#8a4a12; border-radius:10px; padding:10px 12px; font-size:13px; line-height:1.7; }
.av-note.good{ background:var(--green-light); color:#1d6b3c; }
.av-toolbar{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.av-toolbar input, .av-toolbar select{ padding:8px 10px; border:1px solid var(--border); border-radius:10px; font-size:13px; background:#fff; min-width:0; }
.av-toolbar input, .av-toolbar select, .av-url-row input{ width:auto; margin:0; }
.av-toolbar input{ flex:1 1 180px; }
.av-toolbar select{ flex:0 1 auto; }
.av-toolbar button{ width:auto; padding:8px 14px; font-size:13px; }
.av-grow{ flex:1 1 0; }
.av-list{ display:flex; flex-direction:column; gap:8px; }
.av-row{ background:#fff; border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow-sm); }
.av-row.open{ border-color:#c9d6ee; }
.av-row-main{ display:grid; grid-template-columns:minmax(170px,1.3fr) minmax(130px,.8fr) minmax(0,2fr) 170px; gap:12px; align-items:center; padding:10px 12px; }
.av-toggle{ background:none; border:0; padding:0; text-align:right; cursor:pointer; min-width:0; font:inherit; }
.av-name{ display:block; font-weight:700; font-size:14px; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.av-spec{ display:block; font-size:12px; color:var(--slate); }
.av-toggle:hover .av-name{ color:var(--meadow); }
.av-toggle:focus-visible{ outline:2px solid var(--meadow); outline-offset:3px; border-radius:6px; }
.av-progress{ display:flex; align-items:center; gap:8px; }
.av-bar{ flex:1; height:8px; border-radius:99px; background:#EEF1F5; overflow:hidden; }
.av-bar i{ display:block; height:100%; border-radius:99px; background:var(--status-idle); }
.av-bar.good i{ background:var(--status-good); } .av-bar.warn i{ background:var(--status-warn); } .av-bar.bad i{ background:var(--status-bad); }
.av-pct{ font-family:'Tajawal'; font-size:15px; min-width:40px; text-align:left; }
.av-pct.good{ color:var(--status-good); } .av-pct.warn{ color:#9a7012; } .av-pct.bad{ color:var(--status-bad); }
.av-missing{ display:flex; flex-wrap:wrap; gap:5px; min-width:0; }
.av-chip{ font-size:11.5px; padding:3px 8px; border-radius:99px; background:var(--danger-light); color:var(--danger); white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
.av-chip.part{ background:#FDF3DC; color:#8a6410; }
.av-chip.ok{ background:var(--green-light); color:#1d6b3c; }
.av-chip.more{ background:#EEF1F5; color:var(--slate); }
.av-link{ padding:6px 8px; border:1px solid var(--border); border-radius:8px; font-size:12px; background:#fff; width:100%; min-width:0; transition:border-color .2s, box-shadow .2s; }
.av-link.saved{ border-color:var(--status-good); box-shadow:0 0 0 3px var(--green-light); }
@media (max-width:900px){
  .av-row-main{ grid-template-columns:1fr 1fr; }
  .av-missing{ grid-column:1 / -1; }
  .av-link{ grid-column:1 / -1; }
}
.av-detail{ border-top:1px solid var(--border); padding:10px 12px 12px; overflow-x:auto; }
.av-table{ width:100%; border-collapse:collapse; font-size:12.5px; }
.av-table th{ text-align:right; color:var(--slate); font-weight:600; padding:6px 8px; border-bottom:1px solid var(--border); white-space:nowrap; }
.av-table td{ padding:6px 8px; border-bottom:1px solid #F1F3F6; }
.av-table td:nth-child(n+2){ white-space:nowrap; }
.av-table tr.opt td{ color:var(--slate); }
.av-table tr.extra td{ color:var(--slate); font-style:italic; }
.av-table small{ color:var(--slate); font-weight:400; }
.av-st{ font-size:11.5px; padding:2px 8px; border-radius:99px; }
.av-st.ok{ background:var(--green-light); color:#1d6b3c; } .av-st.part{ background:#FDF3DC; color:#8a6410; } .av-st.none{ background:var(--danger-light); color:var(--danger); }
.av-mine{ display:flex; flex-direction:column; gap:12px; }
.av-mine-head{ display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; }
.av-mine-head h3{ margin:0; font-family:'Tajawal'; color:var(--meadow-dark); }
.av-mine-head span{ font-size:12px; color:var(--slate); }
.av-progress.big{ flex:0 1 260px; } .av-progress.big .av-bar{ height:10px; } .av-progress.big .av-pct{ font-size:20px; }
.av-hint{ font-size:12px; color:var(--slate); margin:0; }
.av-modal{ position:fixed; inset:0; background:rgba(11,27,51,.45); display:flex; align-items:center; justify-content:center; z-index:1000; padding:16px; }
.av-modal-card{ background:#fff; border-radius:16px; padding:20px; width:min(520px,100%); max-height:86vh; display:flex; flex-direction:column; gap:10px; box-shadow:var(--shadow-md); }
.av-modal-card h3{ margin:0; font-family:'Tajawal'; color:var(--meadow-dark); }
.av-modal-card p{ margin:0; font-size:13px; color:var(--slate); line-height:1.7; }
.av-modal-card .av-warn{ color:#8a4a12; background:var(--gold-light); padding:8px 10px; border-radius:8px; }
.av-check-all{ font-size:13px; font-weight:700; display:flex; gap:6px; align-items:center; }
.av-pick{ overflow:auto; border:1px solid var(--border); border-radius:10px; padding:4px; display:flex; flex-direction:column; }
.av-pick label{ display:flex; gap:8px; align-items:center; padding:7px 8px; border-radius:8px; font-size:13px; cursor:pointer; }
.av-pick label:hover{ background:var(--sand); }
.av-pick span{ flex:1; }
.av-pick small{ color:var(--danger); font-size:11.5px; }
.av-modal-actions{ display:flex; gap:8px; justify-content:flex-start; }
.av-modal-actions button{ width:auto; padding:9px 18px; }
.av-toast{ position:fixed; bottom:22px; left:50%; transform:translateX(-50%); background:var(--meadow-dark); color:#fff; padding:10px 18px; border-radius:12px; font-size:13.5px; z-index:1100; box-shadow:var(--shadow-md); max-width:calc(100% - 32px); text-align:center; }
.av-toast.bad{ background:var(--danger); }
.av-modal input[type=checkbox]{ width:16px; height:16px; flex:none; margin:0; }
.av-tablewrap{ overflow-x:auto; }
.av-table td:first-child{ min-width:150px; }
@media (max-width:520px){ .av-table th:nth-child(5), .av-table td:nth-child(5){ display:none; } .av-table th, .av-table td{ padding:6px 4px; } .av-table td:first-child{ min-width:115px; } .av-mine{ padding:14px; } }
.av-link.need{ border-color:var(--status-warn); background:#FFF9EC; color:#8a6410; font-weight:600; }
.av-note-link{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.av-note-link .btn-secondary{ width:auto; padding:6px 12px; font-size:12.5px; }
.av-nofolder{ font-size:12px; color:var(--danger); background:var(--danger-light); border-radius:8px; padding:6px 10px; text-align:center; }
.av-nofolder-box{ display:flex; flex-direction:column; gap:4px; align-items:stretch; }
.av-exclude{ font-size:11.5px; color:var(--slate); background:none; border:0; cursor:pointer; text-decoration:underline; padding:2px; }
.av-exclude:hover{ color:var(--meadow); }
.av-excluded{ background:#fff; border:1px solid var(--border); border-radius:12px; padding:10px 14px; font-size:13px; }
.av-excluded summary{ cursor:pointer; color:var(--slate); font-weight:600; }
.av-exc-row{ display:flex; justify-content:space-between; align-items:center; padding:6px 0; border-bottom:1px solid #F1F3F6; }
.av-exc-row:last-child{ border-bottom:0; }
.av-restore{ font-size:12px; background:none; border:0; color:var(--meadow); cursor:pointer; }
.av-found summary{ color:var(--meadow-dark); } .av-found .av-table td:first-child{ min-width:0; color:var(--slate); }
.dd-mine-badge{ font-size:12px; font-weight:700; background:var(--gold-light); color:#8a4a12; border-radius:99px; padding:3px 10px; margin-inline-start:8px; vertical-align:middle; }
.dd-mine-row.k-sub{ border-inline-start-color:var(--gold); background:#FFFBF5; }
.dd-mine-row.k-sub span{ color:#8a4a12; font-weight:600; }
.dd-mine-row.k-moved{ border-inline-start-color:var(--status-idle); opacity:.8; }
.dd-mine-row.k-moved b{ text-decoration:line-through; text-decoration-color:var(--status-idle); }

/* ===== التصحيح بكاميرا الجوال ===== */
.er-teacher .er-flow, .er-teacher #er-upload-toggle, .er-teacher #er-upload-card{ display:none !important; }
.erc-chips i.erc-cam{ background:var(--teal-light); color:var(--teal); }
.omr-card{ padding:18px; margin-bottom:14px; }
.omr-head{ display:flex; gap:12px; align-items:center; margin-bottom:14px; }
.omr-head > div{ display:flex; flex-direction:column; gap:2px; }
.omr-head b{ font-size:15px; }
.omr-head span{ font-size:12.5px; color:var(--slate); }
.omr-ic{ width:42px; height:42px; border-radius:12px; background:var(--teal-light); color:var(--teal); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.omr-ic svg{ width:24px; height:24px; }
.omr-lbl{ display:block; font-size:12.5px; font-weight:700; color:var(--slate); margin-bottom:6px; }
#omr-key{ width:100%; }
.omr-key-info{ display:flex; flex-wrap:wrap; gap:6px; margin:10px 0 4px; font-size:12px; }
.omr-key-info i{ font-style:normal; background:var(--sand); border-radius:99px; padding:3px 10px; color:var(--ink); }
.omr-warn{ color:var(--danger); font-weight:700; }
.omr-err{ color:var(--danger); font-size:13px; padding:10px 0; }
.omr-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }
.omr-actions .btn-primary, .omr-actions .btn-secondary{ width:auto; padding:11px 18px; }
.omr-file-btn{ display:inline-flex; align-items:center; cursor:pointer; }
.omr-tips{ margin-top:14px; font-size:12px; color:var(--slate); line-height:1.8; background:var(--sand); border-radius:12px; padding:10px 12px; }
.omr-scans-head{ display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:8px; }
.omr-scans-head h4{ margin:0; font-size:15px; display:flex; align-items:center; gap:8px; }
.omr-scans-head .btn-secondary{ width:auto; padding:8px 14px; }
.omr-count{ background:var(--meadow); color:#fff; border-radius:99px; font-size:12px; padding:1px 9px; }
.omr-secs{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.omr-secs i{ font-style:normal; font-size:11.5px; background:var(--teal-light); color:var(--teal); border-radius:99px; padding:2px 9px; }
.omr-list{ display:flex; flex-direction:column; gap:6px; max-height:420px; overflow:auto; }
.omr-row{ display:flex; align-items:center; gap:10px; border:1px solid var(--border); border-radius:12px; padding:9px 12px; cursor:pointer; background:#fff; }
.omr-row:hover{ border-color:var(--meadow); }
.omr-row-main{ flex:1; min-width:0; display:flex; flex-direction:column; }
.omr-row-main b{ font-size:13.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.omr-row-main small{ font-size:11.5px; color:var(--slate); }
.omr-score{ font-weight:800; font-size:14px; color:var(--meadow-dark); direction:ltr; }
.omr-del{ width:auto; background:none; border:0; color:var(--slate); font-size:14px; padding:4px 6px; cursor:pointer; }
.omr-del:hover{ color:var(--danger); }
.omr-empty{ color:var(--slate); font-size:12.5px; }
body.omr-noscroll{ overflow:hidden; }
.omr-cam{ position:fixed; inset:0; z-index:3000; background:#000; color:#fff; }
.omr-cam video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.omr-cam-ov{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.omr-cam-top{ position:absolute; top:0; left:0; right:0; display:flex; align-items:center; gap:10px; padding:calc(10px + env(safe-area-inset-top)) 12px 10px; background:linear-gradient(rgba(0,0,0,0.6), transparent); }
.omr-cam-title{ flex:1; display:flex; flex-direction:column; text-align:center; }
.omr-cam-title b{ font-size:14px; }
.omr-cam-title span{ font-size:12px; opacity:0.85; }
.omr-cam-x, .omr-cam-torch{ width:42px; height:42px; border-radius:50%; border:0; background:rgba(255,255,255,0.18); color:#fff; font-size:18px; padding:0; }
.omr-cam-torch.on{ background:#F2B705; color:#000; }
.omr-cam-msg{ position:absolute; left:50%; transform:translateX(-50%); bottom:calc(120px + env(safe-area-inset-bottom)); background:rgba(0,0,0,0.65); border-radius:99px; padding:8px 16px; font-size:13.5px; white-space:nowrap; max-width:92vw; overflow:hidden; text-overflow:ellipsis; }
.omr-cam-bottom{ position:absolute; bottom:0; left:0; right:0; display:flex; align-items:center; justify-content:space-between; padding:16px 18px calc(20px + env(safe-area-inset-bottom)); background:linear-gradient(transparent, rgba(0,0,0,0.6)); }
.omr-auto{ font-size:12.5px; display:flex; align-items:center; gap:6px; min-width:90px; }
.omr-auto input{ width:18px; height:18px; }
.omr-shutter{ width:72px; height:72px; border-radius:50%; border:5px solid #fff; background:rgba(255,255,255,0.25); padding:0; }
.omr-shutter:active{ background:#fff; }
.omr-cam.flash-ok::after, .omr-cam.flash-bad::after{ content:''; position:absolute; inset:0; pointer-events:none; animation:omrFlash 0.5s ease-out forwards; }
.omr-cam.flash-ok::after{ background:rgba(47,210,122,0.45); }
.omr-cam.flash-bad::after{ background:rgba(224,65,58,0.4); }
@keyframes omrFlash{ from{ opacity:1; } to{ opacity:0; } }
.omr-rev-wrap{ position:fixed; inset:0; z-index:3100; background:rgba(11,27,51,0.55); display:flex; align-items:flex-end; justify-content:center; }
.omr-rev{ background:#fff; color:var(--ink); width:100%; max-width:640px; max-height:92vh; border-radius:20px 20px 0 0; display:flex; flex-direction:column; box-shadow:0 -8px 30px rgba(0,0,0,0.25); }
@media (min-width: 700px){ .omr-rev-wrap{ align-items:center; } .omr-rev{ border-radius:20px; } }
.omr-rev-head{ display:flex; align-items:flex-start; gap:10px; padding:16px 18px 10px; border-bottom:1px solid var(--border); }
.omr-rev-st{ flex:1; min-width:0; display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; }
.omr-rev-st b{ font-size:15.5px; }
.omr-rev-st span{ font-size:12.5px; color:var(--slate); }
.omr-rev-st .ope-link{ width:auto; font-size:12.5px; }
.omr-rev-x{ width:36px; height:36px; border-radius:50%; border:0; background:var(--sand); font-size:15px; padding:0; flex-shrink:0; }
.omr-dup{ width:100%; font-size:12px; color:#8A6200; background:#FFF6D9; border-radius:8px; padding:5px 9px; margin-top:4px; }
.omr-rev-body{ overflow:auto; padding:12px 18px; flex:1; }
.omr-rev-score{ display:flex; flex-direction:column; align-items:center; gap:2px; margin-bottom:10px; }
.omr-big{ font-size:34px; font-weight:900; color:var(--meadow-dark); direction:ltr; line-height:1.1; }
.omr-big small{ font-size:16px; color:var(--slate); font-weight:700; }
.omr-sub{ font-size:12.5px; color:var(--slate); }
.omr-unsure{ font-size:12.5px; color:#8A6200; background:#FFF6D9; border-radius:99px; padding:3px 12px; margin-top:4px; }
.omr-rev-model, .omr-rev-essay{ display:flex; align-items:center; justify-content:center; gap:8px; margin:8px 0; font-size:13.5px; border-radius:12px; padding:6px; }
.omr-rev-model.un, .omr-rev-essay.un{ background:#FFF6D9; }
.omr-rev-model button{ width:44px; height:38px; border-radius:10px; border:1.5px solid var(--border); background:#fff; font-weight:800; font-size:15px; padding:0; }
.omr-rev-model button.on{ background:var(--meadow); border-color:var(--meadow); color:#fff; }
.omr-rev-essay input{ width:80px; text-align:center; display:inline-block; margin:0 4px; }
.omr-legend{ display:flex; flex-wrap:wrap; justify-content:center; gap:4px 12px; font-size:11.5px; color:var(--slate); margin:8px 0; }
.omr-legend i{ display:inline-block; width:11px; height:11px; border-radius:3px; vertical-align:-1px; margin-inline-end:3px; }
.omr-legend i.ok{ background:#DDF3E5; border:1px solid #18A957; } .omr-legend i.no{ background:#FBE3E1; border:1px solid #E0413A; }
.omr-legend i.bl{ background:#EEF0F4; border:1px solid #9AA3AF; } .omr-legend i.un{ background:#FFF6D9; border:2px solid #F2B705; }
.omr-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(54px, 1fr)); gap:6px; position:relative; }
.omr-q{ width:auto; display:flex; flex-direction:column; align-items:center; gap:0; border-radius:10px; padding:4px 2px; border:1.5px solid transparent; font-family:inherit; }
.omr-q small{ font-size:10.5px; color:var(--slate); line-height:1.2; }
.omr-q b{ font-size:14.5px; line-height:1.3; }
.omr-q.ok{ background:#DDF3E5; border-color:#9BD9B3; color:#0F6B35; }
.omr-q.no{ background:#FBE3E1; border-color:#F0A9A4; color:#A4261F; }
.omr-q.bl{ background:#EEF0F4; border-color:#D5D9E0; color:#5B6573; }
.omr-q.bl b{ font-size:12px; }
.omr-q.un{ border:2.5px solid #F2B705; box-shadow:0 0 0 2px #FFF1B8; }
.omr-q.ed::after{ content:'✎'; font-size:9px; position:absolute; margin-top:-2px; margin-inline-start:34px; color:var(--slate); }
.omr-qpick{ grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:6px; background:var(--sand); border-radius:12px; padding:8px; }
.omr-qpick b{ font-size:12.5px; margin-inline-end:4px; }
.omr-qpick button{ width:auto; min-width:42px; height:36px; border-radius:9px; border:1.5px solid var(--border); background:#fff; font-weight:700; padding:0 10px; }
.omr-qpick button.on{ background:var(--meadow); color:#fff; border-color:var(--meadow); }
.omr-photo{ margin-top:12px; }
.omr-photo summary{ cursor:pointer; font-size:12.5px; color:var(--meadow); font-weight:700; }
.omr-thumb{ width:100%; height:auto; display:block; margin-top:8px; border:1px solid var(--border); border-radius:8px; }
.omr-rev-foot{ display:flex; gap:10px; padding:12px 18px calc(14px + env(safe-area-inset-bottom)); border-top:1px solid var(--border); }
.omr-rev-foot .btn-primary{ flex:1; padding:13px; font-size:15px; }
.omr-rev-foot .text-action-btn{ width:auto; padding:10px 14px; }
.omr-pick{ width:100%; margin-top:8px; }
.omr-pick-row{ display:flex; gap:6px; margin-bottom:6px; }
.omr-pick-row select{ flex:1; }
.omr-pick-q{ width:100%; margin-bottom:6px; }
.omr-pick-list{ display:flex; flex-direction:column; gap:4px; max-height:190px; overflow:auto; }
.omr-pick-list button{ width:100%; text-align:start; display:flex; justify-content:space-between; gap:8px; background:#fff; border:1px solid var(--border); border-radius:9px; padding:8px 10px; font-family:inherit; }
.omr-pick-list button b{ font-size:13px; font-weight:700; }
.omr-pick-list button small{ font-size:11.5px; color:var(--slate); white-space:nowrap; }

/* ===== كشوف الطلاب (مصمم الكشوف) ===== */
.sl-empty{ padding:24px; text-align:center; color:var(--slate); }
.sl-wrap{ display:grid; grid-template-columns:minmax(300px, 380px) 1fr; gap:18px; align-items:start; }
@media (max-width: 960px){ .sl-wrap{ grid-template-columns:1fr; } }
.sl-side{ display:flex; flex-direction:column; gap:12px; }
.sl-box{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:14px; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; gap:9px; }
.sl-box h5{ margin:0; font-size:14px; color:var(--meadow-dark); }
.sl-box label{ font-size:12px; color:var(--slate); font-weight:600; display:flex; flex-direction:column; gap:4px; }
.sl-box input[type=text], .sl-box input[type=number], .sl-box select{ width:100%; }
.sl-row{ display:flex; gap:8px; align-items:center; }
.sl-row select{ flex:1; min-width:0; }
.sl-row .btn-secondary, .sl-row .text-action-btn{ width:auto; padding:8px 12px; white-space:nowrap; }
.sl-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.sl-note{ font-size:11.5px; color:var(--slate); margin:0; line-height:1.6; }
.sl-note.bad{ color:var(--danger); }
.sl-presets{ display:flex; flex-wrap:wrap; gap:6px; }
.sl-chip{ width:auto; border:1px solid var(--border); background:var(--sand); border-radius:99px; padding:6px 11px; font-size:12px; font-weight:600; color:var(--ink); cursor:pointer; }
.sl-chip:hover{ border-color:var(--meadow); color:var(--meadow); }
.sl-classes{ display:flex; flex-direction:column; gap:8px; }
.sl-grade{ display:flex; flex-direction:column; gap:5px; }
.sl-box label.sl-gl{ flex-direction:row; align-items:center; gap:6px; color:var(--ink); font-size:13px; }
.sl-secs{ display:flex; flex-wrap:wrap; gap:5px; padding-inline-start:22px; }
.sl-box label.sl-sec{ flex-direction:row; align-items:center; justify-content:center; min-width:38px; height:32px; border:1.5px solid var(--border); border-radius:9px; cursor:pointer; color:var(--ink); font-size:13px; padding:0 8px; }
.sl-sec input{ display:none; }
.sl-box label.sl-sec.on{ background:var(--meadow); border-color:var(--meadow); color:#fff; }
.sl-col{ border:1px solid var(--border); border-radius:11px; padding:8px; display:flex; flex-direction:column; gap:6px; background:#FBFCFE; }
.sl-col + .sl-col{ margin-top:6px; }
.sl-col-top{ display:flex; justify-content:space-between; align-items:center; }
.sl-col-type{ font-size:11px; font-weight:700; color:var(--teal); background:var(--teal-light); border-radius:99px; padding:2px 8px; }
.sl-col-btns{ display:flex; gap:3px; }
.sl-col-btns button{ width:28px; height:26px; padding:0; border-radius:7px; border:1px solid var(--border); background:#fff; font-size:11px; color:var(--slate); cursor:pointer; }
.sl-col-btns button:disabled{ opacity:0.35; cursor:default; }
.sl-col-btns button.del:hover{ color:var(--danger); border-color:var(--danger); }
.sl-col-f{ display:flex; flex-wrap:wrap; gap:6px; align-items:flex-end; }
.sl-col-f > input[data-f=title]{ flex:1 1 140px; min-width:0; }
.sl-box label.sl-w{ flex-direction:row; align-items:center; gap:4px; font-size:11px; white-space:nowrap; }
.sl-w input{ width:58px !important; padding:6px !important; }
.sl-labels{ flex:1 1 100%; font-size:12px; }
.sl-auto{ font-size:11px; color:var(--slate); padding:8px 4px; }
.sl-seg{ display:flex; gap:6px; }
.sl-seg button{ flex:1; padding:9px; border-radius:10px; border:1.5px solid var(--border); background:#fff; font-weight:700; cursor:pointer; }
.sl-seg button.active{ border-color:var(--meadow); background:var(--meadow-light); color:var(--meadow-dark); }
.sl-checks{ display:flex; flex-direction:column; gap:5px; }
.sl-box .sl-checks label, .sl-box label.sl-share{ flex-direction:row; align-items:center; gap:6px; color:var(--ink); font-weight:500; }
.sl-lbl{ font-size:12px; color:var(--slate); font-weight:700; }
.sl-signs{ display:flex; flex-wrap:wrap; gap:5px; }
.sl-box label.sl-chip-chk{ flex-direction:row; align-items:center; gap:4px; border:1.5px solid var(--border); border-radius:99px; padding:4px 10px; font-size:12px; color:var(--ink); cursor:pointer; }
.sl-chip-chk input{ display:none; }
.sl-box label.sl-chip-chk.on{ border-color:var(--meadow); background:var(--meadow-light); color:var(--meadow-dark); }
.sl-actions{ flex-direction:row; flex-wrap:wrap; }
.sl-actions > .btn-primary, .sl-actions > .btn-secondary{ width:auto; padding:10px 16px; }
.sl-save{ flex:1 1 100%; display:flex; flex-wrap:wrap; gap:8px; align-items:center; border-top:1px dashed var(--border); padding-top:10px; }
.sl-save input{ flex:1 1 160px; }
.sl-save .btn-secondary{ width:auto; padding:9px 14px; }
.sl-actions .sl-note{ flex:1 1 100%; }
.sl-preview-wrap{ position:sticky; top:84px; background:var(--sand); border-radius:16px; padding:14px; }
@media (max-width: 960px){ .sl-preview-wrap{ position:static; } }
.sl-prev-head{ display:flex; justify-content:space-between; gap:10px; font-size:13px; margin-bottom:10px; color:var(--slate); }
.sl-prev-head b{ color:var(--ink); }
.sl-frame{ margin:0 auto; overflow:hidden; background:#fff; border-radius:6px; box-shadow:0 6px 22px rgba(16,23,40,0.12); }
.sl-frame iframe{ border:0; display:block; background:#fff; }
.sl-box input[type=checkbox]{ width:auto !important; flex:0 0 auto; margin:0; }
.sl-box label.sl-gl{ justify-content:flex-start; }

/* ===== تحديث التخصصات من الجدول ===== */
#sc-sync-card{ margin-bottom:16px; }
.ss-note{ font-size:12.5px; color:var(--slate); margin:0; }
.ss-note.bad{ color:var(--danger); }
.ss-sec{ margin-bottom:14px; }
.ss-sec h5{ margin:0 0 8px; font-size:13.5px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ss-ok{ color:var(--green); }
.ss-bad{ color:var(--danger); font-size:12px; background:var(--danger-light); border-radius:99px; padding:1px 9px; }
.ss-map{ display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:6px; }
.ss-map-row{ display:flex; align-items:center; gap:8px; background:var(--sand); border-radius:10px; padding:6px 10px; font-size:13px; font-weight:700; }
.ss-map-row.miss{ background:#FFF4E5; box-shadow:inset 0 0 0 1.5px #F2B705; }
.ss-map-row span{ min-width:84px; }
.ss-map-row select{ flex:1; min-width:0; padding:6px 8px; font-size:12.5px; }
.ss-warn{ background:#FFF6D9; border-radius:10px; padding:10px 12px; font-size:12.5px; line-height:1.7; }
.ss-sum{ font-weight:500; font-size:12.5px; color:var(--slate); }
.ss-sum .add{ color:var(--green); } .ss-sum .rem{ color:var(--danger); }
.ss-list{ display:flex; flex-direction:column; gap:6px; max-height:520px; overflow:auto; }
.ss-row{ display:flex; gap:10px; align-items:flex-start; border:1px solid var(--border); border-radius:11px; padding:8px 12px; background:#fff; }
.ss-name{ min-width:170px; font-size:13px; }
.ss-name small{ color:var(--slate); font-weight:500; }
.ss-chips{ display:flex; flex-wrap:wrap; gap:5px; flex:1; }
.ss-chip{ font-size:12px; border-radius:99px; padding:3px 10px; display:inline-flex; align-items:center; gap:5px; }
.ss-chip.add{ background:var(--green-light); color:var(--green); font-weight:700; }
.ss-chip.keep{ background:var(--sand); color:var(--slate); }
.ss-chip.rem{ background:var(--danger-light); color:var(--danger); font-weight:700; cursor:pointer; }
.ss-chip.rem input{ width:auto; margin:0; }
.ss-chip.rem.kept{ background:var(--sand); color:var(--slate); text-decoration:line-through; font-weight:500; }
.ss-foot{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.ss-foot .btn-primary{ width:auto; padding:10px 20px; }
@media (max-width: 640px){ .ss-row{ flex-direction:column; } .ss-name{ min-width:0; } }
.pm-sync{ margin-bottom:14px; }
.pm-sync-head{ display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; }
.ss-gone{ color:var(--danger) !important; }
.ss-warn h5{ margin:0 0 8px; }
.ss-warn .ss-map{ margin-bottom:6px; }
.pm-line{ display:flex; align-items:flex-start; gap:8px; margin-top:6px; }
.pm-lbl{ font-size:11px; font-weight:700; color:var(--slate); min-width:86px; padding-top:4px; }
.pm-cls{ font-size:12px; font-weight:700; background:var(--teal-light); color:var(--teal); border-radius:8px; padding:3px 9px; direction:rtl; }
.pm-cnt{ font-size:11.5px; color:var(--slate); padding:3px 4px; }
.pm-none.muted{ background:var(--sand); color:var(--slate); }
@media (max-width: 640px){ .pm-line{ flex-direction:column; gap:3px; } }

/* ===== ورقة الإجابة: خطوات التصميم ===== */
.as-steps{ display:flex; gap:4px; margin-bottom:14px; background:var(--sand); border-radius:14px; padding:5px; overflow-x:auto; }
.as-steps button{ flex:1; min-width:0; display:flex; align-items:center; justify-content:center; gap:6px; border:0; background:transparent; border-radius:10px; padding:8px 6px; font-size:12.5px; font-weight:700; color:var(--slate); cursor:pointer; white-space:nowrap; }
.as-steps button i{ font-style:normal; width:22px; height:22px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:#fff; border:1.5px solid var(--border); font-size:11.5px; flex-shrink:0; }
.as-steps button.active{ background:#fff; color:var(--meadow-dark); box-shadow:0 1px 4px rgba(21,34,56,0.12); }
.as-steps button.active i{ background:var(--meadow); border-color:var(--meadow); color:#fff; }
.as-steps button.done i{ background:var(--green-light); border-color:var(--green); color:var(--green); }
@media (max-width: 640px){ .as-steps button span{ display:none; } .as-steps button.active span{ display:inline; } }
.as-step{ min-height:220px; }
.as-step-h{ margin:0 0 12px; font-size:15px; color:var(--meadow-dark); }
.as-f{ display:flex; flex-direction:column; gap:4px; font-size:12.5px; font-weight:700; margin-bottom:10px; }
.as-f input, .as-f select{ margin:0 !important; }
.as-split{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.as-q-sum{ font-size:12.5px; background:var(--meadow-light); color:var(--meadow-dark); border-radius:10px; padding:8px 12px; margin:2px 0 12px; }
.as-q-sum.bad{ background:var(--danger-light); }
.as-load{ margin-top:14px; border-top:1px dashed var(--border); padding-top:12px; display:flex; flex-direction:column; gap:6px; font-size:12.5px; color:var(--slate); font-weight:700; }
.as-export{ display:flex; flex-direction:column; gap:10px; }
.as-exp-card{ border:1px solid var(--border); border-radius:12px; padding:12px; display:flex; flex-direction:column; gap:6px; background:#fff; }
.as-exp-card b{ font-size:14px; }
.as-exp-card > span{ font-size:12px; color:var(--slate); }
.as-step-nav{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:16px; padding-top:12px; border-top:1px solid var(--border); }
.as-step-msg{ flex:1; text-align:center; font-size:12.5px; color:var(--danger); font-weight:600; }
.as-key-secs{ display:flex; flex-wrap:wrap; gap:6px; font-weight:500; }
.as-key-secs .as-muted{ font-size:12px; color:var(--slate); font-weight:500; }
.as-ks{ display:inline-flex; align-items:center; justify-content:center; min-width:38px; height:32px; padding:0 10px; border:1.5px solid var(--border); border-radius:9px; cursor:pointer; font-size:13px; }
.as-ks input{ display:none; }
.as-ks.on{ background:var(--meadow); border-color:var(--meadow); color:#fff; }

/* جدولك اليوم: تظليل الحصة الجارية */
.ps-line{ display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:10px; background:var(--sand, #F6F3EC); font-size:13.5px; margin-top:6px; border:1.5px solid transparent; transition:background .3s, opacity .3s; }
.ps-time{ direction:ltr; unicode-bidi:isolate; font-size:11.5px; color:var(--slate, #5B6472); min-width:78px; text-align:center; font-variant-numeric:tabular-nums; flex-shrink:0; }
.ps-txt{ flex:1; min-width:0; }
.ps-now{ background:#E3F5EA; border-color:#2E8B57; font-weight:700; box-shadow:0 2px 8px rgba(46,139,87,.18); }
.ps-now .ps-time{ color:#1F6A3C; font-weight:700; }
.ps-soon{ background:#FDF6E3; border-color:#E8D29A; }
.ps-past{ opacity:.5; }
.ps-hl{ background:#FDEDEC; color:#9B2F28; }
.ps-hl.ps-now{ border-color:#9B2F28; }
.ps-tag{ font-size:11.5px; padding:3px 9px; border-radius:999px; white-space:nowrap; flex-shrink:0; }
.ps-tag.now{ background:#2E8B57; color:#fff; animation:psPulse 2s ease-in-out infinite; }
.ps-tag.soon{ background:#F2DFA7; color:#7A5410; }
@keyframes psPulse{ 0%,100%{ opacity:1; } 50%{ opacity:.7; } }
@media (max-width:520px){ .ps-line{ flex-wrap:wrap; } .ps-time{ min-width:0; } }

/* ===================== المناوبات (الإصدار الجديد) ===================== */
#duty-module.panel{ background:transparent; border:0; box-shadow:none; padding:0; }
.db{ display:flex; flex-direction:column; gap:14px; }
.db-loading,.db-empty{ background:var(--white); border:1px dashed var(--border); border-radius:var(--radius); padding:28px 18px; text-align:center; color:var(--slate); font-size:14px; display:flex; flex-direction:column; gap:6px; }
.db-empty b{ color:var(--ink); font-size:15px; }
.db-empty.sm{ padding:14px; border:0; }
.db-tmain{ min-width:0; }
.db-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.db-h{ margin:0; font-size:22px; color:var(--ink); }
.db-sub{ font-size:13px; color:var(--slate); margin-top:2px; }
.db-tabs{ display:inline-flex; background:var(--white); border:1px solid var(--border); border-radius:12px; padding:4px; gap:2px; }
.db-tab{ border:0; background:transparent; padding:8px 16px; border-radius:9px; font:inherit; font-size:14px; color:var(--slate); cursor:pointer; min-height:38px; }
.db-tab.on{ background:var(--ink); color:#fff; font-weight:600; }
.db-tab:focus-visible,.db-cell:focus-visible,.db-chip:focus-visible,.db-trow:focus-visible,.db-prow:focus-visible{ outline:2px solid var(--meadow); outline-offset:2px; }

.db-fair{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:10px; }
.db-fair-item{ background:var(--white); border:1px solid var(--border); border-radius:12px; padding:12px 14px; display:flex; flex-direction:column; gap:2px; text-align:start; font:inherit; color:inherit; }
.db-fair-item b{ font-size:22px; color:var(--ink); font-variant-numeric:tabular-nums; }
.db-fair-item b small{ font-size:13px; color:var(--slate); font-weight:500; }
.db-fair-item span{ font-size:12.5px; color:var(--slate); }
.db-bar{ display:block; height:5px; background:var(--sand); border-radius:9px; overflow:hidden; margin-top:6px; }
.db-bar > i{ display:block; height:100%; background:var(--status-good); border-radius:9px; transition:width .3s; }
.db-fair-empty{ cursor:pointer; }
.db-fair-empty.warn{ border-color:#EBC9A0; background:#FFF8EE; }
.db-fair-empty.warn b{ color:#A4501A; }
.db-fair-empty:hover{ border-color:var(--meadow); }

.db-daybar{ display:flex; gap:6px; overflow-x:auto; padding-bottom:2px; scrollbar-width:none; }
.db-chip{ border:1px solid var(--border); background:var(--white); color:var(--ink); border-radius:999px; padding:7px 14px; font:inherit; font-size:13px; cursor:pointer; white-space:nowrap; min-height:36px; }
.db-chip.on{ background:var(--ink); border-color:var(--ink); color:#fff; }
.db-chip.today:not(.on){ border-color:var(--meadow); color:var(--meadow); }
.db-chip.sm{ padding:5px 11px; font-size:12.5px; min-height:32px; }
.db-chip.ghost{ border-style:dashed; color:var(--slate); }
.db-hint{ font-size:12.5px; color:var(--slate); display:flex; align-items:center; gap:4px; flex-wrap:wrap; }

.db-slot{ background:var(--white); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); }
.db-slot-h{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:11px 16px; background:var(--bg); border-bottom:1px solid var(--border); border-inline-start:4px solid var(--c); }
.db-slot-t{ font-weight:700; color:var(--c); font-size:15px; }
.db-slot-time{ font-size:12.5px; color:var(--ink); background:rgba(255,255,255,.75); border-radius:999px; padding:2px 10px; font-variant-numeric:tabular-nums; }
.db-slot-note{ font-size:12px; color:var(--slate); }
.db-slot-count{ margin-inline-start:auto; font-size:12px; color:var(--slate); font-variant-numeric:tabular-nums; }
.db-slot-count.full{ color:var(--status-good); font-weight:700; }
.db-twrap{ overflow-x:auto; }
.db-table{ width:100%; border-collapse:collapse; table-layout:fixed; min-width:640px; }
.db-table.single{ min-width:0; }
.db-table th,.db-table td{ border-bottom:1px solid #F0F1F4; padding:4px; }
.db-table thead th{ font-size:12px; color:var(--slate); font-weight:600; padding:8px 4px; background:#FBFCFD; }
.db-table thead th:first-child{ width:150px; text-align:start; padding-inline-start:14px; }
.db-table.single thead th:first-child{ width:45%; }
.db-table thead th.today{ color:var(--meadow); }
.db-table tbody tr:last-child th,.db-table tbody tr:last-child td{ border-bottom:0; }
.db-post{ text-align:start; font-size:13px; font-weight:600; color:var(--ink); padding-inline-start:14px !important; line-height:1.35; }
.db-post.slot{ border-inline-start:3px solid var(--c); background:var(--bg); }
.db-post.slot span{ display:block; color:var(--c); }
.db-post.slot small{ font-weight:500; color:var(--slate); font-size:11px; }
.db-cell{ position:relative; width:100%; min-height:42px; border-radius:9px; font:inherit; font-size:12.5px; line-height:1.3; cursor:pointer; padding:5px 6px; transition:background .15s, border-color .15s, transform .1s; }
.db-cell:active:not(:disabled){ transform:scale(.97); }
.db-cell.empty{ border:1.5px dashed #D8DCE3; background:transparent; color:#A3ABB7; font-size:17px; }
.db-cell.empty:hover:not(:disabled){ border-color:var(--meadow); color:var(--meadow); background:var(--meadow-light); }
.db-cell.filled{ border:1px solid #DCE5F3; background:#F5F8FD; color:var(--ink); font-weight:600; }
.db-cell.filled:hover:not(:disabled){ border-color:var(--meadow); }
.db-cell.filled.slotc{ background:var(--bg); border-color:transparent; color:var(--c); }
.db-cell.me{ background:#E7F5EC; border-color:#9FD3B3; }
.db-cell:disabled{ cursor:default; }
.db-cell.empty:disabled{ border:0; font-size:13px; }
.db-cell.empty.clash{ border-color:#EBC9A0; background:#FFF8EE; }
.db-cl{ font-size:10.5px; color:#A4501A; font-weight:500; }
.db-dot{ position:absolute; top:5px; inset-inline-end:5px; width:7px; height:7px; border-radius:50%; background:#E07A34; }
.db-dot.inline{ position:static; display:inline-block; }

/* النافذة السفلية */
.db-noscroll{ overflow:hidden; }
.db-back{ position:fixed; inset:0; background:rgba(11,27,51,.38); z-index:1000; display:flex; align-items:center; justify-content:center; padding:16px; opacity:0; transition:opacity .18s; }
.db-back.show{ opacity:1; }
.db-sheet{ background:var(--white); border-radius:18px; width:min(520px, 100%); max-height:min(86vh, 760px); display:flex; flex-direction:column; overflow:hidden; box-shadow:0 24px 60px rgba(11,27,51,.25); transform:translateY(10px); transition:transform .2s cubic-bezier(.2,.8,.2,1); }
.db-back.show .db-sheet{ transform:none; }
.db-sh-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 16px; background:var(--bg); border-inline-start:4px solid var(--c); }
.db-sh-head b{ display:block; font-size:16px; color:var(--ink); }
.db-sh-head span{ font-size:12.5px; color:var(--c); }
.db-x{ border:0; background:rgba(255,255,255,.8); width:36px; height:36px; border-radius:50%; font-size:15px; cursor:pointer; color:var(--ink); flex-shrink:0; }
.db-sh-days{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; padding:12px 16px 4px; font-size:12.5px; color:var(--slate); }
.db-search{ margin:10px 16px 8px; padding:10px 12px; border:1px solid var(--border); border-radius:10px; font:inherit; font-size:16px; width:auto; }
.db-tlist,.db-plist{ overflow-y:auto; padding:4px 10px 12px; display:flex; flex-direction:column; gap:4px; }
.db-trow,.db-prow{ display:grid; grid-template-columns:1fr auto; align-items:center; gap:4px 10px; text-align:start; border:1px solid transparent; background:transparent; border-radius:11px; padding:10px 10px; font:inherit; cursor:pointer; color:var(--ink); min-height:46px; }
.db-trow:hover:not(:disabled),.db-prow:hover:not(:disabled){ background:var(--sand); }
.db-trow.cur,.db-prow.on{ background:#E7F5EC; border-color:#9FD3B3; }
.db-trow:disabled{ opacity:.45; cursor:not-allowed; }
.db-tname,.db-pname{ font-size:14px; font-weight:600; }
.db-load{ font-size:12px; min-width:26px; height:26px; border-radius:999px; background:var(--sand); color:var(--ink); display:inline-flex; align-items:center; justify-content:center; font-variant-numeric:tabular-nums; font-weight:700; }
.db-load.zero{ background:#E7F5EC; color:#1F6A3C; }
.db-tags{ grid-column:1 / -1; display:flex; gap:4px; flex-wrap:wrap; }
.db-tag{ font-size:11.5px; border-radius:6px; padding:2px 7px; }
.db-tag.cur{ background:#D6EFE0; color:#1F6A3C; }
.db-tag.busy{ background:#EEF1F6; color:#5B6472; }
.db-tag.clash{ background:#FDEFE3; color:#A4501A; }
.db-pwho{ font-size:12px; color:var(--slate); }
.db-prow.on .db-pwho{ color:#1F6A3C; font-weight:600; }
.db-prow.taken .db-pwho{ color:#A4501A; }
.db-sh-foot{ border-top:1px solid var(--border); padding:10px 16px; display:flex; justify-content:flex-end; }
.db-sh-foot:has(> [hidden]:only-child){ display:none; }
.db-clash-note:empty{ display:none; }
.db-warn{ margin:8px 16px 0; background:#FFF8EE; border:1px solid #EBC9A0; color:#7A4A12; font-size:12.5px; border-radius:10px; padding:8px 10px; }
.db-btn{ border:0; background:var(--ink); color:#fff; border-radius:10px; padding:9px 14px; font:inherit; font-size:13.5px; cursor:pointer; min-height:40px; }
.db-btn.danger{ background:var(--danger-light); color:var(--danger); }
.db-btn.ghost{ background:var(--white); color:var(--ink); border:1px dashed var(--border); }

/* بالمعلم */
.db-tt{ display:grid; grid-template-columns:260px minmax(0,1fr); gap:14px; align-items:start; }
.db-tside{ background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:10px; display:flex; flex-direction:column; gap:6px; position:sticky; top:12px; max-height:calc(100vh - 24px); }
.db-tside .db-search{ margin:0; }
.db-check{ font-size:12.5px; color:var(--slate); display:flex !important; align-items:center; gap:6px; padding:2px 4px; margin:0; font-weight:500; }
.db-check input{ width:auto !important; margin:0; }
.db-tside-list{ overflow-y:auto; display:flex; flex-direction:column; gap:2px; }
.db-tside-row{ display:flex; align-items:center; justify-content:space-between; gap:8px; border:0; background:transparent; border-radius:9px; padding:8px 10px; font:inherit; font-size:13.5px; text-align:start; cursor:pointer; color:var(--ink); min-height:40px; }
.db-tside-row:hover{ background:var(--sand); }
.db-tside-row.on{ background:var(--ink); color:#fff; }
.db-tside-row.on .db-load{ background:rgba(255,255,255,.18); color:#fff; }
.db-tcard{ background:var(--white); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; }
.db-tcard-h{ padding:14px 16px; border-bottom:1px solid var(--border); }
.db-tcard-h b{ display:block; font-size:17px; color:var(--ink); }
.db-tcard-h span{ font-size:12.5px; color:var(--slate); }
.db-tgrid thead th:first-child{ width:130px; }

/* المواقع */
.db-posts{ padding:10px 12px; display:flex; flex-direction:column; gap:6px; }
.db-pedit{ display:flex; align-items:center; gap:6px; }
.db-pedit input[type=text]{ flex:1; min-width:0; border:1px solid var(--border); border-radius:9px; padding:8px 10px; font:inherit; font-size:14px; }
.db-pedit.off input[type=text]{ color:#A3ABB7; text-decoration:line-through; background:#FAFAFB; }
.db-ib{ border:1px solid var(--border); background:var(--white); border-radius:8px; min-width:34px; height:34px; font:inherit; font-size:13px; cursor:pointer; color:var(--ink); padding:0 6px; }
.db-ib:disabled{ opacity:.35; cursor:default; }
.db-ib.del.confirm{ background:var(--danger); color:#fff; border-color:var(--danger); font-size:12px; }
.db-switch{ position:relative; width:40px; height:24px; flex-shrink:0; cursor:pointer; }
.db-switch input{ opacity:0; width:0; height:0; position:absolute; }
.db-switch span{ position:absolute; inset:0; background:#D3D8E0; border-radius:999px; transition:.2s; }
.db-switch span::after{ content:''; position:absolute; top:3px; inset-inline-start:3px; width:18px; height:18px; border-radius:50%; background:#fff; transition:.2s; box-shadow:0 1px 3px rgba(0,0,0,.2); }
.db-switch input:checked + span{ background:var(--status-good); }
.db-switch input:checked + span::after{ inset-inline-start:19px; }
.db-switch input:focus-visible + span{ outline:2px solid var(--meadow); outline-offset:2px; }
.db-padd{ display:flex; gap:6px; margin-top:4px; }
.db-padd input{ flex:1; min-width:0; border:1px dashed var(--border); border-radius:9px; padding:8px 10px; font:inherit; font-size:14px; }
.db-posts-foot{ display:flex; justify-content:center; }

/* مناوباتي */
.db-mine{ display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:10px; }
.db-mday{ background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:10px; display:flex; flex-direction:column; gap:6px; }
.db-mday.today{ border-color:var(--meadow); box-shadow:0 0 0 2px var(--meadow-light); }
.db-mday-h{ font-weight:700; font-size:14px; color:var(--ink); display:flex; justify-content:space-between; align-items:center; }
.db-mday-h span{ font-size:11px; background:var(--meadow); color:#fff; border-radius:999px; padding:2px 8px; font-weight:600; }
.db-mitem{ background:var(--bg); border-inline-start:3px solid var(--c); border-radius:9px; padding:8px 10px; display:flex; flex-direction:column; gap:2px; }
.db-mitem b{ display:block; font-size:13.5px; color:var(--ink); }
.db-mitem small{ font-size:11.5px; color:var(--c); }
.db-mtime{ font-size:11.5px; color:var(--slate); font-variant-numeric:tabular-nums; }
.db-mnone{ color:#B5BCC6; text-align:center; padding:8px 0; }

.db-banner{ display:flex; align-items:center; gap:12px; background:var(--gold-light); border:1px solid #F0C9A6; border-radius:14px; padding:14px 18px; margin-bottom:16px; color:#C56A2E; }
.db-banner span{ font-size:14px; color:var(--ink); }
.db-banner small{ color:var(--slate); }
.db-toast{ position:fixed; bottom:24px; left:50%; transform:translate(-50%, 20px); background:var(--ink); color:#fff; padding:11px 18px; border-radius:12px; font-size:13.5px; opacity:0; pointer-events:none; transition:.25s; z-index:1100; max-width:calc(100vw - 32px); text-align:center; }
.db-toast.show{ opacity:1; transform:translate(-50%, 0); }
.db-toast.bad{ background:var(--danger); }

@media (max-width:860px){
  .db-tt{ grid-template-columns:minmax(0,1fr); }
  .db-tside{ position:static; max-height:280px; }
  .db-mine{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .db-fair{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .db-tabs{ width:100%; }
  .db-tab{ flex:1; padding:8px 6px; }
  .db-back{ align-items:flex-end; padding:0; }
  .db-sheet{ width:100%; border-radius:18px 18px 0 0; max-height:88vh; transform:translateY(40px); }
  .db-table:not(.single){ min-width:600px; }
  .db-table thead th:first-child{ width:118px; }
  .db-slot-count{ margin-inline-start:0; }
}
@media (prefers-reduced-motion:reduce){ .db-sheet,.db-back,.db-toast,.db-cell{ transition:none; } }
/* المناوبة داخل «جدولك اليوم» */
.ps-duty{ background:#FDF3E7; border-inline-start:3px solid #E07A34; }
.ps-duty .ps-txt small{ color:var(--slate); font-weight:400; }
.ps-duty-ic{ margin-inline-end:5px; }
.ps-duty.ps-now{ background:#FDEBD6; border-color:#E07A34; box-shadow:0 2px 8px rgba(224,122,52,.2); }
.ps-duty.ps-now .ps-time{ color:#A4501A; }
.ps-duty .ps-tag.now{ background:#E07A34; }
/* الميزانية: رقم البيان وتسلسله */
.bud-stmt-row{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:-2px 0 12px; }
.bud-stmt-row:has(.bud-stmt-hint:empty):has(.bud-stmt-edit[style*="none"]){ display:none; }
.bud-stmt-hint{ font-size:12.5px; color:var(--slate); }
.bud-stmt-hint b{ color:var(--ink); }
.bud-stmt-edit{ display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600; color:var(--ink); margin:0; }
.bud-stmt-edit input{ width:90px !important; margin:0; }
.bud-series{ display:inline-block !important; width:auto !important; flex:none !important; font-size:11px; font-weight:600; border-radius:999px; padding:2px 8px; margin:0 6px !important; vertical-align:middle; line-height:1.6; }
.bud-series.canteen{ background:#FDEFE3; color:#A4501A; }
.bud-series.main{ background:var(--meadow-light); color:var(--meadow); }
.budget-editing{ outline:2px solid var(--gold); outline-offset:4px; }
/* الميزانية: عدّاد الطلبات بانتظار الاعتماد */
.bud-pend{ background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:14px 16px; margin-bottom:14px; box-shadow:var(--shadow-sm); }
.bud-pend-head{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.bud-pend-head b{ font-size:14.5px; color:var(--ink); }
.bud-pend-head span{ font-size:13px; color:var(--slate); }
.bud-pend-head strong{ color:var(--ink); font-size:15px; }
.bud-pend-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:10px; }
.bud-pend-item{ border-radius:12px; padding:10px 12px; display:flex; flex-direction:column; gap:2px; border-inline-start:4px solid var(--c); background:var(--bg); }
.bud-pend-item.canteen{ --c:#E07A34; --bg:#FDEFE3; }
.bud-pend-item.carry{ --c:#2455A4; --bg:#EAF1FC; }
.bud-pend-item.advance{ --c:#2E9155; --bg:#E7F5EC; }
.bud-pend-item.other{ --c:#6249A6; --bg:#EFEBFB; }
.bud-pend-label{ font-size:12.5px; color:var(--c); font-weight:700; }
.bud-pend-amt{ font-size:19px; font-weight:800; color:var(--ink); font-variant-numeric:tabular-nums; }
.bud-pend-n{ font-size:11.5px; color:var(--slate); }
/* الميزانية: طلبات الصرف مجمّعة حسب البند + فلتر جهة الصرف */
.bud-src-bar{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; }
.bud-src-chip{ border:1px solid var(--border); background:var(--white); color:var(--ink); border-radius:999px; padding:7px 14px; font:inherit; font-size:13px; cursor:pointer; min-height:36px; }
.bud-src-chip span{ display:inline-block; min-width:20px; padding:0 6px; margin-inline-start:4px; border-radius:999px; background:var(--sand); font-size:11.5px; font-weight:700; }
.bud-src-chip.on{ background:var(--ink); border-color:var(--ink); color:#fff; }
.bud-src-chip.on span{ background:rgba(255,255,255,.18); }
.bud-cat-group{ background:var(--sand); border:1px solid var(--border); border-radius:var(--radius); margin-bottom:12px; overflow:hidden; }
.bud-cat-group > summary{ list-style:none; display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:12px 16px; cursor:pointer; background:var(--white); border-bottom:1px solid var(--border); }
.bud-cat-group > summary::-webkit-details-marker{ display:none; }
.bud-cat-group > summary::before{ content:'▾'; color:var(--slate); transition:transform .2s; }
.bud-cat-group:not([open]) > summary::before{ transform:rotate(90deg); }
.bud-cat-group:not([open]) > summary{ border-bottom:0; }
.bud-cat-name{ font-weight:800; font-size:15px; color:var(--ink); }
.bud-cat-meta{ font-size:12.5px; color:var(--slate); }
.bud-cat-pend{ color:#A4501A; font-weight:700; }
.bud-cat-total{ margin-inline-start:auto; font-weight:800; color:var(--danger); font-variant-numeric:tabular-nums; }
.bud-cat-body{ padding:10px; }
.bud-cat-body > .form-card:last-child{ margin-bottom:0 !important; }
.bud-pend-item{ cursor:pointer; transition:transform .1s; } .bud-pend-item:hover{ transform:translateY(-1px); }
/* الزيارات الصفية: فلتر التخصص */
.cv-spec{ width:auto !important; min-width:170px; margin:0 !important; padding:9px 12px; border-radius:10px; }
.cv-spec-sum{ background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:12px 16px; margin:0 0 12px; display:flex; flex-direction:column; gap:8px; }
.cvs-head{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.cvs-head b{ font-size:15px; color:var(--ink); }
.cvs-head span{ font-size:13px; color:var(--slate); }
.cvs-head strong{ color:var(--status-good); }
.cvs-bar{ display:block; flex:1 1 120px; max-width:220px; height:6px; background:var(--sand); border-radius:9px; overflow:hidden; }
.cvs-bar > i{ display:block; height:100%; background:var(--status-good); }
.cvs-miss{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; font-size:12.5px; color:#A4501A; }
.cvs-miss em{ font-style:normal; background:#FDEFE3; color:#7A4A12; border-radius:999px; padding:3px 10px; }
.cvs-miss.done{ color:var(--status-good); }
/* بيانات الطلاب */
.sd{ display:flex; flex-direction:column; gap:12px; }
.sd-bar{ background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:14px; display:flex; flex-direction:column; gap:12px; box-shadow:var(--shadow-sm); }
.sd-search{ display:flex; align-items:center; gap:8px; border:1.5px solid var(--border); border-radius:12px; padding:0 12px; background:var(--sand); }
.sd-search:focus-within{ border-color:var(--meadow); background:var(--white); }
.sd-search svg{ color:var(--slate); flex-shrink:0; }
.sd-search input{ border:0 !important; background:transparent !important; margin:0 !important; padding:12px 0 !important; font-size:16px; box-shadow:none !important; width:100%; outline:none; }
.sd-scope{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:12.5px; color:var(--slate); }
.sd-chips{ display:flex; flex-wrap:wrap; gap:6px; }
.sd-chips[hidden]{ display:none; }
.sd-chip{ border:1px solid var(--border); background:var(--white); color:var(--ink); border-radius:999px; padding:7px 13px; font:inherit; font-size:13px; cursor:pointer; min-height:36px; }
.sd-chip i{ font-style:normal; font-size:11.5px; color:var(--slate); margin-inline-start:2px; }
.sd-chip.on{ background:var(--ink); border-color:var(--ink); color:#fff; }
.sd-chip.on i{ color:rgba(255,255,255,.7); }
.sd-chip.sm{ padding:5px 11px; font-size:12.5px; min-height:32px; }
#sd-secs:not([hidden]){ width:100%; padding-top:8px; border-top:1px dashed var(--border); }
.sd-count{ font-size:12.5px; color:var(--slate); padding:0 4px; }
.sd-list{ display:flex; flex-direction:column; gap:6px; }
.sd-row{ background:var(--white); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.sd-row.open{ border-color:var(--meadow); box-shadow:0 0 0 2px var(--meadow-light); }
.sd-head{ width:100%; display:flex; align-items:center; gap:12px; padding:10px 14px; background:transparent; border:0; font:inherit; text-align:start; cursor:pointer; color:var(--ink); min-height:56px; }
.sd-head:hover{ background:var(--sand); }
.sd-av{ width:36px; height:36px; border-radius:50%; background:var(--meadow-light); color:var(--meadow); display:flex; align-items:center; justify-content:center; font-weight:800; flex-shrink:0; }
.sd-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.sd-main b{ font-size:14px; }
.sd-main b mark{ background:#FFF1B8; color:inherit; border-radius:3px; padding:0 1px; }
.sd-main span{ font-size:12px; color:var(--slate); }
.sd-nid{ font-size:12.5px; color:var(--slate); direction:ltr; font-variant-numeric:tabular-nums; flex-shrink:0; }
.sd-detail{ border-top:1px solid var(--border); padding:12px 14px 14px; background:#FBFCFE; }
.sd-detail dl{ margin:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:10px 18px; }
.sd-detail dt{ font-size:11.5px; color:var(--slate); }
.sd-detail dd{ margin:2px 0 0; font-size:14px; font-weight:600; color:var(--ink); display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.sd-detail dd.ltr{ direction:ltr; justify-content:flex-end; font-variant-numeric:tabular-nums; }
.sd-detail dd small{ font-weight:400; color:var(--slate); }
.sd-copy{ border:1px solid var(--border); background:var(--white); border-radius:7px; font:inherit; font-size:11.5px; padding:2px 8px; cursor:pointer; color:var(--meadow); direction:rtl; }
.sd-actions{ display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }
.sd-actions a{ width:auto !important; padding:8px 14px; text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.sd-more{ align-self:center; border:1px dashed var(--border); background:var(--white); border-radius:10px; padding:10px 18px; font:inherit; font-size:13px; cursor:pointer; color:var(--ink); margin-top:4px; }
@media (max-width:520px){ .sd-nid{ display:none; } }
/* التقارير: الاختبار الفتري */
.er-type-row{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:var(--gold-light); border-radius:10px; padding:10px 12px; margin-bottom:12px; font-size:13px; font-weight:700; color:var(--ink); }
.erc-chips i.erc-periodic{ background:#FDEFE3; color:#A4501A; font-weight:700; }
.erc-actions{ display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
.erc-act{ border:1px solid var(--border); background:var(--white); color:var(--ink); border-radius:9px; padding:6px 11px; font:inherit; font-size:12.5px; font-weight:600; cursor:pointer; min-height:34px; }
.erc-act:hover{ border-color:var(--meadow); color:var(--meadow); }
.erc-act.er-export-btn{ background:var(--green-light); border-color:#9FD3B3; color:#1F6A3C; }
.erc-act:disabled{ opacity:.6; cursor:wait; }
.er-abs-back{ position:fixed; inset:0; background:rgba(11,27,51,.38); z-index:1000; display:flex; align-items:center; justify-content:center; padding:16px; }
.er-abs{ background:var(--white); border-radius:18px; width:min(560px,100%); max-height:86vh; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 24px 60px rgba(11,27,51,.25); }
.er-abs-h{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding:14px 16px; border-bottom:1px solid var(--border); }
.er-abs-h b{ display:block; font-size:16px; color:var(--ink); }
.er-abs-h span{ font-size:12.5px; color:var(--slate); }
.er-abs-x{ border:0; background:var(--sand); width:36px; height:36px; border-radius:50%; cursor:pointer; font-size:15px; flex-shrink:0; }
.er-abs-body{ overflow-y:auto; padding:10px 12px 14px; display:flex; flex-direction:column; gap:6px; }
.er-abs-sec{ border:1px solid var(--border); border-radius:11px; overflow:hidden; }
.er-abs-sec > summary{ list-style:none; display:flex; align-items:center; gap:10px; padding:11px 14px; cursor:pointer; }
.er-abs-sec > summary::-webkit-details-marker{ display:none; }
.er-abs-sec[disabled] > summary{ cursor:default; }
.er-abs-name{ font-weight:800; font-size:14.5px; color:var(--ink); min-width:70px; }
.er-abs-n{ background:var(--danger-light); color:var(--danger); border-radius:999px; padding:3px 10px; font-size:12.5px; font-weight:700; }
.er-abs-n.zero{ background:var(--green-light); color:#1F6A3C; }
.er-abs-of{ font-size:12px; color:var(--slate); margin-inline-start:auto; }
.er-abs-sec ol{ margin:0; padding:6px 34px 10px 14px; border-top:1px solid var(--border); background:#FBFCFE; font-size:13.5px; }
.er-abs-sec li{ padding:4px 0; }
.er-abs-sec li small{ color:var(--slate); margin-inline-start:8px; font-size:11.5px; }
.er-abs-note,.er-abs-empty{ font-size:12.5px; color:#A4501A; margin:6px 4px 0; }
@media (max-width:640px){ .er-abs-back{ align-items:flex-end; padding:0; } .er-abs{ border-radius:18px 18px 0 0; } }
.er-abs-sec li span,.er-abs-sec li small{ unicode-bidi:isolate; } .er-abs-sec li small{ direction:ltr; display:inline-block; }

/* التقارير: تقرير من الإدارة للمعلم + إضافة ورقة يدويًا */
.erc-chips i.erc-shared{ background:var(--meadow-light); color:var(--meadow); font-weight:700; }
.er-man{ width:min(640px,100%); }
.er-man-st{ margin-bottom:10px; }
.er-man-chosen{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:var(--green-light); border:1px solid #9FD3B3; border-radius:11px; padding:10px 12px; }
.er-man-chosen b{ font-size:14.5px; }
.er-man-chosen span{ font-size:12px; color:var(--slate); flex:1; }
.er-man-pick{ display:flex; flex-direction:column; gap:6px; }
.er-man-row{ display:flex; gap:6px; }
.er-man-row select{ margin:0 !important; }
.er-man-pick input{ margin:0 !important; font-size:16px; }
.er-man-list{ max-height:210px; overflow-y:auto; display:flex; flex-direction:column; gap:3px; border:1px solid var(--border); border-radius:10px; padding:4px; }
.er-man-list button{ display:flex; flex-direction:column; align-items:flex-start; gap:1px; text-align:start; border:0; background:transparent; border-radius:8px; padding:8px 10px; font:inherit; cursor:pointer; color:var(--ink); }
.er-man-list button:hover{ background:var(--sand); }
.er-man-list small{ color:var(--slate); font-size:11.5px; }
.er-man-model{ display:flex; align-items:center; gap:6px; margin-bottom:10px; font-size:13px; font-weight:700; }
.er-man-model button,.er-man-q button{ border:1px solid var(--border); background:var(--white); border-radius:8px; min-width:38px; height:36px; font:inherit; font-size:13.5px; cursor:pointer; color:var(--ink); padding:0 8px; }
.er-man-model button.on,.er-man-q button.on{ background:var(--ink); border-color:var(--ink); color:#fff; }
.er-man-q button.key:not(.on){ border-color:#9FD3B3; }
.er-man-qs{ display:grid; grid-template-columns:repeat(auto-fill, minmax(230px,1fr)); gap:6px; }
.er-man-q{ display:flex; align-items:center; gap:4px; background:var(--sand); border-radius:10px; padding:5px 8px; }
.er-man-q small{ min-width:22px; font-weight:800; color:var(--slate); text-align:center; }
.er-man-essay{ display:flex; align-items:center; gap:8px; margin-top:10px; font-size:13px; font-weight:700; }
.er-man-essay input{ width:90px !important; margin:0 !important; }
.er-man-sum{ margin-top:10px; font-size:13px; color:var(--slate); }
.er-man-sum b{ font-size:18px; color:var(--ink); }
.er-man-foot{ border-top:1px solid var(--border); padding:10px 14px; display:flex; justify-content:flex-end; }
.er-man-foot .btn-primary{ width:auto; padding:10px 18px; }
.omr-manual-btn{ width:auto; }
.erc-act.er-addsheet-btn{ background:var(--meadow-light); border-color:#C9D9F2; color:var(--meadow); }
.er-res{ width:min(720px,100%); }
.er-res-t{ width:100%; border-collapse:collapse; font-size:13px; border-top:1px solid var(--border); }
.er-res-t th{ background:#FBFCFE; color:var(--slate); font-weight:600; font-size:12px; padding:7px 8px; text-align:start; }
.er-res-t td{ padding:7px 8px; border-top:1px solid #F0F1F4; }
.er-res-t td:first-child,.er-res-t th:first-child{ width:34px; color:var(--slate); text-align:center; }
.er-res-t tr.weak td{ background:#FFF6F5; }
.er-res-t tr.weak td b{ color:var(--danger); }
.er-res-t tr.abs td{ color:var(--slate); background:#F6F7F9; }
.er-res-t tr.abs td:last-child{ color:var(--danger); font-weight:700; }
.erc-act.er-results-btn{ background:var(--purple-light); border-color:#D8CFF2; color:var(--purple); }
.er-abs-body > *{ flex-shrink:0; }
.cv-type-card .seg-tabs{display:inline-flex}
.cv-type-hint{font-size:12px;color:var(--slate);margin:8px 0 0}

/* ===== ورقة أسئلة مع التظليل ===== */
.qp-intro{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:var(--teal-light,#e6f5f7);border-radius:14px;padding:14px 16px;margin-bottom:14px}
.qp-intro>div{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.qp-intro b{font-size:15px;color:var(--navy)}
.qp-intro span{font-size:12.5px;color:var(--slate);line-height:1.7}
.qp-list{display:flex;flex-direction:column;gap:10px}
.qp-item{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid var(--line,#e3e7ee);border-radius:12px;padding:12px 14px}
.qpi-main{flex:1;min-width:160px;display:flex;flex-direction:column;gap:2px}
.qpi-main b{color:var(--navy);font-size:14.5px}
.qpi-main span{font-size:12px;color:var(--slate)}
.qpi-tags{display:flex;gap:6px;flex-wrap:wrap}
.qpi-tags i{font-style:normal;font-size:11.5px;background:#f1f3f7;color:#3a4558;border-radius:999px;padding:3px 9px}
.qpi-tags i.ok{background:#e6f4ec;color:#1f6a3c}
.qpi-tags i.muted{color:#8a93a3}
.qpi-act{display:flex;gap:6px;align-items:center}
.qp-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;position:sticky;top:64px;z-index:6;background:var(--bg,#f4f6f9);padding:6px 0}
.qp-save{display:flex;align-items:center;gap:10px}
.qp-status{font-size:12.5px;color:var(--slate)}
.qp-status.ok{color:#1f6a3c}
.qp-status.warn{color:#a4501a}
.qp-grid{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:16px;align-items:start}
.qp-side .form-card{margin-bottom:12px}
.qp-side .as-f{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--slate);margin-bottom:10px}
.qp-chk{display:flex;align-items:center;gap:7px;font-size:13px;margin:6px 0;cursor:pointer}
.qp-chk input{width:auto;margin:0}
.qp-chk.sm{font-size:12px;color:var(--slate);margin:0}
.qp-note{font-size:11.5px;color:var(--slate);margin:4px 0 0;line-height:1.6}
.qp-remark p{font-size:12px;color:var(--slate);line-height:1.75;margin:0 0 6px}
.qp-secs{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.qp-pr-sum{font-size:13px;margin:10px 0;color:var(--navy)}
.qp-pr-btns{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.qp-qhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.qp-qhead h4{margin:0;color:var(--navy)}
.qp-count{font-size:12px;font-weight:400;color:var(--slate);margin-inline-start:6px}
.qp-qtools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.qp-paste{background:#fff;border:1px dashed #b9c2d0;border-radius:12px;padding:12px 14px;margin-bottom:12px}
.qp-paste p{font-size:12.5px;color:var(--slate);margin:0 0 6px}
.qp-paste pre{background:#f6f7fa;border-radius:8px;padding:8px 10px;font:12px/1.7 Tahoma,sans-serif;margin:0 0 8px;white-space:pre-wrap}
.qp-sec{font-size:12.5px;font-weight:700;color:var(--teal,#0e93a8);margin:16px 2px 8px;padding-bottom:4px;border-bottom:2px solid currentColor;display:inline-block}
.qp-q{background:#fff;border:1px solid var(--line,#e3e7ee);border-radius:12px;padding:10px 12px 12px;margin-bottom:10px}
.qp-q.bad{border-color:#f0c9a8}
.qp-q-h{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.qp-q-n{width:26px;height:26px;border-radius:50%;background:var(--navy,#16233a);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.qp-q-warn{font-size:11.5px;color:#a4501a;background:#fdf1e7;border-radius:999px;padding:2px 9px}
.qp-q-act{margin-inline-start:auto;display:flex;gap:4px}
.qp-ic{width:30px;height:30px;border-radius:8px;border:1px solid var(--line,#e3e7ee);background:#fff;cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;padding:0}
.qp-ic:hover{background:#f3f5f9}
.qp-ic.danger:hover{background:#fdecea}
.qp-text{width:100%;resize:vertical;font-size:14px;line-height:1.6;min-height:46px}
.qp-opts-ed{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 10px;margin-top:8px}
.qp-opt-ed{display:flex;align-items:center;gap:6px;border:1px solid var(--line,#e3e7ee);border-radius:10px;padding:3px 6px;background:#fafbfc}
.qp-opt-ed.on{border-color:#5fb284;background:#eef8f2}
.qp-opt-ed .qp-opt-in{flex:1;min-width:0;border:0;background:transparent;margin:0;padding:6px 4px;font-size:13.5px}
.qp-radio{display:flex;align-items:center;gap:4px;cursor:pointer;flex-shrink:0}
.qp-radio input{width:auto;margin:0}
.qp-radio b{width:20px;text-align:center;color:var(--navy)}
.qp-x{border:0;background:none;color:#a0a7b3;font-size:18px;cursor:pointer;padding:0 4px;line-height:1}
.qp-x:hover{color:var(--danger,#c0392b)}
.qp-opt-tools{grid-column:1/-1;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.qp-tf-ed{display:flex;gap:10px;margin-top:8px}
.qp-tf-opt{display:flex;align-items:center;gap:6px;border:1px solid var(--line,#e3e7ee);border-radius:10px;padding:8px 14px;cursor:pointer;font-size:13.5px;font-weight:600}
.qp-tf-opt input{width:auto;margin:0}
.qp-tf-opt.on{border-color:#5fb284;background:#eef8f2}
@media (max-width:860px){.qp-grid{grid-template-columns:minmax(0,1fr)}.qp-side{order:2}}
@media (max-width:560px){.qp-opts-ed{grid-template-columns:minmax(0,1fr)}.qp-top{top:56px}}

/* ورقة الإجابة: شريط الاختبار الحالي ودرجات الأسئلة */
.as-cur{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:#eef6f1;border:1px solid #cfe6d8;border-radius:10px;padding:8px 12px;margin-bottom:12px;font-size:13px;color:var(--navy)}
.as-cur.editing{background:#fff7e6;border-color:#f0d9a8}
.as-cur small{color:var(--slate);font-weight:400}
.as-points-box{background:#f7f8fb;border:1px solid var(--border);border-radius:10px;padding:8px 10px;margin:0 0 10px}
.as-points-box .as-models-on{margin:0}
#as-points-opts{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:8px;font-size:12.5px}
#as-points-opts.hidden{display:none}
.as-points-fill{display:flex;align-items:center;gap:6px}
.as-points-fill input{width:64px;margin:0;padding:5px 6px}
.as-points-sum{font-weight:700;color:var(--navy)}
.as-pt{width:48px;margin:0 0 0 2px;padding:3px 4px;font-size:12px;text-align:center;border:1px solid #c9ced8;border-radius:6px}
.er-editkey-pt{width:52px;margin:0;padding:4px;font-size:12px;text-align:center}
.er-pt-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;font-size:12.5px;color:var(--slate)}
.er-pt-bar input{width:64px;margin:0;padding:5px}
.er-pt-bar b{color:var(--navy)}

/* مفتاح الإجابة بالأزرار (يقبل أكثر من إجابة) */
.er-kp{ display:flex; gap:4px; flex-wrap:wrap; }
.er-kp button{ min-width:30px; height:30px; padding:0 6px; border-radius:15px; border:1.5px solid #C9CED8; background:#fff; color:var(--ink); font-weight:700; font-size:12.5px; cursor:pointer; }
.er-kp button.on{ background:var(--meadow); border-color:var(--meadow); color:#fff; }
.er-multi-lbl{ display:flex; align-items:center; gap:8px; font-size:12px; background:#fff; border:1px solid var(--border); border-radius:10px; padding:8px 12px; margin-bottom:10px; cursor:pointer; }
.er-multi-lbl input{ width:auto; margin:0; }
.er-essay-note{ font-size:12px; color:var(--slate); margin:8px 2px 0; }

/* ===== قائمة تقارير الاختبارات: فلاتر + بطاقات المواد + تجميع بالمرحلة ===== */
.er-filt{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; background:#fff; border:1px solid var(--border); border-radius:12px; padding:10px; margin:0 0 14px; }
.er-filt input[type=search]{ flex:1 1 200px; min-width:160px; margin:0; }
.er-filt select{ flex:0 1 auto; width:auto; min-width:120px; margin:0; }
.er-filt .text-action-btn{ width:auto; padding:6px 10px; }
.er-subj-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:12px; }
.er-subj-card{ display:flex; align-items:center; gap:12px; text-align:right; background:#fff; border:1px solid var(--border); border-radius:14px; padding:14px; cursor:pointer; font:inherit; color:inherit; transition:border-color .15s, box-shadow .15s, transform .15s; }
.er-subj-card:hover{ border-color:var(--teal); box-shadow:0 4px 14px rgba(0,0,0,.06); transform:translateY(-1px); }
.er-subj-card:focus-visible{ outline:2px solid var(--teal); outline-offset:2px; }
.er-subj-card .ers-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; }
.er-subj-card .ers-main b{ font-size:15px; }
.er-subj-card .ers-n{ font-size:12px; color:var(--slate); }
.er-subj-card .ers-go{ font-size:22px; color:var(--slate); }
.er-subj-head{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 10px; }
.er-subj-head b{ font-size:16px; }
.er-subj-head span{ font-size:12px; color:var(--slate); background:var(--bg, #F4F6F8); border-radius:10px; padding:2px 8px; }
.er-subj-head .text-action-btn{ width:auto; padding:6px 10px; }
.er-grade-grp{ margin:0 0 18px; }
.er-grade-grp h4{ font-size:13.5px; margin:0 0 8px; display:flex; align-items:center; gap:8px; color:var(--ink); border-bottom:1px dashed var(--border); padding-bottom:6px; }
.er-grade-grp h4 small{ font-size:11px; color:var(--slate); background:var(--bg, #F4F6F8); border-radius:10px; padding:1px 8px; font-weight:600; }
@media (max-width:600px){ .er-filt select{ flex:1 1 45%; } }

/* داخل المادة: كل اختبار صف ممتد بعرض الصفحة (العنوان | المعلومات | الإجراءات) */
.er-report-grid.er-rows{ grid-template-columns:1fr; gap:8px; }
.er-rows .er-report-card{ align-items:center; padding:12px 44px 12px 14px; padding-inline-start:14px; padding-inline-end:44px; border-radius:14px; }
.er-rows .erc-ic{ width:42px; height:42px; border-radius:12px; }
.er-rows .erc-main{ display:grid; grid-template-columns:minmax(200px, 1.3fr) minmax(0, 1fr) auto; column-gap:16px; row-gap:2px; align-items:center; }
.er-rows .erc-main > b{ grid-column:1; grid-row:1; padding-inline-end:0; font-size:14.5px; }
.er-rows .erc-main > span:not(.erc-chips):not(.erc-actions){ grid-column:1; grid-row:2; }
.er-rows .erc-chips{ grid-column:2; grid-row:1 / 3; margin-top:0; }
.er-rows .erc-actions{ grid-column:3; grid-row:1 / 3; margin-top:0; flex-wrap:nowrap; }
.er-rows .er-report-card .er-delete-btn{ top:50%; transform:translateY(-50%); left:8px; }
@media (max-width:980px){
  .er-rows .erc-main{ grid-template-columns:minmax(0, 1fr) auto; }
  .er-rows .erc-chips{ grid-column:1; grid-row:3; margin-top:4px; }
  .er-rows .erc-actions{ grid-column:2; grid-row:1 / 4; flex-wrap:wrap; justify-content:flex-end; }
}
@media (max-width:640px){
  .er-rows .er-report-card{ align-items:flex-start; }
  .er-rows .erc-main{ grid-template-columns:minmax(0, 1fr); }
  .er-rows .erc-actions{ grid-column:1; grid-row:4; justify-content:flex-start; margin-top:6px; }
  .er-rows .er-report-card .er-delete-btn{ top:10px; transform:none; }
}

/* نافذة النتائج: زر تعديل ورقة الطالب */
.er-res-t .er-res-ed{ border:1px solid var(--border); background:#fff; color:var(--meadow); border-radius:8px; width:30px; height:28px; padding:0; font-size:14px; cursor:pointer; }
.er-res-t .er-res-ed:hover{ border-color:var(--meadow); background:var(--meadow-light); }
.er-res-t .er-res-ed-h{ width:38px; }
.er-man-foot{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.er-man-del{ width:auto !important; color:var(--danger) !important; }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ===== غياب وإشغال المعلمين ===== */
.tx-page{ position:relative; display:flex; flex-direction:column; gap:14px; }
.tx-btn{ display:inline-flex; align-items:center; gap:7px; border-radius:10px; padding:9px 15px; font:inherit; font-size:13px; font-weight:700; cursor:pointer; border:1px solid transparent; white-space:nowrap; transition:background .15s, border-color .15s, color .15s, box-shadow .15s; width:auto; margin:0; }
.tx-btn svg{ width:17px; height:17px; flex-shrink:0; }
.tx-btn.primary{ background:var(--meadow); color:#fff; box-shadow:0 2px 6px rgba(36,85,164,.25); }
.tx-btn.primary:hover{ background:var(--meadow-dark); }
.tx-btn.ghost{ background:#fff; color:var(--ink); border-color:var(--border); }
.tx-btn.ghost:hover{ border-color:var(--meadow); color:var(--meadow); }
.tx-btn.icon{ background:#fff; border-color:var(--border); color:var(--slate); padding:9px; }
.tx-btn.icon:hover{ color:var(--ink); border-color:#cfd5df; }
.tx-btn.sm{ padding:6px 11px; font-size:12px; }
.tx-btn:disabled{ opacity:.6; cursor:wait; }
.tx-btn:focus-visible, .tx-ranges button:focus-visible, .tx-trow:focus-visible{ outline:2px solid var(--meadow); outline-offset:2px; }

.tx-cmd{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; background:#fff; border:1px solid var(--border); border-radius:14px; padding:10px; box-shadow:var(--shadow-sm); }
.tx-ranges{ display:flex; gap:4px; background:var(--sand); border-radius:10px; padding:3px; overflow-x:auto; }
.tx-ranges button{ border:0; background:none; border-radius:8px; padding:7px 12px; font:inherit; font-size:12.5px; font-weight:700; color:var(--slate); cursor:pointer; white-space:nowrap; }
.tx-ranges button.on{ background:#fff; color:var(--meadow); box-shadow:0 1px 3px rgba(21,34,56,.12); }
.tx-custom{ display:flex; gap:8px; align-items:center; }
.tx-custom label{ display:flex; align-items:center; gap:6px; font-size:12.5px; color:var(--slate); }
.tx-custom input{ margin:0; width:auto; padding:6px 8px; }
.tx-cmd-actions{ display:flex; gap:8px; align-items:center; margin-inline-start:auto; }
.tx-menu-wrap{ position:relative; }
.tx-menu{ position:absolute; top:calc(100% + 6px); left:0; min-width:180px; background:#fff; border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow-md); padding:6px; z-index:30; }
.tx-menu button{ display:flex; align-items:center; gap:9px; width:100%; border:0; background:none; border-radius:8px; padding:9px 10px; font:inherit; font-size:13px; color:var(--ink); cursor:pointer; text-align:right; }
.tx-menu button:hover{ background:var(--sand); }
.tx-menu svg{ width:17px; height:17px; color:var(--slate); }

.tx-toast{ border-radius:12px; padding:11px 14px; font-size:13px; font-weight:600; }
.tx-toast.ok{ background:var(--green-light); color:#1F6A3C; }
.tx-toast.info{ background:var(--meadow-light); color:var(--meadow-dark); }
.tx-toast.err{ background:var(--danger-light); color:var(--danger); }

.tx-loading{ display:flex; justify-content:center; gap:6px; padding:50px; }
.tx-loading span{ width:9px; height:9px; border-radius:50%; background:var(--meadow); opacity:.3; animation:txPulse 1s infinite ease-in-out; }
.tx-loading span:nth-child(2){ animation-delay:.15s; } .tx-loading span:nth-child(3){ animation-delay:.3s; }
@keyframes txPulse{ 0%,100%{ opacity:.25; transform:scale(.85); } 50%{ opacity:1; transform:scale(1); } }

.tx-kpis{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:12px; }
.tx-kpi{ display:flex; gap:12px; align-items:flex-start; background:#fff; border:1px solid var(--border); border-radius:14px; padding:14px; box-shadow:var(--shadow-sm); }
.tx-kpi-ic{ width:42px; height:42px; border-radius:12px; display:flex; align-items:center; justify-content:center; background:var(--meadow-light); color:var(--meadow); flex-shrink:0; }
.tx-kpi-ic svg{ width:21px; height:21px; }
.tx-kpi.cover .tx-kpi-ic{ background:var(--purple-light); color:var(--purple); }
.tx-kpi.abs .tx-kpi-ic{ background:var(--danger-light); color:var(--danger); }
.tx-kpi.muted .tx-kpi-ic{ background:var(--sand); color:var(--slate); }
.tx-kpi > div{ display:flex; flex-direction:column; min-width:0; }
.tx-kpi b{ font-family:'Tajawal', sans-serif; font-size:28px; line-height:1.05; color:var(--ink); }
.tx-kpi-l{ font-size:13px; font-weight:700; color:var(--ink); }
.tx-kpi-s{ font-size:11.5px; color:var(--slate); margin-top:2px; }

.tx-panel{ background:#fff; border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow-sm); }
.tx-insights{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; }
.tx-rank{ padding:14px; }
.tx-rank h5{ margin:0 0 10px; font-size:13.5px; }
.tx-rank ol{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.tx-rank li{ display:grid; grid-template-columns:minmax(0, 1fr) auto; gap:2px 8px; font-size:12.5px; border-radius:8px; }
.tx-rank li[data-name]{ cursor:pointer; }
.tx-rank li[data-name]:hover .tx-rank-n{ color:var(--meadow); }
.tx-rank-n{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; }
.tx-rank-v{ color:var(--slate); font-size:11.5px; }
.tx-rank-v b{ color:var(--ink); font-size:13px; }
.tx-rank-bar{ grid-column:1 / -1; height:6px; background:var(--sand); border-radius:99px; overflow:hidden; }
.tx-rank-bar i{ display:block; height:100%; border-radius:99px; background:var(--meadow); }
.tx-rank[data-kind="cov"] .tx-rank-bar i{ background:var(--purple); }
.tx-rank[data-kind="abs"] .tx-rank-bar i{ background:#D9655D; }
.tx-rank[data-kind="rsn"] .tx-rank-bar i{ background:var(--gold); }

.tx-main{ display:grid; grid-template-columns:minmax(300px, 380px) minmax(0, 1fr); gap:14px; align-items:start; }
.tx-teachers{ padding:14px; display:flex; flex-direction:column; gap:10px; position:sticky; top:84px; max-height:calc(100vh - 100px); }
.tx-panel-h{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.tx-panel-h h4{ margin:0; font-size:14.5px; }
.tx-panel-h h4 small{ font-size:11.5px; color:var(--slate); background:var(--sand); border-radius:99px; padding:1px 8px; margin-inline-start:4px; }
.tx-sortseg{ display:flex; gap:2px; background:var(--sand); border-radius:9px; padding:3px; }
.tx-sortseg button{ border:0; background:none; border-radius:7px; padding:5px 9px; font:inherit; font-size:11.5px; font-weight:700; color:var(--slate); cursor:pointer; }
.tx-sortseg button.on{ background:#fff; color:var(--ink); box-shadow:0 1px 2px rgba(21,34,56,.12); }
.tx-search{ display:flex; align-items:center; gap:8px; border:1px solid var(--border); border-radius:10px; padding:0 10px; background:var(--sand); }
.tx-search svg{ width:16px; height:16px; color:var(--slate); flex-shrink:0; }
.tx-search input{ border:0 !important; background:none !important; margin:0 !important; padding:9px 0 !important; box-shadow:none !important; font-size:13px; }
.tx-legend{ display:flex; align-items:center; gap:6px; font-size:11px; color:var(--slate); }
.tx-legend i{ width:10px; height:10px; border-radius:3px; display:inline-block; }
.tx-legend i.cov{ background:var(--purple); } .tx-legend i.abs{ background:#D9655D; margin-inline-start:8px; }
.tx-tlist{ overflow-y:auto; display:flex; flex-direction:column; gap:2px; margin:0 -6px; padding:0 6px; min-height:120px; }
.tx-trow{ display:flex; align-items:center; gap:10px; width:100%; border:1px solid transparent; background:none; border-radius:11px; padding:8px; font:inherit; color:inherit; text-align:right; cursor:pointer; }
.tx-trow:hover{ background:var(--sand); }
.tx-trow.on{ background:var(--meadow-light); border-color:#C9D9F2; }
.tx-av{ width:36px; height:36px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-weight:800; font-size:13px; flex-shrink:0; }
.tx-av.lg{ width:52px; height:52px; font-size:18px; }
.tx-tmain{ flex:1; min-width:0; display:flex; flex-direction:column; gap:5px; }
.tx-tmain b{ font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tx-tbar{ display:flex; height:5px; background:var(--sand); border-radius:99px; overflow:hidden; }
.tx-trow.on .tx-tbar{ background:#fff; }
.tx-tbar i{ display:block; height:100%; }
.tx-tbar i.cov{ background:var(--purple); } .tx-tbar i.abs{ background:#D9655D; }
.tx-tnums{ display:flex; gap:4px; }
.tx-tnums span{ min-width:28px; text-align:center; border-radius:7px; padding:2px 5px; font-size:12px; font-weight:800; }
.tx-tnums .cov{ background:var(--purple-light); color:var(--purple); }
.tx-tnums .abs{ background:var(--danger-light); color:var(--danger); }
.tx-tnums .loss{ min-width:32px; border:1px solid currentColor; background:#fff; }
.loss.pos{ color:#B65A1B; } .loss.neg{ color:#2E7A4C; } .loss.zero{ color:var(--slate); }
.tx-tname{ display:flex; align-items:center; gap:6px; min-width:0; }
.tx-tname b{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.tx-load{ flex-shrink:0; font-size:10.5px; font-weight:700; color:var(--slate); background:var(--sand); border-radius:99px; padding:1px 7px; }
.tx-trow.on .tx-load{ background:#fff; }
.tx-legend i.loss{ background:#fff; border:1px solid #B65A1B; margin-inline-start:8px; }
.tx-legend{ flex-wrap:wrap; }
.tx-dkpis small{ font-size:10.5px; color:var(--slate); margin-top:1px; }
.tx-dkpis .loss.pos{ background:#FDEFE3; } .tx-dkpis .loss.neg{ background:var(--green-light); }
.tx-dkpis .loss.pos b{ color:#B65A1B; } .tx-dkpis .loss.neg b{ color:#2E7A4C; }
.tx-dkpis .load b{ color:var(--meadow); }

.tx-detail{ padding:18px; min-height:420px; }
.tx-detail-empty{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; text-align:center; color:var(--slate); min-height:380px; }
.tx-detail-empty svg{ width:44px; height:44px; color:#B8C2D3; margin-bottom:4px; }
.tx-detail-empty b{ color:var(--ink); font-size:15px; }
.tx-detail-empty span{ font-size:12.5px; max-width:280px; }
.tx-dhead{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.tx-dname{ flex:1; min-width:150px; display:flex; flex-direction:column; gap:3px; }
.tx-dname b{ font-size:18px; }
.tx-dname span{ font-size:11.5px; font-weight:700; width:fit-content; border-radius:99px; padding:1px 9px; }
.tx-dname span.ok{ background:var(--green-light); color:#1F6A3C; }
.tx-dname span.warn{ background:var(--gold-light); color:#A4501A; }
.tx-dact{ display:flex; gap:6px; }
.tx-dkpis{ display:grid; grid-template-columns:repeat(auto-fit, minmax(96px, 1fr)); gap:8px; margin:16px 0 14px; }
.tx-dkpis div{ background:var(--sand); border-radius:11px; padding:10px; text-align:center; display:flex; flex-direction:column; }
.tx-dkpis b{ font-family:'Tajawal', sans-serif; font-size:22px; color:var(--ink); line-height:1.15; }
.tx-dkpis span{ font-size:11.5px; color:var(--slate); }
.tx-dkpis .cov b{ color:var(--purple); } .tx-dkpis .abs b{ color:var(--danger); }
.tx-dtabs{ display:flex; gap:4px; border-bottom:1px solid var(--border); margin-bottom:12px; }
.tx-dtabs button{ border:0; background:none; font:inherit; font-size:13px; font-weight:700; color:var(--slate); padding:9px 12px; border-bottom:2px solid transparent; margin-bottom:-1px; cursor:pointer; }
.tx-dtabs button i{ font-style:normal; font-size:11px; background:var(--sand); border-radius:99px; padding:1px 7px; margin-inline-start:3px; }
.tx-dtabs button.on{ color:var(--meadow); border-bottom-color:var(--meadow); }
.tx-dtabs button.on i{ background:var(--meadow-light); color:var(--meadow); }
.tx-reasons{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.tx-reasons span{ font-size:12px; background:var(--danger-light); color:#8F312B; border-radius:99px; padding:3px 10px; }
.tx-reasons b{ margin-inline-start:3px; }
.tx-timeline{ display:flex; flex-direction:column; gap:14px; max-height:620px; overflow-y:auto; padding-inline-end:4px; }
.tx-day-h{ display:flex; align-items:baseline; gap:8px; font-size:13px; margin-bottom:6px; position:sticky; top:0; background:#fff; padding:2px 0; z-index:1; }
.tx-day-h span{ color:var(--slate); }
.tx-day-h small{ margin-inline-start:auto; font-size:11.5px; color:var(--slate); }
.tx-day ul{ list-style:none; margin:0; padding:0; border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.tx-day li{ display:flex; align-items:center; gap:10px; padding:9px 11px; font-size:13px; }
.tx-day li + li{ border-top:1px solid var(--border); }
.tx-day li:hover{ background:#FAFBFD; }
.tx-pbadge{ min-width:34px; height:30px; border-radius:9px; display:inline-flex; align-items:center; justify-content:center; font-weight:800; font-size:13px; padding:0 6px; background:var(--sand); color:var(--ink); flex-shrink:0; }
.tx-pbadge.cover{ background:var(--purple-light); color:var(--purple); }
.tx-pbadge.absence{ background:var(--danger-light); color:var(--danger); }
.tx-li-main{ flex:1; min-width:0; display:flex; flex-direction:column; }
.tx-li-meta{ font-size:12px; color:var(--slate); }
.tx-li-note{ font-size:11.5px; color:var(--slate); font-style:italic; }
.tx-pill{ font-size:11px; font-weight:700; border-radius:99px; padding:2px 9px; white-space:nowrap; }
.tx-pill.absence{ background:var(--danger-light); color:#8F312B; }
.tx-pill.transfer{ background:var(--sand); color:var(--slate); }
.tx-pill.man{ background:var(--meadow-light); color:var(--meadow); }
.tx-ico{ border:0; background:none; color:var(--slate); opacity:0; cursor:pointer; padding:5px; border-radius:7px; display:inline-flex; flex-shrink:0; }
.tx-ico svg{ width:16px; height:16px; }
.tx-day li:hover .tx-ico, .tx-ico:focus-visible{ opacity:.85; }
.tx-note-btn:hover{ color:var(--meadow); background:var(--meadow-light); opacity:1; }
.tx-del:hover{ color:var(--danger); background:var(--danger-light); opacity:1; }
@media (hover:none){ .tx-ico{ opacity:.65; } }
.tx-dday{ border:0; background:none; color:var(--slate); cursor:pointer; padding:3px; border-radius:6px; display:inline-flex; opacity:.55; align-self:center; }
.tx-dday svg{ width:14px; height:14px; }
.tx-dday:hover{ opacity:1; color:var(--danger); background:var(--danger-light); }
.tx-note-ed{ display:flex; gap:6px; align-items:center; margin-top:6px; flex-wrap:wrap; }
.tx-note-ed input{ flex:1; min-width:160px; font:inherit; font-size:13px; border:1px solid var(--border); border-radius:8px; padding:6px 9px; }
.tx-note-ed input:focus{ outline:2px solid var(--meadow-light); border-color:var(--meadow); }
.tx-li-note{ display:inline-block; margin-top:3px; background:#FFF8E6; color:#7A5A12; font-style:normal; border-radius:7px; padding:2px 8px; width:fit-content; }
.tx-dtabs-row{ display:flex; align-items:flex-end; gap:8px; border-bottom:1px solid var(--border); margin-bottom:12px; }
.tx-dtabs-row .tx-dtabs{ border-bottom:0; margin-bottom:0; flex:1; }
.tx-selbtn{ margin-bottom:6px; }
.tx-selbtn.on{ background:var(--meadow-light); color:var(--meadow); border-color:var(--meadow); }
.tx-selbar{ display:flex; align-items:center; gap:12px; background:var(--sand); border-radius:11px; padding:8px 12px; margin-bottom:12px; font-size:13px; flex-wrap:wrap; }
.tx-selbar .tx-btn{ margin-inline-start:auto; }
.tx-link{ border:0; background:none; font:inherit; font-size:12.5px; font-weight:700; color:var(--meadow); cursor:pointer; padding:0; }
.tx-btn.danger{ background:var(--danger); color:#fff; border-color:var(--danger); }
.tx-btn.danger:disabled{ opacity:.45; cursor:default; }
.tx-timeline.sel li{ cursor:pointer; }
.tx-timeline li.picked{ background:var(--danger-light); }
.tx-timeline input[type=checkbox]{ width:16px; height:16px; accent-color:var(--danger); flex-shrink:0; }
.tx-day-h input{ align-self:center; }
.tx-imp-last{ margin-top:10px; font-size:12.5px; background:var(--meadow-light); color:var(--meadow); border-radius:9px; padding:8px 11px; }
.tx-imp-old{ display:flex; align-items:center; gap:6px; margin-top:5px; font-weight:700; cursor:pointer; }
.tx-none{ font-size:12.5px; color:var(--slate); margin:4px 0; }

.tx-empty{ background:#fff; border:1px dashed #C9D3E3; border-radius:18px; padding:42px 22px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:10px; }
.tx-empty-ic{ width:64px; height:64px; border-radius:18px; background:var(--meadow-light); color:var(--meadow); display:flex; align-items:center; justify-content:center; }
.tx-empty-ic svg{ width:32px; height:32px; }
.tx-empty h3{ margin:4px 0 0; font-size:18px; }
.tx-empty p{ margin:0; color:var(--slate); font-size:13px; max-width:520px; line-height:1.7; }
.tx-empty-act{ display:flex; gap:8px; margin-top:6px; flex-wrap:wrap; justify-content:center; }
.tx-steps{ list-style:none; display:flex; gap:10px; padding:0; margin:14px 0 0; flex-wrap:wrap; justify-content:center; }
.tx-steps li{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--slate); background:var(--sand); border-radius:99px; padding:6px 12px 6px 14px; }
.tx-steps b{ width:22px; height:22px; border-radius:50%; background:#fff; color:var(--meadow); display:inline-flex; align-items:center; justify-content:center; font-size:12px; }

.tx-drop{ position:absolute; inset:0; z-index:20; background:rgba(234,241,252,.92); border:2px dashed var(--meadow); border-radius:18px; display:flex; align-items:center; justify-content:center; pointer-events:none; }
.tx-drop > div{ display:flex; flex-direction:column; align-items:center; gap:6px; color:var(--meadow-dark); text-align:center; }
.tx-drop svg{ width:46px; height:46px; color:var(--meadow); }
.tx-drop span{ font-size:12.5px; color:var(--slate); }

.tx-modal{ max-width:520px; }
.tx-modal-foot{ display:flex; justify-content:flex-start; gap:8px; }
.tx-imp-range{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--slate); }
.tx-imp-range svg{ width:18px; height:18px; color:var(--meadow); }
.tx-imp-big{ display:flex; align-items:baseline; gap:8px; margin:14px 0 10px; }
.tx-imp-big b{ font-family:'Tajawal', sans-serif; font-size:40px; color:var(--meadow); line-height:1; }
.tx-imp-big span{ font-size:14px; font-weight:700; }
.tx-imp-tiles{ display:grid; grid-template-columns:repeat(3, 1fr); gap:8px; }
.tx-imp-tiles div{ background:var(--sand); border-radius:11px; padding:10px; text-align:center; display:flex; flex-direction:column; }
.tx-imp-tiles b{ font-family:'Tajawal', sans-serif; font-size:22px; }
.tx-imp-tiles span{ font-size:11.5px; color:var(--slate); }
.tx-imp-tiles .cov b{ color:var(--purple); } .tx-imp-tiles .abs b{ color:var(--danger); }
.tx-imp-none{ margin:14px 0; background:var(--sand); border-radius:11px; padding:14px; font-size:13px; text-align:center; }
.tx-imp-notes{ margin:14px 0 0; padding:0 18px 0 0; font-size:12.5px; color:var(--slate); line-height:1.8; }
.tx-imp-notes details{ display:inline; }
.tx-imp-notes summary{ display:inline; color:var(--meadow); cursor:pointer; }
.tx-imp-notes details span{ display:block; font-size:12px; color:var(--ink); background:var(--sand); border-radius:8px; padding:6px 8px; margin-top:4px; }
.tx-form{ display:flex; flex-direction:column; gap:12px; }
.tx-field{ display:flex; flex-direction:column; gap:5px; font-size:12.5px; font-weight:700; color:var(--ink); }
.tx-field input, .tx-field select{ margin:0; }
.tx-hint{ font-weight:400; color:var(--slate); font-size:11.5px; }
.tx-seg{ display:grid; grid-template-columns:1fr 1fr; gap:6px; background:var(--sand); border-radius:11px; padding:4px; }
.tx-seg button{ display:flex; align-items:center; justify-content:center; gap:7px; border:0; background:none; border-radius:8px; padding:9px; font:inherit; font-weight:700; font-size:13px; color:var(--slate); cursor:pointer; }
.tx-seg button svg{ width:17px; height:17px; }
.tx-seg button.on{ background:#fff; color:var(--meadow); box-shadow:0 1px 3px rgba(21,34,56,.12); }
.tx-periods{ display:flex; flex-wrap:wrap; gap:6px; }
.tx-periods label{ position:relative; cursor:pointer; }
.tx-periods input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.tx-periods span{ display:inline-flex; align-items:center; justify-content:center; width:40px; height:38px; border-radius:10px; border:1.5px solid var(--border); background:#fff; font-weight:800; font-size:14px; color:var(--ink); transition:all .12s; }
.tx-periods input:checked + span{ background:var(--meadow); border-color:var(--meadow); color:#fff; }
.tx-periods input:focus-visible + span{ outline:2px solid var(--meadow); outline-offset:2px; }
.tx-f-row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }

@media (max-width:1100px){ .tx-kpis{ grid-template-columns:repeat(2, minmax(0, 1fr)); } .tx-insights{ grid-template-columns:1fr 1fr; } .tx-insights .tx-rank[data-kind="rsn"]{ grid-column:1 / -1; } }
@media (max-width:900px){ .tx-main{ grid-template-columns:1fr; } .tx-teachers{ position:static; max-height:none; } .tx-tlist{ max-height:420px; } }
@media (max-width:640px){
  .tx-cmd-actions{ margin-inline-start:0; width:100%; }
  .tx-cmd-actions .tx-btn.primary{ flex:1; justify-content:center; }
  .tx-insights{ grid-template-columns:1fr; }
  .tx-kpi b{ font-size:24px; }
  .tx-dkpis{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .tx-dact .tx-btn span{ display:none; }
  .tx-f-row{ grid-template-columns:1fr; }
  .tx-custom{ width:100%; } .tx-custom label{ flex:1; } .tx-custom input{ flex:1; }
}

/* نافذة تصدير النتائج: اختيار الفصول */
.er-exp{ max-width:440px; }
.er-exp-all{ display:flex; align-items:center; gap:8px; padding:10px 12px; background:var(--meadow-light); border-radius:10px; font-size:14px; cursor:pointer; }
.er-exp-all small, .er-exp-list small{ margin-inline-start:auto; color:var(--slate); font-size:12px; }
.er-exp-list{ display:flex; flex-direction:column; gap:2px; margin-top:8px; max-height:340px; overflow-y:auto; }
.er-exp-list label{ display:flex; align-items:center; gap:8px; padding:9px 12px; border-radius:9px; font-size:13.5px; cursor:pointer; }
.er-exp-list label:hover{ background:var(--sand); }
.er-exp input[type=checkbox]{ width:18px; height:18px; margin:0; accent-color:var(--meadow); }
.er-exp-hint{ font-size:12px; color:var(--slate); margin:10px 2px 0; }
.er-exp .btn-primary:disabled{ opacity:.55; cursor:not-allowed; }
.er-man-list button.er-man-locked{ opacity:.55; cursor:not-allowed; }

/* ===== ملف الطالب ===== */
.sp-page{ display:flex; flex-direction:column; gap:14px; }
.sp-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.sp-head h3{ margin:0 0 4px; font-size:22px; }
.sp-head p{ margin:0; color:var(--slate); font-size:13px; }
.sp-seg{ display:inline-flex; background:var(--sand); border-radius:11px; padding:3px; gap:2px; flex-wrap:wrap; }
.sp-seg button{ border:0; background:none; font:inherit; font-size:12.5px; font-weight:700; color:var(--slate); padding:7px 12px; border-radius:9px; cursor:pointer; }
.sp-seg button.on{ background:#fff; color:var(--meadow); box-shadow:0 1px 3px rgba(21,34,56,.12); }
.sp-search{ display:flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--border); border-radius:12px; padding:0 12px; }
.sp-search svg{ width:18px; height:18px; color:var(--slate); flex-shrink:0; }
.sp-search input{ flex:1; border:0; outline:0; font:inherit; font-size:14px; padding:12px 0; background:none; min-width:0; }
.sp-search:focus-within{ border-color:var(--meadow); box-shadow:0 0 0 3px var(--meadow-light); }
.sp-filters{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.sp-chips{ display:flex; gap:6px; flex-wrap:wrap; }
.sp-chips button{ border:1px solid var(--border); background:#fff; font:inherit; font-size:13px; font-weight:700; color:var(--ink); padding:7px 14px; border-radius:99px; cursor:pointer; }
.sp-chips button.on{ background:var(--meadow); border-color:var(--meadow); color:#fff; }
.sp-filters select{ width:auto; margin:0; font:inherit; font-size:13px; padding:7px 10px; border:1px solid var(--border); border-radius:10px; background:#fff; }
.sp-check{ display:flex; align-items:center; gap:6px; font-size:13px; font-weight:600; cursor:pointer; margin:0; }
.sp-check input{ width:16px; height:16px; margin:0; }
.sp-card{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:14px 16px; box-shadow:var(--shadow-sm); min-width:0; }
.sp-card-h{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.sp-card-h b{ font-size:15px; }
.sp-card-h > span{ font-size:12px; color:var(--slate); }
.sp-sumgrid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:12px; }
.sp-stack{ display:flex; height:14px; border-radius:99px; overflow:hidden; gap:2px; background:var(--sand); }
.sp-stack i{ display:block; min-width:4px; }
.sp-distl{ list-style:none; margin:12px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(120px, 1fr)); gap:6px 12px; font-size:12.5px; }
.sp-distl li{ display:flex; align-items:center; gap:6px; }
.sp-distl b{ margin-inline-start:auto; }
.sp-dot{ width:10px; height:10px; border-radius:3px; display:inline-block; }
/* ألوان المستويات */
.l5{ --lv:#2E7A4C; --lvb:#E7F5EC; } .l4{ --lv:#2455A4; --lvb:#EAF1FC; } .l3{ --lv:#0E7F91; --lvb:#E3F4F7; } .l2{ --lv:#B65A1B; --lvb:#FDEFE3; } .l1{ --lv:#C0453D; --lvb:#FBEAE9; }
.sp-stack i, .sp-dot, .sp-bar i, .sp-rsubs i, .sp-cmp-bar i{ background:var(--lv); }
.sp-lv{ display:inline-block; font-size:11.5px; font-weight:800; border-radius:99px; padding:2px 10px; background:var(--lvb); color:var(--lv); white-space:nowrap; }
.sp-pct{ color:var(--lv); }
.sp-subjbars{ display:flex; flex-direction:column; gap:7px; }
.sp-subjbars > div, .sp-types > div{ display:grid; grid-template-columns:minmax(90px, 140px) minmax(0,1fr) 44px; align-items:center; gap:10px; font-size:12.5px; }
.sp-subjbars b, .sp-types b{ text-align:left; }
.sp-bar{ position:relative; height:10px; background:var(--sand); border-radius:99px; overflow:visible; }
.sp-bar i{ position:absolute; inset-block:0; inset-inline-start:0; border-radius:99px; }
.sp-list{ background:#fff; border:1px solid var(--border); border-radius:14px; overflow:hidden; box-shadow:var(--shadow-sm); }
.sp-lhead, .sp-row{ display:grid; grid-template-columns:44px minmax(0,1.6fr) minmax(0,1fr) 64px 118px; align-items:center; gap:10px; padding:10px 14px; }
.sp-lhead{ background:var(--sand); font-size:12px; font-weight:700; color:var(--slate); }
.sp-row{ width:100%; border:0; border-top:1px solid var(--border); background:#fff; font:inherit; color:inherit; text-align:right; cursor:pointer; margin:0; border-radius:0; }
.sp-row:hover{ background:#FAFBFD; }
.sp-row:focus-visible{ outline:2px solid var(--meadow); outline-offset:-2px; }
.sp-rn{ font-weight:800; color:var(--slate); font-size:13px; text-align:center; }
.sp-rname{ display:flex; flex-direction:column; min-width:0; }
.sp-rname b{ font-size:13.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sp-rname small{ font-size:11.5px; color:var(--slate); }
.sp-rsubs{ display:flex; gap:3px; flex-wrap:wrap; }
.sp-rsubs i{ width:12px; height:12px; border-radius:3px; }
.sp-ravg{ font-weight:800; font-size:14px; }
.sp-none{ color:var(--slate); font-size:13px; margin:12px 14px; }
.sp-empty{ background:#fff; border:1px dashed #C9D3E3; border-radius:16px; padding:36px 20px; text-align:center; display:flex; flex-direction:column; gap:8px; }
.sp-empty span{ color:var(--slate); font-size:13px; }
.sp-back{ align-self:flex-start; border:0; background:none; font:inherit; font-size:13px; font-weight:700; color:var(--meadow); cursor:pointer; padding:0; width:auto; margin:0; }
.sp-hero{ display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; background:#fff; border:1px solid var(--border); border-radius:16px; padding:16px; box-shadow:var(--shadow-sm); }
.sp-hero-id{ display:flex; align-items:center; gap:14px; min-width:0; }
.sp-hero-id h3{ margin:0 0 3px; font-size:20px; }
.sp-hero-id > div > span{ font-size:12.5px; color:var(--slate); }
.sp-av{ width:56px; height:56px; border-radius:16px; background:var(--meadow-light); color:var(--meadow); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:20px; flex-shrink:0; }
.sp-hero-act{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.sp-kpis{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:12px; }
.sp-kpi{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:14px; display:flex; flex-direction:column; gap:3px; box-shadow:var(--shadow-sm); }
.sp-kpi > span{ font-size:12px; color:var(--slate); font-weight:600; }
.sp-kpi b{ font-size:26px; line-height:1.15; font-family:'Tajawal', sans-serif; }
.sp-kpi b small{ font-size:14px; color:var(--slate); font-weight:600; }
.sp-kpi > small{ font-size:11.5px; color:var(--slate); }
.sp-kpi.big{ background:var(--lvb); border-color:transparent; }
.sp-kpi.big b{ color:var(--lv); }
.sp-insight{ background:linear-gradient(0deg, #fff, #fff), var(--sand); border-inline-start:4px solid var(--meadow); }
.sp-insight b{ display:flex; align-items:center; gap:6px; font-size:14px; color:var(--meadow); }
.sp-insight b svg{ width:18px; height:18px; }
.sp-insight p{ margin:6px 0 0; line-height:1.95; font-size:14px; }
.sp-legend{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.sp-legend i{ display:inline-block; width:10px; height:10px; margin-inline-start:6px; }
.sp-legend i.me{ background:var(--meadow); border-radius:3px; }
.sp-legend i.cl{ width:8px; height:8px; border-radius:50%; background:#fff; border:2px solid var(--ink); }
.sp-legend i.gr{ width:3px; height:12px; background:var(--ink); border-radius:2px; }
.sp-cmp{ display:flex; flex-direction:column; gap:4px; }
.sp-cmp-row{ display:grid; grid-template-columns:minmax(110px, 170px) minmax(0,1fr) 78px 104px; align-items:center; gap:12px; padding:8px 10px; border-radius:10px; }
.sp-cmp-row.weak{ background:#FFF6F5; }
.sp-cmp-n{ display:flex; flex-direction:column; min-width:0; }
.sp-cmp-n b{ font-size:13.5px; }
.sp-cmp-n small{ font-size:11.5px; color:var(--slate); }
.sp-cmp-bar{ position:relative; height:14px; background:var(--sand); border-radius:99px; }
.sp-cmp-bar i{ position:absolute; inset-block:0; inset-inline-start:0; border-radius:99px; }
.sp-cmp-bar em, .sp-bar em{ position:absolute; top:50%; transform:translate(50%, -50%); }
.sp-cmp-bar em.gr, .sp-bar em.gr{ width:3px; height:22px; background:var(--ink); border-radius:2px; }
.sp-cmp-bar em.cl{ width:10px; height:10px; border-radius:50%; background:#fff; border:2px solid var(--ink); }
.sp-cmp-v{ display:flex; flex-direction:column; text-align:left; }
.sp-cmp-v b{ font-size:15px; }
.sp-cmp-v small{ font-size:11px; color:var(--slate); }
.sp-grid2{ display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:12px; align-items:start; }
.sp-weak{ border:1px solid #F2D4D1; border-radius:12px; padding:10px 12px; background:#FFFBFA; }
.sp-weak + .sp-weak{ margin-top:8px; }
.sp-weak-h{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.sp-weak-h > span:last-child{ font-size:12px; color:var(--slate); }
.sp-weak p{ margin:8px 0 6px; font-size:12.5px; }
.sp-qrow{ display:flex; flex-wrap:wrap; gap:5px; align-items:center; margin-top:4px; }
.sp-qrow small{ width:100%; font-size:11px; color:var(--slate); }
.sp-q{ display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:800; background:#fff; border:1px solid #EBC3BF; color:#8F312B; border-radius:8px; padding:2px 8px; }
.sp-q i{ font-style:normal; font-weight:600; font-size:10.5px; color:var(--slate); }
.sp-note{ font-size:12.5px; color:var(--slate); margin:10px 0 0; }
.sp-types{ display:flex; flex-direction:column; gap:12px; }
.sp-types > div{ grid-template-columns:110px minmax(0,1fr) 44px 64px; }
.sp-types small{ font-size:11px; color:var(--slate); }
.sp-bar.two{ height:12px; }
.sp-tblwrap{ overflow-x:auto; margin:0 -4px; }
.sp-tbl{ width:100%; border-collapse:collapse; font-size:12.5px; min-width:680px; }
.sp-tbl th{ text-align:right; font-size:11.5px; color:var(--slate); font-weight:700; padding:8px; border-bottom:1px solid var(--border); background:var(--sand); }
.sp-tbl td{ padding:9px 8px; border-bottom:1px solid var(--border); vertical-align:middle; }
.sp-tbl td small{ display:block; font-size:11px; color:var(--slate); }
.sp-qs{ font-size:12px; color:#8F312B; font-weight:700; }
.sp-ok{ color:var(--green); font-weight:700; }
@media (max-width: 900px){
  .sp-sumgrid, .sp-grid2{ grid-template-columns:minmax(0,1fr); }
  .sp-kpis{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .sp-cmp-row{ grid-template-columns:minmax(0,1fr) 70px; grid-template-areas:"n v" "b b" "l l"; row-gap:6px; }
  .sp-cmp-n{ grid-area:n; } .sp-cmp-v{ grid-area:v; } .sp-cmp-bar{ grid-area:b; } .sp-cmp-row .sp-lv{ grid-area:l; justify-self:start; }
  .sp-lhead{ display:none; }
  .sp-row{ grid-template-columns:36px minmax(0,1fr) 54px; grid-template-areas:"r n a" "r s l"; row-gap:4px; }
  .sp-rn{ grid-area:r; } .sp-rname{ grid-area:n; } .sp-ravg{ grid-area:a; text-align:left; } .sp-rsubs{ grid-area:s; } .sp-row > span:last-child{ grid-area:l; justify-self:end; }
  .sp-types > div{ grid-template-columns:96px minmax(0,1fr) 40px; }
  .sp-types small{ display:none; }
}

/* تقرير الغياب المجمّع */
.er-absrep-btn{ margin-inline-start:auto; border:1px solid #F2C9C5; background:#FFF6F5; color:#A63A33; font:inherit; font-size:13px; font-weight:700; border-radius:10px; padding:8px 14px; cursor:pointer; white-space:nowrap; width:auto; }
.er-absrep-btn:hover{ background:#FBEAE9; }
.er-absrep{ max-width:500px; }
.er-ar-row{ display:flex; gap:10px; margin-bottom:10px; }
.er-ar-row > label{ flex:1; display:flex; flex-direction:column; gap:4px; font-size:12.5px; font-weight:700; color:var(--slate); margin:0; }
.er-ar-row select{ width:100%; margin:0; font:inherit; font-size:13.5px; padding:8px 10px; border:1px solid var(--border); border-radius:10px; background:#fff; color:var(--ink); }
.er-ar-mode{ background:var(--sand); border-radius:10px; padding:4px; gap:4px; }
.er-ar-mode label{ flex:1; flex-direction:row !important; align-items:center; justify-content:center; gap:6px !important; padding:8px; border-radius:8px; cursor:pointer; color:var(--ink) !important; font-size:13px !important; }
.er-ar-mode label:has(input:checked){ background:#fff; box-shadow:0 1px 3px rgba(21,34,56,.12); color:var(--meadow) !important; }
.er-ar-mode input{ width:auto; margin:0; accent-color:var(--meadow); }
.er-ar-gh{ font-size:11.5px; font-weight:800; color:var(--slate); padding:8px 12px 2px; }
.er-absrep input[type=checkbox]{ width:16px; height:16px; margin:0; flex:0 0 auto; accent-color:var(--meadow); }
.er-absrep .er-exp-list label span{ flex:1; min-width:0; }
.er-absrep .er-exp-all b{ flex:1; }
.er-auto-title{ background:var(--sand) !important; color:var(--ink); cursor:default; }
.sp-qs{ font-weight:600; color:var(--ink); }
.sp-ls{ display:block; line-height:1.9; }
.sp-ls + .sp-ls{ margin-top:2px; }
.sp-ls em{ font-style:normal; font-size:11.5px; color:var(--slate); margin-inline-end:3px; }
.sp-qw, .sp-qb{ display:inline-block; font-size:11.5px; font-weight:800; border-radius:6px; padding:0 6px; margin:1px 0; }
.sp-qw{ background:#FBEAE9; color:#8F312B; }
.sp-qw.easy{ background:#C0453D; color:#fff; }
.sp-qb{ background:#FFF4DE; color:#8A5A00; border:1px dashed #E3B65C; }

/* ===== الخطة التشغيلية: المؤشرات ===== */
#op-kpis{ display:flex; flex-direction:column; gap:14px; }
.kp-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.kp-head h4{ margin:0 0 3px; font-size:18px; }
.kp-head p{ margin:0; font-size:12.5px; color:var(--slate); }
.kp-acts{ display:flex; gap:8px; }
.kp-tiles{ display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:10px; }
.kp-tiles button{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; background:#fff; border:1px solid var(--border); border-radius:12px; padding:11px 13px; font:inherit; cursor:pointer; text-align:right; border-inline-start:4px solid var(--meadow); width:auto; margin:0; color:var(--ink); }
.kp-tiles button b{ font-size:24px; font-family:'Tajawal',sans-serif; line-height:1.1; }
.kp-tiles button span{ font-size:12px; color:var(--slate); font-weight:600; }
.kp-tiles button.met{ border-inline-start-color:#2E7A4C; } .kp-tiles button.near{ border-inline-start-color:#E07A34; }
.kp-tiles button.behind{ border-inline-start-color:#C0453D; } .kp-tiles button.pending{ border-inline-start-color:#A9B2BF; }
.kp-tiles button.on{ box-shadow:0 0 0 2px var(--meadow); }
.kp-filters{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.kp-search{ flex:1; min-width:200px; }
.kp-search input{ padding:9px 0; }
.kp-group{ margin:6px 0 0; font-size:14px; }
.kp-group small{ background:var(--sand); color:var(--slate); border-radius:99px; padding:1px 8px; font-size:11px; margin-inline-start:4px; }
.kp-grid{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; }
.kp-card{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:13px 15px; display:flex; flex-direction:column; gap:9px; box-shadow:var(--shadow-sm); border-top:3px solid #A9B2BF; transition:box-shadow .3s; min-width:0; }
.kp-card.met{ border-top-color:#2E7A4C; } .kp-card.near{ border-top-color:#E07A34; } .kp-card.behind{ border-top-color:#C0453D; }
.kp-card.saved{ box-shadow:0 0 0 2px #9FD3B3; }
.kp-card-h{ display:flex; align-items:flex-start; gap:8px; }
.kp-card-h h6{ flex:1; margin:0; font-size:14.5px; line-height:1.45; }
.kp-lv{ font-size:10.5px; font-weight:800; background:var(--meadow-light); color:var(--meadow); border-radius:6px; padding:2px 7px; flex-shrink:0; margin-top:2px; }
.kp-st{ font-size:11px; font-weight:800; border-radius:99px; padding:2px 9px; white-space:nowrap; flex-shrink:0; }
.kp-st.met{ background:#E7F5EC; color:#1F6A3C; } .kp-st.near{ background:#FDEFE3; color:#A4501A; } .kp-st.behind{ background:#FBEAE9; color:#A63A33; } .kp-st.pending{ background:var(--sand); color:var(--slate); }
.kp-target{ background:var(--sand); border-radius:9px; padding:7px 10px; font-size:12px; color:#3B4656; line-height:1.75; }
.kp-target p{ margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.kp-target.open p{ -webkit-line-clamp:unset; display:block; }
.kp-more{ border:0; background:none; color:var(--meadow); font:inherit; font-size:11.5px; font-weight:700; padding:0; cursor:pointer; width:auto; margin:0; }
.kp-target.open .kp-more{ display:none; }
.kp-m{ width:100%; border-collapse:collapse; font-size:12.5px; }
.kp-m thead th{ font-size:11px; color:var(--slate); font-weight:700; padding:0 4px 4px; text-align:center; }
.kp-m tbody th{ text-align:right; font-weight:700; font-size:12px; padding:5px 4px; color:#3B4656; max-width:110px; }
.kp-m td{ text-align:center; padding:5px 4px; border-top:1px solid var(--border); }
.kp-m tbody th{ border-top:1px solid var(--border); }
.kp-m td small{ color:var(--slate); font-size:10.5px; }
.kp-in{ display:inline-flex; align-items:center; gap:2px; }
.kp-ach{ width:64px !important; margin:0 !important; padding:5px 6px !important; font:inherit; font-size:13px; font-weight:800; text-align:center; border:1px dashed #B9C4D6 !important; border-radius:8px !important; background:#FAFBFD; }
.kp-ach:focus{ border-style:solid !important; border-color:var(--meadow) !important; background:#fff; outline:none; }
.kp-in i{ font-style:normal; font-size:11px; color:var(--slate); }
.kp-bar-td{ width:70px; }
.kp-bar{ display:block; height:8px; background:var(--sand); border-radius:99px; overflow:hidden; }
.kp-bar i{ display:block; height:100%; border-radius:99px; background:#A9B2BF; }
.kp-bar.met i{ background:#2E9155; } .kp-bar.near i{ background:#E07A34; } .kp-bar.behind i{ background:#C0453D; }
.kp-foot{ display:flex; align-items:center; gap:6px 12px; flex-wrap:wrap; font-size:11.5px; color:var(--slate); border-top:1px dashed var(--border); padding-top:8px; }
.kp-prog{ font-weight:800; color:var(--meadow); }
.kp-prog.none{ color:var(--slate); font-weight:600; }
.kp-who{ color:var(--ink); font-weight:600; }
.kp-tasks b{ color:#A63A33; }
.kp-foot em{ font-style:normal; color:#A4501A; }
.kp-dir{ margin-inline-start:auto; font-size:10.5px; }
.kp-edit{ border:1px solid var(--border); background:#fff; color:var(--ink); font:inherit; font-size:11.5px; font-weight:700; border-radius:8px; padding:3px 10px; cursor:pointer; width:auto; margin:0; }
.kp-edit:hover{ border-color:var(--meadow); color:var(--meadow); }
.kp-note{ margin:0; font-size:12px; color:#7A5A12; background:#FFF8E6; border-radius:8px; padding:5px 9px; }
.kp-ed{ max-width:560px; }
.kp-f{ display:flex; flex-direction:column; gap:4px; font-size:12.5px; font-weight:700; color:var(--slate); margin-bottom:10px; }
.kp-f small{ font-weight:500; }
.kp-f input, .kp-f select, .kp-f textarea{ width:100%; margin:0; font:inherit; font-size:13.5px; color:var(--ink); }
.kp-f2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.kp-ed-mh{ display:grid; grid-template-columns:minmax(0,1.4fr) 86px minmax(0,1fr) minmax(0,1fr) 30px; gap:6px; font-size:11px; color:var(--slate); margin:4px 0 3px; }
.kp-ed-m{ display:grid; grid-template-columns:minmax(0,1.4fr) 86px minmax(0,1fr) minmax(0,1fr) 30px; gap:6px; margin-bottom:6px; }
.kp-ed-m input, .kp-ed-m select{ margin:0; font-size:13px; padding:7px 8px; width:100%; }
.m-del{ border:0; background:var(--sand); border-radius:8px; color:var(--slate); cursor:pointer; width:auto; margin:0; padding:0; }
.kp-e-del{ color:var(--danger) !important; }
@media (max-width: 900px){
  .kp-grid{ grid-template-columns:minmax(0,1fr); }
  .kp-tiles{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .kp-tiles button:first-child{ grid-column:span 2; }
  .kp-ed-m{ grid-template-columns:1fr 1fr; padding-bottom:6px; border-bottom:1px dashed var(--border); }
  .kp-ed-m .m-label{ grid-column:span 2; }
  .kp-ed-mh{ display:none; }
}

/* تنبيهات المدير في لوحة الخطة */
.op-alerts{ display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:10px; margin:14px 0 4px; }
.op-alerts:empty{ display:none; }
.op-alert{ display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--border); border-radius:12px; padding:11px 14px; }
.op-alert > div{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.op-alert b{ font-size:13.5px; }
.op-alert span{ font-size:12px; color:var(--slate); }
.op-alert-ic{ width:34px; height:34px; border-radius:10px; display:flex !important; align-items:center; justify-content:center; font-weight:900; font-size:16px !important; flex-shrink:0; }
.op-alert.today .op-alert-ic{ background:#E7F5EC; color:#1F6A3C !important; }
.op-alert.warn{ border-color:#F2D3B8; background:#FFFAF5; }
.op-alert.warn .op-alert-ic{ background:#FDEFE3; color:#B65A1B !important; }
.op-alert-btn{ border:0; background:#E07A34; color:#fff; font:inherit; font-size:12.5px; font-weight:800; border-radius:9px; padding:8px 13px; cursor:pointer; white-space:nowrap; width:auto; margin:0; }
.op-own{ max-width:520px; }
.op-own-row{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--border); font-size:13px; font-weight:700; margin:0; }
.op-own-row select{ margin:0; width:100%; font:inherit; font-size:13px; padding:7px 8px; }

/* متابعة دخول الموظفين */
.lg-modal{ max-width:620px; }
.lg-tiles{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:8px; margin-bottom:10px; }
.lg-tiles button{ display:flex; flex-direction:column; align-items:center; gap:1px; background:#fff; border:1px solid var(--border); border-radius:11px; padding:9px 6px; font:inherit; cursor:pointer; width:auto; margin:0; color:var(--ink); }
.lg-tiles b{ font-size:21px; font-family:'Tajawal',sans-serif; }
.lg-tiles span{ font-size:11.5px; color:var(--slate); font-weight:600; }
.lg-tiles .ok b{ color:#2E7A4C; } .lg-tiles .warn b{ color:#B65A1B; } .lg-tiles .bad b{ color:#A63A33; }
.lg-tiles button.on{ box-shadow:0 0 0 2px var(--meadow); border-color:transparent; }
.lg-tools{ display:flex; gap:8px; margin-bottom:6px; }
.lg-tools input{ flex:1; margin:0; }
.lg-tools .btn-secondary{ width:auto; padding:8px 12px; margin:0; white-space:nowrap; }
.lg-gh{ margin:12px 0 6px; font-size:13px; display:flex; align-items:center; gap:6px; }
.lg-gh small{ background:var(--sand); border-radius:99px; padding:1px 8px; font-size:11px; color:var(--slate); }
.lg-gh.week{ color:#1F6A3C; } .lg-gh.old{ color:#A4501A; } .lg-gh.never{ color:#A63A33; }
.lg-list{ list-style:none; margin:0; padding:0; border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.lg-list li{ display:flex; align-items:center; gap:10px; padding:9px 12px; font-size:13px; }
.lg-list li + li{ border-top:1px solid var(--border); }
.lg-dot{ width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.lg-dot.week{ background:#2E9155; } .lg-dot.old{ background:#E07A34; } .lg-dot.never{ background:#C0453D; }
.lg-name{ flex:1; min-width:0; display:flex; flex-direction:column; }
.lg-name b{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lg-name small{ font-size:11px; color:var(--slate); }
.lg-when{ font-size:12px; color:var(--slate); white-space:nowrap; }
.lg-wa{ font-size:12px; font-weight:800; color:#fff; background:#25A35A; border-radius:8px; padding:5px 10px; text-decoration:none; white-space:nowrap; }
.lg-wa:hover{ background:#1E8A4C; color:#fff; }
.lg-nophone{ font-size:11px; color:var(--slate); white-space:nowrap; }
@media (max-width:640px){ .lg-tiles{ grid-template-columns:repeat(2, minmax(0,1fr)); } .lg-name small{ display:none; } .lg-when{ font-size:11px; } .lg-list li{ gap:7px; padding:9px 10px; } }
.lg-group{ display:inline-flex; align-items:center; padding:8px 12px !important; }

/* ===== تحضير الطلاب ===== */
.att-page{ display:flex; flex-direction:column; gap:14px; padding-bottom:70px; }
.att-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.att-head h3{ margin:0 0 4px; font-size:22px; }
.att-head p{ margin:0; font-size:13px; color:var(--slate); }
#att-take, #att-day{ display:flex; flex-direction:column; gap:12px; }
#att-take.hidden, #att-day.hidden{ display:none; }
.att-slots{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:12px; }
.att-slots > b{ font-size:13px; display:block; margin-bottom:8px; }
.att-slots > div{ display:flex; gap:8px; overflow-x:auto; padding-bottom:2px; }
.att-slot{ flex:0 0 auto; display:flex; flex-direction:column; align-items:flex-start; gap:1px; min-width:112px; border:1px solid var(--border); background:var(--sand); border-radius:11px; padding:8px 11px; font:inherit; cursor:pointer; text-align:right; width:auto; margin:0; color:var(--ink); }
.att-slot i{ font-style:normal; font-size:11px; color:var(--slate); font-weight:700; }
.att-slot span{ font-size:14px; font-weight:800; }
.att-slot small{ font-size:11px; color:var(--slate); }
.att-slot.done{ background:#E7F5EC; border-color:#B9E0C7; }
.att-slot.done small{ color:#1F6A3C; font-weight:700; }
.att-slot.on{ box-shadow:0 0 0 2px var(--meadow); background:#fff; }
.att-ctrl{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:10px; align-items:end; }
.att-ctrl label{ display:flex; flex-direction:column; gap:4px; font-size:12px; font-weight:700; color:var(--slate); margin:0; }
.att-ctrl input, .att-ctrl select{ margin:0; width:100%; font:inherit; font-size:14px; padding:9px 10px; color:var(--ink); }
.att-dayname{ font-size:13px; font-weight:700; color:var(--slate); padding-bottom:10px; }
.att-empty{ background:#fff; border:1px dashed #C9D3E3; border-radius:14px; padding:28px; text-align:center; color:var(--slate); font-size:13.5px; }
.att-bar{ display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; background:#fff; border:1px solid var(--border); border-radius:14px; padding:12px 14px; }
.att-bar-t{ display:flex; flex-direction:column; gap:2px; }
.att-bar-t b{ font-size:15px; }
.att-bar-t span{ font-size:12px; color:var(--slate); }
.att-counts{ display:flex; gap:8px; }
.att-counts span{ display:flex; flex-direction:column; align-items:center; min-width:62px; border-radius:10px; padding:5px 8px; font-size:11px; font-weight:700; }
.att-counts b{ font-size:19px; font-family:'Tajawal',sans-serif; }
.att-counts .p{ background:#E7F5EC; color:#1F6A3C; } .att-counts .a{ background:#FBEAE9; color:#A63A33; } .att-counts .l{ background:#FDEFE3; color:#A4501A; }
.att-tools{ display:flex; align-items:center; gap:12px; font-size:12px; color:var(--slate); flex-wrap:wrap; }
.att-tools .text-action-btn{ width:auto; padding:0; }
.att-students{ list-style:none; margin:0; padding:0; background:#fff; border:1px solid var(--border); border-radius:14px; overflow:hidden; }
.att-students li{ display:flex; align-items:center; gap:10px; padding:7px 12px; transition:background .15s; }
.att-students li + li{ border-top:1px solid var(--border); }
.att-students li.absent{ background:#FFF4F3; } .att-students li.late{ background:#FFF8EF; }
.att-n{ width:24px; text-align:center; font-size:12px; color:var(--slate); font-weight:700; flex-shrink:0; }
.att-name{ flex:1; min-width:0; border:0; background:none; font:inherit; font-size:14px; font-weight:700; text-align:right; padding:6px 0; cursor:pointer; color:var(--ink); width:auto; margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.att-seg{ display:inline-flex; background:var(--sand); border-radius:10px; padding:3px; gap:2px; flex-shrink:0; }
.att-seg button{ border:0; background:none; font:inherit; font-size:12.5px; font-weight:700; color:var(--slate); border-radius:8px; padding:7px 11px; cursor:pointer; width:auto; margin:0; }
.att-seg button.on[data-set="present"]{ background:#fff; color:#1F6A3C; box-shadow:0 1px 3px rgba(21,34,56,.12); }
.att-seg button.on[data-set="absent"]{ background:#C0453D; color:#fff; }
.att-seg button.on[data-set="late"]{ background:#E07A34; color:#fff; }
.att-save{ position:sticky; bottom:10px; display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--border); border-radius:14px; padding:10px 12px; box-shadow:0 8px 24px rgba(21,34,56,.12); z-index:5; }
.att-save .btn-primary{ width:auto; padding:11px 22px; margin:0; }
.att-save span{ font-size:12.5px; color:#A4501A; font-weight:700; }
.att-tiles{ grid-template-columns:repeat(4, minmax(0,1fr)); }
.att-tiles > div{ display:flex; flex-direction:column; gap:2px; background:#fff; border:1px solid var(--border); border-radius:12px; padding:11px 13px; border-inline-start:4px solid var(--meadow); }
.att-tiles > div b{ font-size:24px; font-family:'Tajawal',sans-serif; line-height:1.1; }
.att-tiles > div span{ font-size:12px; color:var(--slate); font-weight:600; }
.att-tiles > div.behind{ border-inline-start-color:#C0453D; } .att-tiles > div.near{ border-inline-start-color:#E07A34; } .att-tiles > div.met{ border-inline-start-color:#2E7A4C; }
.att-grid-wrap{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:10px 14px; }
.att-grid-wrap summary{ cursor:pointer; font-weight:800; font-size:13.5px; }
.att-grid{ overflow-x:auto; margin-top:10px; }
.att-grid table{ border-collapse:collapse; width:100%; min-width:420px; font-size:12.5px; }
.att-grid th, .att-grid td{ border:1px solid var(--border); padding:6px; text-align:center; }
.att-grid thead th{ background:var(--sand); }
.att-grid tbody th{ text-align:right; white-space:nowrap; }
.att-grid td.ok{ background:#E7F5EC; color:#1F6A3C; font-weight:800; }
.att-grid td.miss{ background:#FFF4F3; color:#A63A33; font-weight:800; }
.att-hint{ font-size:11.5px; color:var(--slate); margin:8px 0 0; }
.att-msg-card{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:14px; display:flex; flex-direction:column; gap:10px; }
.att-msg-h{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap; }
.att-msg-h b{ font-size:15px; } .att-msg-h span{ font-size:12px; color:var(--slate); }
.att-tpl{ display:flex; flex-direction:column; gap:4px; font-size:12px; font-weight:700; color:var(--slate); margin:0; }
.att-tpl textarea{ width:100%; margin:0; font:inherit; font-size:13px; color:var(--ink); resize:vertical; }
.att-tpl small{ font-weight:500; }
.att-msg-tools{ display:flex; align-items:center; gap:14px; font-size:13px; font-weight:700; }
.att-msg-tools label{ display:flex; align-items:center; gap:6px; margin:0; cursor:pointer; }
.att-msg-tools .text-action-btn{ width:auto; padding:0; }
.att-abs-list{ list-style:none; margin:0; padding:0; border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.att-abs-list li{ display:flex; align-items:center; gap:10px; padding:9px 12px; }
.att-abs-list li + li{ border-top:1px solid var(--border); }
.att-abs-list li.sent{ background:#FAFBFD; }
.att-abs-list input{ width:17px; height:17px; margin:0; flex-shrink:0; accent-color:var(--meadow); }
.att-abs-name{ flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.att-abs-name b{ font-size:13.5px; } .att-abs-name small{ font-size:11.5px; color:var(--slate); }
.att-ms{ font-size:11px; font-weight:800; border-radius:99px; padding:2px 9px; white-space:nowrap; }
.att-ms.pending{ background:#FFF4DE; color:#8A5A00; } .att-ms.sent{ background:#E7F5EC; color:#1F6A3C; } .att-ms.failed{ background:#FBEAE9; color:#A63A33; }
@media (max-width: 760px){
  .att-ctrl{ grid-template-columns:1fr 1fr; }
  .att-tiles{ grid-template-columns:1fr 1fr; }
  .att-seg button{ padding:7px 8px; font-size:12px; }
  .att-students li{ padding:6px 8px; gap:6px; }
  .att-name{ font-size:13px; white-space:normal; line-height:1.4; }
}
.att-msg-tools label{ white-space:nowrap; }
.att-retry{ align-self:flex-start; width:auto; padding:0; }
.att-ms.sending{ background:#EAF1FC; color:#2455A4; }
.att-send-pending{ align-self:flex-start; width:auto !important; padding:10px 18px !important; margin:0 !important; }

/* ===== تحضير الطلاب (تصميم جديد) ===== */
.av{ display:flex; flex-direction:column; gap:14px; padding-bottom:84px; }
.av section{ display:flex; flex-direction:column; gap:12px; }
.av section.hidden{ display:none; }
.av-hero{ display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; background:linear-gradient(135deg, #0F2447 0%, #1C3E73 100%); color:#fff; border-radius:18px; padding:18px 20px; }
.av-hero-t h3{ margin:0 0 4px; font-size:22px; color:#fff; }
.av-hero-t span{ font-size:12.5px; color:#C8D6EE; }
.av-hero-r{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.av-datenav{ display:flex; align-items:center; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.16); border-radius:12px; padding:3px; }
.av-datenav > button{ width:34px; height:34px; border:0; background:none; color:#fff; border-radius:9px; cursor:pointer; display:flex; align-items:center; justify-content:center; margin:0; padding:0; }
.av-datenav > button svg{ width:18px; height:18px; }
.av-datenav > button:hover:not(:disabled){ background:rgba(255,255,255,.14); }
.av-datenav > button:disabled{ opacity:.3; cursor:default; }
.av-d-lbl{ position:relative; padding:0 10px; font-size:13px; font-weight:800; cursor:pointer; margin:0; white-space:nowrap; }
.av-d-lbl input{ position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; margin:0; }
.av-tabs{ display:flex; background:rgba(255,255,255,.1); border-radius:12px; padding:3px; }
.av-tabs button{ border:0; background:none; color:#C8D6EE; font:inherit; font-size:13px; font-weight:800; padding:8px 14px; border-radius:9px; cursor:pointer; width:auto; margin:0; }
.av-tabs button.on{ background:#fff; color:#0F2447; }
.av-card{ background:#fff; border:1px solid var(--border); border-radius:16px; padding:14px; box-shadow:var(--shadow-sm); }
.av-card-h{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-bottom:10px; flex-wrap:wrap; }
.av-card-h b{ font-size:15px; } .av-card-h > span{ font-size:12px; color:var(--slate); }
.av-noslots{ text-align:center; color:var(--slate); font-size:13.5px; padding:22px; }
.av-next{ display:flex; align-items:center; gap:14px; width:100%; border:0; margin:0; cursor:pointer; text-align:right; font:inherit; color:#fff; background:linear-gradient(135deg, #0E93A8, #2455A4); border-radius:18px; padding:16px 18px; box-shadow:0 10px 24px rgba(36,85,164,.25); transition:transform .15s; }
.av-next:active{ transform:scale(.99); }
.av-next-p{ width:62px; height:62px; border-radius:16px; background:rgba(255,255,255,.16); display:flex; flex-direction:column; align-items:center; justify-content:center; flex-shrink:0; }
.av-next-p small{ font-size:10.5px; opacity:.85; } .av-next-p b{ font-size:28px; line-height:1; font-family:'Tajawal',sans-serif; }
.av-next-m{ flex:1; display:flex; flex-direction:column; gap:2px; min-width:0; }
.av-next-m small{ font-size:12px; font-weight:700; opacity:.9; } .av-next-m b{ font-size:18px; } .av-next-m span{ font-size:12.5px; opacity:.85; }
.av-next-go{ display:flex; align-items:center; gap:4px; font-size:13px; font-weight:800; background:#fff; color:#2455A4; border-radius:11px; padding:9px 13px; white-space:nowrap; }
.av-next-go svg{ width:16px; height:16px; }
.av-alldone{ display:flex; align-items:center; gap:10px; background:#E7F5EC; color:#1F6A3C; border-radius:16px; padding:14px 16px; font-size:14px; }
.av-alldone svg{ width:22px; height:22px; }
.av-slots{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.av-slot{ display:flex; align-items:center; gap:12px; width:100%; border:1px solid var(--border); background:#fff; border-radius:13px; padding:9px 11px; font:inherit; color:var(--ink); cursor:pointer; text-align:right; margin:0; transition:border-color .15s, background .15s; }
.av-slot:hover{ border-color:#B9C8E2; background:#FAFBFD; }
.av-slot-n{ width:36px; height:36px; border-radius:11px; background:var(--sand); display:flex; align-items:center; justify-content:center; font-weight:900; font-size:15px; flex-shrink:0; color:var(--ink); }
.av-slot.done .av-slot-n{ background:#E7F5EC; color:#1F6A3C; } .av-slot.now .av-slot-n{ background:#2455A4; color:#fff; } .av-slot.late .av-slot-n{ background:#FBEAE9; color:#A63A33; }
.av-slot.now{ border-color:#2455A4; box-shadow:0 0 0 3px var(--meadow-light); }
.av-slot-m{ flex:1; min-width:0; display:flex; flex-direction:column; }
.av-slot-m b{ font-size:14.5px; } .av-slot-m small{ font-size:12px; color:var(--slate); }
.av-chip{ font-size:11.5px; font-weight:800; border-radius:99px; padding:3px 10px; white-space:nowrap; background:var(--sand); color:var(--slate); }
.av-chip.done{ background:#E7F5EC; color:#1F6A3C; } .av-chip.now{ background:#2455A4; color:#fff; } .av-chip.late{ background:#FBEAE9; color:#A63A33; }
.av-pick-row{ display:flex; align-items:center; gap:10px; margin-bottom:10px; flex-wrap:wrap; }
.av-lbl{ font-size:12px; font-weight:800; color:var(--slate); min-width:48px; }
.av-pchips{ display:flex; gap:5px; flex-wrap:wrap; }
.av-pchips button{ width:38px; height:38px; border:1px solid var(--border); background:#fff; border-radius:11px; font:inherit; font-weight:800; font-size:14px; cursor:pointer; margin:0; padding:0; color:var(--ink); }
.av-pchips button.on{ background:#0F2447; color:#fff; border-color:#0F2447; }
.av-seg{ display:inline-flex; background:var(--sand); border-radius:11px; padding:3px; gap:2px; }
.av-seg button{ border:0; background:none; font:inherit; font-size:13px; font-weight:800; color:var(--slate); padding:8px 13px; border-radius:9px; cursor:pointer; width:auto; margin:0; }
.av-seg button.on{ background:#fff; color:var(--meadow); box-shadow:0 1px 3px rgba(21,34,56,.12); }
.av-secs{ display:grid; grid-template-columns:repeat(auto-fill, minmax(104px, 1fr)); gap:8px; }
.av-sec{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; border:1px solid var(--border); background:#fff; border-radius:13px; padding:11px 12px; font:inherit; cursor:pointer; text-align:right; margin:0; color:var(--ink); transition:border-color .15s, transform .1s; }
.av-sec:hover{ border-color:var(--meadow); } .av-sec:active{ transform:scale(.98); }
.av-sec b{ font-size:16px; } .av-sec small{ font-size:11.5px; color:var(--slate); }
.av-sec.done{ background:#F3FAF5; border-color:#B9E0C7; }
/* الفصل */
.av-class{ display:flex; flex-direction:column; gap:10px; }
.av-class-h{ display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--border); border-radius:16px; padding:10px 12px; position:sticky; top:74px; z-index:6; box-shadow:0 6px 18px rgba(21,34,56,.08); }
.av-back{ display:flex; align-items:center; gap:3px; border:0; background:var(--sand); color:var(--ink); border-radius:10px; padding:8px 10px; font:inherit; font-size:12.5px; font-weight:800; cursor:pointer; width:auto; margin:0; flex-shrink:0; }
.av-back svg{ width:16px; height:16px; }
.av-class-t{ flex:1; min-width:0; display:flex; flex-direction:column; }
.av-class-t b{ font-size:15.5px; } .av-class-t span{ font-size:12px; color:var(--slate); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.av-saved-badge{ display:flex; align-items:center; gap:4px; font-size:11.5px; font-weight:800; color:var(--slate); background:var(--sand); border-radius:99px; padding:4px 10px; white-space:nowrap; }
.av-saved-badge.on{ background:#E7F5EC; color:#1F6A3C; } .av-saved-badge svg{ width:13px; height:13px; }
.av-stats{ display:grid; grid-template-columns:repeat(3, 1fr); gap:8px; }
.av-stats span{ display:flex; align-items:baseline; justify-content:center; gap:6px; border-radius:13px; padding:9px; font-size:12.5px; font-weight:800; }
.av-stats b{ font-size:22px; font-family:'Tajawal',sans-serif; }
.av-stats .p{ background:#E7F5EC; color:#1F6A3C; } .av-stats .a{ background:#FBEAE9; color:#A63A33; } .av-stats .l{ background:#FDEFE3; color:#A4501A; }
.av-tools{ display:flex; gap:8px; align-items:center; }
.av-search{ flex:1; display:flex; align-items:center; gap:7px; background:#fff; border:1px solid var(--border); border-radius:12px; padding:0 11px; margin:0; }
.av-search svg{ width:17px; height:17px; color:var(--slate); flex-shrink:0; }
.av-search input{ border:0 !important; outline:0; background:none; margin:0 !important; padding:10px 0 !important; font:inherit; font-size:13.5px; width:100%; box-shadow:none !important; }
.av-reset{ border:1px solid var(--border); background:#fff; border-radius:12px; padding:10px 13px; font:inherit; font-size:12.5px; font-weight:800; color:var(--ink); cursor:pointer; white-space:nowrap; width:auto; margin:0; }
.av-hint{ margin:0; font-size:11.5px; color:var(--slate); }
.av-hint i{ font-style:normal; font-weight:800; } .av-hint i.p{ color:#1F6A3C; } .av-hint i.a{ color:#A63A33; } .av-hint i.l{ color:#A4501A; }
.av-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:8px; }
.av-stu{ display:flex; align-items:center; gap:10px; border:1.5px solid var(--border); background:#fff; border-radius:14px; padding:9px 10px; font:inherit; color:var(--ink); cursor:pointer; text-align:right; margin:0; width:100%; user-select:none; -webkit-tap-highlight-color:transparent; transition:border-color .15s, background .15s; }
.av-stu.hidden{ display:none; }
.av-stu.pop{ animation:avPop .18s ease-out; }
@keyframes avPop{ 0%{ transform:scale(.97); } 100%{ transform:scale(1); } }
.av-av{ width:38px; height:38px; border-radius:12px; background:var(--meadow-light); color:var(--meadow); display:flex; align-items:center; justify-content:center; font-weight:900; font-size:14px; flex-shrink:0; }
.av-nm{ flex:1; min-width:0; display:flex; flex-direction:column; }
.av-nm b{ font-size:13.5px; line-height:1.35; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.av-nm small{ font-size:10.5px; color:var(--slate); }
.av-st{ display:flex; align-items:center; gap:3px; font-size:11.5px; font-weight:800; border-radius:99px; padding:4px 9px; flex-shrink:0; background:#F1F6F2; color:#4C8B62; }
.av-st svg{ width:13px; height:13px; }
.av-stu.absent{ border-color:#E7A39D; background:#FFF5F4; } .av-stu.absent .av-av{ background:#C0453D; color:#fff; } .av-stu.absent .av-st{ background:#C0453D; color:#fff; }
.av-stu.late{ border-color:#F0C08F; background:#FFF8EF; } .av-stu.late .av-av{ background:#E07A34; color:#fff; } .av-stu.late .av-st{ background:#E07A34; color:#fff; }
.av-savebar{ position:fixed; bottom:14px; left:50%; transform:translateX(-50%); width:min(720px, calc(100% - 28px)); display:flex; align-items:center; justify-content:space-between; gap:12px; background:#0F2447; color:#fff; border-radius:16px; padding:10px 12px 10px 16px; box-shadow:0 14px 34px rgba(15,36,71,.35); z-index:50; }
#av-take:empty + * .av-savebar{ display:none; }
.av-savebar span{ font-size:13px; color:#C8D6EE; }
.av-savebar b.a{ color:#FFB4AE; } .av-savebar b.l{ color:#FFD3A8; }
.av-save-btn{ border:0; background:#fff; color:#0F2447; font:inherit; font-size:14px; font-weight:900; border-radius:12px; padding:11px 22px; cursor:pointer; display:flex; align-items:center; gap:6px; width:auto; margin:0; }
.av-save-btn.done{ background:rgba(255,255,255,.14); color:#B9E0C7; cursor:default; }
.av-save-btn svg{ width:16px; height:16px; }
.av-toast{ position:fixed; top:84px; bottom:auto; left:50%; transform:translateX(-50%); z-index:1300; background:#1F6A3C; color:#fff; font-size:13.5px; font-weight:700; padding:11px 18px; border-radius:12px; box-shadow:0 10px 28px rgba(0,0,0,.18); max-width:min(92vw, 520px); text-align:center; }
.av-toast.err{ background:#A63A33; } .av-toast.hidden{ display:none; }
/* متابعة اليوم */
.av-kpis{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:10px; }
.av-kpi{ display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--border); border-radius:16px; padding:13px 14px; }
.av-kpi > div{ display:flex; flex-direction:column; }
.av-kpi > div b{ font-size:24px; font-family:'Tajawal',sans-serif; line-height:1.1; } .av-kpi > div b small{ font-size:14px; color:var(--slate); }
.av-kpi > div span{ font-size:12px; color:var(--slate); font-weight:600; }
.av-kpi.a > div b{ color:#A63A33; } .av-kpi.f > div b{ color:#A4501A; } .av-kpi.s > div b{ color:#1F6A3C; }
.av-ring{ --p:0; width:50px; height:50px; border-radius:50%; flex-shrink:0; background:conic-gradient(#2455A4 calc(var(--p) * 1%), var(--sand) 0); display:flex; align-items:center; justify-content:center; position:relative; }
.av-ring::before{ content:''; position:absolute; inset:6px; background:#fff; border-radius:50%; }
.av-ring b{ position:relative; font-size:12px; font-weight:900; color:#2455A4; }
.av-subtabs{ display:flex; gap:6px; border-bottom:1px solid var(--border); }
.av-subtabs button{ display:flex; align-items:center; gap:6px; border:0; background:none; font:inherit; font-size:13.5px; font-weight:800; color:var(--slate); padding:10px 12px; border-bottom:2.5px solid transparent; margin:0 0 -1px; cursor:pointer; width:auto; }
.av-subtabs button svg{ width:17px; height:17px; }
.av-subtabs button i{ font-style:normal; font-size:11px; background:var(--sand); border-radius:99px; padding:1px 8px; }
.av-subtabs button i.warn{ background:#FBEAE9; color:#A63A33; }
.av-subtabs button.on{ color:var(--meadow); border-bottom-color:var(--meadow); }
.av-filters{ display:flex; gap:6px; flex-wrap:wrap; }
.av-filters button{ border:1px solid var(--border); background:#fff; font:inherit; font-size:12.5px; font-weight:800; color:var(--ink); border-radius:99px; padding:7px 13px; cursor:pointer; width:auto; margin:0; }
.av-filters button i{ font-style:normal; color:var(--slate); margin-inline-start:3px; }
.av-filters button.on{ background:#0F2447; border-color:#0F2447; color:#fff; } .av-filters button.on i{ color:#C8D6EE; }
.av-banner{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:#FFF8E6; border:1px solid #F2D9A2; color:#7A5A12; border-radius:13px; padding:9px 12px; font-size:13px; font-weight:700; }
.av-banner button{ border:0; background:#E07A34; color:#fff; font:inherit; font-size:12.5px; font-weight:800; border-radius:9px; padding:6px 12px; cursor:pointer; width:auto; margin:0; }
.av-abs{ display:flex; flex-direction:column; gap:10px; }
.av-grp{ background:#fff; border:1px solid var(--border); border-radius:16px; overflow:hidden; }
.av-grp-h{ display:flex; justify-content:space-between; align-items:baseline; padding:9px 14px; background:var(--sand); }
.av-grp-h b{ font-size:14px; } .av-grp-h span{ font-size:12px; color:var(--slate); }
.av-grp ul{ list-style:none; margin:0; padding:0; }
.av-grp li{ display:flex; align-items:center; gap:10px; padding:9px 14px; border-top:1px solid var(--border); cursor:pointer; transition:background .12s; }
.av-grp li.nosel{ cursor:default; }
.av-grp li.sel{ background:#F4F8FF; }
.av-ck{ width:18px; flex-shrink:0; display:flex; }
.av-ck input{ width:18px; height:18px; margin:0; accent-color:var(--meadow); }
.av-abs-m{ flex:1; min-width:0; display:flex; flex-direction:column; }
.av-abs-m b{ font-size:13.5px; } .av-abs-m small{ font-size:11.5px; color:var(--slate); }
.av-dots{ display:flex; gap:3px; flex-shrink:0; }
.av-dots i{ width:20px; height:20px; border-radius:6px; font-style:normal; font-size:10px; font-weight:800; display:flex; align-items:center; justify-content:center; background:#F2F4F7; color:#B0B8C4; }
.av-dots i.p{ background:#E7F5EC; color:#4C8B62; } .av-dots i.a{ background:#C0453D; color:#fff; } .av-dots i.l{ background:#E07A34; color:#fff; }
.av-ms{ font-size:11px; font-weight:800; border-radius:99px; padding:3px 9px; white-space:nowrap; flex-shrink:0; }
.av-ms.pending{ background:#FFF4DE; color:#8A5A00; } .av-ms.sending{ background:#EAF1FC; color:#2455A4; } .av-ms.sent{ background:#E7F5EC; color:#1F6A3C; } .av-ms.failed{ background:#FBEAE9; color:#A63A33; }
.av-tplbox summary{ cursor:pointer; display:flex; flex-direction:column; gap:3px; list-style:none; }
.av-tplbox summary::-webkit-details-marker{ display:none; }
.av-tplbox summary b{ font-size:14px; } .av-tplbox summary span{ font-size:12px; color:var(--slate); line-height:1.7; }
.av-tplbox textarea{ width:100%; margin:10px 0 6px; font:inherit; font-size:13.5px; resize:vertical; }
.av-vars{ display:flex; gap:6px; flex-wrap:wrap; }
.av-vars button{ border:1px dashed #B9C8E2; background:#F6F9FF; color:var(--meadow); font:inherit; font-size:12px; font-weight:800; border-radius:8px; padding:4px 9px; cursor:pointer; width:auto; margin:0; }
.av-vars .av-tpl-reset{ border-style:solid; background:#fff; color:var(--slate); margin-inline-start:auto; }
.av-sms{ margin:0; font-size:12px; color:var(--slate); display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.av-actionbar{ position:fixed; bottom:14px; left:50%; transform:translate(-50%, 140%); width:min(640px, calc(100% - 28px)); display:flex; align-items:center; justify-content:space-between; gap:12px; background:#0F2447; color:#fff; border-radius:16px; padding:10px 12px 10px 16px; box-shadow:0 14px 34px rgba(15,36,71,.35); z-index:50; transition:transform .25s ease; }
.av-actionbar.show{ transform:translate(-50%, 0); }
.av-actionbar span{ font-size:13px; color:#C8D6EE; font-weight:700; }
.av-actionbar button{ border:0; background:#25A35A; color:#fff; font:inherit; font-size:14px; font-weight:900; border-radius:12px; padding:11px 18px; cursor:pointer; width:auto; margin:0; }
.av-empty-day{ display:flex; flex-direction:column; align-items:center; gap:6px; text-align:center; padding:28px; color:var(--slate); }
.av-empty-day svg{ width:30px; height:30px; color:#2E9155; } .av-empty-day b{ color:var(--ink); font-size:15px; }
.av-empty-day.small{ flex-direction:row; justify-content:center; padding:14px; } .av-empty-day.small svg{ width:20px; height:20px; }
.av-miss{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.av-miss li{ display:flex; align-items:center; gap:10px; border:1px solid #F2D4D1; background:#FFFBFA; border-radius:12px; padding:8px 10px; }
.av-miss li .av-slot-n{ background:#FBEAE9; color:#A63A33; width:32px; height:32px; }
.av-miss li > span:nth-child(2){ flex:1; display:flex; flex-direction:column; }
.av-miss li b{ font-size:13.5px; } .av-miss li small{ font-size:11.5px; color:var(--slate); }
.av-miss-t{ font-size:12.5px; font-weight:800; color:#A63A33; }
.av-legend{ display:flex; align-items:center; gap:6px; font-size:11.5px; }
.av-legend i{ width:11px; height:11px; border-radius:3px; display:inline-block; margin-inline-start:6px; }
.av-legend i.ok{ background:#E7F5EC; border:1px solid #9FD3B3; } .av-legend i.ab{ background:#FBEAE9; border:1px solid #E7A39D; } .av-legend i.ms{ background:#F2F4F7; border:1px dashed #A9B2BF; }
.av-heat{ overflow-x:auto; }
.av-heat table{ border-collapse:separate; border-spacing:4px; width:100%; min-width:380px; }
.av-heat th{ font-size:12px; color:var(--slate); font-weight:800; padding:2px 4px; }
.av-heat tbody th{ text-align:right; white-space:nowrap; color:var(--ink); }
.av-heat td{ height:34px; border-radius:9px; text-align:center; font-size:13px; font-weight:900; background:#FAFBFC; }
.av-heat td.ok{ background:#E7F5EC; color:#1F6A3C; } .av-heat td.ab{ background:#FBEAE9; color:#A63A33; } .av-heat td.ms{ background:#F2F4F7; color:#A9B2BF; outline:1px dashed #C9D1DC; outline-offset:-3px; }
@media (max-width: 760px){
  .av-hero{ padding:14px; border-radius:16px; }
  .av-hero-t h3{ font-size:19px; }
  .av-hero-r{ width:100%; justify-content:space-between; }
  .av-next{ padding:13px; gap:11px; }
  .av-next-p{ width:52px; height:52px; } .av-next-p b{ font-size:23px; }
  .av-next-m b{ font-size:15.5px; }
  .av-next-go{ display:none; }
  .av-kpis{ grid-template-columns:1fr 1fr; }
  .av-grid{ grid-template-columns:1fr; }
  .av-dots i{ width:16px; height:18px; font-size:9px; }
  .av-grp li{ flex-wrap:wrap; }
  .av-grp li .av-dots{ order:3; margin-inline-start:28px; }
  .av-class-h{ position:static; }
  .av-saved-badge{ display:none; }
}

.av-miss li{ align-items:flex-start; }
.av-miss-n{ width:30px; height:30px; border-radius:10px; background:#FBEAE9; color:#A63A33; display:flex; align-items:center; justify-content:center; font-weight:900; flex-shrink:0; }
.av-miss-m{ flex:1; min-width:0; display:flex; flex-direction:column; gap:5px; }
.av-miss-m > span{ display:flex; flex-wrap:wrap; gap:4px; }
.av-miss-m i{ font-style:normal; font-size:11.5px; font-weight:700; background:#fff; border:1px solid #F2D4D1; color:#8F312B; border-radius:7px; padding:1px 7px; }
/* جولة الفصول */
.av-round-top .av-pick-row{ margin:0; }
.av-round-sum{ font-size:12.5px; color:var(--slate); font-weight:700; margin-inline-start:auto; }
.av-round{ display:flex; flex-direction:column; gap:8px; }
.av-rc{ background:#fff; border:1px solid var(--border); border-radius:14px; overflow:hidden; }
.av-rc.none{ border-style:dashed; }
.av-rc-h{ display:flex; align-items:center; gap:10px; padding:10px 12px; }
.av-rc-n{ font-size:15px; font-weight:900; min-width:56px; }
.av-rc-t{ flex:1; min-width:0; font-size:12px; color:var(--slate); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.av-rc-t em{ font-style:normal; color:#A9B2BF; }
.av-rc-list{ list-style:none; margin:0; padding:0; border-top:1px solid var(--border); }
.av-rc-list li{ display:flex; align-items:center; gap:8px; padding:7px 12px; }
.av-rc-list li + li{ border-top:1px solid #F0F2F6; }
.av-rc-list li b{ flex:1; min-width:0; font-size:13.5px; }
.av-rc-s{ font-size:11px; font-weight:800; border-radius:7px; padding:2px 8px; flex-shrink:0; }
.av-rc-list li.absent .av-rc-s{ background:#C0453D; color:#fff; } .av-rc-list li.late .av-rc-s{ background:#E07A34; color:#fff; }
.av-rc-ok, .av-rc-late, .av-rc-abs{ display:flex; align-items:center; gap:4px; border:1px solid var(--border); background:#fff; font:inherit; font-size:12px; font-weight:800; border-radius:9px; padding:6px 11px; cursor:pointer; width:auto; margin:0; flex-shrink:0; }
.av-rc-ok{ color:#1F6A3C; border-color:#B9E0C7; background:#F3FAF5; } .av-rc-ok svg{ width:13px; height:13px; }
.av-rc-late{ color:#A4501A; border-color:#F0C08F; background:#FFF8EF; }
.av-rc-abs{ color:#fff; border-color:#C0453D; background:#C0453D; }
.av-rc-add{ border-top:1px solid #F0F2F6; padding:6px 12px; }
.av-rc-addbtn{ border:0; background:none; color:var(--meadow); font:inherit; font-size:12.5px; font-weight:800; cursor:pointer; padding:4px 0; width:auto; margin:0; }
.av-rc-pick{ border-top:1px solid var(--border); padding:10px 12px; background:#FAFBFD; display:flex; flex-direction:column; gap:8px; }
.av-rc-pick ul{ list-style:none; margin:0; padding:0; max-height:260px; overflow-y:auto; display:flex; flex-direction:column; gap:4px; }
.av-rc-pick li{ display:flex; align-items:center; gap:6px; background:#fff; border:1px solid var(--border); border-radius:10px; padding:6px 9px; }
.av-rc-pick li.hidden{ display:none; }
.av-rc-pick li b{ flex:1; font-size:13px; }
@media (max-width:760px){ .av-round-sum{ width:100%; margin:4px 0 0; } .av-rc-t{ display:none; } }
/* صلاحيات متابعة الغياب */
.av-permbtn{ display:flex; align-items:center; gap:6px; width:auto; margin:0; border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.12); color:inherit; font:inherit; font-size:12.5px; font-weight:800; border-radius:10px; padding:7px 12px; cursor:pointer; }
.av-permbtn svg{ width:14px; height:14px; }
.av-nosend .av-actionbar, .av-nosend .av-tplbox, .av-nosend .av-banner button, .av-nosend .av-abs input[type=checkbox]{ display:none !important; }
.av-nosend .av-abs li{ cursor:default; }
.av-perm-ov{ position:fixed; inset:0; background:rgba(15,23,42,.45); z-index:1200; display:flex; align-items:flex-start; justify-content:center; padding:60px 16px; overflow-y:auto; }
.av-perm-ov.hidden{ display:none; }
.av-perm{ background:#fff; border-radius:16px; width:100%; max-width:520px; padding:16px 18px 18px; box-shadow:0 20px 50px rgba(0,0,0,.25); }
.av-perm-h{ display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.av-perm-h b{ font-size:16px; }
.av-perm-x{ width:auto; margin:0; border:0; background:none; font-size:16px; cursor:pointer; color:var(--slate); }
.av-perm-d{ font-size:12.5px; color:var(--slate); line-height:1.8; margin:0 0 12px; }
.av-perm-add{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; padding:10px; background:#F7F9FC; border:1px solid var(--border); border-radius:12px; }
.av-perm-add select{ flex:1; min-width:180px; margin:0; }
.av-perm-add > button{ width:auto; margin:0; padding:8px 14px; }
.av-perm-chk{ display:flex; align-items:center; gap:5px; font-size:12.5px; font-weight:700; white-space:nowrap; margin:0; }
.av-perm-chk input{ width:auto; margin:0; }
.av-perm-list{ list-style:none; margin:12px 0 0; padding:0; display:flex; flex-direction:column; gap:6px; }
.av-perm-list li{ display:flex; align-items:center; gap:10px; border:1px solid var(--border); border-radius:11px; padding:8px 11px; }
.av-perm-list li b{ flex:1; font-size:13.5px; }
.av-perm-list li.empty{ justify-content:center; color:var(--slate); font-size:13px; border-style:dashed; }
.av-perm-del{ width:auto; margin:0; border:1px solid #F1C3BF; background:#FFF5F4; color:#B2382F; font:inherit; font-size:12px; font-weight:800; border-radius:9px; padding:5px 10px; cursor:pointer; }
.av-perm-err{ color:#B2382F; font-size:13px; }
/* الأدوار الإدارية */
.pm-staffroles{ margin-top:14px; }
.pm-sr-d{ font-size:12.5px; color:var(--slate); line-height:1.8; margin:0 0 10px; }
.pm-sr-list{ display:flex; flex-direction:column; gap:6px; margin-top:10px; max-height:420px; overflow-y:auto; }
.pm-sr-row{ display:flex; align-items:center; gap:10px; border:1px solid var(--border); border-radius:11px; padding:7px 11px; background:#fff; flex-wrap:wrap; }
.pm-sr-row.on{ border-color:#B9D7F0; background:#F4F9FE; }
.pm-sr-row b{ flex:1; min-width:140px; font-size:13.5px; }
.pm-sr-row select{ width:auto; min-width:130px; margin:0; padding:6px 10px; }
.pm-sr-st{ font-size:11.5px; font-weight:700; color:var(--slate); }
.pm-sr-st.ok{ color:#1F6A3C; } .pm-sr-st.err{ color:#B2382F; }
.pm-sr-empty{ font-size:13px; color:var(--slate); text-align:center; padding:12px; }
/* المناوبات: أكثر من معلم في الموقع نفسه */
.db-cell.filled.multi{ display:flex; flex-direction:column; align-items:stretch; gap:3px; padding:4px; }
.db-cell .db-cn{ display:block; position:relative; }
.db-cell.multi .db-cn{ background:rgba(255,255,255,.75); border-radius:6px; padding:2px 4px; }
.db-cell.multi .db-cn .db-dot{ position:static; display:inline-block; margin-inline-start:4px; vertical-align:middle; }
.db-sh-picked{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; padding:8px 2px 2px; font-size:12.5px; color:var(--slate); }
.db-pick{ width:auto; margin:0; border:1px solid #9FD3B3; background:#E7F5EC; color:#1F6A3C; font:inherit; font-size:12.5px; font-weight:700; border-radius:999px; padding:4px 10px; cursor:pointer; }
.db-pick:hover{ background:#FBEAE9; border-color:#F1C3BF; color:#B2382F; }
.db-pick small{ font-weight:600; opacity:.8; }
.db-sh-foot{ display:flex; gap:8px; justify-content:space-between; }
/* نتائج أولياء الأمور (النشر) */
.er-pubres-btn{ margin-inline-start:auto; border:1px solid #B9D7F0; background:#F2F8FE; color:#1D5A93; font:inherit; font-size:13px; font-weight:700; border-radius:10px; padding:8px 14px; cursor:pointer; white-space:nowrap; width:auto; }
.er-pubres-btn:hover{ background:#E3F0FC; }
.er-absrep-btn + .er-pubres-btn{ margin-inline-start:0; }
.rp-back{ position:fixed; inset:0; background:rgba(15,23,42,.45); z-index:1200; display:flex; align-items:flex-start; justify-content:center; padding:48px 16px; overflow-y:auto; }
.rp-back.hidden{ display:none; }
.rp{ background:#fff; border-radius:16px; width:100%; max-width:760px; padding:16px 18px 20px; box-shadow:0 20px 50px rgba(0,0,0,.25); }
.rp-h{ display:flex; align-items:center; gap:8px; margin-bottom:12px; }
.rp-h b{ flex:1; font-size:16.5px; }
.rp-ib{ width:auto; margin:0; border:0; background:none; font-size:16px; cursor:pointer; color:var(--slate); padding:4px 6px; }
.rp-link{ display:flex; flex-direction:column; gap:8px; background:#F7F9FC; border:1px solid var(--border); border-radius:12px; padding:12px; }
.rp-link b{ display:block; font-size:13.5px; } .rp-link span{ font-size:12px; color:var(--slate); }
.rp-link-r{ display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.rp-link-r code{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; background:#fff; border:1px solid var(--border); border-radius:8px; padding:7px 10px; }
.rp-btn{ display:inline-flex; align-items:center; justify-content:center; width:auto; margin:0; border:1px solid var(--meadow); background:var(--meadow); color:#fff; font:inherit; font-size:13px; font-weight:800; border-radius:10px; padding:8px 14px; cursor:pointer; text-decoration:none; white-space:nowrap; }
.rp-btn.ghost{ background:#fff; color:var(--ink); border-color:var(--border); }
.rp-btn.danger{ background:#FFF5F4; color:#B2382F; border-color:#F1C3BF; }
.rp-btn.sm{ font-size:12px; padding:6px 10px; border-radius:9px; }
.rp-btn:disabled{ opacity:.6; cursor:default; }
.rp-bar{ display:flex; align-items:center; justify-content:space-between; margin:16px 0 8px; }
.rp-list{ display:flex; flex-direction:column; gap:8px; }
.rp-item{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; border:1px solid var(--border); border-radius:12px; padding:10px 12px; }
.rp-item.on{ border-color:#B9E0C7; background:#F6FBF8; }
.rp-item-t{ flex:1; min-width:200px; } .rp-item-t b{ display:block; font-size:14px; } .rp-item-t span{ font-size:12px; color:var(--slate); }
.rp-item-a{ display:flex; gap:6px; flex-wrap:wrap; }
.rp-pill{ font-size:11.5px; font-weight:800; border-radius:999px; padding:3px 10px; background:#EEF1F5; color:var(--slate); }
.rp-pill.on{ background:#1F6A3C; color:#fff; }
.rp-empty{ text-align:center; color:var(--slate); font-size:13px; padding:18px; border:1px dashed var(--border); border-radius:12px; }
.rp-empty.sm{ padding:10px; }
.rp-form{ display:flex; flex-direction:column; gap:12px; }
.rp-seg{ display:flex; background:#F1F4F8; border-radius:11px; padding:3px; gap:3px; }
.rp-seg button{ flex:1; width:auto; margin:0; border:0; background:none; font:inherit; font-size:13px; font-weight:800; color:var(--slate); border-radius:9px; padding:8px; cursor:pointer; }
.rp-seg button.on{ background:#fff; color:var(--ink); box-shadow:0 1px 3px rgba(0,0,0,.08); }
.rp-row{ display:flex; gap:10px; flex-wrap:wrap; }
.rp-row label, .rp-full{ flex:1; min-width:200px; display:flex; flex-direction:column; gap:4px; font-size:12.5px; font-weight:700; color:var(--slate); margin:0; }
.rp-row select, .rp-full select, .rp-full input{ margin:0; }
.rp-lbl{ font-size:12.5px; font-weight:800; color:var(--slate); } .rp-lbl small{ font-weight:600; }
.rp-chips{ display:flex; gap:6px; flex-wrap:wrap; }
.rp-chips button{ width:auto; margin:0; border:1px solid var(--border); background:#fff; font:inherit; font-size:13px; font-weight:700; border-radius:999px; padding:6px 14px; cursor:pointer; }
.rp-chips button.on{ background:var(--meadow); border-color:var(--meadow); color:#fff; }
.rp-reps{ display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:6px; max-height:300px; overflow-y:auto; }
.rp-rep{ display:grid; grid-template-columns:auto 1fr; column-gap:8px; align-items:center; border:1px solid var(--border); border-radius:10px; padding:7px 10px; cursor:pointer; margin:0; }
.rp-rep input{ grid-row:span 2; width:auto; margin:0; }
.rp-rep b{ font-size:13px; } .rp-rep span{ font-size:11.5px; color:var(--slate); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rp-chk{ display:flex; align-items:center; gap:6px; font-size:13px; font-weight:700; margin:0; } .rp-chk input{ width:auto; margin:0; }
.rp-note{ font-size:12px; color:var(--slate); line-height:1.8; margin:0; }
.rp-err{ color:#B2382F; font-size:13px; font-weight:700; } .rp-err:empty{ display:none; }
.rp-foot{ display:flex; gap:8px; justify-content:flex-end; }
@media (max-width:600px){ .rp-back{ padding:0; } .rp{ border-radius:0; min-height:100%; } }
.rp-drop{ display:flex; flex-direction:column; align-items:center; gap:4px; border:2px dashed #C9D3E0; border-radius:14px; padding:22px 14px; text-align:center; cursor:pointer; background:#FAFBFD; margin:0; }
.rp-drop:hover{ border-color:var(--meadow); background:#F4FAF6; }
.rp-drop b{ font-size:14.5px; } .rp-drop span{ font-size:12px; color:var(--slate); }
.rd-sum{ display:flex; gap:8px; flex-wrap:wrap; }
.rd-sum > div{ flex:1; min-width:150px; border:1px solid var(--border); border-radius:12px; padding:10px 12px; }
.rd-sum b{ display:block; font-size:22px; } .rd-sum span{ font-size:12px; color:var(--slate); }
.rd-sum .ok{ border-color:#B9E0C7; background:#F6FBF8; } .rd-sum .warn{ border-color:#F0C08F; background:#FFF8EF; }
.rd-un{ display:flex; flex-direction:column; gap:8px; max-height:340px; overflow-y:auto; }
.rd-pg{ display:flex; gap:10px; align-items:center; border:1px solid var(--border); border-radius:12px; padding:8px; }
.rd-pg canvas{ width:110px; height:auto; border:1px solid var(--border); border-radius:6px; background:#fff; flex-shrink:0; }
.rd-pg > div{ flex:1; display:flex; flex-direction:column; gap:6px; } .rd-pg b{ font-size:12.5px; } .rd-pg input{ margin:0; }
/* ربط الأسئلة بالمهارات (نموذج الإجابة) */
.as-skills-box{ border:1px solid var(--border); border-radius:12px; padding:8px 10px; margin-bottom:10px; background:#FAFBFD; }
#as-skills-opts{ margin-top:8px; display:flex; flex-direction:column; gap:6px; }
.as-sk-bar{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:12.5px; }
.as-sk-bar input[type=number]{ width:64px; margin:0; padding:6px 8px; }
.as-sk-bar select{ width:auto; margin:0; padding:6px 8px; }
.as-sk-bar input[type=text]{ flex:1; min-width:180px; margin:0; padding:6px 10px; }
.as-sk-bar .btn-primary{ width:auto; padding:7px 14px; margin:0; }
.as-sk-bar .text-action-btn{ width:auto; padding:6px 8px; margin:0; font-size:12px; }
.as-sk-sum{ display:flex; flex-direction:column; gap:4px; }
.as-sk-row{ display:flex; align-items:baseline; gap:8px; font-size:12.5px; flex-wrap:wrap; }
.as-sk-row i{ width:10px; height:10px; border-radius:3px; flex-shrink:0; display:inline-block; }
.as-sk-row span{ color:var(--slate); font-size:12px; }
.as-sk-row.miss b{ color:#A4501A; } .as-sk-row.miss i{ background:#E3C3A3; } .as-sk-row.miss.ok b{ color:#1F6A3C; } .as-sk-row.miss.ok i{ background:#9FD3B3; }
.as-sk-s{ font-size:11px; font-weight:800; background:#EEF2F8; color:#2455A4; border-radius:6px; padding:1px 6px; margin-inline-end:4px; }
.as-qn{ position:relative; }
.as-qn.pick{ cursor:pointer; border-radius:6px; padding:1px 2px; }
.as-qn.pick:hover{ background:#EEF2F8; } .as-qn.sel{ background:#DCE8F8; color:#1D4E89; }
.as-qdot{ position:absolute; bottom:-3px; left:50%; transform:translateX(-50%); width:12px; height:3px; border-radius:2px; background:#E3C3A3; }
.erc-chips i.erc-nafes{ background:#EAF1FC; color:#2455A4; font-weight:700; }
/* تحليل المهارات والعلاج */
.sk{ display:flex; flex-direction:column; gap:12px; }
.sk-bar{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:space-between; }
.sk-chips{ display:flex; gap:6px; flex-wrap:wrap; }
.sk-chips button, .sk-filter button{ width:auto; margin:0; border:1px solid var(--border); background:#fff; font:inherit; font-size:12.5px; font-weight:700; border-radius:999px; padding:5px 12px; cursor:pointer; }
.sk-chips button.on{ background:var(--meadow); color:#fff; border-color:var(--meadow); }
.sk-print{ width:auto; margin:0; border:1px solid #B9D7F0; background:#F2F8FE; color:#1D5A93; font:inherit; font-size:13px; font-weight:800; border-radius:10px; padding:8px 14px; cursor:pointer; }
.sk-note{ font-size:12.5px; color:#A4501A; background:#FFF8EF; border:1px solid #F0D3B0; border-radius:10px; padding:8px 12px; }
.sk-empty{ text-align:center; color:var(--slate); padding:24px; }
.sk-cards{ display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:8px; }
.sk-card{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; border:1px solid var(--border); border-radius:12px; padding:10px 12px; background:#fff; font:inherit; text-align:start; width:auto; margin:0; cursor:default; }
button.sk-card{ cursor:pointer; } button.sk-card:hover, .sk-card.on{ border-color:var(--meadow); box-shadow:0 0 0 2px rgba(31,106,60,.12); }
.sk-card span{ font-size:12.5px; color:var(--slate); font-weight:700; } .sk-card b{ font-size:24px; font-weight:900; } .sk-card small{ font-size:11.5px; color:var(--slate); }
.sk-card.ok b{ color:#1F6A3C; } .sk-card.mid b{ color:#A4501A; } .sk-card.bad b{ color:#B2382F; }
.sk-weak{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:12.5px; }
.sk-weak span{ border-radius:999px; padding:3px 10px; font-weight:700; } .sk-weak i{ font-style:normal; opacity:.8; }
.sk-weak .bad{ background:#FBEAE9; color:#B2382F; } .sk-weak .mid{ background:#FFF4E5; color:#A4501A; } .sk-weak .ok{ background:#E7F5EC; color:#1F6A3C; }
.sk-filter{ font-size:12.5px; display:flex; align-items:center; gap:6px; }
.sk-twrap{ overflow-x:auto; border:1px solid var(--border); border-radius:12px; }
.sk-table, .sk-heat{ width:100%; border-collapse:collapse; font-size:13px; }
.sk-table th, .sk-heat th{ background:#F5F7FA; color:var(--slate); font-size:12px; font-weight:700; text-align:start; padding:8px 10px; white-space:nowrap; }
.sk-table td{ padding:8px 10px; border-top:1px solid #EEF1F5; vertical-align:middle; }
.sk-s{ font-weight:800; color:#2455A4; white-space:nowrap; } .sk-q{ color:var(--slate); font-size:12px; white-space:nowrap; }
.sk-m{ display:flex; align-items:center; gap:8px; min-width:150px; } .sk-m span{ font-weight:800; min-width:44px; }
.sk-m i{ flex:1; height:8px; background:#EEF1F5; border-radius:5px; overflow:hidden; display:block; } .sk-m em{ display:block; height:100%; border-radius:5px; }
.sk-m em.ok{ background:#2E9155; } .sk-m em.mid{ background:#E0A23A; } .sk-m em.bad{ background:#C0453D; }
.sk-lv{ font-size:11.5px; font-weight:800; border-radius:999px; padding:2px 10px; white-space:nowrap; }
.sk-lv.ok{ background:#E7F5EC; color:#1F6A3C; } .sk-lv.mid{ background:#FFF4E5; color:#A4501A; } .sk-lv.bad{ background:#FBEAE9; color:#B2382F; }
.sk-n{ width:auto; margin:0; border:1px solid #F1C3BF; background:#FFF5F4; color:#B2382F; font:inherit; font-size:12.5px; font-weight:800; border-radius:9px; padding:4px 10px; cursor:pointer; }
.sk-n.zero{ border-color:var(--border); background:#fff; color:var(--slate); cursor:default; }
.sk-sub td{ background:#FBFCFE; padding:8px 10px; }
.sk-names{ display:flex; flex-wrap:wrap; gap:6px; } .sk-names span{ background:#fff; border:1px solid var(--border); border-radius:8px; padding:3px 8px; font-size:12.5px; } .sk-names small{ color:var(--slate); }
.sk-h{ margin:6px 0 0; font-size:14px; } .sk-h small{ font-weight:500; color:var(--slate); font-size:12px; }
.sk-heat th span{ display:inline-block; max-width:110px; white-space:normal; line-height:1.3; }
.sk-heat td{ border-top:1px solid #EEF1F5; padding:5px 8px; }
.sk-heat td.h{ text-align:center; font-weight:800; font-size:12px; min-width:46px; }
.sk-heat td.ok{ background:#E7F5EC; color:#1F6A3C; } .sk-heat td.mid{ background:#FFF4E5; color:#A4501A; } .sk-heat td.bad{ background:#FBEAE9; color:#B2382F; }
.sk-nm{ white-space:nowrap; font-weight:700; } .sk-nm small{ display:block; font-weight:500; color:var(--slate); font-size:11px; }
.sk-tot{ font-weight:800; white-space:nowrap; }
.sk-legend{ display:flex; gap:14px; flex-wrap:wrap; font-size:12px; color:var(--slate); }
.sk-legend i{ display:inline-block; width:12px; height:12px; border-radius:3px; vertical-align:middle; margin-inline-end:4px; }
.sk-legend i.ok{ background:#BFE3CC; } .sk-legend i.mid{ background:#F5D9A8; } .sk-legend i.bad{ background:#F1C3BF; }
.sk-heatwrap{ max-height:520px; overflow:auto; }
.sk-heat thead th{ position:sticky; top:0; z-index:1; }
.sk-pass{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; border:1px solid #B9D7F0; background:#F4F9FE; border-radius:14px; padding:12px 14px; }
.sk-pass-n{ display:flex; align-items:baseline; gap:8px; } .sk-pass-n span{ font-size:12.5px; color:var(--slate); font-weight:700; }
.sk-pass-n b{ font-size:26px; font-weight:900; color:#1D4E89; } .sk-pass-n b small{ font-size:13px; color:var(--slate); }
.sk-pass-n em{ font-style:normal; font-weight:800; color:#1D4E89; background:#fff; border-radius:999px; padding:2px 10px; }
.sk-pass-t{ flex:1; min-width:260px; font-size:13px; }
.sk-pass-t label{ display:inline-flex; align-items:center; gap:2px; margin:0 2px; }
.sk-pass-t input{ width:58px; margin:0; padding:4px 6px; text-align:center; font-weight:800; }
.sk-pass-t span{ color:#1F6A3C; font-size:12px; }
.sk-pass-s{ display:flex; gap:12px; flex-wrap:wrap; font-size:12.5px; color:var(--slate); width:100%; }
.sk-pass-s b{ color:var(--ink); }
.sk-hrow{ display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; margin-top:6px; }
.sk-hrow .sk-h{ margin:0; }
.sk-heat th.sj{ background:#EAF1FC; color:#1D4E89; }
.sk-heat td.sj{ border-inline-start:2px solid #fff; }
.sk-ps{ white-space:nowrap; font-weight:800; font-size:12px; text-align:center; } .sk-ps.yes{ color:#1F6A3C; } .sk-ps.no{ color:#B2382F; }
.sk-ps small{ display:block; font-weight:600; font-size:11px; }
/* نافس: أجزاء الاختبار والمعلم المشرف */
.as-parts{ display:flex; flex-direction:column; gap:6px; border-bottom:1px dashed var(--border); padding-bottom:8px; margin-bottom:4px; }
.as-parts-h b{ display:block; font-size:13px; } .as-parts-h small{ font-size:11.5px; color:var(--slate); }
.as-part{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:12.5px; }
.as-part > b{ min-width:62px; color:#2455A4; }
.as-part input{ width:60px; margin:0; padding:5px 6px; }
.as-part select{ flex:1; min-width:150px; margin:0; padding:5px 8px; }
.as-pp{ font-size:11.5px; color:#A4501A; font-weight:700; } .as-pp.ok{ color:#1F6A3C; }
.nf-as{ border:1px solid #B9D7F0; background:#F4F9FE; border-radius:14px; padding:12px 14px; margin-bottom:14px; display:flex; flex-direction:column; gap:8px; }
.nf-as-h b{ display:block; font-size:14.5px; } .nf-as-h span{ font-size:12px; color:var(--slate); }
.nf-as-it{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:#fff; border:1px solid var(--border); border-radius:12px; padding:10px 12px; }
.nf-as-it > div{ flex:1; min-width:200px; } .nf-as-it b{ display:block; font-size:13.5px; } .nf-as-it span{ font-size:12px; color:var(--slate); }
.nf-as-it .btn-primary{ width:auto; margin:0; padding:8px 14px; }
.nf-as-it.done{ border-color:#B9E0C7; }
.nf-pg{ font-size:12px; font-weight:800; color:#A4501A; } .nf-pg.ok, .nf-as-it.done .nf-pg{ color:#1F6A3C; }
.nf-ed{ max-width:640px; }
.nf-bulk{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:12.5px; margin:8px 0; } .nf-bulk select{ width:auto; margin:0; flex:1; min-width:160px; }
.nf-rows{ display:flex; flex-direction:column; gap:4px; max-height:55vh; overflow-y:auto; }
.nf-row{ display:flex; align-items:center; gap:8px; border:1px solid var(--border); border-radius:10px; padding:5px 8px; }
.nf-qn{ display:flex; align-items:center; gap:4px; margin:0; min-width:48px; } .nf-qn input{ width:auto; margin:0; }
.nf-ch{ display:flex; gap:4px; }
.nf-ch button{ width:30px; height:30px; border-radius:50%; border:1.5px solid #C9CED8; background:#fff; font:inherit; font-size:12.5px; font-weight:800; padding:0; margin:0; cursor:pointer; }
.nf-ch button.on{ background:var(--meadow); border-color:var(--meadow); color:#fff; }
.nf-row select{ flex:1; min-width:140px; margin:0; padding:5px 8px; } .nf-row select.miss{ border-color:#F0C08F; background:#FFFBF5; }
.nf-foot{ display:flex; align-items:center; gap:10px; margin-top:10px; } .nf-foot .rp-err{ flex:1; }
.sk-heat td.h small{ font-weight:600; opacity:.7; font-size:10.5px; }
.rp, .rp *{ box-sizing:border-box; }
@media (max-width:480px){ .nf-row{ flex-wrap:wrap; } .nf-row select{ flex-basis:100%; } .nf-ch button{ width:34px; height:34px; } }
@media (max-width:899px){ #er-mode-tabs{ flex-wrap:wrap; border-radius:14px; } #er-mode-tabs button{ flex:1 1 45%; min-width:0; white-space:normal; } }
/* ===== الاعتماد المدرسي ===== */
.ac{ display:flex; flex-direction:column; gap:14px; }
.ac-hero{ position:relative; overflow:hidden; display:flex; align-items:center; gap:20px; flex-wrap:wrap; color:#fff; border-radius:20px; padding:22px 24px;
  background:radial-gradient(120% 140% at 90% 0%, #1E4A8E 0%, #13336A 50%, #0C2147 100%); }
.ac-ring{ position:relative; width:112px; height:112px; flex-shrink:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.ac-ring svg{ position:absolute; inset:0; transform:rotate(-90deg); }
.ac-ring circle{ fill:none; stroke-width:9; } .ac-ring .bg{ stroke:rgba(255,255,255,.14); }
.ac-ring .fg{ stroke:#2FC1B2; stroke-linecap:round; transition:stroke-dashoffset 1.2s cubic-bezier(.2,.8,.2,1); }
.ac-ring b{ font-family:'Tajawal',sans-serif; font-size:27px; font-weight:900; line-height:1; } .ac-ring span{ font-size:11.5px; color:#BFD3F0; }
.ac-hero-t{ flex:1; min-width:240px; } .ac-hero-t h3{ margin:0; font-size:22px; font-weight:900; } .ac-hero-t p{ margin:2px 0 10px; color:#BFD3F0; font-size:13.5px; }
.ac-stats{ display:flex; gap:8px; flex-wrap:wrap; } .ac-stats span{ background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.14); border-radius:999px; padding:4px 12px; font-size:12.5px; color:#DCE7F7; }
.ac-stats b{ color:#fff; font-size:14px; } .ac-stats .warn{ background:rgba(224,122,52,.2); border-color:rgba(224,122,52,.45); }
.ac-hero-a{ display:flex; flex-direction:column; gap:8px; }
.ac-btn{ display:inline-flex; align-items:center; justify-content:center; gap:6px; width:auto; margin:0; border:1px solid var(--meadow); background:var(--meadow); color:#fff; font:inherit; font-size:13px; font-weight:800; border-radius:11px; padding:9px 16px; cursor:pointer; white-space:nowrap; }
.ac-btn svg{ width:16px; height:16px; } .ac-btn:disabled{ opacity:.6; cursor:default; }
.ac-btn.light{ background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.25); } .ac-btn.light:hover{ background:rgba(255,255,255,.2); }
.ac-domains{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:10px; }
.ac-dom{ position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:2px; text-align:start; width:auto; margin:0; font:inherit; background:#fff; border:1px solid var(--border); border-radius:16px; padding:14px; cursor:pointer; transition:border-color .2s, box-shadow .2s, transform .15s; }
.ac-dom:hover{ border-color:var(--c); transform:translateY(-1px); } .ac-dom.on{ border-color:var(--c); box-shadow:0 0 0 3px color-mix(in srgb, var(--c) 18%, transparent); }
.ac-dom .n{ width:26px; height:26px; border-radius:8px; background:var(--c); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:13px; }
.ac-dom b{ font-size:14.5px; margin-top:6px; } .ac-dom small{ color:var(--slate); font-size:12px; }
.ac-dom i{ display:block; width:100%; height:6px; background:#EEF1F5; border-radius:4px; overflow:hidden; margin-top:8px; } .ac-dom i em{ display:block; height:100%; background:var(--c); border-radius:4px; transition:width 1s; }
.ac-dom .p{ position:absolute; top:14px; inset-inline-end:14px; font-weight:900; color:var(--c); font-family:'Tajawal',sans-serif; }
.ac-tools{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.ac-chips{ display:flex; gap:6px; flex-wrap:wrap; }
.ac-chips button{ width:auto; margin:0; border:1px solid var(--border); background:#fff; font:inherit; font-size:12.5px; font-weight:700; border-radius:999px; padding:6px 13px; cursor:pointer; }
.ac-chips button.on{ background:var(--meadow-dark, #0F2447); color:#fff; border-color:transparent; }
.ac-mine{ display:flex; align-items:center; gap:5px; font-size:13px; font-weight:700; margin:0; } .ac-mine input{ width:auto; margin:0; }
.ac-q{ flex:1; min-width:180px; margin:0 !important; }
.ac-empty{ text-align:center; color:var(--slate); padding:28px; background:#fff; border:1px dashed var(--border); border-radius:16px; }
.ac-std{ background:#fff; border:1px solid var(--border); border-radius:16px; overflow:hidden; margin-bottom:12px; }
.ac-std > header{ display:flex; align-items:center; gap:10px; padding:11px 16px; background:#F8FAFD; border-bottom:1px solid var(--border); border-inline-start:4px solid var(--c); }
.ac-std > header .dom{ font-size:11.5px; color:var(--c); font-weight:800; } .ac-std > header b{ flex:1; font-size:14.5px; }
.ac-std > header .cnt{ font-size:12px; font-weight:800; color:var(--slate); background:#fff; border:1px solid var(--border); border-radius:999px; padding:2px 10px; }
.ac-ind + .ac-ind{ border-top:1px solid #EEF1F5; }
.ac-row{ display:flex; align-items:center; gap:12px; padding:12px 16px; cursor:pointer; transition:background .15s; }
.ac-row:hover{ background:#FAFBFD; } .ac-ind.open > .ac-row{ background:#F4F8FE; }
.ac-row .code{ font-family:'Tajawal',sans-serif; font-weight:800; font-size:12px; color:#2455A4; background:#EAF1FC; border-radius:7px; padding:3px 8px; direction:ltr; flex-shrink:0; }
.ac-row .txt{ flex:1; min-width:0; } .ac-row .txt b{ display:block; font-size:13.5px; font-weight:700; line-height:1.7; font-family:inherit; }
.ac-row .star{ font-style:normal; color:#C27A1E; font-weight:900; }
.ac-row .own{ display:flex; gap:4px; flex-wrap:wrap; margin-top:3px; } .ac-row .own em{ font-style:normal; font-size:11px; font-weight:700; background:#F1F3F7; color:var(--slate); border-radius:6px; padding:1px 7px; }
.ac-row .own em.me{ background:#E7F5EC; color:#1F7A45; } .ac-row .own em.none{ background:#FFF4E5; color:#A4501A; }
.ac-row .evn{ min-width:26px; height:26px; border-radius:8px; background:#F1F3F7; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:12px; color:var(--slate); flex-shrink:0; }
.ac-st{ font-size:11.5px; font-weight:800; border-radius:999px; padding:3px 10px; white-space:nowrap; flex-shrink:0; }
.ac-st.done{ background:#E7F5EC; color:#1F7A45; } .ac-st.pend{ background:#EAF1FC; color:#2455A4; } .ac-st.ret{ background:#FFF4E5; color:#A4501A; }
.ac-st.empty{ background:#FBEAE9; color:#B2382F; } .ac-st.na{ background:#F1F3F7; color:#8A94A3; }
.ac-ind.na .txt b{ color:#9AA3AF; }
.ac-det{ padding:4px 16px 16px; background:#F4F8FE; display:flex; flex-direction:column; gap:10px; animation:acIn .25s ease-out; }
@keyframes acIn{ from{ opacity:0; transform:translateY(-4px); } }
.ac-admin{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; background:#fff; border:1px solid var(--border); border-radius:12px; padding:8px 10px; }
.ac-owners{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:12.5px; font-weight:700; }
.ac-own{ width:auto; margin:0; border:1px solid #B9D7F0; background:#F2F8FE; color:#1D5A93; font:inherit; font-size:12px; font-weight:700; border-radius:999px; padding:3px 10px; cursor:pointer; }
.ac-own:hover{ background:#FBEAE9; border-color:#F1C3BF; color:#B2382F; }
.ac-owners select{ width:auto; margin:0; padding:4px 8px; font-size:12.5px; }
.ac-na{ display:flex; align-items:center; gap:5px; font-size:12.5px; font-weight:700; margin:0; color:var(--slate); } .ac-na input{ width:auto; margin:0; }
.ac-evs{ display:flex; flex-direction:column; gap:6px; }
.ac-none{ font-size:13px; color:var(--slate); padding:6px 2px; }
.ac-ev{ display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--border); border-radius:12px; padding:9px 11px; flex-wrap:wrap; }
.ac-ev .ic{ width:34px; height:34px; border-radius:10px; background:#EAF1FC; color:#2455A4; display:flex; align-items:center; justify-content:center; flex-shrink:0; } .ac-ev .ic svg{ width:18px; height:18px; }
.ac-ev-t{ flex:1; min-width:180px; } .ac-ev-t b{ display:block; font-size:13.5px; } .ac-ev-t small{ display:block; font-size:12px; color:var(--ink); opacity:.8; }
.ac-ev-t span{ display:block; font-size:11.5px; color:var(--slate); } .ac-ev-t .note{ color:#A4501A; font-weight:700; }
.ac-ev-a{ display:flex; gap:5px; }
.ac-mini{ width:auto; margin:0; border:1px solid var(--border); background:#fff; font:inherit; font-size:12px; font-weight:800; border-radius:9px; padding:5px 10px; cursor:pointer; }
.ac-mini.ok{ border-color:#9FD3B3; background:#F3FAF5; color:#1F7A45; } .ac-mini.warn{ border-color:#F0C08F; background:#FFF8EF; color:#A4501A; } .ac-mini.del{ border-color:#F1C3BF; background:#FFF5F4; color:#B2382F; }
.ac-add{ display:flex; flex-direction:column; gap:8px; background:#fff; border:1px dashed #B9D7F0; border-radius:14px; padding:12px; }
.ac-add input[type=text], .ac-add input[type=url], .ac-add textarea{ margin:0; }
.ac-seg{ display:flex; gap:4px; background:#F1F4F8; border-radius:10px; padding:3px; width:fit-content; }
.ac-seg button{ display:flex; align-items:center; gap:5px; width:auto; margin:0; border:0; background:none; font:inherit; font-size:12.5px; font-weight:800; color:var(--slate); border-radius:8px; padding:6px 12px; cursor:pointer; }
.ac-seg button svg{ width:14px; height:14px; } .ac-seg button.on{ background:#fff; color:var(--ink); box-shadow:0 1px 3px rgba(0,0,0,.08); }
.ac-drop{ display:block; margin:0; cursor:pointer; } .ac-drop > span{ display:flex; flex-direction:column; align-items:center; gap:2px; border:2px dashed #C9D3E0; border-radius:12px; padding:16px; background:#FAFBFD; color:var(--slate); transition:border-color .2s, background .2s; }
.ac-drop:hover > span{ border-color:var(--meadow); background:#F4F8FE; } .ac-drop svg{ width:22px; height:22px; color:var(--meadow); } .ac-drop b{ color:var(--ink); font-size:13.5px; } .ac-drop small{ font-size:11.5px; }
.ac-add-f{ display:flex; align-items:center; gap:10px; justify-content:flex-end; } .ac-err{ flex:1; color:#B2382F; font-size:12.5px; font-weight:700; }
.ac-toast{ position:fixed; bottom:24px; left:50%; transform:translate(-50%, 20px); background:#0F2447; color:#fff; font-size:13.5px; font-weight:700; padding:10px 18px; border-radius:12px; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; z-index:1400; }
.ac-toast.show{ opacity:1; transform:translate(-50%, 0); } .ac-toast.bad{ background:#B2382F; }
.ac-visit{ position:fixed; inset:0; z-index:1300; background:#F3F6FB; display:flex; flex-direction:column; }
.ac-vh{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 22px; color:#fff; background:radial-gradient(120% 160% at 90% 0%, #1E4A8E 0%, #0C2147 100%); }
.ac-vh b{ display:block; font-size:19px; font-family:'Tajawal',sans-serif; } .ac-vh span{ color:#BFD3F0; font-size:13px; }
.ac-vx{ width:auto; margin:0; border:1px solid rgba(255,255,255,.3); background:rgba(255,255,255,.1); color:#fff; font-size:16px; border-radius:10px; padding:6px 12px; cursor:pointer; }
.ac-vtabs{ display:flex; gap:8px; padding:12px 22px; overflow-x:auto; background:#fff; border-bottom:1px solid var(--border); }
.ac-vtabs button{ display:flex; align-items:center; gap:8px; width:auto; margin:0; border:1px solid var(--border); background:#fff; font:inherit; font-size:14px; font-weight:800; border-radius:12px; padding:8px 14px; cursor:pointer; white-space:nowrap; }
.ac-vtabs button span{ width:24px; height:24px; border-radius:7px; background:var(--c); color:#fff; display:flex; align-items:center; justify-content:center; font-size:12px; }
.ac-vtabs button.on{ border-color:var(--c); background:color-mix(in srgb, var(--c) 8%, #fff); }
.ac-vbody{ flex:1; overflow-y:auto; padding:18px 22px 40px; max-width:1100px; width:100%; margin:0 auto; }
.ac-vbody h4{ margin:16px 0 8px; font-size:16px; padding-inline-start:10px; border-inline-start:4px solid var(--c); }
.ac-vi{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:12px 14px; margin-bottom:8px; }
.ac-vi-h{ display:flex; gap:10px; align-items:flex-start; } .ac-vi-h .code{ font-weight:800; font-size:12px; color:#2455A4; background:#EAF1FC; border-radius:7px; padding:2px 8px; direction:ltr; flex-shrink:0; } .ac-vi-h b{ font-size:14px; font-weight:700; line-height:1.7; }
.ac-vev{ display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
.ac-vev button{ display:flex; align-items:center; gap:6px; width:auto; margin:0; border:1px solid #B9D7F0; background:#F2F8FE; color:#1D5A93; font:inherit; font-size:13px; font-weight:700; border-radius:10px; padding:6px 12px; cursor:pointer; } .ac-vev svg{ width:15px; height:15px; }
.ac-vev button:hover{ background:#E3F0FC; } .ac-vnone{ margin-top:6px; font-size:12.5px; color:#B2382F; }
@media (max-width:900px){ .ac-domains{ grid-template-columns:repeat(2, minmax(0,1fr)); } .ac-hero-a{ flex-direction:row; width:100%; } .ac-hero-a .ac-btn{ flex:1; } }
@media (max-width:560px){ .ac-hero{ padding:18px; } .ac-ring{ width:92px; height:92px; } .ac-row{ flex-wrap:wrap; padding:11px 12px; } .ac-row .txt{ flex-basis:calc(100% - 70px); } .ac-det{ padding-inline:12px; } .ac-vbody, .ac-vtabs, .ac-vh{ padding-inline:14px; } }
/* ===== الاعتماد المدرسي: مدار الجاهزية ===== */
.ac-sky{ position:relative; overflow:hidden; isolation:isolate; display:grid; grid-template-columns:minmax(0,1fr) 420px; gap:10px; align-items:center; color:#fff; border-radius:26px; padding:28px 30px;
  background:radial-gradient(90% 120% at 15% 110%, rgba(47,193,178,.18) 0%, transparent 55%), radial-gradient(120% 140% at 95% -10%, #23549E 0%, #13336A 45%, #081733 100%); box-shadow:0 24px 60px rgba(8,23,51,.28); }
.ac-stars{ position:absolute; inset:0; z-index:-1; opacity:.55; background-image:radial-gradient(1.2px 1.2px at 12% 22%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 32% 68%, #cfe0ff 50%, transparent 51%), radial-gradient(1.4px 1.4px at 54% 14%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 72% 82%, #bfe9e4 50%, transparent 51%), radial-gradient(1.2px 1.2px at 88% 40%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 6% 88%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 44% 46%, #9fc2ff 50%, transparent 51%);
  animation:acTwinkle 6s ease-in-out infinite alternate; }
@keyframes acTwinkle{ to{ opacity:.25; } }
.ac-kicker{ display:inline-block; font-size:12px; font-weight:800; letter-spacing:.3px; color:#9FE3DA; background:rgba(47,193,178,.12); border:1px solid rgba(47,193,178,.35); border-radius:999px; padding:3px 12px; }
.ac-sky-t h3{ margin:10px 0 4px; font-size:34px; font-weight:900; line-height:1.15; background:linear-gradient(90deg,#fff,#BFE9E4); -webkit-background-clip:text; background-clip:text; color:transparent; }
.ac-sky-t > p{ margin:0 0 16px; color:#BFD3F0; font-size:14px; max-width:430px; line-height:1.8; }
.ac-count{ display:flex; align-items:stretch; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.ac-days{ display:grid; grid-template-columns:auto 1fr; column-gap:10px; align-items:center; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:16px; padding:8px 14px; backdrop-filter:blur(6px); }
.ac-days b{ grid-row:span 2; font-family:'Tajawal',sans-serif; font-size:34px; font-weight:900; line-height:1; color:#2FC1B2; }
.ac-days span{ font-size:13px; font-weight:800; } .ac-days small{ font-size:11.5px; color:#BFD3F0; }
.ac-days.soon b{ color:#F2A65A; animation:acPulse 1.6s ease-in-out infinite; } .ac-days.empty b{ color:#BFD3F0; }
@keyframes acPulse{ 50%{ transform:scale(1.08); } }
.ac-date{ position:relative; display:flex; align-items:center; gap:6px; margin:0; cursor:pointer; background:rgba(255,255,255,.06); border:1px dashed rgba(255,255,255,.25); border-radius:16px; padding:8px 12px; font-size:12.5px; font-weight:700; color:#DCE7F7; }
.ac-date svg{ width:16px; height:16px; } .ac-date input{ position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; margin:0; }
.ac-legend{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:16px; }
.ac-legend button{ display:flex; align-items:center; gap:6px; width:auto; margin:0; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.06); color:#DCE7F7; font:inherit; font-size:12px; font-weight:700; border-radius:999px; padding:4px 11px; cursor:pointer; transition:background .2s, border-color .2s; }
.ac-legend button:hover, .ac-legend button.on{ background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.4); color:#fff; }
.ac-legend i{ width:9px; height:9px; border-radius:50%; } .ac-legend b{ color:#fff; }
.ac-sky-a{ display:flex; gap:8px; flex-wrap:wrap; }
.ac-btn.glow{ background:linear-gradient(135deg,#2FC1B2,#1E8F86); border-color:transparent; box-shadow:0 8px 22px rgba(47,193,178,.35); }
.ac-btn.glow:hover{ filter:brightness(1.07); }
.ac-orbit{ position:relative; width:100%; max-width:420px; aspect-ratio:1; justify-self:center; }
.orbit{ width:100%; height:100%; overflow:visible; }
.orb-ring{ fill:none; stroke:var(--c); stroke-opacity:.35; stroke-width:1.3; stroke-dasharray:2 6; }
.orb-g{ animation:acSpin 160s linear infinite; } .orb-2{ animation-duration:210s; animation-direction:reverse; } .orb-3{ animation-duration:260s; } .orb-4{ animation-duration:320s; animation-direction:reverse; }
.ac-orbit:hover .orb-g{ animation-play-state:paused; }
@keyframes acSpin{ to{ transform:rotate(360deg); } }
.orb-dot{ cursor:pointer; stroke:#081733; stroke-width:2; opacity:0; animation:acDot .5s cubic-bezier(.2,.8,.2,1) forwards; transition:r .2s; }
.orb-dot.done{ filter:drop-shadow(0 0 5px rgba(47,193,178,.9)); } .orb-dot.empty{ stroke:rgba(255,255,255,.35); stroke-width:1; }
.orb-dot:hover, .orb-dot.on{ r:10; stroke:#fff; stroke-width:2; }
@keyframes acDot{ from{ opacity:0; transform:scale(.2); transform-box:fill-box; transform-origin:center; } to{ opacity:1; } }
.ac-core{ position:absolute; inset:0; margin:auto; width:136px; height:136px; border-radius:50%; display:flex; flex-wrap:wrap; align-content:center; justify-content:center; text-align:center;
  background:radial-gradient(circle at 35% 30%, #2C5FAE, #0C2147 70%); box-shadow:0 0 0 1px rgba(255,255,255,.12), 0 0 60px rgba(47,193,178,.35), inset 0 -10px 30px rgba(0,0,0,.35); }
.ac-core b{ font-family:'Tajawal',sans-serif; font-size:44px; font-weight:900; line-height:1; } .ac-core > span{ font-size:20px; font-weight:900; color:#2FC1B2; align-self:flex-start; margin-top:4px; }
.ac-core small{ width:100%; font-size:11.5px; color:#BFD3F0; } .ac-core em{ width:100%; font-style:normal; font-size:11px; color:#9FE3DA; font-weight:700; }
.ac-alerts{ display:flex; gap:8px; flex-wrap:wrap; }
.ac-alerts button{ width:auto; margin:0; border:1px solid #F0C08F; background:#FFF8EF; color:#A4501A; font:inherit; font-size:13px; font-weight:800; border-radius:12px; padding:8px 14px; cursor:pointer; animation:up .5s both; }
.ac-planets{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:12px; }
.ac-planet{ position:relative; display:flex; align-items:center; gap:12px; width:auto; margin:0; text-align:start; font:inherit; background:#fff; border:1px solid var(--border); border-radius:18px; padding:14px; cursor:pointer; overflow:hidden; transition:transform .2s, box-shadow .2s, border-color .2s; }
.ac-planet::after{ content:''; position:absolute; inset-inline-end:-30px; top:-30px; width:90px; height:90px; border-radius:50%; background:var(--c); opacity:.07; transition:transform .4s; }
.ac-planet:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(21,34,56,.1); } .ac-planet:hover::after{ transform:scale(1.4); }
.ac-planet.on{ border-color:var(--c); box-shadow:0 0 0 3px color-mix(in srgb, var(--c) 20%, transparent); }
.ac-planet .pr{ position:relative; width:56px; height:56px; flex-shrink:0; } .ac-planet .pr svg{ width:100%; height:100%; transform:rotate(-90deg); }
.ac-planet .pr circle{ fill:none; stroke-width:6; } .ac-planet .pr .bg{ stroke:#EEF1F5; } .ac-planet .pr .fg{ stroke:var(--c); stroke-linecap:round; transition:stroke-dashoffset 1.2s cubic-bezier(.2,.8,.2,1); }
.ac-planet .pr i{ position:absolute; inset:9px; border-radius:50%; background:var(--c); color:#fff; display:flex; align-items:center; justify-content:center; font-style:normal; font-weight:900; font-family:'Tajawal',sans-serif; box-shadow:inset -4px -4px 10px rgba(0,0,0,.2); }
.ac-planet .pt{ flex:1; min-width:0; } .ac-planet .pt b{ display:block; font-size:14.5px; } .ac-planet .pt small{ color:var(--slate); font-size:12px; }
.ac-planet .pp{ font-family:'Tajawal',sans-serif; font-weight:900; font-size:18px; color:var(--c); }
.ac-team{ background:#fff; border:1px solid var(--border); border-radius:18px; padding:14px 16px; }
.ac-team header{ display:flex; align-items:baseline; gap:8px; margin-bottom:10px; } .ac-team header b{ font-size:15px; } .ac-team header span{ font-size:12px; color:var(--slate); }
.ac-team-row{ display:flex; gap:10px; overflow-x:auto; padding-bottom:4px; }
.ac-mem{ display:flex; flex-direction:column; align-items:center; gap:3px; width:84px; flex-shrink:0; margin:0; border:1px solid transparent; background:none; font:inherit; border-radius:14px; padding:8px 4px; cursor:pointer; animation:up .5s both; transition:background .2s, border-color .2s; }
.ac-mem:hover{ background:#F5F8FC; } .ac-mem.on{ border-color:var(--meadow); background:#F2F7FD; }
.ac-mem .ring{ position:relative; width:50px; height:50px; } .ac-mem .ring svg{ width:100%; height:100%; transform:rotate(-90deg); }
.ac-mem .ring circle{ fill:none; stroke-width:4; } .ac-mem .ring .bg{ stroke:#EEF1F5; } .ac-mem .ring .fg{ stroke:#2FC1B2; stroke-linecap:round; transition:stroke-dashoffset 1.2s; }
.ac-mem .ring i{ position:absolute; inset:7px; border-radius:50%; background:linear-gradient(135deg,#2455A4,#0E93A8); color:#fff; display:flex; align-items:center; justify-content:center; font-style:normal; font-weight:900; font-family:'Tajawal',sans-serif; }
.ac-mem.me .ring i{ background:linear-gradient(135deg,#1F7A45,#2FC1B2); }
.ac-mem b{ font-size:11.5px; text-align:center; line-height:1.3; } .ac-mem small{ font-size:11px; color:var(--slate); font-weight:700; }
.ac-tools{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.ac-search{ flex:1; min-width:220px; display:flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--border); border-radius:14px; padding:0 12px; transition:border-color .2s, box-shadow .2s; }
.ac-search:focus-within{ border-color:var(--meadow); box-shadow:0 0 0 3px rgba(36,85,164,.12); } .ac-search svg{ width:17px; height:17px; color:var(--slate); flex-shrink:0; }
.ac-search input{ border:0 !important; box-shadow:none !important; background:none !important; margin:0 !important; padding:11px 0 !important; }
.ac-switch{ display:flex; align-items:center; gap:8px; font-size:13px; font-weight:700; margin:0; cursor:pointer; }
.ac-switch input{ display:none; } .ac-switch span{ position:relative; width:38px; height:22px; border-radius:999px; background:#D5DCE6; transition:background .2s; }
.ac-switch span::after{ content:''; position:absolute; top:3px; inset-inline-start:3px; width:16px; height:16px; border-radius:50%; background:#fff; transition:inset-inline-start .2s; box-shadow:0 1px 3px rgba(0,0,0,.2); }
.ac-switch input:checked + span{ background:#2FC1B2; } .ac-switch input:checked + span::after{ inset-inline-start:19px; }
.ac-clear{ width:auto; margin:0; border:0; background:#F1F3F7; color:var(--slate); font:inherit; font-size:12.5px; font-weight:800; border-radius:10px; padding:7px 12px; cursor:pointer; }
.ac-std{ border-radius:20px; animation:up .5s both; }
.ac-std > header{ padding:12px 16px; gap:12px; border-inline-start:0; background:linear-gradient(90deg, color-mix(in srgb, var(--c) 8%, #fff), #fff); }
.ac-std > header .dom{ width:28px; height:28px; border-radius:9px; background:var(--c); color:#fff; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:900; }
.ac-std > header .seg{ display:flex; gap:3px; } .ac-std > header .seg i{ width:14px; height:6px; border-radius:3px; background:#E3E7EE; }
.ac-std > header .seg i.done{ background:#2FC1B2; } .ac-std > header .seg i.pending{ background:#6FA4F2; } .ac-std > header .seg i.returned{ background:#F2A65A; } .ac-std > header .seg i.na{ background:#F4F5F7; }
.ac-cards{ display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:10px; padding:12px; }
.ac-card{ position:relative; display:flex; flex-direction:column; gap:8px; text-align:start; width:auto; margin:0; font:inherit; color:var(--ink); background:#fff; border:1px solid var(--border); border-radius:16px; padding:12px 14px 12px 14px; cursor:pointer; overflow:hidden; transition:transform .18s, box-shadow .2s, border-color .2s; }
.ac-card::before{ content:''; position:absolute; inset-block:0; inset-inline-start:0; width:4px; background:#E3E7EE; }
.ac-card.done::before{ background:#2FC1B2; } .ac-card.pending::before{ background:#6FA4F2; } .ac-card.returned::before{ background:#F2A65A; } .ac-card.empty::before{ background:#F1C3BF; }
.ac-card:hover{ transform:translateY(-2px); box-shadow:0 12px 26px rgba(21,34,56,.1); border-color:#D3DCEA; }
.ac-card.on{ border-color:var(--c, var(--meadow)); box-shadow:0 0 0 3px rgba(36,85,164,.14); }
.ac-card.mine{ background:linear-gradient(180deg,#F6FCFA,#fff); }
.ac-card.na{ opacity:.55; }
.ac-card .top{ display:flex; align-items:center; gap:6px; } .ac-card .top .ac-st{ margin-inline-start:auto; }
.ac-card .code{ font-family:'Tajawal',sans-serif; font-weight:800; font-size:12px; color:#2455A4; background:#EAF1FC; border-radius:7px; padding:2px 8px; direction:ltr; }
.ac-card .star{ font-style:normal; color:#C27A1E; }
.ac-card .txt{ font-size:13.5px; font-weight:600; line-height:1.75; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.ac-card .bot{ display:flex; align-items:center; justify-content:space-between; margin-top:auto; }
.ac-card .own{ display:flex; } .ac-card .own em{ width:26px; height:26px; border-radius:50%; border:2px solid #fff; margin-inline-end:-7px; display:flex; align-items:center; justify-content:center; font-style:normal; font-weight:900; font-size:11px; color:#fff; background:linear-gradient(135deg,#2455A4,#0E93A8); font-family:'Tajawal',sans-serif; }
.ac-card .own em.me{ background:linear-gradient(135deg,#1F7A45,#2FC1B2); } .ac-card .own em.none{ background:#F2A65A; }
.ac-card .evc{ display:flex; align-items:center; gap:4px; font-size:12px; font-weight:800; color:var(--slate); } .ac-card .evc svg{ width:14px; height:14px; }
.ac-scrim{ position:fixed; inset:0; background:rgba(8,23,51,.35); backdrop-filter:blur(2px); opacity:0; pointer-events:none; transition:opacity .25s; z-index:1150; }
.ac-scrim.open{ opacity:1; pointer-events:auto; }
.ac-drawer{ position:fixed; top:0; bottom:0; left:0; width:min(560px, 100%); background:#F4F7FB; z-index:1200; transform:translateX(-104%); transition:transform .35s cubic-bezier(.2,.8,.2,1); overflow-y:auto; box-shadow:20px 0 60px rgba(8,23,51,.25); display:flex; flex-direction:column; }
.ac-drawer.open{ transform:none; }
body.ac-lock{ overflow:hidden; }
.ac-dh{ position:relative; color:#fff; padding:20px 22px 18px; background:radial-gradient(120% 140% at 100% 0%, color-mix(in srgb, var(--c) 70%, #13336A), #0C2147); }
.ac-dx{ position:absolute; top:14px; left:14px; width:auto; margin:0; border:1px solid rgba(255,255,255,.3); background:rgba(255,255,255,.1); color:#fff; border-radius:10px; padding:4px 10px; cursor:pointer; font-size:15px; }
.ac-dh .crumb{ font-size:12px; color:#BFD3F0; } .ac-dh-t{ display:flex; align-items:center; gap:8px; margin:8px 0 6px; }
.ac-dh-t .code{ font-family:'Tajawal',sans-serif; font-weight:800; font-size:13px; background:rgba(255,255,255,.15); border-radius:8px; padding:2px 10px; direction:ltr; }
.ac-dh h4{ margin:0; font-size:17px; line-height:1.8; font-weight:800; } .ac-dh .star{ font-style:normal; color:#F2C46B; }
.ac-drawer .ac-det{ background:none; padding:16px 18px 24px; animation:none; }
.ac-drop.over > span, .ac-drop.has > span{ border-color:#2FC1B2; background:#F1FBF9; }
@media (max-width:1000px){ .ac-sky{ grid-template-columns:1fr; } .ac-orbit{ max-width:340px; } .ac-planets{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:560px){ .ac-sky{ padding:20px 18px; border-radius:22px; } .ac-sky-t h3{ font-size:27px; } .ac-orbit{ max-width:300px; } .ac-core{ width:110px; height:110px; } .ac-core b{ font-size:36px; }
  .ac-planets{ grid-template-columns:1fr; } .ac-cards{ grid-template-columns:1fr; padding:10px; } .ac-drawer{ width:100%; } }
@media (prefers-reduced-motion: reduce){ .orb-g, .ac-stars, .ac-days.soon b{ animation:none !important; } .orb-dot{ animation:none; opacity:1; } }
@media (max-width:560px){ .ac-planets{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; } .ac-planet{ flex-direction:column; align-items:flex-start; gap:6px; padding:12px; } .ac-planet .pp{ position:absolute; top:12px; inset-inline-end:12px; font-size:16px; } .ac-planet .pr{ width:46px; height:46px; } .ac-planet .pr i{ inset:7px; } }
/* توزيع المسؤوليات */
.ac-assign-btn{ display:inline-flex; align-items:center; gap:6px; width:auto; margin:0; border:0; font:inherit; font-size:13px; font-weight:800; color:#fff; border-radius:12px; padding:10px 16px; cursor:pointer; background:linear-gradient(135deg,#6249A6,#2455A4); box-shadow:0 8px 20px rgba(98,73,166,.28); transition:filter .2s, transform .15s; }
.ac-assign-btn:hover{ filter:brightness(1.08); transform:translateY(-1px); } .ac-assign-btn svg{ width:17px; height:17px; }
.ac-inh{ display:flex; flex-direction:column; gap:6px; background:#fff; border:1px solid var(--border); border-radius:12px; padding:9px 12px; }
.ac-inh span{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:12.5px; } .ac-inh i{ font-style:normal; color:var(--slate); font-weight:700; min-width:92px; }
.ac-inh b{ background:#F2F7FD; border:1px solid #D7E5F6; color:#1D5A93; border-radius:999px; padding:2px 10px; font-size:12px; } .ac-inh b.me{ background:#E7F5EC; border-color:#B9E0C7; color:#1F7A45; }
.ac-asg-back{ position:fixed; inset:0; z-index:1250; background:rgba(8,23,51,.45); backdrop-filter:blur(3px); display:flex; align-items:flex-start; justify-content:center; padding:36px 16px; overflow-y:auto; animation:acFade .2s; }
@keyframes acFade{ from{ opacity:0; } }
.ac-asg{ width:100%; max-width:880px; background:#F4F7FB; border-radius:24px; overflow:hidden; box-shadow:0 30px 80px rgba(8,23,51,.35); animation:up .35s cubic-bezier(.2,.8,.2,1); }
.ac-asg-h{ position:relative; display:flex; align-items:flex-start; gap:12px; color:#fff; padding:22px 24px; background:radial-gradient(120% 160% at 100% 0%, #6249A6, #13336A 55%, #0C2147); }
.ac-asg-h b{ display:block; font-size:21px; font-family:'Tajawal',sans-serif; font-weight:900; } .ac-asg-h span{ display:block; font-size:13px; color:#C9D6F0; max-width:620px; line-height:1.8; margin-top:2px; }
.ac-asg-h .ac-dx{ position:static; margin-inline-start:auto; }
.ac-asg-b{ padding:16px; display:flex; flex-direction:column; gap:12px; }
.ac-asg-d{ background:#fff; border:1px solid var(--border); border-radius:18px; overflow:hidden; }
.ac-asg-d > header{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:14px 16px; background:linear-gradient(90deg, color-mix(in srgb, var(--c) 12%, #fff), #fff 70%); border-bottom:1px solid var(--border); }
.ac-asg-d > header .n{ width:36px; height:36px; border-radius:12px; background:var(--c); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:900; font-family:'Tajawal',sans-serif; font-size:17px; box-shadow:0 6px 14px color-mix(in srgb, var(--c) 35%, transparent); }
.ac-asg-d > header b{ display:block; font-size:16px; } .ac-asg-d > header small{ color:var(--slate); font-size:12px; }
.ac-asg-c{ display:flex; align-items:center; gap:5px; flex-wrap:wrap; margin-inline-start:auto; }
.ac-chip{ display:inline-flex; align-items:center; gap:6px; width:auto; margin:0; border:1px solid color-mix(in srgb, var(--c, #2455A4) 30%, #fff); background:color-mix(in srgb, var(--c, #2455A4) 9%, #fff); color:var(--c, #2455A4); font:inherit; font-size:12px; font-weight:800; border-radius:999px; padding:4px 10px; cursor:pointer; transition:background .2s; }
.ac-chip i{ font-style:normal; opacity:.6; font-size:10px; } .ac-chip:hover{ background:#FBEAE9; border-color:#F1C3BF; color:#B2382F; }
.ac-pick{ width:auto !important; margin:0 !important; padding:4px 8px !important; font-size:12px !important; border-radius:999px !important; border:1px dashed #C9D3E0 !important; background:#fff !important; max-width:150px; }
.ac-asg-s{ border-top:1px solid #EEF1F5; } .ac-asg-s:first-of-type{ border-top:0; }
.ac-asg-s .row, .ac-asg-i .row{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:10px 16px; }
.ac-asg-s .tg{ width:26px; height:26px; margin:0; border:1px solid var(--border); background:#fff; border-radius:8px; cursor:pointer; font-size:12px; color:var(--slate); }
.ac-asg-s .t{ flex:1; min-width:180px; } .ac-asg-s .t b{ display:block; font-size:14px; } .ac-asg-s .t small{ color:var(--slate); font-size:11.5px; }
.ac-asg-s.open{ background:#FAFBFD; }
.ac-asg-i{ padding:0 0 6px; border-top:1px dashed #E3E8EF; } .ac-asg-i .row{ padding:8px 16px 8px 16px; padding-inline-start:52px; }
.ac-asg-i .code{ font-family:'Tajawal',sans-serif; font-weight:800; font-size:11.5px; color:#2455A4; background:#EAF1FC; border-radius:7px; padding:2px 8px; direction:ltr; }
.ac-asg-i .t span{ font-size:12.5px; line-height:1.7; }
@media (max-width:600px){ .ac-asg-back{ padding:0; } .ac-asg{ border-radius:0; min-height:100%; } .ac-asg-c{ margin-inline-start:0; width:100%; } .ac-asg-i .row{ padding-inline-start:16px; } }
.er-man-paper{ grid-column:1 / -1; font-size:12.5px; font-weight:700; color:#1D5A93; background:#EAF1FC; border:1px solid #CFE0F5; border-radius:10px; padding:8px 12px; line-height:1.7; }
.er-man-paper.warn{ color:#A4501A; background:#FFF8EF; border-color:#F0D3B0; }
.av-one{ color:#A4501A; font-weight:700; }
.av-ms.cancelled{ background:#F1F3F7; color:#6B7684; }
/* سجل رسائل الغياب */
.ml{ display:flex; flex-direction:column; gap:12px; }
.ml-top{ display:flex; align-items:flex-end; justify-content:space-between; gap:10px; flex-wrap:wrap; background:linear-gradient(135deg,#13336A,#0C2147); color:#fff; border-radius:18px; padding:14px 16px; }
.ml-range{ display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap; }
.ml-range label{ display:flex; flex-direction:column; gap:3px; font-size:12px; color:#BFD3F0; font-weight:700; margin:0; }
.ml-range input{ margin:0; padding:7px 10px; border-radius:10px; border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.1); color:#fff; color-scheme:dark; width:auto; }
.ml-quick{ display:flex; gap:4px; } .ml-quick button{ width:auto; margin:0; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.08); color:#DCE7F7; font:inherit; font-size:12px; font-weight:700; border-radius:999px; padding:6px 11px; cursor:pointer; }
.ml-quick button:hover{ background:rgba(255,255,255,.18); color:#fff; }
.ml-export{ display:inline-flex; align-items:center; gap:6px; width:auto; margin:0; border:0; background:linear-gradient(135deg,#2FC1B2,#1E8F86); color:#fff; font:inherit; font-size:13px; font-weight:800; border-radius:11px; padding:9px 14px; cursor:pointer; box-shadow:0 6px 16px rgba(47,193,178,.35); }
.ml-export svg{ width:16px; height:16px; }
.ml-stats{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:8px; }
.ml-stats button{ display:flex; flex-direction:column; align-items:flex-start; width:auto; margin:0; font:inherit; text-align:start; background:#fff; border:1px solid var(--border); border-radius:14px; padding:10px 12px; cursor:pointer; transition:border-color .2s, transform .15s; }
.ml-stats button:hover{ transform:translateY(-1px); } .ml-stats button.on{ border-color:var(--meadow); box-shadow:0 0 0 3px rgba(36,85,164,.12); }
.ml-stats b{ font-family:'Tajawal',sans-serif; font-size:24px; font-weight:900; } .ml-stats span{ font-size:12px; color:var(--slate); font-weight:700; }
.ml-stats .ok b{ color:#1F7A45; } .ml-stats .bad b{ color:#B2382F; } .ml-stats .mut b{ color:#6B7684; }
.ml-tools{ display:flex; gap:8px; flex-wrap:wrap; } .ml-tools .av-search{ flex:1; min-width:220px; } .ml-tools select{ width:auto; margin:0; }
.ml-days{ position:relative; display:flex; flex-direction:column; gap:12px; padding-inline-start:18px; }
.ml-days::before{ content:''; position:absolute; inset-block:8px; inset-inline-start:6px; width:2px; background:linear-gradient(#2FC1B2, #D5DCE6); border-radius:2px; }
.ml-day{ position:relative; background:#fff; border:1px solid var(--border); border-radius:16px; animation:up .45s both; }
.ml-day > header{ display:flex; align-items:center; gap:10px; padding:11px 14px; background:#F8FAFD; border-bottom:1px solid var(--border); flex-wrap:wrap; border-radius:16px 16px 0 0; }
.ml-dot{ position:absolute; inset-inline-start:-18px; top:16px; width:14px; height:14px; border-radius:50%; background:#fff; border:3px solid #2FC1B2; box-shadow:0 0 0 3px rgba(47,193,178,.15); }
.ml-day > header b{ display:block; font-size:14.5px; } .ml-day > header small{ color:var(--slate); font-size:11.5px; direction:ltr; display:block; text-align:end; }
.ml-bar{ flex:1; min-width:80px; height:6px; background:#EEF1F5; border-radius:4px; overflow:hidden; } .ml-bar i{ display:block; height:100%; background:linear-gradient(90deg,#2FC1B2,#2455A4); border-radius:4px; }
.ml-n{ font-size:12.5px; font-weight:800; color:var(--slate); }
.ml-batch + .ml-batch{ border-top:1px dashed #E3E8EF; }
.ml-bh{ display:flex; align-items:center; gap:7px; padding:8px 14px; font-size:12.5px; color:var(--slate); }
.ml-bh svg{ width:15px; height:15px; color:#2455A4; } .ml-bh b{ color:var(--ink); font-size:13.5px; } .ml-bh em{ margin-inline-start:auto; font-style:normal; font-weight:800; background:#EAF1FC; color:#2455A4; border-radius:999px; padding:1px 9px; }
.ml-batch ul{ list-style:none; margin:0; padding:0 8px 8px; display:flex; flex-direction:column; gap:3px; }
.ml-batch li{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; border-radius:10px; padding:6px 8px; cursor:pointer; transition:background .15s; }
.ml-batch li:hover{ background:#F6F8FB; } .ml-batch li b{ font-size:13px; } .ml-batch li small{ color:var(--slate); font-size:12px; } .ml-t{ margin-inline-start:auto; font-size:11.5px; color:var(--slate); }
.ml-st{ font-size:11px; font-weight:800; border-radius:999px; padding:2px 9px; white-space:nowrap; }
.ml-st.sent{ background:#E7F5EC; color:#1F7A45; } .ml-st.failed{ background:#FBEAE9; color:#B2382F; } .ml-st.cancelled{ background:#F1F3F7; color:#6B7684; } .ml-st.pending, .ml-st.sending{ background:#EAF1FC; color:#2455A4; }
.ml-batch li.cancelled b{ color:#8A94A3; text-decoration:line-through; text-decoration-color:rgba(138,148,163,.5); }
.ml-body{ flex-basis:100%; background:#F4F7FB; border-radius:10px; padding:8px 10px; margin-top:4px; animation:up .25s both; }
.ml-body p{ margin:0 0 4px; font-size:13px; line-height:1.8; } .ml-body span{ font-size:11.5px; color:var(--slate); }
@media (max-width:600px){ .ml-stats{ grid-template-columns:repeat(2, minmax(0,1fr)); } .ml-t{ flex-basis:100%; margin:0; } }
/* ===== الاعتماد: جاهزية التقويم الخارجي (الإصدار الثاني) ===== */
.ac-st.part{ background:#E4F6F3; color:#16786E; }
.ac-std > header .seg i.partial{ background:#9BE0D5; } .ac-card.partial::before{ background:#9BE0D5; }
/* التبويبات */
.ac-tabs{ position:sticky; top:64px; z-index:5; display:flex; gap:4px; padding:5px; background:rgba(255,255,255,.86); backdrop-filter:blur(10px); border:1px solid var(--border); border-radius:16px; box-shadow:0 6px 20px rgba(21,34,56,.06); overflow-x:auto; }
.ac-tabs button{ position:relative; flex:1; display:inline-flex; align-items:center; justify-content:center; gap:7px; width:auto; margin:0; border:0; background:transparent; color:var(--slate); font:inherit; font-size:13.5px; font-weight:800; border-radius:12px; padding:10px 14px; cursor:pointer; white-space:nowrap; transition:background .2s, color .2s; }
.ac-tabs button svg{ width:17px; height:17px; } .ac-tabs button:hover{ color:var(--ink); background:#F3F6FA; }
.ac-tabs button.on{ background:linear-gradient(135deg,#13336A,#0C2147); color:#fff; box-shadow:0 6px 16px rgba(12,33,71,.25); }
.ac-tabs em{ font-style:normal; font-size:11px; background:#F2A65A; color:#fff; border-radius:999px; padding:0 7px; min-width:18px; }
#ac-pane{ animation:up .35s both; }
/* البطاقة */
.ac-myr{ font-size:10.5px; font-weight:800; border-radius:999px; padding:2px 8px; }
.ac-myr.r1, .ac-asg-mini em.r1 b, .ac-rp.r1 .rk{ background:#13336A; color:#fff; } .ac-myr.r2, .ac-asg-mini em.r2 b, .ac-rp.r2 .rk{ background:#2FC1B2; color:#fff; } .ac-myr.r3, .ac-asg-mini em.r3 b, .ac-rp.r3 .rk{ background:#C9D3E0; color:#13336A; }
.ac-reqbar{ display:flex; align-items:center; gap:3px; } .ac-reqbar i{ flex:1; height:5px; border-radius:3px; background:#E8ECF2; max-width:34px; } .ac-reqbar i.on{ background:linear-gradient(90deg,#2FC1B2,#1E8F86); }
.ac-reqbar small{ font-size:11px; font-weight:800; color:var(--slate); margin-inline-start:4px; }
.ac-card .bot{ display:flex; align-items:center; gap:6px; justify-content:space-between; }
.ac-asg-mini{ display:flex; gap:4px; flex-wrap:wrap; min-width:0; }
.ac-asg-mini em{ display:inline-flex; align-items:center; gap:4px; font-style:normal; font-size:11px; font-weight:700; color:var(--ink); background:#F4F6FA; border-radius:999px; padding:1px 8px 1px 2px; max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ac-asg-mini em b{ font-size:9.5px; border-radius:999px; padding:1px 6px; } .ac-asg-mini em.g{ background:#F3F0FB; }
.ac-asg-mini em.none{ background:#FBEAE9; color:#B2382F; padding:1px 8px; } .ac-asg-mini em.more{ padding:1px 8px; }
.ac-prog-mini{ font-size:10.5px; font-weight:800; border-radius:6px; padding:2px 7px; white-space:nowrap; background:#F1F3F7; color:#6B7684; }
.ac-prog-mini.p-in_progress{ background:#FFF5E1; color:#A86B0C; } .ac-prog-mini.p-done{ background:#E7F5EC; color:#1F7A45; } .ac-prog-mini.p-revise{ background:#FBEAE9; color:#B2382F; }
/* الدرج */
.ac-dcov{ font-size:11.5px; font-weight:700; color:#BFD3F0; }
.ac-progsel{ display:flex; align-items:center; gap:5px; flex-wrap:wrap; margin-top:12px; }
.ac-progsel > span{ font-size:12px; color:#BFD3F0; font-weight:700; margin-inline-end:4px; }
.ac-progsel button{ display:inline-flex; align-items:center; gap:6px; width:auto; margin:0; border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.07); color:#DCE7F7; font:inherit; font-size:12px; font-weight:800; border-radius:999px; padding:5px 11px; cursor:pointer; transition:all .2s; }
.ac-progsel button i{ width:10px; height:10px; border-radius:50%; border:2px solid currentColor; }
.ac-progsel button.p-in_progress{ color:#F6C56B; } .ac-progsel button.p-done{ color:#7FE0C6; } .ac-progsel button.p-revise{ color:#F59D93; }
.ac-progsel button.on{ background:#fff; border-color:#fff; } .ac-progsel button.on i{ background:currentColor; }
.ac-progsel button.on.p-not_started{ color:#5B6B80; } .ac-progsel button.on.p-in_progress{ color:#A86B0C; } .ac-progsel button.on.p-done{ color:#1F7A45; } .ac-progsel button.on.p-revise{ color:#B2382F; }
.ac-progsel.ro button:not(.on){ display:none; } .ac-progsel button:disabled{ cursor:default; }
.ac-resp{ display:flex; flex-direction:column; gap:8px; padding:12px 16px 4px; }
.ac-resp-row{ display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.ac-rp{ display:inline-flex; align-items:center; gap:7px; background:#fff; border:1px solid var(--border); border-radius:12px; padding:4px 6px 4px 8px; animation:up .3s both; }
.ac-rp .rk{ width:auto; margin:0; border:0; font:inherit; font-style:normal; font-size:10.5px; font-weight:900; border-radius:8px; padding:4px 7px; cursor:pointer; }
.ac-rp span b, .ac-rp > b{ display:block; font-size:12.5px; } .ac-rp small{ display:block; font-size:10.5px; color:var(--slate); }
.ac-rp.g{ background:#FAF8FE; border-color:#E2DCF3; } .ac-rp.me{ border-color:#9FD3B3; background:#F3FAF5; }
.ac-rp .x{ width:auto; margin:0; border:0; background:none; color:#B6BFCC; font-size:11px; cursor:pointer; padding:2px 4px; } .ac-rp .x:hover{ color:#B2382F; }
.ac-rp.sm{ padding:2px 4px 2px 6px; border-radius:10px; } .ac-rp.sm b{ font-size:12px; }
.ac-dim{ font-size:12px; color:var(--slate); } .ac-dim.warn{ color:#B2382F; font-weight:700; }
.ac-dtabs{ display:flex; gap:2px; padding:10px 16px 0; border-bottom:1px solid var(--border); position:sticky; top:0; background:#F4F7FB; z-index:2; }
.ac-dtabs button{ width:auto; margin:0; border:0; background:none; font:inherit; font-size:13px; font-weight:800; color:var(--slate); padding:9px 12px; border-bottom:3px solid transparent; cursor:pointer; }
.ac-dtabs button.on{ color:var(--c); border-bottom-color:var(--c); }
.ac-det{ padding-top:12px; }
/* تدرّج الشاهد */
.ac-ladder{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; background:#fff; border:1px solid var(--border); border-radius:14px; padding:10px 6px; position:relative; }
.ac-ladder span{ position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; gap:3px; padding:0 4px; }
.ac-ladder span:not(:last-child)::after{ content:''; position:absolute; top:13px; inset-inline-start:calc(50% + 16px); width:calc(100% - 32px); height:2px; background:#E3E8EF; }
.ac-ladder span.on:not(:last-child)::after{ background:#2FC1B2; }
.ac-ladder i{ width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-style:normal; font-size:12px; font-weight:900; background:#F1F3F7; color:#8A94A3; border:2px solid #E3E8EF; }
.ac-ladder i svg{ width:15px; height:15px; } .ac-ladder span.on i{ background:#2FC1B2; color:#fff; border-color:#2FC1B2; box-shadow:0 0 0 4px rgba(47,193,178,.15); } .ac-ladder span.half i{ border-color:#6FA4F2; color:#2455A4; background:#EAF1FC; }
.ac-ladder b{ font-size:12px; } .ac-ladder small{ font-size:10px; color:var(--slate); line-height:1.4; }
/* الشواهد المطلوبة */
.ac-req{ display:flex; flex-direction:column; gap:7px; }
.ac-ri{ background:#fff; border:1px solid var(--border); border-radius:13px; padding:9px 11px; border-inline-start:4px solid #E3E8EF; transition:border-color .2s; }
.ac-ri.ok{ border-inline-start-color:#2FC1B2; background:linear-gradient(90deg,#F4FCFA,#fff); } .ac-ri.pend{ border-inline-start-color:#6FA4F2; } .ac-ri.ret{ border-inline-start-color:#F2A65A; }
.ac-ri .h{ display:flex; align-items:center; gap:9px; } .ac-ri .h b{ flex:1; font-size:13px; font-weight:700; line-height:1.7; }
.ac-ri .ck{ width:24px; height:24px; flex-shrink:0; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:11.5px; font-weight:900; background:#F1F3F7; color:#6B7684; }
.ac-ri.ok .ck{ background:#2FC1B2; color:#fff; } .ac-ri .ck svg{ width:14px; height:14px; }
.ac-ri .ac-mini{ display:inline-flex; align-items:center; gap:4px; } .ac-ri .ac-mini svg{ width:13px; height:13px; }
.ac-ri .ac-evs{ margin-top:8px; }
.ac-sub{ font-size:12.5px; font-weight:800; color:var(--slate); margin-top:6px; }
.ac-chaind{ display:inline-flex; gap:3px; align-items:center; } .ac-chaind i{ width:20px; height:5px; border-radius:3px; background:#E3E8EF; } .ac-chaind i.on{ background:#2FC1B2; } .ac-chaind.ret i.on, .ac-chaind.ret i{ background:#F2C08F; }
.ac-ev-t .stg{ font-style:normal; color:#16786E; font-weight:800; } .ac-ev-t .hist{ color:#6B7684; font-size:11px; }
/* الرفع */
.ac-add-h b{ display:flex; align-items:center; gap:6px; font-size:14px; } .ac-add-h svg{ width:16px; height:16px; color:var(--c); }
.ac-add.flash{ animation:acFlash 1.2s; } @keyframes acFlash{ 30%{ box-shadow:0 0 0 4px color-mix(in srgb, var(--c) 35%, transparent); } }
.ac-gf{ display:flex; flex-direction:column; gap:4px; margin:0; } .ac-gf > span{ font-size:12px; font-weight:800; color:var(--slate); } .ac-gf small{ font-size:11px; color:var(--slate); }
.ac-gf select, .ac-gf textarea{ margin:0; }
.ac-stgsel{ display:flex; align-items:center; gap:5px; flex-wrap:wrap; } .ac-stgsel > span{ font-size:12px; font-weight:800; color:var(--slate); margin-inline-end:4px; }
.ac-stgsel button{ width:auto; margin:0; border:1px solid var(--border); background:#fff; font:inherit; font-size:12px; font-weight:700; border-radius:999px; padding:4px 11px; cursor:pointer; }
.ac-stgsel button.on{ background:#16786E; border-color:#16786E; color:#fff; }
/* الدليل */
.ac-guide{ display:flex; flex-direction:column; gap:10px; }
.ac-guide section{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:12px 14px; }
.ac-guide h5{ display:flex; align-items:center; gap:6px; margin:0 0 6px; font-size:13.5px; color:#1F7A45; } .ac-guide h5 svg{ width:16px; height:16px; }
.ac-guide p{ margin:0; font-size:13.5px; line-height:1.95; }
.ac-guide .tip{ background:#FFFBF2; border-color:#F3E3BE; } .ac-guide .tip h5{ color:#A86B0C; }
.ac-guide ul{ margin:0; padding-inline-start:18px; display:flex; flex-direction:column; gap:5px; font-size:13px; line-height:1.85; } .ac-guide li.avoid b{ color:#B2382F; }
.ac-guide .best{ display:flex; gap:10px; align-items:flex-start; background:linear-gradient(135deg,#13336A,#0C2147); color:#fff; border:0; }
.ac-guide .best svg{ width:22px; height:22px; color:#F2C46B; flex-shrink:0; } .ac-guide .best small{ display:block; color:#BFD3F0; font-size:11.5px; } .ac-guide .best b{ font-size:13.5px; line-height:1.8; }
.ac-guide .warn{ background:#FFF4E5; border-color:#F3D3A8; color:#A4501A; font-size:12.5px; font-weight:700; }
.ac-guide .rule{ background:#F2F7FD; border-color:#D7E5F6; font-size:12.5px; line-height:1.85; color:#1D4D7C; }
.ac-gedit{ display:flex; flex-direction:column; gap:10px; background:#fff; border:1px solid var(--border); border-radius:14px; padding:12px; }
/* صفحتي */
.ac-me{ display:flex; flex-direction:column; gap:14px; }
.ac-me-hero{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; color:#fff; border-radius:22px; padding:18px 20px; background:radial-gradient(120% 160% at 0% 0%, #1E5FA8 0%, #13336A 45%, #0C2147 100%); position:relative; overflow:hidden; }
.ac-me-hero::after{ content:''; position:absolute; width:260px; height:260px; border-radius:50%; border:1px dashed rgba(255,255,255,.14); inset-inline-end:-80px; top:-120px; animation:acSpin 40s linear infinite; }
.ac-me-av{ width:58px; height:58px; border-radius:18px; background:linear-gradient(135deg,#2FC1B2,#1E8F86); display:flex; align-items:center; justify-content:center; font-size:26px; font-weight:900; box-shadow:0 10px 24px rgba(47,193,178,.35); }
.ac-me-t{ flex:1; min-width:200px; } .ac-me-t > span{ font-size:12px; color:#BFD3F0; } .ac-me-t > b{ display:block; font-size:20px; margin:2px 0 8px; }
.ac-me-chips{ display:flex; gap:5px; flex-wrap:wrap; } .ac-me-chips em{ font-style:normal; font-size:11.5px; font-weight:700; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); border-radius:999px; padding:2px 10px; }
.ac-me-chips em.r1{ background:#fff; color:#13336A; } .ac-me-chips em.r2{ background:#2FC1B2; border-color:#2FC1B2; } .ac-me-chips em.role{ background:rgba(242,196,107,.18); border-color:rgba(242,196,107,.5); color:#F7D894; }
.ac-me-ring{ --p:0; position:relative; width:96px; height:96px; border-radius:50%; background:conic-gradient(#2FC1B2 calc(var(--p) * 1%), rgba(255,255,255,.12) 0); display:flex; flex-direction:column; align-items:center; justify-content:center; z-index:1; }
.ac-me-ring::before{ content:''; position:absolute; inset:8px; border-radius:50%; background:#102A58; } .ac-me-ring b, .ac-me-ring small{ position:relative; } .ac-me-ring b{ font-size:22px; font-family:'Tajawal',sans-serif; } .ac-me-ring small{ font-size:9.5px; color:#BFD3F0; }
.ac-queue{ background:#fff; border:1px solid #CFE0F7; border-radius:18px; padding:12px 14px; display:flex; flex-direction:column; gap:6px; box-shadow:0 8px 24px rgba(36,85,164,.08); }
.ac-queue.ret{ border-color:#F3D3A8; box-shadow:0 8px 24px rgba(242,166,90,.1); }
.ac-queue header{ display:flex; align-items:baseline; gap:8px; margin-bottom:4px; } .ac-queue header b{ font-size:15px; } .ac-queue header span{ font-size:12px; color:var(--slate); }
.ac-qrow{ display:flex; align-items:center; gap:10px; width:100%; margin:0; text-align:start; font:inherit; color:var(--ink); background:#F8FAFD; border:1px solid var(--border); border-inline-start:4px solid var(--c); border-radius:12px; padding:8px 11px; cursor:pointer; flex-wrap:wrap; transition:transform .15s; }
.ac-qrow:hover{ transform:translateX(-2px); } .ac-qrow .t{ flex:1; min-width:180px; } .ac-qrow .t b{ display:block; font-size:13px; } .ac-qrow .t small{ display:block; font-size:11.5px; color:var(--slate); }
.ac-qrow .code{ font-family:'Tajawal',sans-serif; font-weight:800; font-size:12px; color:#2455A4; background:#EAF1FC; border-radius:7px; padding:2px 8px; direction:ltr; }
.ac-me-sec h4{ display:flex; align-items:center; gap:8px; margin:4px 2px 8px; font-size:14.5px; } .ac-me-sec h4 small{ font-size:12px; color:var(--slate); background:#fff; border:1px solid var(--border); border-radius:999px; padding:0 9px; }
.ac-me-sec h4 i{ width:10px; height:10px; border-radius:50%; background:#C9D3E0; } .ac-me-sec h4 i.r1{ background:#13336A; } .ac-me-sec h4 i.r2{ background:#2FC1B2; }
.ac-me-sec .ac-cards{ padding:0; }
/* الأدوار والفرق */
.ac-teamtab{ display:flex; flex-direction:column; gap:14px; }
.ac-chain{ background:#fff; border:1px solid var(--border); border-radius:18px; padding:14px 16px; }
.ac-chain header b, .ac-groups header b{ font-size:15px; display:block; } .ac-chain header span, .ac-groups header span{ font-size:12px; color:var(--slate); }
.ac-chain ol{ list-style:none; margin:14px 0 2px; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:8px; counter-reset:c; }
.ac-chain li{ position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; gap:3px; animation:up .45s both; }
.ac-chain li:not(:last-child)::after{ content:''; position:absolute; top:19px; inset-inline-start:calc(50% + 22px); width:calc(100% - 36px); height:2px; background:repeating-linear-gradient(90deg,#2FC1B2 0 6px,transparent 6px 10px); }
.ac-chain li span{ width:38px; height:38px; border-radius:13px; display:flex; align-items:center; justify-content:center; font-weight:900; color:#fff; background:linear-gradient(135deg,#13336A,#2455A4); box-shadow:0 6px 14px rgba(36,85,164,.25); }
.ac-chain li:last-child span{ background:linear-gradient(135deg,#2FC1B2,#1E8F86); }
.ac-chain li b{ font-size:12.5px; } .ac-chain li small{ font-size:10.5px; color:var(--slate); line-height:1.5; }
.ac-roles{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
.ac-role{ display:flex; gap:10px; background:#fff; border:1px solid var(--border); border-radius:16px; padding:12px; }
.ac-role .ic{ width:38px; height:38px; flex-shrink:0; border-radius:12px; display:flex; align-items:center; justify-content:center; background:#FFF6E3; color:#C08A1E; } .ac-role .ic svg{ width:19px; height:19px; }
.ac-role.dom .ic{ background:var(--c); color:#fff; font-weight:900; } .ac-role > div{ flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; }
.ac-role b{ font-size:13.5px; } .ac-role small{ font-size:11.5px; color:var(--slate); } .ac-role .ac-asg-c{ margin-inline-start:0; }
.ac-groups{ background:#fff; border:1px solid var(--border); border-radius:18px; padding:14px 16px; }
.ac-groups header{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; } .ac-groups header > span{ flex:1; }
.ac-gcards{ display:grid; grid-template-columns:repeat(auto-fill, minmax(240px,1fr)); gap:8px; }
.ac-gcard{ background:#FAF8FE; border:1px solid #E2DCF3; border-radius:14px; padding:10px; display:flex; flex-direction:column; gap:7px; }
.ac-gcard .h{ display:flex; align-items:center; gap:6px; } .ac-gcard .h b{ flex:1; font-size:13.5px; } .ac-gcard .h small{ font-size:11px; color:var(--slate); }
.ac-gcard .ac-asg-c{ margin-inline-start:0; --c:#6249A6; } .ac-gall{ font-size:12px; font-weight:700; color:#6249A6; }
.ac-gev{ display:flex; align-items:center; gap:6px; font-size:12px; color:var(--slate); margin:0; } .ac-gev input{ width:auto; margin:0; }
.ac-dx.sm{ position:static; border-color:var(--border); background:#fff; color:#B6BFCC; font-size:11px; padding:2px 7px; }
.ac-dx.sm:hover{ color:#B2382F; border-color:#F1C3BF; }
/* الخطة الزمنية */
.ac-plan{ display:flex; flex-direction:column; gap:12px; }
.ac-plan-h{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.ac-plan-h > div{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:10px 12px; position:relative; overflow:hidden; }
.ac-plan-h span{ display:block; font-size:11.5px; color:var(--slate); font-weight:700; } .ac-plan-h b{ font-size:17px; font-family:'Tajawal',sans-serif; }
.ac-plan-h .pr i{ position:absolute; inset-inline-start:0; bottom:0; height:4px; width:var(--p); background:linear-gradient(90deg,#2FC1B2,#2455A4); }
.ac-note{ background:#F2F7FD; border:1px dashed #BCD3EF; color:#1D4D7C; border-radius:12px; padding:9px 12px; font-size:12.5px; }
.ac-phases{ list-style:none; margin:0; padding:0; position:relative; display:flex; flex-direction:column; gap:10px; }
.ac-phases::before{ content:''; position:absolute; inset-block:20px; inset-inline-start:19px; width:2px; background:linear-gradient(#2FC1B2,#C9D3E0); }
.ac-ph{ position:relative; display:flex; gap:12px; animation:up .45s both; }
.ac-ph .n{ position:relative; z-index:1; width:40px; height:40px; flex-shrink:0; border-radius:14px; display:flex; align-items:center; justify-content:center; font-weight:900; background:#fff; border:2px solid #C9D3E0; color:#5B6B80; }
.ac-ph .n svg{ width:18px; height:18px; } .ac-ph.doing .n{ border-color:#F2A65A; color:#A86B0C; box-shadow:0 0 0 5px rgba(242,166,90,.15); } .ac-ph.done .n{ background:#2FC1B2; border-color:#2FC1B2; color:#fff; }
.ac-ph .b{ flex:1; min-width:0; background:#fff; border:1px solid var(--border); border-radius:16px; padding:10px 12px; display:flex; flex-direction:column; gap:7px; }
.ac-ph.now .b{ border-color:#F2A65A; } .ac-ph.late .b{ border-color:#F1C3BF; background:#FFFBFA; } .ac-ph.done .b{ opacity:.85; }
.ac-ph .t{ display:flex; align-items:center; gap:8px; } .ac-ph .t b{ font-size:14.5px; } .ac-ph .t em{ font-style:normal; font-size:11px; font-weight:800; border-radius:999px; padding:1px 9px; }
.ac-ph .t em.late{ background:#FBEAE9; color:#B2382F; } .ac-ph .t em.now{ background:#FFF5E1; color:#A86B0C; }
.ac-ph .m{ display:grid; grid-template-columns:1fr 1fr; gap:8px; } .ac-ph .m span{ font-size:12.5px; display:flex; flex-direction:column; gap:2px; } .ac-ph .m i{ font-style:normal; font-size:11px; color:var(--slate); font-weight:700; }
.ac-ph .d{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:12.5px; } .ac-ph .d label{ display:flex; align-items:center; gap:5px; margin:0; font-size:12px; color:var(--slate); } .ac-ph .d input{ width:auto; margin:0; padding:4px 7px; font-size:12px; }
.ac-ph .d small{ font-size:11.5px; color:var(--slate); font-weight:700; }
.ac-in{ margin:0 !important; padding:4px 8px !important; font-size:12.5px !important; border-color:transparent !important; background:#F6F8FB !important; border-radius:8px !important; } .ac-in:focus{ border-color:var(--meadow) !important; background:#fff !important; }
.ac-in.t{ font-size:14px !important; font-weight:800; flex:1; }
.ac-phst{ display:inline-flex; gap:3px; margin-inline-start:auto; background:#F3F6FA; border-radius:999px; padding:3px; }
.ac-phst button, .ac-phst span{ width:auto; margin:0; border:0; background:none; font:inherit; font-size:11.5px; font-weight:800; color:var(--slate); border-radius:999px; padding:3px 10px; cursor:pointer; }
.ac-phst .on.todo{ background:#fff; color:#5B6B80; box-shadow:0 1px 3px rgba(0,0,0,.08); } .ac-phst .on.doing{ background:#F2A65A; color:#fff; } .ac-phst .on.done{ background:#2FC1B2; color:#fff; }
#ac-phadd{ align-self:flex-start; margin-inline-start:52px; }
.ac-asg-i .row.na{ opacity:.5; } .ac-asg-d header small em{ font-style:normal; color:#B2382F; font-weight:800; }
@media (max-width:760px){ .ac-chain ol{ grid-template-columns:repeat(2,1fr); row-gap:14px; } .ac-chain li:nth-child(2)::after{ display:none; } .ac-roles{ grid-template-columns:1fr; } .ac-plan-h{ grid-template-columns:repeat(2,1fr); } .ac-ph .m{ grid-template-columns:1fr; } .ac-tabs{ top:56px; } .ac-tabs button span{ font-size:12.5px; } .ac-ladder small{ display:none; } }
@keyframes up{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){ .ac-tabs ~ #ac-pane, .ac-ph, .ac-chain li, .ac-rp, .ml-day{ animation:none !important; } }
.ac-role.wide{ grid-column:1 / -1; }
.ac-pm{ width:min(560px,100%); background:#fff; border-radius:20px; overflow:hidden; box-shadow:0 30px 80px rgba(8,23,51,.35); animation:up .3s both; margin:auto; }
.ac-pm-b{ display:flex; flex-direction:column; gap:8px; padding:14px; }
.ac-pm-o{ display:flex; align-items:flex-start; gap:12px; width:100%; margin:0; text-align:start; font:inherit; color:var(--ink); background:#F8FAFD; border:1px solid var(--border); border-radius:14px; padding:12px; cursor:pointer; transition:border-color .2s, transform .15s; }
button.ac-pm-o:hover{ border-color:#2FC1B2; transform:translateY(-1px); } .ac-pm-o.col{ flex-direction:column; cursor:default; } .ac-pm-o .r{ display:flex; gap:12px; }
.ac-pm-o .ic{ width:40px; height:40px; flex-shrink:0; border-radius:12px; background:linear-gradient(135deg,#13336A,#2455A4); color:#fff; display:flex; align-items:center; justify-content:center; } .ac-pm-o .ic svg{ width:19px; height:19px; }
.ac-pm-o b{ display:block; font-size:14px; } .ac-pm-o small{ display:block; font-size:12px; color:var(--slate); line-height:1.7; }
.ac-pm-f{ display:flex; gap:8px; width:100%; } .ac-pm-f select{ flex:1; margin:0; }
/* الاعتماد: واجهة المعلم وقائد المجال */
.ac-lite{ position:relative; overflow:hidden; display:flex; align-items:center; gap:18px; flex-wrap:wrap; color:#fff; border-radius:24px; padding:22px 24px; background:radial-gradient(120% 160% at 100% 0%, #1E5FA8 0%, #13336A 45%, #0C2147 100%); }
.ac-lite .t{ position:relative; flex:1; min-width:240px; z-index:1; } .ac-lite h3{ margin:6px 0 4px; font-size:22px; } .ac-lite p{ margin:0; color:#C9D8EE; font-size:13.5px; line-height:1.8; }
.ac-lite-d{ display:inline-flex; align-items:center; gap:6px; margin-top:10px; font-size:12.5px; font-weight:700; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); border-radius:999px; padding:4px 12px; }
.ac-lite-d svg{ width:15px; height:15px; color:#7FE0C6; } .ac-lite .ac-me-ring{ width:110px; height:110px; }
.ac-dom{ display:flex; flex-direction:column; gap:14px; }
.ac-allok{ background:#F3FAF5; border:1px solid #CDEBD8; color:#1F7A45; border-radius:14px; padding:10px 14px; font-weight:800; font-size:13px; }
.ac-dsec{ background:#fff; border:1px solid var(--border); border-radius:20px; overflow:hidden; animation:up .4s both; }
.ac-dsec > header{ display:flex; align-items:center; gap:10px; padding:12px 16px; background:linear-gradient(90deg, color-mix(in srgb, var(--c) 10%, #fff), #fff); border-bottom:1px solid var(--border); }
.ac-dsec > header .n{ width:34px; height:34px; border-radius:11px; background:var(--c); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:900; }
.ac-dsec > header b{ display:block; font-size:15.5px; } .ac-dsec > header small{ font-size:12px; color:var(--slate); } .ac-dsec > header em{ font-style:normal; color:#B2382F; font-weight:800; }
.ac-dstd{ padding:6px 12px 10px; } .ac-dstd h5{ margin:8px 4px 6px; font-size:13px; color:var(--c); }
.ac-drow{ display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:10px; align-items:center; border:1px solid var(--border); border-inline-start:4px solid #E3E8EF; border-radius:14px; padding:8px 10px; margin-bottom:6px; background:#fff; transition:box-shadow .2s; }
.ac-drow:hover{ box-shadow:0 8px 20px rgba(21,34,56,.07); }
.ac-drow.done{ border-inline-start-color:#2FC1B2; } .ac-drow.partial{ border-inline-start-color:#9BE0D5; } .ac-drow.pending{ border-inline-start-color:#6FA4F2; } .ac-drow.returned{ border-inline-start-color:#F2A65A; } .ac-drow.na{ opacity:.55; }
.ac-drow-t{ display:flex; flex-direction:column; align-items:flex-start; gap:4px; width:auto; margin:0; padding:0; border:0; background:none; font:inherit; color:var(--ink); text-align:start; cursor:pointer; }
.ac-drow-t .code{ font-family:'Tajawal',sans-serif; font-weight:800; font-size:12px; color:#2455A4; background:#EAF1FC; border-radius:7px; padding:1px 8px; direction:ltr; }
.ac-drow-t .txt{ font-size:13.5px; font-weight:700; line-height:1.7; } .ac-drow-t:hover .txt{ color:#2455A4; }
.ac-drow-m{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; } .ac-drow-m .ac-reqbar{ min-width:110px; }
.ac-drow-m em.pend{ font-style:normal; font-size:11px; font-weight:800; background:#EAF1FC; color:#2455A4; border-radius:999px; padding:1px 8px; }
.ac-drow-a{ display:flex; align-items:center; gap:5px; flex-wrap:wrap; justify-content:flex-start; background:#F8FAFD; border-radius:12px; padding:7px 8px; min-height:44px; }
.ac-drow-a .lbl{ width:100%; font-size:10.5px; font-weight:800; color:var(--slate); }
.ac-gd{ background:#fff; border:1px solid var(--border); border-radius:14px; overflow:hidden; }
.ac-gd > summary{ display:flex; align-items:center; gap:10px; padding:11px 13px; cursor:pointer; list-style:none; background:linear-gradient(90deg,#FFFBF2,#fff); }
.ac-gd > summary::-webkit-details-marker{ display:none; } .ac-gd > summary svg{ width:20px; height:20px; color:#A86B0C; flex-shrink:0; }
.ac-gd > summary b{ display:block; font-size:13.5px; } .ac-gd > summary small{ display:block; font-size:11.5px; color:var(--slate); }
.ac-gd > summary::after{ content:'◂'; margin-inline-start:auto; color:var(--slate); transition:transform .2s; } .ac-gd[open] > summary::after{ transform:rotate(-90deg); }
.ac-gd .ac-guide{ padding:10px; border-top:1px solid var(--border); }
@media (max-width:760px){ .ac-drow{ grid-template-columns:1fr; } .ac-lite{ padding:18px; } .ac-lite h3{ font-size:19px; } }
