:root{color:#17211c;background:#f7f4ec;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:28px 0 48px}.hero{align-items:center;display:grid;justify-content:center;padding:24px 0 34px;text-align:center}.eyebrow{color:#6c776e;font-size:.78rem;font-weight:800;letter-spacing:.08em;margin:0 0 6px;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.5rem,7vw,5.5rem);line-height:.92;margin-bottom:14px}h2{font-size:1.45rem;margin-bottom:0}h3{font-size:1rem;margin-bottom:12px}.intro{color:#526055;font-size:1.06rem;margin-left:auto;margin-right:auto;max-width:560px}.booking-layout{align-items:start;display:grid;gap:22px;grid-template-columns:minmax(0,1fr) 360px}.calendar-panel,.admin-panel,.error-panel{background:#fffdf8;border:1px solid #e4ddd0;border-radius:8px}.calendar-panel{padding:26px}.admin-panel{padding:18px;position:sticky;top:16px}.error-panel{margin-top:40px;padding:22px}.error-panel h1{font-size:2rem;line-height:1.05}.calendar-toolbar{align-items:center;display:flex;justify-content:space-between;margin-bottom:28px}.calendar-toolbar h2{color:#202420;font-size:1.55rem;font-weight:900;text-align:center}.icon-button,.close-button,.delete-button{align-items:center;background:#fff;border:1px solid #e2ded5;border-radius:8px;color:#263128;display:inline-flex;height:40px;justify-content:center;min-width:40px;padding:0 10px}.icon-button,.close-button{width:40px}.icon-button span,.close-button span,.delete-button span,.primary-button span{font-weight:900;line-height:1}.weekday-grid,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekday-grid{color:#5f665f;font-size:1rem;font-weight:500;gap:10px;margin-bottom:18px;text-align:center}.calendar-grid{gap:10px}.date-cell{align-items:center;aspect-ratio:1 / .78;background:transparent;border:0;border-radius:7px;color:#202420;display:flex;flex-direction:column;gap:4px;justify-content:center;min-height:70px;padding:8px;text-align:center;transition:background .16s ease,color .16s ease,box-shadow .16s ease}.date-cell:hover,.date-cell.is-selected{background:#eef2f0;box-shadow:inset 0 0 0 1px #cdd8d1}.date-cell.is-muted{color:#a5a7a5}.date-cell.is-booked{background:#e8f4ee;color:#174b32}.date-cell.is-range-selected{background:#1477e8;color:#fff}.date-cell.is-range-edge{box-shadow:none}.date-cell.is-past{background:transparent;color:#b7b4ae;opacity:1}.date-cell.is-past .booking-pill{color:#9d9a94}.date-number{font-size:1.18rem;font-weight:500;line-height:1}.booking-pill{background:transparent;border-radius:0;color:#2e7350;display:block;font-size:.68rem;font-weight:800;line-height:1.2;max-width:100%;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.date-cell.is-range-selected .booking-pill{color:#fff}.date-cell.is-booked.is-range-selected{background:#1477e8}.panel-heading{margin-bottom:16px}.booking-form{display:grid;gap:12px}label{color:#465147;display:grid;font-size:.88rem;font-weight:800;gap:6px}input,select,textarea{background:#fff;border:1px solid #dcd4c6;border-radius:8px;color:#17211c;padding:11px 12px;width:100%}select:disabled{background:#e9e3d8;color:#8b857b;cursor:not-allowed}textarea{resize:vertical}.checkbox-label{align-items:center;background:#fff;border:1px solid #ded6c8;border-radius:8px;display:flex;gap:10px;padding:11px 12px}.checkbox-label input{accent-color:#2e7350;height:18px;padding:0;width:18px}.checkbox-label:has(input:disabled){color:#8b857b;opacity:.7}.form-row{display:grid;gap:10px;grid-template-columns:1fr 1fr}.form-error{background:#fff0eb;border:1px solid #e6b3a6;border-radius:8px;color:#8a2f1d;font-weight:700;margin-bottom:0;padding:10px 12px}.form-actions{display:flex;flex-wrap:wrap;gap:10px}.modal-actions{display:grid;gap:10px;grid-template-columns:1fr 1fr}.primary-button,.secondary-button{align-items:center;border:0;border-radius:8px;display:inline-flex;font-weight:800;gap:8px;justify-content:center;min-height:42px;padding:10px 14px}.primary-button{background:#2e7350;color:#fff}.secondary-button{background:#eee8dc;color:#263128}.booking-list{border-top:1px solid #e4ddd0;margin-top:20px;padding-top:18px}.booking-row{align-items:center;border-bottom:1px solid #ece6da;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;padding:9px 0}.booking-row>button:first-child{background:transparent;border:0;color:inherit;display:grid;gap:2px;padding:0;text-align:left}.booking-row span{color:#657067;font-size:.82rem}.booking-row .full-house-text{color:#2e7350;font-weight:900;letter-spacing:.04em}.delete-button{color:#8a2f1d}.locked-delete{color:#8b857b;font-size:.78rem;font-weight:800}.modal-backdrop{align-items:center;background:#17211c6b;display:flex;inset:0;justify-content:center;padding:18px;position:fixed;z-index:10}.date-modal{background:#fffdf8;border-radius:8px;box-shadow:0 24px 70px #17211c3d;max-height:calc(100vh - 36px);max-width:520px;overflow:auto;padding:22px;position:relative;width:min(100%,520px)}.close-button{position:absolute;right:16px;top:16px}.detail-block{display:grid;gap:16px;margin-top:18px}dl{display:grid;gap:12px;margin:0}dl div{display:grid;gap:2px}dt{color:#6c776e;font-size:.78rem;font-weight:800;text-transform:uppercase}dd{margin:0}.empty-state{background:#f3efe6;border-radius:8px;display:grid;gap:12px;margin-top:18px;padding:16px}.empty-state p{margin:0}@media(max-width:900px){.hero,.booking-layout{display:grid;grid-template-columns:1fr}.hero{align-items:start}.admin-panel{position:static}}@media(max-width:620px){.app-shell{width:min(100% - 20px,1180px);padding-top:14px}h1{font-size:3rem}.calendar-panel,.admin-panel{padding:12px}.calendar-toolbar{margin-bottom:18px}.calendar-toolbar h2{font-size:1.25rem}.calendar-grid,.weekday-grid{gap:4px}.weekday-grid{font-size:.82rem;margin-bottom:10px}.date-cell{aspect-ratio:auto;min-height:54px;padding:6px}.date-number{font-size:1rem}.booking-pill{font-size:.58rem}.form-row,.modal-actions{grid-template-columns:1fr}}
