:root { color-scheme:light; --rt-mint:#40c5b4; --rt-teal:#008476; --rt-pale:#eafbF5; --rt-ink:#101b30; }
html,body { background:#fff!important; color:var(--rt-ink)!important; }
#app { padding-bottom:102px; background:#fff; }
#app>header { max-width:720px; margin:auto; background:#fff; color:var(--rt-ink); box-shadow:none; border:0; padding:18px 18px 10px; }
#app>header .brand { justify-content:flex-start; }
#app>header .brand-wordmark { width:155px; height:auto; }
#app:has(#booking-form)>header>h1,#app:has(#booking-form)>header>p { display:none; }
#app .wrap { max-width:720px; margin:0 auto; padding:10px 16px 30px; }
#app :is(h1,h2,h3) { color:var(--rt-ink); }
#app .card { background:#fff; border:1px solid #dfe6e3; border-radius:16px; box-shadow:0 3px 16px #17372b08; padding:18px; }
#app :is(button,.button-link,.button-link:not(.secondary)) { border-radius:11px; }
#app button:not(.secondary):not([data-step]):not([data-date-offset]):not([data-slot-id]):not([data-preview-photo]):not([data-remove-photo]):not([data-item-decrease]):not([data-item-increase]) { background:var(--rt-teal); color:#fff; }
#app :is(.secondary,.button-link) { background:#fff; color:#08786b; border:1px solid #1cae99; }
#app :is(input,select,textarea) { border-color:#d6e3dd; background:#fff; color:#152f28; border-radius:10px; }
#app :is(input,select,textarea):focus-visible,#app button:focus-visible,#app a:focus-visible { outline:3px solid #39beaa; outline-offset:2px; }
#app .muted { color:#58636c; }
.rt-bright-city { margin:13px 0 8px; display:flex; align-items:center; gap:9px; padding:12px; min-height:46px; border-radius:12px; background:#e6faf3; color:#103f35; }
.rt-bright-city>svg { width:24px; height:24px; flex-shrink:0; color:#008476; }
.rt-bright-city strong { font-size:15px; line-height:1.3; flex:1; }
#app .rt-bright-city button { padding:6px 0 6px 8px; min-height:34px; background:transparent!important; color:#08786b!important; border:0; text-decoration:underline; font-size:13px; }
#app .booking-progress { background:#fff; border:0; box-shadow:none; padding:6px 0 14px; }
#app .booking-progress>p { color:#557568; font-size:12px; margin:0 0 8px; }
#app .booking-progress ol { gap:7px; }
#app .booking-progress button { color:#718078; background:#fff; border:0; font-size:12px; }
#app .booking-progress button span { border:1px solid #ccd9d3; color:#7b8881; background:#fff; border-radius:50%; }
#app .booking-progress button[aria-current="step"] { color:#008476; font-weight:700; background:#fff; }
#app .booking-progress button[aria-current="step"] span { background:#008476; border-color:#008476; color:#fff; }
#app #booking-form .item { position:relative; background:#fff; border:1px solid #dbe5df; border-radius:14px; padding:14px; }
.rt-bright-item-heading { display:flex; align-items:center; gap:12px; min-height:66px; padding-right:100px; margin-bottom:6px; }
.rt-bright-item-heading>.row { min-width:0; }
.rt-bright-item-heading b { font-size:17px; line-height:1.2; }
.rt-bright-item-art { width:70px; height:65px; min-width:60px; flex-shrink:0; border:1px solid #e5ede9; border-radius:9px; overflow:hidden; }
#app .item-quantity { margin-top:10px; }
#app .booking-photo-actions { background:#fff; border:1px solid #dbe5df; border-radius:14px; padding:15px; margin-top:14px; box-shadow:0 2px 12px #143a2b04; }
#app .booking-photo-actions h3 { font-size:20px; margin:0 0 9px; }
#app #photo-count { color:#426657; }
#app .photos img { border-radius:10px; }
#app .booking-dock { bottom:calc(84px + env(safe-area-inset-bottom)); background:#fff; border-top:1px solid #e1e9e5; box-shadow:0 -3px 12px #16372a08; }
#app #flow-next { background:#008476; color:#fff; font-size:16px; font-weight:700; min-height:48px; }
#app #flow-next:disabled { background:#e7eeeb!important; color:#74877d!important; }
#app .notice { border-radius:11px; }
#app .notice:not(.error) { background:#effbf6; color:#315b49; border-color:#d2ebde; }
#app>nav.rt-bright-nav { position:fixed; z-index:100; left:50%; right:auto; bottom:0; transform:translateX(-50%); display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:3px; width:100%; max-width:720px; height:calc(80px + env(safe-area-inset-bottom)); box-sizing:border-box; padding:4px 7px calc(7px + env(safe-area-inset-bottom)); border-top:1px solid #dce8e0; background:#fff; box-shadow:0 -3px 16px #143c2f08; overflow:visible; }
#app>nav.rt-bright-nav>a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; min-width:0; padding:5px 1px; border-radius:13px; background:transparent; color:#587067; font:600 11px/1.15 Arial,Helvetica,sans-serif; text-decoration:none; white-space:nowrap; }
#app>nav.rt-bright-nav>a>svg { width:25px; height:25px; flex-shrink:0; }
#app>nav.rt-bright-nav>a.active { background:#e9f8f1; color:#08776b; }
#app>nav.rt-bright-nav>a.rt-nav-sell { justify-content:flex-end; padding:0 1px 3px; color:#08776b; background:transparent; overflow:visible; }
#app>nav.rt-bright-nav>a.rt-nav-sell>svg { width:58px; height:58px; box-sizing:border-box; min-width:58px; padding:11px; border:5px solid transparent; border-radius:50%; margin-top:-22px; flex:0 0 58px; stroke-width:2.8; background:linear-gradient(#fff,#fff) padding-box,conic-gradient(#087f73 0deg 125deg,#f5bd39 125deg 235deg,#35b7ad 235deg 360deg) border-box; box-shadow:0 2px 7px #164b3d26; }
.rt-bright-city-dialog { width:min(92vw,440px); max-height:85dvh; overflow:auto; padding:22px; border:0; border-radius:18px; background:#fff; color:#101b30; font-family:Arial,Helvetica,sans-serif; }
.rt-bright-city-dialog::backdrop { background:#132a2366; }
.rt-city-dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.rt-city-dialog-heading h2 { margin:0; font-size:22px; }
.rt-city-dialog-heading button { width:42px; height:42px; border:0; border-radius:50%; background:#eff9f4; color:#105844; font-size:25px; }
.rt-bright-city-dialog p { font-size:14px; line-height:1.4; color:#50655b; }
.rt-city-dialog-options { display:grid; gap:9px; }
.rt-city-dialog-options button { min-height:46px; padding:11px; border:1px solid #cbe6d9; border-radius:11px; background:#edfaf3; color:#144d3a; font-size:16px; text-align:left; }
@media(max-width:500px) {
 #app>header { padding:14px 14px 6px; }
 #app .wrap { padding:8px 12px 26px; }
 #app .card { padding:14px; }
 .rt-bright-item-heading { padding-right:0; gap:10px; }
 .rt-bright-item-art { width:65px; height:62px; min-width:55px; }
 #app .booking-progress button { font-size:11px; }
}
