/* خطوط مستضافة محليًا (woff2) — لا اعتماد على أي خدمة خارجية */
@font-face{font-family:'Cairo';font-style:normal;font-display:swap;font-weight:400;src:url('../assets/fonts/cairo-arabic-400-normal.woff2') format('woff2');}
@font-face{font-family:'Cairo';font-style:normal;font-display:swap;font-weight:600;src:url('../assets/fonts/cairo-arabic-600-normal.woff2') format('woff2');}
@font-face{font-family:'Cairo';font-style:normal;font-display:swap;font-weight:700;src:url('../assets/fonts/cairo-arabic-700-normal.woff2') format('woff2');}
@font-face{font-family:'Cairo';font-style:normal;font-display:swap;font-weight:800;src:url('../assets/fonts/cairo-arabic-800-normal.woff2') format('woff2');}
@font-face{font-family:'Markazi Text';font-style:normal;font-display:swap;font-weight:600;src:url('../assets/fonts/markazi-text-arabic-600-normal.woff2') format('woff2');}
@font-face{font-family:'Markazi Text';font-style:normal;font-display:swap;font-weight:700;src:url('../assets/fonts/markazi-text-arabic-700-normal.woff2') format('woff2');}

/* ═════ variables.css ═════ */
:root{
  --paper:#F3F0E6;
  --paper-raised:#FBF9F2;
  --ink:#1C2B33;
  --ink-soft:#4A5A61;
  --teal:#1F4B4C;
  --teal-dark:#12302F;
  --gold:#A9792C;
  --gold-light:#C99A4A;
  --line:#D8D2C0;
  --line-strong:#B9AE8F;
  --margin-red:#9A4B45;
  --danger:#8B3A3A;
  --ok:#3F6B4F;
  --shadow: 0 2px 10px rgba(28,43,51,0.08), 0 1px 2px rgba(28,43,51,0.06);
  --radius: 10px;
}

/* ═════ base.css ═════ */
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Cairo',sans-serif;
  min-height:100vh;
  background-image:
    linear-gradient(var(--paper) 0%, var(--paper) 100%),
    repeating-linear-gradient(0deg, transparent, transparent 27px, rgba(184,174,143,0.12) 28px);
}
.hidden{display:none !important;}
::selection{background:var(--gold-light);color:var(--teal-dark);}

/* ═════ components.css ═════ */
/* ===== Brand mark ===== */
.brand{display:flex;align-items:center;gap:12px;}
.seal{
  width:44px;height:44px;border-radius:50%;
  border:2.5px solid var(--gold);
  display:flex;align-items:center;justify-content:center;
  font-family:'Markazi Text',serif;font-weight:700;font-size:19px;
  color:var(--gold);flex-shrink:0;
  transform:rotate(-8deg);
  background:radial-gradient(circle at 35% 30%, rgba(169,121,44,0.10), transparent 70%);
}
.brand-text .name{font-family:'Markazi Text',serif;font-weight:700;font-size:26px;color:var(--teal-dark);line-height:1;}
.brand-text .sub{font-size:12px;color:var(--ink-soft);margin-top:3px;}
.ver-badge{
  font-family:'Cairo',sans-serif;font-size:11px;font-weight:600;
  background:var(--teal);color:var(--paper-raised);
  padding:2px 8px;border-radius:20px;letter-spacing:.5px;
}

.seal-img{width:44px;height:44px;border-radius:50%;flex-shrink:0;display:block;}
.login-header .seal-img{
  margin:0 auto 16px;width:68px;height:68px;
  box-shadow:0 8px 20px rgba(18,48,47,0.28), 0 0 0 6px rgba(169,121,44,0.10);
}


.login-wrap{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  padding:24px;position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 15% 20%, rgba(31,75,76,0.10), transparent 45%),
    radial-gradient(circle at 88% 82%, rgba(169,121,44,0.10), transparent 40%);
}
.login-wrap::before{
  content:"";position:absolute;left:-120px;bottom:-140px;width:480px;height:480px;
  background:var(--teal);opacity:0.05;border-radius:46% 54% 60% 40%/55% 45% 55% 45%;
  pointer-events:none;
}
.login-wrap::after{
  content:"";position:absolute;right:-100px;top:-120px;width:360px;height:360px;
  background:var(--gold);opacity:0.06;border-radius:50% 50% 42% 58%/48% 60% 40% 52%;
  pointer-events:none;
}
.login-card{
  background:var(--paper-raised);
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 16px 44px rgba(18,48,47,0.14), 0 2px 8px rgba(18,48,47,0.06);
  padding:38px 32px 30px;
  width:100%;max-width:380px;
  position:relative;
}
.login-card::before{
  content:"";position:absolute;inset:8px;border:1px solid rgba(169,121,44,0.25);
  border-radius:11px;pointer-events:none;
}
.login-header{text-align:center;margin-bottom:26px;}
.login-header .seal{margin:0 auto 14px;width:58px;height:58px;font-size:24px;}
.login-header .name{font-size:32px;}
.login-header .sub{font-size:13px;margin-top:4px;}

.field{margin-bottom:14px;}
.field label{display:block;font-size:13px;font-weight:600;color:var(--ink-soft);margin-bottom:6px;}
.field input, .field select, .field textarea, .field .csel-trigger{
  width:100%;padding:11px 13px;border:1px solid var(--line-strong);border-radius:8px;
  font-family:'Cairo',sans-serif;font-size:15px;background-color:#fff;color:var(--ink);
}
.field input:focus, .field select:focus, .field textarea:focus, .field .csel-trigger:focus{
  outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(31,75,76,0.12);
}

/* قوائم منسدلة موحّدة بمظهر التطبيق (بدل مظهر المتصفح الافتراضي الخام).
   .csel-trigger هو الزرار البديل اللي بيظهر مكان أي <select> فعلي (راجع
   custom-select.js) — نفس الشكل بالظبط (نفس القاعدة دي)، عشان "قفل"
   القائمة (شكلها وهي مقفولة) يفضل زي بعضه في كل التطبيق */
select, .csel-trigger{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  display:block;width:100%;text-align:right;
  padding:9px 14px 9px 34px;border:1px solid var(--line-strong);border-radius:9px;
  font-family:'Cairo',sans-serif;font-size:13.5px;font-weight:600;color:var(--ink);
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A5A61' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:left 11px center;background-size:13px;
  cursor:pointer;transition:.15s;
}
select::-ms-expand{display:none;}
select:hover, .csel-trigger:hover{border-color:var(--teal);}
select:focus, .csel-trigger:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(31,75,76,0.12);}
.field select, .field .csel-trigger{padding:11px 13px 11px 34px;font-size:15px;}

/* .csel-trigger زرار حقيقي (مش select)، فمحتاج نلغي مظاهره الافتراضية
   (text-align:center، حدود focus الزرقاء بتاعة المتصفح) ونديله سلوك
   القائمة المفتوحة/المقفولة (تدوير السهم، حالة "مفتوح") */
.csel-wrap{position:relative;}
.csel-native{display:none;}
.csel-trigger{
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  background-position:left 11px center;
}
.field .csel-trigger{background-position:left 13px center;}
.csel-trigger.open{
  border-color:var(--teal);box-shadow:0 0 0 3px rgba(31,75,76,0.12);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F4B4C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 15l-6-6-6 6'/%3E%3C/svg%3E");
}

/* شيل السهم الافتراضي اللي بيظهره Chrome تلقائيًا جوه أي <input> مربوط
   بـ<datalist> — مبقاش مستخدَم من v1.9.5 (استُبدل <datalist> بالكامل
   بكومبوبوكس مُخصَّص، راجع combo-wrap تحت)، اتسابت القاعدة هنا بلا ضرر
   لأي استخدام مستقبلي لـ<input list>.
*/
input[list]::-webkit-calendar-picker-indicator{ display:none; }

/* كومبوبوكس مُخصَّص (بديل <input list> + <datalist> الافتراضي بتاع
   المتصفح — شكله غير قابل للتنسيق وبيتعارض مع هوية التطبيق تمامًا،
   زي "المرسل إليه"/"الجهة المرسلة"). نفس مبدأ نوافذ modal.js.
   .combo-menu/.combo-item هنا هما نفسهم المستخدَمين في custom-select.js
   (بديل كل <select> في التطبيق) — قائمة منسدلة واحدة موحّدة الشكل
   والسلوك (تنقل بالأسهم، اختيار بالماوس، إغلاق بـEscape/الضغط برّة)
   لأي حقل في التطبيق سواء كان اختيار من قائمة مقفلة أو كتابة حرة. */
.combo-wrap{ position:relative; }
.combo-wrap input{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A5A61' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:left 13px center; background-size:13px;
  padding-left:34px;
}
.combo-menu{
  position:absolute; top:calc(100% + 4px); right:0; left:0; z-index:50;
  max-height:230px; overflow-y:auto; background:#fff; border:1px solid var(--line-strong);
  border-radius:9px; box-shadow:var(--shadow); padding:4px;
  animation:comboMenuIn .12s ease-out;
}
@keyframes comboMenuIn{ from{opacity:0; transform:translateY(-4px);} to{opacity:1; transform:translateY(0);} }
.combo-menu.hidden{ display:none; }
.combo-item{
  padding:9px 12px; font-size:14px; font-family:'Cairo',sans-serif; color:var(--ink);
  border-radius:6px; cursor:pointer; transition:background-color .1s, color .1s;
}
.combo-item:hover, .combo-item.active{ background:var(--paper); color:var(--teal-dark); font-weight:600; }
.combo-menu:empty::after{
  content:"لا توجد نتائج"; display:block; padding:10px 12px; font-size:13px; color:var(--ink-soft);
}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:none;border-radius:9px;padding:11px 18px;font-family:'Cairo',sans-serif;
  font-weight:700;font-size:14.5px;cursor:pointer;transition:.15s;
}
.btn-primary{background:var(--teal);color:#fff;width:100%;box-shadow:0 3px 10px rgba(31,75,76,0.25);}
.btn-primary:hover{background:var(--teal-dark);transform:translateY(-1px);box-shadow:0 5px 14px rgba(31,75,76,0.32);}
.btn-gold{background:var(--gold);color:#fff;box-shadow:0 3px 10px rgba(169,121,44,0.25);}
.btn-gold:hover{background:#8f651f;transform:translateY(-1px);box-shadow:0 5px 14px rgba(169,121,44,0.32);}
.btn-ghost{background:#fff;color:var(--teal);border:1px solid var(--line-strong);}
.btn-ghost:hover{background:rgba(31,75,76,0.06);border-color:var(--teal);}
.btn-danger{background:transparent;color:var(--danger);border:1px solid rgba(139,58,58,0.35);}
.btn-danger:hover{background:rgba(139,58,58,0.08);}
.btn-sm{padding:7px 13px;font-size:12.5px;}
.error-msg{
  background:rgba(139,58,58,0.08);border:1px solid rgba(139,58,58,0.25);color:var(--danger);
  padding:9px 12px;border-radius:8px;font-size:13px;margin-bottom:14px;text-align:center;
}

/* ===== App shell (Sidebar layout) ===== */
.app-shell{display:flex;flex-direction:column;min-height:100vh;}
.app-body{display:flex;flex:1;align-items:stretch;min-height:0;}

.sidebar{
  width:238px;flex-shrink:0;
  background:var(--paper-raised);border-left:1px solid var(--line);
  display:flex;flex-direction:column;
  position:sticky;top:0;height:100vh;overflow-y:auto;
  z-index:30;
}
.sidebar-brand{
  display:flex;align-items:center;gap:10px;padding:18px 16px 14px;
  border-bottom:1px solid var(--line);position:relative;
}
.sidebar-brand .seal-img{width:38px;height:38px;}
.sidebar-brand .brand-text{flex:1;min-width:0;}
.sidebar-brand .brand-text .name{font-size:19px;}
.sidebar-brand .brand-text .sub{font-size:10.5px;}
.sidebar-close-btn{
  display:none;flex-shrink:0;width:34px;height:34px;border-radius:9px;
  border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);
  font-size:15px;cursor:pointer;align-items:center;justify-content:center;
}

.sidebar-nav{display:flex;flex-direction:column;gap:3px;padding:14px 10px;flex:1;overflow-y:auto;}
.sidebar-nav .tab{
  display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:10px;
  border:none;background:transparent;font-family:'Cairo',sans-serif;
  font-weight:600;font-size:14px;color:var(--ink-soft);cursor:pointer;
  text-align:right;width:100%;white-space:nowrap;
}
.sidebar-nav .tab:hover:not(.active){background:rgba(31,75,76,0.06);}
.sidebar-nav .tab.active{background:var(--teal);color:#fff;box-shadow:0 3px 10px rgba(31,75,76,0.28);}
.sidebar-nav .tab .nav-icon svg{width:100%;height:100%;display:block;}
.sidebar-nav .tab.active .nav-icon svg *{fill:#fff !important;stroke:#fff !important;}

.sidebar-footer{
  padding:14px 16px;border-top:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}

.mobile-menu-btn{
  display:none;position:fixed;top:14px;right:14px;z-index:40;
  width:42px;height:42px;border-radius:10px;border:1px solid var(--line);
  background:var(--paper-raised);font-size:20px;box-shadow:var(--shadow);cursor:pointer;
}
.sidebar-overlay{display:none;}

.app-main{flex:1;min-width:0;}

.bottom-nav{display:none;}

.subtabs .subtab{display:inline-flex;align-items:center;gap:6px;}
.subtabs .subtab .nav-icon svg{width:100%;height:100%;display:block;}
.subtabs .subtab.active .nav-icon svg *{fill:#fff !important;stroke:#fff !important;}

@media (max-width:860px){
  .sidebar{
    position:fixed;top:0;right:0;height:100vh;width:min(300px, 84vw);
    transform:translateX(100%);
    transition:transform .28s cubic-bezier(.2,.8,.2,1);
    box-shadow:-8px 0 30px rgba(18,48,47,0.22);
    border-radius:18px 0 0 18px;overflow:hidden;
  }
  body.sidebar-open .sidebar{transform:translateX(0);}
  body.sidebar-open .sidebar-overlay{
    display:block;position:fixed;inset:0;top:0;right:0;bottom:0;left:0;background:rgba(18,48,47,0.45);
    backdrop-filter:blur(1px);z-index:25;
  }
  .sidebar-close-btn{display:flex;}
  .sidebar-brand{padding:20px 18px 16px;background:linear-gradient(160deg, var(--paper-raised), var(--paper));}
  .sidebar-nav{padding:16px 12px;gap:5px;}
  .sidebar-nav .tab{padding:13px 14px;font-size:14.5px;}
  .mobile-menu-btn{display:block;}
  .app-main{padding-top:60px;padding-bottom:calc(70px + env(safe-area-inset-bottom));}

  .dash-hero, .page-hero{padding:22px 18px;border-radius:16px;}
  .dash-hero h1{font-size:26px;}
  .page-hero h1{font-size:21px;gap:9px;}
  .dash-hero p, .page-hero p{font-size:13.5px;}
  .dash-hero-decor, .page-hero-decor{left:-30px;bottom:-40px;}
  .dash-hero-decor .nav-icon, .page-hero-decor .nav-icon{width:110px !important;height:110px !important;}
  .hero-icon-badge{width:32px;height:32px;border-radius:9px;}
  .stat-card-value{font-size:25px;}

  .bottom-nav{
    display:flex;position:fixed;bottom:0;right:0;left:0;z-index:35;
    background:var(--paper-raised);border-top:1px solid var(--line);
    box-shadow:0 -4px 16px rgba(0,0,0,0.08);
    padding:6px 4px calc(6px + env(safe-area-inset-bottom));
  }
  .bn-item{
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    background:none;border:none;padding:6px 2px;cursor:pointer;color:var(--ink-soft);
    font-family:'Cairo',sans-serif;
  }
  .bn-item .nav-icon{width:20px;height:20px;}
  .bn-item .nav-icon svg *{stroke:currentColor;}
  .bn-item .nav-icon svg [fill]:not([fill="none"]){fill:currentColor;}
  .bn-label{font-size:10.5px;font-weight:600;}
  .bn-item.active{color:var(--teal);}
  .bn-fab{
    position:relative;margin-top:-22px;
  }
  .bn-fab .nav-icon{
    width:46px;height:46px;background:var(--gold);border-radius:50%;
    display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(169,121,44,0.45);
    border:3px solid var(--paper-raised);
  }
  .bn-fab .nav-icon svg *{stroke:#fff !important;fill:#fff !important;}
  .bn-fab .bn-label{color:var(--gold);font-weight:700;}

  body.sidebar-open .bottom-nav{display:none;}

  .toast{bottom:calc(78px + env(safe-area-inset-bottom));}
  .toast.show{bottom:calc(86px + env(safe-area-inset-bottom));}
}

.container{max-width:1320px;margin:0 auto;padding:30px clamp(18px, 3vw, 44px) 60px;}
.panel{
  background:var(--paper-raised);border:1px solid var(--line);border-radius:14px;
  padding:22px;box-shadow:var(--shadow);margin-bottom:20px;
}
.panel-narrow{max-width:820px;}
.panel-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(360px,100%),1fr));gap:20px;align-items:start;}
.panel-grid .panel{margin-bottom:0;}
.info-card{
  background:rgba(31,75,76,0.035);border-style:dashed;border-color:var(--line-strong);
}
.info-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px;}
.info-row:last-child{border-bottom:none;}
.info-row .k{color:var(--ink-soft);font-weight:600;}
.info-row .v{color:var(--ink);font-weight:700;}
.preview-box{
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px;
  font-size:13px;color:var(--ink-soft);line-height:1.8;
}
.panel h2{
  font-family:'Markazi Text',serif;font-weight:700;font-size:24px;color:var(--teal-dark);
  margin:0 0 20px;display:flex;align-items:center;gap:11px;
}
.panel h2::before{
  content:"";width:5px;height:26px;border-radius:3px;flex-shrink:0;
  background:linear-gradient(180deg, var(--gold), var(--gold-light));
}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:560px){.grid-2{grid-template-columns:1fr;}}

.quick-dates{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px;}
.quick-dates button{
  border:1px solid var(--line-strong);background:#fff;border-radius:20px;padding:6px 13px;
  font-family:'Cairo',sans-serif;font-size:12.5px;font-weight:600;color:var(--teal);cursor:pointer;
}
.quick-dates button:hover{background:rgba(31,75,76,0.06);}
.quick-dates button.sel{background:var(--teal);color:#fff;border-color:var(--teal);}

.stat-pill{
  display:flex;flex-direction:column;gap:3px;
  background:var(--tone-tint);border:1px solid var(--line);
  padding:11px 16px;border-radius:12px;min-width:96px;
}
.stat-pill .num{font-family:'Markazi Text',serif;font-size:23px;font-weight:700;line-height:1;color:var(--tone-color);}
.stat-pill .lbl{font-size:11.5px;font-weight:600;color:var(--ink-soft);}
.stat-pill.total{--tone-color:var(--teal);--tone-tint:rgba(31,75,76,0.07);}
.stat-pill.pending{--tone-color:var(--gold);--tone-tint:rgba(169,121,44,0.08);}
.stat-pill.late{--tone-color:var(--danger);--tone-tint:rgba(139,58,58,0.08);}
.stat-pill.done{--tone-color:var(--ok);--tone-tint:rgba(63,107,79,0.08);}


.filter-row{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap;}
.filter-row select, .filter-row .csel-wrap{max-width:220px;min-width:140px;}
.day-group{margin-bottom:18px;}
.day-head{
  display:flex;align-items:center;gap:10px;margin-bottom:8px;
}
.day-head .d1{font-family:'Markazi Text',serif;font-weight:700;font-size:20px;color:var(--teal-dark);}
.day-head .d2{font-size:12px;color:var(--ink-soft);}
.day-head::after{content:"";flex:1;height:1px;background:var(--line);}

.task-row{
  display:flex;align-items:flex-start;gap:12px;padding:12px 14px;
  border:1px solid var(--line);border-right:4px solid var(--gold);
  border-radius:8px;background:#fff;margin-bottom:8px;
}
.task-row .num{
  font-family:'Markazi Text',serif;font-weight:700;color:var(--margin-red);font-size:15px;
  min-width:22px;text-align:center;padding-top:2px;
}
.task-body{flex:1;min-width:0;}
.task-body .t{font-weight:700;font-size:14.5px;color:var(--ink);}
.task-body .meta{font-size:12px;color:var(--ink-soft);margin-top:4px;display:flex;gap:10px;flex-wrap:wrap;}
.status-chip{font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;}
.status-planned{background:rgba(31,75,76,0.1);color:var(--teal);}
.status-progress{background:rgba(169,121,44,0.14);color:#8f651f;}
.status-postponed{background:rgba(28,43,51,0.08);color:var(--ink-soft);}
.status-done{background:rgba(63,107,79,0.14);color:var(--ok);}
.status-late{background:rgba(139,58,58,0.12);color:var(--danger);}
.task-actions{display:flex;gap:6px;flex-wrap:wrap;}
.stat-pill.postponed{--tone-color:var(--ink-soft);--tone-tint:rgba(28,43,51,0.06);}

.task-item .mc-edit-form,
.task-item .task-followup-box{display:flex;flex-direction:column;gap:8px;margin-top:6px;padding:10px 4px 2px;border-top:1px dashed var(--line-strong);}
.task-item .mc-edit-form input, .task-item .mc-edit-form select, .task-item .mc-edit-form .csel-trigger, .task-item .mc-edit-form textarea{
  border:1px solid var(--line-strong);border-radius:8px;padding:8px 10px;font-family:'Cairo',sans-serif;font-size:13px;background:#fff;color:var(--ink);width:100%;
}
.task-item .mc-edit-form select, .task-item .mc-edit-form .csel-trigger{padding:8px 10px 8px 30px;background-position:left 9px center;background-size:12px;}
.task-item .mc-edit-form textarea{resize:vertical;min-height:60px;}
.task-item .mc-edit-form .csel-wrap, .task-item .mc-edit-form .combo-wrap{width:100%;}
.task-followup-box{background:rgba(31,75,76,0.03);border-radius:10px;padding:10px 12px;}
.fu-title{font-size:12.5px;font-weight:700;color:var(--teal);margin-bottom:2px;}
.fu-history{display:flex;flex-direction:column;gap:6px;}
.followup-entry{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;padding:6px 0;border-bottom:1px dashed var(--line);}
.followup-entry:last-child{border-bottom:none;}
.followup-entry .fu-note{flex:1;min-width:120px;color:var(--ink);}
.followup-entry .fu-date{color:var(--ink-soft);font-size:11.5px;}
.empty-note{
  text-align:center;color:var(--ink-soft);font-size:13.5px;padding:38px 20px;
  background:rgba(31,75,76,0.03);border:1.5px dashed var(--line-strong);border-radius:14px;
}

/* ===== نافذة التأكيد والإدخال (بديل confirm/prompt) ===== */
.modal-overlay{
  position:fixed;inset:0;top:0;right:0;bottom:0;left:0;background:rgba(18,48,47,0.45);z-index:200;
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.modal-box{
  background:var(--paper-raised);border:1px solid var(--line);border-radius:14px;
  box-shadow:0 12px 40px rgba(18,48,47,0.25);
  padding:24px;width:100%;max-width:380px;
  animation:modalPop .15s ease-out;
}
@keyframes modalPop{from{transform:scale(.95);opacity:0;}to{transform:scale(1);opacity:1;}}
.modal-message{font-size:14.5px;color:var(--ink);line-height:1.7;margin-bottom:16px;white-space:pre-line;}
.modal-input-wrap{margin-bottom:16px;}
.modal-input-wrap input{
  width:100%;padding:11px 13px;border:1px solid var(--line-strong);border-radius:8px;
  font-family:'Cairo',sans-serif;font-size:15px;
}
.modal-input-wrap input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(31,75,76,0.12);}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;}
.modal-actions .btn{min-width:84px;}

/* ===== Log table ===== */
table.log{width:100%;border-collapse:collapse;font-size:13px;}
table.log th{
  text-align:right;padding:9px 10px;background:var(--teal);color:#fff;font-weight:700;
  position:sticky;top:0;
}
table.log td{padding:9px 10px;border-bottom:1px solid var(--line);}
table.log tr:nth-child(even){background:rgba(184,174,143,0.08);}

.members-list{display:flex;flex-direction:column;gap:8px;}
.member-item{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;
  padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;
}
.member-item .info .n{font-weight:700;font-size:14px;}
.member-item .info .r{font-size:12px;color:var(--ink-soft);}
/* حاوية نموذج التعديل (زي تعديل الخطابات الصادرة) لازم تاخد سطر كامل لوحدها
   بدل ما تتزنق جنب الأزرار في نفس صف الـflex */
.member-item .edit-holder{flex-basis:100%; width:100%;}

/* ===== Hero banners (dashboard = large, sub-pages = compact) ===== */
.dash-hero, .page-hero{
  position:relative;overflow:hidden;border-radius:20px;margin-bottom:24px;
  background:linear-gradient(135deg, var(--teal) 0%, var(--teal-dark) 100%);
  box-shadow:0 10px 30px rgba(18,48,47,0.26);
}
.dash-hero{padding:34px 36px;}
.page-hero{padding:26px 32px;}
.dash-hero-decor, .page-hero-decor{
  position:absolute;left:-38px;bottom:-46px;pointer-events:none;transform:rotate(-8deg);
}
.page-hero-decor{left:-30px;bottom:-36px;opacity:0.9;}
.dash-hero-decor .nav-icon svg, .page-hero-decor .nav-icon svg{width:100%;height:100%;display:block;}
.dash-hero-content, .page-hero-content{position:relative;max-width:680px;}
.dash-hero-eyebrow{
  display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.18);border-radius:20px;padding:6px 14px;
  font-size:12.5px;font-weight:600;color:var(--gold-light);margin-bottom:14px;
}
.dash-hero h1, .page-hero h1{
  font-family:'Markazi Text',serif;font-weight:700;line-height:1.2;color:#fff;
  margin:0 0 8px;display:flex;align-items:center;gap:12px;
}
.dash-hero h1{font-size:38px;}
.page-hero h1{font-size:28px;}
.hero-icon-badge{
  width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,0.14);
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
}
.dash-hero p, .page-hero p{
  font-size:14px;color:rgba(255,255,255,0.85);margin:0;line-height:1.7;max-width:580px;
}
.dash-hero p strong, .page-hero p strong{color:var(--gold-light);font-weight:800;}

.dash-section-title{
  font-size:13px;font-weight:700;color:var(--ink-soft);margin:26px 2px 12px;
}

/* ===== Dashboard stat cards ===== */
.stat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;}
@media (max-width:1100px){ .stat-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:560px){ .stat-grid{grid-template-columns:repeat(2,1fr);} }
.stat-card{
  position:relative;background:var(--paper-raised);border:1px solid var(--line);border-radius:16px;
  padding:18px 16px;box-shadow:var(--shadow);transition:transform .18s, box-shadow .18s;
}
.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(28,43,51,0.12);}
.stat-card-icon{
  width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  margin-bottom:12px;background:var(--tone-tint);color:var(--tone-color);
}
.stat-card-value{
  font-family:'Markazi Text',serif;font-weight:700;font-size:27px;line-height:1;
  color:var(--ink);margin-bottom:5px;
}
.stat-card-label{font-size:12px;color:var(--ink-soft);font-weight:600;}
.stat-card.tone-teal{--tone-color:var(--teal);--tone-tint:rgba(31,75,76,0.1);}
.stat-card.tone-ok{--tone-color:var(--ok);--tone-tint:rgba(63,107,79,0.12);}
.stat-card.tone-gold{--tone-color:var(--gold);--tone-tint:rgba(169,121,44,0.12);}
.stat-card.tone-danger{--tone-color:var(--danger);--tone-tint:rgba(139,58,58,0.12);}
.stat-card.tone-muted{--tone-color:var(--ink-soft);--tone-tint:rgba(74,90,97,0.1);}

/* ===== Top performer banner ===== */
.top-performer{
  display:flex;align-items:center;gap:16px;margin-top:14px;
  background:linear-gradient(90deg, rgba(169,121,44,0.10), rgba(169,121,44,0.03));
  border:1px solid rgba(169,121,44,0.28);border-radius:14px;padding:16px 20px;
}
.top-performer-icon{
  width:44px;height:44px;border-radius:12px;background:rgba(169,121,44,0.16);color:var(--gold);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.top-performer-text{flex:1;min-width:0;}
.top-performer-title{font-size:11.5px;font-weight:700;color:var(--gold);margin-bottom:3px;}
.top-performer-name{font-family:'Markazi Text',serif;font-weight:700;font-size:21px;color:var(--teal-dark);}
.top-performer-name span{font-family:'Cairo',sans-serif;font-weight:600;font-size:13px;color:var(--ink-soft);}

/* ===== Dashboard quick links ===== */
.dash-quicklinks{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(150px,100%),1fr));gap:14px;}
.dash-qlink{
  display:flex;align-items:center;gap:12px;
  background:var(--paper-raised);border:1px solid var(--line);border-radius:14px;padding:16px;
  text-align:right;cursor:pointer;transition:.15s;box-shadow:var(--shadow);
  font-family:'Cairo',sans-serif;width:100%;
}
.dash-qlink:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:0 8px 20px rgba(169,121,44,0.16);}
.dash-qlink .dq-icon{
  width:40px;height:40px;border-radius:11px;background:rgba(31,75,76,0.08);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.dash-qlink .dq-label{font-size:13.5px;font-weight:700;color:var(--teal-dark);}

/* ===== Settings sub-tabs ===== */
.subtabs{
  display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px;padding-bottom:16px;
  border-bottom:1px solid var(--line);
}
.subtab{
  padding:9px 16px;border:1px solid var(--line);background:#fff;border-radius:20px;
  font-family:'Cairo',sans-serif;font-weight:600;font-size:13px;color:var(--ink-soft);
  cursor:pointer;white-space:nowrap;transition:.15s;
}
.subtab.active{background:var(--teal);color:#fff;border-color:var(--teal);box-shadow:0 2px 8px rgba(31,75,76,0.25);}
.subtab:hover:not(.active){background:rgba(31,75,76,0.06);border-color:var(--line-strong);}

/* ===== Health check ===== */
.health-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(200px,1fr));gap:10px;}
.health-card{
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;
}
.health-card .hc-label{font-size:12px;color:var(--ink-soft);margin-bottom:4px;}
.health-card .hc-value{font-weight:700;font-size:15px;color:var(--ink);display:flex;align-items:center;gap:6px;}
.hc-dot{width:9px;height:9px;border-radius:50%;display:inline-block;}
.hc-dot.ok{background:var(--ok);}
.hc-dot.warn{background:var(--gold);}
.hc-dot.bad{background:var(--danger);}

.collapsible-header{
  display:flex;align-items:center;justify-content:space-between;cursor:pointer;
  user-select:none;
}
.collapsible-chevron{
  font-size:20px;font-weight:700;color:var(--gold);
  width:30px;height:30px;border-radius:50%;border:1px solid var(--line-strong);
  display:flex;align-items:center;justify-content:center;transition:transform .2s;
  flex-shrink:0;
}
.collapsible-chevron.open{transform:rotate(45deg);}


.member-cards-grid{
  display:grid;grid-template-columns:repeat(auto-fill, minmax(240px,1fr));gap:12px;
}
.member-card{
  background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;
  box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;position:relative;
}
.member-card.archived{opacity:0.6;background:repeating-linear-gradient(135deg,#fff,#fff 10px,rgba(184,174,143,0.08) 10px,rgba(184,174,143,0.08) 20px);}
.member-card .mc-name{font-family:'Markazi Text',serif;font-weight:700;font-size:19px;color:var(--teal-dark);}
.member-card .mc-meta{font-size:12.5px;color:var(--ink-soft);line-height:1.7;}
.member-card .mc-badge{
  position:absolute;top:12px;left:12px;font-size:10.5px;font-weight:700;
  background:var(--gold);color:#fff;padding:2px 9px;border-radius:20px;
}
.member-card .mc-actions{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap;}
.member-card .mc-edit-form, .member-item .mc-edit-form{display:flex;flex-direction:column;gap:8px;margin-top:6px;padding-top:10px;border-top:1px dashed var(--line-strong);}
.member-card .mc-edit-form input, .member-card .mc-edit-form select, .member-card .mc-edit-form .csel-trigger,
.member-item .mc-edit-form input, .member-item .mc-edit-form select, .member-item .mc-edit-form .csel-trigger, .member-item .mc-edit-form textarea{
  width:100%;padding:8px 10px;border:1px solid var(--line-strong);border-radius:7px;
  font-family:'Cairo',sans-serif;font-size:13.5px;
}
.member-card .mc-edit-form select, .member-card .mc-edit-form .csel-trigger{padding:8px 10px 8px 30px;background-position:left 9px center;background-size:12px;}
.member-item .mc-edit-form select, .member-item .mc-edit-form .csel-trigger{padding:8px 10px 8px 30px;background-position:left 9px center;background-size:12px;}
.member-item .mc-edit-form textarea{resize:vertical;min-height:90px;font-family:'Cairo',sans-serif;}
.mc-edit-form .csel-wrap, .mc-edit-form .combo-wrap{width:100%;}

/* ===== Progress bar (ranking) ===== */
.rank-row{
  display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);
  border-radius:10px;background:#fff;margin-bottom:9px;
}
.rank-row.top1{border-color:var(--gold);box-shadow:0 0 0 2px rgba(169,121,44,0.18);}
.rank-num{
  font-family:'Markazi Text',serif;font-weight:700;font-size:20px;color:var(--teal);
  min-width:28px;text-align:center;
}
.rank-row.top1 .rank-num{color:var(--gold);}
.rank-body{flex:1;min-width:0;}
.rank-name{font-weight:700;font-size:14.5px;color:var(--ink);display:flex;align-items:center;gap:6px;}
.rank-sub{font-size:11.5px;color:var(--ink-soft);margin-bottom:6px;}
.progress-track{width:100%;height:9px;background:var(--paper);border:1px solid var(--line);border-radius:6px;overflow:hidden;}
.progress-fill{height:100%;background:linear-gradient(90deg, var(--teal), var(--gold));border-radius:6px 0 0 6px;transition:width .4s;}
.rank-count{font-family:'Markazi Text',serif;font-weight:700;font-size:17px;color:var(--teal-dark);min-width:38px;text-align:center;}

.toast{
  position:fixed;bottom:22px;left:50%;transform:translateX(-50%);
  background:var(--teal-dark);color:#fff;padding:12px 22px;border-radius:30px;
  font-size:13.5px;font-weight:600;box-shadow:var(--shadow);z-index:100;
  display:flex;align-items:center;gap:9px;opacity:0;pointer-events:none;transition:.25s;
}
.toast.show{opacity:1;bottom:30px;}
.toast .stamp-mini{
  width:20px;height:20px;border-radius:50%;border:2px solid var(--gold-light);
  display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--gold-light);
}

/* إتاحة (WCAG 1.4.4): أُزيل منع تكبير الصفحة (maximum-scale=1) ليتمكّن ضعاف البصر من التكبير.
   ولتفادي التكبير التلقائي المزعج في iOS عند التركيز على أي حقل، تُضبط الحقول على 16px في الشاشات الصغيرة */
@media (max-width: 900px){
  input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
  select, textarea, .csel-trigger{ font-size:16px !important; }
}

