:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#192e3c;background:#f2f5f8;font-size:16px;font-synthesis:none;--navy:#143549;--blue:#146888;--line:#d8e1e8;--muted:#53697a;--amber:#835115;--green:#1c634d}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:7px;padding:.65rem 1rem;background:white;color:var(--navy);font-weight:600}button:hover{background:#e9f1f5}button:disabled{opacity:.55;cursor:wait}button.primary{background:var(--blue);border-color:var(--blue);color:white}button.danger{color:#963b38;border-color:#d9b8b6}button.link{padding:0;border:0;background:transparent;color:var(--blue);text-align:left}a{color:var(--blue)}input,select,textarea{width:100%;border:1px solid #b7c7d1;border-radius:6px;background:white;padding:.7rem;color:#192e3c;min-height:44px}input[type=checkbox],input[type=radio]{width:22px;min-height:22px;vertical-align:middle}label{display:grid;gap:.4rem;font-size:.9rem;font-weight:600}textarea{min-height:90px;resize:vertical}h1{font-size:2rem;letter-spacing:-.055rem;line-height:1.15;margin:0 0 .5rem}h2{font-size:1.25rem;margin:0 0 1rem}h3{font-size:1.05rem;margin:0 0 .75rem}p{line-height:1.55}small,.muted{color:var(--muted);font-size:.875rem}.shell{display:grid;grid-template-columns:242px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--navy);color:#e5eff5;padding:2rem 1.15rem;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{font-family:Georgia,serif;font-size:1.5rem;padding:0 .65rem 2rem;line-height:1.3}.brand span{display:block;font-family:inherit;color:#a4c6d5;font-size:.85rem;margin-top:.55rem}.sidebar nav{display:grid;gap:.4rem}.sidebar nav button{background:transparent;color:#c8dce6;border-color:transparent;text-align:left;padding:.8rem 1rem;font-weight:500}.sidebar nav button.active{background:#2a4b60;color:white;border-left:3px solid #e9b965;border-radius:4px}.side-bottom{margin-top:auto;padding:.8rem;font-size:.875rem;color:#b9ccd7}.side-bottom button{margin-top:1rem;font-size:.875rem}.workspace{min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 2.5rem;border-bottom:1px solid var(--line);background:white;gap:1rem}.topbar strong{display:block;font-size:1rem}.topbar small{display:block;margin-top:.3rem}.content{padding:2rem 2.5rem;max-width:1700px;margin:auto}.heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.7rem}.heading p{margin:.4rem 0 0;color:var(--muted)}.toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.card{background:white;border:1px solid var(--line);border-radius:10px;padding:1.5rem;margin-bottom:1.3rem;box-shadow:0 2px 3px #102f4003}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1.4rem}.metric{padding:1.25rem;background:white;border:1px solid var(--line);border-radius:9px}.metric .value{font-size:1.9rem;font-weight:650;display:block;margin:.6rem 0}.metric .label{color:var(--muted);font-size:.9rem}.notice{background:#fff7e8;border:1px solid #ead7b4;border-left:4px solid #b67d28;padding:1rem 1.2rem;border-radius:6px;color:#694916;line-height:1.55;margin:1rem 0}.notice.info{background:#eaf3f9;border-color:#b8d3e4;color:#28566e}.badge{display:inline-block;padding:.25rem .55rem;border-radius:5px;font-size:.8rem;background:#eef2f6;font-weight:650;white-space:nowrap}.badge.confirmed,.badge.reviewed,.badge.sent,.badge.completed{color:#1c634d;background:#e3f2eb}.badge.draft,.badge.suggested,.badge.queued{color:#805119;background:#fbefd9}.badge.cancelled,.badge.failed,.badge.uncertain{color:#913e35;background:#fbeae7}.category{display:inline-flex;align-items:center;gap:.45rem}.category:before{content:"";width:8px;height:8px;border-radius:2px;background:#709ec0}.category.owner:before{background:#8563a5}.category.friend:before{background:#399b8b}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th{text-align:left;color:var(--muted);font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;font-weight:600;padding:.8rem .8rem;border-bottom:1px solid var(--line)}td{padding:1rem .8rem;border-bottom:1px solid #e8eef2;vertical-align:middle}tr:last-child td{border-bottom:0}td strong{display:block;margin-bottom:.25rem}.empty{text-align:center;padding:3rem 1rem;color:var(--muted)}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--line);border-top:1px solid var(--line);border-radius:6px;overflow:hidden}.calendar .weekday{padding:.65rem;background:#edf3f7;color:var(--muted);font-size:.8rem;text-align:center;border-right:1px solid var(--line)}.day{min-height:118px;background:white;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:.5rem;min-width:0}.day.outside{background:#f6f8fa;color:#8396a3}.day.today .day-number{background:var(--blue);color:white;border-radius:50%;padding:.2rem .45rem}.day-number{font-size:.875rem;display:inline-block;margin-bottom:.4rem}.event{display:block;min-width:0;text-align:left;width:100%;padding:.35rem .4rem;font-size:.75rem;line-height:1.3;border:0;border-left:3px solid #488ba9;border-radius:3px;margin-bottom:.25rem;background:#e9f2f8;overflow:hidden;text-overflow:ellipsis}.event.owner{border-color:#9874b7;background:#f0eaf7}.event.friend{border-color:#399b8b;background:#e3f3ee}.event.clean{border-color:#b27c34;background:#fbf1df}.event.draft{opacity:.6;border-left-style:dashed}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-grid .wide{grid-column:1/-1}.section-divider{border:0;border-top:1px solid var(--line);margin:1.5rem 0}.split{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:1.3rem}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1rem 0}.detail-grid dt{color:var(--muted);font-size:.8rem;margin-bottom:.4rem}.detail-grid dd{margin:0;font-weight:600}.tabs{display:flex;gap:.4rem;border-bottom:1px solid var(--line);margin-bottom:1.5rem;overflow:auto;padding-bottom:.6rem}.tabs button{border:0;background:transparent}.tabs button.active{background:#e4eef5;color:var(--blue)}.image-preview{width:100%;height:auto;border:1px solid var(--line);border-radius:8px}.check{display:flex;align-items:center;gap:.6rem}.login{max-width:480px;margin:12vh auto;padding:2.5rem;background:white;border:1px solid var(--line);border-radius:12px}.login form{display:grid;gap:1.1rem}.login .brand{color:var(--navy);padding:0 0 1.6rem}.login .brand span{color:var(--muted)}#toast{position:fixed;bottom:1.5rem;right:1.5rem;background:#143549;color:white;padding:1rem 1.5rem;border-radius:8px;max-width:min(560px,90vw);z-index:10;display:none;box-shadow:0 5px 24px #0002}#toast.show{display:block}#toast.error{background:#873a32}dialog{border:1px solid var(--line);border-radius:12px;padding:2rem;width:min(850px,94vw);max-height:90vh;overflow:auto;color:#192e3c}dialog::backdrop{background:#08213288}dialog .actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1.6rem;flex-wrap:wrap}.error-text{color:#9a3b31;line-height:1.5}.json-box,pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:ui-monospace,monospace;font-size:.85rem;line-height:1.5;background:#f3f6f8;padding:1rem;border-radius:6px}.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.room{border:1px solid var(--line);padding:1.1rem;border-radius:8px}.chat-message{padding:1rem 1.3rem;white-space:pre-wrap;line-height:1.6;border-bottom:1px solid var(--line)}.chat-message.user{background:#edf4f8}.inline-error{padding:.8rem;border:1px solid #e4b7af;background:#fff1ee;border-radius:6px;color:#8f3428}.legend{display:flex;gap:1.25rem;margin:1rem 0;font-size:.875rem}.mobile-nav{display:none}.loading{padding:3rem;text-align:center}.status-line{font-size:.875rem;color:var(--muted);margin-top:.75rem}.nowrap{white-space:nowrap}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d4a13c;outline-offset:3px}@media(max-width:1050px){.shell{grid-template-columns:190px minmax(0,1fr)}.content{padding:1.5rem}.topbar{padding:1rem 1.5rem}.split{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}.room-grid{grid-template-columns:1fr}.calendar .day{min-height:100px}.sidebar{padding:1.5rem .65rem}}@media(max-width:720px){.shell{display:block}.sidebar{position:static;height:auto;padding:1rem}.brand{font-size:1.3rem;padding:0 0 .8rem}.brand span{display:none}.sidebar nav{display:flex;overflow:auto;gap:.25rem}.sidebar nav button{white-space:nowrap;padding:.6rem .8rem;font-size:.85rem}.side-bottom{display:none}.topbar{padding:.9rem 1rem}.content{padding:1.25rem .8rem}.heading{align-items:flex-start;flex-wrap:wrap}.heading h1{font-size:1.7rem}.card{padding:1rem}.metrics{gap:.6rem}.metric{padding:1rem}.metric .value{font-size:1.5rem}.form-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:repeat(2,1fr)}.day{min-height:88px;padding:.25rem}.event{font-size:.65rem;padding:.25rem .2rem}.calendar .weekday{font-size:.7rem;padding:.5rem .2rem}.login{margin:6vh 1rem;padding:1.8rem}.legend{gap:.75rem;flex-wrap:wrap}dialog{padding:1.2rem}table{min-width:650px}}

[hidden]{display:none!important}
.event.calendar-entry{border-color:#3f7d5a;background:#e6f2ea}
.category.calendar-entry:before{background:#3f7d5a}
.sync-account{border-top:1px solid var(--line);padding-top:1.2rem;margin-top:1.2rem}
.sync-link{border:1px solid var(--line);border-radius:8px;padding:1rem 1.1rem;margin:.8rem 0;background:#fbfcfd}
.sync-link .heading{margin-bottom:.6rem;align-items:flex-start}
.sync-link .heading p{margin:.35rem 0 0}
.sync-options{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;align-items:center;margin:.4rem 0 1rem}
.sync-options label:not(.check){min-width:260px}
.swatch{display:inline-block;width:.75rem;height:.75rem;border-radius:50%;background:var(--blue);margin-right:.5rem;vertical-align:middle}
.steps{line-height:1.7;padding-left:1.3rem;margin:0 0 1.2rem}
.steps code,.notice code{overflow-wrap:anywhere;background:#eef3f6;padding:.1rem .35rem;border-radius:4px}
.calendar-choices{display:grid;gap:.6rem;margin-bottom:1rem}
.pre{white-space:pre-wrap}
.error-text{margin:.35rem 0 0}

/* iOS Safari zooms into fields smaller than 16px and stays zoomed. */
input,select,textarea{font-size:16px}
.tabs button{white-space:nowrap}

.review-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:0}
.review-item{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:1rem 0;border-bottom:1px solid var(--line)}
.review-item .toolbar{justify-content:flex-end}
.event.calendar-entry.review{border-left-style:dashed;border-color:#b67d28;background:#fff4de}

.embedded .sidebar .brand,.embedded .side-bottom,.embedded .topbar{display:none}
.embedded .sidebar{padding-top:.6rem;padding-bottom:.6rem}

/* In the app every section is visible at once instead of hidden in a sideways-scrolling strip. */
.embedded .sidebar nav{flex-wrap:wrap;overflow:visible;gap:.3rem}
.embedded .sidebar nav button{padding:.45rem .75rem;font-size:.85rem;border-left:0}
.embedded .sidebar nav button.active{border-left:0;box-shadow:inset 0 -2px 0 #e9b965}

/* Arrivals and departures stand out in the month and week grids. */
.event.arrive{border-left-width:6px}
.event.depart{background:#fff;border:1px dashed currentColor;border-left-width:6px;opacity:.85}
@media(max-width:720px){.tabs{flex-wrap:wrap}}

#review-banner .review-banner{margin-bottom:.75rem}
.badge.completed{color:#1c634d;background:#d6efe3}

.attention .heading{margin-bottom:.6rem}
.attention-list{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
.attention-list a{display:block;padding:.55rem .7rem;border-radius:6px;background:#f6f8fa;text-decoration:none;color:var(--navy)}
.attention-list a:hover{background:#e9f1f5}
.attention-list li.urgent a{background:#fff4de;font-weight:600}

.occupancy progress{width:110px;height:10px;vertical-align:middle;accent-color:var(--blue)}
.email-preview{display:block;width:100%;height:560px;border:1px solid var(--line);border-radius:8px;background:#f2f5f8;margin-top:1rem}
details.advanced{margin:1rem 0;border:1px solid var(--line);border-radius:8px;padding:.8rem 1rem;background:#fbfcfd}
details.advanced summary{cursor:pointer;font-weight:600;color:var(--navy)}
details.advanced[open] summary{margin-bottom:1rem}
td small.error-text{display:block;margin-top:.35rem;max-width:32rem}
@media(max-width:720px){.email-preview{height:440px}}
.setup-steps{margin-top:1.1rem}
.detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-grid dd{overflow-wrap:anywhere}@media(max-width:720px){.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Bedroom picture cards (same pictures as the guest stay page) */
.pickers{display:grid;gap:1.1rem}
.picker{border:1px solid var(--line);border-radius:10px;padding:1rem;margin:0;min-width:0}
.picker legend{font-weight:650;color:var(--navy);padding:0 .4rem;display:flex;gap:.5rem;align-items:center}
.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem}
.pick{position:relative;display:block;cursor:pointer;font-weight:600}
.pick input{position:absolute;opacity:0;width:1px;height:1px;min-height:0}
.pick-card{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.7rem .5rem;border:2px solid var(--line);border-radius:10px;background:white;text-align:center;font-size:.88rem;color:#192e3c;height:100%}
.pick:hover .pick-card{border-color:#9fc2d3}
.pick input:checked+.pick-card,.pick-card.on{border-color:var(--blue);background:#eaf3f9}
.pick input:checked+.pick-card:after{content:"✓";position:absolute;top:.4rem;right:.5rem;width:1.3rem;height:1.3rem;border-radius:50%;background:var(--blue);color:white;font-size:.75rem;line-height:1.3rem}
.pick input:focus-visible+.pick-card{outline:3px solid #d4a13c;outline-offset:2px}
.bedsvg{width:100%;max-width:110px;height:auto}
.pick-grid.summary{margin:0 0 1rem}
.warn-text{color:var(--amber);font-size:.85rem;line-height:1.45}
