.reservation-wrap { padding: 2.4rem 0 4rem; background: #faf9f6; }
.reservation-wrap h1 { font-size: clamp(2rem,4vw,3.2rem); line-height: 1.12; letter-spacing: -.05em; color:#222; }
.reservation-kicker { color:#9c7027; text-transform:uppercase; letter-spacing:.12em; font-size:.62rem; font-weight:700; }
.reservation-intro { max-width:620px; font-size:.88rem; }
.reservation-panel { background:white; border:1px solid #e8e5de; border-radius:16px; padding:1.4rem; }
.reservation-layout { display:grid; grid-template-columns:1fr 360px; gap:1.25rem; align-items:start; }
.reservation-banner { display:flex; align-items:center; gap:.6rem; padding:.75rem 1rem; border:1px solid #f2dcae; border-radius:10px; color:#6d501e; background:#fff7e6; font-size:.75rem; margin:1.2rem 0; }
.reservation-dot { width:8px; height:8px; border-radius:50%; background:#dc9d2f; flex-shrink:0; }
.resource-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.7rem; margin:1rem 0 1.4rem; }
.resource-choice { border:1px solid #e8e5de; border-radius:12px; padding:0; background:#fff; text-align:left; overflow:hidden; transition:border-color .15s; cursor:pointer; }
.resource-choice[aria-pressed=true] { border:2px solid #d99424; }
.resource-choice img { width:100%; height:108px; object-fit:cover; }
.resource-choice .resource-info { padding:.65rem; display:block; }
.resource-choice strong { display:block; font-size:.71rem; color:#292827; line-height:1.35; min-height:2em; }
.resource-choice small { display:block; color:#76726c; font-size:.62rem; margin-top:.3rem; }
.reservation-row { display:flex; align-items:center; gap:.8rem; flex-wrap:wrap; justify-content:space-between; }
.reservation-wrap h2 { font-size:1.12rem; color:#262523; margin-bottom:.8rem; }
.reservation-wrap h3 { font-size:.86rem; margin-bottom:.6rem; color:#262523; }
.reservation-wrap label { display:block; font-weight:600; font-size:.72rem; color:#504c46; margin-bottom:.25rem; }
.reservation-wrap input,.reservation-wrap select,.reservation-wrap textarea { width:100%; border:1px solid #dcd8d1; border-radius:8px; padding:.5rem .65rem; background:#fff; color:#34322f; font:inherit; font-size:.76rem; }
.reservation-wrap input:focus,.reservation-wrap select:focus,.reservation-wrap textarea:focus { outline:2px solid #f0b953; outline-offset:2px; }
.reservation-wrap input[type=checkbox] { width:auto; accent-color:#b57818; }
.reservation-field { margin-bottom:.75rem; }
.reservation-fields { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.reservation-fields .wide { grid-column:1/-1; }
.reservation-button { border:0; border-radius:8px; background:#ffb548; color:#292216; font-size:.73rem; font-weight:700; padding:.65rem .9rem; cursor:pointer; }
.reservation-button.secondary { background:#f0eee8; color:#514c43; }
.reservation-button.danger { background:#fae9e7; color:#a44439; }
.reservation-button:disabled { opacity:.45; cursor:not-allowed; }
.reservation-note { font-size:.7rem; line-height:1.6; color:#7b766e; margin:.55rem 0; }
.reservation-message { font-size:.75rem; border-radius:8px; padding:.65rem .8rem; background:#f0f3ef; color:#34513a; margin:.75rem 0; }
.reservation-message.error { background:#fbece8; color:#9a4031; }
.reservation-slots { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.4rem; margin:.8rem 0; }
.reservation-slot { border:1px solid #d9e6db; border-radius:8px; background:#f2f8f3; color:#3d6944; padding:.5rem .1rem; font-size:.7rem; cursor:pointer; }
.reservation-slot:disabled { background:#f2f0ec; border-color:#e4e0da; color:#a29c93; cursor:not-allowed; }
.reservation-slot.busy { background:#fbece8; border-color:#efd6d0; color:#b5786b; }
.reservation-slot.selected { border:2px solid #d99424; background:#fff4dd; color:#704d11; }
.reservation-empty { border:1px dashed #d8d3ca; border-radius:10px; padding:1rem; color:#888176; background:#fbfaf7; font-size:.75rem; }
.reservation-list { display:grid; gap:.6rem; margin-top:.8rem; }
.reservation-list-item { border:1px solid #e8e5de; border-radius:9px; padding:.65rem .8rem; font-size:.72rem; }
.reservation-badge { display:inline-block; font-size:.6rem; border-radius:20px; padding:.16rem .45rem; background:#f4efe4; color:#8c6d35; margin-left:.25rem; }
.reservation-rule-row { padding:.65rem 0; border-bottom:1px solid #eeeae2; font-size:.73rem; display:flex; justify-content:space-between; gap:1rem; }
.reservation-rule-row:last-child { border-bottom:0; }
.admin-tabs { display:flex; flex-wrap:wrap; gap:.4rem; margin:1.2rem 0; }
.admin-tabs button[aria-selected=true] { background:#ffb548; }
.admin-section[hidden],.reservation-wrap [hidden] { display:none !important; }
.admin-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.admin-card-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.admin-toolbar { display:flex; gap:.4rem; flex-wrap:wrap; align-items:center; }
.admin-table-wrap { overflow:auto; }
.admin-table { width:100%; border-collapse:collapse; font-size:.68rem; }
.admin-table td,.admin-table th { padding:.65rem .45rem; border-bottom:1px solid #eee9e0; text-align:left; vertical-align:top; }
.admin-table th { color:#9c9282; font-size:.6rem; text-transform:uppercase; letter-spacing:.04em; }
.admin-table .reservation-button { font-size:.6rem; padding:.35rem .5rem; }
.admin-weekdays { display:flex; flex-wrap:wrap; gap:.4rem; }
.admin-weekdays label { font-weight:400; font-size:.65rem; }
.admin-settings-summary { display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:1.1rem; }
.admin-settings-summary>div { flex:1; background:white; border:1px solid #e8e5de; border-radius:10px; padding:.8rem; min-width:130px; }
.admin-settings-summary strong { display:block; color:#3e3932; font-size:.95rem; }
.admin-settings-summary small { color:#82796c; font-size:.65rem; }
@media(max-width:1100px) { .reservation-layout { grid-template-columns:1fr 320px; } .admin-card-grid { grid-template-columns:1fr 1fr; } }
@media(max-width:767px) { .reservation-layout,.admin-card-grid,.admin-card-grid.two { grid-template-columns:1fr; } .reservation-panel { padding:1rem; } .resource-choice img { height:85px; } .reservation-slots { grid-template-columns:repeat(4,minmax(0,1fr)); } .reservation-wrap { padding-top:1.5rem; } }
@media(max-width:420px) { .resource-grid { grid-template-columns:1fr; } .resource-choice { display:flex; align-items:center; } .resource-choice img { width:90px; height:90px; } .resource-choice strong { min-height:0; } }
