:root{
  --bg:#f5f7fb;
  --card:#ffffff;
  --text:#0f172a;
  --muted:#64748b;
  --line:#e5e7eb;
  --orange:#f28c00;
  --orange2:#d97706;
  --green:#16a34a;
  --yellow:#d97706;
  --red:#dc2626;
  --dark:#0f172a;
  --dark2:#111827;
  --shadow:0 14px 38px rgba(15,23,42,.07);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;
  background:linear-gradient(180deg,#f8fafc 0%,var(--bg) 100%);
  color:var(--text);
}
a,a:visited,a:hover,a:active{color:inherit;text-decoration:none!important}

/* =========================
   APP LAYOUT
========================= */
.app-shell{min-height:100vh}
.sidebar{
  width:250px;
  height:100vh;
  position:fixed;
  inset:0 auto 0 0;
  background:linear-gradient(180deg,#0f172a 0%,#111827 100%);
  color:#fff;
  padding:22px 18px;
  box-shadow:12px 0 34px rgba(15,23,42,.12);
  z-index:50;
}
.main{
  margin-left:250px;
  padding:28px;
  width:calc(100% - 250px);
}

/* =========================
   SIDEBAR
========================= */
.brand{
  display:flex;
  align-items:center;
  gap:11px;
  font-size:21px;
  font-weight:900;
  letter-spacing:-.04em;
  margin-bottom:28px;
}
.brand.center{justify-content:center;margin-bottom:18px}
.brand-mark{
  display:inline-flex;
  width:38px;
  height:38px;
  border-radius:14px;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,var(--orange),var(--orange2));
  box-shadow:0 12px 26px rgba(242,140,0,.28);
  color:#fff;
  font-weight:900;
  font-size:19px;
}
.sidebar-nav{display:grid;gap:7px}
.sidebar-nav a{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 13px;
  border-radius:14px;
  color:#cbd5e1;
  font-weight:800;
  font-size:14px;
  transition:.18s ease;
}
.sidebar-nav a:hover{background:rgba(255,255,255,.08);color:#fff;transform:translateX(2px)}
.sidebar-nav a.active{
  background:linear-gradient(135deg,var(--orange),var(--orange2));
  color:#fff;
  box-shadow:0 12px 28px rgba(217,119,6,.28);
}
.sidebar-nav .logout-link{margin-top:10px;color:#fecaca}

/* =========================
   TOPBAR / HERO
========================= */
.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:22px;
  background:linear-gradient(135deg,var(--orange),var(--orange2));
  color:#fff;
  padding:24px 26px;
  border-radius:26px;
  box-shadow:0 18px 44px rgba(217,119,6,.24);
}
.topbar h1{margin:0 0 6px;font-size:32px;letter-spacing:-.045em;line-height:1.05}
.topbar .muted{color:rgba(255,255,255,.92);font-weight:600}
.muted{color:var(--muted);margin:0;line-height:1.45}

/* =========================
   BUTTONS
========================= */
.btn{
  border:1px solid var(--line);
  background:#fff;
  color:var(--text);
  border-radius:14px;
  padding:11px 16px;
  font-weight:900;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  transition:.18s ease;
  box-shadow:0 8px 20px rgba(15,23,42,.05);
}
.btn:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(15,23,42,.08)}
.btn.primary{border:0;background:#fff;color:#b45309;box-shadow:0 14px 32px rgba(120,53,15,.12)}
.btn.small{padding:8px 11px;border-radius:10px;font-size:13px}

/* =========================
   CARDS / GRIDS
========================= */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.stat-card,.card{
  background:var(--card);
  border:1px solid rgba(226,232,240,.9);
  border-radius:24px;
  padding:20px;
  box-shadow:var(--shadow);
}
.stat-card{display:block;transition:.18s ease;position:relative;overflow:hidden}
.stat-card:hover{transform:translateY(-2px);box-shadow:0 18px 45px rgba(15,23,42,.10)}
.stat-card span{color:var(--muted);font-weight:900;font-size:14px}
.stat-card strong{display:block;font-size:34px;margin-top:8px;letter-spacing:-.04em}
.stat-card small{display:block;color:var(--muted);font-weight:700;margin-top:6px;line-height:1.35}
.compact-stats .stat-card strong{font-size:25px}
.card h2{margin:0 0 14px;font-size:22px;letter-spacing:-.03em}

.icon-card:after{content:"";position:absolute;right:-34px;top:-34px;width:120px;height:120px;border-radius:999px;background:rgba(255,255,255,.55)}
.green-card{background:linear-gradient(135deg,#ecfdf5,#fff);border-color:#bbf7d0}
.red-card{background:linear-gradient(135deg,#fff1f2,#fff);border-color:#fecdd3}
.money-card{background:linear-gradient(135deg,#fffbeb,#fff);border-color:#fde68a}
.calendar-card-mini{background:linear-gradient(135deg,#eff6ff,#fff);border-color:#bfdbfe}

/* =========================
   ROWS / TABLES
========================= */
.money-line,.list-row,.booking-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:13px 0;
  border-top:1px solid var(--line);
}
.money-line:first-of-type,.list-row:first-of-type,.booking-row:first-of-type{border-top:0}
.list-row strong,.booking-row strong{display:block;line-height:1.25}
.list-row small,.booking-row small{display:block;color:var(--muted);margin-top:4px;line-height:1.35}
.booking-money{text-align:right;display:grid;gap:6px;justify-items:end}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:12px;border-bottom:1px solid var(--line);text-align:left}

/* =========================
   BADGES / ALERTS
========================= */
.badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap}
.badge.paid{background:#dcfce7;color:#166534}
.badge.partial,.badge.warn{background:#fef3c7;color:#92400e}
.badge.unpaid{background:#fee2e2;color:#991b1b}
.alert{padding:13px 15px;border-radius:16px;margin-bottom:16px;font-weight:800}
.alert.error{background:#fee2e2;color:#991b1b}.alert.success{background:#dcfce7;color:#166534}
.source-chip{display:inline-flex;align-items:center;gap:6px}

/* =========================
   FORMS
========================= */
.form{display:grid;gap:14px}.form-grid{grid-template-columns:repeat(2,1fr)}
label{display:grid;gap:6px;font-weight:800;color:#1f2937}
input,select,textarea{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:#fff;font:inherit;transition:.18s ease}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 4px rgba(242,140,0,.12)}
textarea{min-height:90px}.span-2{grid-column:span 2}.filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap}

/* =========================
   AUTH
========================= */
.auth-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#fff7ed,var(--bg) 45%)}
.auth-card{width:min(430px,92vw);background:#fff;border:1px solid var(--line);border-radius:28px;padding:26px;box-shadow:0 25px 70px rgba(15,23,42,.12)}
.auth-card h1{text-align:center;margin:0 0 18px}.center-text{text-align:center;margin-top:14px}

/* =========================
   SIMPLE CALENDAR TABLE
========================= */
.calendar-scroll{overflow:auto;border-radius:20px}
.calendar-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;background:#fff}
.calendar-table th,.calendar-table td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:10px;min-width:72px;text-align:center;font-size:13px}
.calendar-table th:first-child,.calendar-table td:first-child{position:sticky;left:0;background:#fff;z-index:2;text-align:left;min-width:180px}
.day-cell.booked{background:#fff7ed;color:#9a3412;font-weight:900;border-radius:8px}.prop-cell{font-weight:900}

/* =========================
   FULLCALENDAR THEME
========================= */
.calendar-pro-card{padding:16px}.calendar-legend{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:14px;font-weight:800}.dot{display:inline-block;width:10px;height:10px;border-radius:999px;margin-right:6px}.paid-dot{background:#16a34a}.partial-dot{background:#d97706}.unpaid-dot{background:#dc2626}
.fc{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif}.fc .fc-toolbar-title{font-size:22px;font-weight:900;letter-spacing:-.03em}.fc .fc-button{border:0!important;border-radius:12px!important;background:#111827!important;font-weight:800!important;padding:8px 11px!important}.fc .fc-button-primary:not(:disabled).fc-button-active{background:linear-gradient(135deg,var(--orange),var(--orange2))!important}.fc a{text-decoration:none!important}.fc .fc-daygrid-day-number{font-weight:800;color:#111827}.fc .fc-col-header-cell-cushion{color:#374151;font-weight:900}.fc-theme-standard td,.fc-theme-standard th,.fc-theme-standard .fc-scrollgrid{border-color:#e5e7eb!important}.fc-event{border:0!important;border-radius:10px!important;padding:3px 6px!important;font-weight:800!important;box-shadow:0 4px 13px rgba(15,23,42,.12)}.fc-event.sf-paid{background:#dcfce7!important;color:#166534!important}.fc-event.sf-partial{background:#fef3c7!important;color:#92400e!important}.fc-event.sf-unpaid{background:#fee2e2!important;color:#991b1b!important}.fc-event-title{white-space:normal}.fc-list-event-title,.fc-list-event-time{font-weight:800}
.event-tooltip{position:absolute;z-index:9999;background:#111827;color:white;border-radius:16px;padding:14px 15px;min-width:260px;max-width:330px;box-shadow:0 24px 60px rgba(15,23,42,.28);font-size:13px;line-height:1.45}.event-tooltip .tt-title{font-weight:900;font-size:15px;margin-bottom:4px}.event-tooltip .tt-main{font-size:16px;font-weight:900;color:#fff7ed}.event-tooltip .tt-notes{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.16);color:#e5e7eb}

/* =========================
   MOBILE
========================= */
@media(max-width:900px){
  .sidebar{position:relative;width:auto;height:auto;padding:16px;border-radius:0 0 24px 24px}
  .brand{margin-bottom:14px}
  .sidebar-nav{display:flex;overflow-x:auto;gap:8px;padding-bottom:2px}
  .sidebar-nav a{white-space:nowrap;min-width:max-content;padding:10px 12px}
  .sidebar-nav a:hover{transform:none}
  .main{margin-left:0;width:100%;padding:18px}
  .topbar{display:grid;padding:22px;border-radius:22px}.topbar .btn{width:100%}
  .smart-stats,.compact-stats{grid-template-columns:repeat(2,1fr)}
  .grid-2,.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}
  .booking-row,.list-row{display:grid;grid-template-columns:1fr;align-items:flex-start}.booking-money{text-align:left;justify-items:start}
  .fc .fc-toolbar{display:grid;grid-template-columns:1fr;gap:10px}.fc .fc-toolbar-title{text-align:center;font-size:20px}.fc .fc-button{font-size:13px!important;padding:7px 9px!important}.calendar-pro-card{padding:12px}
}
@media(max-width:520px){
  .main{padding:14px}.topbar h1{font-size:26px}.topbar{padding:18px}.smart-stats,.compact-stats{grid-template-columns:1fr}.stat-card strong{font-size:30px}.compact-stats .stat-card strong{font-size:24px}.card,.stat-card{border-radius:20px;padding:16px}.calendar-legend{font-size:13px}.fc .fc-header-toolbar{margin-bottom:12px!important}.fc .fc-toolbar-chunk{display:flex;justify-content:center;flex-wrap:wrap;gap:6px}.fc .fc-list-event-title a{white-space:normal}
}

/* =========================
   V2.2 PREMIUM POLISH PACK
========================= */
body{background:radial-gradient(circle at top left,rgba(242,140,0,.08),transparent 26%),linear-gradient(180deg,#f8fafc 0%,#eef3f8 100%)}
.mobile-topbar{display:none}
.sidebar{overflow-y:auto;scrollbar-width:none}.sidebar::-webkit-scrollbar{display:none}
.brand{position:relative;padding:4px 4px 18px;margin-bottom:18px;border-bottom:1px solid rgba(255,255,255,.08)}
.desktop-theme{position:absolute;right:0;top:2px}
.theme-toggle,.mobile-menu-btn{border:0;background:rgba(255,255,255,.10);color:#fff;border-radius:14px;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-weight:900;transition:.18s ease}
.theme-toggle:hover,.mobile-menu-btn:hover{transform:translateY(-1px);background:rgba(255,255,255,.16)}
.sidebar-nav a{position:relative;overflow:hidden}.sidebar-nav a span{width:22px;text-align:center;filter:saturate(1.1)}
.sidebar-nav a:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:999px;background:transparent;transition:.18s ease}.sidebar-nav a.active:before{background:#fff}.sidebar-nav a.active{transform:translateX(2px)}
.main{animation:sfFadeUp .34s ease both}.card,.stat-card,.topbar{animation:sfFadeUp .38s ease both}.stat-card:nth-child(2){animation-delay:.03s}.stat-card:nth-child(3){animation-delay:.06s}.stat-card:nth-child(4){animation-delay:.09s}
@keyframes sfFadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.topbar{position:sticky;top:18px;z-index:20;backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.28)}.topbar .btn.primary{background:rgba(255,255,255,.92);color:#9a3412;border:1px solid rgba(255,255,255,.6)}
.stat-card,.card{backdrop-filter:blur(10px);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.card:hover,.stat-card:hover{border-color:rgba(242,140,0,.24)}.stat-card strong{color:#020617}.green-card,.red-card,.money-card,.calendar-card-mini{box-shadow:0 18px 46px rgba(15,23,42,.07)}
.booking-row,.list-row{border-radius:16px;padding:13px 12px;margin-inline:-4px;transition:.16s ease}.booking-row:hover,.list-row:hover{background:#f8fafc;transform:translateX(2px)}.badge{box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}.btn{will-change:transform}.btn:active{transform:translateY(0) scale(.98)}input,select,textarea{box-shadow:0 4px 14px rgba(15,23,42,.03)}
.calendar-pro-card{border-radius:28px;overflow:hidden}.calendar-legend{background:#f8fafc;border:1px solid #e5e7eb;border-radius:18px;padding:12px 14px}.fc .fc-toolbar{gap:12px}.fc .fc-toolbar-title{color:#0f172a}.fc .fc-button{box-shadow:0 8px 18px rgba(15,23,42,.10)!important;transition:.16s ease!important}.fc .fc-button:hover{transform:translateY(-1px)}.fc .fc-daygrid-day{transition:.16s ease}.fc .fc-daygrid-day:hover{background:#fff7ed}.fc .fc-day-today{background:#fff7ed!important}.fc .fc-daygrid-day-frame{min-height:96px}.fc-event{cursor:grab!important;transition:transform .16s ease,box-shadow .16s ease!important}.fc-event:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 12px 26px rgba(15,23,42,.16)!important}.fc-event:active{cursor:grabbing!important}
.sf-event-inner{display:flex;align-items:center;gap:6px;line-height:1.2}.sf-event-icon{font-size:13px}.sf-event-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sf-event-pay{margin-left:auto;width:8px;height:8px;border-radius:999px;background:currentColor;opacity:.65}.event-tooltip{pointer-events:none;animation:tooltipIn .12s ease both}.event-tooltip:before{content:"";position:absolute;left:18px;top:-6px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #111827}@keyframes tooltipIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
body.dark-mode{--bg:#0b1220;--card:#111827;--text:#e5e7eb;--muted:#94a3b8;--line:#273449;background:radial-gradient(circle at top left,rgba(242,140,0,.12),transparent 28%),linear-gradient(180deg,#020617 0%,#0b1220 100%);color:var(--text)}body.dark-mode .card,body.dark-mode .stat-card,body.dark-mode .auth-card{background:#111827;border-color:#263244;box-shadow:0 18px 46px rgba(0,0,0,.24)}body.dark-mode .stat-card strong,body.dark-mode .fc .fc-toolbar-title,body.dark-mode .fc .fc-daygrid-day-number{color:#f8fafc}body.dark-mode .green-card{background:linear-gradient(135deg,rgba(22,163,74,.15),#111827);border-color:rgba(22,163,74,.35)}body.dark-mode .red-card{background:linear-gradient(135deg,rgba(220,38,38,.16),#111827);border-color:rgba(220,38,38,.35)}body.dark-mode .money-card{background:linear-gradient(135deg,rgba(217,119,6,.18),#111827);border-color:rgba(217,119,6,.35)}body.dark-mode .calendar-card-mini{background:linear-gradient(135deg,rgba(59,130,246,.16),#111827);border-color:rgba(59,130,246,.35)}body.dark-mode input,body.dark-mode select,body.dark-mode textarea{background:#0b1220;border-color:#263244;color:#f8fafc}body.dark-mode .booking-row:hover,body.dark-mode .list-row:hover{background:#0b1220}body.dark-mode .calendar-legend{background:#0b1220;border-color:#263244}body.dark-mode .fc-theme-standard td,body.dark-mode .fc-theme-standard th,body.dark-mode .fc-theme-standard .fc-scrollgrid{border-color:#263244!important}body.dark-mode .fc .fc-daygrid-day:hover,body.dark-mode .fc .fc-day-today{background:rgba(242,140,0,.12)!important}body.dark-mode .fc .fc-col-header-cell-cushion{color:#cbd5e1}body.dark-mode .calendar-table,body.dark-mode .calendar-table th:first-child,body.dark-mode .calendar-table td:first-child{background:#111827}
@media(max-width:900px){body{padding-top:66px}.mobile-topbar{display:flex;position:fixed;top:0;left:0;right:0;height:66px;z-index:80;align-items:center;justify-content:space-between;padding:10px 14px;background:rgba(15,23,42,.94);color:#fff;backdrop-filter:blur(16px);box-shadow:0 10px 28px rgba(15,23,42,.14)}.mobile-brand{display:flex;align-items:center;gap:10px;font-weight:900}.brand-mark.mini{width:34px;height:34px;border-radius:12px;font-size:16px}.sidebar{position:fixed!important;inset:66px auto 0 0!important;width:min(300px,86vw)!important;height:calc(100vh - 66px)!important;border-radius:0 24px 0 0!important;transform:translateX(-106%);transition:transform .22s ease;z-index:75}.sidebar .desktop-theme{display:none}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-backdrop{display:none;position:fixed;inset:66px 0 0 0;background:rgba(15,23,42,.48);z-index:70;backdrop-filter:blur(2px)}.sidebar-open .sidebar-backdrop{display:block}.sidebar-nav{display:grid!important;overflow:visible!important}.main{padding:16px!important}.topbar{position:relative;top:auto;border-radius:24px}.fc .fc-daygrid-day-frame{min-height:74px}.fc-event:hover{transform:none}.event-tooltip{display:none!important}}

/* =========================
   V2.3 BOOKING MANAGEMENT
========================= */
.topbar-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.row-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin-top:3px}
.row-actions form{margin:0;display:inline-flex}.btn.danger{background:#fff1f2;color:#991b1b;border-color:#fecdd3}.btn.danger:hover{background:#ffe4e6}
.note-preview{color:#475569!important;margin-top:7px!important;background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:7px 9px;width:max-content;max-width:100%}
.form-actions{display:flex;gap:10px;flex-wrap:wrap}.brand-logo{width:155px;max-width:100%;height:auto;display:block}.brand-logo-wrap{align-items:center}.login-logo{width:220px;max-width:100%;height:auto;display:block;margin:0 auto 20px auto}
body.dark-mode .note-preview{background:#0b1220;border-color:#263244;color:#cbd5e1!important}
@media(max-width:900px){.topbar-actions{justify-content:stretch}.topbar-actions .btn{width:100%}.row-actions{justify-content:flex-start}.brand-logo{width:135px}}

/* =========================
   V2.4 SMART SAAS PACK
========================= */
.topbar-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn.ghost{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.35)}.btn.small{padding:8px 11px;font-size:13px;border-radius:12px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.checkin-dot{background:#22c55e}.checkout-dot{background:#ef4444}
.fc-event.sf-checkin-today{outline:2px solid #22c55e!important;box-shadow:0 0 0 4px rgba(34,197,94,.16),0 12px 26px rgba(15,23,42,.16)!important}.fc-event.sf-checkout-today{outline:2px solid #ef4444!important;box-shadow:0 0 0 4px rgba(239,68,68,.14),0 12px 26px rgba(15,23,42,.16)!important}.fc .fc-day-today .fc-daygrid-day-number{background:linear-gradient(135deg,var(--orange),var(--orange2));color:#fff;border-radius:999px;min-width:28px;text-align:center;padding:3px 7px}.gaps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.gap-pill,.gap-row{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:18px;padding:13px 14px;display:grid;gap:4px}.gap-pill strong,.gap-row strong{font-size:16px}.gap-pill span{font-weight:900;color:#111827}.gap-pill small,.gap-row small{color:#92400e}.pricing-tip{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;border-radius:18px;padding:14px;font-weight:800;margin:12px 0}.pricing-card h3{margin:14px 0 8px}.ical-property-box{border:1px solid var(--line);border-radius:20px;padding:16px;background:#f8fafc;display:grid;gap:12px}.ical-property-box h3{margin:0}.fab{position:fixed;right:22px;bottom:22px;width:58px;height:58px;border-radius:999px;background:linear-gradient(135deg,var(--orange),var(--orange2));color:#fff;display:none;align-items:center;justify-content:center;font-size:30px;font-weight:900;box-shadow:0 18px 40px rgba(217,119,6,.35);z-index:80;text-decoration:none!important}.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:18px}.modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.52);backdrop-filter:blur(6px)}.modal-panel{position:relative;width:min(620px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:28px;padding:22px;box-shadow:0 35px 90px rgba(0,0,0,.32);animation:modalPop .16s ease both}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.modal-close{border:0;background:#f1f5f9;border-radius:999px;width:38px;height:38px;font-size:24px;cursor:pointer}.modal-open{overflow:hidden}@keyframes modalPop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:900px){.topbar{top:0}.topbar-actions{width:100%}.topbar-actions .btn{flex:1;text-align:center}.fab{display:flex}.booking-row,.list-row{min-height:54px}.fc .fc-event{min-height:34px;padding:7px!important}.fc .fc-list-event{min-height:50px}.modal-panel{border-radius:22px;padding:18px}.modal .form-grid{grid-template-columns:1fr}.modal .span-2{grid-column:auto}}
@media(max-width:520px){.btn{min-height:46px;display:inline-flex;align-items:center;justify-content:center}.sidebar-nav a{min-height:44px}.fc .fc-toolbar-title{font-size:18px}.fc .fc-button{min-height:40px}.gaps-grid{grid-template-columns:1fr}.fab{right:16px;bottom:16px}}

/* V3 additions */
.inline-check{display:flex!important;align-items:center;gap:8px;margin:8px 0 14px;color:var(--muted,#64748b);font-size:13px}.inline-check input{width:auto!important;margin:0}.code-line{display:block;background:#0f172a;color:#fff;padding:14px 16px;border-radius:14px;overflow:auto;font-size:13px}.ical-property-box{border:1px solid rgba(148,163,184,.25);border-radius:18px;padding:18px;margin:16px 0;background:rgba(255,255,255,.65)}.ical-property-box h3{margin:0 0 12px}.auth-card .login-logo{max-width:220px;margin:0 auto 20px;display:block}.brand-logo{max-width:150px;height:auto;display:block}.payment-method-pill{background:#eef2ff;color:#3730a3;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.dark .code-line{background:#020617}.dark .ical-property-box{background:rgba(15,23,42,.72);border-color:rgba(148,163,184,.18)}

/* V3.1 Admin */
.admin-body{background:#f6f7fb;color:#0f172a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.admin-shell{display:flex;min-height:100vh}.admin-sidebar{width:250px;background:#0f172a;color:#fff;padding:22px 16px;position:fixed;left:0;top:0;bottom:0;overflow:auto}.admin-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.admin-brand img{width:120px;max-height:54px;object-fit:contain}.admin-sidebar nav{display:flex;flex-direction:column;gap:8px}.admin-sidebar nav a{color:#cbd5e1;text-decoration:none;padding:11px 12px;border-radius:12px;font-weight:700;font-size:14px}.admin-sidebar nav a:hover,.admin-sidebar nav a.active{background:linear-gradient(135deg,#f28c00,#d97706);color:#fff}.admin-main{margin-left:250px;padding:28px;width:100%}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:20px}.admin-card,.admin-panel{background:#fff;border:1px solid rgba(15,23,42,.06);border-radius:18px;padding:18px;box-shadow:0 12px 30px rgba(15,23,42,.06)}.admin-card span{display:block;color:#64748b;font-size:13px;margin-bottom:8px}.admin-card strong{font-size:26px}.admin-panel{margin-bottom:18px;overflow:auto}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th{text-align:left;color:#64748b;font-size:12px;text-transform:uppercase;letter-spacing:.04em;background:#f8fafc}.admin-table th,.admin-table td{padding:12px;border-bottom:1px solid #e5e7eb;vertical-align:middle}.admin-table tr:hover td{background:#fff7ed}.admin-table input,.admin-table select{min-width:110px;padding:8px 10px;border:1px solid #e5e7eb;border-radius:10px}.btn.small{padding:8px 12px;font-size:13px}.alert.success{background:#dcfce7;color:#166534;border-radius:12px;padding:12px;margin:12px 0}.switch{display:flex;align-items:center;gap:6px;white-space:nowrap}
@media(max-width:768px){.admin-sidebar{position:relative;width:100%;height:auto}.admin-shell{display:block}.admin-main{margin-left:0;padding:16px}}

/* =========================
   V3.2 APP SIDEBAR LOGO FIX
========================= */
.brand-logo-wrap{display:flex!important;justify-content:center!important;align-items:center!important;min-height:auto!important;padding:0 0 18px!important;margin-bottom:18px!important;overflow:visible!important}
.brand-logo-wrap .brand-logo{width:168px!important;max-height:118px!important;object-fit:contain!important;margin:0 auto!important}.brand-name-fallback{display:none!important}.desktop-theme{top:8px!important;right:2px!important;width:38px!important;height:38px!important;z-index:4}

/* =========================
   V3.2 STRIPE-STYLE ADMIN
========================= */
.admin-body{margin:0;background:radial-gradient(circle at 10% 0%,rgba(242,140,0,.08),transparent 28%),#f4f7fb!important;color:#0f172a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif}.admin-shell{display:flex;min-height:100vh}.admin-stripe-sidebar{width:268px!important;background:linear-gradient(180deg,#0b1220 0%,#111827 100%)!important;color:#fff;padding:22px 16px!important;position:fixed!important;left:0;top:0;bottom:0;overflow:auto;box-shadow:16px 0 45px rgba(15,23,42,.18)}.admin-brand{display:flex!important;align-items:center!important;gap:12px!important;padding:0 4px 20px!important;margin-bottom:18px!important;border-bottom:1px solid rgba(255,255,255,.10)}.admin-brand img{width:92px!important;max-height:70px!important;object-fit:contain!important;display:block!important}.admin-brand strong{display:block;font-size:20px;letter-spacing:-.04em;color:#fff}.admin-brand small{display:block;font-size:12px;color:#94a3b8;font-weight:800;margin-top:2px}.admin-sidebar nav{display:grid!important;gap:8px!important}.admin-sidebar nav a{display:flex!important;align-items:center!important;gap:10px!important;color:#cbd5e1!important;text-decoration:none!important;padding:12px 13px!important;border-radius:14px!important;font-weight:850!important;font-size:14px!important;transition:.18s ease!important}.admin-sidebar nav a span{width:22px;text-align:center}.admin-sidebar nav a:hover{background:rgba(255,255,255,.08)!important;color:#fff!important;transform:translateX(2px)}.admin-sidebar nav a.active{background:linear-gradient(135deg,#f28c00,#d97706)!important;color:#fff!important;box-shadow:0 14px 30px rgba(217,119,6,.24)!important}.admin-main{margin-left:268px!important;padding:30px!important;width:calc(100% - 268px)!important;max-width:none!important}.admin-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:24px;background:linear-gradient(135deg,#fff 0%,#fff7ed 100%);border:1px solid rgba(226,232,240,.95);border-radius:28px;padding:24px;box-shadow:0 18px 48px rgba(15,23,42,.07)}.admin-kicker{margin:0 0 6px;color:#d97706;font-weight:950;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.admin-page-head h1{margin:0;font-size:34px;letter-spacing:-.055em;line-height:1.05}.admin-head-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.admin-btn{border:1px solid #e5e7eb;background:#fff;color:#0f172a;border-radius:14px;padding:11px 15px;font-weight:950;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;text-decoration:none!important;box-shadow:0 8px 22px rgba(15,23,42,.05);transition:.16s ease}.admin-btn:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(15,23,42,.08)}.admin-btn.primary{border:0;background:linear-gradient(135deg,#f28c00,#d97706);color:#fff}.admin-btn.success{background:#dcfce7;color:#166534;border-color:#bbf7d0}.admin-btn.danger{background:#fee2e2;color:#991b1b;border-color:#fecaca}.admin-btn.small{padding:8px 10px;border-radius:11px;font-size:12px}.admin-stats.pro{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));gap:16px;margin-bottom:18px}.admin-card,.admin-panel{background:rgba(255,255,255,.88)!important;border:1px solid rgba(226,232,240,.92)!important;border-radius:24px!important;padding:20px!important;box-shadow:0 18px 48px rgba(15,23,42,.07)!important;backdrop-filter:blur(12px)}.admin-card.metric{position:relative;overflow:hidden;min-height:138px;transition:.18s ease}.admin-card.metric:hover{transform:translateY(-3px)}.admin-card.metric:after{content:"";position:absolute;right:-32px;top:-32px;width:112px;height:112px;border-radius:999px;background:rgba(242,140,0,.10)}.admin-card.metric.money{background:linear-gradient(135deg,#fff7ed,#fff)!important;border-color:#fed7aa!important}.admin-card span{display:block;color:#64748b;font-size:13px;font-weight:900;margin-bottom:10px}.admin-card strong{font-size:32px;letter-spacing:-.05em;display:block;color:#020617}.admin-card small{display:block;color:#64748b;font-weight:800;margin-top:8px}.admin-grid-2{display:grid;grid-template-columns:1.35fr .85fr;gap:18px;margin-bottom:18px}.admin-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.admin-section-title h2{margin:0;font-size:20px;letter-spacing:-.035em}.admin-section-title span,.admin-section-title a{font-size:13px;color:#64748b;font-weight:900;text-decoration:none!important}.bar-chart{height:230px;display:flex;align-items:end;gap:14px;padding:18px 8px 4px;border-radius:20px;background:linear-gradient(180deg,#f8fafc,#fff)}.bar-item{flex:1;display:grid;justify-items:center;align-items:end;gap:7px;min-width:48px}.bar{width:100%;max-width:54px;border-radius:16px 16px 6px 6px;background:linear-gradient(180deg,#f28c00,#d97706);box-shadow:0 12px 28px rgba(217,119,6,.24)}.bar-value{font-size:11px;font-weight:900;color:#64748b;white-space:nowrap}.bar-label{font-size:12px;font-weight:950;color:#0f172a}.health-list,.plan-list{display:grid;gap:10px}.health-list>div,.plan-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-radius:16px;background:#f8fafc;border:1px solid #e5e7eb}.health-list strong,.plan-list span{font-weight:950}.health,.status-pill{padding:6px 10px;border-radius:999px;font-size:12px;font-weight:950}.health.ok,.status-pill.ok{background:#dcfce7;color:#166534}.health.bad,.status-pill.bad{background:#fee2e2;color:#991b1b}.plan-list strong{font-size:22px}.admin-mini-list{display:grid;gap:10px}.admin-mini-list>div{padding:12px;border:1px solid #e5e7eb;background:#f8fafc;border-radius:16px}.admin-mini-list strong{display:block}.admin-mini-list span{display:block;color:#475569;margin-top:3px}.admin-mini-list small{display:block;color:#94a3b8;margin-top:6px}.admin-table.premium{width:100%;border-collapse:separate!important;border-spacing:0 10px!important;font-size:14px}.admin-table.premium th{background:transparent!important;color:#64748b;text-transform:uppercase;font-size:11px;letter-spacing:.08em;padding:0 14px 4px!important;border:0!important}.admin-table.premium td{background:#fff;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:14px!important;vertical-align:middle}.admin-table.premium td:first-child{border-left:1px solid #e5e7eb;border-radius:16px 0 0 16px}.admin-table.premium td:last-child{border-right:1px solid #e5e7eb;border-radius:0 16px 16px 0}.admin-table.premium tr:hover td{background:#fff7ed!important}.plan-badge,.status-pill{display:inline-flex;align-items:center;justify-content:center;text-transform:uppercase}.plan-badge{padding:6px 10px;border-radius:999px;font-size:12px;font-weight:950}.plan-badge.free{background:#f1f5f9;color:#334155}.plan-badge.pro{background:#fef3c7;color:#92400e}.plan-badge.business{background:#eef2ff;color:#3730a3}.admin-actions{display:flex;gap:6px;flex-wrap:wrap}.admin-table select{min-width:112px;padding:9px 10px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}.switch{display:flex;align-items:center;gap:7px;font-weight:900}.switch input{width:auto!important;margin:0!important}
@media(max-width:1100px){.admin-stats.pro{grid-template-columns:repeat(2,1fr)}.admin-grid-2{grid-template-columns:1fr}}
@media(max-width:768px){.admin-stripe-sidebar{position:relative!important;width:100%!important;height:auto!important}.admin-shell{display:block!important}.admin-main{margin-left:0!important;width:100%!important;padding:16px!important}.admin-page-head{display:grid;padding:18px;border-radius:22px}.admin-stats.pro{grid-template-columns:1fr}.admin-table.premium{border-spacing:0!important}.admin-table.premium thead,.admin-table.premium th{display:none}.admin-table.premium tr,.admin-table.premium td{display:block;border:0!important;border-radius:0!important}.admin-table.premium tr{background:#fff;border:1px solid #e5e7eb;border-radius:18px;margin-bottom:12px;overflow:hidden}.admin-actions{margin-top:8px}.bar-chart{overflow:auto;justify-content:flex-start}.bar-item{min-width:66px}}

/* =========================
   V3.3 FEEDBACK LOOP
========================= */
.feedback-hero{background:linear-gradient(135deg,#111827,#0b1220)!important;box-shadow:0 18px 44px rgba(15,23,42,.22)!important}
.feedback-layout{align-items:start}.feedback-card h2,.feedback-tips h2{margin-top:0}.feedback-tip{padding:14px;border:1px solid #e5e7eb;background:#f8fafc;border-radius:16px;margin-bottom:10px}.feedback-tip strong{display:block}.feedback-tip span{display:block;color:#64748b;margin-top:4px;font-weight:700;line-height:1.4}.feedback-message-cell{max-width:420px;line-height:1.45}.feedback-stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important}.sidebar-nav a[href="feedback.php"]{background:rgba(255,255,255,.04)}
@media(max-width:900px){.feedback-layout{grid-template-columns:1fr}}
.admin-stats.pro{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important}

/* =========================
   V3.5 PROPERTY MANAGEMENT
========================= */
.property-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.property-row-main {
    min-width: 0;
}

.property-row-main strong,
.property-row-main small {
    display: block;
}

.property-row-main small {
    margin-top: 4px;
}

.property-row-actions {
    flex: 0 0 auto;
}

.btn.small {
    padding: 8px 12px;
    font-size: 13px;
    border-radius: 12px;
}

.btn.soft {
    background: #f8fafc;
    color: #0f172a;
    border: 1px solid var(--line, #e2e8f0);
}

.btn.soft:hover {
    background: #fff7ed;
    border-color: rgba(242,140,0,.35);
    opacity: 1;
}

.form-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 6px;
}

.property-edit-card {
    max-width: 760px;
}

body.dark-mode .btn.soft {
    background: #0b1220;
    color: #f8fafc;
    border-color: #263244;
}

body.dark-mode .btn.soft:hover {
    background: rgba(242,140,0,.12);
    border-color: rgba(242,140,0,.38);
}

@media (max-width: 640px) {
    .property-row {
        align-items: stretch;
        flex-direction: column;
    }

    .property-row-actions .btn {
        width: 100%;
        text-align: center;
    }
}


/* =========================
   V3.7 CUSTOMERS + DELETE AUTOMATION
========================= */
.customer-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.customer-row-main {
    min-width: 0;
}
.customer-row-main strong,
.customer-row-main small {
    display: block;
}
.customer-row-main small {
    margin-top: 4px;
}
.customer-row-actions {
    flex: 0 0 auto;
}
.customer-edit-card {
    max-width: 760px;
}
.customer-meta-box {
    margin: 10px 0 14px;
    padding: 14px 16px;
    border: 1px solid var(--line, #e2e8f0);
    background: #f8fafc;
    border-radius: 16px;
    display: grid;
    gap: 4px;
}
.customer-meta-box span {
    color: #64748b;
    font-weight: 700;
}
.customer-automation-alert {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border-color: rgba(242,140,0,.28)!important;
    background: linear-gradient(135deg,#fff7ed,#fff)!important;
}
.duplicate-group {
    border: 1px solid var(--line, #e2e8f0);
    border-radius: 20px;
    padding: 16px;
    margin: 14px 0;
    background: #fff;
}
.duplicate-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-bottom: 12px;
}
.duplicate-head strong,
.duplicate-head small {
    display: block;
}
.duplicate-list {
    display: grid;
    gap: 8px;
    margin: 12px 0;
}
.duplicate-item {
    display: flex!important;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
}
.duplicate-item input {
    width: auto!important;
    margin-top: 4px!important;
}
.duplicate-item strong,
.duplicate-item small {
    display: block;
}
.automation-tips {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(220px,1fr));
    gap: 12px;
}
.automation-tips > div {
    padding: 14px;
    border: 1px solid #e5e7eb;
    background: #f8fafc;
    border-radius: 16px;
}
.automation-tips strong,
.automation-tips span {
    display: block;
}
.automation-tips span {
    color: #64748b;
    margin-top: 5px;
    font-weight: 700;
    line-height: 1.45;
}
body.dark-mode .customer-meta-box,
body.dark-mode .duplicate-item,
body.dark-mode .automation-tips > div {
    background: #0b1220;
    border-color: #263244;
}
body.dark-mode .duplicate-group {
    background: #111827;
    border-color: #263244;
}
body.dark-mode .customer-automation-alert {
    background: linear-gradient(135deg,rgba(242,140,0,.13),#111827)!important;
}
@media (max-width: 640px) {
    .customer-row,
    .customer-automation-alert,
    .duplicate-head {
        align-items: stretch;
        flex-direction: column;
    }
    .customer-row-actions .btn,
    .customer-row-actions form,
    .customer-row-actions button {
        width: 100%;
    }
}

/* =========================
   V4 DIRECT BOOKING
========================= */
.public-link-box {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    flex-wrap: wrap;
}
.public-link-box input {
    min-width: 260px;
    flex: 1;
    font-size: 12px;
    background: var(--soft, #f8fafc);
}
.public-link-box.big input {
    min-width: 340px;
}
.public-status {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 700;
}
.public-status.on {
    background: #dcfce7;
    color: #166534;
}
.public-status.off {
    background: #fee2e2;
    color: #991b1b;
}
.checkline {
    display: flex !important;
    align-items: center;
    gap: 10px;
    font-weight: 700;
}
.checkline input {
    width: auto !important;
    margin: 0 !important;
}
.public-booking-body {
    min-height: 100vh;
    background:
      radial-gradient(circle at top left, rgba(242,140,0,.18), transparent 34%),
      linear-gradient(135deg, #f8fafc 0%, #fff7ed 100%);
    color: #0f172a;
}
.public-booking-wrap {
    width: min(980px, calc(100% - 24px));
    margin: 0 auto;
    padding: 34px 0;
}
.public-booking-card {
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 28px;
    box-shadow: 0 24px 80px rgba(15,23,42,.14);
    padding: 30px;
    backdrop-filter: blur(10px);
}
.public-booking-brand {
    display: flex;
    justify-content: center;
    margin-bottom: 20px;
}
.public-booking-brand img {
    max-width: 180px;
    height: auto;
}
.public-property-hero {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 24px;
}
.public-property-hero h1 {
    font-size: clamp(30px, 5vw, 48px);
    letter-spacing: -0.04em;
    margin: 8px 0 10px;
}
.eyebrow {
    display: inline-flex;
    padding: 6px 12px;
    border-radius: 999px;
    background: #fff3e0;
    color: #c2410c;
    font-weight: 800;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.price-pill {
    display: inline-flex;
    margin-top: 14px;
    padding: 10px 14px;
    border-radius: 999px;
    background: #0f172a;
    color: #fff;
    font-weight: 800;
}
.public-booking-form {
    margin-top: 18px;
}
.public-submit {
    width: 100%;
    min-height: 52px;
    font-size: 16px;
    margin-top: 8px;
}
.hp-field {
    position: absolute !important;
    left: -9999px !important;
    opacity: 0 !important;
}
.tiny-note {
    margin-top: 10px;
    text-align: center;
    color: #64748b;
    font-size: 12px;
}
.success-icon {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    margin: 0 auto 18px;
    background: #dcfce7;
    color: #166534;
    font-size: 38px;
    font-weight: 900;
}
.booking-summary-box {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
    margin-top: 20px;
}
.booking-summary-box > div {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    padding: 14px;
}
.booking-summary-box span {
    display: block;
    color: #64748b;
    font-size: 12px;
    margin-bottom: 4px;
}
.booking-summary-box strong {
    font-size: 18px;
}
@media (max-width: 768px) {
    .public-booking-wrap { width: min(100% - 16px, 980px); padding: 12px 0; }
    .public-booking-card { padding: 18px; border-radius: 20px; }
    .public-link-box, .public-link-box.big { flex-direction: column; align-items: stretch; }
    .public-link-box input, .public-link-box.big input { min-width: 0; width: 100%; }
}

/* V4.1 manual payment links + email flow */
.payment-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
.btn.success {
  background: linear-gradient(135deg,#16a34a,#15803d) !important;
  color: #fff !important;
}
.public-payment-box {
  margin-top: 18px;
  padding: 18px;
  border-radius: 18px;
  background: #fff7ed;
  border: 1px solid rgba(242,140,0,.18);
}
.public-payment-box h2 {
  margin-top: 0;
  font-size: 18px;
}
.alert.info {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1d4ed8;
}
.alert.success {
  background: #dcfce7;
  border: 1px solid #86efac;
  color: #166534;
}
@media(max-width:768px){
  .payment-actions .btn{width:100%; justify-content:center; text-align:center;}
}

/* V4.3 Better availability sync on public booking page */
.availability-widget {
  margin: 18px 0;
  padding: 16px;
  border-radius: 18px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}
.availability-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 10px;
}
.availability-head strong { color: #0f172a; }
.availability-head span { color: #64748b; font-size: 12px; text-align: right; }
.availability-message {
  padding: 12px 14px;
  border-radius: 14px;
  font-weight: 700;
  font-size: 14px;
}
.availability-message.neutral { background: #fff; color: #475569; border: 1px solid #e2e8f0; }
.availability-message.ok { background: #dcfce7; color: #166534; border: 1px solid #86efac; }
.availability-message.bad { background: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }
.blocked-ranges { margin-top: 12px; }
.blocked-ranges summary { cursor: pointer; color: #334155; font-weight: 700; font-size: 13px; }
.blocked-ranges-list { margin-top: 10px; display: grid; gap: 8px; font-size: 13px; color: #475569; }
.blocked-ranges-list div {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 10px;
}
.blocked-ranges-list span {
  display: inline-block;
  margin-left: 6px;
  color: #64748b;
  font-size: 12px;
}
.public-submit:disabled {
  opacity: .55;
  cursor: not-allowed;
  filter: grayscale(.2);
}
@media(max-width:768px){
  .availability-head { flex-direction: column; }
  .availability-head span { text-align: left; }
}


/* V4.4 WhatsApp, SMS & confirmation polish */
.btn.whatsapp-btn,
.whatsapp-btn {
  background: linear-gradient(135deg,#22c55e,#16a34a) !important;
  color: #fff !important;
  border: 0 !important;
}
.contact-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 18px 0;
}
.confirmed-wow-box {
  margin-top: 18px;
  padding: 20px;
  border-radius: 22px;
  background: linear-gradient(135deg,#ecfdf5,#ffffff);
  border: 1px solid #bbf7d0;
  box-shadow: 0 14px 34px rgba(22,163,74,.10);
}
.confirmed-wow-box h2 {
  margin: 8px 0 6px;
  font-size: 22px;
  color: #166534;
}
.confirmed-instructions {
  margin-top: 14px;
  padding: 14px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid #dcfce7;
  color: #334155;
  line-height: 1.6;
}
.success-icon.small {
  width: 42px;
  height: 42px;
  font-size: 22px;
  margin: 0;
}
@media(max-width:768px){
  .contact-actions .btn { width:100%; text-align:center; justify-content:center; }
}

/* V4.6 Airbnb-style public property landing + PDF polish */
.airbnb-property-landing {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 24px;
  align-items: stretch;
  margin-bottom: 22px;
}
.property-photo-panel {
  min-height: 340px;
  border-radius: 28px;
  overflow: hidden;
  background: linear-gradient(135deg,#fff7ed,#e2e8f0);
  box-shadow: 0 20px 60px rgba(15,23,42,.12);
}
.property-photo-panel img {
  width: 100%;
  height: 100%;
  min-height: 340px;
  object-fit: cover;
  display: block;
}
.photo-placeholder {
  height: 100%;
  min-height: 340px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 82px;
}
.property-info-panel {
  padding: 26px;
  border-radius: 28px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 20px 60px rgba(15,23,42,.10);
  border: 1px solid rgba(226,232,240,.9);
}
.property-info-panel h1 {
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.05;
  letter-spacing: -0.04em;
  margin: 10px 0 12px;
}
.property-meta-row {
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  margin: 18px 0;
}
.property-meta-row span {
  padding: 9px 12px;
  border-radius: 999px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-weight: 700;
  color: #334155;
  font-size: 13px;
}
.property-description {
  color:#334155;
  line-height:1.7;
  font-size:15px;
}
.property-rules {
  margin-top: 16px;
  padding: 14px;
  border-radius: 16px;
  background: #fff7ed;
  border: 1px solid rgba(242,140,0,.18);
}
.property-rules summary {
  cursor:pointer;
  font-weight:800;
  color:#9a3412;
}
.property-rules p { color:#475569; line-height:1.6; }
.public-booking-card {
  max-width: 1080px;
}
@media(max-width:850px){
  .airbnb-property-landing { grid-template-columns: 1fr; }
  .property-photo-panel, .property-photo-panel img, .photo-placeholder { min-height: 240px; }
  .property-info-panel { padding: 20px; }
}

/* V4.6 print/PDF buttons */
.btn.soft {
  background:#f8fafc !important;
  color:#0f172a !important;
  border:1px solid #e2e8f0 !important;
}

/* =========================================================
   V5.1 SAFE AIRBNB LIGHT LUXURY + PLAYFUL UI PATCH
   Based on V4.6 stable. Additive only: no layout rewrite.
========================================================= */
:root{
  --sf-luxe-bg:#f7f3ee;
  --sf-luxe-card:#fffdf9;
  --sf-luxe-ink:#111827;
  --sf-luxe-muted:#6b7280;
  --sf-luxe-warm:#ff7a45;
  --sf-luxe-coral:#ff5a5f;
  --sf-luxe-gold:#d97706;
  --sf-luxe-line:rgba(17,24,39,.08);
  --sf-luxe-shadow:0 18px 50px rgba(17,24,39,.08);
  --sf-luxe-shadow-hover:0 24px 70px rgba(17,24,39,.12);
}
body{
  background:
    radial-gradient(circle at 12% 0%, rgba(255,122,69,.13), transparent 34%),
    radial-gradient(circle at 94% 8%, rgba(15,23,42,.06), transparent 24%),
    linear-gradient(180deg,#fffaf5 0%,#f7f3ee 46%,#f8fafc 100%);
}
.main{position:relative;}
.main:before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 80% 18%,rgba(255,255,255,.55),transparent 20%);
  z-index:-1;
}
/* luxury sidebar without changing sizing */
.sidebar{
  background:linear-gradient(180deg,#111827 0%,#0f172a 56%,#111827 100%);
  border-right:1px solid rgba(255,255,255,.08);
}
.brand{letter-spacing:-.05em;}
.brand-logo{filter:drop-shadow(0 12px 22px rgba(0,0,0,.18));}
.sidebar-nav a{
  border:1px solid transparent;
}
.sidebar-nav a:hover{
  background:rgba(255,255,255,.09);
  border-color:rgba(255,255,255,.06);
}
.sidebar-nav a.active{
  background:linear-gradient(135deg,#ff7a45,#ff5a5f);
  box-shadow:0 16px 34px rgba(255,90,95,.26);
}
/* premium hero/topbar */
.topbar{
  background:linear-gradient(135deg,#fffaf5 0%,#ffffff 52%,#fff3e8 100%);
  color:var(--sf-luxe-ink);
  border:1px solid var(--sf-luxe-line);
  box-shadow:var(--sf-luxe-shadow);
}
.topbar h1{color:#0f172a;}
.topbar .muted{color:var(--sf-luxe-muted);}
.topbar .btn.primary{
  color:#fff!important;
  background:linear-gradient(135deg,#ff7a45,#ff5a5f)!important;
  box-shadow:0 16px 34px rgba(255,90,95,.23)!important;
  border:0!important;
}
/* Airbnb-like cards */
.stat-card,.card,.auth-card{
  background:rgba(255,253,249,.94);
  border:1px solid var(--sf-luxe-line);
  border-radius:28px;
  box-shadow:var(--sf-luxe-shadow);
}
.stat-card:hover,.card:hover{
  box-shadow:var(--sf-luxe-shadow-hover);
  transform:translateY(-3px);
}
.stat-card span,.card h2{color:#111827;}
.stat-card strong{font-weight:950;}
.icon-card{overflow:hidden;}
.icon-card:after{
  background:linear-gradient(135deg,rgba(255,122,69,.20),rgba(255,90,95,.08));
}
/* buttons */
.btn{
  border-radius:999px;
  border-color:var(--sf-luxe-line);
  box-shadow:0 10px 24px rgba(17,24,39,.06);
}
.btn.primary,
button.btn.primary,
input.btn.primary{
  background:linear-gradient(135deg,#ff7a45,#ff5a5f);
  color:#fff;
  border:0;
  box-shadow:0 16px 34px rgba(255,90,95,.22);
}
.btn:hover{transform:translateY(-2px);}
/* forms: softer, expensive feel */
input,select,textarea{
  border-radius:18px;
  border-color:rgba(17,24,39,.10);
  background:#fffefa;
}
input:focus,select:focus,textarea:focus{
  border-color:#ff7a45;
  box-shadow:0 0 0 4px rgba(255,122,69,.14);
}
/* rows */
.list-row,.booking-row,.money-line{
  border-top-color:rgba(17,24,39,.07);
}
.booking-row:hover,.list-row:hover{
  background:#fff7ed;
  transform:translateX(3px);
}
/* badges */
.badge{border:1px solid rgba(255,255,255,.6);}
.badge.paid{background:#ecfdf5;color:#047857;}
.badge.partial,.badge.warn{background:#fff7ed;color:#c2410c;}
.badge.unpaid{background:#fff1f2;color:#be123c;}
/* calendar polish */
.calendar-pro-card,.calendar-scroll{
  border-radius:30px;
}
.calendar-legend{
  background:rgba(255,250,245,.92);
  border-color:var(--sf-luxe-line);
}
.fc .fc-toolbar-title{
  letter-spacing:-.045em;
  font-weight:950;
}
.fc .fc-button{
  background:#111827!important;
  border-radius:999px!important;
}
.fc .fc-button-primary:not(:disabled).fc-button-active{
  background:linear-gradient(135deg,#ff7a45,#ff5a5f)!important;
}
.fc .fc-day-today{background:#fff7ed!important;}
.fc-event{
  border-radius:14px!important;
  box-shadow:0 10px 22px rgba(17,24,39,.12)!important;
}
.fc-event:hover{
  transform:translateY(-2px) scale(1.015);
  box-shadow:0 18px 36px rgba(17,24,39,.16)!important;
}
/* public / property landing safe enhancements */
.property-hero,.public-hero,.landing-hero,.hero{
  border-radius:32px;
  background:linear-gradient(135deg,#fffaf5,#fff 56%,#fff3e8);
  border:1px solid var(--sf-luxe-line);
  box-shadow:var(--sf-luxe-shadow);
}
.property-card,.booking-card,.pricing-card,.feature-card{
  border-radius:28px;
  border:1px solid var(--sf-luxe-line);
  box-shadow:var(--sf-luxe-shadow);
  background:rgba(255,253,249,.96);
}
/* playful micro animation */
.card,.stat-card,.btn,.sidebar-nav a,.fc-event,input,select,textarea{
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,color .18s ease;
}
@media(max-width:900px){
  .topbar{top:0;border-radius:24px;}
  .stat-card,.card{border-radius:24px;}
  .btn{min-height:44px;}
}
@media(max-width:520px){
  .topbar{border-radius:22px;}
  .stat-card,.card{border-radius:22px;}
}


/* =========================================================
   V6 TARGETED REDESIGN — Dashboard / Property / Booking only
   Airbnb light luxury + startup playful, no global layout rewrite.
========================================================= */
.v6-dashboard{display:grid;gap:22px;animation:v6Fade .28s ease both;}
.v6-hero{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:22px;align-items:stretch;padding:30px;border-radius:34px;background:radial-gradient(circle at 14% 0%,rgba(255,122,69,.18),transparent 34%),linear-gradient(135deg,#fffaf5,#fff 54%,#f8fafc);border:1px solid rgba(17,24,39,.08);box-shadow:0 26px 80px rgba(17,24,39,.08);overflow:hidden;position:relative;}
.v6-hero:after{content:"";position:absolute;right:-80px;top:-90px;width:240px;height:240px;border-radius:50%;background:linear-gradient(135deg,rgba(255,90,95,.22),rgba(255,122,69,.08));filter:blur(2px);}
.v6-kicker{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:#fff3e8;color:#c2410c;font-size:11px;font-weight:950;letter-spacing:.12em;text-transform:uppercase;}
.v6-hero h1{font-size:clamp(30px,4vw,48px);letter-spacing:-.055em;line-height:1.02;margin:13px 0 10px;color:#111827;}
.v6-hero p{max-width:640px;margin:0;color:#64748b;font-size:16px;line-height:1.65;}
.v6-hero-metrics{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;}
.v6-hero-metrics div{padding:12px 14px;border-radius:18px;background:rgba(255,255,255,.74);border:1px solid rgba(17,24,39,.07);box-shadow:0 10px 24px rgba(17,24,39,.05);}
.v6-hero-metrics span{display:block;color:#94a3b8;font-size:12px;font-weight:800;}
.v6-hero-metrics strong{display:block;margin-top:2px;color:#111827;font-size:19px;}
.v6-hero-panel{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;padding:22px;border-radius:28px;background:#111827;color:#fff;box-shadow:0 24px 55px rgba(17,24,39,.22);}
.v6-panel-label{color:#fed7aa;font-weight:900;text-transform:uppercase;font-size:11px;letter-spacing:.12em;}
.v6-hero-panel strong{font-size:62px;letter-spacing:-.06em;line-height:1;margin:10px 0 2px;}
.v6-hero-panel small{color:#cbd5e1;font-weight:700;}
.v6-primary-action{margin-top:20px;text-align:center;background:linear-gradient(135deg,#ff7a45,#ff5a5f)!important;box-shadow:0 18px 40px rgba(255,90,95,.30)!important;}
.v6-smart-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
.v6-smart-card{position:relative;overflow:hidden;min-height:150px;padding:20px;border-radius:28px;background:#fff;border:1px solid rgba(17,24,39,.08);box-shadow:0 16px 42px rgba(17,24,39,.065);transition:transform .18s ease,box-shadow .18s ease;}
.v6-smart-card:hover{transform:translateY(-4px);box-shadow:0 24px 65px rgba(17,24,39,.10);}
.v6-smart-card:after{content:"";position:absolute;right:-30px;bottom:-42px;width:128px;height:128px;border-radius:50%;opacity:.55;}
.v6-smart-card span{display:block;color:#334155;font-weight:900;font-size:14px;}
.v6-smart-card strong{display:block;margin:16px 0 5px;font-size:42px;letter-spacing:-.055em;color:#111827;}
.v6-smart-card small{color:#94a3b8;font-weight:700;}
.v6-green:after{background:#bbf7d0}.v6-red:after{background:#fecaca}.v6-amber:after{background:#fed7aa}.v6-blue:after{background:#bfdbfe}
.v6-mini-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:12px;border-radius:24px;background:rgba(255,255,255,.68);border:1px solid rgba(17,24,39,.07);box-shadow:0 12px 32px rgba(17,24,39,.05);}
.v6-mini-strip div{padding:14px 16px;border-radius:18px;background:#fff;}
.v6-mini-strip span{display:block;color:#94a3b8;font-size:12px;font-weight:900;}
.v6-mini-strip strong{display:block;color:#111827;font-size:20px;letter-spacing:-.035em;}
.v6-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.v6-card{padding:22px;border-radius:30px;background:rgba(255,255,255,.93);border:1px solid rgba(17,24,39,.08);box-shadow:0 20px 56px rgba(17,24,39,.07);}
.v6-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;}
.v6-section-head h2{margin:0;font-size:20px;letter-spacing:-.04em;color:#111827;}
.v6-section-head span{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 10px;border-radius:999px;background:#fff3e8;color:#c2410c;font-weight:950;}
.v6-row,.v6-booking-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px;margin:10px 0;border-radius:20px;background:#fff;border:1px solid rgba(17,24,39,.06);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;}
.v6-row:hover,.v6-booking-row:hover{transform:translateY(-2px);box-shadow:0 16px 35px rgba(17,24,39,.075);border-color:rgba(255,122,69,.25);}
.v6-row strong,.v6-booking-row strong{color:#111827;}
.v6-row small,.v6-booking-row small{display:block;margin-top:4px;color:#64748b;line-height:1.45;}
.v6-empty{padding:18px;border-radius:20px;background:#f8fafc;color:#94a3b8;font-weight:700;}
.v6-upcoming{margin-bottom:24px;}
.v6-booking-money{text-align:right;display:grid;gap:7px;justify-items:end;}

/* V6 public property / direct booking conversion page */
.v6-public-body{background:radial-gradient(circle at 18% 0%,rgba(255,122,69,.20),transparent 31%),radial-gradient(circle at 100% 12%,rgba(15,23,42,.10),transparent 25%),linear-gradient(135deg,#f7f3ee,#fffaf5 45%,#f8fafc)!important;}
.v6-public-card{border-radius:38px!important;padding:34px!important;box-shadow:0 34px 100px rgba(17,24,39,.14)!important;}
.v6-public-card .public-booking-brand{justify-content:flex-start;margin-bottom:24px;}
.v6-public-card .public-booking-brand img{max-width:155px;}
.v6-public-card .airbnb-property-landing{grid-template-columns:1.08fr .92fr;gap:28px;margin-bottom:28px;}
.v6-public-card .property-photo-panel{border-radius:34px;box-shadow:0 28px 72px rgba(17,24,39,.16);position:relative;}
.v6-public-card .property-photo-panel:after{content:"Direct stay";position:absolute;left:18px;bottom:18px;padding:9px 12px;border-radius:999px;background:rgba(255,255,255,.86);backdrop-filter:blur(10px);color:#111827;font-weight:950;font-size:12px;}
.v6-public-card .property-info-panel{border-radius:34px;box-shadow:0 24px 65px rgba(17,24,39,.09);background:rgba(255,255,255,.86);}
.v6-public-card .property-info-panel h1{font-size:clamp(34px,5vw,58px);letter-spacing:-.06em;}
.v6-trust-strip{display:flex;flex-wrap:wrap;gap:9px;margin:14px 0 18px;}
.v6-trust-strip span{padding:9px 11px;border-radius:999px;background:#fff7ed;border:1px solid rgba(255,122,69,.18);color:#9a3412;font-size:12px;font-weight:900;}
.v6-booking-conversion{display:grid;grid-template-columns:.72fr 1.28fr;gap:22px;align-items:start;margin-top:18px;padding:20px;border-radius:34px;background:#111827;color:#fff;box-shadow:0 28px 80px rgba(17,24,39,.18);}
.v6-booking-copy{padding:8px 6px;position:sticky;top:18px;}
.v6-booking-copy h2{font-size:34px;letter-spacing:-.05em;margin:12px 0 8px;color:#fff;}
.v6-booking-copy p{color:#cbd5e1;line-height:1.65;margin:0;}
.v6-booking-form-card{padding:18px;border-radius:28px;background:#fff;color:#0f172a;}
.v6-booking-form-card .availability-widget{background:#fff7ed;border-color:rgba(255,122,69,.22);}
.v6-booking-form-card .public-booking-form{margin-top:16px;}
.v6-booking-form-card .form-grid label{font-weight:850;color:#334155;}
.v6-booking-form-card .public-submit{border-radius:18px!important;min-height:58px;font-weight:950;font-size:17px;}
.v6-booking-form-card .tiny-note{color:#64748b;}
@keyframes v6Fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:1100px){.v6-smart-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.v6-hero{grid-template-columns:1fr}.v6-hero-panel{max-width:360px}.v6-public-card .airbnb-property-landing,.v6-booking-conversion{grid-template-columns:1fr}.v6-booking-copy{position:relative;top:auto}}
@media(max-width:760px){.v6-dashboard{gap:16px}.v6-hero{padding:22px;border-radius:26px}.v6-hero-metrics,.v6-smart-grid,.v6-mini-strip,.v6-grid-2{grid-template-columns:1fr;display:grid}.v6-smart-card{min-height:128px}.v6-row,.v6-booking-row{align-items:flex-start;flex-direction:column}.v6-booking-money{text-align:left;justify-items:start}.v6-public-card{padding:18px!important;border-radius:26px!important}.v6-public-card .property-info-panel,.v6-public-card .property-photo-panel,.v6-booking-conversion{border-radius:26px}.v6-booking-conversion{padding:14px}.v6-booking-copy h2{font-size:28px}}


/* ===== V7 Professional Admin Separation ===== */
.mobile-actions{display:flex;align-items:center;gap:8px}.mobile-logout{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:14px;background:rgba(255,255,255,.10);color:#fff;text-decoration:none!important;font-size:18px}.sidebar-nav .logout-link{background:rgba(239,68,68,.08)!important;color:#fecaca!important;border:1px solid rgba(248,113,113,.18)}.sidebar-nav .logout-link:hover{background:rgba(239,68,68,.18)!important;color:#fff!important}.admin-top-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.78);border:1px solid rgba(226,232,240,.95);box-shadow:0 12px 32px rgba(15,23,42,.055);backdrop-filter:blur(12px)}.admin-top-strip div{display:grid;gap:2px}.admin-top-strip span{font-size:13px;color:#64748b;font-weight:800}.admin-logout-link{margin-top:12px!important;background:rgba(239,68,68,.10)!important;color:#fecaca!important;border:1px solid rgba(248,113,113,.18)}.admin-logout-link:hover{background:rgba(239,68,68,.20)!important;color:#fff!important}.v7-admin-hero{background:linear-gradient(135deg,#ffffff 0%,#f8fafc 45%,#fff7ed 100%)!important}.admin-login-body{background:radial-gradient(circle at 20% 10%,rgba(249,115,22,.18),transparent 30%),linear-gradient(135deg,#0f172a,#111827)!important}.admin-login-card{border:1px solid rgba(255,255,255,.18);box-shadow:0 28px 80px rgba(0,0,0,.28)}.admin-form label{display:grid;gap:7px;font-weight:900;color:#334155;margin-bottom:12px}.admin-form input{width:100%;padding:12px 13px;border-radius:14px;border:1px solid #e5e7eb}.admin-actions form{margin:0}.admin-actions button:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.alert.error{background:#fee2e2;color:#991b1b;border-radius:12px;padding:12px;margin:12px 0}.admin-sidebar nav a.admin-logout-link span{filter:none}
@media(max-width:768px){.admin-top-strip{margin-top:6px}.mobile-actions{display:flex}.admin-actions form{display:flex!important;flex-wrap:wrap;margin-top:6px}.admin-actions input{max-width:160px}}


/* V7.1 Password recovery polish */
.recovery-card h1{letter-spacing:-.03em}
.recovery-card .alert.success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0;border-radius:14px;padding:12px 14px;margin:14px 0}
.recovery-card .alert.error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;border-radius:14px;padding:12px 14px;margin:14px 0}
.auth-card .center-text a{font-weight:700;color:#f97316;text-decoration:none}
.auth-card .center-text a:hover{text-decoration:underline}


/* V7.2 Demo Mode */
.demo-banner{margin:0 0 18px;padding:14px 16px;border-radius:16px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-weight:800;box-shadow:0 12px 28px rgba(154,52,18,.08)}
.demo-banner a{color:#9a3412;text-decoration:underline;font-weight:950}.btn.soft{background:#fff;color:#0f172a;border:1px solid #e5e7eb;box-shadow:none}.btn.soft:hover{background:#f8fafc}

/* V8/V9 Launch + Security polish */
.v8-onboarding{max-width:980px;margin:0 auto}.v8-hero{display:flex;justify-content:space-between;gap:20px;padding:28px;border-radius:26px;background:linear-gradient(135deg,#fff7ed,#fff,#f8fafc);box-shadow:0 18px 50px rgba(15,23,42,.08);margin-bottom:16px}.v8-hero span{color:#f97316;font-weight:800;font-size:13px}.v8-hero h1{margin:8px 0}.v8-hero strong{font-size:34px}.v8-progress{height:12px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin-bottom:20px}.v8-progress div{height:100%;background:linear-gradient(135deg,#f97316,#fb923c)}.v8-steps{display:grid;gap:14px}.v8-step{display:block;padding:20px;background:#fff;border-radius:20px;border:1px solid #e5e7eb;box-shadow:0 12px 35px rgba(15,23,42,.06);text-decoration:none;color:inherit}.v8-step.done{border-color:#22c55e;background:#f0fdf4}.v8-step p{margin:6px 0 0;color:#64748b}
.security-badge{display:inline-flex;gap:6px;align-items:center;padding:5px 10px;border-radius:999px;background:#ecfdf5;color:#047857;font-size:12px;font-weight:800}.security-badge.warn{background:#fff7ed;color:#c2410c}.demo-banner a{font-weight:800}
@media(max-width:768px){.v8-hero{display:block;padding:22px}.v8-hero strong{display:block;margin-top:12px}}
.ops-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
gap:18px;
margin-bottom:24px;
}

.ops-card{
background:#111827;
color:#fff;
padding:24px;
border-radius:22px;
box-shadow:0 18px 45px rgba(0,0,0,.25);
}

.ops-card span{
display:block;
font-size:13px;
opacity:.7;
margin-bottom:10px;
}

.ops-card strong{
font-size:32px;
letter-spacing:-.03em;
}

.ops-card.healthy{
background:linear-gradient(135deg,#065f46,#10b981);
}

.ops-panels{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
gap:20px;
}

/* ===== HostFlow Gallery V1 ===== */
.sf-gallery-admin-block{display:grid;gap:14px;padding:16px;border-radius:22px;background:#f8fafc;border:1px solid #e5e7eb;margin:8px 0 12px}
.sf-current-cover{display:grid;gap:8px}.sf-current-cover span{font-size:12px;font-weight:900;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.sf-current-cover img{width:180px;height:120px;object-fit:cover;border-radius:18px;border:1px solid #e5e7eb;box-shadow:0 12px 28px rgba(15,23,42,.08)}
.sf-gallery-admin-existing{margin:18px 0;padding:16px;border-radius:22px;background:#fff7ed;border:1px solid #fed7aa}.sf-gallery-admin-existing h3{margin:0 0 12px}.sf-gallery-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.sf-gallery-admin-thumb{border-radius:18px;overflow:hidden;background:#fff;border:1px solid #e5e7eb;box-shadow:0 10px 24px rgba(15,23,42,.08)}.sf-gallery-admin-thumb img{width:100%;height:96px;object-fit:cover;display:block}
.sf-public-gallery-panel{display:grid!important;gap:10px;overflow:hidden}.sf-public-gallery-main{position:relative;border-radius:34px;overflow:hidden;min-height:420px;background:#f1f5f9}.sf-public-gallery-main img{width:100%;height:100%;min-height:420px;object-fit:cover;display:block}.sf-gallery-count{position:absolute;right:16px;bottom:16px;padding:8px 12px;border-radius:999px;background:rgba(15,23,42,.72);color:#fff;font-size:12px;font-weight:950;backdrop-filter:blur(10px)}
.sf-public-gallery-thumbs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.sf-gallery-thumb{border:2px solid transparent;border-radius:16px;padding:0;overflow:hidden;background:#fff;cursor:pointer;box-shadow:0 8px 20px rgba(15,23,42,.08);opacity:.82;transition:.18s ease}.sf-gallery-thumb:hover,.sf-gallery-thumb.active{opacity:1;border-color:#f97316;transform:translateY(-1px)}.sf-gallery-thumb img{width:100%;height:74px;object-fit:cover;display:block}
@media(max-width:760px){.sf-public-gallery-main,.sf-public-gallery-main img{min-height:300px}.sf-public-gallery-thumbs{display:flex;overflow-x:auto;padding-bottom:4px}.sf-gallery-thumb{min-width:88px}.sf-gallery-thumb img{height:64px}.sf-gallery-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


.gallery-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

.gallery-preview-item {
  position: relative;
  width: 110px;
  height: 90px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid #e5e7eb;
  background: #f8fafc;
}

.gallery-preview-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.gallery-preview-remove {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 999px;
  background: rgba(15, 23, 42, .78);
  color: #fff;
  cursor: pointer;
  font-weight: 900;
}

.booking-price-box{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:24px;
  padding:22px;
  margin-bottom:22px;
  box-shadow:0 12px 30px rgba(15,23,42,.06);
}

.price-box-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:18px;
}

.price-box-head strong{
  font-size:18px;
  font-weight:900;
}

.price-box-head span{
  font-size:13px;
  color:#64748b;
}

.price-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:12px 0;
  border-bottom:1px dashed #e2e8f0;
}

.price-row.total{
  border-bottom:0;
  padding-top:18px;
  font-size:18px;
  font-weight:900;
}

.tiny-note{
  margin-top:14px;
  font-size:12px;
  color:#64748b;
  line-height:1.5;
}

.sf-gallery-thumbs{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-top:12px;
}

.sf-gallery-thumb{
  width:100%;
  aspect-ratio:1/1;
  border:2px solid transparent;
  border-radius:16px;
  padding:0;
  overflow:hidden;
  background:#f8fafc;
  cursor:pointer;
}

.sf-gallery-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.sf-gallery-thumb.active{
  border-color:#f28c00;
  box-shadow:0 0 0 3px rgba(242,140,0,.15);
}

.sf-gallery-main{
  width:100%;
  height:420px;
  object-fit:cover;
  border-radius:28px;
  display:block;
}

@media(max-width:760px){
  .sf-gallery-main{
    height:280px;
    border-radius:22px;
  }

  .sf-gallery-thumbs{
    display:flex;
    overflow-x:auto;
    gap:10px;
    padding-bottom:6px;
  }

  .sf-gallery-thumb{
    min-width:78px;
    width:78px;
    height:78px;
  }
}

.blocked-range-pill{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  margin-bottom:8px;
  border-radius:14px;
  background:#fff7ed;
  border:1px solid #fed7aa;
  color:#9a3412;
  font-size:13px;
}

.blocked-range-date strong{
  font-weight:900;
}

.blocked-range-source{
  background:#ffedd5;
  color:#9a3412;
  border-radius:999px;
  padding:4px 8px;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}

@media(max-width:760px){
  .blocked-range-pill{
    align-items:flex-start;
    flex-direction:column;
  }
}

.native-date-field{
  display:none;
}

.flatpickr-range-wrap{
  grid-column:span 2;
}

.flatpickr-range-wrap input{
  width:100%;
  border:1px solid #e5e7eb;
  border-radius:16px;
  padding:14px 15px;
  font-size:15px;
  background:#fff;
}

.flatpickr-calendar{
  border-radius:22px!important;
  box-shadow:0 24px 70px rgba(15,23,42,.18)!important;
  border:1px solid #e5e7eb!important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange{
  background:#f28c00!important;
  border-color:#f28c00!important;
}

.flatpickr-day.inRange{
  background:#ffedd5!important;
  border-color:#ffedd5!important;
}

.flatpickr-day.flatpickr-disabled{
  color:#cbd5e1!important;
  text-decoration:line-through;
}

/* HostFlow readability fix V2 */

/* DARK MODE */
body.dark {
  color: #e5e7eb;
}

body.dark .main,
body.dark .app-shell {
  background: #020617;
}

/* Main cards */
body.dark .card,
body.dark .topbar,
body.dark .list-row,
body.dark .filter-card,
body.dark .public-link-box,
body.dark .booking-summary-box,
body.dark .onboarding-card,
body.dark .setup-card,
body.dark .empty-gap-card {
  background: #111827 !important;
  color: #e5e7eb !important;
  border-color: rgba(255,255,255,.12) !important;
  opacity: 1 !important;
}

/* White onboarding/header blocks that stayed washed out */
body.dark [class*="hero"],
body.dark [class*="setup"],
body.dark [class*="onboarding"] {
  color: #e5e7eb !important;
  opacity: 1 !important;
}

body.dark h1,
body.dark h2,
body.dark h3,
body.dark h4,
body.dark label,
body.dark strong {
  color: #f8fafc !important;
  opacity: 1 !important;
}

body.dark p,
body.dark small,
body.dark .muted,
body.dark .topbar p {
  color: #cbd5e1 !important;
  opacity: 1 !important;
}

/* Forms */
body.dark input,
body.dark textarea,
body.dark select {
  background: #020617 !important;
  color: #f8fafc !important;
  border-color: rgba(255,255,255,.18) !important;
  opacity: 1 !important;
}

body.dark input::placeholder,
body.dark textarea::placeholder {
  color: #94a3b8 !important;
  opacity: 1 !important;
}

/* Buttons */
body.dark .btn.soft,
body.dark .btn.small,
body.dark button:not(.primary):not(.danger) {
  opacity: 1 !important;
}

/* Calendar dark mode */
body.dark .fc,
body.dark .fc-scrollgrid,
body.dark .fc-theme-standard td,
body.dark .fc-theme-standard th {
  background: #0f172a !important;
  border-color: rgba(255,255,255,.12) !important;
}

body.dark .fc .fc-daygrid-day-number,
body.dark .fc .fc-col-header-cell-cushion,
body.dark .fc-toolbar-title {
  color: #f8fafc !important;
  opacity: 1 !important;
}

body.dark .fc .fc-day-other .fc-daygrid-day-number {
  color: #64748b !important;
}

body.dark .fc .fc-day-today {
  background: rgba(242,140,0,.16) !important;
}

/* Calendar events */
body.dark .fc-event,
body.dark .fc-event-title,
body.dark .fc-event-main {
  color: #0f172a !important;
  opacity: 1 !important;
  font-weight: 800 !important;
}

/* LIGHT MODE */
body:not(.dark) .card,
body:not(.dark) .topbar,
body:not(.dark) .list-row,
body:not(.dark) .filter-card {
  background: #ffffff !important;
  color: #0f172a !important;
  opacity: 1 !important;
}

body:not(.dark) h1,
body:not(.dark) h2,
body:not(.dark) h3,
body:not(.dark) label,
body:not(.dark) strong {
  color: #0f172a !important;
}

body:not(.dark) .muted,
body:not(.dark) small,
body:not(.dark) p {
  color: #64748b !important;
}

body:not(.dark) input,
body:not(.dark) textarea,
body:not(.dark) select {
  background: #fff !important;
  color: #0f172a !important;
  border-color: #e5e7eb !important;
}

/* ===== STAYFLOW CALENDAR FIX ===== */

/* CALENDAR WRAPPER */
.fc,
.fc-theme-standard,
.fc-scrollgrid {
  opacity: 1 !important;
}

/* LIGHT MODE */
body:not(.dark) .fc {
  background: #ffffff !important;
  color: #0f172a !important;
}

body:not(.dark) .fc-theme-standard td,
body:not(.dark) .fc-theme-standard th {
  border-color: #e5e7eb !important;
}

body:not(.dark) .fc-col-header-cell {
  background: #f8fafc !important;
}

body:not(.dark) .fc-daygrid-day-number,
body:not(.dark) .fc-col-header-cell-cushion,
body:not(.dark) .fc-toolbar-title {
  color: #0f172a !important;
  font-weight: 800 !important;
  opacity: 1 !important;
}

body:not(.dark) .fc-day-today {
  background: rgba(242,140,0,.10) !important;
}

/* DARK MODE */
body.dark .fc {
  background: #0f172a !important;
  color: #f8fafc !important;
}

body.dark .fc-theme-standard td,
body.dark .fc-theme-standard th {
  border-color: rgba(255,255,255,.10) !important;
}

body.dark .fc-col-header-cell {
  background: #111827 !important;
}

body.dark .fc-daygrid-day-number,
body.dark .fc-col-header-cell-cushion,
body.dark .fc-toolbar-title {
  color: #f8fafc !important;
  font-weight: 800 !important;
  opacity: 1 !important;
}

body.dark .fc-day-other .fc-daygrid-day-number {
  color: #64748b !important;
}

body.dark .fc-day-today {
  background: rgba(242,140,0,.14) !important;
}

/* REMOVE HAZE */
body.dark .fc-view-harness,
body.dark .fc-scrollgrid,
body.dark .fc-scroller {
  background: transparent !important;
  opacity: 1 !important;
}

/* EVENTS */
.fc-event {
  border: 0 !important;
  border-radius: 999px !important;
  padding: 3px 8px !important;
  font-weight: 700 !important;
  opacity: 1 !important;
  box-shadow: 0 2px 8px rgba(15,23,42,.12);
}

.fc-event-main,
.fc-event-title {
  opacity: 1 !important;
}

/* LIGHT MODE EVENTS */
body:not(.dark) .fc-event-title,
body:not(.dark) .fc-event-main {
  color: #0f172a !important;
}

/* DARK MODE EVENTS */
body.dark .fc-event-title,
body.dark .fc-event-main {
  color: #0f172a !important;
}

/* TOOLBAR BUTTONS */
.fc .fc-button {
  border: 0 !important;
  border-radius: 999px !important;
  background: #0f172a !important;
  color: #fff !important;
  font-weight: 800 !important;
  box-shadow: none !important;
}

.fc .fc-button-active,
.fc .fc-button:hover {
  background: #f97316 !important;
  color: #fff !important;
}

/* TODAY BUTTON */
.fc .fc-today-button {
  background: #111827 !important;
}

/* GRID NUMBERS */
.fc .fc-daygrid-day-number {
  padding: 8px !important;
  font-size: 15px !important;
}

/* HEADER */
.fc-header-toolbar {
  margin-bottom: 18px !important;
}

.booking-price-box .price-row.total{
  margin-top: 8px;
  padding-top: 18px;
  border-top: 2px solid #e5e7eb;
  border-bottom: 0;
  font-size: 20px;
}

body.dark .booking-price-box .price-row.total{
  border-top-color: rgba(255,255,255,.16);
}

#priceSubtotal,
#priceCleaning,
#priceTaxes,
#priceTotal{
  font-variant-numeric: tabular-nums;
}

.price-row span{
  color: #64748b;
}

body.dark .price-row span{
  color: #cbd5e1;
}

.mobile-booking-bar{
  display:none;
}

@media(max-width:760px){
  .mobile-booking-bar{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:9999;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:12px 16px;
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(18px);
    border-top:1px solid #e5e7eb;
    box-shadow:0 -16px 40px rgba(15,23,42,.14);
  }

  body.dark .mobile-booking-bar{
    background:rgba(15,23,42,.96);
    border-top-color:rgba(255,255,255,.12);
  }

  .mobile-booking-bar span{
    display:block;
    font-size:11px;
    color:#64748b;
    font-weight:800;
  }

  body.dark .mobile-booking-bar span{
    color:#cbd5e1;
  }

  .mobile-booking-bar strong{
    display:block;
    font-size:17px;
    color:#0f172a;
    font-weight:950;
  }

  body.dark .mobile-booking-bar strong{
    color:#fff;
  }

  .mobile-booking-bar button{
    border:0;
    border-radius:999px;
    padding:12px 18px;
    background:linear-gradient(135deg,#f28c00,#d97706);
    color:#fff;
    font-weight:950;
    box-shadow:0 12px 28px rgba(217,119,6,.32);
  }

  .public-booking-body{
    padding-bottom:86px;
  }
}

/* =========================
   ICAL HEALTH CENTER
========================= */

.sync-health-row{
  display:grid;
  gap:8px;
}

.sync-health-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  padding:7px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.02em;
}

.sync-health-badge.ok{
  background:#dcfce7;
  color:#166534;
}

.sync-health-badge.warn{
  background:#fef3c7;
  color:#92400e;
}

.sync-health-badge.bad{
  background:#fee2e2;
  color:#991b1b;
}

.sync-health-badge.never{
  background:#e5e7eb;
  color:#475569;
}

body.dark-mode .sync-health-badge.never{
  background:#1e293b;
  color:#cbd5e1;
}

.sync-health-row small{
  line-height:1.45;
}

/* =========================
   ICAL SYNC LOGS POLISH
========================= */

.sync-log-table .status-pill{
  text-transform:uppercase;
  letter-spacing:.04em;
}

.sync-log-table tr.has-conflict td{
  background:#fff7ed!important;
}

.sync-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  height:30px;
  border-radius:999px;
  font-weight:950;
  font-size:13px;
}

.sync-count.created{
  background:#dcfce7;
  color:#166534;
}

.sync-count.updated{
  background:#e0f2fe;
  color:#075985;
}

.sync-count.conflict{
  background:#fee2e2;
  color:#991b1b;
}

.sync-count.zero{
  background:#f1f5f9;
  color:#64748b;
}

.sync-message{
  max-width:420px;
  line-height:1.45;
  color:#475569;
  font-weight:700;
}

body.dark-mode .sync-log-table tr.has-conflict td{
  background:rgba(242,140,0,.13)!important;
}

body.dark-mode .sync-message{
  color:#cbd5e1;
}

body.dark-mode .sync-count.zero{
  background:#1e293b;
  color:#cbd5e1;
}

