/* Shared AHV / Villa Raag spacing and quotation workflow. */
:root{--space-xs:8px;--space-sm:12px;--space-md:20px;--space-lg:24px;--space-xl:32px}
html{scroll-padding-top:24px}body{font-size:16px}.intro{max-width:900px;margin-bottom:32px}h1{text-wrap:balance;max-width:850px;font-size:clamp(32px,4vw,46px)}
.layout{grid-template-columns:minmax(0,1fr) 330px;gap:24px}.grid{gap:24px 20px}.wrap{max-width:1280px}
fieldset{padding:24px;margin-bottom:24px}legend{margin-bottom:24px;font-size:19px}.section-intro{margin:0 0 24px;clear:both;font-size:14px;color:#56655d;line-height:1.6}
label{font-size:14px;line-height:1.5}input,select,textarea{margin-top:8px;padding:12px;min-height:48px}input[type=number]{font-variant-numeric:tabular-nums}select{padding-right:42px}textarea{min-height:100px}small,.muted{font-size:13px;line-height:1.55}small{margin-top:8px}.muted{margin:12px 0 0}fieldset>label+label,fieldset>label+.grid,fieldset>.grid+label{margin-top:24px}.check{gap:10px;align-items:flex-start;margin-top:20px;min-height:44px;padding:8px 0}.check input[type=checkbox]{width:20px;height:20px;min-height:20px;margin:1px 0 0;accent-color:var(--accent)}
button,.button{min-height:48px;padding:12px 18px;font-size:14px;line-height:1.4;transition:background-color .16s,border-color .16s}button:hover:not(:disabled){filter:brightness(.95)}button.secondary:hover:not(:disabled){background:var(--paper)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5}.actions{margin-top:24px;gap:12px}.picker-toggle{min-height:36px;padding:0;top:14px}.programme-picker [role=option]{padding:14px}.programme-picker input{padding-right:44px}
#bookingChangeNotice{margin-top:24px;padding:16px;border:1px solid #bba675;border-radius:6px;background:#fffaf0}#bookingChangeNotice p{margin:0 0 16px;font-size:14px}#bookingError:empty{display:none}#bookingError{color:#a53320}
#roomEditor{padding:24px;border:1px solid #acbcb2;border-left:4px solid var(--accent);border-radius:10px;background:white;margin-bottom:24px;scroll-margin-top:24px}.editor-heading,.review-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.editor-heading h2,.review-heading h2{font-size:26px;margin:8px 0 0}.editor-heading button{flex-shrink:0}.editor-heading .eyebrow{font-size:10px}.editor-heading+P{margin:16px 0 24px}#roomEditor fieldset{padding:24px 0;margin:0;box-shadow:none;border-radius:0;border-top:1px solid var(--line);background:transparent}#roomEditor fieldset legend{font-size:17px;margin-bottom:24px}#roomEditor #roomBasics{padding-top:0;border-top:0}#roomEditor .guest-card{margin:20px 0;padding:20px;background:var(--paper);border-radius:8px}#roomEditor .guest-card .grid{gap:20px}#roomEditor .guest-card h3{margin-bottom:24px}#roomEditor .guest-card button.remove{min-height:44px;padding:10px 14px;font-size:13px;margin:0 0 12px 12px}#roomEditor .guest-card button.companion{min-height:44px;padding:10px 14px!important;font-size:13px!important;margin-top:12px!important}#roomEditor .guest-card details{margin-top:20px}#roomEditor .guest-card .check{margin-top:0;align-self:start}#roomEditor .guest-card .sessions{clear:both}#roomEditor .guest-card .sessions[open]>.grid{margin-top:20px}#vrPeople>details[open]>label{margin-top:20px}#vrPeople>button{margin:0 0 4px}#ahvSavings>.grid,#ahvSavings>details{margin-top:20px}#ahvSavings details[open]>label{margin-top:20px}#ahvCategoryDetails{padding-top:16px}#roomDiscount>.check{margin-top:16px}.editor-actions{border-top:1px solid var(--line);padding-top:24px}.editor-actions>label{max-width:260px}.editor-actions .actions{margin-top:20px}#editorStatus{color:#a53320;line-height:1.5}#editorStatus:empty{display:none}
#roomsPanel{scroll-margin-top:24px}.empty-state{padding:20px;background:var(--paper);border-radius:6px;font-size:14px;color:#56655d;margin:0}.room-row{display:grid;grid-template-columns:minmax(0,1fr) 76px 170px;gap:16px;padding:20px 0;border-top:1px solid var(--line)}.room-row:first-child{border-top:0;padding-top:0}.room-row h3{font-family:Mulish,system-ui,sans-serif;font-size:17px;font-weight:700;margin:0 0 8px}.room-row p{font-size:13px;margin:6px 0;line-height:1.5}.room-row .room-programme{color:#56655d;overflow-wrap:anywhere}.room-row-quantity{font-size:12px}.room-row-quantity input{width:76px;text-align:center}.room-row-price{text-align:right;padding-top:4px;overflow-wrap:anywhere}.room-row-price strong{font-size:15px;font-variant-numeric:tabular-nums}.room-row-price small{font-size:12px}.room-row-actions{grid-column:1/-1;display:flex;gap:12px;flex-wrap:wrap}.room-row-actions button{min-height:44px;padding:10px 14px;font-size:13px}#roomStatus{font-size:14px;line-height:1.5;margin:16px 0}#roomStatus:empty{display:none}#newRoomSetup{margin-top:8px;width:100%}
#offerPanel #offerState{margin-bottom:12px}#offerPanel .check{margin-top:0}#compSettings{border-top:1px solid var(--line);margin-top:16px;padding-top:24px;display:grid;gap:24px}#compChoice{display:grid;gap:20px}#compRoomSelectors{padding-top:4px}.offer-inactive{background:#f0f1eb;box-shadow:none}body.vr .offer-inactive{background:#eee9e1}
#bookingSummary{padding:24px;position:sticky;top:24px;border-radius:10px;box-shadow:none}#bookingSummary h2{font-size:25px;margin:12px 0 24px}.summary-counts{display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0}.summary-counts strong{display:block;font-size:28px;font-variant-numeric:tabular-nums;line-height:1.2}.summary-counts span{font-size:12px;color:#56655d}#summaryDates{font-size:13px;margin:16px 0}#summaryPrice{padding:16px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.5}#summaryPrice .amount{font-size:clamp(23px,2.2vw,30px);margin:0;overflow-wrap:anywhere}.savings-total{font-size:13px;color:var(--accent);font-weight:600;margin:12px 0 0}.group-notice{padding:14px 16px;background:var(--paper);border-left:3px solid var(--accent);font-size:13px;line-height:1.6;margin:12px 0}#summaryState{font-size:13px;color:#8a4324;margin:16px 0}#summaryState:empty{display:none}#summaryReview{width:100%;margin-top:8px}#bookingSummary>small{margin-top:16px}#calculate{width:100%;margin:0 0 24px}
#quoteReview{padding:32px;background:white;border:1px solid var(--line);border-radius:10px;margin-top:32px;scroll-margin-top:24px}.review-heading{border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:24px}.review-totals h3{margin:0 0 12px}.review-totals .amount{margin:12px 0}.review-room-table{font-size:14px;margin:24px 0}.review-room-table th,.review-room-table td{padding:16px 12px 16px 0;line-height:1.6}.review-room-table td:nth-child(2){font-size:13px;color:#56655d}.review-room-table th:last-child,.review-room-table td:last-child{padding-right:0}.review-room-table th:first-child{width:26%}.review-room-table th:last-child{width:22%}#reviewContent>details{padding:16px;background:var(--paper);border-radius:6px;margin-top:24px}#prepareDocument{margin-top:24px}.invoice-details{margin-top:32px;padding-top:32px}.invoice-details h2{margin-bottom:24px}.invoice-details>.grid{margin-bottom:24px}.invoice-details details[open]>.grid{margin-top:24px}.invoice-details details+label{margin-top:24px}.invoice-details .actions button{min-height:48px}.invoice-details>small{margin-top:12px}#mobileSummary{display:none}#quoteReview table{overflow-wrap:anywhere}#reviewContent{min-width:0}#exportStatus:empty{display:none}
@media(max-width:1050px){.layout{grid-template-columns:minmax(0,1fr) 290px}.room-row{grid-template-columns:minmax(0,1fr) 76px}.room-row-price{grid-column:1/-1;text-align:left;padding:0}.room-row-price small{display:inline;margin-left:10px}.room-row-actions{gap:8px}}
@media(max-width:860px){.layout{grid-template-columns:1fr}#bookingSummary{position:static;display:none}.wrap{padding:24px 18px}#mobileSummary{position:fixed;z-index:30;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border-top:1px solid var(--line);padding:12px 18px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -4px 20px #213d3510}#mobileSummary span{font-size:12px;display:block}#mobileSummary strong{font-size:18px;display:block;font-variant-numeric:tabular-nums}body{padding-bottom:100px}#quoteReview{padding:24px}.review-room-table th:last-child{width:26%}}
@media(max-width:540px){h1{font-size:34px}.intro{margin-bottom:24px}.grid{grid-template-columns:1fr;gap:24px}.full{grid-column:auto}fieldset{padding:20px}#roomEditor{padding:20px 16px}.editor-heading h2,.review-heading h2{font-size:23px}.editor-heading,.review-heading{gap:12px;flex-wrap:wrap}.room-row{gap:16px 12px}.room-row-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.room-row-actions button:nth-child(2):not(:last-child){grid-column:1/-1;grid-row:2}.room-row-price small{display:block;margin-left:0}.room-row-description h3{font-size:16px}.editor-actions>.actions{display:grid;grid-template-columns:1fr 1fr}.editor-actions>.actions button:first-child{grid-column:1/-1}.editor-actions>label{max-width:none}#roomEditor .guest-card{padding:16px}#roomEditor .guest-card .check{margin-top:4px}#quoteReview{padding:20px}.review-room-table thead{display:none}.review-room-table tr{display:grid;grid-template-columns:1fr;border-bottom:1px solid var(--line);padding:16px 0}.review-room-table td{border:0;padding:4px 0!important;text-align:left!important;white-space:normal}.review-room-table td:first-child{font-weight:700}.review-room-table td:last-child{font-size:17px}#prepareDocument{width:100%}.invoice-details .actions{display:grid;grid-template-columns:1fr}.invoice-details .actions button{width:100%}header .vr .brand-logo{max-width:50vw}header .wrap{gap:16px}.vr .brand-logo{width:190px;max-width:50vw}#quoteReview details table td:last-child{white-space:normal}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}button{transition:none}}
@media print{#mobileSummary{display:none!important}body{padding:0}}

#roomEditor details[open]>.grid{margin-top:20px}

/* Room composition must be clear before adding copies. */
.editor-actions>label{max-width:560px}.room-identities{color:var(--accent);font-weight:600}.room-programme{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:8px;font-size:13px;line-height:1.6}.room-programme li{padding-left:12px;border-left:2px solid var(--line)}.review-room-table td:nth-child(2){white-space:pre-line}#editorStatus{margin:20px 0 0;padding:18px;border:1px solid #ba6859;border-radius:6px;background:#fff6f2;color:#812e1e}#editorStatus strong{font-size:16px}#editorStatus ul{padding-left:20px;margin:12px 0}#editorStatus p{font-size:13px;margin:12px 0 0}.field-error-link{min-height:44px;padding:8px 0;background:transparent;color:#812e1e;border:0;box-shadow:none;text-align:left;text-decoration:underline}#editorStatus:focus{outline:2px solid #812e1e;outline-offset:3px}
