:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172033;background:#f3f6fb;--ink:#0f172a;--accent:#2563eb;--muted:#64748b;--line:#dce4ef;--ok:#15803d;--danger:#b91c1c}
*{box-sizing:border-box}body{margin:0}.topbar{background:var(--ink);color:white;padding:20px max(18px,calc((100vw - 1180px)/2));display:flex;justify-content:space-between;gap:20px;align-items:center}.topbar h1{margin:0;font-size:1.35rem}.topbar p{margin:4px 0 0;color:#cbd5e1}.wrap{max-width:1180px;margin:24px auto;padding:0 18px 60px}.card{background:white;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 5px 18px rgba(15,23,42,.05);margin-bottom:16px}.login-card{max-width:440px;margin:7vh auto}.hidden{display:none!important}label{display:flex;flex-direction:column;gap:7px;font-weight:600;font-size:.92rem}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:11px 12px;background:white;color:inherit;font:inherit}button,.file-btn{border:0;border-radius:10px;background:var(--accent);color:white;padding:11px 15px;font-weight:700;cursor:pointer;text-align:center}.ghost{background:#e9eef7;color:var(--ink)}.toolbar,.split-head,.dialog-head,.dialog-actions,.actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.badge{display:inline-block;margin-left:8px;padding:4px 8px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:.75rem}.tabs{display:flex;gap:8px;margin-bottom:18px;overflow:auto}.tabs button{background:#e8eef8;color:#334155}.tabs button.active{background:var(--ink);color:white}.tab-panel{display:none}.tab-panel.active{display:block}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}.property-card h3{margin:0 0 4px}.property-card .meta{color:var(--muted);font-size:.9rem}.property-card .chips{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.chip{padding:5px 8px;border-radius:999px;background:#eef2f7;font-size:.78rem}.property-actions{display:flex;gap:8px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.span-2{grid-column:span 2}.checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.checks label{display:flex;flex-direction:row;align-items:center;font-weight:500}.checks input{width:auto}fieldset{border:1px solid var(--line);border-radius:12px;margin:16px 0;padding:14px}dialog{border:0;border-radius:18px;padding:0;max-width:920px;width:min(96vw,920px);max-height:92vh}dialog::backdrop{background:rgba(15,23,42,.55)}.dialog-form{padding:22px;overflow:auto;max-height:92vh}.dialog-form.small{max-width:460px}.dialog-form h2{margin:0}.dialog-form p{margin:4px 0;color:var(--muted)}.dialog-actions{margin-top:18px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.stat{background:white;border:1px solid var(--line);border-radius:14px;padding:15px}.stat strong{display:block;font-size:1.5rem}.stat span{color:var(--muted);font-size:.85rem}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{border-bottom:1px solid var(--line);padding:10px;text-align:left;white-space:nowrap}.status-DISPONIBLE{color:var(--ok);font-weight:800}.status-OCUPADA{color:var(--danger);font-weight:800}.summary-row{display:grid;grid-template-columns:1.2fr repeat(4,.7fr);gap:8px;border-bottom:1px solid var(--line);padding:10px 0}.small-note{color:var(--muted);font-size:.84rem}@media(max-width:760px){.form-grid,.form-grid.compact,.checks{grid-template-columns:1fr}.span-2{grid-column:span 1}.stats{grid-template-columns:repeat(2,1fr)}.topbar{align-items:flex-start}.summary-row{grid-template-columns:1fr 1fr}.summary-row>div:first-child{grid-column:1/-1}}

.status-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:.75rem;font-weight:800}
.status-pending{background:#fef3c7;color:#92400e}.status-approved{background:#dcfce7;color:#166534}.status-rejected{background:#fee2e2;color:#991b1b}
.status-disabled{background:#e2e8f0;color:#475569}.status-review{background:#ffedd5;color:#9a3412}
.room-card{border:1px solid var(--line);border-radius:14px;padding:14px;margin:12px 0;background:#f8fafc}
.room-head,.bed-row{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.room-head>*{flex:1}.room-head button,.bed-row button{flex:0 0 auto}
.bed-list{margin:10px 0}.bed-row{margin:7px 0}.bed-row label:first-child{min-width:190px;flex:2}.bed-row label:nth-child(2){max-width:120px}
.switch-row{display:flex!important;flex-direction:row!important;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);padding:10px 12px;border-radius:10px;background:#f8fafc}
.switch-input{appearance:none;width:44px!important;height:24px;border-radius:999px!important;background:#cbd5e1!important;position:relative;cursor:pointer;padding:0!important;border:0!important;flex:0 0 44px}
.switch-input:checked{background:#22c55e!important}.switch-input:before{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;left:3px;top:3px;transition:.15s}.switch-input:checked:before{left:23px}
.priority-input{min-width:76px;width:76px;text-align:center}
.admin-control{display:flex;align-items:center;gap:6px}.admin-control select{min-width:120px;padding:7px}
.table-wrap table.admin-properties{min-width:1550px}.link-btn{display:inline-block;padding:5px 8px;border-radius:8px;background:#e0e7ff;color:#3730a3;text-decoration:none;font-weight:700;font-size:.78rem}
.property-state-row{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.muted-box{background:#f8fafc;border:1px dashed var(--line);padding:10px;border-radius:10px}
@media(max-width:760px){.room-head,.bed-row{align-items:stretch}.bed-row label:nth-child(2){max-width:none}.table-wrap table.admin-properties{min-width:1450px}}

.private-section{margin-top:8px;padding:10px 12px;border-radius:10px;background:#fff7ed;border:1px solid #fed7aa}
.private-section h4{margin:0 0 4px}
.booking-private{margin-top:6px;padding:8px 10px;background:#fff7ed;border-radius:8px;font-size:.85rem}
.summary-row.operation{grid-template-columns:1.3fr .9fr .8fr .8fr 1.4fr}

.calendar-stats{grid-template-columns:repeat(4,minmax(150px,1fr));}
.calendar-review-table{min-width:900px}
.calendar-empty{padding:24px;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}
.admin-calendar-btn{padding:7px 10px;white-space:nowrap}
.activation-warning{margin-top:5px;color:#b45309;max-width:120px;white-space:normal}
.table-wrap table.admin-properties{min-width:2150px}
@media(max-width:760px){.calendar-stats{grid-template-columns:repeat(2,1fr)}}

.calendar-controls{display:flex;align-items:center;gap:10px}
.calendar-toolbar{display:flex;gap:20px;align-items:end;flex-wrap:wrap;margin:14px 0}
.calendar-toolbar>label{min-width:280px}
.calendar-mode{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#f8fafc}
.calendar-mode label{display:flex;flex-direction:row;align-items:center;gap:6px;margin:0}
.calendar-legend{display:flex;gap:16px;flex-wrap:wrap;margin:12px 0 14px;font-size:.88rem}
.legend-dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:5px;border:1px solid #94a3b8}
.legend-dot.available{background:#bbf7d0}.legend-dot.occupied{background:#fecaca}.legend-dot.pending{background:#fde68a}.legend-dot.empty{background:#f8fafc}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.calendar-weekdays{margin-bottom:6px;text-align:center;font-size:.82rem;font-weight:800;color:var(--muted)}
.calendar-day{min-height:96px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:8px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;cursor:pointer;color:inherit}
.calendar-day:hover{outline:2px solid #93c5fd}
.calendar-day.available{background:#ecfdf5;border-color:#86efac}
.calendar-day.occupied{background:#fef2f2;border-color:#fca5a5}
.calendar-day.pending{background:#fffbeb;border-color:#fcd34d}
.calendar-day.stale{background:#f1f5f9}
.calendar-day.blank{visibility:hidden}
.calendar-day strong{font-size:1rem}.calendar-day small{font-weight:800}.calendar-day span{font-size:.7rem;color:var(--muted)}
@media(max-width:760px){
  .calendar-weekdays,.calendar-grid{gap:3px}
  .calendar-day{min-height:72px;padding:5px}
  .calendar-day span{display:none}
}

.calendar-day.saving{opacity:.72;cursor:wait;position:relative}
.calendar-day.saving::after{
  content:"";
  position:absolute;
  right:7px;
  top:7px;
  width:12px;height:12px;
  border:2px solid rgba(15,23,42,.25);
  border-top-color:rgba(15,23,42,.8);
  border-radius:50%;
  animation:calendar-spin .65s linear infinite
}
.calendar-day.save-error{outline:3px solid #ef4444!important}
@keyframes calendar-spin{to{transform:rotate(360deg)}}
.calendar-controls button{min-width:44px}

.calendar-controls select{
  min-width:105px;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  font-weight:700;
}
.calendar-controls #availabilityCalendarYearSelect{min-width:86px}
.calendar-month-label{display:none}
@media(max-width:760px){
  .calendar-controls{width:100%;justify-content:center;flex-wrap:wrap}
  .calendar-controls select{min-width:115px}
}

.admin-calendar-toolbar{display:flex;align-items:center;justify-content:center;gap:14px;margin:10px 0 14px}
.admin-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.admin-cal-day{min-height:88px;border:1px solid var(--line);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:4px;background:#fff}
.admin-cal-day.available{background:#ecfdf5;border-color:#86efac}.admin-cal-day.occupied{background:#fef2f2;border-color:#fca5a5}.admin-cal-day.pending{background:#fffbeb;border-color:#fcd34d}.admin-cal-day.stale{background:#f1f5f9}.admin-cal-day.blank{visibility:hidden}
.admin-cal-day span{font-size:.72rem;color:var(--muted)}.admin-cal-day small{font-weight:700}
button.danger{background:#dc2626;color:#fff;border:0}button.danger:hover{background:#b91c1c}

.table-wrap table.admin-properties{min-width:2450px}

.admin-calendar-dialog{width:min(980px,94vw);max-height:90vh;border:0;border-radius:18px;padding:22px;overflow:auto}
.admin-calendar-dialog::backdrop{background:rgba(15,23,42,.55)}
.admin-calendar-dialog .dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.admin-calendar-dialog .stats{margin-bottom:16px}

.guest-range-row{display:grid;grid-template-columns:1fr 1fr 1.4fr auto;gap:10px;align-items:end;margin:10px 0;padding:10px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}@media(max-width:760px){.guest-range-row{grid-template-columns:1fr 1fr}.guest-range-row button{grid-column:1/-1}}

/* v6.5.6 - cargador simple de fotos */
.photo-uploader{border:1px solid var(--line);border-radius:12px;padding:14px;background:#f8fafc}.photo-uploader-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.photo-add-btn{display:inline-flex;align-items:center;justify-content:center;background:#2563eb;color:#fff;font-weight:800;padding:10px 14px;border-radius:10px;cursor:pointer;white-space:nowrap}.photo-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-top:12px}.photo-card{position:relative;border:2px solid transparent;border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 1px 4px #0001}.photo-card.cover{border-color:#f59e0b}.photo-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.photo-card-actions{display:flex;gap:4px;padding:6px}.photo-card-actions button{font-size:.72rem;padding:6px;flex:1}.photo-advanced{margin-top:12px}.photo-advanced summary{cursor:pointer;font-weight:700;color:var(--muted)}@media(max-width:600px){.photo-uploader-head{align-items:flex-start;flex-direction:column}.photo-add-btn{width:100%}}
