/* =========================================================
   دوحة المداد — components.css
   الأزرار، البطاقات، النوافذ المنبثقة، الرأس والتذييل
   ========================================================= */
.btn.is-saving{ pointer-events:none; opacity:.68; cursor:wait; }
.btn.is-saving::after{
  content:"";
  width:30px; height:14px; display:inline-block;
  background:
    radial-gradient(circle,currentColor 0 3px,transparent 3.5px) 1px 7px/8px 8px no-repeat,
    radial-gradient(circle,currentColor 0 3px,transparent 3.5px) 11px 7px/8px 8px no-repeat,
    radial-gradient(circle,currentColor 0 3px,transparent 3.5px) 21px 7px/8px 8px no-repeat;
  animation:loading-wave 1.05s ease-in-out infinite;
}
@keyframes loading-wave{
  0%,100%{ background-position:1px 7px,11px 7px,21px 7px; }
  16%{ background-position:1px 1px,11px 7px,21px 7px; }
  33%{ background-position:1px 4px,11px 1px,21px 7px; }
  50%{ background-position:1px 7px,11px 4px,21px 1px; }
  66%{ background-position:1px 7px,11px 7px,21px 4px; }
}

/* ---------- الرأس / شريط التنقل ---------- */
#app-header{ min-height:var(--header-h); }
.site-header{
  position:sticky; top:0; z-index:500;
  height:var(--header-h);
  display:flex; align-items:center;
  background:var(--ink-900);
  border-bottom:1px solid var(--ink-700);
}
.site-header__inner{
  width:100%; max-width:var(--container); margin:0 auto; padding:0 20px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.brand{
  display:flex; align-items:center; gap:10px;
  font-family:"Amiri", "Noto Naskh Arabic", serif; font-weight:700; font-size:1.62rem; color:#6B4226 !important;
  background:none !important; -webkit-text-fill-color:#6B4226; text-shadow:none;
}
.brand__mark{ width:34px; height:auto; display:block; }
.brand:hover{ color:#4A2D1B !important; -webkit-text-fill-color:#4A2D1B; }

.site-nav{ display:flex; align-items:center; gap:2px; }
.site-nav a{
  display:flex; align-items:center; gap:7px;
  color:var(--paper-dim); font-size:.92rem; padding:8px 12px;
  border-radius:var(--radius-sm); transition:background .15s, color .15s;
  white-space:nowrap;
}
.site-nav a .icon{ flex-shrink:0; }
.site-nav a:hover{ background:var(--ink-700); color:var(--paper); }
.site-nav a.is-active{ color:var(--gold); background:var(--ink-700); }
.site-nav a.site-nav__profile-link{
  margin-inline-start:8px; padding-inline-start:14px;
  border-inline-start:1px solid var(--ink-700);
}

.header-actions{ display:flex; align-items:center; gap:10px; }

.icon-btn{
  position:relative;
  width:38px; height:38px; border-radius:50%;
  border:1px solid var(--ink-600); background:var(--ink-800); color:var(--paper);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:border-color .15s, transform .15s;
}
.icon-btn:hover{ border-color:var(--gold); transform:translateY(-1px); }
.icon-btn__dot{
  position:absolute; top:-2px; left:-2px;
  width:9px; height:9px; border-radius:50%;
  background:var(--ember); border:2px solid var(--ink-900);
}

.header-profile{ display:flex; align-items:center; gap:8px; cursor:pointer; }
.avatar{
  width:36px; height:36px; border-radius:50%;
  background:linear-gradient(145deg, var(--gold), var(--ember));
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; color:var(--ink-950);
  flex-shrink:0; overflow:hidden;
  font-size:.95rem;
}
.avatar img{ width:100%; height:100%; object-fit:cover; transform-origin:center; transition:transform .18s ease; }
.avatar--lg{ width:76px; height:76px; font-size:1.6rem; }
.avatar--sm{ width:26px; height:26px; font-size:.72rem; }

.avatar-edit-upload{ position:relative; display:inline-block; cursor:pointer; }
.avatar-edit-upload__badge{
  position:absolute; bottom:0; left:0; width:26px; height:26px; border-radius:50%;
  background:var(--gold); color:#fff; display:flex; align-items:center; justify-content:center;
  border:2px solid var(--ink-800);
}

.icon{ display:inline-block; vertical-align:middle; }

/* -- عند الشاشات الأضيق: صف أيقونات مباشرة بلا نص وبلا زر تبديل -- */
@media (max-width:960px){
  .site-header__inner{ gap:8px; }
  .site-nav{ gap:0; }
  .site-nav a{ padding:9px; }
  .site-nav a span{ display:none; }
  .site-nav a.site-nav__profile-link{ margin-inline-start:4px; padding-inline-start:9px; }
}
@media (max-width:560px){
  .site-nav{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
}


/* ---------- التذييل ---------- */
.site-footer--slim{
  border-top:1px solid var(--ink-700);
  padding:16px 0;
  color:var(--paper-faint);
}
.site-footer__row{
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  font-size:.8rem;
}
.brand--sm{ font-size:1rem; font-weight:700; }

/* ---------- الأزرار ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:11px 22px; border-radius:999px; border:1px solid transparent;
  font-size:.94rem; font-weight:700; cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
  line-height:1;
}
.btn:active{ transform:translateY(1px); }
.btn-primary{ background:var(--gold); color:var(--ink-950); }
.btn-primary:hover{ box-shadow:0 8px 24px rgba(200,155,60,.35); }
.btn-outline{ background:transparent; border-color:var(--ink-600); color:var(--paper); }
.btn-outline:hover{ border-color:var(--gold); color:var(--gold); }
.btn-ghost{ background:transparent; color:var(--paper-dim); padding:11px 14px; }
.btn-ghost:hover{ color:var(--paper); }
.btn-danger{ background:transparent; border-color:var(--wine); color:var(--wine); }
.btn-danger:hover{ background:var(--wine); color:var(--paper); }
.btn-sm{ padding:7px 15px; font-size:.82rem; }
.btn-block{ width:100%; }
.btn[disabled]{ opacity:.5; cursor:not-allowed; }

/* ---------- البطاقات ---------- */
.card{
  background:var(--ink-800);
  border:1px solid var(--ink-700);
  border-radius:var(--radius-lg);
  padding:22px;
  transition:border-color .2s ease, transform .2s ease;
}
.card--hover:hover{ border-color:var(--gold-soft); transform:translateY(-3px); }
.card--flat{ background:transparent; border:1px dashed var(--ink-600); }

.grid{ display:grid; gap:20px; }
.grid-3{ grid-template-columns:repeat(3, 1fr); }
.grid-2{ grid-template-columns:repeat(2, 1fr); }
.grid-4{ grid-template-columns:repeat(4, 1fr); }
@media (max-width:960px){ .grid-3,.grid-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .grid-2,.grid-3,.grid-4{ grid-template-columns:1fr; } }

.badge-pill{
  display:inline-flex; align-items:center; gap:6px;
  background:var(--ink-700); color:var(--paper-dim);
  font-size:.76rem; padding:4px 11px; border-radius:999px;
  border:1px solid var(--ink-600);
}
.badge-pill--gold{ color:var(--gold); border-color:var(--gold-soft); }
.badge-pill--ember{ color:var(--ember); border-color:var(--ember-soft); }
.badge-pill--sage{ color:var(--sage); border-color:var(--sage); }

/* ---------- بطاقة الوسام ---------- */
.badge-card{
  text-align:center; padding:20px 14px; cursor:pointer;
  position:relative;
}
.badge-card__icon{
  width:64px; height:64px; margin:0 auto 12px;
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:radial-gradient(circle, rgba(201,138,46,.16), transparent 70%);
  border:1px solid var(--gold-soft);
  color:var(--gold);
}
.badge-card.is-unlocked .badge-card__icon{
  background:linear-gradient(150deg, #FCEAC0, #E9BE68 55%, #C98A2E);
  border-color:#E9BE68;
  color:#5B3E0F;
  box-shadow:0 4px 14px rgba(201,138,46,.35), inset 0 1px 0 rgba(255,255,255,.6);
  position:relative;
}
.badge-card.is-unlocked .badge-card__icon::before{
  content:"";
  position:absolute; inset:-6px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(233,190,104,.45), transparent 70%);
  animation:none;
  pointer-events:none;
}
@keyframes badge-sparkle{
  0%,100%{ opacity:.5; transform:scale(1); }
  50%{ opacity:1; transform:scale(1.12); }
}
.badge-card.is-locked .badge-card__icon{ color:var(--paper-faint); border-color:var(--ink-600); background:var(--ink-700); }
.badge-card.is-locked{ opacity:.68; }
.badge-card__name{ font-family:var(--font-display); font-size:1.02rem; margin-bottom:4px; }
.badge-card__desc{ font-size:.8rem; color:var(--paper-faint); }
.badge-detail-preview{ width:126px; height:126px; margin:8px auto 22px; border-radius:50%; display:grid; place-items:center; color:var(--badge-color); border:5px double var(--badge-color); background:color-mix(in srgb,var(--badge-color) 18%,#fff); box-shadow:0 0 0 4px color-mix(in srgb,var(--badge-color) 35%,#fff),0 0 0 7px var(--badge-color),0 8px 25px rgba(74,53,36,.2); }
.badge-detail-preview > div{ width:92px; height:92px; border-radius:50%; display:grid; place-items:center; overflow:hidden; }
.badge-detail-preview img{ width:100%; height:100%; object-fit:cover; }

/* ---------- النوافذ المنبثقة (Modals) ---------- */
.modal-overlay{
  position:fixed; inset:0; z-index:1000;
  background:rgba(74,53,36,.45);
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  animation:fade-in .18s ease;
}
@keyframes fade-in{ from{ opacity:0; } to{ opacity:1; } }
.modal-box{
  width:100%; max-width:520px;
  background:var(--ink-800);
  border:1px solid var(--ink-600);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-2);
  padding:26px;
  max-height:88vh; overflow-y:auto;
  animation:modal-in .22s ease;
}
@keyframes modal-in{
  from{ opacity:0; transform:translateY(14px) scale(.98); }
  to{ opacity:1; transform:translateY(0) scale(1); }
}
.modal-box__head{
  display:flex; align-items:flex-start; justify-content:space-between; gap:10px;
  margin-bottom:14px;
}
.modal-close{
  background:none; border:0; color:var(--paper-faint); font-size:1.3rem; cursor:pointer;
  line-height:1; padding:4px;
}
.modal-close:hover{ color:var(--paper); }

/* ---------- عناصر النماذج ---------- */
.field{ margin-bottom:16px; }
.field label{ display:block; font-size:.85rem; color:var(--paper-dim); margin-bottom:6px; }
.field input,.field textarea,.field select{
  width:100%; background:var(--ink-900); border:1px solid var(--ink-600);
  color:var(--paper); border-radius:var(--radius-sm); padding:10px 12px;
  font-family:inherit; font-size:.94rem;
}
.field textarea{ resize:vertical; min-height:100px; }
.field input:focus,.field textarea:focus,.field select:focus{ border-color:var(--gold); }

/* ---------- محرر قص الصور ---------- */
.crop-editor{ position:fixed; inset:0; z-index:1200; display:grid; place-items:center; padding:18px; background:rgba(45,32,23,.72); }
.crop-editor__panel{ width:min(720px,96vw); max-height:94vh; overflow:auto; background:var(--ink-800); border:1px solid var(--ink-600); border-radius:var(--radius-lg); padding:18px; box-shadow:var(--shadow-2); }
.crop-editor__head,.crop-editor__actions{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.crop-editor__head button{ border:0; background:none; color:var(--paper); font-size:1.6rem; cursor:pointer; }
.crop-editor__templates{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:10px 0 14px; }
.crop-editor__templates button{ padding:9px 6px; border:1px solid var(--ink-600); border-radius:999px; background:var(--ink-900); color:var(--paper-dim); cursor:pointer; }
.crop-editor__templates button.is-active{ background:var(--gold); border-color:var(--gold); color:#fff; font-weight:700; }
.crop-editor__frame{ position:relative; margin:12px 0 16px; overflow:hidden; border:3px solid #fff; border-radius:10px; box-shadow:0 0 0 1px var(--gold-soft); background:#ddd; }
.crop-editor__frame::before,.crop-editor__frame::after{ content:""; position:absolute; inset:10px; pointer-events:none; border:1px dashed rgba(255,255,255,.72); }
.crop-editor__frame canvas{ width:100%; height:auto; display:block; }
.crop-editor__frame canvas{ touch-action:none; cursor:grab; user-select:none; -webkit-user-select:none; }
.crop-editor__frame canvas:active{ cursor:grabbing; }
.crop-editor__gesture-hint{ margin:-5px 0 15px; text-align:center; color:var(--paper-dim); font-size:.84rem; }
.crop-editor__actions{ justify-content:flex-end; }
@media (max-width:520px){ .crop-editor__templates{ grid-template-columns:repeat(2,1fr); } }
.field-hint{ font-size:.76rem; color:var(--paper-faint); margin-top:4px; }

/* ---------- التنبيهات (Toast) ---------- */
.toast-root{
  position:fixed; bottom:20px; left:50%; transform:translateX(-50%);
  z-index:2000; display:flex; flex-direction:column; gap:8px; align-items:center;
  pointer-events:none;
}
.toast{
  background:var(--ink-800); border:1px solid var(--gold-soft); color:var(--paper);
  padding:11px 20px; border-radius:999px; font-size:.88rem;
  box-shadow:var(--shadow-1);
  animation:toast-in .25s ease;
}
@keyframes toast-in{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:translateY(0); } }

/* ---------- شريط تقدّم ---------- */
.progress{ height:8px; border-radius:999px; background:var(--ink-700); overflow:hidden; }
.progress__bar{ height:100%; background:linear-gradient(90deg, var(--ember), var(--gold)); border-radius:999px; transition:width .4s ease; }

/* ---------- تبويبات ---------- */
.tabs{ display:flex; gap:6px; border-bottom:1px solid var(--ink-700); margin-bottom:22px; overflow-x:auto; }
.tabs button{
  background:none; border:0; color:var(--paper-faint); padding:10px 16px;
  cursor:pointer; font-size:.92rem; border-bottom:2px solid transparent; white-space:nowrap;
}
.tabs button.is-active{ color:var(--gold); border-color:var(--gold); }

/* ---------- حالة فارغة ---------- */
.empty-state{ text-align:center; padding:50px 20px; color:var(--paper-faint); }
.empty-state__icon{ font-size:2.2rem; margin-bottom:10px; }
