/* ===== رتِّل — تنسيقات عامة ===== */
:root{
  --green-900:#0b3d2e;
  --green-800:#0f4d3a;
  --green-700:#156a4f;
  --green-600:#1b8563;
  --green-100:#e3f2ec;
  --gold:#c9a227;
  --gold-light:#f3e6bd;
  --ink:#1d2b26;
  --ink-soft:#5a6b64;
  --bg:#f4f7f5;
  --card:#ffffff;
  --line:#e2e9e5;
  --red:#c0392b;
  --amber:#b9770e;
  --radius:16px;
  --shadow:0 4px 18px rgba(11,61,46,.08);
  --font-ui:'Tajawal', system-ui, sans-serif;
  --font-quran:'Amiri Quran','Traditional Arabic', serif;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-ui);
  background:var(--bg);
  color:var(--ink);
  min-height:100vh;
  min-height:100dvh;
  line-height:1.7;
  overscroll-behavior-y:contain;
}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;-webkit-touch-callout:none;user-select:none}
.hidden{display:none !important}

/* ===== الشاشات ===== */
.screen{display:none;min-height:100vh;min-height:100dvh}
.screen.active{display:block}
#app-shell #main{padding-bottom:84px;max-width:760px;margin:0 auto}
#app-shell .screen{min-height:auto;padding:calc(20px + env(safe-area-inset-top)) 16px 8px}

/* ===== التحميل والإعداد ===== */
#screen-loading,#screen-onboarding,#screen-cloudauth{
  display:none;align-items:center;justify-content:center;
  background:linear-gradient(160deg,var(--green-900),var(--green-700));
  color:#fff;text-align:center;
  padding:calc(24px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));
}
#screen-loading.active,#screen-onboarding.active,#screen-cloudauth.active{display:flex}
.loading-box,.onboard-box{max-width:460px;width:100%}
.loading-box{animation:fadeUp .6s ease-out}
.logo-ring{
  width:96px;height:96px;margin:0 auto 14px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle,rgba(243,230,189,.16),transparent 70%);
  border:1px solid rgba(243,230,189,.3);animation:glow 2.6s ease-in-out infinite;
}
.logo-mark{font-family:var(--font-quran);font-size:2.6rem;color:var(--gold-light);margin-bottom:0}
.app-name{font-size:2.4rem;font-weight:800;letter-spacing:.5px;animation:fadeUp .6s ease-out .1s backwards}
.app-tag{color:var(--gold-light);margin-bottom:28px;animation:fadeUp .6s ease-out .2s backwards}
.progress-track{height:8px;background:rgba(255,255,255,.18);border-radius:99px;overflow:hidden}
.progress-fill{height:100%;width:5%;background:var(--gold);border-radius:99px;transition:width .3s}
.load-msg{margin-top:12px;font-size:.95rem;color:#d9e8e1}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes glow{0%,100%{box-shadow:0 0 0 0 rgba(243,230,189,.18)}50%{box-shadow:0 0 0 14px rgba(243,230,189,0)}}
.load-error{margin-top:20px;background:rgba(0,0,0,.25);padding:16px;border-radius:var(--radius)}
.load-error p{margin-bottom:12px}

.onboard-lead{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:var(--radius);padding:14px 16px;margin-bottom:26px}
.onboard-lead b{color:var(--gold-light)}
.onboard-q{font-size:1.15rem;margin-bottom:16px}
.path-cards{display:grid;gap:14px}
.path-card{
  background:#fff;color:var(--ink);border-radius:var(--radius);
  padding:18px;text-align:right;display:grid;gap:4px;
  box-shadow:var(--shadow);transition:transform .15s;
}
.path-card:hover{transform:translateY(-2px)}
.path-card:active{transform:scale(.98)}
.path-card,.quick-card,.juz-card,.pg-card,.opt,.tool-btn,.nav-btn,.seg-btn,.back-btn,.stat-card,.rev-item{
  -webkit-touch-callout:none;user-select:none;
}
.path-icon{font-size:1.6rem}
.path-title{font-weight:800;font-size:1.15rem;color:var(--green-800)}
.path-desc{color:var(--ink-soft);font-size:.9rem}

/* ===== مكونات عامة ===== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 22px;border-radius:12px;font-weight:700;font-size:1rem;
  transition:filter .15s, transform .1s;
}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--green-700);color:#fff}
.btn-primary:hover{filter:brightness(1.1)}
.btn-gold{background:var(--gold);color:#3d2f00}
.btn-ghost{background:var(--green-100);color:var(--green-800)}
.btn-danger{background:#fdecea;color:var(--red)}
.btn-block{width:100%}
.btn:disabled{opacity:.45;cursor:not-allowed}

.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:14px}
.page-title{font-size:1.35rem;font-weight:800;color:var(--green-900);margin-bottom:4px}
.page-sub{color:var(--ink-soft);font-size:.92rem;margin-bottom:16px}
.section-title{font-weight:800;color:var(--green-800);margin:18px 0 10px;font-size:1.05rem}

.topbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.back-btn{
  width:40px;height:40px;border-radius:12px;background:var(--card);
  box-shadow:var(--shadow);font-size:1.2rem;flex:none;transition:transform .1s;
}
.back-btn:active{transform:scale(.92)}
.topbar .page-title{margin:0}

/* ===== الرئيسية ===== */
.hero{
  background:linear-gradient(150deg,var(--green-900),var(--green-700));
  color:#fff;border-radius:20px;padding:22px;margin-bottom:16px;
  position:relative;overflow:hidden;
}
.hero::after{
  content:'۞';position:absolute;left:-10px;bottom:-30px;font-size:9rem;
  color:rgba(255,255,255,.06);font-family:var(--font-quran);
}
.hero-greet{color:var(--gold-light);font-size:.9rem}
.hero-title{font-size:1.4rem;font-weight:800;margin:2px 0 8px}
.level-pill{
  display:inline-block;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);
  color:var(--gold-light);font-size:.78rem;font-weight:700;padding:4px 12px;border-radius:99px;margin-bottom:12px;
}
.hero-stats{display:flex;gap:18px;flex-wrap:wrap}
.hstat{display:grid}
.hstat b{font-size:1.4rem;color:var(--gold-light)}
.hstat span{font-size:.8rem;color:#cfe3da}

.ring-wrap{display:flex;align-items:center;gap:16px}
.ring{position:relative;width:92px;height:92px;flex:none}
.ring svg{transform:rotate(-90deg)}
.ring-val{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-weight:800;color:var(--green-800);font-size:1.05rem;
}
.action-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.quick-card{
  border-radius:var(--radius);padding:16px;text-align:right;display:grid;gap:2px;
  box-shadow:var(--shadow);transition:transform .1s;
}
.quick-card:active{transform:scale(.97)}
.quick-card .q-ic{font-size:1.5rem}
.quick-card .q-t{font-weight:800}
.quick-card .q-d{font-size:.82rem;opacity:.85}
.qc-green{background:var(--green-700);color:#fff}
.qc-light{background:var(--card);color:var(--green-900)}

/* ===== خريطة الأجزاء ===== */
.juz-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.juz-card{
  background:var(--card);border-radius:var(--radius);padding:14px;text-align:right;
  box-shadow:var(--shadow);display:grid;gap:6px;position:relative;
  border:2px solid transparent;transition:transform .1s;
}
.juz-card:active{transform:scale(.97)}
.juz-card.current{border-color:var(--gold)}
.juz-card.locked{opacity:.55;filter:grayscale(.4)}
.juz-num{font-weight:800;color:var(--green-800)}
.juz-state{font-size:.8rem;color:var(--ink-soft)}
.juz-mini-track{height:6px;background:var(--line);border-radius:99px;overflow:hidden}
.juz-mini-fill{height:100%;background:var(--green-600);border-radius:99px}
.juz-lock{position:absolute;top:10px;left:12px;font-size:1rem}
.juz-done{position:absolute;top:10px;left:12px;color:var(--green-600);font-weight:800}

/* ===== صفحات الجزء ===== */
.pages-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.pg-card{
  background:var(--card);border-radius:14px;padding:12px;text-align:center;
  box-shadow:var(--shadow);display:grid;gap:4px;border:2px solid transparent;
  transition:transform .1s;
}
.pg-card:active{transform:scale(.96)}
.pg-card small{color:var(--ink-soft);font-size:.75rem}
.pg-card b{color:var(--green-900)}
.pg-new{border-color:transparent}
.pg-learning{border-color:var(--amber)}
.pg-memorized{border-color:var(--green-600);background:var(--green-100)}
.pg-status{font-size:.78rem;font-weight:700}
.pg-new .pg-status{color:var(--ink-soft)}
.pg-learning .pg-status{color:var(--amber)}
.pg-memorized .pg-status{color:var(--green-700)}
.juz-exam-cta{margin-top:16px}

/* ===== شاشة الحفظ ===== */
.mushaf{
  background:#fffdf5;border:1px solid #efe8cf;border-radius:var(--radius);
  padding:22px 18px;box-shadow:var(--shadow);
  font-family:var(--font-quran);font-size:1.55rem;line-height:2.5;
  text-align:justify;color:#22301f;
}
.mushaf .surah-head{
  display:block;text-align:center;font-family:var(--font-ui);font-weight:800;
  color:var(--green-800);background:var(--green-100);border-radius:10px;
  padding:6px 4px;margin:14px 0 8px;font-size:1rem;line-height:1.8;
}
.mushaf .basmala{display:block;text-align:center;font-size:1.5rem;margin-bottom:6px;color:var(--green-900)}
.ayah-num{
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--gold);font-size:1.1rem;margin:0 4px;font-family:var(--font-ui);font-weight:700;
}
.w{transition:background .15s;border-radius:6px;padding:0 1px}
.w.hiddenw{background:#dcd4b8;color:transparent;cursor:pointer;user-select:none;text-shadow:none}
.w.hiddenw:hover{background:#cfc49e}
.w.hiddenw .tw{color:transparent!important}
.tw-legend{display:flex;flex-wrap:wrap;gap:8px 14px;padding:12px 14px;font-family:var(--font-ui);font-size:.78rem;color:var(--ink-soft)}
.tw-legend-item{display:inline-flex;align-items:center;gap:5px}
.tw-dot{width:11px;height:11px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
.ayah-trans{
  display:block;text-align:left;font-family:var(--font-ui);font-size:.82rem;
  line-height:1.6;color:var(--ink-soft);background:var(--green-100);
  border-radius:8px;padding:6px 10px;margin:4px 0 12px;
}
.study-tools{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.tool-btn{
  padding:9px 14px;border-radius:99px;background:var(--card);box-shadow:var(--shadow);
  font-weight:700;font-size:.88rem;color:var(--green-800);transition:transform .1s;
}
.tool-btn.on{background:var(--green-700);color:#fff}
.tool-btn:active{transform:scale(.95)}
.audio-bar{display:flex;align-items:center;gap:10px;margin-top:10px}

/* ===== الامتحان ===== */
.exam-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.exam-count{font-weight:800;color:var(--green-800)}
.exam-track{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin-bottom:18px}
.exam-fill{height:100%;background:var(--gold);transition:width .3s}
.q-text{font-family:var(--font-quran);font-size:1.35rem;line-height:2.3;background:#fffdf5;border:1px solid #efe8cf;border-radius:var(--radius);padding:16px;margin-bottom:8px}
.q-label{font-weight:800;color:var(--green-800);margin-bottom:8px}
.q-blank{color:var(--gold);font-weight:700;letter-spacing:2px}
.opts{display:grid;gap:10px;margin-top:14px}
.opt{
  background:var(--card);border:2px solid var(--line);border-radius:14px;
  padding:12px 14px;text-align:right;font-family:var(--font-quran);font-size:1.15rem;
  line-height:2;transition:border-color .15s,transform .1s;
}
.opt:hover{border-color:var(--green-600)}
.opt:active{transform:scale(.98)}
.opt.correct{border-color:var(--green-600);background:var(--green-100)}
.opt.wrong{border-color:var(--red);background:#fdecea}
.opt:disabled{cursor:default}

.result-box{text-align:center;padding:28px 18px}
.result-emoji{font-size:3rem}
.result-score{font-size:2.6rem;font-weight:800;margin:6px 0}
.result-grade{font-size:1.2rem;font-weight:800;margin-bottom:6px}
.grade-pass .result-score,.grade-pass .result-grade{color:var(--green-700)}
.grade-fail .result-score,.grade-fail .result-grade{color:var(--red)}
.result-note{color:var(--ink-soft);margin-bottom:20px}
.result-actions{display:grid;gap:10px;max-width:320px;margin:0 auto}

/* ===== المراجعة ===== */
.rev-item{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rev-info b{color:var(--green-900)}
.rev-info small{display:block;color:var(--ink-soft)}
.rev-due{color:var(--red);font-weight:700;font-size:.82rem}
.empty-state{text-align:center;padding:40px 16px;color:var(--ink-soft)}
.empty-state .e-ic{font-size:3rem;margin-bottom:8px}

/* ===== الإحصائيات ===== */
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.stat-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;text-align:center}
.stat-card b{display:block;font-size:1.7rem;color:var(--green-800)}
.stat-card span{color:var(--ink-soft);font-size:.85rem}
.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:.85rem}
.bar-row .bl{width:64px;flex:none;color:var(--ink-soft)}
.bar-track{flex:1;height:10px;background:var(--line);border-radius:99px;overflow:hidden}
.bar-fill{height:100%;background:var(--green-600);border-radius:99px}

/* ===== التنقل السفلي ===== */
#bottom-nav{
  position:fixed;bottom:0;right:0;left:0;background:var(--card);
  display:flex;justify-content:space-around;padding:8px 4px calc(8px + env(safe-area-inset-bottom));
  box-shadow:0 -4px 18px rgba(11,61,46,.1);z-index:50;
}
.nav-btn{
  display:grid;justify-items:center;gap:2px;font-size:.75rem;color:var(--ink-soft);
  padding:4px 14px;border-radius:12px;position:relative;font-weight:700;
  transition:transform .1s;
}
.nav-btn.on{color:var(--green-700);background:var(--green-100)}
.nav-btn:active{transform:scale(.92)}
.nav-ic{font-size:1.25rem}
.badge{
  position:absolute;top:0;left:6px;background:var(--red);color:#fff;
  font-size:.68rem;min-width:18px;height:18px;border-radius:99px;
  display:flex;align-items:center;justify-content:center;padding:0 4px;
}

/* ===== إشعارات ===== */
.toast{
  position:fixed;bottom:calc(96px + env(safe-area-inset-bottom));right:50%;transform:translateX(50%);
  background:var(--ink);color:#fff;padding:10px 20px;border-radius:99px;
  font-size:.9rem;z-index:99;box-shadow:var(--shadow);white-space:nowrap;
  max-width:92vw;overflow:hidden;text-overflow:ellipsis;
}

/* ===== تسجيل الدخول ===== */
.login-new{margin-top:18px;display:grid;gap:10px}
.login-new input{
  width:100%;padding:14px 16px;border-radius:14px;border:none;
  font-family:var(--font-ui);font-size:1.05rem;text-align:center;
  background:rgba(255,255,255,.95);color:var(--ink);outline:none;
}
.login-new input:focus{box-shadow:0 0 0 3px var(--gold)}
.user-card{cursor:pointer}
.user-row{display:flex;align-items:center;gap:12px}
.user-avatar{font-size:1.8rem}
.user-meta{display:grid;text-align:right;flex:1}
.user-del{font-size:1.05rem;opacity:.55;padding:6px}
.user-del:hover{opacity:1}

/* ===== التسميع الصوتي ===== */
.recite-bar{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:var(--green-900);color:#fff;border-radius:14px;
  padding:10px 14px;margin-bottom:10px;font-size:.9rem;
  animation:pulse 2s infinite;
}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(21,106,79,.45)}50%{box-shadow:0 0 0 8px rgba(21,106,79,0)}}
.w.mic-hit{background:var(--green-100);color:#14532d}
.w.mic-miss{background:#fdecea;color:var(--red)}
.mic-save-row{
  display:inline-flex;align-items:center;gap:8px;font-size:.9rem;color:var(--ink-soft);
  cursor:pointer;user-select:none;
}
.mic-save-row input{width:18px;height:18px;accent-color:var(--green-600);cursor:pointer}
.mistake-box{text-align:right;margin-top:10px}
.mistake-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.mistake-chip{
  background:#fdecea;color:var(--red);border-radius:8px;padding:4px 10px;
  font-family:var(--font-quran);font-size:1rem;
}

/* ===== التحفيز: الأوسمة ===== */
.badges-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.badge-item{
  display:grid;justify-items:center;gap:2px;background:var(--gold-light);
  border-radius:12px;padding:8px 12px;min-width:52px;
}
.badge-medal{font-size:1.4rem}
.badge-n{font-weight:800;color:#6b5406;font-size:.8rem}

/* ===== مبدّل لغة الواجهة ===== */
#lang-switch{
  position:fixed;top:calc(10px + env(safe-area-inset-top));left:10px;z-index:200;
  padding:6px 10px;border-radius:99px;border:1px solid rgba(255,255,255,.35);
  background:rgba(0,0,0,.25);color:#fff;font-family:var(--font-ui);font-weight:700;
  font-size:.8rem;cursor:pointer;backdrop-filter:blur(4px);
}
#lang-switch.on-light{
  background:var(--card);color:var(--green-800);border-color:var(--line);box-shadow:var(--shadow);
}

/* ===== اختيار القارئ ===== */
.reciter-sel{
  padding:9px 14px;border-radius:99px;border:none;background:var(--card);
  box-shadow:var(--shadow);font-family:var(--font-ui);font-weight:700;
  font-size:.88rem;color:var(--green-800);cursor:pointer;max-width:100%;
}
.set-row .reciter-sel{border-radius:12px;background:var(--green-100);box-shadow:none}

/* ===== الإعدادات ===== */
.set-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 0;border-bottom:1px solid var(--line);
}
.set-row:last-child{border-bottom:none}
.seg{display:flex;background:var(--green-100);border-radius:12px;padding:3px}
.seg-btn{
  padding:7px 18px;border-radius:10px;font-weight:800;color:var(--green-800);
  font-size:.95rem;
}
.seg-btn.on{background:var(--green-700);color:#fff}

@media (max-width:420px){
  .mushaf{font-size:1.35rem;line-height:2.4}
  .action-row{grid-template-columns:1fr}
}
