:root{
  --text:#2C2C2B; --text-soft:#7D7A75; --canvas:#FFFFFF; --soft:#F9F8F7;
  --surface:#F0EFED; --border:#E6E5E3;
  --accent:#2f8f6b; --accent-strong:#26775a; --accent-soft:#E7F2ED;
  --green:#46A171; --orange:#D5803B; --red:#E56458; --red-soft:#FCE9E7;
  --gold:#C79A3B; --gold-soft:#F6EFDC;
  --radius:12px; --radius-sm:8px;
  --shadow:0 1px 2px rgba(0,0,0,.05), 0 4px 12px rgba(0,0,0,.04);
  --maxw:1040px;
  --font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root{
    --text:#FFFFFF; --text-soft:rgba(255,255,255,.65); --canvas:#191919;
    --soft:#202020; --surface:#383836; --border:rgba(255,255,255,.20);
    --accent:#5fbf95; --accent-strong:#72BC8F; --accent-soft:rgba(95,191,149,.12);
    --green:#72BC8F; --orange:#DE9255; --red:#E97366; --red-soft:rgba(233,115,102,.12);
    --gold:#d8b25c; --gold-soft:rgba(216,178,92,.12);
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 4px 16px rgba(0,0,0,.35);
  }
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--font);color:var(--text);background:var(--canvas);
  font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--accent-strong);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.narrow{max-width:760px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:0 20px;border-radius:var(--radius-sm);border:1px solid transparent;
  font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:.15s}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-strong);text-decoration:none}
.btn-ghost{background:transparent;color:var(--text);border-color:var(--border)}
.btn-ghost:hover{background:var(--soft);text-decoration:none}
.btn-block{width:100%}
.btn-gold{background:var(--gold);color:#3a2e0e}
.btn-gold:hover{filter:brightness(1.05);text-decoration:none}

/* Top nav */
.nav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--canvas) 88%,transparent);
  backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--border)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;color:var(--text)}
.brand:hover{text-decoration:none}
.brand .logo{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;
  background:var(--accent-soft);color:var(--accent-strong);font-size:19px}
.nav-links{display:flex;align-items:center;gap:8px}

/* Hero */
.hero{padding:72px 0 56px;text-align:center;
  background:radial-gradient(1200px 400px at 50% -80px,var(--accent-soft),transparent)}
.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;
  background:var(--accent-soft);color:var(--accent-strong);font-size:13px;font-weight:600;margin-bottom:20px}
.hero h1{font-size:44px;line-height:1.1;margin:0 auto 18px;max-width:640px;letter-spacing:-.02em}
.hero p.lead{font-size:19px;color:var(--text-soft);max-width:560px;margin:0 auto 30px}
.hero .cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.hero .arabic{font-size:22px;color:var(--accent-strong);margin-bottom:6px;opacity:.9}

/* Sections */
.section{padding:56px 0}
.section h2{font-size:30px;letter-spacing:-.01em;margin:0 0 8px;text-align:center}
.section .sub{color:var(--text-soft);text-align:center;max-width:520px;margin:0 auto 40px}
.grid{display:grid;gap:16px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--soft);border:1px solid var(--border);border-radius:var(--radius);padding:24px}
.card .ico{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;
  font-size:22px;background:var(--canvas);border:1px solid var(--border);margin-bottom:14px}
.card h3{margin:0 0 6px;font-size:17px}
.card p{margin:0;color:var(--text-soft);font-size:14.5px}

/* Pricing */
.price-wrap{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:720px;margin:0 auto}
.price{background:var(--soft);border:1px solid var(--border);border-radius:var(--radius);padding:28px;position:relative}
.price.featured{border-color:var(--accent);box-shadow:var(--shadow)}
.price .badge{position:absolute;top:-11px;left:50%;transform:translateX(-50%);
  background:var(--accent);color:#fff;font-size:12px;font-weight:700;padding:4px 12px;border-radius:999px}
.price h3{margin:0 0 4px;font-size:18px}
.price .amt{font-size:34px;font-weight:800;letter-spacing:-.02em;margin:8px 0}
.price .amt small{font-size:15px;font-weight:600;color:var(--text-soft)}
.price ul{list-style:none;padding:0;margin:16px 0 22px}
.price li{padding:7px 0 7px 28px;position:relative;font-size:14.5px;color:var(--text)}
.price li:before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:800}
.price li.off{color:var(--text-soft)}
.price li.off:before{content:"–";color:var(--text-soft)}

/* Footer */
.footer{border-top:1px solid var(--border);padding:32px 0;color:var(--text-soft);font-size:14px;text-align:center}

/* Auth */
.auth-wrap{min-height:calc(100vh - 64px);display:grid;place-items:center;padding:40px 24px}
.auth-card{width:100%;max-width:420px;background:var(--soft);border:1px solid var(--border);
  border-radius:var(--radius);padding:32px;box-shadow:var(--shadow)}
.auth-card h1{font-size:24px;margin:0 0 4px;text-align:center}
.auth-card .muted{color:var(--text-soft);text-align:center;margin:0 0 24px;font-size:14.5px}
.field{margin-bottom:16px}
.field label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px}
.field input{width:100%;min-height:44px;padding:0 14px;border:1px solid var(--border);
  border-radius:var(--radius-sm);background:var(--canvas);color:var(--text);font-size:15px;font-family:inherit}
.field input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.auth-alt{text-align:center;margin-top:18px;font-size:14px;color:var(--text-soft)}
.alert{padding:12px 14px;border-radius:var(--radius-sm);font-size:14px;margin-bottom:18px}
.alert-error{background:var(--red-soft);color:var(--red)}
.alert-ok{background:var(--accent-soft);color:var(--accent-strong)}

/* App shell */
.app{padding:28px 0 64px}
.app-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:22px}
.app-head h1{font-size:26px;margin:0}
.app-head .date{color:var(--text-soft);font-size:14.5px;margin-top:2px}
.datenav{display:flex;align-items:center;gap:8px}
.datenav .btn{min-height:38px;padding:0 12px}

.layout{display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start}
@media(max-width:860px){.layout{grid-template-columns:1fr}}

.panel{background:var(--soft);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.panel h2{font-size:15px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft);margin:0 0 14px}

/* Habit list */
.habit-group{margin-bottom:18px}
.habit-group:last-child{margin-bottom:0}
.habit-group .glabel{font-size:12.5px;font-weight:700;color:var(--text-soft);text-transform:uppercase;letter-spacing:.05em;margin:0 0 8px}
.habit{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:var(--radius-sm);
  border:1px solid var(--border);background:var(--canvas);margin-bottom:8px;cursor:pointer;
  min-height:44px;transition:.12s;user-select:none}
.habit:hover{border-color:var(--accent)}
.habit.done{background:var(--accent-soft);border-color:var(--accent)}
.habit .check{width:24px;height:24px;border-radius:7px;border:2px solid var(--border);
  display:grid;place-items:center;flex:0 0 auto;color:transparent;font-size:14px;font-weight:800;transition:.12s}
.habit.done .check{background:var(--accent);border-color:var(--accent);color:#fff}
.habit .hico{font-size:18px;width:24px;text-align:center;flex:0 0 auto}
.habit .hname{flex:1;font-size:15px;font-weight:500}
.habit.done .hname{color:var(--accent-strong)}

/* Progress ring + bars */
.ring-wrap{display:flex;align-items:center;gap:18px}
.ring{--p:0;width:92px;height:92px;border-radius:50%;flex:0 0 auto;
  background:conic-gradient(var(--accent) calc(var(--p)*1%),var(--surface) 0);
  display:grid;place-items:center}
.ring .inner{width:70px;height:70px;border-radius:50%;background:var(--soft);display:grid;place-items:center;flex-direction:column}
.ring .pct{font-size:22px;font-weight:800;line-height:1}
.ring .lbl{font-size:11px;color:var(--text-soft)}
.ring-meta .big{font-size:15px;font-weight:600}
.ring-meta .small{font-size:13px;color:var(--text-soft)}

.bars{display:flex;align-items:flex-end;gap:8px;height:120px;margin-top:6px}
.bars .bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.bars .bar .fill{width:100%;max-width:34px;border-radius:6px 6px 0 0;background:var(--accent);min-height:4px;transition:.2s}
.bars .bar .fill.dim{background:var(--surface)}
.bars .bar .d{font-size:11px;color:var(--text-soft)}
.bars .bar .v{font-size:11px;color:var(--text-soft)}

.streak{display:flex;align-items:center;gap:10px;font-size:15px}
.streak .flame{font-size:24px}
.streak b{font-size:20px}

/* Muhasabah */
textarea.note{width:100%;min-height:120px;padding:12px 14px;border:1px solid var(--border);
  border-radius:var(--radius-sm);background:var(--canvas);color:var(--text);font-family:inherit;
  font-size:14.5px;resize:vertical}
textarea.note:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}

/* Locked / premium */
.locked{position:relative;border:1px dashed var(--border);border-radius:var(--radius);
  padding:24px;text-align:center;background:var(--soft)}
.locked .lk{font-size:26px;margin-bottom:8px}
.locked h3{margin:0 0 4px;font-size:16px}
.locked p{margin:0 0 14px;color:var(--text-soft);font-size:14px}
.badge-pro{display:inline-block;background:var(--gold-soft);color:var(--gold);
  font-size:11px;font-weight:800;padding:2px 8px;border-radius:6px;vertical-align:middle;margin-left:6px}

.flash{padding:11px 14px;border-radius:var(--radius-sm);font-size:14px;margin-bottom:16px}
.flash-ok{background:var(--accent-soft);color:var(--accent-strong)}
.flash-err{background:var(--red-soft);color:var(--red)}

/* Heatmap */
.heat{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.heat .cell{aspect-ratio:1;border-radius:5px;background:var(--surface)}
.heat .cell.l1{background:color-mix(in srgb,var(--accent) 30%,var(--surface))}
.heat .cell.l2{background:color-mix(in srgb,var(--accent) 55%,var(--surface))}
.heat .cell.l3{background:color-mix(in srgb,var(--accent) 80%,var(--surface))}
.heat .cell.l4{background:var(--accent)}

@media(max-width:560px){
  .hero h1{font-size:34px}
  .grid-3,.grid-2,.price-wrap{grid-template-columns:1fr}
  .section h2{font-size:25px}
}

/* Print */
@media print{
  .nav,.app-head .datenav,.no-print{display:none!important}
  body{background:#fff;color:#000}
  .panel,.card{break-inside:avoid}
}
