:root{
	--bg:#f6f4ee; --panel:#ffffff; --panel2:#f0ede4; --text:#1c2a24; --muted:#5b6b63; --accent:#0f6b4f; --accent-strong:#0b4f3a; --gold:#b8894a; --border:#e4dfd1; --red:#c0392b; --shadow:0 24px 60px #0f6b4f1a;
}
@media (prefers-color-scheme:dark){
	:root:not([data-theme="light"]){ --bg:#0f1512; --panel:#161f1a; --panel2:#1c2620; --text:#eef3ef; --muted:#9fb0a7; --accent:#3ea883; --accent-strong:#57c79c; --gold:#d9ae6f; --border:#25332c; --red:#f0716b; --shadow:0 24px 60px #0007; }
}
:root[data-theme="dark"]{ --bg:#0f1512; --panel:#161f1a; --panel2:#1c2620; --text:#eef3ef; --muted:#9fb0a7; --accent:#3ea883; --accent-strong:#57c79c; --gold:#d9ae6f; --border:#25332c; --red:#f0716b; --shadow:0 24px 60px #0007; }
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--text);font-family:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
button{font:inherit;cursor:pointer}
input,select{font:inherit;padding:11px 13px;border-radius:12px;border:1px solid var(--border);background:var(--panel2);color:var(--text);width:100%}
input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
label{display:grid;gap:6px;font-size:.88rem;color:var(--muted);font-weight:600}
.mark{font-family:"Amiri",serif;color:var(--gold);display:inline-block;max-width:100%;overflow:hidden}
.brand{min-width:0}
.brand strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.muted{color:var(--muted)}
.primary{background:linear-gradient(135deg,var(--accent),var(--accent-strong));color:#fff;border:0;border-radius:12px;padding:12px 18px;font-weight:700;box-shadow:0 10px 24px #0f6b4f33}
.primary:disabled{opacity:.55;box-shadow:none;cursor:not-allowed}
.ghost{background:none;border:1px solid var(--border);border-radius:10px;padding:9px 14px;color:var(--text);font-weight:600}
.error{color:var(--red);min-height:1.2em;margin:0;font-size:.9rem}
.form-message{margin:0;min-height:1.2em;font-size:.9rem;color:var(--accent-strong)}

/* ---------- Auth ---------- */
.auth-screen{min-height:100dvh;display:grid;place-items:center;padding:16px;background:radial-gradient(circle at 50% -10%,color-mix(in srgb,var(--accent) 14%,var(--bg)) 0,var(--bg) 55%)}
.auth-card{width:min(420px,100%);background:var(--panel);border:1px solid var(--border);border-radius:24px;padding:30px 28px;box-shadow:var(--shadow)}
.brand{display:flex;align-items:center;gap:10px;margin-bottom:20px;font-size:1.1rem}
.brand .mark{font-size:1.5rem}
.auth-tabs{display:flex;gap:6px;background:var(--panel2);border:1px solid var(--border);border-radius:12px;padding:4px;margin-bottom:20px}
.auth-tab{flex:1;padding:10px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-weight:700}
.auth-tab.active{background:var(--panel);color:var(--accent-strong);box-shadow:0 2px 8px #0000001a}
#login-form,#register-form{display:grid;gap:14px}
.auth-card .primary{width:100%;padding:13px;font-size:1rem;margin-top:4px}

/* ---------- Dashboard ---------- */
.app-shell{min-height:100dvh;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(14px + env(safe-area-inset-top,0px)) 20px 14px;border-bottom:1px solid var(--border);background:var(--panel)}
.topbar .brand{font-size:1.05rem}
.topbar .ghost{flex:none}
.dashboard{flex:1;width:min(720px,100%);margin:0 auto;padding:24px 20px 60px;display:grid;gap:20px}
.welcome-card{background:linear-gradient(135deg,var(--accent),var(--accent-strong));color:#fff;border-radius:22px;padding:28px 26px;box-shadow:0 20px 48px #0f6b4f33}
.welcome-card h1{margin:0 0 6px;font-size:1.5rem}
.welcome-card p.muted{color:#e3f3ec}
.welcome-card .big{margin-top:16px;background:#fff;color:var(--accent-strong);width:100%;padding:14px;font-size:1.05rem}
.welcome-card .ghost{width:100%;margin-top:8px;background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.4)}
.welcome-card .soon{margin:10px 0 0;font-size:.82rem;color:#cfeadd}
.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.stat{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:16px;text-align:center;display:grid;gap:2px}
.stat strong{font-size:1.4rem;color:var(--accent-strong)}
.stat span{font-size:.8rem;color:var(--muted)}
.settings-card{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:22px;display:grid;gap:14px}
.settings-card h2{margin:0 0 4px;font-size:1.1rem}
.settings-card .primary{justify-self:start;padding:11px 20px}
/* ---------- Quran ---------- */
.quran-view{flex:1;width:min(760px,100%);margin:0 auto;padding:20px 20px 60px;display:grid;gap:16px;align-content:start}
.reader-header{display:flex;align-items:center;gap:14px}
.reader-header .ghost{flex:none;width:40px;height:40px;padding:0;display:grid;place-items:center;font-size:1.1rem}
.reader-header h2{margin:0;font-size:1.2rem}
.reader-header p{margin:2px 0 0}
.reader-toolbar{display:flex;gap:8px;flex-wrap:wrap}
.reader-toolbar .ghost{flex:none;font-size:.85rem;padding:8px 14px}
.reader-toolbar .ghost.active{background:var(--accent);color:#fff;border-color:var(--accent)}
#surah-search{background:var(--panel);margin-bottom:2px}
.surah-list{display:grid;gap:8px}
.surah-item{display:flex;align-items:center;gap:14px;width:100%;text-align:start;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:12px 16px;color:var(--text)}
.surah-item:hover{border-color:var(--accent)}
.surah-item .num{flex:none;width:34px;height:34px;border-radius:50%;background:var(--panel2);color:var(--accent-strong);display:grid;place-items:center;font-weight:700;font-size:.85rem}
.surah-item .names{flex:1;min-width:0;display:grid;gap:1px}
.surah-item .names strong{font-size:.98rem}
.surah-item .names span{font-size:.82rem;color:var(--muted)}
.surah-item .arabic-name{font-family:"Amiri",serif;font-size:1.3rem;color:var(--gold);flex:none}
.ayah-list{display:grid;gap:14px}
.ayah-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:18px}
.ayah-card .ayah-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.ayah-card .ayah-num{flex:none;width:28px;height:28px;border-radius:50%;background:var(--panel2);color:var(--accent-strong);display:grid;place-items:center;font-size:.75rem;font-weight:700}
.ayah-top .controls{display:flex;gap:8px}
.play-button,.repeat-button,.favorite-button{flex:none;width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:var(--panel2);color:var(--accent-strong);display:grid;place-items:center;font-size:1rem}
.play-button.playing{background:var(--accent);color:#fff;border-color:var(--accent)}
.repeat-button.active{background:var(--gold);color:#fff;border-color:var(--gold)}
.favorite-button.active{background:var(--gold);color:#fff;border-color:var(--gold)}
.ayah-card.playing{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent)}
.ayah-arabic{direction:rtl;font-family:"Amiri",serif;font-size:1.7rem;line-height:2.4;text-align:right}
.ayah-arabic .tajweed-tap{cursor:pointer;border-radius:3px}
.ayah-translation{margin:10px 0 0;color:var(--muted);font-size:.92rem;line-height:1.5}
.rule-tooltip{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--accent-strong);color:#fff;padding:10px 16px;border-radius:12px;display:flex;align-items:center;gap:10px;box-shadow:var(--shadow);z-index:20;max-width:calc(100% - 32px)}
.rule-tooltip-swatch{width:12px;height:12px;border-radius:50%;flex:none}
@media (max-width:520px){
	.auth-screen{padding:0;place-items:stretch;background:var(--panel)}
	.auth-card{width:100%;border:0;border-radius:0;box-shadow:none;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:max(28px,env(safe-area-inset-top,0px)) 22px calc(28px + env(safe-area-inset-bottom,0px))}
	.auth-card input,.auth-card select{font-size:16px}
	.stats-row{grid-template-columns:1fr 1fr}
	.stats-row .stat:last-child{grid-column:1/-1}
	.quran-view{padding:16px 16px 50px}
	.ayah-arabic{font-size:1.45rem;line-height:2.2}
	.surah-item .arabic-name{font-size:1.1rem}
}
