@import url('https://fonts.googleapis.com/css2?family=Frank+Ruhl+Libre:wght@400;500;700&family=Noto+Serif+Hebrew:wght@400;600&family=Inter:wght@400;600&display=swap');
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;background:#f6f4ef;color:#2b2b2b}
.wrap{max-width:900px;margin:0 auto;padding:16px}h1{font-size:1.5rem;margin:.4em 0}h2{font-size:1.15rem}
.card{background:#fff;border-radius:14px;padding:16px;box-shadow:0 1px 4px #0001;margin:12px 0}
label{display:block;font-weight:600;margin:10px 0 4px}input,select,textarea{width:100%;padding:10px;border:1px solid #ccc;border-radius:8px;font:inherit}
button{font:inherit;padding:10px 16px;border-radius:10px;border:0;background:#2f5d8a;color:#fff;cursor:pointer;margin:4px 4px 4px 0}
button.sec{background:#e4e8ee;color:#223}button.red{background:#b33}button:disabled{opacity:.5}
.heb{font-family:'Frank Ruhl Libre','SBL Hebrew','Noto Serif Hebrew',serif;direction:rtl;text-align:right;line-height:2.1}
.pasuk{font-size:clamp(28px,7vw,46px)}.w{display:inline-block;padding:0 .18em;margin:2px 1px;border-radius:8px;transition:background .15s,transform .15s;cursor:pointer;border-bottom:4px solid transparent}
.w.on{background:#ffe066;transform:scale(1.08)}.w.done{color:#888}
.muted{color:#777;font-size:.9em}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pill{display:inline-block;padding:2px 10px;border-radius:99px;background:#eef;font-size:.8em;margin-left:6px}
table{width:100%;border-collapse:collapse}td,th{padding:8px;border-bottom:1px solid #eee;text-align:left;vertical-align:top}
.m-correct{border-bottom-color:#2a9d4a!important;background:#e3f6e8}.m-mispronounced{border-bottom-color:#d33!important;background:#fde2e2}
.m-skipped{border-bottom-color:#555!important;background:#ddd;text-decoration:line-through}.m-hesitated{border-bottom-color:#e08a00!important;background:#fff0d6}
.m-translation{border-bottom-color:#7b3fc4!important;background:#efe4fb}.m-trop{border-bottom-color:#1a8a9a!important;background:#dff4f6}
.big{font-size:1.2rem;padding:16px 24px}.rec{color:#c00;font-weight:600}
.m-nikud{border-bottom-color:#c2185b!important;background:#fce4ef}

/* 📖 Rashi script — Noto Rashi Hebrew (SIL OFL 1.1, self-hosted; licence: /NotoRashiHebrew-OFL.txt) */
@font-face{font-family:'Noto Rashi Hebrew';font-style:normal;font-weight:100 900;font-display:swap;src:url(/NotoRashiHebrew-hebrew.woff2) format('woff2');unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
@font-face{font-family:'Noto Rashi Hebrew';font-style:normal;font-weight:100 900;font-display:swap;src:url(/NotoRashiHebrew-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
.rashi,.rashi .w,.rashi .wf{font-family:'Noto Rashi Hebrew',serif!important;direction:rtl;text-align:right}
.pasuk.rashi{font-size:clamp(32px,8.4vw,48px)!important;line-height:2.15;word-spacing:.1em}
.rashi .dh{font-weight:800}
.rashi .dhEnd::after{content:'.';font-weight:800}
.rashi .dhEnd{margin-left:.35em}
.vbtn{font-size:.95rem;padding:6px 12px;border-radius:999px;background:#ede9fe;color:#5b21b6;border:1px solid #c4b5fd;cursor:pointer}
