/* Style module controls only; the CMSMS WYSIWYG owns its toolbar and dialogs. */
.erh{--erh-ink:#20352f;--erh-green:#205a46;--erh-border:#dce4df;--erh-muted:#65736c;font-family:inherit;line-height:1.5;max-width:1440px;margin:1rem auto}.erh *:not(.erh-wysiwyg *){box-sizing:border-box}.erh h2:not(.erh-wysiwyg *){font-size:1.8rem;margin:0 0 .65rem}.erh h3:not(.erh-wysiwyg *){font-size:1.2rem;margin:1rem 0}.erh h4:not(.erh-wysiwyg *){margin:.3rem 0}.erh-public a:not(.erh-wysiwyg *):not(.ui-button):not(.erh-tab-link):not(.pagetable a){color:var(--erh-green)}.erh-header,.erh-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.erh-eyebrow{font-size:.7rem;letter-spacing:.15em;margin:0 0 .3rem}.erh-muted{font-size:.9em}.erh-public .erh-button{display:inline-block;background:var(--erh-green);color:white;border:1px solid var(--erh-green);border-radius:6px;padding:.65rem 1rem;cursor:pointer;text-decoration:none;font:inherit}.erh-public .erh-secondary,.erh-public .erh-remove{display:inline-block;border:1px solid #b6c7be;background:white;color:var(--erh-green);border-radius:6px;padding:.5rem .8rem;text-decoration:none;cursor:pointer;font:inherit}.erh-public .selected:not(.erh-wysiwyg *){background:#e5efe9}.erh-public .erh-remove{font-size:.8rem!important;margin-top:.5rem}.erh-actions{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin:1rem 0}.erh-grid,.erh-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.erh-filters{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.erh-field{display:block;margin:.65rem 0}.erh-field>span,.erh-field>label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.35rem}.erh .erh-field>input:not([type=checkbox]),.erh .erh-field>select,.erh .erh-field>textarea{width:100%;max-width:100%}.erh-public .erh-field>input:not([type=checkbox]),.erh-public .erh-field>select,.erh-public .erh-field>textarea{padding:.6rem .7rem;border:1px solid #aebeb4;border-radius:5px;font:inherit;background:white;color:#20352f}.erh-public :focus-visible:not(.erh-wysiwyg *){outline:3px solid #d39728;outline-offset:2px}.erh-check{display:block;margin:1rem 0}.erh-check input{margin-right:.5rem}.erh-slot,.erh-panel{border:1px solid var(--erh-border);border-radius:8px;padding:1rem 1.2rem;margin:1rem 0;background:#fbfcfa;min-width:0}.erh-slot legend{padding:0 .4rem;font-weight:600}.erh-panel summary{cursor:pointer;font-weight:600}.erh-notice{padding:1rem;border-left:4px solid #2b7759;background:#eef6ef;margin:1rem 0}.erh-error{border-color:#b44631;background:#fff0eb}.erh-warning{color:#865300}.erh-honey{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}.erh [hidden]:not(.erh-wysiwyg *){display:none!important}.erh-table-wrap,.erh-calendar-wrap{overflow:auto}.erh-admin-table td>div+div{margin-top:.6rem}.erh-admin-table form{margin:0}.erh-admin-table .erh-actions{margin:0}.erh-calendar{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:1px;background:var(--erh-border);border:1px solid var(--erh-border);border-radius:8px;overflow:hidden}.erh-calendar-day{grid-template-columns:1fr}.erh-day-heading{padding:.6rem;background:#f0f4f0;font-size:.8rem;font-weight:bold;text-align:center}.erh-day{background:white;min-height:150px;padding:.55rem}.erh-calendar-week .erh-day{min-height:380px}.erh-calendar-day .erh-day{min-height:280px}.erh-day-number{font-size:.8rem;margin-bottom:.6rem;display:flex;justify-content:space-between}.erh-day-number a{text-decoration:none}.erh-day.is-today{background:#f3faf4;box-shadow:inset 0 3px #2c7756}.erh-day.is-outside{background:#f6f7f5}.erh-day-add{font-size:.7rem;margin-top:.5rem}.erh-cal-entry{border-left:3px solid #999;border-radius:4px;background:#eee;padding:.45rem;margin:.35rem 0;font-size:.78rem;overflow-wrap:anywhere}.erh-cal-entry a{font-weight:600;text-decoration:none;color:inherit}.erh-cal-entry small{display:block;margin-top:.2rem}.erh-status-pending{border-color:#c18a23;background:#fff4d9;color:#74520c}.erh-status-confirmed{border-color:#2f7759;background:#e5f2e9;color:#1e543d}.erh-status-published{border-color:#4c66a6;background:#e9eefb;color:#344b80}.erh-status-declined,.erh-status-cancelled{border-color:#a76e64;background:#f6eeec;color:#72574f}.erh-status-draft{border-color:#8e8995;background:#efedf2}.erh-legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.8rem}.erh-legend span:before{content:'● ';color:#c18a23}.erh-legend span:nth-child(2):before{color:#2f7759}.erh-legend span:nth-child(3):before{color:#4c66a6}.erh-event-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem}.erh-event-card{border:1px solid var(--erh-border);border-radius:8px;padding:1rem}.erh-event-card img{width:100%;height:190px;object-fit:cover;border-radius:5px}.erh-hero{max-width:100%;max-height:480px;object-fit:contain}.erh-rich{overflow-wrap:anywhere}.erh-rich table{border-collapse:collapse}.erh-rich td,.erh-rich th{border:1px solid var(--erh-border);padding:.5rem}.erh-weekdays{display:flex;gap:.8rem;flex-wrap:wrap}.erh-public{max-width:1100px;color:var(--erh-ink)}.erh-public .erh-muted,.erh-public .erh-eyebrow{color:var(--erh-muted)}.erh-public form{max-width:780px}@media(max-width:650px){.erh-grid{grid-template-columns:1fr}.erh-toolbar{align-items:flex-start}.erh h2:not(.erh-wysiwyg *){font-size:1.45rem}.erh-slot{padding:.75rem}.erh-calendar-day{min-width:0}}@media print{.erh-tabs,.erh-actions,.erh-day-add,.erh-filters{display:none}.erh-calendar{grid-template-columns:repeat(7,1fr)}.erh-calendar-day{grid-template-columns:1fr}.erh-day{min-height:100px}}

/* Tab colours, borders and spacing come from the CMSMS admin theme. */
.erh-admin #page_tabs .erh-tab-link{color:inherit;text-decoration:none;font:inherit}

/* Admin surfaces inherit the active CMSMS theme, including theme switches.
   No OS dark-mode detection: the CMSMS-selected theme is authoritative. */
.erh-admin{color:inherit;--erh-border:currentColor;--erh-border:color-mix(in srgb,currentColor 25%,transparent)}
.erh-admin .erh-panel,.erh-admin .erh-slot{background:transparent;color:inherit;border-color:var(--erh-border)}
.erh-admin .erh-muted,.erh-admin .erh-eyebrow,.erh-admin .erh-warning{color:inherit}
.erh-admin .erh-warning{font-weight:600}
.erh-admin .erh-calendar{background:transparent;gap:0}
.erh-admin .erh-day,.erh-admin .erh-day-heading{background:transparent;color:inherit;border-right:1px solid var(--erh-border);border-bottom:1px solid var(--erh-border)}
.erh-admin .erh-day.is-outside{background:transparent}
.erh-admin .erh-day.is-outside .erh-day-number{opacity:.7}
.erh-admin .erh-day.is-today{background:transparent;box-shadow:inset 0 3px currentColor}
.erh-admin .erh-day-heading{background:color-mix(in srgb,currentColor 6%,transparent)}
.erh-admin .erh-notice,.erh-admin .erh-error{background:transparent;color:inherit}
/* Status cards retain their paired light backgrounds and dark text in either theme. */
.erh-admin .erh-cal-entry{color:#333}
.erh-admin .erh-status-pending{color:#74520c}
.erh-admin .erh-status-confirmed{color:#1e543d}
.erh-admin .erh-status-published{color:#344b80}
.erh-admin .erh-status-declined,.erh-admin .erh-status-cancelled{color:#72574f}
.erh-admin .erh-status-draft{color:#49424f}
.erh-admin .erh-cal-entry a,.erh-admin .erh-cal-entry small{color:inherit}

/* Day timetable: one minute per pixel, with elapsed-time rows for DST days. */
.erh-all-day{display:grid;grid-template-columns:6rem 1fr;gap:.5rem;padding:.6rem;border:1px solid var(--erh-border)}
.erh-timetable-scroll{max-height:780px;overflow:auto;border:1px solid var(--erh-border);border-radius:6px}
.erh-timetable{position:relative;background:transparent}
.erh-hour{position:absolute;left:0;right:0;height:60px;border-top:1px solid var(--erh-border);pointer-events:none}
.erh-hour>span{display:block;width:95px;padding:.2rem .4rem;font-size:.8rem}
.erh-timed-columns{position:absolute;top:0;bottom:0;left:100px;right:0;border-left:1px solid var(--erh-border)}
.erh-timed-position{position:absolute;padding:1px 3px;min-height:3px}
.erh-timed-position .erh-cal-entry{height:100%;margin:0;overflow:auto;min-height:0;padding:.3rem .4rem;line-height:1.3}
@media print{.erh-timetable-scroll{max-height:none;overflow:visible}}

/* Make each dated heading a full-width, keyboard-accessible day link. */
.erh-day-heading .erh-day-link,.erh-day-number .erh-day-link{display:block;flex:1;padding:.25rem 0;text-decoration:underline;text-underline-offset:.15em}

/* Isolate public date fieldsets from Bootstrap's floated legend and site layouts. */
.erh-public fieldset.erh-slot{display:block;float:none;width:100%;min-inline-size:0;max-width:100%}
.erh-public fieldset.erh-slot>legend{float:none;display:block;width:auto;max-width:100%;margin:0 0 .5rem;padding:0 .4rem;font-size:1.1rem;line-height:1.4}
.erh-public fieldset.erh-slot>.erh-grid{clear:both;display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}
.erh-public .erh-grid>.erh-field{float:none;position:static;width:auto;min-width:0;max-width:100%}
.erh-public .erh-field>input,.erh-public .erh-field>select,.erh-public .erh-field>textarea{min-width:0;box-sizing:border-box}
.erh-public .erh-date-actions{clear:both;display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:.5rem;margin:.75rem 0 0}
.erh-public .erh-date-actions>button,.erh-public .erh-actions>button{float:none;position:static;margin:0;max-width:100%;white-space:normal}
@media(max-width:650px){.erh-public fieldset.erh-slot>.erh-grid{grid-template-columns:1fr}}

/* Picture/editor layout copied from PageSections, scoped to room content. */
.erh-room-editor-grid{display:grid;grid-template-columns:minmax(220px,305px) minmax(0,1fr);gap:1.1rem;align-items:start}
.erh-room-picture-column,.erh-room-content-column{min-width:0}
.erh-room-field{margin:0 0 .8rem}
.erh-room-field>label{display:block;font-weight:600;margin:0 0 .35rem}
.erh-room-title,.erh-room-alt{display:block;width:100%;box-sizing:border-box}
.erh-room-picture{width:100%}
.erh-room-preview-wrap{position:relative;width:100%;min-height:180px;border:1px solid rgba(127,127,127,.35);border-radius:.25rem;overflow:hidden;background:rgba(127,127,127,.06)}
.erh-room-preview{display:block;width:100%;height:100%;min-height:180px;max-height:260px;object-fit:cover}
.erh-room-preview.is-hidden{display:none}
.erh-room-empty-preview{min-height:180px;display:flex;align-items:center;justify-content:center;padding:1rem;text-align:center;opacity:.7}
.erh-room-empty-preview.is-hidden{display:none}
.erh-room-icon-button{position:absolute;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid rgba(127,127,127,.35);border-radius:50%;background:Canvas;color:CanvasText;box-shadow:0 2px 8px rgba(0,0,0,.14);cursor:pointer}
.erh-room-icon-button svg{width:19px;height:19px;fill:currentColor}
.erh-room-choose-image{top:10px;left:10px}
.erh-room-trash{right:10px;bottom:10px}
.erh-room-icon-button:disabled{opacity:.4;cursor:not-allowed}

@media(max-width:850px){.erh-room-editor-grid{grid-template-columns:1fr}.erh-room-preview-wrap{max-width:420px}}

.erh-room-content-column .erh-field>textarea{width:100%;max-width:100%;box-sizing:border-box}

.erh-month-navigation{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:1rem 0}.erh-month-navigation h3{margin:0;text-align:center;flex:1}

.erh-status-pencil{border-left:4px solid #9d80d9}

.erh-room-colours{margin:18px 0;padding:12px;border:1px solid #78838d;border-radius:5px}.erh-colour-grid{display:grid;grid-template-columns:repeat(6,54px);gap:10px}.erh-colour-choice{position:relative;cursor:pointer;text-align:center}.erh-colour-choice>input{position:absolute;opacity:0;width:1px;height:1px}.erh-colour-choice>span{display:grid;place-items:center;background:var(--erh-swatch);height:36px;border:2px solid transparent;border-radius:5px}.erh-colour-choice small{display:block;font-size:11px}.erh-colour-tick{visibility:hidden;color:#fff;font-size:22px;font-weight:bold}.erh-colour-choice input:checked+span{border-color:currentColor;outline:2px solid currentColor;outline-offset:2px}.erh-colour-choice input:checked+span .erh-colour-tick{visibility:visible}.erh-colour-choice input:focus-visible+span{outline:3px solid #168deb;outline-offset:3px}

.erh-price-row{display:grid;grid-template-columns:2fr 1fr 3fr auto;gap:12px;align-items:end;margin:12px 0}.erh-price-row label{display:flex;flex-direction:column;gap:6px}.erh-price-row input,.erh-price-row textarea{width:100%;min-width:0}.erh-price-row textarea{min-height:64px}@media(max-width:800px){.erh-price-row{grid-template-columns:1fr 1fr}}
