.booking-page{display:grid;gap:24px;max-width:1180px;margin:0 auto 44px}.booking-tool{padding:24px}.booking-tool-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.booking-tool-heading h2{margin:0}.booking-tool-heading p{margin:4px 0;color:var(--muted)}#booking-status{padding:8px 13px;border-radius:999px;background:#e7f4e7;color:#0b6337;font-weight:bold;max-width:520px}.booking-settings{display:grid;grid-template-columns:1.25fr .75fr 2fr auto;gap:12px;align-items:end;margin:18px 0}.booking-settings label,.booking-entry-fields label{font-weight:bold}.booking-settings input,.booking-settings textarea,.booking-entry-fields input,.booking-entry-fields select{display:block;width:100%;min-width:0;padding:8px 10px;border:1px solid #a6c0ac;border-radius:9px;background:#fffefa;color:var(--forest);font:inherit;font-size:21px}.booking-settings textarea{resize:vertical;line-height:1.05}.booking-settings .button{margin-bottom:0}.booking-entry-form{margin:18px 0}.booking-entry-fields{display:grid;grid-template-columns:.65fr 1fr 1fr 1fr 1.4fr auto;gap:10px;align-items:end}.booking-entry-form fieldset{padding:15px;border:1px solid #c8d8cb;border-radius:14px}.booking-entry-form legend{padding:0 8px;font-weight:bold;font-size:23px}.booking-error{min-height:1.25em;margin:4px 0 0;color:#b31825;font-weight:bold}.booking-error:empty{display:none}.booking-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.booking-summary div{padding:12px 14px;border:1px solid #d3dfd5;border-radius:13px;background:#fbfdf9}.booking-summary span{display:block;color:var(--muted);font-size:18px}.booking-summary strong{display:block;color:var(--forest);font-size:29px;line-height:1}.booking-legend{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.booking-legend span{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:999px;font-weight:bold}.booking-legend span:before{content:'';width:12px;height:12px;border-radius:4px;background:currentColor}.is-free{background:#e5f5df!important;color:#18753f!important}.is-reserved{background:#dfeefe!important;color:#1765a6!important}.is-occupied{background:#ffd9d9!important;color:#b00020!important}.is-cleaning{background:#ffe7c6!important;color:#c95e00!important}.is-blocked{background:#e5e8e7!important;color:#4c5751!important}.booking-grid-scroll,.booking-list-scroll{max-width:100%;overflow:auto;border:1px solid #bdd0c2;border-radius:13px;background:#fff}.booking-grid-scroll:focus-visible{outline:3px solid #c99f38;outline-offset:3px}.booking-grid{width:100%;min-width:1180px;border-collapse:collapse;table-layout:fixed}.booking-grid caption{padding:10px;background:#f7faf5;color:var(--forest);font-weight:bold;text-align:left}.booking-grid th,.booking-grid td{height:41px;border-right:1px solid #d7e2d9;border-bottom:1px solid #d7e2d9;padding:3px;text-align:center}.booking-grid thead th{background:#e9f3e7;color:#12492e;line-height:1}.booking-grid th:first-child{position:sticky;left:0;width:105px;background:#f7faf5;z-index:2}.booking-grid thead th:first-child{z-index:3}.booking-day small{display:block;color:#748176;font-size:13px}.booking-grid td{font-size:15px;font-weight:bold}.booking-grid td.is-free{font-weight:normal}.booking-grid td[data-title]{cursor:help}.booking-list-panel{margin-top:20px}.booking-list-panel>div:first-child{display:flex;align-items:end;justify-content:space-between;gap:20px}.booking-list-panel h3{margin:0}.booking-list-panel p{margin:0;color:var(--muted)}.booking-list{width:100%;min-width:760px;border-collapse:collapse}.booking-list th,.booking-list td{padding:8px 10px;border-bottom:1px solid #dce5de;text-align:left}.booking-list th{background:#edf5eb}.booking-list button{border:1px solid #e3b5b9;border-radius:7px;background:#fff5f5;color:#a40e1e;font:700 18px "TH Sarabun New",Tahoma,sans-serif;cursor:pointer}.booking-empty td{text-align:center;color:var(--muted)}.booking-caveat{color:#526757;font-size:20px;overflow-wrap:anywhere}.booking-tool button:disabled{opacity:.45;cursor:not-allowed}.booking-page .reading-card li{margin:8px 0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.booking-page,.booking-tool{min-width:0}.booking-grid-scroll,.booking-list-scroll{width:100%;min-width:0}
@media(max-width:980px){.booking-settings{grid-template-columns:1fr 1fr}.booking-room-list{grid-column:1/-1}.booking-entry-fields{grid-template-columns:1fr 1fr 1fr}.booking-entry-fields .button{min-height:44px}.booking-list-panel>div:first-child{display:block}}
@media(max-width:650px){.booking-page{gap:18px}.booking-tool{padding:16px}.booking-tool-heading{display:block}#booking-status{border-radius:11px}.booking-settings,.booking-entry-fields,.booking-summary{grid-template-columns:1fr}.booking-room-list{grid-column:auto}.booking-tool .tool-actions button{width:100%}.booking-grid-scroll,.booking-list-scroll{scrollbar-color:#3f8b63 #e7efe7}}
@page{size:A4 landscape;margin:8mm}
@media print{.booking-page{display:block;max-width:none;margin:0}.booking-page>.reading-card,.booking-settings,#booking-entry-form,.booking-summary,.booking-list-panel,.booking-caveat,.booking-tool-heading p,#booking-status{display:none!important}.booking-tool{padding:0;border:0;box-shadow:none}.booking-tool-heading h2{font-size:23px}.booking-legend{margin:4px 0}.booking-legend span{padding:2px 5px;font-size:11px}.booking-grid-scroll{overflow:visible;border:0}.booking-grid{min-width:0;width:100%;font-size:8px}.booking-grid caption{padding:3px}.booking-grid th,.booking-grid td{position:static!important;height:24px;padding:1px;border:1px solid #777}.booking-grid th:first-child{width:9%}.booking-grid td{font-size:8px}.booking-grid .is-free{background:#fff!important;color:#000!important}.resource-intro{padding:0}.resource-intro h1{font-size:24px;margin:0}.resource-intro p{display:none}}
