:root{
  --navy:#08213d;
  --navy-2:#0d3158;
  --teal:#11a7a8;
  --teal-2:#22c7c7;
  --gold:#e4a521;
  --bg:#f6f8fb;
  --card:#ffffff;
  --text:#102033;
  --muted:#68788a;
  --line:#e2e8f0;
  --danger:#d92d20;
  --success:#16834f;
  --warning:#c57a06;
  --shadow:0 16px 45px rgba(8,33,61,.08);
  --radius:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
img{max-width:100%}
.hidden{display:none!important}
.muted{color:var(--muted)}
.small{font-size:.83rem}
.eyebrow{display:block;text-transform:uppercase;letter-spacing:.11em;font-weight:800;font-size:.72rem;color:var(--teal);margin-bottom:6px}
.full{width:100%;justify-content:center}
.btn{border:0;border-radius:14px;padding:11px 17px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.18s ease;white-space:nowrap}
.btn:hover{transform:translateY(-1px);filter:brightness(.99)}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.btn-sm{padding:8px 12px;border-radius:11px;font-size:.86rem}
.btn-primary{background:linear-gradient(135deg,var(--teal),var(--teal-2));color:white;box-shadow:0 8px 18px rgba(17,167,168,.22)}
.btn-dark{background:var(--navy);color:#fff}
.btn-light{background:#eef3f8;color:var(--navy);border:1px solid #dde6ef}
.btn-danger{background:#fff0ef;color:var(--danger);border:1px solid #ffd7d3}
.btn-delete{background:#b42318;color:#fff;border:1px solid #b42318}
.btn-delete:hover{background:#8f1c13;border-color:#8f1c13}
.flash{max-width:1180px;margin:14px auto;padding:12px 16px;border-radius:14px;font-weight:700}
.flash.success{background:#eaf8f1;color:#12673f;border:1px solid #c9edd9}
.flash.error{background:#fff0ef;color:#a1261b;border:1px solid #ffd1cd}

/* Public shell */
.public-header{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2));background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.brand-link{height:66px;width:260px;display:flex;align-items:center}
.brand-logo{width:100%;height:100%;object-fit:contain;object-position:left center}
.public-nav{display:flex;align-items:center;gap:20px;font-weight:700}
.public-nav>a:not(.btn):hover{color:var(--teal)}
.public-footer{padding:34px max(24px,calc((100vw - 1180px)/2));background:var(--navy);color:#fff;display:flex;justify-content:space-between;gap:20px;margin-top:60px}
.public-footer>div:first-child{display:flex;flex-direction:column}
.public-footer span,.public-footer>div:last-child{color:#c5d2df;font-size:.9rem}

/* Home */
.hero{max-width:1180px;margin:24px auto 0;min-height:430px;border-radius:30px;overflow:hidden;position:relative;background:
  radial-gradient(circle at 82% 22%,rgba(34,199,199,.44),transparent 28%),
  radial-gradient(circle at 14% 88%,rgba(228,165,33,.27),transparent 25%),
  linear-gradient(135deg,#071b31 0%,#0d3158 55%,#0b5f6c 100%);
box-shadow:var(--shadow)}
.hero:after{content:"";position:absolute;right:-40px;bottom:-100px;width:430px;height:430px;background:url('/public/img/icon.png') center/contain no-repeat;opacity:.18}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,18,33,.16),transparent)}
.hero-content{position:relative;z-index:2;max-width:840px;padding:72px 60px;color:white}
.hero-badge{display:inline-block;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18);padding:8px 13px;border-radius:999px;font-size:.86rem;font-weight:800}
.hero h1{font-size:clamp(2.4rem,5vw,4.7rem);line-height:.98;margin:20px 0 16px;letter-spacing:-.045em}
.hero p{font-size:1.1rem;line-height:1.6;color:#dce8f2;max-width:660px}
.search-bar{margin-top:30px;background:#fff;color:var(--text);display:grid;grid-template-columns:1fr 1fr .75fr auto;gap:0;border-radius:18px;padding:8px;box-shadow:0 18px 50px rgba(0,0,0,.2)}
.search-bar label{padding:8px 16px;border-right:1px solid var(--line)}
.search-bar label span{display:block;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:3px}
.search-bar input{border:0;padding:4px 0;width:100%;outline:0;color:var(--text);background:transparent}
.search-bar .btn{min-width:120px}
.section{max-width:1180px;margin:52px auto;padding:0 6px}
.section-heading,.property-title,.panel-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}
.section-heading h2,.property-title h1,.panel h2{margin:0;color:var(--navy);letter-spacing:-.025em}
.property-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.property-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 8px 25px rgba(8,33,61,.05);transition:.2s ease}
.property-card:hover{transform:translateY(-3px);box-shadow:0 18px 45px rgba(8,33,61,.11)}
.property-card.unavailable{opacity:.64}
.property-image-wrap{height:230px;display:block;position:relative;background:#e8edf3}
.property-image{width:100%;height:100%;object-fit:cover}
.property-placeholder{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;background:linear-gradient(135deg,#edf5f7,#e8edf3)}
.property-placeholder img{height:115px;width:115px;object-fit:contain}
.property-placeholder span{font-weight:900;color:var(--navy)}
.property-status{position:absolute;top:14px;left:14px;padding:7px 11px;border-radius:999px;font-size:.76rem;font-weight:900}
.property-status.open{background:#e8fff5;color:#087548}
.property-status.closed{background:#fff0ef;color:#ad261c}
.property-body{padding:18px}
.property-topline{display:flex;justify-content:space-between;gap:10px;font-size:.82rem}
.property-body h3{margin:8px 0;font-size:1.2rem}
.property-body h3 a:hover{color:var(--teal)}
.property-meta{display:flex;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:.86rem}
.property-meta.large{gap:18px;font-size:.95rem}
.price-line{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.price-line strong{font-size:1.12rem;color:var(--navy)}

/* Property detail */
.property-detail{margin-top:28px}
.rating-line{color:var(--muted);font-weight:700}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:190px;gap:8px;border-radius:24px;overflow:hidden;margin-bottom:30px}
.gallery img,.gallery-placeholder{width:100%;height:100%;object-fit:cover;background:#edf2f7}
.gallery-main{grid-row:span 2}
.gallery-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center;color:var(--navy)}
.gallery-placeholder img{max-width:180px;max-height:180px}
.detail-layout,.app-columns{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:28px}
.content-card,.booking-card,.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 28px rgba(8,33,61,.04)}
.content-card{padding:28px;margin-bottom:18px}
.content-card h2{margin-top:0;color:var(--navy)}
.content-card p{line-height:1.7}
.amenity-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.amenity-grid>div{background:#f5f8fb;padding:12px 14px;border-radius:13px}
.booking-card{padding:24px;height:max-content;position:sticky;top:105px}
.booking-card h2{margin-top:0}
.booking-card label,.stack-form label,.operation-form label{display:flex;flex-direction:column;gap:7px;font-weight:800;font-size:.86rem;color:#33465a}
.booking-card input,.booking-card select,.stack-form input,.stack-form select,.stack-form textarea,.operation-form select,.toolbar input,.toolbar select,.inline-form select,.copy-field input{
  width:100%;border:1px solid #d8e2ec;background:#fff;border-radius:12px;padding:11px 12px;outline:none;color:var(--text)}
.booking-card input:focus,.stack-form input:focus,.stack-form select:focus,.stack-form textarea:focus,.toolbar input:focus,.toolbar select:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(17,167,168,.1)}
.date-pair,.two-col,.three-col,.four-col{display:grid;gap:12px}
.date-pair,.two-col{grid-template-columns:1fr 1fr}
.three-col{grid-template-columns:repeat(3,1fr)}
.four-col{grid-template-columns:repeat(4,1fr)}
.booking-card form{display:grid;gap:13px}
.quote-box{margin:16px 0;border-top:1px solid var(--line);padding-top:12px}
.quote-box>div{display:flex;justify-content:space-between;padding:7px 0}
.quote-total{border-top:1px solid var(--line);margin-top:6px;padding-top:13px!important;font-size:1.08rem}
.availability-message{padding:11px 12px;border-radius:12px;margin-top:12px;font-weight:800}
.availability-message.bad{background:#fff0ef;color:#a1261b}
.booking-note{font-size:.78rem;color:var(--muted);text-align:center;line-height:1.5}
.review-list{display:grid;gap:12px}
.review-list article{background:#f7f9fb;padding:15px;border-radius:15px}
.review-head{display:flex;justify-content:space-between}
.review-list p{margin-bottom:0}

/* Auth */
.auth-page{min-height:calc(100vh - 200px);display:grid;place-items:center;padding:50px 20px;background:
  radial-gradient(circle at 20% 20%,rgba(34,199,199,.11),transparent 24%),
  radial-gradient(circle at 80% 80%,rgba(228,165,33,.12),transparent 24%)}
.auth-card{width:min(450px,100%);background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);padding:34px}
.auth-card.wide{width:min(580px,100%)}
.auth-icon{width:78px;height:78px;object-fit:contain}
.auth-card h1{font-size:2rem;margin:5px 0 8px;color:var(--navy)}
.stack-form{display:grid;gap:14px}
.stack-form small{font-weight:500;color:var(--muted)}
.verification-list{display:grid;gap:14px;margin-top:22px}
.verification-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#f8fbfd}
.verification-item>div{display:grid;gap:4px}.verification-item span{color:var(--muted)}
.verification-status{font-weight:800;font-size:.85rem}.verification-status.done{color:#087f5b}.verification-status.pending{color:#a15c00}
.verification-edit{border:1px dashed var(--line);border-radius:14px;padding:12px 14px;background:#fbfdff}
.verification-edit summary{cursor:pointer;color:var(--navy);font-weight:800}
.verification-edit[open] summary{margin-bottom:12px}
.auth-link{text-align:center;font-size:.9rem;margin-bottom:0}
.auth-link a{color:var(--teal);font-weight:800}

/* App shell */
.app-shell{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr)}
.sidebar{background:linear-gradient(180deg,#071b31,#0b2a4a);color:#fff;padding:20px 16px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;z-index:60}
.sidebar-brand{display:flex;align-items:center;gap:12px;padding:4px 8px 18px;border-bottom:1px solid rgba(255,255,255,.12)}
.sidebar-icon{width:48px;height:48px;object-fit:contain}
.sidebar-brand span{line-height:1.05;color:#d8e6f2}
.sidebar-brand strong{font-size:1.08rem;color:#fff}
.role-chip{margin:14px 7px;background:rgba(34,199,199,.13);color:#a9ffff;border:1px solid rgba(34,199,199,.25);padding:8px 10px;border-radius:12px;font-size:.75rem;font-weight:800}
.sidebar nav{display:grid;gap:5px;margin-top:6px}
.sidebar nav a{padding:12px 13px;border-radius:12px;color:#c9d7e4;font-weight:700;font-size:.91rem}
.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.1);color:#fff}
.sidebar-footer{margin-top:auto;padding:16px 8px 2px;border-top:1px solid rgba(255,255,255,.12);display:grid;gap:5px;color:#fff}
.sidebar-footer .muted{color:#9fb1c2}
.sidebar-footer a{color:#8fe4e4;font-size:.84rem;font-weight:800;margin-top:5px}
.app-main{min-width:0;padding:0 30px 50px}
.app-topbar{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);margin-bottom:24px}
.app-topbar h1{margin:0;color:var(--navy);font-size:1.7rem;letter-spacing:-.03em}
.menu-button{display:none;background:transparent;border:0;font-size:1.4rem}
.panel{padding:24px;margin-bottom:22px}
.panel h2{font-size:1.35rem}
.metric-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:22px}
.metric-grid.three{grid-template-columns:repeat(3,1fr)}
.user-metrics{grid-template-columns:repeat(4,1fr)}
.metric-card{background:#fff;border:1px solid var(--line);border-radius:19px;padding:18px;box-shadow:0 7px 24px rgba(8,33,61,.04);display:flex;flex-direction:column;gap:4px}
.metric-card span{font-size:.8rem;color:var(--muted);font-weight:800}
.metric-card strong{font-size:1.7rem;color:var(--navy)}
.metric-card small{color:var(--muted)}
.metric-card.warning{border-color:#ffe1aa;background:#fffbf3}
.metric-card.money{border-color:#ccefe3;background:#f4fffb}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:15px}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{text-align:left;padding:12px 13px;border-bottom:1px solid var(--line);font-size:.88rem;vertical-align:middle}
th{font-size:.73rem;text-transform:uppercase;letter-spacing:.05em;color:#63778b;background:#f7f9fb}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:#fbfdff}
.table-empty{text-align:center!important;color:var(--muted);padding:30px!important}
.status-pill,.source-tag{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;font-size:.73rem;font-weight:850;background:#eef3f8;color:#52677b}
.status-confirmed,.status-approved,.status-completed{background:#e8f9f0;color:#117348}
.status-payment_review,.status-pending{background:#fff7e8;color:#9c6408}
.status-pending_payment,.status-partial{background:#eef5ff;color:#275f9e}
.status-cancelled,.status-rejected,.status-expired{background:#fff0ef;color:#a1261b}
.status-active{background:#e8f9f0;color:#117348}.status-blocked{background:#fff0ef;color:#a1261b}
.user-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 190px auto;gap:10px;margin-bottom:14px}
.verification-admin{display:grid;gap:5px;font-size:.76rem;font-weight:800}.verification-admin .ok{color:#117348}.verification-admin .wait{color:#9c6408}
.status-checked_in{background:#e7fbfb;color:#087779}
.source-tag.airbnb{background:#fff0f1;color:#c33345}
.source-tag.direct{background:#e7fbfb;color:#087779}
.source-tag.manual{background:#fff6df;color:#9a6708}
.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.quick-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;display:flex;gap:12px;align-items:center}
.quick-card:hover{border-color:#b8dfe0;box-shadow:0 8px 24px rgba(8,33,61,.06)}
.quick-card>span{font-size:1.5rem}
.quick-card div{display:flex;flex-direction:column}
.quick-card small{color:var(--muted)}
.admin-property-grid,.operation-grid{display:grid;gap:12px}
.admin-property-card,.operation-card,.reservation-row{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff}
.admin-property-card:hover,.operation-card:hover,.reservation-row:hover{border-color:#b7dfe0;background:#fbffff}
.admin-property-visual{width:72px;height:72px;border-radius:14px;background:#edf5f7;display:grid;place-items:center}
.admin-property-visual img{width:60px;height:60px;object-fit:contain}
.admin-property-card h3,.operation-card h3,.reservation-row h3{margin:0 0 4px}
.admin-property-card p,.operation-card p,.reservation-row p{margin:0;color:var(--muted);font-size:.86rem}
.row-arrow{font-size:1.7rem;color:#92a4b6}
.mini-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.mini-tags span{font-size:.7rem;background:#f0f4f8;color:#5a6d80;border-radius:999px;padding:5px 8px;font-weight:750}
.rate-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.photo-admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.photo-admin-grid article{border:1px solid var(--line);border-radius:15px;overflow:hidden;background:#fff}
.photo-admin-grid img{height:150px;width:100%;object-fit:cover}
.photo-admin-grid form{padding:8px}
.copy-field{display:flex;flex-direction:column;gap:7px;font-size:.82rem;font-weight:800;margin-top:14px}
.inline-form{display:inline-flex;gap:6px;align-items:center;margin:2px}
.inline-form select{max-width:160px;padding:7px}
.action-stack{display:flex;gap:5px;flex-wrap:wrap}
.toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 210px auto auto;gap:8px;margin-bottom:16px}
.toolbar input,.toolbar select{padding:9px 11px}
.compact-banner{margin-bottom:22px}

/* Client */
.detail-banner{background:linear-gradient(135deg,#0a2948,#0b5563);color:#fff;border-radius:22px;padding:24px 28px;margin-bottom:22px;display:flex;justify-content:space-between;align-items:center;gap:20px;box-shadow:var(--shadow)}
.detail-banner h2{margin:8px 0 4px;font-size:1.75rem}
.detail-banner p{margin:0;color:#d4e4ec}
.big-total{text-align:right}
.big-total span{display:block;color:#b8d4df;font-size:.8rem}
.big-total strong{font-size:2rem}
.reservation-list{display:grid;gap:11px}
.reservation-row{grid-template-columns:1fr 160px 170px auto}
.reservation-finance{display:flex;flex-direction:column}
.reservation-finance span{font-size:.78rem;color:var(--muted)}
.reservation-row>div:nth-child(3){display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.money-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.money-summary>div{background:#f6f8fb;border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column}
.money-summary span{color:var(--muted);font-size:.76rem;font-weight:750}
.money-summary strong{font-size:1.2rem;margin-top:4px}
.money-summary .highlight{background:#effafa;border-color:#c8ecec}
.pay-section{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}
.payment-method-card{background:#f6f9fc;border:1px solid var(--line);padding:14px;border-radius:14px}
.payment-method-card p{margin:5px 0;color:var(--muted);font-size:.87rem}
.subheading{margin-top:24px}
.guest-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.guest-card{display:flex;gap:12px;border:1px solid var(--line);border-radius:15px;padding:13px}
.avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--teal),var(--navy));color:white;display:grid;place-items:center;font-weight:900;flex:0 0 auto}
.guest-card p{margin:3px 0;color:var(--muted);font-size:.85rem}
.guest-form{margin-top:18px;border-top:1px solid var(--line);padding-top:18px}
.sticky-card{position:sticky;top:20px}
.summary-list{margin:0}
.summary-list div{display:flex;justify-content:space-between;gap:18px;padding:10px 0;border-bottom:1px solid var(--line)}
.summary-list dt{color:var(--muted)}
.summary-list dd{margin:0;font-weight:800;text-align:right}
.help-box{margin-top:16px;background:#f2f9f9;border-radius:14px;padding:13px}
.help-box p{font-size:.82rem;margin-bottom:0;color:var(--muted)}

/* Manager */
.property-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px}
.manager-property{background:#fff;border:1px solid var(--line);border-radius:17px;padding:14px;display:grid;grid-template-columns:55px 1fr auto;align-items:center;gap:12px}
.manager-property img{width:55px;height:55px;object-fit:contain}
.manager-property div{display:flex;flex-direction:column}
.manager-property div span,.manager-property>span{color:var(--muted);font-size:.8rem}
.operation-card{grid-template-columns:100px 1fr auto}
.operation-date{display:flex;flex-direction:column;border-right:1px solid var(--line)}
.operation-date strong{color:var(--navy)}
.operation-date span{font-size:.75rem;color:var(--muted)}
.operation-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:end}
.operation-form label>span{font-size:.95rem;color:var(--navy)}
.calendar-legend{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.calendar-legend span{display:flex;align-items:center;gap:7px;font-size:.82rem;color:var(--muted)}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:#bbb}
.dot.direct{background:var(--teal)}.dot.airbnb{background:#e85b6a}.dot.manual{background:var(--gold)}
.timeline{display:grid;gap:10px}
.timeline-event{display:grid;grid-template-columns:230px 1fr;gap:18px;border-left:5px solid #bbb;background:#f8fafc;border-radius:12px;padding:14px}
.timeline-event.direct{border-color:var(--teal)}.timeline-event.airbnb{border-color:#e85b6a}.timeline-event.manual{border-color:var(--gold)}
.timeline-event h3{margin:5px 0 0;font-size:1rem}
.timeline-dates{display:flex;align-items:center;gap:8px;color:var(--navy)}
.rate-highlight{background:linear-gradient(135deg,#eefafa,#f9fffe);border:1px solid #c8ecec;border-radius:15px;padding:16px;margin:14px 0;display:flex;flex-direction:column}
.rate-highlight strong{font-size:1.3rem;color:var(--navy)}

/* Empty */
.center-page{min-height:65vh;display:grid;place-items:center;padding:40px 20px}
.empty-state{text-align:center;background:#fff;border:1px solid var(--line);border-radius:22px;padding:34px;max-width:520px}
.empty-state.compact{max-width:none;box-shadow:none;border:0;padding:25px}
.empty-icon{width:95px;height:95px;object-fit:contain}

/* Responsive */
@media(max-width:1050px){
  .property-grid{grid-template-columns:repeat(2,1fr)}
  .metric-grid{grid-template-columns:repeat(3,1fr)}
  .quick-grid{grid-template-columns:repeat(2,1fr)}
  .detail-layout,.app-columns{grid-template-columns:1fr}
  .sticky-card{position:static}
  .money-summary{grid-template-columns:repeat(2,1fr)}
  .rate-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:820px){
  .public-header{padding:0 16px;height:74px}
  .brand-link{width:180px;height:58px}
  .public-nav{gap:10px;font-size:.82rem}
  .hero{margin:12px;border-radius:22px}
  .hero-content{padding:48px 25px}
  .search-bar{grid-template-columns:1fr 1fr}
  .search-bar label{border:0}
  .search-bar .btn{grid-column:span 2}
  .section{margin:35px 16px;padding:0}
  .property-grid{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr;grid-auto-rows:230px}
  .gallery-main{grid-row:auto}
  .app-shell{display:block}
  .sidebar{position:fixed;left:-300px;width:280px;transition:.2s ease}
  body.menu-open .sidebar{left:0;box-shadow:30px 0 80px rgba(0,0,0,.3)}
  .app-main{padding:0 16px 40px}
  .menu-button{display:block}
  .app-topbar{min-height:78px}
  .metric-grid,.metric-grid.three{grid-template-columns:repeat(2,1fr)}
  .reservation-row{grid-template-columns:1fr}
  .reservation-row .row-arrow{display:none}
  .operation-form{grid-template-columns:1fr}
  .property-strip{grid-template-columns:1fr}
}
@media(max-width:560px){
  .public-nav>a:first-child{display:none}
  .hero h1{font-size:2.5rem}
  .search-bar{grid-template-columns:1fr}
  .search-bar .btn{grid-column:auto}
  .date-pair,.two-col,.three-col,.four-col{grid-template-columns:1fr}
  .metric-grid,.metric-grid.three,.quick-grid,.money-summary,.guest-grid{grid-template-columns:1fr}
  .rate-grid{grid-template-columns:repeat(2,1fr)}
  .photo-admin-grid{grid-template-columns:1fr}
  .toolbar{grid-template-columns:1fr}
  .timeline-event{grid-template-columns:1fr}
  .public-footer{flex-direction:column}
}

.imported-badge{display:inline-flex;background:#fff0f1;color:#b52b3c;border:1px solid #ffd7dc;padding:7px 11px;border-radius:999px;font-size:.76rem;font-weight:850;margin-bottom:14px}
.house-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.house-rules>div{background:#f6f8fb;border:1px solid var(--line);border-radius:14px;padding:13px;display:flex;flex-direction:column;gap:4px}
.house-rules span{color:var(--muted);font-size:.88rem}
.public-name-preview{font-weight:800!important;color:var(--teal)!important;margin-top:3px!important}
.airbnb-import-panel{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.airbnb-import-panel>div{background:#fff5f6;border:1px solid #ffd9dd;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:4px}
.airbnb-import-panel span{color:#7d5260;font-size:.86rem}
@media(max-width:560px){.house-rules,.airbnb-import-panel{grid-template-columns:1fr}}

.sleep-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.sleep-card{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff;display:flex;flex-direction:column;gap:5px}
.sleep-icon{font-size:1.4rem}
.sleep-card span:last-child{color:var(--muted);font-size:.88rem}
@media(max-width:560px){.sleep-grid{grid-template-columns:1fr}}


/* v3 · Importaciones Airbnb */
.airbnb-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0 24px}.airbnb-summary>div{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:3px}.airbnb-summary strong{font-size:1.8rem;color:var(--navy)}.airbnb-summary span{color:var(--muted);font-size:.86rem}.airbnb-import-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.airbnb-import-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:0 8px 30px rgba(9,28,52,.05);display:flex;flex-direction:column;gap:14px}.airbnb-import-card.pending{border-color:#f1d5a2}.airbnb-import-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.airbnb-import-head h3{margin:8px 0 3px}.link-state{border-radius:999px;padding:6px 10px;font-size:.72rem;font-weight:900;white-space:nowrap}.link-state.linked{background:#e8f8f5;color:#08796d}.link-state.pending{background:#fff5dc;color:#996a00}.airbnb-facts{display:flex;flex-wrap:wrap;gap:7px}.airbnb-facts span,.mini-amenities span{background:#f5f7fa;border:1px solid var(--line);border-radius:999px;padding:6px 9px;font-size:.76rem}.mini-amenities{display:flex;flex-wrap:wrap;gap:6px}.airbnb-note{background:#fff9ec;border:1px solid #f3dfae;border-radius:14px;padding:11px 12px;font-size:.82rem;color:#715516}.linked-property{border-left:4px solid var(--teal);padding:9px 12px;background:#f2fbfa;border-radius:0 12px 12px 0;display:flex;flex-direction:column}.linked-property span,.linked-property small{color:var(--muted);font-size:.76rem}.button-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.button-row form{margin:0}.compact-link-form{background:#f7f9fb;border-radius:16px;padding:14px}.external-link{font-weight:800;font-size:.82rem;color:var(--teal)}.airbnb-linked-mini{display:inline-flex;margin-top:6px;border-radius:999px;padding:5px 8px;background:#fff0f1;color:#b52b3c;font-size:.7rem;font-weight:850}.source-tag.airbnb{background:#ffeff1;color:#b1273b}.admin-section .split{align-items:flex-end}
@media(max-width:900px){.airbnb-import-grid{grid-template-columns:1fr}}@media(max-width:620px){.airbnb-summary{grid-template-columns:1fr}.airbnb-import-head{flex-direction:column}.button-row{align-items:stretch}.button-row .btn,.button-row form,.button-row button{width:100%}}


/* v4 · Galerías locales importadas desde Airbnb */
.photo-count{font-size:.8rem;color:var(--muted);font-weight:800}.airbnb-photo-import{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:16px 18px;border:1px solid #ffd9dd;background:linear-gradient(135deg,#fff8f8,#fff);border-radius:18px;margin:14px 0 18px}.airbnb-photo-import>div:first-child{display:flex;flex-direction:column;align-items:flex-start;gap:5px;max-width:680px}.airbnb-photo-import p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.5}.airbnb-photo-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.airbnb-photo-actions form{margin:0}.photo-admin-image{position:relative}.photo-admin-image img{display:block}.cover-badge,.photo-source{position:absolute;top:9px;border-radius:999px;padding:5px 8px;font-size:.67rem;font-weight:900;box-shadow:0 3px 12px rgba(0,0,0,.12)}.cover-badge{left:9px;background:#0b2947;color:#fff}.photo-source{right:9px;background:#fff;color:#445}.photo-source.airbnb{background:#ffeff1;color:#ac2437}.photo-source.manual{background:#e9fbf7;color:#08766a}.photo-admin-actions{display:flex;gap:6px;flex-wrap:wrap;padding:9px}.photo-admin-actions form{padding:0;margin:0}.photo-admin-actions .btn{width:auto}.public-gallery{position:relative}.gallery-photo-button{display:block;padding:0;border:0;background:transparent;overflow:hidden;cursor:zoom-in;min-width:0}.gallery-photo-button img{width:100%;height:100%;object-fit:cover;display:block}.gallery-more{position:absolute;right:18px;bottom:18px;background:#fff;border:1px solid #d7dfe6;border-radius:10px;padding:9px 12px;font-weight:850;box-shadow:0 5px 18px rgba(0,0,0,.14);cursor:pointer}.photo-lightbox{position:fixed;inset:0;background:rgba(4,13,24,.94);z-index:9999;display:none;align-items:center;justify-content:center;padding:70px 72px}.photo-lightbox.open{display:flex}.photo-lightbox img{max-width:min(1500px,92vw);max-height:82vh;object-fit:contain;border-radius:8px;box-shadow:0 24px 70px rgba(0,0,0,.35)}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(8px)}.lightbox-close{right:24px;top:22px;width:44px;height:44px;border-radius:50%;font-size:1.6rem}.lightbox-prev,.lightbox-next{top:50%;transform:translateY(-50%);width:50px;height:70px;border-radius:14px;font-size:2rem}.lightbox-prev{left:18px}.lightbox-next{right:18px}.lightbox-counter{position:absolute;top:28px;left:50%;transform:translateX(-50%);color:#fff;font-weight:800;font-size:.86rem}.lightbox-caption{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:#dfe8ef;font-size:.85rem}.body-no-scroll{overflow:hidden}@media(max-width:760px){.airbnb-photo-import{align-items:stretch;flex-direction:column}.airbnb-photo-actions{align-items:stretch}.airbnb-photo-actions .btn,.airbnb-photo-actions form{width:100%}.photo-lightbox{padding:55px 12px}.lightbox-prev,.lightbox-next{width:42px;height:58px}.lightbox-prev{left:5px}.lightbox-next{right:5px}.gallery-more{right:10px;bottom:10px;font-size:.75rem}}


/* v5 · Experiencia pública premium y calendario visual */
.property-subtitle{margin:5px 0 10px;color:var(--muted);font-size:.86rem;line-height:1.45;min-height:2.4em}
.property-hero-subtitle{margin:6px 0 8px;color:var(--muted);font-size:1.02rem}
.starting-price{display:flex;align-items:baseline;gap:5px}.starting-price strong{font-size:1.25rem;color:var(--navy)}
.trust-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:-18px;position:relative;z-index:3}
.trust-strip>div{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 18px;box-shadow:0 10px 28px rgba(10,35,60,.06);display:flex;flex-direction:column;gap:4px}
.trust-strip strong{color:var(--navy)}.trust-strip span{color:var(--muted);font-size:.82rem;line-height:1.45}
.booking-price-head{display:flex;align-items:baseline;gap:6px;margin-bottom:2px;color:var(--muted)}.booking-price-head strong{font-size:1.8rem;color:var(--navy)}
.deposit-callout{margin-top:12px;background:linear-gradient(135deg,#eefbf8,#f8fffd);border:1px solid #c9eee7;border-radius:14px;padding:13px 14px;display:flex;flex-direction:column;gap:3px}.deposit-callout strong{color:#08796d}.deposit-callout span{font-size:.78rem;color:var(--muted);line-height:1.4}
.btn-whatsapp{margin-top:10px;background:#128c7e;color:#fff;border-color:#128c7e}.btn-whatsapp:hover{filter:brightness(.96)}
.whatsapp-float{position:fixed;right:22px;bottom:22px;z-index:40;background:#128c7e;color:#fff;border-radius:999px;padding:13px 17px;font-weight:900;box-shadow:0 12px 30px rgba(0,0,0,.2);text-decoration:none}
.section-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.section-title-row h2{margin-top:3px}.calendar-legend{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.78rem}.calendar-legend span{display:flex;align-items:center;gap:5px}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-dot.available{background:#c9eee7}.legend-dot.occupied{background:#f2a7b1}
.availability-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:15px 0 12px;font-weight:850;color:var(--navy)}.calendar-nav{width:38px;height:38px;border:1px solid var(--line);background:#fff;border-radius:50%;font-size:1.35rem;cursor:pointer}.calendar-nav:hover{background:#f4f7fa}
.availability-calendars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.month-card{border:1px solid var(--line);border-radius:18px;padding:15px;background:#fff}.month-card h3{text-transform:capitalize;margin:0 0 12px;font-size:1rem}.weekday-grid,.day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.weekday-grid{margin-bottom:5px}.weekday-grid span{text-align:center;font-size:.7rem;color:var(--muted);font-weight:850}.day{aspect-ratio:1;border:0;border-radius:9px;background:transparent;font:inherit;font-size:.78rem;display:grid;place-items:center}.day.available{background:#f2fbf9;color:#0b6159;cursor:pointer}.day.available:hover{background:#dff5f0}.day.occupied{background:#fff0f2;color:#a73545;text-decoration:line-through}.day.past{color:#bcc5cd;background:#f7f8f9}.day.blank{background:transparent}.day.selected{background:var(--navy)!important;color:#fff!important;font-weight:900}.day.selected-range{background:#dfeff2;color:var(--navy)}.calendar-selection-note{margin-top:12px;background:#f6f8fa;border-radius:12px;padding:10px 12px;color:var(--muted);font-size:.8rem}
.location-card{display:flex;justify-content:space-between;align-items:center;gap:20px}.location-card p{margin-bottom:0;color:var(--muted)}
@media(max-width:820px){.trust-strip{grid-template-columns:1fr;margin-top:0}.availability-calendars{grid-template-columns:1fr}.location-card{align-items:flex-start;flex-direction:column}.section-title-row{flex-direction:column}.whatsapp-float{right:14px;bottom:14px}}

.day.checkout-option{outline:2px solid var(--navy);outline-offset:-2px;cursor:pointer;text-decoration:none}.day.checkout-option:hover{background:#f7dfe3}


/* v6 · Checkout, reserva guiada y pagos */
.checkout-shell{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.7fr);gap:24px;align-items:start}.checkout-main{display:flex;flex-direction:column;gap:18px}.checkout-aside{min-width:0}.checkout-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px}.checkout-step{display:flex;align-items:center;gap:9px;color:var(--muted)}.checkout-step>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#eef2f6;font-weight:900}.checkout-step div{display:flex;flex-direction:column;line-height:1.2}.checkout-step strong{font-size:.84rem;color:var(--navy)}.checkout-step small{font-size:.7rem}.checkout-step.active>span{background:var(--teal);color:#fff}.checkout-hero-panel h1{margin:4px 0 6px}.checkout-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.checkout-facts>div{background:#f7f9fb;border:1px solid var(--line);border-radius:14px;padding:13px;display:flex;flex-direction:column;gap:4px}.checkout-facts span{font-size:.72rem;color:var(--muted);text-transform:uppercase;font-weight:850;letter-spacing:.04em}.checkout-facts strong{color:var(--navy)}.checkout-facts small{color:var(--muted);font-size:.72rem}.checkout-how{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.checkout-how>div{border:1px solid var(--line);border-radius:16px;padding:15px;display:flex;flex-direction:column;gap:6px}.checkout-how b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff}.checkout-how span{color:var(--muted);font-size:.8rem;line-height:1.45}.terms-list{display:grid;gap:9px}.terms-list>div{padding:10px 12px;background:#f7faf9;border-radius:12px;color:#43515d}.checkout-property-mini{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:center}.checkout-property-mini img{width:96px;height:84px;object-fit:cover;border-radius:13px;background:#eef3f5}.checkout-property-mini h3{margin:3px 0}.checkout-property-mini p{margin:0;color:var(--muted);font-size:.78rem}.checkout-price-lines{display:grid;gap:10px;margin:18px 0}.checkout-price-lines>div{display:flex;justify-content:space-between;gap:16px}.checkout-price-lines .total{border-top:1px solid var(--line);padding-top:12px;font-size:1.06rem}.deposit-due-card{background:linear-gradient(135deg,#e8faf6,#f7fffd);border:1px solid #c2ebe3;border-radius:15px;padding:14px;display:flex;flex-direction:column;gap:3px}.deposit-due-card strong{font-size:1.7rem;color:#08796d}.deposit-due-card small{color:var(--muted)}.terms-check{display:flex!important;flex-direction:row!important;gap:9px!important;align-items:flex-start!important;font-size:.78rem!important;line-height:1.4!important}.terms-check input{width:auto!important;margin-top:3px}.checkout-no-charge{text-align:center;color:var(--muted);font-size:.72rem;margin:8px 0 0}.checkout-confirm-form{margin-top:14px}
.reservation-progress-wrap{margin-bottom:14px}.reservation-progress{display:flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px 16px;overflow:auto}.progress-node{display:flex;align-items:center;gap:8px;min-width:145px}.progress-node>span{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#edf1f5;color:#6d7b88;font-weight:900;flex:0 0 auto}.progress-node div{display:flex;flex-direction:column;line-height:1.2}.progress-node strong{font-size:.78rem;color:var(--navy)}.progress-node small{font-size:.68rem;color:var(--muted)}.progress-node.done>span{background:#dff6ef;color:#08796d}.progress-node.current>span{background:var(--teal);color:#fff}.progress-line{height:2px;background:#e4e9ed;flex:1;min-width:24px;margin:0 7px}.progress-line.done{background:#66cdbd}.reservation-banner-v6{align-items:flex-end}.reservation-code{display:inline-block;margin-left:8px;color:var(--muted);font-size:.8rem;font-weight:800}.big-total small{display:block;text-align:right;color:var(--muted);margin-top:3px}.money-summary.v6{grid-template-columns:repeat(4,1fr)}.money-summary.v6 .highlight small{display:block;color:var(--muted);font-size:.68rem;margin-top:3px}.review-notice,.hold-notice{border-radius:14px;padding:12px 14px;margin:13px 0;line-height:1.45}.review-notice{background:#fff8e8;border:1px solid #f2dfad;color:#765b17}.hold-notice{background:#f5f8fb;border:1px solid var(--line);display:flex;flex-direction:column;gap:3px}.hold-notice span{color:var(--muted);font-size:.8rem}.pay-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.secure-note{font-size:.72rem;color:#08796d;background:#e9f8f5;padding:6px 9px;border-radius:999px;font-weight:850}.payment-method-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.payment-choice{border:1px solid var(--line);border-radius:16px;padding:12px!important;display:flex!important;flex-direction:row!important;gap:9px!important;align-items:center!important;cursor:pointer;background:#fff}.payment-choice input{position:absolute;opacity:0;pointer-events:none}.payment-choice.active{border-color:var(--teal);box-shadow:0 0 0 2px rgba(20,178,179,.12);background:#f7fffd}.method-icon{width:34px;height:34px;border-radius:10px;background:#edf3f6;display:grid;place-items:center;font-weight:900;color:var(--navy);flex:0 0 auto}.payment-choice div{display:flex;flex-direction:column;gap:2px}.payment-choice small{color:var(--muted);font-size:.68rem}.amount-box{background:#f7f9fb;border:1px solid var(--line);border-radius:16px;padding:14px}.amount-shortcuts{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.amount-shortcuts button{border:1px solid #cfdbe2;background:#fff;color:var(--navy);border-radius:999px;padding:7px 10px;font-weight:800;cursor:pointer;font-size:.72rem}.amount-shortcuts button:hover{border-color:var(--teal)}.payment-method-card>div:first-child{display:flex;justify-content:space-between;gap:10px}.payment-badge{font-size:.65rem;font-weight:900;background:#e9f8f5;color:#08796d;padding:5px 8px;border-radius:999px}.local-equivalent{display:flex!important;justify-content:space-between!important;align-items:center;margin-top:8px;background:#fff;border-radius:11px;padding:10px}.local-equivalent span{font-size:.72rem;color:var(--muted)}.payment-data-row{display:grid!important;grid-template-columns:110px 1fr auto;gap:8px;align-items:center;background:#fff;border-radius:11px;padding:9px;margin-top:7px}.payment-data-row span{color:var(--muted);font-size:.72rem}.copy-btn{border:1px solid var(--line);background:#f7f9fb;border-radius:8px;padding:5px 8px;cursor:pointer;font-weight:800;font-size:.66rem}.proof-tip{font-size:.75rem;color:var(--muted);background:#f7f9fb;border-radius:10px;padding:9px}.paid-celebration,.docs-complete{background:#eaf9f5;border:1px solid #c4ece3;border-radius:14px;padding:14px;color:#08796d;display:flex;flex-direction:column;gap:3px}.payment-history-cards{display:grid;gap:9px}.payment-history-cards article{display:grid;grid-template-columns:1.4fr .6fr auto auto auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:11px 12px}.payment-history-cards article>div{display:flex;flex-direction:column}.payment-history-cards article span,.payment-history-cards article small{font-size:.72rem;color:var(--muted)}.payment-history-cards article .status-pill{color:inherit}.form-counter{font-size:.7rem;color:var(--muted);font-weight:700}.summary-total-v6{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);margin-top:10px;padding-top:12px}.summary-total-v6 strong{font-size:1.45rem;color:var(--navy)}.mini-progress{height:5px;background:#edf1f4;border-radius:999px;overflow:hidden;margin-top:5px}.mini-progress i{display:block;height:100%;background:var(--teal);border-radius:inherit}
@media(max-width:980px){.checkout-shell{grid-template-columns:1fr}.checkout-aside .sticky-card{position:static}.checkout-facts{grid-template-columns:repeat(2,1fr)}.money-summary.v6{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.checkout-progress{grid-template-columns:1fr}.checkout-how{grid-template-columns:1fr}.payment-method-selector{grid-template-columns:1fr}.payment-history-cards article{grid-template-columns:1fr 1fr}.payment-history-cards article>div{grid-column:1/-1}.reservation-progress{align-items:flex-start}.progress-node{min-width:130px}.money-summary.v6{grid-template-columns:1fr}.payment-data-row{grid-template-columns:1fr}.checkout-facts{grid-template-columns:1fr 1fr}}

/* v6.1: CTA de reserva más claro */
.booking-main-cta{margin-top:12px;font-size:1rem;box-shadow:0 10px 24px rgba(12,183,184,.18)}
#reserva{scroll-margin-top:110px}
