@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&display=swap";:root{--font-sans:"Outfit", sans-serif;--font-serif:"Playfair Display", serif;--bg-app:#fbf9f6;--bg-card:#ffffffd9;--bg-dark:#121814;--primary:#2a4736;--primary-hover:#1e3327;--accent:#d2a172;--accent-hover:#c09163;--text-dark:#1e2420;--text-light:#6a736d;--text-white:#fff;--border-color:#2a47361f;--danger:#9c3b3b;--success:#2e7d32;--warning:#ef6c00;--shadow-sm:0 4px 6px -1px #0000000d, 0 2px 4px -1px #00000008;--shadow-md:0 10px 15px -3px #00000014, 0 4px 6px -2px #0000000a;--shadow-lg:0 20px 25px -5px #0000001a, 0 10px 10px -5px #0000000a;--radius-sm:8px;--radius-md:16px;--radius-lg:24px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-dark);-webkit-font-smoothing:antialiased;line-height:1.6}h1,h2,h3,h4,h5{font-family:var(--font-serif);font-weight:600;line-height:1.25}button,input,textarea,select{font-family:var(--font-sans)}a{color:inherit;text-decoration:none}.glass-panel{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;padding:12px 24px;font-size:.95rem;font-weight:500;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background-color:var(--primary);color:var(--text-white)}.btn-primary:hover{background-color:var(--primary-hover);transform:translateY(-2px)}.btn-accent{background-color:var(--accent);color:var(--text-white)}.btn-accent:hover{background-color:var(--accent-hover);transform:translateY(-2px)}.btn-secondary{color:var(--text-dark);border:1px solid var(--primary);background-color:#0000}.btn-secondary:hover{background-color:#2a47360d}.form-group{margin-bottom:20px}.form-group label{color:var(--text-dark);margin-bottom:6px;font-size:.9rem;font-weight:500;display:block}.form-control{border-radius:var(--radius-sm);border:1px solid var(--border-color);width:100%;color:var(--text-dark);background-color:#fff;padding:12px 16px;font-size:.95rem;transition:all .2s}.form-control:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #2a473626}.badge{text-transform:uppercase;border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.badge-success{color:#2e7d32;background:#e8f5e9}.badge-pending{color:#ef6c00;background:#fff3e0}.badge-cancel{color:#c0392b;background:#ffebee}.guest-container{max-width:1100px;margin:0 auto;padding:24px}.guest-header{justify-content:space-between;align-items:center;margin-bottom:30px;display:flex}.guest-logo h1{color:var(--primary);font-size:2.2rem}.gallery-grid{border-radius:var(--radius-md);height:400px;box-shadow:var(--shadow-md);grid-template-columns:2fr 1fr;gap:12px;margin-bottom:30px;display:grid;overflow:hidden}.main-img{background-position:50%;background-size:cover;height:100%}.side-gallery{grid-template-rows:1fr 1fr;gap:12px;display:grid}.sub-img{background-position:50%;background-size:cover;height:100%}.guest-content-grid{grid-template-columns:1.6fr 1fr;gap:30px;display:grid}.property-details h2{color:var(--primary);margin-bottom:15px;font-size:2rem}.property-meta{color:var(--text-light);flex-wrap:wrap;gap:10px 20px;margin-bottom:20px;font-size:.95rem;display:flex}.property-description{color:#3b423d;margin-bottom:30px;font-size:1.05rem}.booking-card{padding:24px;position:sticky;top:30px}.price-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:baseline;margin-bottom:20px;padding-bottom:15px;display:flex}.price-header .amount{color:var(--primary);font-size:1.8rem;font-weight:700;font-family:var(--font-serif)}.date-inputs{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:15px;display:grid}.pricing-summary{border-top:1px solid var(--border-color);margin-top:20px;padding-top:15px}.pricing-line{color:var(--text-light);justify-content:space-between;margin-bottom:8px;font-size:.95rem;display:flex}.pricing-line.total{color:var(--primary);margin-top:10px;font-size:1.2rem;font-weight:700}.whatsapp-float{color:#fff;z-index:100;cursor:pointer;background-color:#25d366;border-radius:50px;justify-content:center;align-items:center;width:60px;height:60px;font-size:30px;transition:transform .2s;display:flex;position:fixed;bottom:30px;right:30px;box-shadow:0 4px 10px #0000004d}.whatsapp-float:hover{transform:scale(1.1)}.auth-container{background-color:var(--bg-dark);justify-content:center;align-items:center;height:100vh;display:flex}.auth-card{border-radius:var(--radius-md);width:100%;max-width:420px;color:var(--text-white);background:#ffffff14;border:1px solid #ffffff1a;padding:40px}.auth-card h1{text-align:center;margin-bottom:10px;font-size:2.2rem}.auth-card p{color:#ffffff80;text-align:center;margin-bottom:30px}.auth-card label{color:#fffc}.auth-card .form-control{color:var(--text-white);background:#0003;border-color:#ffffff1a}.auth-card .form-control:focus{border-color:var(--accent)}.dashboard-layout{height:100vh;display:flex;overflow:hidden}.sidebar{background-color:var(--bg-dark);width:260px;color:var(--text-white);flex-direction:column;padding:24px;display:flex}.sidebar-brand h2{color:var(--accent);margin-bottom:40px;font-size:1.8rem}.sidebar-menu{flex-grow:1;list-style:none}.menu-item{border-radius:var(--radius-sm);cursor:pointer;color:#ffffffb3;align-items:center;gap:12px;margin-bottom:8px;padding:14px 18px;font-size:.95rem;transition:all .2s;display:flex}.menu-item:hover,.menu-item.active{color:var(--accent);background-color:#d2a17226;font-weight:500}.main-content{flex-grow:1;padding:40px;overflow-y:auto}.dashboard-header{justify-content:space-between;align-items:center;margin-bottom:30px;display:flex}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:30px;display:grid}.kpi-card{padding:24px}.kpi-card .kpi-title{text-transform:uppercase;color:var(--text-light);letter-spacing:.5px;font-size:.85rem}.kpi-card .kpi-value{color:var(--primary);font-size:2.2rem;font-weight:700;font-family:var(--font-serif);margin-top:10px}.data-table-container{margin-bottom:30px;padding:24px}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border-color);padding:16px}.data-table th{color:var(--primary);background-color:#2a473608;font-weight:600}.data-table tr:hover{background-color:#2a473603}.calendar-widget{padding:24px}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:8px;margin-top:15px;display:grid}.calendar-day-header{text-align:center;color:var(--primary);font-size:.85rem;font-weight:600}.calendar-cell{aspect-ratio:1;border-radius:var(--radius-sm);border:1px solid var(--border-color);cursor:pointer;justify-content:center;align-items:center;font-size:.9rem;transition:all .2s;display:flex}.calendar-cell.booked{color:#c62828;background-color:#ffebee;border-color:#ffcdd2;font-weight:600}.calendar-cell.today{border-color:var(--accent);background-color:#d2a1721a;font-weight:700}.chat-layout{border-radius:var(--radius-md);height:550px;box-shadow:var(--shadow-md);grid-template-columns:320px 1fr;display:grid;overflow:hidden}.chat-list{border-right:1px solid var(--border-color);background:#fff;overflow-y:auto}.chat-list-item{border-bottom:1px solid var(--border-color);cursor:pointer;padding:16px;transition:background .2s}.chat-list-item:hover,.chat-list-item.active{background:#2a47360d}.chat-list-item h4{font-family:var(--font-sans);margin-bottom:4px;font-size:.95rem}.chat-list-item p{color:var(--text-light);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.chat-window{background:#fdfdfd;flex-direction:column;display:flex}.chat-header{border-bottom:1px solid var(--border-color);background:#fff;justify-content:space-between;align-items:center;padding:16px;display:flex}.chat-messages{flex-direction:column;flex-grow:1;gap:15px;padding:24px;display:flex;overflow-y:auto}.msg{border-radius:var(--radius-sm);max-width:70%;padding:12px 16px;font-size:.95rem;line-height:1.4}.msg-inbound{background:#f1f0e8;border-bottom-left-radius:0;align-self:flex-start}.msg-outbound{background:var(--primary);color:#fff;border-bottom-right-radius:0;align-self:flex-end}.chat-footer{border-top:1px solid var(--border-color);background:#fff;gap:10px;padding:16px;display:flex}.brand-loader-container{flex-direction:column;justify-content:center;align-items:center;padding:40px;display:flex}.brand-loader-circle{border:4px solid #2a47361a;border-left-color:var(--primary);border-radius:50%;width:50px;height:50px;margin-bottom:15px;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=820px){.guest-content-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr;height:250px}.side-gallery{display:none}.dashboard-layout{flex-direction:column}.sidebar{width:100%;height:auto;padding:16px}.sidebar-menu{flex-wrap:wrap;gap:5px;margin-top:10px;display:flex}.menu-item{margin-bottom:0;padding:8px 12px;font-size:.85rem}.main-content{padding:20px}.chat-layout{grid-template-columns:1fr}.chat-list{display:block}}.amenities-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:20px;margin-bottom:40px;display:grid}.amenity-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);background:#fff;align-items:center;gap:14px;padding:18px;transition:transform .2s,box-shadow .2s;display:flex}.amenity-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary);transform:translateY(-3px)}.amenity-icon{font-size:1.6rem;line-height:1}.amenity-text h4{font-family:var(--font-sans);color:var(--text-dark);font-size:.95rem;font-weight:600}.amenity-text p{color:var(--text-light);font-size:.8rem}.reviews-section{border-top:1px solid var(--border-color);margin-top:50px;padding-top:40px}.reviews-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:25px;display:grid}.review-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);background:#fff;padding:24px}.review-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.reviewer-info{align-items:center;gap:12px;display:flex}.reviewer-avatar{background-color:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:.95rem;font-weight:600;display:flex}.reviewer-name{font-size:.95rem;font-weight:600}.review-stars{color:#ffb300;font-size:1rem}.review-content{color:var(--text-dark);font-size:.9rem;line-height:1.5}.gallery-grid div{cursor:pointer;transition:transform .4s,filter .4s}.gallery-grid div:hover{filter:brightness(.95);transform:scale(1.02)}.lightbox-modal{z-index:10000;opacity:0;pointer-events:none;background-color:#121814f2;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;inset:0}.lightbox-modal.active{opacity:1;pointer-events:auto}.lightbox-content{border-radius:var(--radius-sm);max-width:90%;max-height:80%;box-shadow:var(--shadow-lg);transition:transform .3s;transform:scale(.9)}.lightbox-modal.active .lightbox-content{transform:scale(1)}.lightbox-close{color:#fff;cursor:pointer;font-size:2.2rem;transition:transform .2s;position:absolute;top:30px;right:30px}.lightbox-close:hover{transform:scale(1.1)}.trust-badges-row{border-top:1px dashed var(--border-color);color:var(--text-light);flex-wrap:wrap;justify-content:center;gap:15px;margin-top:15px;padding-top:10px;font-size:.8rem;display:flex}.trust-badge-item{align-items:center;gap:6px;display:flex}.calendar-container-premium{border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);background:#fff;margin-top:15px;padding:16px}.calendar-nav-premium{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.calendar-nav-premium h4{font-family:var(--font-sans);color:var(--primary);text-transform:capitalize;font-size:1.05rem;font-weight:600}.calendar-nav-btn-premium{border:1px solid var(--border-color);cursor:pointer;width:32px;height:32px;color:var(--primary);background:0 0;border-radius:4px;justify-content:center;align-items:center;font-size:.95rem;transition:all .2s;display:flex}.calendar-nav-btn-premium:hover{border-color:var(--primary);background-color:#2a47360d}.calendar-grid-premium{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-day-header-premium{text-align:center;color:var(--primary);margin-bottom:6px;font-size:.75rem;font-weight:600}.calendar-cell-premium{aspect-ratio:1.15;cursor:pointer;background-color:#fff;border:1px solid #2a473614;border-radius:6px;flex-direction:column;justify-content:space-between;min-height:48px;padding:4px 6px;transition:all .2s;display:flex;position:relative}.calendar-cell-premium .day-num{color:var(--text-dark);align-self:flex-end;font-size:.8rem;font-weight:500}.calendar-cell-premium .day-price{color:var(--accent);text-align:left;font-size:.65rem;font-weight:600}.calendar-cell-premium:not(.disabled):not(.booked):hover{border-color:var(--primary);background-color:#2a47360d}.calendar-cell-premium.booked{cursor:not-allowed;background-color:#fef0f0;border-color:#fcdbdb}.calendar-cell-premium.booked .day-num{color:#c62828;opacity:.6}.calendar-cell-premium.booked .day-price{color:#c62828;opacity:.5;text-decoration:line-through}.calendar-cell-premium.booked:after{content:"Ocupado";color:#c62828;opacity:.7;font-size:.55rem;font-weight:600;position:absolute;bottom:4px;left:6px}.calendar-cell-premium.disabled{opacity:.2;cursor:default;pointer-events:none;background-color:#0000;border-color:#0000}.calendar-cell-premium.today{border-color:var(--accent);background-color:#d2a1720d}.calendar-cell-premium.selected-start{background-color:var(--primary)!important;border-color:var(--primary)!important}.calendar-cell-premium.selected-start .day-num,.calendar-cell-premium.selected-start .day-price{color:var(--text-white)!important}.calendar-cell-premium.selected-end{background-color:var(--primary)!important;border-color:var(--primary)!important}.calendar-cell-premium.selected-end .day-num,.calendar-cell-premium.selected-end .day-price{color:var(--text-white)!important}.calendar-cell-premium.selected-range{border-color:var(--primary)!important;background-color:#2a47361a!important}.calendar-cell-premium.selected-range .day-num{color:var(--primary);font-weight:600}.calendar-cell-premium.selected-range .day-price{color:var(--primary-hover)}.btn-all-photos{color:var(--text-dark);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;box-shadow:var(--shadow-sm);background:#fff;align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:all .2s;display:flex;position:absolute;bottom:20px;right:20px}.btn-all-photos:hover{border-color:var(--primary);background:#fbf9f6;transform:translateY(-1px)}.all-photos-modal{z-index:10100;opacity:0;pointer-events:none;background-color:#fbf9f6;flex-direction:column;transition:opacity .3s;display:flex;position:fixed;inset:0;overflow-y:auto}.all-photos-modal.active{opacity:1;pointer-events:auto}.all-photos-header{border-bottom:1px solid var(--border-color);z-index:10;background:#fbf9f6;justify-content:space-between;align-items:center;padding:20px 40px;display:flex;position:sticky;top:0}.all-photos-header h2{font-family:var(--font-serif);color:var(--primary);font-size:1.8rem}.all-photos-close{cursor:pointer;color:var(--text-dark);font-size:2rem;transition:transform .2s}.all-photos-close:hover{color:var(--primary);transform:scale(1.1)}.all-photos-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:40px;display:grid}.all-photos-item{aspect-ratio:1.5;border-radius:var(--radius-sm);cursor:pointer;box-shadow:var(--shadow-sm);background-position:50%;background-size:cover;transition:transform .3s,filter .3s}.all-photos-item:hover{filter:brightness(.95);transform:scale(1.03)}.photo-manager-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-top:20px;margin-bottom:25px;display:grid}.photo-manager-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;display:flex;position:relative;overflow:hidden}.photo-manager-img{aspect-ratio:1.5;background-position:50%;background-size:cover}.photo-manager-controls{border-top:1px solid var(--border-color);background:#fafaf8;flex-direction:column;gap:8px;padding:10px;display:flex}.photo-highlight-select{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:4px;padding:4px;font-size:.8rem}.photo-delete-btn{color:#c62828;cursor:pointer;text-align:center;background:#ffebee;border:none;border-radius:4px;padding:6px;font-size:.8rem;font-weight:500;transition:background .2s}.photo-delete-btn:hover{background:#ffcdd2}.photo-upload-zone{border:2px dashed var(--accent);border-radius:var(--radius-sm);text-align:center;cursor:pointer;background:#d2a17208;flex-direction:column;align-items:center;gap:10px;margin-bottom:25px;padding:30px;transition:all .2s;display:flex}.photo-upload-zone:hover{border-color:var(--accent-hover);background:#d2a17214}.photo-upload-zone span{color:var(--accent);font-size:2.2rem}.checkout-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10500;opacity:0;pointer-events:none;background-color:#121814a6;justify-content:center;align-items:center;padding:20px;transition:opacity .3s;display:flex;position:fixed;inset:0}.checkout-overlay.active{opacity:1;pointer-events:auto}.checkout-card{border-radius:var(--radius-md);width:100%;max-width:650px;max-height:90vh;box-shadow:var(--shadow-lg);border:1px solid var(--border-color);background:#fbf9f6;flex-direction:column;animation:.3s checkoutSlideUp;display:flex;overflow:hidden}@keyframes checkoutSlideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.checkout-header{background:var(--primary);color:#fff;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.checkout-header h3{font-size:1.4rem;font-family:var(--font-serif);margin:0}.checkout-close{cursor:pointer;font-size:1.8rem;line-height:1;transition:transform .2s}.checkout-close:hover{transform:scale(1.1)}.checkout-body{flex-grow:1;padding:24px;overflow-y:auto}.payment-modes{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;display:grid}.payment-mode-btn{border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;text-align:center;color:var(--text-dark);background:#fff;padding:12px;font-weight:600;transition:all .2s}.payment-mode-btn.active{background-color:var(--primary);color:#fff;border-color:var(--primary)}.payment-section{border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);background:#fff;margin-bottom:20px;padding:20px;display:none}.payment-section.active{display:block}.split-row{align-items:center;gap:10px;margin-bottom:12px;display:flex}.card-form-grid{grid-template-columns:2fr 1fr 1fr;gap:12px;margin-top:15px;display:grid}@media (width<=600px){html,body{max-width:100%;overflow-x:hidden}.guest-container{box-sizing:border-box;width:100%;max-width:100%;padding:12px}.guest-header{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:20px}.guest-logo h1{font-size:1.6rem}.booking-card{padding:12px}.calendar-container-premium{padding:6px}.calendar-grid-premium{gap:2px}.calendar-day-header-premium{font-size:.65rem;min-width:0!important}.calendar-cell-premium{aspect-ratio:1;padding:2px;min-width:0!important;min-height:0!important}.calendar-cell-premium .day-num{font-size:.75rem}.calendar-cell-premium .day-price{font-size:.55rem}.calendar-cell-premium.booked:after{content:"Ocup.";font-size:.5rem;bottom:2px;left:2px}.reviews-grid{grid-template-columns:1fr}.amenities-grid{grid-template-columns:1fr;gap:12px}.checkout-overlay{padding:0}.checkout-card{border-radius:0;height:100vh;max-height:100vh}.card-form-grid{grid-template-columns:1fr}}
