.lsr-app{--lsr-accent:#166534;--lsr-bg:#f5f8f6;max-width:720px;margin:1rem auto;padding:clamp(16px,4vw,32px);border:1px solid #d4dfd7;border-radius:18px;background:var(--lsr-bg);color:#18251d;font:16px/1.5 system-ui,sans-serif}.lsr-app *{box-sizing:border-box}.lsr-app h2{margin:0 0 16px;color:inherit;font-size:1.6rem}.lsr-app .lsr-notice{padding:12px;background:#fff2cc;border-radius:8px}.lsr-app .lsr-form{display:grid;gap:16px}.lsr-app label{display:grid;gap:6px;font-weight:600}.lsr-app input,.lsr-app select,.lsr-app button{width:100%;min-height:48px;padding:10px 12px;border:1px solid #7a8c80;border-radius:8px;background:white;color:#18251d;font:inherit}.lsr-app button{background:var(--lsr-accent);color:white;cursor:pointer;font-weight:700}.lsr-app :focus-visible{outline:3px solid #145ac9;outline-offset:3px}.lsr-app .lsr-slot{padding:14px;background:white;border:1px solid #c6d9cb;border-radius:8px}.lsr-app .lsr-results{margin-top:18px}

.lsr-app [hidden]{display:none!important}
.lsr-app .lsr-contact{display:grid;gap:16px}.lsr-app .lsr-checkout{margin-top:24px;border-top:1px solid #bacabd;padding-top:16px}.lsr-app .lsr-slot{color:#18251d;text-align:left;margin:8px 0}.lsr-app .lsr-accept{display:flex;align-items:flex-start;gap:10px}.lsr-app .lsr-accept input{width:22px;min-height:22px;flex-shrink:0}.lsr-app button:disabled{opacity:.6;cursor:wait}

.lsr-app{max-width:1200px;background:#f7f9f7;padding:clamp(14px,3vw,32px)}.lsr-app .lsr-form{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));align-items:end}.lsr-app .lsr-form p{grid-column:1/-1;margin:0;font-size:.9rem}.lsr-app .lsr-week-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:28px 0 16px}.lsr-app .lsr-week-nav button{width:auto;background:white;color:#244735}.lsr-app .lsr-week-title{text-align:center}.lsr-app .lsr-calendar-scroll{overflow-x:auto;padding:3px}.lsr-app .lsr-calendar{width:100%;min-width:880px;table-layout:fixed;border-collapse:separate;border-spacing:5px;margin:0;border:0}.lsr-app .lsr-calendar th,.lsr-app .lsr-calendar td{border:0;border-radius:10px;text-align:center;padding:10px 6px;font-size:14px;vertical-align:middle}.lsr-app .lsr-calendar thead th{background:#214637;color:white;height:56px}.lsr-app .lsr-calendar tbody th{background:#e9eeeb;width:120px;white-space:nowrap}.lsr-app .lsr-calendar td{height:110px;background:#e6f3e6;padding:0}.lsr-app .lsr-calendar td.lsr-unavailable{background:#e9eceb;color:#68726b;padding:10px}.lsr-app .lsr-calendar td.lsr-minimum{background:#fff0cc;color:#754611;padding:10px}.lsr-app .lsr-calendar .lsr-slot{height:110px;margin:0;text-align:center;background:transparent;border:2px solid transparent;font-size:16px;line-height:1.5;padding:12px 6px}.lsr-app .lsr-calendar .lsr-slot:hover{border-color:#36794e;background:#d6ecd9}.lsr-app .lsr-calendar .lsr-slot.lsr-selected{background:#166534;color:white;border-color:#166534}.lsr-app .lsr-calendar-hint{font-size:13px;color:#58685f}.lsr-app .lsr-checkout{background:white;border:1px solid #d4dfd7;border-radius:14px;padding:24px}.lsr-app .lsr-contact{max-width:650px}.lsr-app .lsr-summary p{margin:8px 0}.lsr-app button:disabled{cursor:not-allowed}@media(max-width:640px){.lsr-app .lsr-form{grid-template-columns:1fr}.lsr-app .lsr-week-nav{gap:5px}.lsr-app .lsr-week-nav button{font-size:13px;padding:8px}.lsr-app .lsr-week-title{font-size:14px}.lsr-app .lsr-calendar th:first-child{position:sticky;left:0;z-index:1;box-shadow:3px 0 5px #0001}.lsr-app .lsr-checkout{padding:16px}}

/* Explicit wrapping and backgrounds keep theme button rules inside each slot. */
.lsr-app .lsr-calendar td:not(.lsr-unavailable):not(.lsr-minimum){background:#b5d96b}.lsr-app .lsr-calendar button.lsr-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:100%;min-width:0;max-width:100%;height:auto;min-height:110px;white-space:normal!important;overflow-wrap:anywhere;word-break:normal;line-height:1.3;background:#b5d96b;color:#183e27;text-transform:none;letter-spacing:normal}.lsr-app .lsr-calendar .lsr-slot-primary{display:block;max-width:100%;font-size:20px;font-weight:750;white-space:normal}.lsr-app .lsr-calendar .lsr-slot-secondary{display:block;max-width:100%;font-size:14px;font-weight:500;white-space:normal}.lsr-app .lsr-calendar button.lsr-slot:hover{background:#a4ca57;border-color:#36794e}.lsr-app .lsr-calendar button.lsr-slot.lsr-selected{background:#166534;color:#fff;border-color:#166534}

/* Keep complete availability labels legible in portrait and landscape. */
.lsr-app .lsr-calendar{min-width:1120px}.lsr-app .lsr-calendar button.lsr-slot{overflow-wrap:normal;word-break:normal}.lsr-app .lsr-calendar .lsr-slot-primary{font-size:18px;white-space:nowrap;overflow-wrap:normal;word-break:normal;hyphens:none}.lsr-app .lsr-calendar .lsr-slot-secondary{overflow-wrap:normal;word-break:normal;hyphens:none}.lsr-app .lsr-calendar-scroll{-webkit-text-size-adjust:100%;text-size-adjust:100%}

/* Compact week follows the component width, including tablet split views. */
.lsr-app{container-type:inline-size}.lsr-app .lsr-compact-label{display:none}.lsr-app .lsr-calendar{min-width:0}.lsr-app .lsr-calendar tbody th{white-space:normal}.lsr-app .lsr-calendar-hint{line-height:1.6}
@container (max-width: 900px){.lsr-app .lsr-calendar{width:100%;min-width:0;border-spacing:3px;table-layout:fixed}.lsr-app .lsr-calendar th:first-child{width:48px;position:static;box-shadow:none}.lsr-app .lsr-calendar th,.lsr-app .lsr-calendar td{font-size:12px;padding:4px 1px;border-radius:6px}.lsr-app .lsr-calendar thead th{height:48px;overflow-wrap:normal}.lsr-app .lsr-calendar td{height:72px}.lsr-app .lsr-calendar button.lsr-slot{min-height:72px;padding:4px 1px;gap:0;border-radius:6px}.lsr-app .lsr-calendar .lsr-slot-primary,.lsr-app .lsr-calendar .lsr-slot-secondary,.lsr-app .lsr-calendar .lsr-full-label{display:none}.lsr-app .lsr-calendar .lsr-compact-label{display:block;font-size:20px;font-weight:700}.lsr-app .lsr-calendar .lsr-selected .lsr-compact-label{display:none}.lsr-app .lsr-calendar .lsr-selected::after{content:"✓";font-size:22px}.lsr-app .lsr-calendar td.lsr-unavailable,.lsr-app .lsr-calendar td.lsr-minimum{padding:4px 1px}.lsr-app .lsr-calendar td[data-symbol]::after{content:attr(data-symbol);font-size:17px;font-weight:600}.lsr-app .lsr-calendar-scroll{padding:0;overflow:visible}.lsr-app .lsr-week-nav{flex-wrap:wrap}.lsr-app .lsr-week-title{flex:1;font-size:14px}.lsr-app .lsr-week-nav button{font-size:12px;padding:8px;min-height:44px}}


/* Monthly availability: full month on every screen, times below on narrow containers. */
.lsr-app .lsr-month-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:start}
.lsr-app .lsr-month-panel,.lsr-app .lsr-day-detail{min-width:0;padding:16px;background:white;border:1px solid #d4dfd7;border-radius:14px}
.lsr-app .lsr-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.lsr-app .lsr-day-heading{text-align:center;padding:8px 0;font-size:13px;font-weight:600}
.lsr-app button.lsr-month-day{min-width:0;min-height:44px;padding:8px 0;background:#b5d96b;color:#183e27;border:2px solid transparent;font-size:16px;letter-spacing:normal}
.lsr-app button.lsr-month-day:disabled{background:#e9eceb;color:#6a746e;opacity:1;cursor:default}
.lsr-app button.lsr-month-day:not(:disabled):hover{border-color:#166534}
.lsr-app button.lsr-month-day.lsr-selected,.lsr-app .lsr-day-detail button.lsr-selected{background:#166534;color:white}
.lsr-app .lsr-month-legend{font-size:13px;margin:14px 0 0;color:#415b36}
.lsr-app .lsr-day-detail h3{margin:0;font-size:20px;text-transform:capitalize;color:inherit}
.lsr-app .lsr-day-detail button.lsr-slot{display:flex;flex-direction:column;gap:4px;background:#b5d96b;color:#183e27;margin:10px 0;padding:14px;white-space:normal;word-break:normal;text-transform:none;letter-spacing:normal}
.lsr-app .lsr-day-detail .lsr-slot-primary{font-size:20px;font-weight:700}.lsr-app .lsr-day-detail .lsr-slot-secondary{font-size:15px;font-weight:400}
.lsr-app .lsr-day-detail button.lsr-selected{background:#166534;color:white;border-color:#166534}
@container(max-width:700px){.lsr-app .lsr-month-layout{grid-template-columns:1fr;gap:16px}.lsr-app .lsr-month-panel,.lsr-app .lsr-day-detail{padding:10px}.lsr-app .lsr-month-grid{gap:3px}.lsr-app button.lsr-month-day{font-size:14px}.lsr-app .lsr-day-heading{font-size:12px}}
/* Clear availability legend and server-backed retention notice. */
.lsr-app .lsr-month-legend{display:flex;flex-wrap:wrap;gap:10px 16px}.lsr-app .lsr-month-legend span{display:inline-flex;align-items:center;gap:6px}.lsr-app .lsr-month-legend i{display:inline-block;width:16px;height:16px;border-radius:50%;border:1px solid #8e9a90;flex-shrink:0}.lsr-app .lsr-legend-available{background:#b5d96b}.lsr-app .lsr-legend-unavailable{background:#e9eceb}.lsr-app .lsr-legend-selected{background:#166534}.lsr-app .lsr-hold-notice{margin:16px 0;padding:20px;border:2px solid #916300;border-radius:12px;background:#fff0cc;color:#493200;text-align:center;font-size:18px;font-weight:700}.lsr-app .lsr-hold-clock{display:block;font-size:36px;line-height:1.4;font-variant-numeric:tabular-nums;margin:8px 0}.lsr-app .lsr-hold-notice p{margin:0;font-weight:600}
