:root{color-scheme:dark;--bg:#0b1d15;--surface:#122e21;--surface-alt:#1a3b2a;--ink:#f3eedc;--muted:#bec7b3;--line:#4e5939;--gold:#dfbd78;--gold-dim:#352f25;--green:#afd0a8;--navy:#10271c;--blue:#21422f}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 0,#2d593a80,transparent 45%),var(--bg);color:var(--ink);font:15px/1.6 "Segoe UI",system-ui,sans-serif}main{max-width:1280px;margin:auto;padding:38px 32px 22px}header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.brand{display:flex;align-items:center;gap:20px}.brand-logo{width:64px;height:64px;flex-shrink:0;filter:drop-shadow(0 8px 14px #0003)}.brand-copy{min-width:0}h1{font-size:32px;font-weight:650;letter-spacing:-1px;line-height:1.2;margin:5px 0 9px}h2{font-size:19px;font-weight:650;line-height:1.4;margin:0 0 13px}h3{font-size:16px;font-weight:650;line-height:1.4;margin:0}p{margin:8px 0 15px}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:700;color:var(--gold);margin:0}#sailing{color:var(--muted);font-size:13px;margin:0}.header-badges{display:flex;align-items:flex-end;flex-direction:column;gap:9px}.privacy-note{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}.icon{display:inline-flex;align-items:center;justify-content:center;flex:none;vertical-align:middle;width:20px;height:20px;color:var(--gold)}.icon svg{display:block;width:100%;height:100%}h2>.icon,h3>.icon{margin-right:10px}button>.icon,.pill>.icon{width:16px;height:16px;margin-right:7px;color:currentColor}button,.pill{display:inline-flex;align-items:center;justify-content:center}.pill{background:var(--surface-alt);border:1px solid var(--line);padding:6px 12px;border-radius:30px;font-size:11px;font-weight:650;white-space:nowrap;color:#e6e4cf}.pill.is-enabled{background:#183b31;border-color:#32614d;color:#c4e2b7}.pill.subtle{background:transparent;color:var(--muted);font-size:10px;letter-spacing:.4px}
#banner{padding:12px 16px;background:#332b1d;color:#e7cfa6;border:1px solid #665132;border-left:3px solid var(--gold);border-radius:9px;font-size:12px;margin:16px 0}#message:empty{display:none}#message{background:#48292e;color:#ffdadb;padding:12px 16px;border:1px solid #75414b;border-radius:8px;margin-bottom:16px}a{color:var(--gold);text-underline-offset:3px}a:hover{color:#ffe6b1}button{font:inherit;font-size:13px;cursor:pointer;border:1px solid #8b7546;border-radius:8px;background:#21422f;color:var(--ink);padding:10px 15px;font-weight:600;min-height:42px;gap:0}button:hover{background:#2c5339;border-color:#cfaf6f}.controls button:first-child,form button{background:var(--gold);border-color:var(--gold);color:#162117}.controls button:first-child:hover,form button:hover{background:#f0d397}button:disabled{opacity:.5;cursor:wait}:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.controls{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0}.cards{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:16px;margin-bottom:20px}.cards article,.panel{background:linear-gradient(135deg,#193e2b 0%,var(--surface) 75%);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 8px 24px #00000012}.cards label{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:1.6px;font-weight:700;color:var(--muted)}.cards label .icon{width:16px;height:16px;color:#c1b98b}.cards h2{margin:15px 0 5px;font-size:22px;font-weight:550;letter-spacing:-.4px;font-variant-numeric:tabular-nums}.cards p{color:var(--muted);font-size:12px;margin-bottom:0}.cards #mode{text-transform:capitalize;color:var(--green)}.panel{margin-bottom:20px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}.section-title h2{margin:0}.booking-status-panel{display:flex;gap:16px;align-items:flex-start;border-color:#315247;background:linear-gradient(110deg,#173027,#122e21 70%)}.booking-status-panel>.icon{width:23px;height:23px;color:var(--green);margin-top:2px}.booking-status-panel h2{font-size:16px;margin:0 0 5px}.booking-status-panel p{color:#c8d5b9;font-size:13px;margin:0}
.plan-panel{border-color:#63513b;background:linear-gradient(120deg,#233b29,var(--surface) 45%)}.plan-intro{color:var(--muted);font-size:13px;margin:8px 0 20px}.venue-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.venue-card{display:flex;align-items:center;gap:18px;padding:20px;border:1px solid #574c39;border-radius:12px;background:linear-gradient(110deg,#302c2580,#132e21)}.venue-mark{width:52px;height:52px;padding:12px;border-radius:14px;background:#4c3e2760;border:1px solid #76603b}.venue-card h3{font-size:17px;letter-spacing:.1px}.venue-target{font-size:13px;color:var(--muted);margin:7px 0 3px}.venue-target strong{font-size:35px;font-weight:600;color:var(--gold);line-height:1;margin-right:7px;letter-spacing:-1px}.venue-current{font-size:12px;margin:5px 0 0;color:var(--muted)}.sabatini-card{border-color:#345248;background:linear-gradient(110deg,#20382f80,#132e21)}.sabatini-card .venue-mark{border-color:#4a7461;background:#284b3760;color:var(--green)}.sabatini-card .venue-target strong{color:var(--green)}.balance-progress{font-size:12px;color:var(--gold);margin:12px 1px 20px}.plan-rules{display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:18px;padding:19px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.plan-rule{display:flex;gap:11px;align-items:flex-start}.plan-rule>.icon{width:18px;height:18px;color:#c7ba8d;margin-top:2px}.plan-rule strong{display:block;font-size:12px;font-weight:600}.plan-rule span:not(.icon){display:block;color:var(--muted);font-size:11px;line-height:1.5;margin-top:4px}.ranking-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 13px}.ranking-title h3{font-size:15px}.ranking-title .muted{font-size:11px}.time-ranks{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;list-style:none;padding:0;margin:0 0 16px}.time-ranks li{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;border:1px solid var(--line);border-radius:10px;padding:12px 7px;background:#10271c}.time-ranks .first-choice{background:#3b3224;border-color:#ac8b53}.rank-number{display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:10px;color:var(--muted);border:1px solid #6c6946;border-radius:50%;margin-bottom:2px}.first-choice .rank-number{background:var(--gold);border-color:var(--gold);color:#1e281b;font-weight:700}.rank-time{font-size:14px;font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums}.first-choice .rank-time,.first-choice .rank-label{color:var(--gold)}.rank-label{font-size:10px;color:var(--muted)}.plan-explainer{font-size:12px;color:#c5cfba;margin:16px 0 9px;max-width:1000px}.plan-completion{font-size:11px!important;margin-bottom:0!important}
.statuses{display:flex;flex-wrap:wrap;gap:9px}.statuses div{background:#1a3929;border:1px solid #4a5b3a;border-radius:7px;padding:7px 11px;font-size:12px}.statuses strong{margin-right:6px;color:#e4e6d0}.muted{font-size:12px;color:var(--muted)}.scroll{overflow:auto;border-radius:8px}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:#d2c18e;font-size:10px;text-transform:uppercase;letter-spacing:1.2px;font-weight:650;background:#0c2419}th,td{padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:top}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#ffffff03}td:first-child{font-variant-numeric:tabular-nums}.columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.columns>div>.panel:last-child{margin-bottom:0}textarea{display:block;width:100%;resize:vertical;border:1px solid #6c6946;border-radius:9px;background:#0b2118;padding:15px;margin:7px 0 14px;font:12px/1.65 Consolas,monospace;color:#d5dcc9}input,select{font:inherit;color:var(--ink);background:#0b2118;border:1px solid #7b6b43;border-radius:7px;padding:9px 11px;max-width:100%;min-height:42px}select{padding-right:28px}input[type=checkbox]{min-height:0;accent-color:var(--gold);width:16px;height:16px}input[readonly]{width:100%;font:12px/1.5 Consolas,monospace}.simple-form{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.simple-form select,.simple-form input:not([type=checkbox]){max-width:260px}.simple-form>label{font-size:13px}.check-label{display:flex;align-items:center;gap:8px}.phone-form{display:grid;gap:8px;max-width:420px}.phone-form button{margin-top:8px}pre{white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.65 Consolas,monospace;max-height:240px;overflow:auto;color:var(--muted)}#countdown{color:var(--gold);margin:15px 0;font-variant-numeric:tabular-nums}#events{list-style:none;padding:0;margin:0;max-height:330px;overflow:auto}#events li{padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}#events time{color:var(--muted);display:inline-block;min-width:225px}footer{text-align:center;color:#b6bda7;font-size:11px;padding:18px}details{margin-top:16px}summary{cursor:pointer;color:var(--muted)}#reservations td:nth-child(2),#reservations td:nth-child(3){white-space:nowrap}#reservations table tr:first-child{font-weight:600;color:var(--muted)}#notification-history{margin-top:18px}.phone-actions{display:flex;gap:8px;flex-wrap:wrap}.phone-panel>p{font-size:13px;color:var(--muted)}[hidden]{display:none!important}
@media(max-width:960px){main{padding:28px 22px}.brand{gap:14px}.brand-logo{width:54px;height:54px}h1{font-size:26px}.header-badges{gap:7px}.cards h2{font-size:19px}.plan-rules{grid-template-columns:1fr}.plan-rule span:not(.icon){margin-top:1px}.time-ranks{grid-template-columns:repeat(4,minmax(0,1fr))}.time-ranks li{flex-direction:row;flex-wrap:wrap;gap:7px}.rank-label{width:100%;text-align:center}.columns{grid-template-columns:1fr}.venue-card{padding:17px;gap:12px}.venue-mark{width:44px;height:44px;padding:10px}}
@media(max-width:640px){main{padding:22px 15px}header{align-items:flex-start;flex-direction:column;gap:16px;margin-bottom:21px}.brand{gap:13px}.brand-logo{width:50px;height:50px}h1{font-size:24px;letter-spacing:-.7px}.eyebrow{font-size:9px;letter-spacing:2px}#sailing{font-size:11px}.header-badges{width:100%;flex-direction:row;align-items:center;justify-content:space-between}.pill{font-size:10px}.privacy-note{font-size:10px}.cards{grid-template-columns:1fr;gap:10px}.cards article{padding:17px 19px}.cards h2{margin:8px 0 0;font-size:21px}.cards p{margin-top:5px}.panel{padding:20px 17px;border-radius:13px}.section-title{align-items:flex-start;gap:10px}.section-title h2{font-size:17px}.section-title .pill{font-size:9px;padding:4px 8px}.venue-grid{grid-template-columns:1fr;gap:11px}.venue-target strong{font-size:31px}.venue-card{padding:16px}.plan-intro{font-size:12px}.ranking-title{align-items:flex-start;flex-direction:column;gap:3px}.time-ranks{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.time-ranks .first-choice{grid-column:1/-1;flex-direction:row;padding:14px;gap:12px}.first-choice .rank-label{width:auto}.first-choice .rank-time{font-size:18px}.time-ranks li{padding:10px}.plan-rules{gap:16px}.plan-rule strong{font-size:12px}.controls{gap:7px}.controls button{flex:1 1 auto;padding:9px 12px;font-size:12px}.simple-form{align-items:flex-start;gap:11px}.simple-form .check-label{flex-basis:100%}.booking-status-panel{gap:12px}.booking-status-panel p{font-size:12px}th,td{padding:11px 9px;font-size:12px}th{font-size:9px}.remote-page table th:first-child,.remote-page table td:first-child{white-space:nowrap}.remote-page table td:nth-child(2){min-width:115px}#events time{display:block;min-width:0}.privacy-note .icon{width:13px;height:13px}footer{padding:12px 5px;font-size:10px}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background .16s,border-color .16s,color .16s}}
.reservation-guide{font-size:13px;color:var(--muted);margin:14px 0 18px}.reservation-guide strong{color:var(--ink)}.reservation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.reservation-card{min-width:0;padding:19px;border:1px solid #385343;border-radius:12px;background:linear-gradient(130deg,#19332c50,#10291e)}.reservation-card.is-locked{border-color:#716044;background:linear-gradient(130deg,#392f2250,#10291e)}.reservation-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.reservation-date{font-size:14px;color:#eee8d4}.reservation-time{font-size:23px;line-height:1.3;white-space:nowrap;color:var(--gold);font-variant-numeric:tabular-nums}.reservation-venue{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:600;margin:8px 0 13px}.reservation-venue .icon{width:19px;height:19px}.reservation-booked{display:flex;flex-wrap:wrap;gap:3px 9px;font-size:11px;color:var(--muted);margin:0 0 15px}.reservation-booked time{color:#d9dcc6}.reservation-control{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:13px}.reservation-control>div{min-width:0}.reservation-control strong{display:block;font-size:12px;color:var(--green)}.is-locked .reservation-control strong{color:var(--gold)}.reservation-control>div>span{display:block;font-size:11px;line-height:1.5;color:var(--muted)}.day-switch{gap:8px;padding:8px 10px;min-width:92px;min-height:44px;flex:none;background:#10271c}.switch-track{position:relative;display:block;width:32px;height:19px;border-radius:12px;background:#696753;box-shadow:inset 0 0 0 1px #ffffff1a}.switch-track:after{content:'';position:absolute;width:13px;height:13px;left:3px;top:3px;background:#faf0d6;border-radius:50%}.day-switch[aria-checked=true] .switch-track{background:#438967}.day-switch[aria-checked=true] .switch-track:after{left:16px}.switch-word{min-width:22px;font-size:12px}#day-message{font-size:13px;color:var(--gold)}#day-message:empty{display:none}.reservations-panel>.muted:last-child{margin:16px 0 0}
@media(max-width:640px){.reservation-grid{grid-template-columns:1fr;gap:11px}.reservation-card{padding:15px}.reservation-time{font-size:21px}.reservation-venue{font-size:15px}.reservation-top{gap:8px}.reservation-date{font-size:13px}.reservation-guide{font-size:12px}.reservation-control{gap:8px}.day-switch{min-width:86px;padding:8px}.reservation-booked{flex-direction:column}}
.remote-page main{max-width:1000px;padding-top:24px}.remote-page header{gap:12px;margin-bottom:18px}.remote-page .brand{gap:12px}.remote-page .brand-logo{width:44px;height:44px}.remote-page h1{font-size:25px;letter-spacing:-.5px;margin:0 0 5px}.remote-page .panel{padding:18px;margin-bottom:14px}.remote-page .reservations-panel h2{margin-bottom:4px}.remote-page .reservation-guide{margin:0 0 13px;font-size:12px}.remote-page .reservation-card{padding:13px 14px}.remote-page .reservation-venue{margin:5px 0 7px}.remote-page .reservation-booked{flex-direction:row;gap:4px 7px;margin:0 0 8px;font-size:10px}.remote-page .reservation-control{padding-top:8px}.remote-page .reservation-control strong{font-size:11px}.remote-page .day-switch{padding:5px 8px;min-height:44px}.remote-page .cards{gap:10px;grid-template-columns:1fr 1fr;margin-bottom:14px}.remote-page .cards article{padding:14px}.remote-page .cards article:first-child{grid-column:1/-1}.remote-page .cards h2{font-size:17px;margin:7px 0 0}.remote-page .cards label{font-size:9px;letter-spacing:1px}.remote-page .cards p{margin-top:4px;font-size:11px}.remote-page .cards p:empty{display:none}.remote-page .compact-counts{display:grid;gap:9px}.remote-page .compact-counts>div{display:flex;justify-content:space-between;gap:12px;align-items:center}.remote-page .compact-counts span{display:flex;gap:8px;align-items:center;font-size:13px}.remote-page .compact-counts strong{color:var(--gold);font-size:18px}.remote-page .compact-counts+p{font-size:11px;margin:10px 0 15px}.remote-page .compact-ranks{display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0;margin:10px 0 0}.remote-page .compact-ranks li{display:flex;gap:5px;padding:5px 8px;border:1px solid var(--line);border-radius:7px;font-size:11px;white-space:nowrap}.remote-page .compact-ranks li:first-child{color:var(--gold);border-color:#796342}.remote-page .compact-ranks li span{color:var(--muted)}.remote-page .plan-panel h3{font-size:13px}.remote-page .phone-panel .section-title{align-items:center;margin:0}.remote-page .phone-panel .section-title h2{font-size:16px}.remote-page details{margin-top:10px}.remote-page details>summary{font-size:13px}.remote-page .openings-panel>summary{display:list-item;font-weight:600;color:var(--ink)}.remote-page summary>.icon{width:16px;height:16px;margin:0 7px}.remote-page .phone-panel details p{font-size:12px}.remote-page footer{padding:4px}
@media(max-width:640px){.remote-page main{padding:18px 12px}.remote-page header{gap:10px}.remote-page .header-badges{width:auto}.remote-page .panel{padding:14px}.remote-page .reservation-grid{gap:9px}.remote-page .reservation-card{padding:11px 12px}.remote-page .reservation-time{font-size:19px}.remote-page .reservation-date{font-size:12px}.remote-page .reservation-venue{font-size:14px}.remote-page .cards h2{font-size:15px}.remote-page .cards h2#mode{font-size:18px}}

.day-preferences{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;margin:12px 0}.day-time-label,.day-setting-label{display:block;color:var(--muted);font-size:11px;line-height:1.4}.day-time{display:block;margin-top:5px;width:132px;font-size:16px;min-height:44px;padding:7px 26px 7px 9px;color-scheme:dark}.day-tie{min-width:0}.tie-buttons{display:flex;margin-top:5px;border:1px solid #7b6b43;border-radius:8px;overflow:hidden}.tie-choice{border:0;border-radius:0;min-height:42px;padding:7px 13px;font-size:12px;background:#0b2118;color:var(--muted)}.tie-choice+button{border-left:1px solid #7b6b43}.tie-choice[aria-pressed=true]{background:#735e33;color:#f1e0b9}.tie-choice:focus-visible{outline-offset:-3px}.remote-page .day-preferences{margin:9px 0;gap:12px}.remote-page .day-time{width:128px}.day-control:disabled{opacity:.5;cursor:wait}@media(max-width:360px){.day-preferences,.remote-page .day-preferences{gap:8px}.day-time,.remote-page .day-time{width:120px}.tie-choice{padding:7px 10px}}

.reservation-port{display:flex;align-items:center;flex-wrap:wrap;gap:2px 10px;margin:5px 0 10px;color:#c7cfba;font-size:12px;line-height:1.5}.port-name{display:inline-flex;align-items:center;gap:5px}.reservation-port .icon{width:14px;height:14px;color:#c8bc8d}.port-hours{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted)}.remote-page .reservation-port{font-size:11px;margin:3px 0 8px;gap:1px 9px}.remote-page .reservation-port .icon{width:13px;height:13px}
.menu-panel{margin:0 0 18px}.menu-links{display:flex;flex-wrap:wrap;gap:8px}.menu-link{display:inline-flex;align-items:center;gap:7px;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#173524;color:var(--ink);text-decoration:none;font-size:13px;min-height:44px}.menu-link .icon{color:var(--gold);width:18px;height:18px}.menu-link:hover{border-color:var(--gold)}.menu-format{font-size:10px;color:var(--muted)}.menu-panel>p{font-size:10px;margin:7px 0 0}.login-main{max-width:480px}.guest-form{display:grid;gap:10px}.guest-form input{width:100%;min-width:0;font-size:16px}.guest-form button{margin-top:8px;min-height:46px}.guest-form+p{font-size:12px}.guest-bar{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--muted);font-size:12px}.guest-bar button{font-size:12px;min-height:44px}.activity-note{color:var(--muted);font-size:10px;margin:6px 0 18px}.share-details{display:grid;gap:8px;margin-top:12px}.share-details[hidden]{display:none}.share-details input{width:100%;min-width:0;font-size:14px}.sharing-panel p{font-size:12px}@media(max-width:360px){.menu-link{font-size:12px;padding:9px}.menu-links{gap:6px}.menu-format{font-size:9px}}

/* Original restaurant artwork extracted from Princess's sample menus. */
.brand-logo{background:#fff;border:1px solid #ddd7ca;border-radius:10px;padding:8px;object-fit:contain}.restaurant-logo{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;background:#fff;border:1px solid #e3dfd5;border-radius:7px;padding:5px 9px;width:128px;height:48px;overflow:hidden}.restaurant-logo img{display:block;width:100%;height:100%;object-fit:contain}.restaurant-logo.crown-logo{width:82px;height:58px}.reservation-venue .restaurant-logo{vertical-align:middle}.remote-page .reservation-venue{margin:6px 0 9px}.compact-counts .restaurant-logo{height:42px;width:118px}.compact-counts .crown-logo{height:50px;width:76px}.restaurant-logo.venue-mark{width:148px;height:78px;padding:8px;border-radius:8px;background:#fff}.menu-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:430px;gap:10px}.menu-link{flex-direction:column;gap:9px;padding:10px;min-width:0}.menu-link .restaurant-logo{width:100%;height:76px;padding:8px 10px}.menu-format{font-size:11px;color:#c5cfba}.remote-page .menu-panel{margin-bottom:15px}@media(max-width:360px){.menu-link{padding:8px}.menu-link .restaurant-logo{height:68px;padding:6px}.menu-format{font-size:10px}.menu-links{gap:8px}}


/* Traditional Irish palette: bottle green, walnut and aged brass.
   Wood grain is CSS-only; the official restaurant SVG artwork stays intact. */
:root {
  --wood: #302015;
  --wood-light: #493322;
  --brass: #b99757;
  --heading-font: Georgia, "Times New Roman", serif;
  --wood-grain: repeating-linear-gradient(2deg,
    #100a0533 0, #100a0533 1px, transparent 1px, transparent 5px,
    #b9864b0b 6px, transparent 7px, transparent 12px);
}
body {
  background-color: #20160f;
  background-image: radial-gradient(ellipse at 50% 0, #5c442d55, transparent 65%),
    var(--wood-grain), linear-gradient(90deg, #19120d, #342419 48%, #1b140e);
  min-height: 100vh;
}
main { padding-top: 28px; }
header {
  position: relative;
  padding: 25px 26px;
  border: 1px solid var(--brass);
  border-radius: 8px;
  background: var(--wood-grain), linear-gradient(110deg, #3e2b1d, #281c14 70%, #3e2a1b);
  box-shadow: inset 0 1px #ead39b44, 0 8px 22px #0005;
}
header::before {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px solid #ac8b4e66;
  border-radius: 4px;
  pointer-events: none;
}
h1, h2, h3 { font-family: var(--heading-font); font-weight: 500; letter-spacing: .1px; }
h1, .remote-page h1 { color: #f0d79e; letter-spacing: -.25px; text-shadow: 0 2px 2px #0008; text-wrap: balance; }
h2 { font-size: 22px; color: #f0e5c6; }
.brand-copy { min-width: 0; }
.brand-logo {
  background: #f3ebd6;
  border: 2px solid #b89a5d;
  border-radius: 5px;
  box-shadow: 0 0 0 3px #1b120a66, 0 4px 9px #0005;
}
.eyebrow { color: #d9be86; }
.pill { border-color: #8c764b; color: #e8dfc2; background: #213d2b; }
.pill.is-enabled { background: #1b402b; border-color: #8f9b62; color: #d9eac8; }
.cards article, .panel {
  border-color: #897043;
  border-radius: 9px;
  background: radial-gradient(ellipse at 0 0, #29553a66, transparent 75%),
    linear-gradient(135deg, #173b29, #10291e);
  box-shadow: inset 0 0 0 3px #0a211a, inset 0 0 0 4px #aa8a4833, 0 7px 19px #0003;
}
.section-title h2, .reservations-panel > h2 { color: #f3e3b9; }
.cards h2 { font-family: "Segoe UI", system-ui, sans-serif; letter-spacing: 0; }
.cards label, .cards label .icon { color: #d1c498; }
.plan-panel { border-color: #b09254; }
.booking-status-panel { border-color: #7c915d; background: linear-gradient(110deg, #25462e, #122e21); }
.reservation-card {
  border-color: #657b50;
  border-radius: 6px;
  background: linear-gradient(120deg, #214932, #153522 80%);
  box-shadow: inset 0 1px #d5ddba0d, 0 2px 6px #0002;
}
.reservation-card.is-locked {
  border-color: #af9057;
  background: linear-gradient(120deg, #3a3221, #263020);
}
.reservation-date { font-family: "Segoe UI", system-ui, sans-serif; font-weight: 650; }
.reservation-time { color: #f0cd87; font-weight: 600; }
.reservation-control { border-color: #69805a88; }
.reservation-control strong { color: #d2e1bf; }
.menu-link, .venue-card, .sabatini-card {
  border: 1px solid #a1854b;
  border-radius: 6px;
  background: var(--wood-grain), linear-gradient(115deg, #473020, #2d2016 72%, #3f2b1d);
  box-shadow: inset 0 0 0 3px #1b140d66, 0 4px 12px #0003;
}
.menu-link:hover { border-color: #e3c580; background-color: var(--wood-light); }
.menu-format { color: #efdbad; font-size: 11px; letter-spacing: .35px; }
/* Preserve the menu artwork while presenting it as brass on the themed panels. */
.restaurant-logo, .restaurant-logo.venue-mark {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.restaurant-logo img {
  filter: brightness(0) invert(.7) sepia(1) saturate(1.15) brightness(.93)
    drop-shadow(0 1px 1px #0005);
}
.reservation-venue .restaurant-logo, .compact-counts .restaurant-logo {
  padding: 3px 0;
}
.plan-rule > .icon { color: #cbb884; }
button {
  border-color: #9d854f;
  border-radius: 5px;
  background: linear-gradient(#2b5036, #1b3c28);
  box-shadow: inset 0 1px #e3d2a21a;
}
button:hover { background: linear-gradient(#385c3e, #284b32); border-color: #e0c383; }
.controls button:first-child, form button {
  background: linear-gradient(#e6cb8b, #bb9552);
  border-color: #e8d298;
  color: #201e12;
  text-shadow: 0 1px #fff4;
  box-shadow: inset 0 1px #fff5, 0 2px 4px #0003;
}
.controls button:first-child:hover, form button:hover { background: linear-gradient(#f3dda9, #d0ad68); }
input, select, textarea {
  background-color: #0d281b;
  border-color: #a38e5f;
  border-radius: 5px;
  box-shadow: inset 0 2px 4px #0003;
}
input::placeholder, textarea::placeholder { color: #b9c1ac; opacity: 1; }
:focus-visible { outline-color: #f4d591; }
.day-switch { background: #102b1c; }
.day-switch[aria-checked=true] .switch-track { background: #5a8052; }
.switch-track { background: #64563b; }
.switch-track::after { background: linear-gradient(#f7e5b7, #c8aa69); box-shadow: 0 1px 2px #0005; }
.tie-buttons { border-color: #ad9259; border-radius: 5px; }
.tie-choice, .tie-choice:hover { background: #122f20; color: #d1d7c1; box-shadow: none; border-radius: 0; }
.tie-choice + button { border-left-color: #ad9259; }
.tie-choice[aria-pressed=true] {
  background: linear-gradient(#dfc187, #b59453);
  color: #192117;
  font-weight: 700;
  box-shadow: inset 0 1px #fff3;
}
.statuses div { background: #203d2a; border-color: #6b724a; }
th { color: #e2cca0; background: #0e281b; }
summary { color: #dfd2ad; }
.other-menus { margin-top: 14px; border: 1px solid #756342; border-radius: 9px; background: #132f20; overflow: hidden; }
.other-menus > summary { padding: 11px 14px; min-height: 48px; color: #efdfb9; }
.other-menus > summary:hover { background: #23432f; }
.other-menus > summary:focus-visible { outline-offset: -4px; }
.other-menus-title { font-family: var(--heading-font); font-size: 18px; font-weight: 600; }
.other-menus-subtitle { font-size: 11px; margin-left: 12px; color: #d0c5a6; }
.other-menus[open] > summary { border-bottom: 1px solid var(--line); }
.other-menu-group { margin: 16px 14px 2px; font-size: 12px; color: #d9bc80; }
.other-menu-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 24px; padding: 0 14px; }
.other-menu-card { min-width: 0; padding: 10px 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; }
.other-menu-card h4 { font-family: var(--heading-font); color: #efdfb9; font-size: 16px; line-height: 1.3; margin: 0 0 4px; }
.menu-location { text-align: center; color: #e7dcc3; font-size: 12px; line-height: 1.5; font-weight: 600; }
.other-menu-location { margin: 0; color: #c9d0bc; font-size: 11px; line-height: 1.5; }
.other-menu-location span { display: block; }
.other-menu-actions { display: flex; flex-direction: column; align-items: flex-end; }
.other-menu-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 11px; color: #ebcb8b; text-underline-offset: 3px; white-space: nowrap; }
.other-menu-notes { margin: 6px 14px 10px; }
.other-menu-notes > summary { padding: 12px 0; min-height: 44px; font-size: 11px; color: #c9d0bc; }
.other-menu-notes p { margin: 0 0 8px; font-size: 12px; line-height: 1.6; color: #d0c5a6; }
@media (max-width: 720px) {
 .other-menu-grid { grid-template-columns: minmax(0,1fr); padding: 0 12px; }
 .other-menu-group { margin-left: 12px; }
}
details.panel > summary { color: #efdfb9; font-family: var(--heading-font); font-size: 19px; }
.remote-page details.panel > summary { font-size: 18px; }
footer { color: #d2c2a5; }
.remote-page header { padding: 20px; }
.remote-page .login-main { max-width: 480px; padding-top: 28px; }
.login-main header { margin-bottom: 20px; }
.login-main h1 { font-size: 29px; }
.login-main header p { color: #d4c7a9; font-size: 13px; margin-bottom: 0; }
.guest-bar button { background: #233c29; }
.activity-note { color: #c8bea7; }
@media (max-width: 640px) {
  header, .remote-page header { padding: 19px 17px; gap: 13px; }
  h1 { font-size: 26px; line-height: 1.15; }
  .remote-page h1 { font-size: 26px; }
  .remote-page .brand { gap: 12px; }
  .remote-page .header-badges { width: 100%; }
  .remote-page .pill { padding: 4px 9px; }
  .panel, .remote-page .panel { border-radius: 8px; }
  .remote-page .reservations-panel h2 { font-size: 21px; }
  .remote-page .reservation-date { font-size: 13px; }
  .remote-page .reservation-time { font-size: 20px; }
  .menu-links { gap: 10px; }
  .menu-link { padding: 10px; }
  .menu-link .restaurant-logo { height: 67px; }
  .remote-page .login-main { padding-top: 20px; }
}
@media (max-width: 360px) {
  header, .remote-page header { padding: 17px 14px; }
  .remote-page h1 { font-size: 23px; }
  .remote-page .brand-logo { width: 38px; height: 38px; padding: 6px; }
  .menu-link { padding: 8px; }
  .menu-format { font-size: 10px; letter-spacing: 0; }
}

/* The shared page keeps scan status in one compact card. */
.shared-page .guest-bar { margin-bottom: 15px; }
.monitor-summary-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.monitor-summary-heading h2 { margin: 0; }
.monitor-summary-heading #mode { text-transform: capitalize; white-space: normal; text-align: center; }
.monitor-timing { margin: 12px 0 9px; font-size: 13px; }
.monitor-timing > div { display: flex; justify-content: space-between; gap: 12px; margin-top: 5px; }
.monitor-timing dt { color: var(--muted); }
.monitor-timing dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.monitor-summary-note { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px 12px; margin: 0; font-size: 11px; color: var(--muted); }

/* Transparent crest sits directly on the walnut header. */
.henndale-header .brand-logo {
  width: 280px;
  height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  filter: drop-shadow(0 3px 5px #0006);
}
.monitor-booking { margin-top: 12px; }
.monitor-booking .pill { max-width: 100%; white-space: normal; }
.monitor-summary .monitor-booking { margin-top: 10px; }
.login-main .henndale-header .brand { flex-direction: column; width: 100%; text-align: center; }
.login-main .henndale-header .brand-copy h1 {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
@media (max-width: 640px) {
  .henndale-header .brand { flex-direction: column; width: 100%; gap: 12px; text-align: center; }
  .henndale-header .brand-logo { width: 320px; max-width: 100%; }
  .henndale-header .brand-copy { width: 100%; }
  .henndale-header .brand-copy h1 {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
  }
  .henndale-header .header-badges { justify-content: center; }
}

/* Dining and the user-supplied music itinerary share one authenticated page. */
.dashboard-tabs {
  display: flex; gap: 6px; padding: 6px; margin: 0 0 18px;
  position: sticky; top: 8px; z-index: 5;
  border: 1px solid #9d854f; border-radius: 7px;
  background: var(--wood-grain), #2d2117;
  box-shadow: 0 3px 10px #0005;
}
.dashboard-tabs button {
  flex: 1; display: inline-flex; justify-content: center; align-items: center;
  gap: 8px; min-height: 44px; background: #122f20;
  border-color: transparent; color: #dfd7be; font-size: 14px;
}
.dashboard-tabs button[aria-selected=true] {
  background: linear-gradient(#e6cb8b, #bb9552);
  color: #201e12; border-color: #e8d298;
}
.dashboard-tabs .icon { width: 19px; height: 19px; }
.dashboard-panel { scroll-margin-top: 80px; }
.dashboard-panel[hidden], .music-day[hidden] { display: none !important; }
#panel-drinks { max-width: 1000px; margin-inline: auto; }
.drink-tabs { display: flex; gap: 7px; margin: 0 0 16px; border-bottom: 1px solid var(--line); }
.drink-tabs > button { flex: 1; max-width: 180px; border: 0; border-bottom: 3px solid transparent; border-radius: 7px 7px 0 0; background: #102a1e; color: var(--muted); min-height: 46px; }
.drink-tabs > button[aria-selected="true"] { color: #f1d99f; background: #21432f; border-bottom-color: var(--gold); }
.drink-tabs > button:hover { color: var(--ink); background: #21432f; }
.drink-package-note { display: flex; align-items: center; gap: 8px; margin: 0 0 17px; color: #dfeacc; font-size: 12px; line-height: 1.5; }
.drink-package-note .icon { width: 16px; height: 16px; color: #a8ca95; }
.drink-no-origin .wine-summary, .drink-no-origin .wine-column-headings { grid-template-columns: minmax(0,1fr) 100px 145px 16px; }
.drink-prepared .wine-summary, .drink-prepared .wine-column-headings { grid-template-columns: minmax(0,1fr) 160px 16px; }
.drink-price-note { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; font-weight: 400; }
.wine-intro.panel { padding: 20px; margin-bottom: 12px; }
.wine-intro h2 { margin: 0; font-size: 25px; }
.wine-subtitle { color: var(--muted); font-size: 13px; margin: 5px 0 16px; }
.wine-filters { display: grid; grid-template-columns: 1fr 1.3fr 1fr; gap: 12px; }
.drink-simple-filters { grid-template-columns: 1.3fr 1fr; }
.wine-field[hidden] { display: none; }
.wine-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; color: #e5d6b2; font-size: 12px; }
.wine-field select { width: 100%; min-width: 0; min-height: 44px; font-size: 14px; }
.wine-results-bar { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 44px; margin-bottom: 6px; }
.wine-status { font-size: 12px; color: var(--muted); margin: 0; }
.wine-reset { border: none; background: transparent; color: var(--gold); font-size: 12px; padding: 8px; }
.wine-list { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: #132e21; }
.wine-entry { margin: 0; border-bottom: 1px solid var(--line); }
.wine-entry:last-child { border-bottom: 0; }
.wine-summary, .wine-column-headings { display: grid; grid-template-columns: minmax(0,1fr) 110px 80px 140px 16px; align-items: center; gap: 16px; padding: 17px 20px; }
.wine-summary { list-style: none; color: var(--ink); cursor: pointer; }
.wine-column-headings { padding-block: 0; margin-bottom: 5px; }
.wine-sort-heading { min-width: 0; min-height: 44px; padding: 5px 0; border: 0; background: transparent; box-shadow: none; text-align: left; justify-content: flex-start; font-size: 12px; color: var(--muted); }
.wine-sort-heading:hover, .wine-sort-heading[aria-pressed="true"] { color: #efd59c; background: transparent; }
.wine-sort-rating, .wine-sort-price { text-align: right; justify-content: flex-end; }
.wine-origin { font-size: 12px; color: #bac9b5; overflow-wrap: anywhere; }
.wine-summary::-webkit-details-marker { display: none; }
.wine-summary:hover { background: #1b3b2a; }
.wine-summary:focus-visible { outline-offset: -4px; }
.wine-identity { min-width: 0; }
.wine-name { display: block; color: #f1e5c8; font-family: var(--heading-font); font-size: 19px; line-height: 1.35; overflow-wrap: anywhere; }
.wine-identity { display:flex;align-items:center;gap:10px;min-width:0; }
.drink-name-copy { flex:1;min-width:0; }
.drink-bottle { width:32px;height:48px;object-fit:contain;flex-shrink:0; }
.drink-illustration { display:inline-flex;width:32px;height:48px;flex-shrink:0;color:var(--muted); }
.drink-illustration svg { width:100%;height:100%; }
.drink-star { flex:0 0 38px;min-height:44px;padding:0;background:transparent;border:0;box-shadow:none;color:#dcc794;font:30px/1 Arial; }
.drink-star[aria-pressed="true"] { color:#f3c95a; }
.drink-star:disabled { opacity:.4; }
.drink-star-filter[aria-pressed="true"] { background:#725620;color:#fff2c9; }
.drink-personal { display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px; }
.drink-personal-status { flex:1;font-size:13px;min-width:130px; }
.drink-star-filter { font-size:13px;padding:8px 12px; }
.drink-profile-form { display:flex;gap:8px;flex-wrap:wrap;width:100%; }
.drink-profile-form[hidden] { display:none; }
.drink-profile-form input { width:180px; }
.drink-photo-credit { font-size:12px;color:var(--muted); }
#saved-reservations[hidden],#saved-weather-note[hidden] { display:none; }
.pdw-disconnected #panel-dining>.reservations-panel { display:none; }
.wine-type { display: block; margin-top: 3px; font-size: 11px; color: #bac9b5; }
.wine-rating { text-align: right; color: #dce2d1; font-size: 13px; font-variant-numeric: tabular-nums; }
.wine-price { text-align: right; color: #e9ce95; font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.wine-expand { font-size: 18px; text-align: center; color: var(--gold); }
.wine-entry[open] > .wine-summary { background: #1b3b2a; }
.wine-entry[open] > .wine-summary .wine-expand { transform: rotate(180deg); }
.wine-entry-body { padding: 0 20px 19px; background: #1b3b2a; }
.wine-description { font-size: 14px; color: #e0e2d1; line-height: 1.7; margin: 0 0 10px; }
.wine-venues { font-size: 12px; color: #bdcab6; margin: 0 0 14px; }
.wine-extra { font-size: 13px; color: #e6cf9f; margin: 0 0 5px; }
.wine-retail { font-size: 12px; color: #d6dfcc; margin: 5px 0; }
.wine-caveat { font-size: 12px; color: #c8c6ae; margin: 5px 0; }
.wine-details { margin-top: 14px; padding-top: 10px; border-top: 1px solid #4c5d43; }
.wine-details > summary { font-size: 12px; min-height: 30px; color: #ded2b0; }
.wine-details h4 { color: #e6d0a1; margin-bottom: 9px; font-size: 13px; }
.wine-facts { margin: 13px 0; font-size: 12px; }
.wine-facts > div { margin: 0 0 12px; }
.wine-facts dt { color: #dec99e; font-weight: 600; }
.wine-facts dd { color: #cad2c0; margin: 3px 0 0; overflow-wrap: anywhere; }
.wine-source-links { display: flex; flex-wrap: wrap; gap: 8px 15px; font-size: 11px; }
.wine-source-links a { overflow-wrap: anywhere; }
.wine-offers { list-style: none; padding: 0; margin: 0; }
.wine-offers li { margin-top: 13px; padding-top: 13px; border-top: 1px solid #526044; font-size: 12px; }
.wine-offers p { margin: 5px 0; }
.wine-offer-note { color: #bdc8b4; font-size: 11px; }
.wine-empty.panel { border: 0; margin: 0; box-shadow: none; }
.wine-empty p { font-size: 13px; color: var(--muted); margin-bottom: 0; }
.wine-more { display: block; min-width: 170px; margin: 18px auto; min-height: 44px; }
.wine-footer { margin: 18px 0; font-size: 11px; color: var(--muted); }
.wine-footer > p { margin-bottom: 5px; }
.wine-method { margin-top: 0; }
.wine-method summary { color: #dbc99e; font-size: 12px; padding-block: 5px; }
.wine-method p { font-size: 12px; color: var(--muted); margin: 10px 0; }
@media (max-width: 640px) {
  .dashboard-tabs button { min-width: 0; padding: 6px; gap: 4px; font-size: 13px; flex-direction: column; }
  .dashboard-tabs .icon { width: 16px; height: 16px; flex-shrink: 0; }
  .drink-tabs { gap: 4px; }
  .drink-tabs > button { min-width: 0; padding: 7px 5px; font-size: 12px; }
  .wine-intro.panel { padding: 15px; }
  .wine-intro h2 { font-size: 22px; }
  .wine-filters { grid-template-columns: 1fr 1fr; gap: 10px; }
  .wine-field:last-child { grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 10px; }
  .wine-field:last-child select { width: auto; flex: 1; }
  .drink-simple-filters .wine-field:last-child { grid-column: auto; flex-direction: column; align-items: stretch; gap: 5px; }
  .drink-simple-filters .wine-field:last-child select { width: 100%; }
  .wine-summary { grid-template-columns: minmax(0,1fr) auto 14px; gap: 7px 10px; padding: 14px; }
  .drink-no-origin .wine-summary { grid-template-columns: minmax(0,1fr) auto 14px; }
  .drink-no-origin .wine-column-headings { grid-template-columns: repeat(3,auto); }
  .drink-no-origin .wine-expand { grid-row: 1 / 3; }
  .drink-prepared .wine-column-headings { grid-template-columns: 1fr 1fr; }
  .drink-prepared .wine-price { grid-column: 1 / 3; text-align: left; }
  .wine-column-headings { grid-template-columns: repeat(4,auto); gap: 6px; padding: 0 6px; }
  .wine-sort-heading { text-align: center; justify-content: center; font-size: 11px; }
  .wine-identity { grid-column: 1 / 3; }
  .wine-origin { grid-column: 1 / 3; font-size: 12px; }
  .wine-name { font-size: 18px; }
  .wine-expand { grid-column: 3; grid-row: 1 / 4; }
  .wine-rating { grid-column: 1; text-align: left; font-size: 12px; }
  .wine-price { grid-column: 2; font-size: 12px; }
  .wine-entry-body { padding: 0 14px 16px; }
}
.music-intro-top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.weather-intro-top, .weather-day-top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.weather-intro h2 { display: flex; align-items: center; gap: 9px; margin: 0; }
.weather-intro h2 .icon { width: 24px; height: 24px; }
.weather-badge { color: #f0d8a0; border: 1px solid #8d814d; border-radius: 20px; padding: 6px 12px; font-size: 12px; }
.weather-lead { font-size: 14px; line-height: 1.6; color: #e1dfc9; }
.weather-note, .weather-schedule, .weather-timezone, .weather-footer { font-size: 12px; line-height: 1.6; color: #c3cbb4; }
.weather-schedule { color: #ead7a5; }
.weather-filter { display: flex; align-items: center; gap: 14px; margin-top: 16px; }
.weather-filter label { font-size: 13px; }
.weather-filter select { min-width: 220px; max-width: 100%; }
.weather-days { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 16px; }
.weather-days .weather-day { min-width: 0; margin-bottom: 0; padding: 22px; }
.weather-date { margin: 0; color: #eddaaa; font-size: 14px; }
.weather-kind { text-transform: uppercase; letter-spacing: 1px; font-size: 10px; color: #c3cbb4; }
.weather-day h3 { font-size: 26px; margin: 12px 0 5px; color: #f3e6c3; }
.weather-location { font-size: 13px; color: #d0d9c2; margin: 5px 0; }
.weather-estimate { font-size: 11px; color: #f1d498; margin: 10px 0 5px; font-weight: 650; }
.weather-empty { background: #0b211870; border-left: 2px solid #ad945f; padding: 13px; font-size: 13px; line-height: 1.65; margin: 18px 0; color: #e6dec5; }
.weather-stale { color: #ffdaa0; background: #6c491944; padding: 10px; font-size: 12px; border-radius: 5px; }
.weather-condition { margin: 16px 0 4px; font-size: 15px; color: #ecdcaf; }
.weather-temperature { margin: 0 0 18px; font: 34px var(--heading-font); color: #fff0ca; }
.weather-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin: 0 0 17px; }
.weather-stats dt { font-size: 11px; color: #c3cbb4; margin-bottom: 5px; }
.weather-stats dd { font-size: 17px; margin: 0; color: #f1e7cd; }
.weather-hourly { border-top: 1px solid #75806166; padding-top: 10px; }
.weather-hourly summary { color: #ead7a5; font-size: 13px; padding: 7px 0; min-height: 36px; }
.weather-hourly .scroll { max-height: 370px; margin-top: 8px; }
.weather-hourly table { min-width: 480px; font-size: 12px; }
.weather-hourly th { position: sticky; top: 0; }
.weather-hourly th, .weather-hourly td { padding: 10px 8px; }
.weather-hourly td:first-child { white-space: nowrap; }
.weather-hourly-pending { color: #c3cbb4; font-size: 12px; margin-bottom: 0; }
.weather-footer { margin-top: 20px; }
@media (max-width: 700px) {
 .weather-days { grid-template-columns: minmax(0,1fr); gap: 14px; }
 .weather-days .weather-day { padding: 18px; }
 .weather-intro h2 { font-size: 23px; }
 .weather-filter select { min-width: 0; flex: 1; }
}
.music-intro h2 { margin: 0; display: flex; align-items: center; gap: 9px; }
.music-intro h2 .icon { width: 22px; height: 22px; }
.music-range { font-size: 12px; color: #d0c5a6; }
.music-caveat { font-size: 12px; color: #d0c5a6; margin: 8px 0 14px; }
.music-essentials { font-size: 13px; line-height: 1.6; margin: 0; }
.music-essentials strong { color: #eddaaa; }
.music-general-notes { margin-top: 8px; }
.music-general-notes summary, .music-event-details summary { font-size: 12px; cursor: pointer; }
.music-general-notes p, .music-event-details p { font-size: 12px; color: #d0c5a6; line-height: 1.6; }
.music-filter { display: flex; align-items: center; gap: 12px; margin-top: 17px; }
.music-filter label { font-size: 13px; color: #dfd2ad; margin: 0; flex-shrink: 0; }
.music-filter select { width: auto; min-width: 190px; min-height: 44px; max-width: 100%; }
.music-days { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 16px; }
.music-days .music-day { margin-bottom: 0; min-width: 0; padding: 20px; }
.music-date { font-family: var(--heading-font); font-size: 21px; color: #eddaaa; margin: 0 0 17px; }
.music-events { list-style: none; margin: 0; padding: 0; }
.music-event { border-left: 2px solid #c1a062; padding: 0 0 0 12px; margin: 0 0 22px; }
.music-event:last-child { margin-bottom: 0; }
.music-session { border-left-color: #9ebdae; }
.music-group { border-left-color: #f1d498; }
.music-event-top { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.music-kind { text-transform: uppercase; letter-spacing: .8px; font-size: 9px; color: #e4c892; font-weight: 700; }
.music-session .music-kind { color: #b4d4bf; }
.music-time { font-size: 13px; font-weight: 650; color: #f3e4bd; font-variant-numeric: tabular-nums; }
.music-time time { white-space: nowrap; }
.music-overnight { display: block; font-size: 10px; color: #c3cbb4; margin-top: 3px; }
.music-event h4 { font-size: 15px; font-weight: 650; line-height: 1.4; margin: 7px 0 3px; color: #f4eddb; }
.music-venue { font-size: 12px; color: #e5d7b2; margin: 0; line-height: 1.5; }
.music-note { font-size: 12px; line-height: 1.6; color: #c8cbb5; margin: 7px 0 0; }
.music-event-details { margin-top: 8px; }
.music-day-note { margin: 18px 0 0; padding-top: 12px; border-top: 1px solid #75806166; font-size: 12px; color: #c8cbb5; }
.music-filter-status {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
.reservation-show {
  display: flex; align-items: flex-start; gap: 8px; margin: 10px 0 12px; padding: 9px 10px;
  background: #0d281b80; border: 1px solid #8d814d80; border-radius: 5px;
}
.reservation-show > .icon { width: 16px; height: 16px; color: #dfc187; flex-shrink: 0; margin-top: 1px; }
.reservation-show-body { min-width: 0; }
.reservation-show-heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 8px; }
.reservation-show-heading > span { font-size: 11px; color: #d0c5a6; }
.reservation-show-time { font-size: 12px; font-weight: 650; color: #f0d8a0; white-space: nowrap; }
.reservation-show-venue { display: block; margin-top: 3px; font-size: 11px; line-height: 1.4; color: #d8d8bf; }
@media (max-width: 700px) {
  .music-days { grid-template-columns: minmax(0,1fr); gap: 14px; }
  .music-intro h2 { font-size: 21px; }
  .music-days .music-day { padding: 18px; }
  .music-event-top { display: block; }
  .music-kind { display: block; margin-bottom: 5px; }
  .music-filter select { flex: 1; min-width: 0; }
}

/* Saved cruise guide and durable menu-photo outbox. */
.menu-proposal{scroll-margin-top:90px;padding:1rem 0;border-top:1px solid #7d794c}.menu-change-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:1rem 0}.menu-change-counts>div{padding:.8rem;background:#173825;border:1px solid #7d794c;border-radius:.5rem}.menu-change-counts strong{display:block;color:#f0d8a0;font-size:1.8rem}.menu-change-counts span{font-size:.9rem}.menu-proposal>button{margin:.9rem .5rem 0 0}.menu-scan .menu-partial-choice{flex-direction:row;align-items:center;margin:1rem 0}.menu-partial-choice input{flex-shrink:0}.menu-proposal details{margin:1rem 0}.menu-proposal li{margin:.4rem 0;overflow-wrap:anywhere}.menu-unclear{color:#f0d390}
.offline-banner{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;padding:.8rem 1rem;border:1px solid #9b874b;border-radius:.65rem;margin:1rem 0;background:#173825}
.offline-banner small{flex:1;min-width:160px}.offline-banner button{font-size:.8rem;padding:.4rem .65rem}
.pdw-disconnected .offline-banner{background:#4b3c21}.pdw-disconnected #panel-dining .cards,.pdw-disconnected #panel-dining .monitor-summary,.pdw-disconnected #panel-dining .reservations-panel,.pdw-disconnected #panel-dining #booking-plan,.pdw-disconnected #panel-weather>section{opacity:.55}
.pdw-disconnected #panel-dining:before,.pdw-disconnected #panel-weather:before{content:'Connection unavailable — any information below is from an earlier visit.';display:block;padding:1rem;color:#f0d390}
.menu-scan{margin-bottom:1rem}.menu-scan>summary{font-weight:700;font-size:1.12rem;cursor:pointer}.menu-capture-fields,.menu-review-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.menu-scan label{display:flex;flex-direction:column;gap:.35rem}.menu-scan input,.menu-scan select,.menu-scan textarea{width:100%;min-width:0;box-sizing:border-box}.menu-scan input[type=checkbox]{width:1.3rem;height:1.3rem}.menu-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}.menu-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.menu-photo-grid figure{margin:0}.menu-photo-grid img{width:100%;height:140px;object-fit:contain;background:#eee;border-radius:.4rem}.menu-photo-grid figcaption{font-size:.8rem}.menu-job{padding:.8rem 0;border-top:1px solid #647451}.menu-job button,.menu-scan>div>button{margin:.3rem .5rem .3rem 0}.menu-review-row{border:1px solid #7d794c;border-radius:.5rem;margin:1rem 0;padding:.75rem}.menu-review-row p{grid-column:1/-1}.menu-review-photo{max-width:100%;max-height:900px}.menu-scan pre{white-space:pre-wrap;overflow-wrap:anywhere}.menu-scan button{white-space:normal}
@media(max-width:500px){.menu-capture-fields,.menu-review-row{grid-template-columns:1fr}.menu-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Shared drink availability; restore controls stay inside the expanded row. */
.drink-availability{border:1px solid #8d814d80;border-radius:7px;background:#0d281b80;padding:14px;margin:18px 0 0;min-width:0}
.drink-availability h4{margin:0 0 7px;color:#eddaaa}
.drink-availability-help,.drink-availability-notice{font-size:12px;line-height:1.55;color:#d8d8bf;overflow-wrap:anywhere}
.drink-availability-help{margin:0 0 10px}
.drink-availability-notice{margin:12px 0 0;color:#f0d390}
.drink-availability-actions{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px}
.drink-availability-field{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1 1 210px;font-size:12px}
.drink-availability-scope{width:100%;min-width:0;box-sizing:border-box;min-height:42px}
.drink-availability button{font-size:12px;white-space:normal;min-height:42px}
.drink-availability-reports{list-style:none;margin:0 0 12px;padding:0}
.drink-availability-reports li{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:10px 0;border-top:1px solid #75806166;overflow-wrap:anywhere}
.drink-availability-reports li>span{font-size:13px;color:#f0d390;flex-basis:100%}
.drink-availability-reports small{flex:1 1 160px;line-height:1.5;color:#c8cbb5}
.drink-unavailable-badge{display:block;font-size:10px;line-height:1.4;color:#f0d390;margin-top:4px}
