.jhyb { --jhyb-ink:#202124; --jhyb-brand:#8e1538; --jhyb-paper:#faf9f6; --jhyb-border:#88847c; color:var(--jhyb-ink); }
.jhyb [hidden] { display:none!important; }
.jhyb-intro { max-width:48rem; }
.jhyb-intro h2 { margin-top:0; }
.jhyb-steps { display:flex; list-style:none; padding:0; margin:2.5rem 0; border-bottom:1px solid var(--jhyb-border); gap:2rem; }
.jhyb-steps li { padding:0 0 1rem; display:flex; gap:.65rem; align-items:center; color:#626267; border-bottom:3px solid transparent; font-size:.95rem; }
.jhyb-steps li[aria-current] { color:var(--jhyb-brand); border-bottom-color:var(--jhyb-brand); font-weight:600; }
.jhyb-steps span { font-size:.8rem; }
.jhyb-layout { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(0,1fr); gap:2.5rem; align-items:start; }
.jhyb-panel { border:1px solid var(--jhyb-border); background:white; padding:clamp(1.25rem,3vw,2.5rem); min-width:0; }
.jhyb fieldset { border:0; padding:0; margin:0; min-width:0; }
.jhyb legend { font-family:var(--font-display,inherit); font-size:1.35rem; font-weight:500; padding:0; margin-bottom:1.5rem; }
.jhyb-field { display:block; margin:0 0 1.25rem; font-size:.95rem; font-weight:500; }
.jhyb-field input,.jhyb-field select,.jhyb-field textarea { display:block; width:100%; min-width:0; border:1px solid var(--jhyb-border); background:var(--jhyb-paper); color:var(--jhyb-ink); padding:.8rem; margin-top:.5rem; min-height:48px; font:inherit; font-size:1rem; border-radius:0; }
.jhyb-field textarea { resize:vertical; }
.jhyb-field input[type=date] { max-width:22rem; }
.jhyb-fields { display:grid; grid-template-columns:1fr 1fr; gap:0 1.25rem; }
.jhyb .jhyb-slot-options { margin:1.75rem 0; }
.jhyb-slot-options legend { font-size:.95rem; font-family:inherit; margin-bottom:.5rem; }
.jhyb-slot-options p { font-size:.9rem; color:#626267; }
.jhyb-slots { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.jhyb-slot { position:relative; cursor:pointer; display:flex; }
.jhyb-slot input { position:absolute; opacity:0; width:1px; height:1px; }
.jhyb-slot span { display:flex; justify-content:center; align-items:center; min-height:48px; padding:.8rem .5rem; width:100%; border:1px solid var(--jhyb-border); color:var(--jhyb-ink); background:var(--jhyb-paper); font-size:.85rem; transition:color .18s,background .18s,border-color .18s; }
.jhyb-slot:hover span { border-color:var(--jhyb-brand); background:#f2e8e8; }
.jhyb-slot input:checked+span { border-color:var(--jhyb-brand); background:var(--jhyb-brand); color:white; }
.jhyb-slot input:focus-visible+span { outline:3px solid var(--jhyb-brand); outline-offset:3px; }
.jhyb button { min-height:48px; font:inherit; font-size:.9rem; padding:.85rem 1.25rem; border:1px solid var(--jhyb-brand); border-radius:0; cursor:pointer; transition:background .18s,color .18s; }
.jhyb .button-dark { background:var(--jhyb-brand); color:white; }
.jhyb .button-dark:hover { background:#68102a; }
.jhyb .button-outline { background:transparent; color:var(--jhyb-brand); }
.jhyb .button-outline:hover { background:var(--jhyb-brand); color:white; }
.jhyb button:disabled { opacity:.6; cursor:default; }
.jhyb :focus-visible { outline:3px solid var(--jhyb-brand); outline-offset:4px; }
.jhyb-actions { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; margin-top:1.75rem; }
.jhyb-summary { padding:1.5rem 0 0 1.75rem; border-left:1px solid var(--jhyb-border); }
.jhyb-summary h3 { margin:0 0 1rem; }
.jhyb dl { margin:0 0 1.5rem; }
.jhyb dt { font-weight:600; font-size:.85rem; margin-top:1.25rem; }
.jhyb dd { margin:.3rem 0 0; overflow-wrap:anywhere; }
.jhyb-summary dd,.jhyb-summary .fine-print { color:#626267; }
.jhyb-message { border:1px solid var(--jhyb-brand); border-left:4px solid var(--jhyb-brand); padding:1rem; margin:0 0 1.5rem; color:#68102a; background:#faf2f3; }
.jhyb-honey { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
#jhyb-selection { border-top:1px solid var(--jhyb-border); padding-top:1.5rem; margin-top:1.5rem; }
#jhyb-selection p { font-size:.95rem; }
#jhyb-confirmation h2 { font-size:clamp(1.6rem,2.5vw,2.2rem); }
#jhyb-submit-status { margin:1rem 0 0; font-size:.9rem; }
.jhyb-admin { max-width:1400px; }
.jhyb-admin-panel { border:1px solid #88847c; background:white; padding:24px; margin:20px 0; }
.jhyb-month-nav { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.jhyb-month-scroll { overflow-x:auto; }
.jhyb-month { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); min-width:720px; border-left:1px solid #88847c; border-top:1px solid #88847c; }
.jhyb-weekday,.jhyb-day { border-right:1px solid #88847c; border-bottom:1px solid #88847c; padding:10px; }
.jhyb-weekday { font-weight:600; background:#faf9f6; }
.jhyb-day { min-height:90px; box-sizing:border-box; }
.jhyb-day-empty { background:#eeece6; }
.jhyb-calendar-entry { display:block; color:#68102a; background:#faf2f3; border:1px solid #8e1538; margin-top:8px; padding:5px; overflow-wrap:anywhere; }
.jhyb-admin-settings { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.jhyb-day-option { display:inline-block; margin:8px 16px 8px 0; }
.jhyb-admin input[type=time],.jhyb-admin input[type=datetime-local] { display:block; margin:8px 0; }
.jhyb-admin dt { font-weight:600; margin-top:12px; }
.jhyb-admin dd { margin:4px 0; white-space:normal; overflow-wrap:anywhere; }
@media(max-width:900px) { .jhyb-layout { grid-template-columns:1fr; gap:2rem; } .jhyb-summary { padding:1.5rem 0 0; border-left:0; border-top:1px solid var(--jhyb-border); } .jhyb-admin-settings { grid-template-columns:1fr; gap:0; } }
@media(max-width:540px) { .jhyb-steps { gap:.85rem; } .jhyb-steps li { display:block; font-size:.8rem; } .jhyb-steps span { display:block; margin-bottom:.4rem; } .jhyb-fields,.jhyb-slots { grid-template-columns:1fr; } .jhyb-actions button { width:100%; } }
@media(prefers-reduced-motion:reduce) { .jhyb * { transition:none!important; } }
