:root { --green:#095746; --ink:#152339; --muted:#697589; --line:#e5ebef; }
body.mvp { background:#f4f7fa; color:var(--ink); }
.mvp .primary-btn { background:var(--green); border-color:var(--green); }
.mvp .nav-item.active { background:var(--green); color:white; box-shadow:0 4px 12px #09574618; }
.mvp .brand-mark { background:var(--green); }
.mvp .entity-link { color:var(--green); }
.mvp { font-family:'DM Sans',system-ui,sans-serif; font-size:16px; }
.mvp h1,.mvp h2,.mvp h3,.mvp h4 { font-family:'Manrope',system-ui,sans-serif; letter-spacing:-.025em; }
.mvp h2 { font-size:1.35rem; line-height:1.4; }
.mvp h3 { font-size:1.05rem; line-height:1.5; }
.mvp p { line-height:1.6; }
.mvp small { font-size:.8125rem; color:var(--muted); }
.mvp .backoffice-sidebar { width:216px; padding:24px 14px; background:#fff; border-right:1px solid var(--line); }
.mvp .backoffice-shell { grid-template-columns:216px minmax(0,1fr); }
.mvp .backoffice-main { padding:24px 26px 40px; }
.mvp .backoffice-main #mainView { padding:0; }
.mvp .brand { margin-bottom:26px; padding:0 12px; }
.mvp .brand-name { font-size:1.5rem; color:#16283a; }
.mvp .brand-name small { letter-spacing:.08em; font-size:.75rem; margin-top:5px; }
.mvp .brand-mark { border-radius:12px; width:36px; height:36px; font-family:'Manrope'; }
.mvp .nav-label { font-size:.75rem; letter-spacing:.1em; color:#7a8697; margin:22px 12px 9px; }
.mvp .nav-item { min-height:43px; border-radius:9px; padding:10px 12px; font-size:.875rem; color:#526075; gap:12px; }
.mvp .nav-item.locked { opacity:.4; }
.mvp .nav-item svg { width:19px; height:19px; stroke-width:1.7; }
.mvp .backoffice-topbar { padding:0 0 18px; border:0; align-items:center; background:none; }
.mvp .page-title { font-size:1.8rem; }
.mvp .top-select-wrap { border-color:var(--line); border-radius:9px; }
.mvp .top-select-wrap span { font-size:.75rem; }
.mvp .top-select-wrap select { font-size:.875rem; }
.mvp .local-banner { margin-bottom:22px; color:#647387; background:#edf2f5; font-size:.8125rem; border:0; padding:9px 12px; border-radius:7px; }
.mvp .local-banner span { color:#7b8795; }
.hotel-view { display:grid; gap:22px; min-width:0; }
.mvp .panel { border:1px solid var(--line); border-radius:12px; box-shadow:0 3px 14px #172c4303; overflow:hidden; }
.mvp .panel-head { margin-bottom:0; gap:16px; }
.mvp .panel-head h3 { margin:0; }
.padded { padding:24px; }
.padded>h3 { margin-top:0; }
.mvp .padded>.panel-head { padding:0 0 14px; margin-bottom:14px; }
.mvp .section-toolbar { margin-bottom:0; gap:16px; }
.mvp .section-toolbar h2 { margin:0 0 6px; }
.mvp .section-toolbar p { margin:0; color:var(--muted); font-size:.875rem; }
.mvp button { cursor:pointer; font-family:inherit; }
.mvp button:disabled { cursor:not-allowed; }
.mvp .primary-btn,.mvp .secondary-btn { border-radius:8px; min-height:39px; padding:9px 14px; font-size:.875rem; font-weight:600; line-height:1.4; }
.mvp .primary-btn:hover { background:#064737; }
.mvp .secondary-btn:hover { border-color:#90b4a9; background:#f5faf8; }
.mvp .text-btn { border:0; background:none; color:var(--green); font-weight:600; font-size:.875rem; padding:5px 0; }
.mvp .icon-btn { width:36px; height:36px; border:1px solid var(--line); background:white; border-radius:8px; font-size:1.4rem; }
.inline-controls { display:flex; gap:9px; align-items:center; flex-wrap:wrap; }
.mvp .entity-link { font-size:inherit; font-weight:600; text-decoration:none; padding:0; text-align:left; }
.mvp .entity-link:hover { text-decoration:underline; }
.mvp input,.mvp select,.mvp textarea { font:inherit; font-size:.875rem; color:var(--ink); background:white; border:1px solid #dce4e9; border-radius:8px; min-height:40px; padding:9px 12px; }
.mvp input[type=checkbox] { width:17px; height:17px; min-height:17px; padding:0; accent-color:var(--green); flex:none; }
.mvp :focus-visible { outline:3px solid #8dc7b4; outline-offset:2px; }
.stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.stat-card { background:white; border:1px solid var(--line); padding:22px; border-radius:12px; display:flex; flex-direction:column; gap:8px; min-width:0; }
.stat-card>span { font-size:.875rem; color:#5e6c7d; }
.stat-card>strong { font-family:'Manrope',sans-serif; font-size:clamp(1.4rem,1.7vw,2rem); letter-spacing:-.04em; line-height:1.4; overflow-wrap:anywhere; }
.stat-card:first-child { border-top:3px solid var(--green); }
.dashboard-columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px; align-items:start; }
.branch-meter { padding:20px 0; border-bottom:1px solid var(--line); }
.branch-meter:last-child { border:0; padding-bottom:0; }
.branch-meter>div:first-child { display:flex; justify-content:space-between; gap:10px; }
.meter { height:8px; background:#e9f0ed; border-radius:10px; margin:13px 0 9px; overflow:hidden; }
.meter>span { display:block; height:100%; background:#309779; border-radius:10px; }
.alert-row { display:flex; align-items:center; width:100%; background:none; border:0; border-bottom:1px solid #eef1f4; padding:15px 0; gap:12px; text-align:left; }
.alert-row:last-child { border-bottom:0; }
.alert-row>span { flex:1; min-width:0; }
.alert-row strong { font-size:.875rem; line-height:1.5; display:block; color:var(--ink); font-weight:500; }
.alert-row small { display:block; margin-top:3px; }
.alert-row>b { color:#98a4b1; }
.alert-dot { width:9px; height:9px; border-radius:50%; background:#54b796; flex:none; }
.alert-dot.departure { background:#ec9f71; }.alert-dot.task { background:#d88366; }.alert-dot.payment { background:#dfb547; }.alert-dot.cleaning { background:#6b9dd5; }
.filter-bar { display:flex; align-items:center; gap:12px; padding:17px 22px; flex-wrap:wrap; }
.filter-bar>input:not([type=date]):not([type=month]) { min-width:200px; flex:1; max-width:490px; }
.filter-bar>span { font-size:.875rem; color:var(--muted); margin-left:auto; }
.hotel-table { width:100%; border-collapse:collapse; white-space:normal; font-size:.875rem; }
.hotel-table th { background:#f8fafb; color:#768394; font-size:.8125rem; font-weight:500; padding:13px 20px; border-block:1px solid var(--line); text-align:left; }
.hotel-table td { padding:18px 20px; border-bottom:1px solid #edf1f4; line-height:1.6; vertical-align:middle; min-width:110px; }
.hotel-table tr:last-child td { border:0; }
.hotel-table td small { display:block; margin-top:3px; }
.hotel-table tr:hover { background:#fbfdfc; }
.guest-directory { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.directory-card { padding:22px; }.directory-card.archived { opacity:.65; }
.directory-card .panel-head p { margin:4px 0 0; }
.initials,.pet-monogram { display:grid; place-items:center; background:#e8f3ee; color:var(--green); border-radius:10px; width:40px; height:40px; font-weight:700; flex:none; }
.pet-list { margin-top:22px; }
.pet-list>div { display:flex; align-items:center; gap:12px; padding:12px 0; border-top:1px solid var(--line); }
.pet-list>div>div { flex:1; }.pet-list small { display:block; margin-top:3px; }
.pet-monogram { background:#f2f5f8; color:#677c8c; width:34px; height:34px; font-size:.875rem; }
.card-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-top:18px; padding-top:16px; border-top:1px solid var(--line); font-size:.875rem; }
.filter-tabs { display:flex; flex-wrap:wrap; gap:6px; }
.filter-tabs button { background:transparent; border:1px solid transparent; padding:9px 15px; border-radius:8px; font-size:.875rem; color:var(--muted); }
.filter-tabs button.active { background:#e0f1e9; color:var(--green); border-color:#b8dcca; }
.room-directory { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.room-tile { padding:22px; }.room-tile p { font-size:.875rem; margin:10px 0 22px; color:var(--muted); }
.room-number { font-weight:700; font-size:1.1rem; }.room-resident { margin-bottom:12px; min-height:25px; }.room-resident>span { font-size:.875rem; color:#84909c; }
.care-kanban { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.kanban-heading { display:flex; justify-content:space-between; align-items:center; padding:0 3px 14px; }.kanban-heading h3 { margin:0; }.kanban-heading span { background:#e5ebef; border-radius:6px; padding:2px 9px; }
.task-card { padding:20px; margin-bottom:14px; }.task-card.overdue { border-left:3px solid #cf8862; }.task-card .panel-head strong { font-size:.875rem; color:#806441; }
.task-card h3 { margin:15px 0 6px; }.task-card p { margin:0 0 8px; font-size:.875rem; }
.tag,.season-chip { display:inline-block; background:#e5f5ec; color:#1a664c; border-radius:6px; padding:5px 9px; font-size:.75rem; font-weight:600; line-height:1.4; }
.pet-task-links { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.care-list-row { display:flex; gap:14px; padding:18px 0; border-bottom:1px solid var(--line); }.care-list-row small { display:block; margin-top:5px; }
.task-check { border:1px solid #c7d6d0; width:21px; height:21px; border-radius:5px; flex:none; }.task-check.done { background:#d9eee3; color:var(--green); text-align:center; }
.branch-code { display:inline-block; background:#e8f2ed; color:var(--green); padding:12px; border-radius:10px; font-weight:700; margin-bottom:12px; }
.capacity-list>div { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:13px 0; border-bottom:1px solid #edf1f4; }
.capacity-list>div:last-child { border:0; }.capacity-list dt { color:var(--muted); font-size:.875rem; }.capacity-list dd { font-size:1rem; font-weight:700; margin:0; text-align:right; }.capacity-list .capacity-state { font-size:.8125rem; color:var(--green); }
.queue-item { display:flex; gap:15px; align-items:center; justify-content:space-between; padding:18px 0; border-bottom:1px solid var(--line); }.queue-item h4 { margin:8px 0; }.queue-item p { margin:0 0 8px; font-size:.875rem; }
.integration-status>div { display:flex; gap:35px; flex-wrap:wrap; margin:20px 0; }.integration-status span { display:flex; flex-direction:column; gap:5px; }.integration-status p { font-size:.875rem; color:var(--muted); }
.policy-list { padding-left:19px; font-size:.875rem; line-height:1.8; }
.audit-row { border-bottom:1px solid var(--line); padding:14px 0; }.audit-row summary { cursor:pointer; display:flex; gap:12px; justify-content:space-between; font-size:.875rem; }.audit-row summary span { color:var(--muted); }.audit-row pre { white-space:pre-wrap; max-height:350px; overflow:auto; font-size:.8125rem; background:#f6f8fa; padding:14px; }
.form-error { color:#ac4334; font-size:.875rem; }.check-field { display:flex; gap:10px; align-items:center; font-size:.875rem; }
.detail-section p { white-space:pre-wrap; overflow-wrap:anywhere; }.detail-body .secondary-btn { margin-right:5px; margin-bottom:5px; }
.calendar-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px; }
.kpi-card { display:flex; align-items:center; gap:15px; padding:19px; background:white; border:1px solid var(--line); border-radius:12px; text-align:left; }
.kpi-card>div { display:flex; flex-direction:column; gap:5px; min-width:0; }.kpi-card strong { font-size:1.65rem; color:var(--ink); line-height:1.3; font-family:Manrope,sans-serif; }.kpi-card em { font-size:1.2rem; font-style:normal; color:#7b8897; }.kpi-card div>span { font-size:.75rem; color:#7b8897; }.kpi-card small { color:var(--ink); }
.kpi-icon { display:grid; place-items:center; width:44px; height:48px; border-radius:11px; color:#1c7159; background:#e2f4ec; font-weight:700; flex:none; }.kpi-icon.blue { background:#edf2fb; color:#5c82b4; }.kpi-icon.peach { background:#fff0e9; color:#c37850; }
.calendar-workspace { display:grid; grid-template-columns:minmax(0,1fr) 278px; gap:20px; align-items:start; }
.planning-panel { min-width:0; }.planning-toolbar { display:flex; align-items:center; justify-content:space-between; padding:22px 20px 12px; flex-wrap:wrap; gap:12px; }.period-title { display:flex; gap:7px; align-items:center; }.period-title h2 { margin:0 0 0 8px; font-size:1.25rem; }
.planning-filter { padding:8px 20px 18px; display:flex; gap:9px; flex-wrap:wrap; }.planning-filter input:first-child { flex:1; min-width:180px; }.planning-filter input[type=date] { width:148px; }
.timeline-scroll { overflow:auto; max-height:690px; position:relative; border-top:1px solid var(--line); scrollbar-color:#c8d9d1 #f3f7f5; }
.timeline-board { min-width:calc(168px + var(--days) * var(--day-width)); }
.timeline-header,.timeline-row { display:grid; grid-template-columns:168px minmax(0,1fr); }
.timeline-header { position:sticky; top:0; z-index:6; background:#fbfcfd; height:65px; }
.timeline-room { position:sticky; left:0; z-index:4; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:white; padding:18px 16px; display:flex; flex-direction:column; justify-content:center; gap:4px; font-size:.875rem; }
.timeline-room small { font-size:.75rem; line-height:1.5; }.timeline-header>.timeline-room { z-index:8; background:#fbfcfd; }
.timeline-date-grid { display:grid; grid-template-columns:repeat(var(--days),minmax(0,1fr)); }.timeline-date-grid button { position:relative; border:0; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:transparent; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; color:#25354a; }.timeline-date-grid strong { font-size:1.05rem; }.timeline-date-grid small { font-size:.75rem; }
.timeline-row { height:var(--row-height); }.timeline-track { position:relative; border-bottom:1px solid var(--line); }.timeline-cells { position:absolute; inset:0; display:grid; grid-template-columns:repeat(var(--days),minmax(0,1fr)); }
.timeline-cell { position:relative; background:white; border:0; border-right:1px solid var(--line); padding:0; }.timeline-cell:hover { background:#eff8f4; }.timeline-cell:hover:after { content:'＋'; color:#589b82; font-size:1.2rem; }.timeline-cell>span { color:#94a39e; font-size:.75rem; }
.timeline-cell.chosen-day,.timeline-date-grid .chosen-day { background:#e9f7f0; box-shadow:inset 1px 0 #9cceb8,inset -1px 0 #9cceb8; }
.stay-bar { position:absolute; min-width:14px; height:44px; border:1px solid #bfded0; border-radius:9px; background:#ccebdc; color:#19483c; padding:6px 11px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:1px; text-align:left; overflow:hidden; z-index:2; box-shadow:0 2px 4px #073c2610; }
.stay-bar strong { font-size:.875rem; white-space:nowrap; }.stay-bar small { color:inherit; opacity:.8; font-size:.75rem; white-space:nowrap; }.stay-bar.confirmed { background:#dce8fc; border-color:#c2d5f5; color:#315984; }.stay-bar.confirmed.tone-1 { background:#e6e1fa; color:#65578d; border-color:#d6cdf1; }.stay-bar.confirmed.tone-2 { background:#f8edcd; color:#81692c; border-color:#eeddb1; }.stay-bar.checked_out { background:#e8edf0; color:#73808b; border-color:#dce2e5; }.stay-bar.selected { outline:2px solid #398c70; outline-offset:2px; }.departure-cap { position:absolute; inset:0 0 0 auto; display:flex; align-items:center; background:#ffcba9; color:#7d4a2d; padding:8px; font-size:.75rem; }
.month .stay-bar small { display:none; }.month .stay-bar .departure-cap { display:none; }
.season-dot { position:absolute; right:8px; top:10px; width:5px; height:5px; border-radius:50%; background:#d6af45; }
.planning-legend { display:flex; gap:17px; flex-wrap:wrap; align-items:center; padding:20px; }.planning-legend>span { display:flex; align-items:center; gap:7px; font-size:.75rem; color:#788492; }.planning-legend>small { flex-basis:100%; font-size:.75rem; }
.swatch { width:10px; height:10px; border-radius:3px; }.swatch.green { background:#a8d8c2; }.swatch.blue { background:#adcafa; }.swatch.gray { background:#ccd7df; }.swatch.striped { background:repeating-linear-gradient(135deg,#d0d9d6,#d0d9d6 2px,#f2f5f3 2px,#f2f5f3 4px); }
.calendar-inspector { display:grid; gap:18px; }.inspector-card { padding:20px; }.inspector-card .panel-head { padding:0; margin-bottom:16px; }.inspector-card .panel-head .entity-link { font-size:.75rem; }.inspector-card h2 { margin:0 0 12px; }.inspector-card h3 { margin:9px 0; }.inspector-card p { font-size:.875rem; color:#67788a; }.inspector-card .capacity-list { margin:10px 0; }.selected-stay { border-color:#9dceb9!important; box-shadow:0 4px 15px #13614509!important; }.mini-info { display:grid; grid-template-columns:1fr; gap:5px; font-size:.875rem; }.mini-info dt { font-size:.75rem; color:var(--muted); margin-top:6px; }.mini-info dd { margin:0; }
.owner-card-head { justify-content:flex-start!important; align-items:center; }.owner-card-head>div { flex:1; min-width:0; }
.profile-avatar { width:48px; height:48px; border-radius:50%; object-fit:cover; display:grid; place-items:center; flex:none; border:2px solid white; box-shadow:0 0 0 1px #dce5e1; }
.profile-avatar.dog { width:38px; height:38px; }.profile-avatar.fallback { background:#e8f3ee; color:var(--green); font-size:.8125rem; font-weight:700; }.profile-avatar.fallback.dog { background:#f1f4f6; color:#657484; }
.detail-profile-photo { width:84px; height:84px; border-radius:50%; object-fit:cover; border:3px solid white; box-shadow:0 0 0 1px #dce5e1; margin-bottom:12px; }
.membership-badge { display:inline-flex; align-items:center; width:max-content; padding:5px 9px; border-radius:999px; background:#edf2f0; color:#53645d; font-size:.6875rem; line-height:1; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.membership-badge.silver { background:#edf0f5; color:#5e6878; }.membership-badge.gold { background:#fff2ca; color:#806219; }.membership-badge.pawssport { background:#dcf1e7; color:#126246; }
.membership-summary { display:grid; gap:11px; padding:15px; border:1px solid #dfe9e4; border-radius:12px; background:#f8fbf9; }.membership-summary>div:first-child { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }.membership-summary>div:first-child strong { font-size:.875rem; }.membership-summary small,.membership-summary p { margin:0; color:var(--muted); font-size:.75rem; }.membership-progress { height:8px; overflow:hidden; background:#e2ebe7; border-radius:99px; }.membership-progress i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#167154,#53b98f); }
.room-state-dot { display:inline-block; width:7px; height:7px; margin:0 5px 1px 1px; border-radius:50%; background:#a2aea9; }.room-state-dot.available { background:#42b783; }.room-state-dot.occupied { background:#19815f; }.room-state-dot.reserved { background:#4c8ed9; }.room-state-dot.cleaning { background:#d8984d; }.room-state-dot.maintenance { background:#d36161; }
.calendar-filter-bar { align-items:center; padding-top:4px; }.calendar-search { display:flex; flex:1; min-width:260px; max-width:520px; align-items:center; border:1px solid #ccd8d3; border-radius:9px; background:white; padding-left:12px; color:#728078; }.calendar-search:focus-within { border-color:#66a990; box-shadow:0 0 0 3px #dff1e9; }.calendar-search input { flex:1; min-width:0!important; max-width:none!important; border:0!important; box-shadow:none!important; background:transparent!important; }
.calendar-branch { border-bottom:1px solid var(--line); }.calendar-branch-toggle { position:sticky; left:0; z-index:5; width:100%; min-width:calc(168px + var(--days) * var(--day-width)); display:flex; align-items:center; justify-content:space-between; gap:15px; padding:11px 16px; border:0; border-bottom:1px solid var(--line); background:#f4f8f6; color:var(--ink); text-align:left; }.calendar-branch-toggle span { display:flex; flex-direction:column; gap:2px; }.calendar-branch-toggle small { color:var(--muted); font-size:.72rem; font-weight:400; }.calendar-branch-toggle b { position:sticky; left:145px; font-size:1rem; color:var(--green); }.calendar-branch.collapsed .calendar-branch-rooms { display:none; }
.apple-month { min-width:790px; border-top:1px solid var(--line); }.apple-weekdays,.apple-month-grid { display:grid; grid-template-columns:repeat(7,minmax(110px,1fr)); }.apple-weekdays { position:sticky; top:0; z-index:6; background:#f8faf9; border-bottom:1px solid var(--line); }.apple-weekdays span { padding:10px 12px; color:#75827d; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; text-align:right; }.apple-month-grid { grid-auto-rows:minmax(138px,1fr); }.apple-day { position:relative; min-width:0; padding:8px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:white; overflow:hidden; }.apple-day:nth-child(7n) { border-right:0; }.apple-day.outside-month { background:#fafbfb; }.apple-day.filtered-out { opacity:.38; }.apple-day.selected-day { background:#f1faf6; box-shadow:inset 0 0 0 2px #82bea7; }.apple-day-number { display:grid; place-items:center; width:28px; height:28px; margin-left:auto; padding:0; border:0; border-radius:50%; background:transparent; color:var(--ink); font-weight:650; }.apple-day.outside-month .apple-day-number { color:#a7b0ad; }.apple-day.today .apple-day-number { background:var(--green); color:white; }.month-capacity { display:flex; justify-content:flex-end; gap:6px; min-height:18px; color:#7c8984; font-size:.65rem; }.month-capacity b { color:#b06154; font-weight:600; }.apple-events { display:grid; gap:4px; margin-top:4px; }.apple-event { min-width:0; display:grid; grid-template-columns:6px minmax(0,1fr); gap:0 6px; padding:5px 6px; border:0; border-radius:6px; background:#e2f2ea; color:#194c3c; text-align:left; }.apple-event>i { grid-row:1/3; align-self:stretch; width:3px; border-radius:4px; background:#2c9872; }.apple-event>span,.apple-event>small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.apple-event>span { font-size:.72rem; font-weight:700; }.apple-event>small { color:inherit; opacity:.72; font-size:.61rem; }.apple-event.confirmed { background:#e7effb; color:#325c87; }.apple-event.confirmed>i { background:#5a91d2; }.apple-event.checked_out { background:#eef1f2; color:#68757b; }.month-more { padding:2px 5px; border:0; background:transparent; color:var(--green); font-size:.68rem; font-weight:650; text-align:left; }.month-quick-add { position:absolute; right:7px; bottom:6px; display:none; width:24px; height:24px; padding:0; border:0; border-radius:50%; background:#ddefe7; color:var(--green); }.apple-day:hover .month-quick-add,.month-quick-add:focus { display:grid; place-items:center; }
.collapsible-detail { margin:18px 0; border-top:1px solid var(--line); }.collapsible-detail summary { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:16px 0; cursor:pointer; list-style:none; font-weight:700; }.collapsible-detail summary::-webkit-details-marker { display:none; }.collapsible-detail summary strong { display:grid; place-items:center; min-width:26px; height:24px; padding:0 7px; border-radius:999px; background:#eef4f1; color:#496359; font-size:.75rem; }.collapsible-detail summary:after { content:'＋'; color:var(--green); margin-left:4px; }.collapsible-detail[open] summary:after { content:'−'; }.collapsible-content { padding-bottom:8px; }.branch-room-status { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:14px; padding:12px 0; border-top:1px solid #edf1ef; }.branch-room-status>div { display:flex; flex-direction:column; align-items:flex-start; gap:5px; }.branch-room-status>div:last-child { align-items:flex-end; }.branch-room-status small { color:var(--muted); font-size:.72rem; }
@media(min-width:1700px) { .calendar-workspace { grid-template-columns:minmax(0,1fr) 320px; }.timeline-scroll.week { --day-width:120px!important; } }
@media(max-width:1250px) { .calendar-workspace { grid-template-columns:1fr; }.calendar-inspector { grid-template-columns:repeat(3,minmax(0,1fr)); }.guest-directory,.room-directory { grid-template-columns:repeat(2,minmax(0,1fr)); }.kpi-card { padding:15px; gap:10px; }.kpi-icon { display:none; }.stat-card { padding:18px; } }
@media(max-width:900px) { .mvp .backoffice-main { margin-left:0; padding:18px 18px 90px; }.mvp .backoffice-sidebar { transform:translateX(-100%); z-index:50; }.mvp .backoffice-sidebar.is-open { transform:translateX(0); box-shadow:10px 0 40px #19322920; }.mvp .menu-toggle { display:grid; }.mvp .mobile-backoffice { display:flex; }.stat-grid,.calendar-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }.calendar-inspector { grid-template-columns:1fr 1fr; }.calendar-inspector>article:last-child { grid-column:1/-1; }.mvp .page-title { font-size:1.55rem; }.mvp .top-actions { gap:7px; } }
@media(max-width:600px) { .mvp .backoffice-main { padding:16px 12px 90px; }.mvp .backoffice-topbar { flex-direction:column; align-items:stretch; gap:14px; }.mvp .heading-group { width:100%; }.mvp .top-actions { display:grid; grid-template-columns:1fr 1fr; }.mvp .top-select-wrap { width:100%; min-width:0; }.mvp .top-select-wrap select { max-width:100%; }.mvp .local-banner span { display:block; }.hotel-view { gap:16px; }.dashboard-columns,.guest-directory,.room-directory,.care-kanban,.calendar-inspector { grid-template-columns:1fr; }.calendar-inspector>article:last-child { grid-column:auto; }.mvp .section-toolbar { align-items:flex-start; flex-direction:column; }.stat-grid,.calendar-kpis { gap:10px; }.stat-card { padding:15px; }.stat-card>strong { font-size:1.3rem; }.stat-card small { font-size:.75rem; }.padded { padding:18px; }.kpi-card strong { font-size:1.5rem; }.planning-toolbar { padding:16px 12px 8px; }.planning-filter { padding:8px 12px 14px; }.period-title h2 { font-size:1rem; }.planning-filter input:first-child { flex-basis:100%; }.calendar-search { min-width:100%; }.timeline-room { padding:12px; }.timeline-board { min-width:calc(140px + var(--days) * var(--day-width)); }.timeline-header,.timeline-row { grid-template-columns:140px minmax(0,1fr); }.calendar-branch-toggle { min-width:calc(140px + var(--days) * var(--day-width)); }.calendar-branch-toggle b { left:116px; }.apple-month { min-width:735px; }.apple-weekdays,.apple-month-grid { grid-template-columns:repeat(7,minmax(105px,1fr)); }.apple-month-grid { grid-auto-rows:126px; }.filter-bar { padding:14px 0; }.panel .filter-bar { padding-inline:14px; }.form-grid { grid-template-columns:1fr!important; }.audit-row summary { flex-direction:column; gap:4px; }.branch-room-status { grid-template-columns:1fr; }.branch-room-status>div:last-child { align-items:flex-start; } }
@media print { body.mvp { background:white; }.app-shell,.local-banner,.toast,#modalRoot { display:none!important; }#detailRoot { display:block!important; }.detail-panel { position:static!important; width:100%!important; max-width:none!important; max-height:none!important; height:auto!important; overflow:visible!important; border:0!important; box-shadow:none!important; }.detail-inner,.detail-body { height:auto!important; overflow:visible!important; }.detail-panel button { border:0!important; background:none!important; }.detail-header button,.detail-actions,.detail-body>.secondary-btn,[data-extra-form],[data-book-owner],[data-reassign],[data-stay-action] { display:none!important; }.detail-panel::backdrop { background:white; } }

.auth-shell { min-height:100vh; display:grid; place-items:center; padding:24px 16px; background:#f4f7f6; }
.auth-card { width:100%; max-width:420px; display:grid; gap:14px; padding:28px; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 18px 40px rgba(24,57,42,.08); }
.auth-card h1 { margin:6px 0 0; font-size:1.35rem; }
.auth-card p { margin:0; color:#4d5b6a; }
.auth-card form { display:grid; gap:8px; }
.auth-card input { height:46px; padding:0 12px; border:1px solid var(--line); border-radius:9px; font-size:1.25rem; letter-spacing:.3em; text-align:center; }
.auth-qr { width:200px; height:200px; justify-self:center; }
.auth-steps { margin:0; padding-left:18px; color:#4d5b6a; }
.auth-error { min-height:1.2em; color:#b42318!important; font-weight:600; }
.auth-google { width:100%; }
.user-chip { display:flex; align-items:center; gap:10px; }
.user-chip span { display:grid; line-height:1.25; }
.user-chip small { color:var(--muted); font-size:.75rem; }
.permission-matrix input { width:18px; height:18px; }

.customer-results-list { list-style:none; margin:8px 0 0; padding:0; display:grid; gap:6px; max-height:280px; overflow-y:auto; }
.customer-pick { width:100%; display:grid; gap:4px; padding:10px 12px; text-align:left; background:#fff; border:1px solid var(--line); border-radius:9px; font:inherit; color:inherit; }
button.customer-pick { cursor:pointer; }
button.customer-pick:hover, button.customer-pick:focus-visible { border-color:var(--green); outline:none; }
.customer-line { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px; }
.customer-phone { margin-left:auto; color:#4d5b6a; font-variant-numeric:tabular-nums; }
.customer-dog { display:flex; align-items:center; gap:8px; font-size:.875rem; color:#4d5b6a; }
.customer-dog img { width:22px; height:22px; border-radius:50%; object-fit:cover; }
.customer-dog em { margin-left:auto; font-style:normal; font-size:.8125rem; color:var(--muted); }
.customer-empty { margin:8px 0 0; color:var(--muted); font-size:.875rem; }
.photo-field-body { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.photo-preview { width:96px; height:96px; object-fit:cover; background:#edf2f5; border:1px solid var(--line); }
.photo-preview.round { border-radius:50%; }
.photo-preview.square { border-radius:12px; }
.photo-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.photo-btn { cursor:pointer; }
.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.record-status.occupied { background:#fdecea; color:#c0392b; }
.room-resident .room-dweller { display:block; color:inherit; }
.room-dog-note { display:block; margin-top:2px; color:var(--muted); font-size:.8rem; line-height:1.35; }
.receipt-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:8px; }
.receipt-actions button { min-height:44px; }
.receipt-actions button[disabled] { opacity:.5; cursor:not-allowed; }
.receipt-actions small { flex-basis:100%; }
