:root {
  --navy: #0c2f59;
  --navy-deep: #061b35;
  --gold: #d59a20;
  --cream: #fff7e5;
  --ink: #172034;
  --muted: #687186;
  --line: #dfd3b6;
  --pink: #dc3b6a;
  --blue: #1682c4;
  --green: #15906b;
  --orange: #e48b08;
  --purple: #7548b3;
  --shadow: 0 22px 70px rgba(23, 32, 52, .14);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 15% 2%, rgba(255, 211, 106, .35), transparent 24rem),
    radial-gradient(circle at 88% 18%, rgba(97, 181, 255, .22), transparent 28rem),
    #f7f0df;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
button, select, input { font: inherit; }
button { cursor: pointer; }
.hero {
  min-height: 320px;
  padding: 64px max(24px, calc((100vw - 1180px)/2));
  display: grid;
  grid-template-columns: 120px 1fr 120px;
  gap: 34px;
  align-items: center;
  color: white;
  overflow: hidden;
  position: relative;
  background:
    linear-gradient(135deg, rgba(255,255,255,.08) 0 1px, transparent 1px 14px),
    linear-gradient(115deg, var(--navy-deep), #10477f 70%, #126198);
  box-shadow: inset 0 -8px 0 #e3ac39;
}
.language-switcher { position:absolute; z-index:2; top:20px; right:max(20px,calc((100vw - 1180px)/2)); display:flex; gap:4px; padding:4px; border:1px solid rgba(255,255,255,.35); border-radius:999px; background:rgba(6,27,53,.55); backdrop-filter:blur(8px); }
.language-switcher button { min-height:32px; padding:0 12px; border:0; border-radius:999px; color:#eaf5ff; background:transparent; font-size:.75rem; font-weight:900; }
.language-switcher button[aria-pressed="true"] { color:var(--navy-deep); background:#f5c95d; }
html[dir="rtl"] .language-switcher { right:max(20px,calc((100vw - 1180px)/2)); left:auto; direction:ltr; }
html[dir="rtl"] .date-shortcut { text-align:right; }
html[dir="rtl"] .reset-default { justify-self:start; }
html[dir="rtl"] .primary span { display:inline-block; transform:scaleX(-1); }
html[dir="rtl"] .edit-title { transform:none; }
html[dir="rtl"] .stats article { border-left:0; border-right:6px solid var(--blue); }
html[dir="rtl"] .stats article:nth-child(2){border-color:var(--orange)}html[dir="rtl"] .stats article:nth-child(3){border-color:var(--green)}html[dir="rtl"] .stats article:nth-child(4){border-color:var(--purple)}
.hero::after {
  content: "";
  position: absolute;
  width: 360px; height: 360px; border-radius: 50%;
  right: -120px; top: -170px;
  border: 40px solid rgba(255,255,255,.05);
}
.eyebrow, .kicker {
  margin: 0 0 8px;
  color: #8a5800;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-size: .76rem;
}
.hero .eyebrow { color:#f2c763; }
h1 { margin: 0; font-family: Georgia, serif; font-size: clamp(2.6rem, 5.1vw, 4.6rem); line-height: .95; white-space:nowrap; text-shadow: 4px 5px 0 #b9780c; }
.hero-copy { max-width:none; margin:20px 0 0; color:#eaf5ff; font-size:1rem; line-height:1.65; white-space:nowrap; }
.sparkles { justify-self: end; font-size: 2rem; color: #ffd56b; transform: rotate(-8deg); }
.scroll-mark { width: 92px; height: 118px; position: relative; border: 6px solid #f5c95d; border-radius: 10px; }
.scroll-mark::before, .scroll-mark::after { content:""; position:absolute; left:-18px; right:-18px; height:7px; background:#f5c95d; border-radius:10px; }
.scroll-mark::before { top:-10px; } .scroll-mark::after { bottom:-10px; }
.scroll-mark i, .scroll-mark b { position:absolute; width:13px; height:13px; border:4px solid #f5c95d; border-radius:50%; left:-23px; }
.scroll-mark i { top:-13px; } .scroll-mark b { bottom:-13px; }
main { width: min(1180px, calc(100% - 32px)); margin: -44px auto 80px; position: relative; z-index: 2; }
.planner-tabs { display:flex; gap:8px; width:max-content; max-width:100%; padding:7px; margin:0 auto 16px; overflow-x:auto; border:2px solid rgba(213,154,32,.45); border-radius:18px; background:rgba(255,255,255,.96); box-shadow:0 10px 35px rgba(23,32,52,.12); }
.tab { min-height:46px; padding:0 24px; border:0; border-radius:12px; color:var(--navy); background:transparent; font-weight:900; }
.tab.active { color:white; background:linear-gradient(100deg,#0d3d70,#127ec0); box-shadow:0 7px 18px rgba(18,126,192,.25); }
.planner-card, .results {
  background: rgba(255,255,255,.96);
  border: 2px solid rgba(213,154,32,.45);
  border-radius: 28px;
  box-shadow: var(--shadow);
}
.planner-card { padding: clamp(24px, 5vw, 46px); }
.section-heading, .results-top { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
.results-top { display:grid; grid-template-columns:minmax(0,1fr); }
.results-top > div:first-child { min-width:0; }
.results-top h2 { font-size:clamp(1.35rem,3vw,2.5rem); white-space:nowrap; }
h2 { margin: 0; color: var(--navy); font: 800 clamp(1.6rem, 4vw, 2.5rem)/1.1 Georgia, serif; }
.step-pill { padding: 9px 14px; background:#fff2c8; color:#8f5b00; border-radius:999px; font-weight:800; font-size:.82rem; }
.controls { display:grid; grid-template-columns: repeat(5, 1fr); gap:16px; margin-top:30px; align-items:start; }
.daf-card { border-color:rgba(117,72,179,.4); }
.daf-controls { grid-template-columns:1.5fr .7fr 1fr 1fr; }
.daf-controls .primary { grid-column:span 4; background:linear-gradient(100deg,#5e368f,#b43f77); }
.daf-finish { background:linear-gradient(100deg,#4f287d,#b13e76); }
.yerushalmi-card { border-color:rgba(228,139,8,.5); }
.yerushalmi-controls { grid-template-columns:1.5fr .7fr 1fr 1fr; }
.yerushalmi-controls .primary { grid-column:span 4; background:linear-gradient(100deg,#9a5900,#e48b08); }
.yerushalmi-finish { background:linear-gradient(100deg,#7a4200,#d78108); }
.nach-card { border-color:rgba(21,144,107,.5); }
.nach-controls { grid-template-columns:1.35fr .65fr 1fr 1fr; }
.nach-controls .primary { grid-column:span 4; background:linear-gradient(100deg,#087257,#19a57d); }
.nach-finish { background:linear-gradient(100deg,#075b47,#15906b); }
.mishnah-card { border-color:rgba(21,144,107,.42); }
.mishnah-controls { grid-template-columns:1.4fr .65fr .75fr 1.4fr; }
.mishnah-controls .primary { grid-column:span 4; background:linear-gradient(100deg,#0d7357,#1fa27d); }
.mishnah-end-break { grid-column:1; }
.mishnah-start-date-field { grid-column:1/3; }
.mishnah-finish-date-field { grid-column:3/5; }
.mishnah-finish { background:linear-gradient(100deg,#075d49,#178f70); }
label { display:grid; gap:8px; color:#485166; font-size:.8rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
select, input {
  width:100%; min-height:50px; padding:0 14px;
  color:var(--ink); background:#fffdf8;
  border:1.5px solid #cfc4aa; border-radius:12px; outline:none;
}
select:focus, input:focus { border-color:var(--blue); box-shadow:0 0 0 4px rgba(22,130,196,.14); }
.date-shortcut { padding:0; border:0; color:#0b699f; background:transparent; text-align:left; font-size:.72rem; font-weight:900; text-decoration:underline; text-underline-offset:3px; }
.date-shortcut:hover, .date-shortcut:focus-visible { color:var(--navy); outline:none; }
.date-note { color:#725115; font-size:.7rem; font-weight:900; letter-spacing:0; text-transform:none; }
.primary, .secondary, .ghost { min-height:50px; border-radius:13px; border:0; font-weight:900; }
.primary { grid-column: span 5; color:white; background:linear-gradient(100deg, #0d3d70, #127ec0); box-shadow:0 10px 24px rgba(18,126,192,.26); }
.primary span { margin-left:8px; font-size:1.2rem; }
.reset-default { grid-column:1/-1; justify-self:end; margin-top:-8px; padding:3px 0; border:0; color:#6f6758; background:transparent; font-size:.72rem; font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.reset-default:hover, .reset-default:focus-visible { color:var(--navy); outline:none; }
.secondary { padding:0 19px; color:white; background:var(--navy); }
.ghost { padding:0 16px; color:var(--navy); background:#edf4fa; }
.error { min-height:1.4em; margin:14px 0 0; color:#b3264e; font-weight:700; }
.results { margin-top:24px; padding: clamp(22px, 4vw, 40px); }
.hidden { display:none; }
.subtitle { margin:10px 0 0; color:var(--muted); }
.editable-kicker { display:flex; align-items:center; gap:7px; }
.editable-kicker .kicker { margin-bottom:0; }
.editable-kicker .kicker.editing { min-width:12rem; padding:5px 8px; color:var(--navy); background:#fff8dc; border:1px solid #d59a20; border-radius:7px; outline:3px solid rgba(213,154,32,.18); text-transform:none; letter-spacing:normal; }
.edit-title { width:28px; height:28px; padding:0; border:0; border-radius:50%; color:var(--navy); background:#fff2c8; font-size:1rem; line-height:1; transform:scaleX(-1); }
.edit-title:hover, .edit-title:focus-visible { background:#f5c95d; outline:2px solid var(--navy); outline-offset:2px; }
.actions { display:flex; flex-wrap:wrap; gap:10px; justify-self:end; }
.actions button { min-width:max-content; padding-inline:18px; white-space:nowrap; }
.stats { display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; margin:28px 0 12px; }
.stats article { padding:18px 20px; border-radius:18px; background:#eaf4ff; border-left:6px solid var(--blue); }
.stats article:nth-child(2) { background:#fff0c7; border-color:var(--orange); }
.stats article:nth-child(3) { background:#e2f4e8; border-color:var(--green); }
.stats article:nth-child(4) { background:#f2e8ff; border-color:var(--purple); }
.stats strong { display:block; color:var(--navy); font-size:1.55rem; }
.stats span { color:var(--muted); font-size:.78rem; font-weight:800; text-transform:uppercase; }
.progress-track { height:10px; overflow:hidden; border-radius:999px; background:#e8e2d3; }
.progress-track i { display:block; height:100%; width:0; background:linear-gradient(90deg, var(--blue), var(--purple), var(--pink)); transition:width .25s ease; }
.schedule { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:28px; }
.week { overflow:hidden; border-radius:18px; border:1px solid var(--line); background:white; box-shadow:0 8px 20px rgba(23,32,52,.06); }
.week-header { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:12px 15px; color:white; background:var(--accent); }
.week-header strong { font-size:.86rem; letter-spacing:.05em; text-transform:uppercase; }
.week-header span { font-size:.72rem; font-weight:800; opacity:.9; }
.day { --tint:#eaf4ff; display:grid; grid-template-columns:30px 112px 1fr 42px; align-items:center; gap:8px; padding:10px 12px; background:var(--tint); border-top:1px solid rgba(12,47,89,.1); font-size:.86rem; }
.day.shabbos { background:#fffdf7; }
.day.finish { background:#ffdb70; font-weight:900; }
.day.caught-up { outline:3px solid #15906b; outline-offset:-3px; background:#dcf6e9; }
.day input { appearance:none; width:20px; height:20px; min-height:0; padding:0; border:2px solid var(--accent); border-radius:6px; background:transparent; }
.day input:checked { background:var(--accent); box-shadow:inset 0 0 0 4px var(--tint); }
.day input:checked ~ * { opacity:.52; text-decoration:line-through; }
.date { font-weight:900; white-space:nowrap; }
.shabbos .date { color:#7b2735; }
.range { color:var(--navy); font-weight:800; }
.count { justify-self:end; min-width:36px; padding:4px 7px; color:white; background:var(--accent); border-radius:999px; text-align:center; font-size:.72rem; font-weight:900; }
.catchup-badge { grid-column:2/-1; width:max-content; max-width:100%; padding:5px 9px; color:#075d49; background:white; border:1px solid #65bd9d; border-radius:999px; font-size:.7rem; font-weight:900; text-decoration:none!important; opacity:1!important; }
.finish-banner { margin-top:24px; display:flex; align-items:center; justify-content:center; gap:24px; padding:22px; color:white; text-align:center; border-radius:20px; background:linear-gradient(100deg, #0b2f59, #7a479c); }
.finish-banner > span { color:#ffd766; font-size:1.8rem; }
.finish-banner strong, .finish-banner small { display:block; }.finish-banner strong { font:800 1.35rem Georgia, serif; }.finish-banner small { margin-top:5px; color:#f5e9ff; }
.print-qr { display:none; }
footer { padding:0 20px 40px; color:#6f6758; text-align:center; font-size:.82rem; }
footer .version { margin-left:6px; font-weight:800; white-space:nowrap; }
footer a,.footer-link { color:#0b699f; font:inherit; font-weight:800; text-decoration:underline; background:none; border:0; padding:0; cursor:pointer; }
.feedback-dialog { width:min(620px,calc(100% - 28px)); max-height:calc(100vh - 30px); padding:0; color:var(--ink); border:1px solid var(--line); border-radius:24px; box-shadow:0 28px 80px rgba(6,27,53,.28); }
.feedback-dialog::backdrop { background:rgba(6,27,53,.66); backdrop-filter:blur(3px); }
.feedback-dialog form { padding:30px; }
.feedback-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.feedback-heading h2 { margin:4px 0 0; color:var(--navy); font:800 2rem/1.05 Georgia,serif; }
.feedback-close { width:38px; height:38px; padding:0; color:var(--navy); background:#edf4fb; border:0; border-radius:50%; font-size:1.65rem; line-height:1; cursor:pointer; }
.feedback-privacy { margin:15px 0 20px; color:var(--muted); line-height:1.5; }
.feedback-fields { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.feedback-fields label { display:grid; gap:7px; color:#3d4860; font-size:.78rem; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }
.feedback-fields small { color:var(--muted); font-size:.72rem; font-weight:700; letter-spacing:0; text-transform:none; }
.feedback-fields input,.feedback-fields textarea { width:100%; min-height:48px; padding:12px 14px; color:var(--ink); background:#fffdfa; border:1px solid #cfbf9e; border-radius:12px; font:600 1rem/1.45 Inter,ui-sans-serif,system-ui,sans-serif; text-transform:none; resize:vertical; }
.feedback-message { grid-column:1/-1; }.feedback-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.feedback-status { min-height:22px; margin:12px 0 0; color:#0c6a51; font-weight:800; }.feedback-status.error{color:#a92847}
.feedback-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:12px; }.feedback-actions button{min-height:46px;padding:10px 20px}.feedback-actions .primary{width:auto}.feedback-actions button:disabled{opacity:.6;cursor:wait}
@media screen and (min-width: 851px) {
  body { min-height:125vh; zoom:.8; }
}
@media (max-width: 850px) {
  .hero { grid-template-columns:72px 1fr; min-height:300px; padding-top:46px; }
  h1,.hero-copy { white-space:normal; }
  .scroll-mark { width:58px; height:80px; }.sparkles{display:none;}
  .controls { grid-template-columns:repeat(2,1fr); }.primary{grid-column:span 2;}
  .daf-controls { grid-template-columns:repeat(2,1fr); }.daf-controls .primary{grid-column:span 2;}
  .yerushalmi-controls { grid-template-columns:repeat(2,1fr); }.yerushalmi-controls .primary{grid-column:span 2;}
  .nach-controls { grid-template-columns:repeat(2,1fr); }.nach-controls .primary{grid-column:span 2;}
  .mishnah-controls { grid-template-columns:repeat(2,1fr); }.mishnah-controls .primary{grid-column:span 2;}
  .mishnah-end-break{grid-column:1}.mishnah-start-date-field,.mishnah-finish-date-field{grid-column:auto;}
  .schedule { grid-template-columns:1fr; }
  .stats { grid-template-columns:1fr 1fr; }
  .results-top h2 { white-space:normal; text-wrap:balance; }
}
@media (max-width: 560px) {
  .hero { grid-template-columns:1fr; }.scroll-mark{display:none;}
  main { width:min(100% - 18px,1180px); }.planner-card,.results{border-radius:20px;}
  .controls { grid-template-columns:1fr; }.primary{grid-column:span 1;}
  .planner-tabs{width:100%;}.tab{flex:1;padding:0 10px;}
  .daf-controls { grid-template-columns:1fr; }.daf-controls .primary{grid-column:span 1;}
  .yerushalmi-controls { grid-template-columns:1fr; }.yerushalmi-controls .primary{grid-column:span 1;}
  .nach-controls { grid-template-columns:1fr; }.nach-controls .primary{grid-column:span 1;}
  .mishnah-controls { grid-template-columns:1fr; }.mishnah-controls .primary{grid-column:span 1;}
  .mishnah-end-break,.mishnah-start-date-field,.mishnah-finish-date-field{grid-column:1;}
  .tab{font-size:.72rem;}
  .section-heading,.results-top{display:grid;}.actions{width:100%;}.actions button{flex:1;}
  .day{grid-template-columns:28px 92px 1fr 38px;padding:9px 8px;font-size:.76rem;}
  .feedback-dialog form{padding:22px}.feedback-fields{grid-template-columns:1fr}.feedback-message{grid-column:1}.feedback-actions button{flex:1}
}
@media print {
  @page { size: landscape; margin: 8mm; }
  body { background:white; }.hero,.planner-card,.planner-tabs,.actions,footer{display:none!important;}
  main{width:100%;margin:0}.results{display:block!important;margin:0;padding:0;border:0;box-shadow:none}
  .results-top{margin-bottom:5px;padding-right:34mm}.results-top h2{font-size:16pt}.subtitle{font-size:8pt}.stats{margin:5px 0}.stats article{padding:6px 8px}.stats strong{font-size:14pt}.progress-track{display:none}
  .print-qr{display:grid;position:absolute;z-index:3;top:-6mm;right:0;width:26mm;justify-items:center;color:#0c2f59;font-size:4.5pt;font-weight:800;line-height:1.1;text-align:center}.print-qr img{display:block;width:21mm;height:21mm}.print-qr span{margin-top:.6mm;direction:ltr}
  .schedule{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:4mm;margin-top:6px}
  .week{break-inside:avoid;box-shadow:none;margin:0}.week-header{padding:4px 7px;font-size:7pt}.day{grid-template-columns:17px 72px 1fr 26px;padding:2px 4px;font-size:6.6pt;line-height:1.1}.day input{width:12px;height:12px}.finish-banner{margin-top:6px;padding:6px;font-size:8pt}
  .results.print-long .schedule{grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5mm}.results.print-long .week-header{padding:3px 5px}.results.print-long .day{grid-template-columns:14px 62px 1fr 22px;padding:1.5px 3px;font-size:5.8pt}.results.print-long .stats,.results.print-long .finish-banner{display:none}
}
