@font-face { font-family: "Instrument Sans"; src: url("fonts/InstrumentSans-Variable.woff2") format("woff2"); font-weight: 400 700; font-display: swap; }
@font-face { font-family: "Divia Nastaliq"; src: url("fonts/DiviaNastaliq-Regular.woff2") format("woff2"); font-weight: 400; font-display: swap;; }
@font-face { font-family: "Divia Nastaliq"; src: url("fonts/DiviaNastaliq-Medium.woff2") format("woff2"); font-weight: 500 700; font-display: swap;; }
@font-face { font-family: "IBM Plex Sans Arabic"; src: url("fonts/PlexSansArabic-400.woff2") format("woff2"); font-weight: 400; font-display: swap;; }
@font-face { font-family: "IBM Plex Sans Arabic"; src: url("fonts/PlexSansArabic-500.woff2") format("woff2"); font-weight: 500; font-display: swap;; }
@font-face { font-family: "IBM Plex Sans Arabic"; src: url("fonts/PlexSansArabic-600.woff2") format("woff2"); font-weight: 600 700; font-display: swap;; }

:root{--surface:#f8f4ec;--alt:#ebe6df;--raised:#ffffff;--ink:#0e2a22;--muted:#4f5a54;--line:#d6cfc4;--bs:#66756e;--pine:#0e2a22;--pine2:#143a2f;
  --sans:"Instrument Sans","Segoe UI",system-ui,sans-serif;--urdu:"Divia Nastaliq","Noto Nastaliq Urdu",serif;--urdu-ui:"IBM Plex Sans Arabic","Noto Sans Arabic",sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--alt);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:27px}
body.ur{font-family:var(--urdu-ui);line-height:2}
body.ur h1,body.ur h2{font-family:var(--urdu);font-weight:500;line-height:1.9}
a{color:var(--ink);text-underline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.top{background:var(--surface);border-bottom:1px solid var(--line);padding:8px 16px;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between}
.brand{font-weight:600;font-size:19px}
.nav{display:flex;flex-wrap:wrap;gap:4px 16px}
.nav a,.top a.lang{min-height:44px;display:inline-flex;align-items:center;font-size:15px;font-weight:600}
main{max-width:1040px;margin:0 auto;padding:24px 16px 48px;display:flex;flex-direction:column;gap:24px}
main.narrow{max-width:480px}
h1{margin:0;font-size:36px;line-height:42px;font-weight:500;letter-spacing:-0.02em}
h2{margin:0;font-size:22px;line-height:30px;font-weight:600}
p{margin:0}.muted{color:var(--muted);font-size:15px;line-height:22px}
.draft{color:var(--muted);font-size:14px;line-height:20px}
.card{background:var(--raised);border-radius:10px;padding:20px;display:flex;flex-direction:column;gap:12px}
.card.alt{background:var(--surface)}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.big{font-size:44px;line-height:48px;font-weight:500;font-variant-numeric:tabular-nums}
.btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:var(--pine);color:var(--surface);
  font:600 15px/20px var(--sans);padding:0 24px;text-decoration:none;cursor:pointer;transition:background-color 200ms cubic-bezier(.16,1,.3,1)}
.btn:hover{background:var(--pine2)}.btn[disabled]{background:var(--bs);cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--ink);outline:1px solid var(--ink)}
.row{display:flex;gap:12px;align-items:flex-start;min-height:48px}
.row input{width:24px;height:24px;margin:2px 0 0;accent-color:var(--pine);flex-shrink:0}
fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}legend{font-weight:600;padding:0}
.pick{display:flex;gap:12px;align-items:center;min-height:48px}.pick input{width:22px;height:22px;accent-color:var(--pine)}
ol.weeks{list-style:none;margin:0;padding:4px 20px;background:var(--raised);border-radius:10px}
ol.weeks li{padding:16px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px}ol.weeks li:last-child{border:0}
ol.cycle{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
ol.cycle li{min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:var(--alt);color:var(--muted);font-variant-numeric:tabular-nums}
ol.cycle li.done{background:var(--pine);color:var(--surface);font-weight:600}
ol.cycle li.now{background:var(--raised);outline:2px solid var(--ink);outline-offset:-2px;color:var(--ink);font-weight:700}
.locked{border:1px dashed var(--bs);border-radius:10px;padding:20px;color:var(--muted)}
.err{color:var(--ink);background:var(--surface);border:1px solid var(--ink);border-radius:10px;padding:12px 16px}
[hidden]{display:none!important}
.ur .nav,.ur .top{direction:rtl}
bdi{unicode-bidi:isolate}
@media (prefers-reduced-motion:reduce){.btn{transition:none}}
@media (max-width:420px){h1{font-size:30px;line-height:36px}.big{font-size:36px}}
