*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Heebo,sans-serif;background:#faf9f6;color:#2c2c2c;line-height:1.6;min-height:100vh}.container{max-width:640px;margin:0 auto;padding:2.5rem 2rem 3rem;position:relative}.bsd{display:block;text-align:center;font-family:Frank Ruhl Libre,serif;font-size:.75rem;color:#c4b89a;user-select:none;margin-bottom:-.5rem}.lang-toggle{position:absolute;top:1.7rem;left:1.5rem;background:none;border:none;color:#999;font-family:Heebo,sans-serif;font-size:.8rem;font-weight:400;padding:0;cursor:pointer;transition:color .15s ease}[dir=ltr] .lang-toggle{left:auto;right:1.5rem}.lang-toggle:hover{color:#6d5a43}h1{font-family:Frank Ruhl Libre,serif;font-size:2rem;font-weight:700;color:#4a3c2c;text-align:center;margin-bottom:.4rem}.subtitle{text-align:center;color:#888;font-size:.95rem;margin-bottom:1.25rem}.location-banner{display:flex;align-items:center;justify-content:center;gap:.6rem;margin-bottom:1.5rem;padding:.6rem 1rem;background:#f0ebe0;border:1px solid #e0d8c8;border-radius:8px}.location-banner span{font-size:.9rem;color:#6d5a43;font-weight:700}form{display:flex;flex-direction:column;gap:1.25rem}.field{display:flex;flex-direction:column;gap:.35rem}label{font-size:.9rem;font-weight:700;color:#6d5a43}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400;color:#2c2c2c}.checkbox-label input[type=checkbox]{accent-color:#8b7355;width:1.1rem;height:1.1rem;cursor:pointer}.field-hint{font-size:.8rem;color:#999}.nightfall-options{display:flex;flex-direction:column;gap:.1rem}.nightfall-checkbox{margin-top:.15rem}.effective-date{font-weight:700;margin-inline-start:-.2rem}.info-icon{display:inline-flex;align-items:center;margin-inline-start:-.35rem;cursor:pointer}.info-icon svg{width:.95rem;height:.95rem;fill:#8b7355}.info-icon:hover svg{fill:#6d5a43}.info-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.info-modal{background:#faf9f6;border:1px solid #d4c5a9;border-radius:12px;width:420px;max-width:92vw;max-height:85vh;overflow-y:auto}.info-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid #e0d8c8}.info-modal-header h3{font-family:Frank Ruhl Libre,serif;font-size:1.1rem;color:#4a3c2c;font-weight:700}.info-modal-close{background:none;border:none;font-size:1.2rem;color:#999;cursor:pointer;padding:.2rem}.info-modal-close:hover{color:#4a3c2c}.info-modal-body{padding:1rem;font-size:.88rem;line-height:1.7;color:#4a3c2c}.info-modal-body p+p{margin-top:.6rem}.info-modal-note{margin-top:.75rem;padding-top:.6rem;border-top:1px dashed #e0d8c8;font-size:.82rem;color:#888}.field-error{font-size:.8rem;color:#c44;font-weight:700;margin-top:.25rem}.date-picker-trigger.has-error{border-color:#c44}.zmanim-link{font-size:.8rem;color:#4a6fa5;text-decoration:none}.zmanim-link:hover{text-decoration:underline}.toggle-group{display:flex;gap:0;border:2px solid #d4c5a9;border-radius:8px;overflow:hidden;width:fit-content}.toggle-btn{font-family:Heebo,sans-serif;font-size:.95rem;font-weight:400;padding:.45rem 1.2rem;background:#fff;color:#6d5a43;border:none;cursor:pointer;transition:all .15s ease}.toggle-btn+.toggle-btn{border-inline-start:1px solid #d4c5a9}.toggle-btn.active{background:#8b7355;color:#fff;font-weight:700}.toggle-btn:hover:not(.active){background:#f0ebe0}input[type=date],input[type=text]{font-family:Heebo,sans-serif;font-size:1.05rem;padding:.65rem .75rem;border:2px solid #d4c5a9;border-radius:8px;background:#fff;color:#2c2c2c;outline:none;transition:border-color .15s ease;width:100%}input:focus{border-color:#8b7355}.btn-primary{font-family:Heebo,sans-serif;font-size:1.1rem;font-weight:700;padding:.75rem 1.5rem;background:#8b7355;color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background .15s ease;margin-top:.5rem}.btn-primary:hover{background:#6d5a43}.btn-primary:disabled{opacity:.7;cursor:wait}.results{margin-top:2rem}.results h2{font-family:Frank Ruhl Libre,serif;font-size:1.5rem;color:#4a3c2c;text-align:center;margin-bottom:1.25rem}.holiday-notice{background:#fef3cd;border:1px solid #e6c547;border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem}.holiday-notice p{font-size:.88rem;color:#6d5a00;margin:0;line-height:1.5}.holiday-notice p+p{margin-top:.3rem}.result-card{background:#fff;border:1px solid #e0d8c8;border-radius:10px;margin-bottom:1rem;overflow:hidden}.result-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#f0ebe0;border-bottom:1px solid #e0d8c8}.result-header h3{font-family:Frank Ruhl Libre,serif;font-size:1.15rem;color:#4a3c2c;font-weight:700}.badge{font-size:.78rem;font-weight:700;padding:.2rem .6rem;border-radius:4px;color:#fff;white-space:nowrap}.shiva-badge{background:#8b7355}.shloshim-badge{background:#4a6fa5}.cancelled-badge{background:#b8860b}.kaddish-badge{background:#6b5b95}.kaddish-card .result-header{background:#f0edf5;border-bottom-color:#d8d0e8}.kaddish-card{border-color:#d8d0e8}.kaddish-card .result-header h3{color:#5a4a7a}.yahrzeit-card .result-header{background:#e8f0e8;border-bottom-color:#c8d8c8}.yahrzeit-card{border-color:#c8d8c8}.yahrzeit-card .result-header h3{color:#3a5a3a}.yahrzeit-entry{display:flex;justify-content:space-between;align-items:flex-start;padding:.6rem 0;gap:.5rem}.yahrzeit-entry+.yahrzeit-entry{border-top:1px solid #f0ebe0}.yahrzeit-entry-label{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:0;margin-inline-end:.5rem}.yahrzeit-entry .result-dates{flex-shrink:0}.yahrzeit-title{font-size:.9rem;font-weight:700;color:#4a3c2c}.yahrzeit-basis{font-size:.75rem;color:#999;line-height:1.4}.result-body{padding:1rem}.result-line{display:flex;justify-content:space-between;align-items:baseline;padding:.3rem 0}.result-line+.result-line{border-top:1px solid #f0ebe0}.result-key{font-size:.9rem;color:#888;flex-shrink:0;margin-inline-end:.75rem}.result-value{font-size:.95rem;color:#2c2c2c;font-weight:400;text-align:end}.result-value.highlight{font-weight:700;color:#4a3c2c;font-size:1.05rem}.result-dates{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}.result-greg-date{font-size:.8rem;color:#4a3c2c;text-align:end}.result-note{font-size:.82rem;color:#999;margin-top:.6rem;padding-top:.6rem;border-top:1px dashed #e0d8c8}.cancelled-notice{background:#fef3cd;border-radius:6px;padding:.5rem .75rem;margin-top:.5rem;font-size:.82rem;color:#6d5a00}.share-bar{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1rem}.share-btn{background:#4a6fa5;color:#fff;border:none;border-radius:8px;padding:.5rem 1.25rem;font-size:.9rem;font-weight:700;font-family:Heebo,sans-serif;cursor:pointer;transition:background .2s}.share-btn:hover{background:#3a5a8a}.share-btn:disabled{opacity:.6;cursor:not-allowed}.share-status{font-size:.85rem;color:#888}.share-status.copied{color:#2a8a2a;font-weight:700}.share-status.error{color:#c44}.rules-link{text-align:center;margin-top:.75rem}.rules-link a{font-size:.85rem;color:#8b7355;text-decoration:none;font-weight:700}.rules-link a:hover{text-decoration:underline}.wip-notice{text-align:center;margin-top:1rem;padding:.6rem 1rem;background:#fde8e8;border:1px solid #e0a0a0;border-radius:8px;font-size:.82rem;color:#933;font-weight:700}.disclaimer{font-size:.78rem;color:#999;text-align:center;margin-top:1.5rem;line-height:1.5}.date-picker-trigger{display:block;width:100%;text-align:start;font-family:Heebo,sans-serif;font-size:1.05rem;padding:.65rem .75rem;border:2px solid #d4c5a9;border-radius:8px;background:#fff;color:#2c2c2c;cursor:pointer;transition:border-color .15s ease}.date-picker-trigger:hover{border-color:#8b7355}.date-picker-display.placeholder{color:#999}.cal-tabs{display:flex;border-bottom:2px solid #e0d8c8;margin-bottom:.75rem}.cal-tab{flex:1;font-family:Heebo,sans-serif;font-size:.9rem;font-weight:700;padding:.5rem;background:none;border:none;border-bottom:3px solid transparent;color:#999;cursor:pointer;transition:all .15s ease;margin-bottom:-2px}.cal-tab.active{color:#8b7355;border-bottom-color:#8b7355}.cal-tab:hover:not(.active){color:#6d5a43}.heb-cal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.heb-cal-modal{background:#faf9f6;border:1px solid #d4c5a9;border-radius:12px;padding:1rem;width:320px;max-width:95vw;box-shadow:0 8px 32px #00000026}.heb-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;gap:.5rem}.heb-cal-nav{background:none;border:1px solid #d4c5a9;border-radius:6px;width:2rem;height:2rem;font-size:1.2rem;color:#6d5a43;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.heb-cal-nav:hover{background:#e8e0d0;border-color:#8b7355}.heb-cal-selects{display:flex;gap:.4rem;flex:1;justify-content:center}.heb-cal-selects select{font-family:Heebo,sans-serif;font-size:.9rem;padding:.25rem .4rem;border:1px solid #d4c5a9;border-radius:6px;background:#fff;color:#4a3c2c;cursor:pointer}.heb-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;margin-bottom:.25rem}.heb-cal-wd{font-size:.78rem;font-weight:700;color:#8b7355;padding:.2rem 0}.heb-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.heb-cal-day{background:#fff;border:1px solid transparent;border-radius:6px;padding:.35rem 0;font-family:Heebo,sans-serif;font-size:.82rem;color:#2c2c2c;text-align:center;cursor:pointer;transition:all .12s ease;min-height:2rem;display:flex;align-items:center;justify-content:center}.heb-cal-day:hover{background:#e8e0d0;border-color:#8b7355}.heb-cal-day.today{border:2px solid #8b7355}.heb-cal-day.other-month{color:#ccc;cursor:default}.heb-cal-day.other-month:hover{background:#fff;border-color:transparent}.heb-cal-day.yom-tov{background:#fde8e8;color:#b33;font-weight:700}.heb-cal-day.yom-tov:hover{background:#f8cccc;border-color:#b33}.heb-cal-day.chol-hamoed{background:#fef3e0;color:#a67c00}.heb-cal-day.chol-hamoed:hover{background:#fce4b8;border-color:#a67c00}.heb-cal-day.shabat{background:#eef3f9;color:#3a5a7c}.heb-cal-day.shabat:hover{background:#d8e6f3;border-color:#3a5a7c}.heb-cal-day.yom-tov.shabat{background:#fde8e8;color:#b33}.heb-cal-legend{display:flex;justify-content:center;gap:1rem;margin-top:.6rem;padding-top:.5rem;border-top:1px dashed #e0d8c8}.legend-item{display:flex;align-items:center;gap:.3rem;font-size:.72rem;color:#888}.legend-dot{width:10px;height:10px;border-radius:3px}.yom-tov-dot{background:#fde8e8;border:1px solid #b33}.chol-hamoed-dot{background:#fef3e0;border:1px solid #a67c00}.shabat-dot{background:#eef3f9;border:1px solid #3a5a7c}.heb-cal-footer{display:flex;justify-content:space-between;margin-top:.75rem;gap:.5rem}.heb-cal-today-btn,.heb-cal-close-btn{font-family:Heebo,sans-serif;font-size:.85rem;font-weight:700;padding:.35rem .8rem;border-radius:6px;cursor:pointer;transition:all .15s ease;border:1px solid #d4c5a9}.heb-cal-today-btn{background:#8b7355;color:#fff;border-color:#8b7355}.heb-cal-today-btn:hover{background:#6d5a43}.heb-cal-close-btn{background:#e8e0d0;color:#6d5a43}.heb-cal-close-btn:hover{background:#d4c5a9}.site-footer{text-align:center;padding:1.5rem 1rem 2rem;margin-top:1rem;border-top:1px solid #e0d8c8;max-width:600px;margin-inline:auto}.footer-project{font-size:.85rem;color:#888}.footer-project strong{color:#6d5a43}.footer-dedication{font-size:.9rem;color:#4a3c2c;font-family:Frank Ruhl Libre,serif;margin-top:.3rem}@media(max-width:400px){.yahrzeit-entry{display:grid;grid-template-areas:"title" "dates" "basis";gap:.1rem}.yahrzeit-entry .yahrzeit-title{grid-area:title}.yahrzeit-entry .result-dates{grid-area:dates;align-items:flex-start}.yahrzeit-entry .yahrzeit-basis{grid-area:basis}.yahrzeit-entry-label{display:contents;margin-inline-end:0}}@media(max-width:315px){.container{padding:2rem 1rem}h1{font-size:1.6rem}.result-card{margin-bottom:.65rem}.result-header{padding:.5rem .75rem}.result-body{padding:.6rem .75rem}.result-line{flex-direction:column;gap:.1rem;padding:.2rem 0}.result-value{text-align:start}.result-value.highlight{font-size:.95rem}.result-greg-date{font-size:.75rem}.result-note{margin-top:.4rem;padding-top:.4rem;font-size:.78rem}.yahrzeit-entry{padding:.4rem 0}.toggle-btn{padding:.45rem .8rem;font-size:.88rem}.heb-cal-modal{width:300px}.heb-cal-day{font-size:.75rem;min-height:1.8rem}}
