:root{color-scheme:dark;--bg:#0d1914;--panel:#14271e;--panel2:#1a3025;--line:#365143;--text:#f5f4ee;--muted:#bac5b9;--accent:#cce3b3;--danger:#ffc0b8;--radius:18px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{background:radial-gradient(ellipse 70% 60% at 3% 4%,#264333 0,transparent 60%),var(--bg);color:var(--text);margin:0;min-height:100vh;font-size:15px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit;text-decoration:none}.site-header{max-width:1200px;margin:auto;min-height:95px;display:flex;align-items:center;justify-content:space-between;padding:20px 28px;border-bottom:1px solid #ffffff1c}.brand{display:inline-flex;gap:11px;align-items:center;font-weight:850;letter-spacing:.15em;line-height:1.2;font-size:14px}.brand small{display:block;font-size:9px;letter-spacing:.29em;font-weight:650;margin-top:3px}.brand-mark{width:45px;height:45px;border:1.5px solid var(--accent);border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif;font-weight:400;font-style:italic;font-size:30px;color:var(--accent);letter-spacing:0}.header-meta{font-size:10px;letter-spacing:.23em;color:var(--muted)}.shell{max-width:1180px;margin:auto;padding:68px 28px 55px;display:grid;grid-template-columns: .85fr 1.15fr;column-gap:80px;align-items:start}.intro{padding-top:42px}.eyebrow{letter-spacing:.21em;font-size:10px;color:var(--accent);font-weight:750;margin:0 0 24px}.intro h1{font-size:clamp(48px,5vw,76px);letter-spacing:-.055em;font-weight:680;line-height:1.04;margin:0 0 25px}.intro h1 em{font-family:Georgia,serif;font-weight:400;color:var(--accent);letter-spacing:-.06em}.lede{font-size:17px;line-height:1.65;max-width:360px;color:var(--muted)}.feature-line{display:flex;flex-wrap:wrap;gap:14px;margin-top:45px;font-size:10px;letter-spacing:.11em;color:var(--accent)}.feature-line span{border-left:2px solid var(--accent);padding-left:10px}.booking-panel{background:var(--panel);border:1px solid #49624a;border-radius:var(--radius);box-shadow:0 25px 75px #00000050;padding:32px;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:22px}.panel-heading .eyebrow{margin:0 0 9px}.panel-heading h2{font-size:27px;letter-spacing:-.04em;margin:0}.step-count{font-size:11px;color:var(--muted);letter-spacing:.1em}.fieldset{border:0;border-bottom:1px solid var(--line);padding:25px 0 26px;min-width:0;margin:0}.fieldset legend{padding-top:25px;font-size:15px;font-weight:700}.step-dot{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--accent);color:#13271c;font-size:12px;margin-right:10px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:block;color:#f0f2eb;font-size:12px;font-weight:600}.field input,.field select{display:block;min-width:0;width:100%;min-height:46px;margin-top:9px;background:#102219;color:var(--text);padding:0 14px;border:1px solid #52705b;border-radius:8px;outline-offset:3px;appearance:auto}.field input:focus,.field select:focus{outline:2px solid var(--accent)}.field input::placeholder{color:#98aaa0}.top-gap{margin-top:16px}.optional,.hint,.smallprint{color:var(--muted);font-weight:400}.hint{font-size:12px;line-height:1.5;margin:6px 0 12px}.slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:18px}.slot{border:1px solid #54705a;background:#102219;color:var(--text);border-radius:8px;min-height:44px;padding:8px 4px;white-space:nowrap;font-size:12px}.slot:hover:not(:disabled){border-color:var(--accent)}.slot.selected{border-color:var(--accent);background:var(--accent);color:#0a2214;font-weight:800}.slot:disabled{opacity:.3}.bay-label{font-size:12px;font-weight:650;margin:20px 0 8px}.bay-note{margin:8px 0}.checkout{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:25px}.primary-button,.secondary-button{min-height:49px;border-radius:8px;font-size:13px;font-weight:800;padding:0 22px}.primary-button{color:#163022;background:var(--accent);border:1px solid var(--accent);white-space:nowrap}.primary-button span{margin-left:18px}.primary-button:hover:not(:disabled){background:#e3efcf}.secondary-button{color:var(--accent);background:transparent;border:1px solid #65846d}.smallprint{font-size:11px;line-height:1.7;margin:18px 0 0}.notice{border-radius:8px;border:1px solid var(--line);padding:12px 14px;margin:15px 0 0;font-size:13px}.notice.error{background:#49271f;color:var(--danger);border-color:#9d675c}.notice.good{color:var(--accent)}.hidden{display:none!important}.footer-note{grid-column:1/-1;text-align:center;font-size:11px;color:var(--muted);margin:34px 0 0}.success-view{text-align:center;padding:28px 16px}.success-icon{margin:0 auto 22px;border-radius:100%;background:var(--accent);color:#143220;width:60px;height:60px;display:grid;place-items:center;font-size:29px}.success-view h2{font-size:38px;margin:0 0 12px}.success-view>p:not(.eyebrow){color:var(--muted);line-height:1.7}.confirmation-label{font-size:11px!important;letter-spacing:.16em;margin-top:29px}.confirmation-code{font-size:28px;letter-spacing:.12em}.receipt{border:1px solid var(--line);margin:24px 0;text-align:left;padding:18px 20px;border-radius:10px}.receipt-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;font-size:13px}.receipt-row span:first-child{color:var(--muted)}.honeypot{position:absolute;left:-9999px;opacity:0;pointer-events:none}
/* Staff dashboard */.admin-shell{width:100%;max-width:1640px;margin:38px auto;padding:0 clamp(16px,2.4vw,44px)}.admin-title{font-size:34px;letter-spacing:-.04em;margin:0 0 8px}.admin-subtitle{color:var(--muted);margin-bottom:28px}.admin-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:26px;margin-bottom:22px}.admin-card h2{margin:0 0 18px;font-size:19px}.admin-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.admin-toolbar .field{min-width:180px}.table-wrap{overflow-x:auto}.bookings-table{border-collapse:collapse;width:100%;font-size:13px}.bookings-table th{text-align:left;font-size:10px;letter-spacing:.1em;color:var(--muted);font-weight:700;text-transform:uppercase}.bookings-table td,.bookings-table th{padding:14px 12px;border-bottom:1px solid var(--line)}.bookings-table td{vertical-align:middle}.bookings-table td small{display:block;color:var(--muted);margin-top:4px}.bookings-table .muted-row{opacity:.45}.cancel-button{border:1px solid #8a5952;background:transparent;color:#ffccc5;border-radius:6px;padding:7px 10px;font-size:12px}.pill{padding:4px 7px;border-radius:15px;color:var(--accent);background:#294935;font-size:11px}.pill.cancelled{background:#56352f;color:#eeb4ae}.admin-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.admin-actions .field{max-width:180px}.admin-actions button{align-self:end}.empty{color:var(--muted);padding:22px 0}.admin-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}
@media(max-width:900px){.shell{grid-template-columns:1fr;max-width:680px;gap:35px;padding-top:40px}.intro{padding-top:0}.intro h1{font-size:56px}.feature-line{margin-top:25px}.footer-note{margin-top:0}}@media(max-width:520px){.site-header{padding:15px 18px;min-height:76px}.header-meta{display:none}.shell{padding:28px 14px 38px}.intro{padding:0 8px}.intro h1{font-size:49px}.booking-panel{padding:20px 17px}.slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.field-grid{grid-template-columns:1fr}.checkout{flex-wrap:wrap}.checkout>div,.primary-button{width:100%}.admin-shell{padding:0 14px;margin-top:28px}.admin-card{padding:18px}}
/* Booking flow v3: duration, room type, date/time, guest details. */
.room-preference{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:end;margin-top:18px}.room-preference .bay-note{margin:0 0 7px}.top-gap{display:block;margin-top:18px}.field select:disabled,.field input:disabled{opacity:.62}
@media(max-width:520px){.room-preference{grid-template-columns:1fr}.room-preference .bay-note{margin-top:0}}

/* v4 — availability calendar, weekly opening hours, and self-service management */
.calendar-box { margin-top: 16px; background: rgba(8,27,18,.44); border: 1px solid rgba(183,209,188,.25); padding: 15px; border-radius: 12px; }
.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 12px; }
.calendar-toolbar strong { color: #f6f5e8; font-size: 1rem; }
.calendar-nav { border: 1px solid #638372; color: #e9f3e9; background: transparent; border-radius: 6px; min-width: 40px; min-height: 36px; cursor: pointer; font-size: 1.3rem; }
.calendar-nav:disabled { opacity: .28; cursor: not-allowed; }
.calendar-legend { display: flex; flex-wrap: wrap; gap: 9px 18px; font-size: .72rem; color: #d4e4d7; margin-bottom: 13px; }
.calendar-legend span { display: flex; gap: 6px; align-items: center; }
.legend-dot { display:inline-block; height: 8px; width: 8px; border-radius: 50%; }
.legend-dot.available { background: #9cd9ac; } .legend-dot.full { background: #d6a275; } .legend-dot.closed { background: #74857d; }
.calendar-weekdays, .calendar-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.calendar-weekdays { font-size: .75rem; text-align: center; color: #b8d2c0; margin-bottom: 6px; }
.calendar-day { color: #f6f8f3; background: #193b2b; border: 1px solid #46745a; border-radius: 7px; min-height: 58px; padding: 5px 2px; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; }
.calendar-day strong { font-size: .9rem; } .calendar-day small { font-size: .6rem; line-height: 1.1; text-align: center; }
.calendar-day.full { color: #e4b69d; background: #422f26; border-color: #76523b; } .calendar-day.closed, .calendar-day.outside { color: #7c9787; background: #14261c; border-color: #263c2f; }
.calendar-day:disabled { cursor: default; } .calendar-day.active { border: 2px solid #d6ebbb; box-shadow: 0 0 0 1px #d6ebbb; }
.calendar-day:focus-visible { outline: 3px solid white; outline-offset: 2px; }
.weekly-hours { display: grid; gap: 10px; margin: 18px 0; }
.hours-row { display: grid; grid-template-columns: minmax(90px, 1fr) minmax(115px, 1fr) minmax(115px, 1fr); gap: 10px; align-items: center; }
.hours-row input[type="time"] { width: 100%; border: 1px solid #53715c; background: #11271b; color: #f4f5ec; padding: 9px; border-radius: 6px; color-scheme: dark; }
.closed-toggle { display: inline-flex; align-items: center; gap: 8px; font-size: .85rem; }
.late-alert { color: #f5bb68; font-weight: bold; display: block; margin-top: 6px; }
.manage-section { margin-top: 28px; border-top: 1px solid rgba(219,232,212,.2); padding-top: 16px; }
.manage-section h2 { font-size: 1.1rem; margin: 0 0 10px; }
@media (max-width: 650px) { .calendar-box { padding: 9px; } .calendar-days { gap: 3px; } .calendar-day { min-height: 51px; } .calendar-day small { font-size: .53rem; } .hours-row { grid-template-columns: 1fr 1fr; } }

/* Albatross official-brand layout — Version 8 */
:root{--bg:#071c17;--panel:#102920;--panel2:#18382b;--line:#37594a;--text:#f5f0df;--muted:#becabe;--accent:#efe8ce;--radius:22px}
body{background:radial-gradient(ellipse 66% 39% at 0% 0%,#17483a 0%,transparent 70%),linear-gradient(160deg,#0b261e,#071713 65%);}
.site-header{max-width:1280px;min-height:95px;border-bottom:1px solid rgba(239,232,206,.14)}
.brand{letter-spacing:.09em;font-size:17px;gap:9px}.brand small{letter-spacing:.26em;font-size:10px}.brand-icon{width:62px;height:62px;object-fit:contain;mix-blend-mode:screen;border-radius:8px}.brand-name{display:block}.header-meta{font-size:11px;color:#d9decf}
.shell{max-width:1260px;grid-template-columns:minmax(360px,.88fr) minmax(520px,1.12fr);gap:66px;padding-top:50px}
.intro{padding-top:0}.hero-brand{width:168px;height:147px;margin:0 0 8px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.hero-brand img{width:164px;height:160px;object-fit:contain;mix-blend-mode:screen}
.eyebrow{color:#d4dfbb}.intro h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(48px,5.5vw,76px);letter-spacing:-.043em;line-height:1.06;margin-bottom:20px}.intro h1 em{color:#ded5a8;font-weight:400}
.lede{font-size:16px;max-width:450px;line-height:1.68;color:#d0d7cb}.feature-line{margin-top:27px;margin-bottom:28px;color:#e5e8d8;font-size:10px;gap:12px 17px}.feature-line span{border-color:#b5c39b}
.booking-panel{background:linear-gradient(160deg,rgba(29,63,47,.88),rgba(12,37,29,.98));border-color:rgba(225,236,213,.27);box-shadow:0 25px 90px rgba(0,0,0,.34);padding:36px}
.panel-heading h2{font-family:Georgia,serif;font-weight:400;font-size:32px}.step-count{font-size:10px}.fieldset legend{color:#f6f1e3}
.step-dot{background:#e8e1c9;color:#112b20}.field input,.field select{background:#0c241b;border-color:#63806c;color:#fffcee}.field input::placeholder{color:#b4bdb0}
.primary-button{background:#eee7cb;border-color:#eee7cb;color:#09251a}.primary-button:hover:not(:disabled){background:#fff9e6}.slot.selected{background:#eee7cb;border-color:#eee7cb;color:#09251a}.calendar-day.active{border-color:#eee7cb;box-shadow:0 0 0 1px #eee7cb}.secondary-button{color:#fff0c7}
.rates-card{background:linear-gradient(160deg,rgba(37,78,59,.6),rgba(15,41,30,.7));border:1px solid rgba(214,233,200,.23);border-radius:18px;padding:23px 22px 17px;box-shadow:0 14px 38px rgba(0,0,0,.13)}
.rates-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.rates-heading .eyebrow{margin:0;font-size:10px;line-height:1.5}.rates-nocharge{color:#e0e8d8;border:1px solid rgba(220,229,202,.27);border-radius:15px;padding:5px 9px;font-size:9px;letter-spacing:.1em;white-space:nowrap}
.rates-title{font:400 26px/1.24 Georgia,serif;margin:11px 0 16px;color:#f6f0e2;letter-spacing:-.02em}
.rates-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rate-tile{background:rgba(2,21,15,.45);border:1px solid rgba(219,234,212,.2);border-radius:12px;padding:15px 14px 14px;display:flex;flex-direction:column;gap:5px}.rate-season{color:#c5d8bb;letter-spacing:.18em;font-size:10px;font-weight:800}.rate-tile strong{font-size:30px;letter-spacing:-.055em;line-height:1.2;color:#fff9e8}.rate-tile strong span{font-size:13px;letter-spacing:0;color:#cdd6c5;font-weight:500}.rate-tile small{font-size:11px;color:#c4d1c3;line-height:1.4}
.rates-detail{font-size:11px;line-height:1.5;color:#d1dac9;margin:12px 1px 15px}.membership-cta{background:#eae3c9;color:#10291f;border-radius:10px;padding:14px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;transition:background .15s}.membership-cta:hover{background:#fff4d5}.membership-cta small{display:block;font-size:9px;letter-spacing:.15em;margin-bottom:4px;font-weight:800}.membership-cta strong{font-size:13px;line-height:1.45}.membership-cta>span:last-child{font-size:25px}.rates-disclaimer{margin:11px 2px 0;font-size:10px;color:#adbfae;line-height:1.55}
.footer-note{font-size:11px;line-height:1.9}.footer-note a{text-decoration:underline;text-underline-offset:2px}
@media(max-width:1000px){.shell{grid-template-columns:1fr;max-width:760px;gap:30px;padding-top:28px}.hero-brand{display:none}.intro h1{font-size:57px}.rates-card{max-width:620px}.booking-panel{padding:26px}}
@media(max-width:520px){.brand{font-size:14px}.brand-icon{width:53px;height:53px}.site-header{min-height:75px}.intro h1{font-size:45px}.rates-card{padding:17px 15px}.rates-title{font-size:24px}.rates-heading{align-items:flex-start}.rates-nocharge{font-size:8px}.rates-grid{gap:8px}.rate-tile{padding:12px}.rate-tile strong{font-size:27px}.booking-panel{padding:21px 16px}}

/* Staff calendar v1: daily resource timeline, weekly and monthly overviews */
.staff-calendar-card{padding:24px 20px}
.staff-calendar-heading,.staff-calendar-toolbar{display:flex;gap:14px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.staff-calendar-heading .eyebrow{margin:0 0 8px}
.staff-calendar-heading h2{margin:0 0 12px}
.staff-view-tabs{display:flex;border:1px solid #607966;border-radius:9px;overflow:hidden}
.staff-view-tabs button{color:#dfecdd;background:#10271e;border:0;border-right:1px solid #607966;padding:10px 17px;font-size:13px;font-weight:700}
.staff-view-tabs button:last-child{border:0}
.staff-view-tabs .staff-view-active{background:#eee7cb;color:#0b271a}
.staff-calendar-toolbar{justify-content:flex-start;margin:8px 0 12px}
.staff-calendar-toolbar .secondary-button{min-height:38px;padding:0 16px}
#staffCalendarTitle{font-size:15px;margin-left:10px}
#staffCalendarCount{margin-left:auto}
.staff-calendar-legend{display:flex;flex-wrap:wrap;gap:10px 19px;margin:15px 0;color:#bad2c0;font-size:12px}
.staff-calendar-legend span{display:flex;gap:8px;align-items:center}
.staff-calendar-legend i{width:14px;height:14px;border-radius:4px;display:inline-block;border:1px solid #5c8266}
.staff-key-booked{background:#8c7042}
.staff-key-promo{background:#6d28d9;border-color:#c4b5fd!important}
.staff-key-buffer{background:repeating-linear-gradient(45deg,#546e60 0 3px,#193328 3px 6px)}
.staff-key-empty{background:#0b241b}
.staff-timeline-scroll{width:100%;overflow:auto;border:1px solid #4e6656;border-radius:10px;max-height:740px;position:relative;background:#092018}
.staff-timeline-line{display:flex;width:max-content;min-height:61px}
.staff-timeline-top{min-height:43px;position:sticky;top:0;z-index:6;background:#183b2b}
.staff-timeline-label{position:sticky;left:0;width:112px;min-width:112px;z-index:4;display:flex;align-items:center;padding:10px 12px;background:#17372a;color:#f6f3e7;border-right:1px solid #4a6b55;border-bottom:1px solid #395344;font-size:12px;font-weight:800}
.staff-timeline-top .staff-timeline-label{z-index:7}
.staff-time-track{position:relative;height:65px;flex:none;border-bottom:1px solid #3c5d48;background-color:#0c271d;background-image:linear-gradient(90deg,rgba(174,206,176,.17) 1px,transparent 1px);background-size:32px 100%;cursor:crosshair}
.staff-time-track:hover{background-color:#153828}
.staff-timeline-top .staff-time-track{height:43px;background:#173b2d;cursor:default;border-bottom:1px solid #63836a}
.staff-hour-mark{position:absolute;top:9px;color:#d1e4d4;font-size:11px;white-space:nowrap;padding-left:6px;border-left:1px solid #67886a;height:28px}
.staff-reservation{position:absolute;top:8px;height:48px;padding:6px 9px;z-index:2;border-radius:7px;border:1px solid #e0bc7d;background:#84673b;color:#fff9e9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;cursor:grab;font-size:11px;line-height:17px;box-shadow:0 3px 12px #07180e90}
.staff-reservation:active{cursor:grabbing}
.staff-reservation.staff-promo{background:#6d28d9;border-color:#d8b4fe;color:#fff;box-shadow:0 3px 14px #31155b99}
.staff-reservation strong{display:block;overflow:hidden;text-overflow:ellipsis}
.staff-reservation small{display:block;color:inherit;font-size:10px;overflow:hidden;text-overflow:ellipsis}
.staff-reservation:focus-visible{outline:3px solid #faf4cb;outline-offset:2px}
.staff-buffer-bar{position:absolute;top:17px;height:31px;z-index:1;pointer-events:none;border:1px dashed #879d8b;background:repeating-linear-gradient(45deg,#4b6957b0 0 4px,#173b2bb8 4px 8px)}
.staff-week-grid{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));gap:8px;overflow-x:auto}
.staff-week-day{background:#102b21;border:1px solid #41624f;border-radius:10px;padding:12px;min-height:240px}
.staff-date-open{display:block;width:100%;color:#f6f2e7;background:transparent;border:0;text-align:left;font-size:14px;font-weight:800;padding:0 0 12px;border-bottom:1px solid #466350}
.staff-week-booking{display:block;width:100%;background:#82663b;color:#fff9e9;border:1px solid #e1bf7a;padding:8px;margin:7px 0 0;border-radius:7px;text-align:left;line-height:1.4;font-size:11px}
.staff-week-booking.staff-promo{background:#6d28d9;border-color:#d8b4fe;color:#fff}
.staff-week-booking small{display:block;font-size:10px}
.staff-week-empty{color:#9db8a4;font-size:12px;padding-top:14px}
.staff-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.staff-month-weekday{text-align:center;color:#b9ceb9;font-size:12px;padding:7px}
.staff-month-day{min-height:90px;border:1px solid #46634d;background:#143425;color:#f7f1e2;text-align:left;border-radius:7px;padding:9px;display:flex;flex-direction:column;gap:6px}
.staff-month-day:hover{background:#28543c}
.staff-month-day.staff-outside{opacity:.45}
.staff-month-day strong{font-size:14px}
.staff-month-day small{color:#c1dbc8;font-size:11px}
.staff-month-day em{font-size:10px;color:#fae2b0;font-style:normal}
.staff-booking-dialog{max-width:min(92vw,590px);width:100%;max-height:90vh;overflow:auto;background:#153629;border:1px solid #68846e;border-radius:15px;padding:24px;color:#f7f4e8;box-shadow:0 24px 80px #0009}
.staff-booking-dialog::backdrop{background:#01150ed8}
.staff-dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid #496850;margin-bottom:17px}
.staff-dialog-top h2{margin:0 0 16px;font-size:24px}
.staff-dialog-close{font-size:28px;color:#eee7cb;background:transparent;border:0;padding:0 6px}
.staff-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:16px}
.staff-edit-form .field{max-width:none}
.staff-edit-form .primary-button{grid-column:1/-1;width:max-content}
.staff-wide{grid-column:1/-1}
.staff-detail-info{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px;border-radius:9px;background:#0e281e}
.staff-detail-info p{margin:0;font-size:12px;line-height:1.6;color:#cbdcd0;overflow-wrap:anywhere}
.staff-detail-info p strong{display:block;color:#fff8e6;font-size:13px}
@media(max-width:660px){.staff-calendar-card{padding:18px 12px}.staff-week-grid{grid-template-columns:repeat(7,158px)}.staff-month-grid{gap:2px}.staff-month-day{min-height:68px;padding:5px}.staff-month-day small,.staff-month-day em{font-size:9px}.staff-timeline-label{min-width:82px;width:82px;font-size:11px}.staff-edit-form{grid-template-columns:1fr}.staff-wide{grid-column:1}}

/* Staff calendar automatic updates */
.staff-live-status{display:inline-flex;align-items:center;gap:7px;color:#c8e9cb;font-size:11px;white-space:nowrap;padding:7px 10px;border:1px solid #416f4d;background:#183828;border-radius:6px}
.staff-live-status::before{content:"";width:7px;height:7px;display:inline-block;border-radius:50%;background:#90cf8c;flex:none}

/* Admin contact directory */
.marketing-optin input{width:18px;height:18px;min-width:18px;margin:2px 0 0;accent-color:#e6e4c3}
#customerListSection .admin-footer{flex-wrap:wrap}
#customerListSection .bookings-table{min-width:600px}
.contact-status{display:inline-block;border-radius:5px;padding:5px 8px;background:#274c37;color:#e8f7df;font-size:11px}
.contact-status.not-eligible{background:#39473f;color:#dee5db}
.contact-status.unsubscribed{background:#56352f;color:#f3c2b5}
.mark-paid-button{display:inline-block;padding:7px 9px;margin:3px 3px 3px 0;border-radius:6px;border:1px solid #648e72;background:#1f4833;color:#f3f4e7;font-size:11px}

/* Staff group bookings: 1 to 8 rooms under a single reservation */
.staff-multi-rooms{border:1px solid #496c52;border-radius:9px;padding:14px;min-width:0}
.staff-multi-rooms legend{padding:0 7px;color:#f5f1de;font-weight:700}
.staff-bay-actions{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:12px}
.staff-bay-actions .secondary-button{padding:8px 12px;min-height:34px;font-size:12px}
.staff-bay-checks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.staff-bay-check{display:flex;align-items:center;gap:8px;padding:11px 9px;background:#163b2b;border:1px solid #688272;border-radius:8px;font-size:12px;cursor:pointer}
.staff-bay-check:has(input:checked){background:#366f51;border-color:#b7d9ad}
.staff-bay-check input{width:17px;height:17px;margin:0;accent-color:#eae6cb}
.staff-group-booking{border-style:double;border-width:2px}
@media(max-width:460px){.staff-bay-checks{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Staff maintenance: one-click stop / restore room */
.staff-room-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}
.staff-room-tile{background:#122d21;border:1px solid #426e53;border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:11px;min-width:0}
.staff-room-tile.staff-room-offline{background:#4c141c;border:2px solid #ef4444}
.staff-room-tile-top{display:flex;align-items:flex-start;flex-direction:column;gap:8px}
.staff-room-tile-top strong{color:#f6f4e7;font-size:13px}
.staff-room-badge{font-size:11px;border:1px solid #5d8f6a;background:#205439;color:#d3f4d4;border-radius:5px;padding:4px 7px;font-weight:700}
.staff-room-badge.offline{background:#dc2626;border-color:#fca5a5;color:#fff}
.staff-room-impact{font-size:11px;line-height:1.45;color:#c3d9c5;margin:0;min-height:33px}
.staff-room-offline .staff-room-impact{color:#fecaca}
.staff-room-note{background:#0a2119;color:#edf0e5;border:1px solid #536e58;border-radius:7px;padding:9px 10px;width:100%;font-size:11px;min-height:38px}
.staff-room-note:disabled{opacity:.7;cursor:not-allowed}
.staff-room-action{padding:8px 11px;min-height:38px;font-size:11px;width:100%;white-space:normal}
.staff-room-disable{border-color:#e0a982;color:#f9c0a2}
.staff-room-restore{border-color:#87b698;color:#d7f2d4}
.staff-key-offline{background:repeating-linear-gradient(45deg,#dc2626 0 5px,#7f1d1d 5px 10px);border-color:#f87171!important}
.staff-timeline-label.staff-offline-label{background:#991b1b;color:#ffffff;border-right:2px solid #ef4444}
.staff-time-track.staff-offline-track{background-color:#45181e;background-image:repeating-linear-gradient(45deg,rgba(239,68,68,.28) 0 10px,rgba(69,24,30,.65) 10px 20px);cursor:not-allowed}
.staff-time-track.staff-offline-track:hover{background-color:#45181e}
@media(max-width:850px){.staff-room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:400px){.staff-room-grid{grid-template-columns:1fr}}

/* Staff calendar: high contrast identification of combined double rooms and VIP bays */
.staff-reservation .staff-room-tag{
  position:absolute;top:4px;right:5px;z-index:3;display:inline-flex;
  align-items:center;justify-content:center;min-width:22px;height:18px;
  padding:0 4px;border-radius:4px;border:1px solid rgba(255,255,255,.8);
  background:#11251fe0;color:#fff;font-size:10px;line-height:1;
  font-weight:900;letter-spacing:.02em;pointer-events:none
}
.staff-reservation.staff-has-room-badge strong{padding-right:29px}
.staff-week-room-tags{display:inline-block;margin:6px 0 1px 6px;padding:2px 6px;
  border:1px solid rgba(255,255,255,.75);border-radius:4px;
  background:#11251fd9;color:#fff;font-size:10px;font-weight:900;letter-spacing:.04em}

/* No-shows remain readable to staff but do NOT occupy reservation capacity. */
.staff-key-noshow{background:#6b7280;border:1px dashed #cbd5e1!important}
.staff-reservation.staff-noshow{background:rgba(107,114,128,.55);border:1px dashed #cbd5e1;color:#f1f5f9;opacity:.74;top:43px;height:18px;z-index:4;padding:0 6px;line-height:16px;cursor:pointer;box-shadow:none}
.staff-reservation.staff-noshow strong{font-size:10px;font-weight:500;text-decoration:line-through;line-height:16px}
.staff-reservation.staff-noshow .staff-room-tag{display:none}
.staff-week-booking.staff-noshow{background:#374151;border-style:dashed;border-color:#94a3b8;color:#cbd5e1;opacity:.72}
.staff-week-booking.staff-noshow small{text-decoration:line-through}
.staff-private-note{margin:15px 0;border:1px solid #567260;border-radius:9px;padding:14px}
.staff-private-note label{display:block;margin-bottom:9px;font-size:13px}
.staff-private-note textarea{width:100%;resize:vertical;min-height:90px;max-height:270px;padding:12px;border-radius:7px;background:#0b2118;color:#f8f7ed;border:1px solid #658473;font:inherit;font-size:13px}
.staff-booking-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:12px 0}
.staff-booking-actions .secondary-button{min-height:39px;padding:8px 14px;font-size:12px}
.staff-noshow-button{border-color:#a6b0c1;color:#e4eaf3}
.staff-cancel-button{border-color:#f87171;color:#fecaca}
.staff-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}
.staff-stat{background:#112b21;border:1px solid #476752;border-radius:10px;padding:17px 13px}
.staff-stat strong{display:block;color:#fff9e8;font-size:25px;margin:7px 0}
.staff-stat small{display:block;color:#bfd1c1;font-size:11px;line-height:1.4}
.staff-stat-label{color:#b9d4b9;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.staff-stats-table{width:100%;border-collapse:collapse;margin-top:15px;font-size:12px}
.staff-stats-table th,.staff-stats-table td{padding:8px;border-bottom:1px solid #385647;text-align:left}
.staff-stats-table th{color:#b6c9ba}
@media(max-width:700px){.staff-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.staff-stats-days{display:flex;flex-direction:column;gap:6px;max-height:370px;overflow:auto;border:1px solid #395d4a;border-radius:9px;padding:12px}
.staff-stats-day{display:grid;grid-template-columns:42px minmax(50px,1fr) 53px 67px;align-items:center;gap:10px;font-size:11px;color:#c9dfcc;font-variant-numeric:tabular-nums}
.staff-stats-day>span:last-child{text-align:right}
.staff-stats-track{width:100%;height:13px;background:#254233;border:1px solid #43634c;border-radius:4px;overflow:hidden}
.staff-stats-bar{height:100%;min-width:0;background:#c6dcae;border-radius:3px}
#staffAnalytics h3{font-size:14px;color:#f5f2e5;margin:23px 0 13px}
.staff-stats-grid strong{font-variant-numeric:tabular-nums}

/* Odoo-style seven-day staff week with shared time axis and overlapping lanes */
.staff-week-timeline-scroll{width:100%;overflow:auto;max-height:760px;border:1px solid #4e6656;border-radius:10px;background:#10281e}
.staff-week-time-grid{display:grid;grid-template-columns:64px repeat(13,192px);grid-template-rows:53px var(--week-height);min-width:2560px;position:relative;background:#10281e}
.staff-week-time-corner{grid-column:1;grid-row:1;position:sticky;top:0;left:0;z-index:32;display:flex;align-items:center;justify-content:center;background:#193a2c;border-right:1px solid #4c705b;border-bottom:1px solid #4c705b;color:#c6d3c7;font-size:10px;letter-spacing:.12em;font-weight:800}
.staff-week-day-header{grid-row:1;position:sticky;top:0;z-index:12;background:#193a2c;color:#f4f2e7;border:0;border-right:1px solid #476853;border-bottom:1px solid #476853;font-weight:800;font-size:12px;cursor:pointer}
.staff-week-day-header:hover{background:#315741}
.staff-week-time-axis{grid-column:1;grid-row:2;position:sticky;left:0;z-index:30;background:#17382a;border-right:1px solid #5b7363}
.staff-week-time-tick{position:absolute;right:6px;transform:translateY(-50%);font-size:10px;color:#c0d4c6;white-space:nowrap;font-variant-numeric:tabular-nums}
.staff-week-time-day{position:relative;grid-row:2;border-right:1px solid #3b5a49;border-bottom:1px solid #54725c;background-color:#0d281e;background-image:repeating-linear-gradient(to bottom,rgba(174,195,174,.26) 0,rgba(174,195,174,.26) 1px,transparent 1px,transparent var(--week-hour-height));}
.staff-week-time-day:nth-child(even){background-color:#102b21}
.staff-week-time-day.staff-week-closed{background:#192b26;color:#a5b7a9}
.staff-week-closed-label{display:block;margin:18px;color:#a5b7a9;font-size:12px}
.staff-week-event{position:absolute;z-index:3;overflow:hidden;display:block;text-align:left;padding:5px 6px;border:1px solid #e0bc7d;border-radius:5px;background:#84673b;color:#fff9e9;cursor:pointer;font-size:11px;line-height:1.3;font-family:inherit;box-shadow:0 2px 6px #03120c70}
.staff-week-event:hover,.staff-week-event:focus-visible{z-index:8;outline:2px solid #f6edcd;outline-offset:0}
.staff-week-event.staff-has-room-badge strong{padding-right:48px}
.staff-week-event strong{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.staff-week-event small{display:block;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.staff-week-event.staff-promo{background:#6d28d9;border-color:#d8b4fe;color:#fff}
.staff-week-event.staff-noshow{background:rgba(100,116,139,.8);border:1px dashed #e2e8f0;color:#fff;opacity:.7;font-size:10px;text-decoration:line-through;white-space:nowrap}
.staff-relocation-report{margin-top:12px;border:1px solid #7c9d83;border-radius:10px;padding:16px;background:#183628;color:#e6f2e6;font-size:12px;line-height:1.55}
.staff-relocation-report h3{margin:0 0 8px;font-size:14px}
.staff-relocation-report ul{margin:6px 0 12px;padding-left:22px}
.staff-relocation-report li{padding:2px 0}
.staff-relocation-warning{color:#ffb5b5;font-weight:800}

/* Live Edmonton-time indicators. The overlays never capture mouse/drag input. */
.staff-now-line{position:absolute;display:block;pointer-events:none!important;z-index:25;background:rgba(255,225,153,.75)}
.staff-now-line[hidden]{display:none!important}
.staff-now-day{top:0;bottom:0;width:2px;box-shadow:0 0 5px rgba(255,225,153,.15)}
.staff-now-week{left:0;right:0;height:2px;box-shadow:0 0 5px rgba(255,225,153,.18)}
.staff-now-label::before{content:"NOW";position:absolute;font-size:9px;font-weight:900;letter-spacing:.07em;
  color:#fff7dc;background:#7c6432;border:1px solid #cdb87f;border-radius:4px;padding:2px 4px;white-space:nowrap}
.staff-now-day.staff-now-week.staff-week-day-header.staff-week-today{background:#345742;color:#fff2c5;box-shadow:inset 0 -3px 0 #d1b67c}
.staff-week-time-day.staff-week-today{background-color:#163528}

/* Admin layout scales with available desktop width; narrow devices keep the timeline scrollable. */
@media(max-width:700px){.admin-shell{margin:22px auto;padding:0 12px}.admin-card{padding:16px 12px}.staff-calendar-card{padding:16px 10px}.staff-calendar-heading,.staff-calendar-toolbar{gap:9px}.staff-calendar-heading h2{font-size:19px}.staff-view-tabs button{padding:10px 12px}.staff-timeline-scroll{max-width:100%;-webkit-overflow-scrolling:touch}.admin-toolbar input[type=search]{min-width:0;max-width:100%;flex:1 1 210px}.admin-toolbar select{max-width:100%;flex:1 1 160px}.table-wrap{-webkit-overflow-scrolling:touch}.staff-month-weekday{font-size:10px;padding:4px 0}}
@media(max-width:400px){.admin-shell{padding:0 9px}.staff-calendar-card{padding:14px 8px}.staff-calendar-toolbar .secondary-button{padding:0 11px}.staff-view-tabs button{padding:9px 10px}}

/* Customer booking: on phones show headline, quick rates and booking form first.
   Keep the detailed price explanation and memberships available below the form.
   Desktop layout is unchanged. */
@media(max-width:600px){
  .shell{display:flex;flex-direction:column;gap:14px;padding-top:14px}
  .intro{display:contents}
  .intro>.eyebrow{order:4;margin:0 6px 0;font-size:9px;line-height:1.45;letter-spacing:.14em}
  .intro>h1{order:5;margin:2px 6px 2px;font-size:clamp(37px,9vw,45px);line-height:1.02}
  .rates-card{display:contents}
  .rates-summary{order:1;background:linear-gradient(160deg,rgba(37,78,59,.6),rgba(15,41,30,.7));border:1px solid rgba(214,233,200,.23);border-radius:13px;padding:12px}
  .rates-summary .rates-title{font-size:19px;margin:5px 0 9px}
  .rates-summary .rate-tile{padding:9px 11px;gap:2px}
  .rates-summary .rate-tile strong{font-size:24px}
  .rates-summary .rate-tile small{font-size:10px}
  .booking-panel{order:2;padding:18px 14px}
  .rates-extra{order:7;background:rgba(25,55,40,.55);border:1px solid rgba(214,233,200,.2);border-radius:13px;padding:12px}
  .rates-extra .rates-detail{margin-top:0}
  .intro>.lede{order:6;margin:0 6px;font-size:13px;line-height:1.55}
  .footer-note{order:8;margin-top:10px}
}

/* Mobile staff hours: day and Closed on one line, open/close times underneath. */
@media(max-width:650px){
  .weekly-hours{gap:12px}
  .hours-row{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px 10px;
    padding:10px;
    border:1px solid rgba(219,232,212,.18);
    border-radius:10px;
    min-width:0;
  }
  .hours-row>strong{grid-column:1;grid-row:1;align-self:center}

  .hours-row>input[data-field="open"]{grid-column:1;grid-row:2}
  .hours-row>input[data-field="close"]{grid-column:2;grid-row:2}
  .hours-row input[type="time"]{min-width:0;max-width:100%;padding:9px 5px;font-size:16px}
}

/* Membership offer appears inside compact mobile prices; desktop keeps original location. */
.mobile-membership{display:none}
@media(max-width:600px){.mobile-membership{display:block;margin-top:10px}.mobile-membership .membership-cta{padding:11px 12px}.mobile-membership .membership-cta strong{font-size:12px}.mobile-membership .rates-disclaimer{margin:7px 2px 0;font-size:9px}.rates-extra>.membership-cta,.rates-extra>.rates-disclaimer{display:none}}

/* Staff calendar booking duration grip: mouse and touch. */
.staff-reservation{overflow:visible}
.staff-reservation>strong,.staff-reservation>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.staff-resize-grip{position:absolute;right:0;top:0;bottom:0;width:13px;border-left:2px solid rgba(255,255,255,.55);border-radius:0 6px 6px 0;background:rgba(255,255,255,.12);cursor:ew-resize;touch-action:none;z-index:5}
.staff-resize-grip:hover,.staff-resize-grip:active{background:rgba(255,255,255,.38)}

/* Staff availability: blocked rooms remain visible but cannot be selected. */
.staff-bay-check.staff-unavailable-room{opacity:.35;filter:grayscale(1);cursor:not-allowed;text-decoration:line-through}
.staff-bay-check.staff-unavailable-room input{cursor:not-allowed}
#staffMoveRoom option:disabled,#staffEditDuration option:disabled{color:#8f9992;background:#333b35}

/* Desktop weekly calendar: fit Sunday through Saturday without horizontal panning. */
@media(min-width:901px){
  .staff-week-time-grid{
    grid-template-columns:64px repeat(7,minmax(0,1fr));
    min-width:0;
    width:100%;
  }
  .staff-week-timeline-scroll{overflow-x:hidden}
}

/* Odoo-like readable booking overlap in dense desktop week clusters. */
@media(min-width:901px){
 .staff-week-event.staff-week-overlap{
   overflow:hidden;
   white-space:normal;
   box-shadow:-2px 0 0 rgba(245,245,232,.9),0 2px 6px rgba(0,0,0,.3);
 }
 /* Keep overlapping bookings at their stable layer on hover and focus.
    Hover must not cover or block a neighbouring reservation. */
 .staff-week-event.staff-week-overlap strong{
   display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
 }
}

/* Weekly calendar can be moved with pointer; bottom bar resizes a reservation. */
.staff-week-event{touch-action:none;user-select:none}
.staff-week-resize-grip{
 position:absolute;left:3px;right:3px;bottom:0;height:10px;
 border-top:2px solid rgba(250,250,238,.8);background:rgba(255,255,255,.14);
 border-radius:0 0 4px 4px;cursor:ns-resize;touch-action:none;
}
.staff-week-resize-grip:hover{background:rgba(255,255,255,.35)}

/* Show the actual Albatross mark at the top of the completed reservation screen. */
.success-brand-logo{display:block;width:112px;height:112px;object-fit:contain;margin:0 auto 12px}
@media(max-width:600px){.success-brand-logo{width:94px;height:94px;margin-bottom:10px}}

/* Keep the promo-code manager compact while allowing all codes to be accessed. */
#promoCodeList{max-height:290px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:8px}
#promoCodeList .bookings-table{width:100%}
#promoCodeList .bookings-table td{padding:7px 12px}
#promoCodeList .secondary-button{min-height:36px;padding:6px 12px}
.promo-new-note-field{flex:1 1 280px}
#promoCodeList .promo-code-name{font-weight:700;white-space:nowrap}
#promoCodeList .promo-note-input{width:100%;min-width:220px;min-height:38px;background:#102219;border:1px solid #52705b;border-radius:7px;color:var(--text);font:inherit;font-size:13px;padding:7px 10px}
#promoCodeList .promo-note-input:focus{outline:2px solid var(--accent);outline-offset:2px}
#promoCodeList .promo-actions-inner{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}
#promoCodeList .bookings-table td:nth-child(2){width:100%}

/* Seven compact management tabs, horizontally scrollable on narrow screens. */
.admin-main-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;padding:3px 1px 14px;margin:0 0 18px;white-space:nowrap}
.admin-main-tabs button{flex:0 0 auto;border:1px solid #52705b;background:#102219;color:var(--text);border-radius:9px;padding:12px 16px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.admin-main-tabs button[aria-selected="true"]{background:var(--accent);color:#13271c;border-color:var(--accent)}
.admin-main-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.admin-tab-panel[hidden]{display:none!important}
@media(max-width:600px){.admin-main-tabs{margin-bottom:10px}.admin-main-tabs button{padding:11px 13px;font-size:12px}}

.tournament-promo{padding:14px 16px;border-left:4px solid #55c8ae;background:#153b35;border-radius:6px;margin:16px 0}
.staff-reservation.staff-tournament,.staff-week-event.staff-tournament{background:#087f79!important;border-color:#7df2dd!important;color:#fff!important}

.staff-calendar-legend .staff-key-tournament{display:inline-block;background:#087f79;border:1px solid #7df2dd}

.staff-reservation.staff-meeting,.staff-week-event.staff-meeting{background:#64748b!important;border-color:#cbd5e1!important;color:#fff!important}
.staff-room-tag{white-space:nowrap}

.staff-calendar-legend .staff-key-meeting{display:inline-block;background:#64748b;border:1px solid #cbd5e1}

/* Weekly reservations use the same dark corner badges as the day schedule. */
.staff-week-event{position:absolute}
.staff-week-event .staff-room-tag{position:absolute;top:4px;right:5px;left:auto;display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:22px;height:18px;padding:0 4px;margin:0;border-radius:4px;border:1px solid rgba(255,255,255,.8);background:#11251f;color:#fff;font-size:10px;font-weight:900;line-height:1;white-space:nowrap;z-index:3;pointer-events:none}
.staff-week-event.staff-has-room-badge strong{padding-right:48px}

.staff-reservation.staff-free-golf,.staff-week-event.staff-free-golf{background:#2563a0!important;border-color:#8dc8ff!important;color:#fff!important}

.staff-calendar-legend .staff-key-free-golf{display:inline-block;background:#2563a0;border:1px solid #8dc8ff}

/* Combined room and booking badges, shared between day and week. */
.staff-reservation .staff-badge-stack,.staff-week-event .staff-badge-stack{
 position:absolute;top:4px;right:5px;left:auto;z-index:5;display:flex;align-items:center;gap:3px;max-width:calc(100% - 10px);pointer-events:none
}
.staff-reservation .staff-badge-stack .staff-room-tag,.staff-week-event .staff-badge-stack .staff-room-tag{
 position:static;top:auto;right:auto;display:inline-flex;flex:none;min-width:0;height:18px;padding:0 4px;
 background:#11251f;color:#fff;border:1px solid rgba(255,255,255,.8);border-radius:4px;
 font-size:10px;font-weight:900;line-height:1;white-space:nowrap
}
.staff-reservation.staff-has-room-badge strong,.staff-week-event.staff-has-room-badge strong{padding-right:0}
.staff-reservation.staff-has-room-badge,.staff-week-event.staff-has-room-badge{padding-top:26px}

/* Double room is blue; complimentary golf uses normal gold unless another category overrides it. */
.staff-reservation.staff-free-golf,.staff-week-event.staff-free-golf{background:#84673b!important;border-color:#e0bc7d!important;color:#fff9e9!important}
.staff-reservation.staff-double-room,.staff-week-event.staff-double-room{background:#2563a0!important;border-color:#8dc8ff!important;color:#fff!important}
.staff-reservation.staff-double-room.staff-tournament,.staff-week-event.staff-double-room.staff-tournament{background:#087f79!important;border-color:#7df2dd!important}
.staff-reservation.staff-double-room.staff-promo,.staff-week-event.staff-double-room.staff-promo{background:#6d28d9!important;border-color:#d8b4fe!important}
.staff-reservation.staff-double-room.staff-meeting,.staff-week-event.staff-double-room.staff-meeting{background:#64748b!important;border-color:#cbd5e1!important}
.staff-calendar-legend .staff-key-free-golf{background:#84673b;border-color:#e0bc7d}
.staff-calendar-legend .staff-key-double-room{display:inline-block;background:#2563a0;border:1px solid #8dc8ff}

/* Keep day-view guest details inside the booking bar when extras badges are present.
   Badges occupy the upper right; text remains at its original vertical position. */
.staff-reservation.staff-has-room-badge{padding-top:6px}
.staff-reservation.staff-has-room-badge strong{padding-right:76px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.staff-reservation.staff-has-room-badge small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Weekly calendar: visually indicate cleaning time immediately after each reservation. */
.staff-week-buffer{position:absolute;z-index:2;pointer-events:none;border:1px dashed #879d8b;background:repeating-linear-gradient(45deg,#4b6957b0 0 4px,#173b2bb8 4px 8px);box-sizing:border-box;border-radius:0 0 4px 4px}


/* Optional Meta booking analytics: separate, affirmative consent on the standalone Worker origin. */
.marketing-consent-banner[hidden],.marketing-consent-settings[hidden]{display:none!important}
.marketing-consent-banner{position:fixed;z-index:1000;right:18px;bottom:18px;width:min(420px,calc(100vw - 36px));padding:18px 20px;border:1px solid #b99b53;border-radius:12px;background:#10281f;color:#f5f1e7;box-shadow:0 14px 45px #0008;font:14px/1.45 system-ui,sans-serif}
.marketing-consent-banner strong{display:block;font-size:16px;margin-bottom:6px}
.marketing-consent-banner p{margin:0 0 12px;color:#e3e5d9}
.marketing-consent-actions{display:flex;flex-wrap:wrap;gap:8px}
.marketing-consent-actions button{border:1px solid #b6c5b7;border-radius:7px;padding:10px 12px;font:inherit;font-weight:700;cursor:pointer;background:transparent;color:#fff}
.marketing-consent-actions #marketingConsentAllow{background:#cfb35d;color:#12251d;border-color:#cfb35d}
.marketing-consent-settings{position:fixed;z-index:999;left:12px;bottom:12px;border:1px solid #587a63;border-radius:6px;padding:7px 9px;background:#10281f;color:#fff;font:12px system-ui,sans-serif;cursor:pointer;box-shadow:0 2px 8px #0005}
@media(max-width:600px){.marketing-consent-banner{right:8px;bottom:8px;width:calc(100vw - 16px);padding:14px 16px}.marketing-consent-settings{left:7px;bottom:7px;font-size:11px}}

/* Staff-only member and league rosters */
.roster-add-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:18px}
.roster-add-form .field{min-width:145px;flex:1 1 160px}
.roster-add-form .field input,.roster-add-form .field select{width:100%}
.roster-table-wrap{margin-top:12px;overflow-x:auto}
.roster-table-wrap .bookings-table{min-width:650px;width:100%}
.roster-table-wrap .bookings-table td{vertical-align:middle;padding:9px 8px}
.roster-table-wrap input,.roster-table-wrap select{width:100%;min-width:90px;max-width:320px}
.roster-actions{display:flex;gap:6px;align-items:center}
.roster-counter{display:flex;align-items:center;gap:4px}
.roster-counter input{max-width:85px;min-width:62px;text-align:center}
.roster-counter button{padding:7px 10px}
.roster-actions button{white-space:nowrap}
@media(max-width:650px){.roster-add-form{display:grid;grid-template-columns:1fr 1fr}.roster-add-form .field{min-width:0}.roster-add-form button{grid-column:1/-1}}
