.sfb-price-table{border-top:1px solid #e8e5df}.sfb-price-row{display:flex;justify-content:space-between;gap:30px;padding:18px 0;border-bottom:1px solid #e8e5df}.sfb-price-row>div:last-child{text-align:right}.sfb-price-row strong,.sfb-price-row small{display:block}.sfb-price-row small{color:#6b6b6b;margin-top:4px}.sfb-calendar{background:#fff;border:1px solid #e8e5df;border-radius:18px;padding:24px}.sfb-calendar-title{font-size:22px;font-weight:600;margin-bottom:16px}.sfb-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.sfb-cal-head{text-align:center;font-size:12px;color:#6b6b6b;padding:6px}.sfb-cal-day{min-height:64px;border-radius:8px;padding:8px;display:flex;flex-direction:column;justify-content:space-between}.sfb-cal-day.is-free{background:#f3f6ef}.sfb-cal-day.is-booked{background:#f5e9e7;color:#8a4037}.sfb-cal-day small{font-size:10px}.sfb-legend{display:flex;gap:18px;margin-top:14px;font-size:13px}.sfb-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}.sfb-legend .free{background:#b8c5a2}.sfb-legend .booked{background:#d7a49e}.sfb-booking-form{background:#fff;border:1px solid #e8e5df;border-radius:18px;padding:28px}.sfb-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.sfb-booking-form label{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;color:#2c2c2c}.sfb-booking-form input,.sfb-booking-form textarea,.sfb-booking-form select{border:1px solid #dcd8d1;border-radius:10px;padding:12px 14px;font:inherit}.sfb-booking-form button{background:#5b6642;color:#fff;border:0;border-radius:14px;padding:15px 28px;font-weight:600;cursor:pointer}.sfb-booking-form button:hover{background:#485234}.sfb-form-hint{color:#6b6b6b;font-size:13px}.sfb-notice{padding:14px 16px;background:#f3f6ef;border-radius:10px;margin-bottom:16px}@media(max-width:700px){.sfb-form-grid{grid-template-columns:1fr}.sfb-price-row{flex-direction:column;gap:8px}.sfb-price-row>div:last-child{text-align:left}.sfb-calendar{padding:14px}.sfb-cal-day{min-height:48px;padding:5px}.sfb-cal-day small{display:none}}

.sfb-live-status{margin:14px 0;font-size:14px;font-weight:600}
.sfb-live-status.is-ok{color:#356b3d}
.sfb-live-status.is-error{color:#9d2f2f}
.sfb-live-quote{margin:18px 0;padding:18px;border:1px solid #E8E5DF;border-radius:14px;background:#FAF9F6}
.sfb-live-quote>div{display:flex;justify-content:space-between;gap:18px;padding:5px 0}
.sfb-live-total{border-top:1px solid #E8E5DF;margin-top:8px;padding-top:13px!important;font-size:18px}
.sfb-live-nights{display:block;margin-top:6px;color:#6B6B6B}

.sfb-form-actions{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  margin-top:14px;
}
.sfb-form-actions .sfb-ajax-message{
  display:none;
  margin:0;
  padding:12px 16px;
  border-radius:12px;
  font-size:14px;
  font-weight:700;
  line-height:1.35;
}
.sfb-form-actions .sfb-ajax-message.is-ok{
  display:block;
  background:#EEF3E8;
  color:#44522F;
  border:1px solid #CBD7BD;
}
.sfb-form-actions .sfb-ajax-message.is-error{
  display:block;
  background:#FFF0EE;
  color:#8A2F27;
  border:1px solid #E7C0BA;
}
@media(max-width:767px){
  .sfb-form-actions{
    align-items:stretch;
  }
  .sfb-form-actions button,
  .sfb-form-actions .sfb-ajax-message{
    width:100%;
    box-sizing:border-box;
  }
}


/* Frontend availability calendar */
.sfb-public-calendar{
  width:100%;
  max-width:560px;
  margin:0 auto;
  font-family:Inter,Arial,sans-serif;
  color:#2C2C2C;
}
.sfb-public-calendar__nav{
  display:grid;
  grid-template-columns:42px 1fr 42px;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
}
.sfb-public-calendar__nav strong{
  text-align:center;
  font-family:"Playfair Display",Georgia,serif;
  font-size:22px;
  font-weight:600;
}
.sfb-public-calendar__nav button{
  width:42px;
  height:42px;
  border:1px solid #DEDCD5;
  border-radius:50%;
  background:#fff;
  color:#5B6642;
  font-size:30px;
  line-height:1;
  cursor:pointer;
  padding:0 0 4px;
}
.sfb-public-calendar__nav button:hover{
  background:#F4F3EE;
}
.sfb-public-calendar__title{
  display:none;
}
.sfb-public-calendar__grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:5px;
}
.sfb-public-cal-head{
  text-align:center;
  padding:5px 0 8px;
  font-size:12px;
  font-weight:700;
  color:#5B6642;
}
.sfb-public-cal-empty{
  min-height:48px;
}
.sfb-public-cal-day{
  min-height:54px;
  border-radius:10px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  border:1px solid transparent;
}
.sfb-public-cal-day span{
  font-size:15px;
  font-weight:700;
}
.sfb-public-cal-day small{
  font-size:10px;
  line-height:1;
}
.sfb-public-cal-day.is-free{
  background:#EEF3E8;
  border-color:#D5E0C8;
  color:#40502E;
}
.sfb-public-cal-day.is-booked{
  background:#F7E2DE;
  border-color:#EBC8C1;
  color:#8B352D;
}
.sfb-public-calendar__legend{
  display:flex;
  justify-content:center;
  gap:22px;
  margin-top:16px;
  font-size:12px;
  color:#666;
}
.sfb-public-calendar__legend span{
  display:flex;
  align-items:center;
  gap:7px;
}
.sfb-public-calendar__legend i{
  width:12px;
  height:12px;
  border-radius:50%;
  display:inline-block;
}
.sfb-public-calendar__legend i.is-free{
  background:#D5E0C8;
}
.sfb-public-calendar__legend i.is-booked{
  background:#E7B7AE;
}
.sfb-public-calendar__body{
  transition:opacity .15s ease;
}
.sfb-public-calendar__body.is-loading{
  opacity:.45;
  pointer-events:none;
}
@media(max-width:767px){
  .sfb-public-calendar__nav{
    grid-template-columns:38px 1fr 38px;
  }
  .sfb-public-calendar__nav button{
    width:38px;
    height:38px;
  }
  .sfb-public-calendar__nav strong{
    font-size:19px;
  }
  .sfb-public-calendar__grid{
    gap:3px;
  }
  .sfb-public-cal-day{
    min-height:45px;
    border-radius:8px;
  }
  .sfb-public-cal-day span{
    font-size:13px;
  }
  .sfb-public-cal-day small{
    font-size:8px;
  }
}


/* Dynamic frontend price summary */
.sfb-price-summary-table{
  width:100%;
  display:flex;
  flex-direction:column;
  gap:14px;
  font-family:Inter,Arial,sans-serif;
  color:#2C2C2C;
}
.sfb-price-summary-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:28px;
  padding:20px 22px;
  border:1px solid #E8E5DF;
  border-radius:16px;
  background:#FCFBF8;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.sfb-price-summary-row:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 22px rgba(0,0,0,.035);
  border-color:#DED9CF;
}
.sfb-price-summary-left{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
}
.sfb-price-summary-right{
  display:flex;
  flex-direction:column;
  gap:6px;
  text-align:right;
  align-items:flex-end;
}
.sfb-price-summary-left strong{
  font-family:"Playfair Display",Georgia,serif;
  font-size:22px;
  line-height:1.15;
  font-weight:600;
  color:#3A3A34;
}
.sfb-price-summary-right strong{
  font-size:18px;
  line-height:1.2;
  font-weight:700;
  color:#5B6642;
  white-space:nowrap;
}
.sfb-price-summary-row small{
  font-size:12px;
  line-height:1.45;
  color:#7B7B76;
}
.sfb-price-summary-cleaning{
  background:#F5F2EA;
  border-color:#E3DDD0;
  margin-top:2px;
}
.sfb-price-summary-cleaning .sfb-price-summary-left strong{
  font-family:Inter,Arial,sans-serif;
  font-size:16px;
  font-weight:600;
}
.sfb-price-summary-cleaning .sfb-price-summary-right strong{
  font-size:17px;
}
@media(max-width:767px){
  .sfb-price-summary-table{
    gap:10px;
  }
  .sfb-price-summary-row{
    grid-template-columns:1fr;
    gap:12px;
    padding:17px 18px;
    border-radius:14px;
  }
  .sfb-price-summary-right{
    align-items:flex-start;
    text-align:left;
  }
  .sfb-price-summary-left strong{
    font-size:20px;
  }
  .sfb-price-summary-right strong{
    font-size:17px;
  }
}


/* Calendar arrival/departure split days */
.sfb-public-cal-day{
  position:relative;
  overflow:hidden;
}
.sfb-public-cal-day span{
  position:relative;
  z-index:1;
}
.sfb-public-cal-day small{
  display:none !important;
}
.sfb-public-cal-day.is-free{
  background:#EEF3E8;
  border-color:#D5E0C8;
  color:#40502E;
}
.sfb-public-cal-day.is-booked{
  background:#F7E2DE;
  border-color:#EBC8C1;
  color:#8B352D;
}
/* Arrival: first half of day free, second half occupied */
.sfb-public-cal-day.is-checkin{
  background:linear-gradient(135deg,#EEF3E8 0 49.5%,#F7E2DE 50.5% 100%);
  border-color:#DCCFC7;
  color:#544236;
}
/* Departure: first half occupied, second half free */
.sfb-public-cal-day.is-checkout{
  background:linear-gradient(135deg,#F7E2DE 0 49.5%,#EEF3E8 50.5% 100%);
  border-color:#DCCFC7;
  color:#544236;
}
/* Same-day turnover: visually occupied, with a subtle divider */
.sfb-public-cal-day.is-turnover{
  background:linear-gradient(135deg,#F7E2DE 0 49%,#E8C7C0 49.5% 50.5%,#F7E2DE 51% 100%);
  border-color:#EBC8C1;
  color:#8B352D;
}
.sfb-public-calendar__legend{
  flex-wrap:wrap;
  row-gap:10px;
}
.sfb-public-calendar__legend i.is-checkin{
  background:linear-gradient(135deg,#D5E0C8 0 49%,#E7B7AE 51% 100%);
}
.sfb-public-calendar__legend i.is-checkout{
  background:linear-gradient(135deg,#E7B7AE 0 49%,#D5E0C8 51% 100%);
}
.sfb-public-calendar__note{
  margin-top:10px;
  text-align:center;
  color:#7A7A76;
  font-size:11px;
  line-height:1.4;
}

.sfb-license{
  margin:12px 0;
  font-family:Inter,Arial,sans-serif;
  font-size:13px;
  line-height:1.5;
  color:#6B6B6B;
}
.sfb-license strong{
  color:#2C2C2C;
  font-weight:600;
}


/* Frontend portal login */
.sfb-login-box{
  max-width:520px;
  margin:0 auto;
  padding:30px;
  background:#fff;
  border:1px solid #E8E5DF;
  border-radius:18px;
  box-shadow:0 10px 28px rgba(0,0,0,.04);
  font-family:Inter,Arial,sans-serif;
  color:#2C2C2C;
}
.sfb-login-form{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.sfb-login-form label{
  display:flex;
  flex-direction:column;
  gap:7px;
  font-size:14px;
  font-weight:600;
}
.sfb-login-form input[type="text"],
.sfb-login-form input[type="password"]{
  width:100%;
  box-sizing:border-box;
  border:1px solid #E8E5DF;
  border-radius:12px;
  padding:14px;
  font:inherit;
}
.sfb-login-form input:focus{
  outline:none;
  border-color:#5B6642;
  box-shadow:0 0 0 2px rgba(91,102,66,.10);
}
.sfb-login-form .sfb-login-remember{
  flex-direction:row;
  align-items:center;
  gap:8px;
  font-weight:500;
}
.sfb-login-form button,
.sfb-login-button,
.sfb-logout-button{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  border:0;
  border-radius:14px;
  padding:14px 22px;
  background:#5B6642;
  color:#fff !important;
  text-decoration:none;
  font-weight:700;
  cursor:pointer;
}
.sfb-login-forgot,
.sfb-login-link{
  color:#5B6642;
  text-decoration:none;
  font-size:14px;
}
.sfb-login-error{
  margin-bottom:16px;
  padding:12px 14px;
  border:1px solid #E7C0BA;
  border-radius:12px;
  background:#FFF0EE;
  color:#8A2F27;
  font-weight:600;
}
@media(max-width:767px){
  .sfb-login-box{
    padding:22px;
  }
}


/* Cleaning + Owner portals */
.sfb-portal{
  max-width:1080px;
  margin:0 auto;
  font-family:Inter,Arial,sans-serif;
  color:#2C2C2C;
}
.sfb-portal-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  margin-bottom:28px;
}
.sfb-portal-kicker{
  display:block;
  margin-bottom:4px;
  color:#69764B;
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.sfb-portal h2,
.sfb-portal h3,
.sfb-portal h4{
  margin-top:0;
}
.sfb-portal h2{
  font-family:"Playfair Display",Georgia,serif;
  font-size:34px;
}
.sfb-portal-list{
  display:grid;
  gap:16px;
}
.sfb-portal-card,
.sfb-owner-property{
  border:1px solid #E7E4DD;
  background:#fff;
  border-radius:18px;
  padding:22px;
  box-shadow:0 8px 24px rgba(0,0,0,.035);
}
.sfb-portal-card-top{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  margin-bottom:16px;
}
.sfb-portal-card h3,
.sfb-owner-property h3{
  font-family:"Playfair Display",Georgia,serif;
  font-size:24px;
  margin-bottom:4px;
}
.sfb-portal-guest{
  margin:0;
  color:#707070;
}
.sfb-portal-date{
  white-space:nowrap;
  border-radius:999px;
  background:#F1F5EB;
  color:#4B5A36;
  padding:8px 12px;
  font-size:13px;
  font-weight:700;
}
.sfb-portal-meta{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  color:#555;
  font-size:14px;
}
.sfb-portal-note{
  margin-top:16px;
  background:#F8F6F0;
  border-radius:12px;
  padding:13px 15px;
  font-size:14px;
}
.sfb-portal-empty{
  padding:30px;
  border:1px dashed #DAD7CF;
  border-radius:16px;
  text-align:center;
  color:#777;
}
.sfb-portal-empty-small{
  padding:18px;
}
.sfb-owner-property{
  margin-bottom:24px;
}
.sfb-owner-property-head{
  margin-bottom:18px;
}
.sfb-owner-calendar-wrap{
  max-width:620px;
  margin:0 0 28px;
}
.sfb-owner-property h4{
  margin-bottom:12px;
  font-size:16px;
}
.sfb-owner-bookings{
  border-top:1px solid #ECE9E2;
}
.sfb-owner-booking-row{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:12px 0;
  border-bottom:1px solid #ECE9E2;
  font-size:14px;
}
.sfb-portal-message{
  max-width:700px;
  margin:30px auto;
  padding:20px;
  text-align:center;
  border:1px solid #E7E4DD;
  border-radius:16px;
  background:#fff;
}
@media(max-width:767px){
  .sfb-portal{
    padding:0 14px;
  }
  .sfb-portal-head{
    align-items:center;
  }
  .sfb-portal h2{
    font-size:28px;
  }
  .sfb-portal-card-top{
    flex-direction:column;
  }
  .sfb-portal-meta{
    grid-template-columns:1fr;
  }
  .sfb-owner-booking-row{
    flex-direction:column;
    gap:4px;
  }
}


/* Cleaning switch-board */
.sfb-portal-subtitle{
  margin:6px 0 0;
  color:#777;
}
.sfb-cleaning-board-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  margin-bottom:18px;
  border:1px solid #E7E4DD;
  border-radius:18px;
  background:#fff;
}
.sfb-cleaning-board{
  min-width:1250px;
}
.sfb-cleaning-board-head,
.sfb-cleaning-board-row{
  display:grid;
  grid-template-columns:220px repeat(14,72px);
}
.sfb-cleaning-board-head{
  position:sticky;
  top:0;
  z-index:2;
  background:#FBFAF7;
  border-bottom:1px solid #E7E4DD;
}
.sfb-cleaning-property-col{
  padding:14px 16px;
  border-right:1px solid #E7E4DD;
  display:flex;
  align-items:center;
}
.sfb-cleaning-board-row .sfb-cleaning-property-col{
  background:#fff;
}
.sfb-cleaning-day-head{
  min-height:64px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border-right:1px solid #EEEAE3;
  color:#666;
  font-size:12px;
}
.sfb-cleaning-day-head strong{
  font-size:18px;
  color:#333;
}
.sfb-cleaning-day-head.is-today{
  background:#F0F3E8;
}
.sfb-cleaning-cell{
  min-height:78px;
  padding:7px 5px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  border-right:1px solid #EEEAE3;
  border-bottom:1px solid #EEEAE3;
  font-size:12px;
}
.sfb-cleaning-cell strong{
  font-size:13px;
}
.sfb-cleaning-cell small{
  margin-top:3px;
  font-size:9px;
  line-height:1.2;
  max-width:64px;
  overflow:hidden;
  text-overflow:ellipsis;
}
.sfb-cleaning-cell.is-free{
  background:#FAFAF8;
  color:#AAA;
}
.sfb-cleaning-cell.is-occupied{
  background:#E9EEF0;
  color:#45606A;
}
.sfb-cleaning-cell.is-checkout{
  background:linear-gradient(135deg,#F4D7D1 0 48%,#EEF3E8 52% 100%);
  color:#80382F;
}
.sfb-cleaning-cell.is-checkin{
  background:linear-gradient(135deg,#EEF3E8 0 48%,#D9E9C9 52% 100%);
  color:#486033;
}
.sfb-cleaning-cell.is-turnover{
  background:linear-gradient(135deg,#F4D7D1 0 48%,#D9E9C9 52% 100%);
  color:#443D31;
  box-shadow:inset 0 0 0 2px #C9B68C;
}
.sfb-cleaning-legend{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin:12px 0 28px;
  font-size:13px;
  color:#666;
}
.sfb-cleaning-legend span{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.sfb-cleaning-legend i{
  width:14px;
  height:14px;
  border-radius:4px;
  display:inline-block;
}
.sfb-cleaning-legend i.is-checkout{
  background:linear-gradient(135deg,#F4D7D1 0 48%,#EEF3E8 52% 100%);
}
.sfb-cleaning-legend i.is-checkin{
  background:linear-gradient(135deg,#EEF3E8 0 48%,#D9E9C9 52% 100%);
}
.sfb-cleaning-legend i.is-turnover{
  background:linear-gradient(135deg,#F4D7D1 0 48%,#D9E9C9 52% 100%);
}
.sfb-cleaning-legend i.is-occupied{
  background:#E9EEF0;
}
.sfb-cleaning-upcoming{
  margin-top:12px;
}
.sfb-cleaning-upcoming h3{
  font-family:"Playfair Display",Georgia,serif;
  font-size:26px;
  margin-bottom:14px;
}
.sfb-cleaning-event-list{
  display:grid;
  gap:10px;
}
.sfb-cleaning-event{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:14px 16px;
  border:1px solid #E7E4DD;
  border-radius:14px;
  background:#fff;
}
.sfb-cleaning-event small{
  display:block;
  margin-top:3px;
  color:#777;
}
.sfb-cleaning-event-right{
  display:flex;
  gap:10px;
  align-items:center;
  color:#666;
  font-size:13px;
}
@media(max-width:767px){
  .sfb-cleaning-board-head,
  .sfb-cleaning-board-row{
    grid-template-columns:170px repeat(14,66px);
  }
  .sfb-cleaning-event{
    flex-direction:column;
  }
  .sfb-cleaning-event-right{
    flex-wrap:wrap;
  }
}


/* v0.9.7 cleaning board refinements */
.sfb-cleaning-cell.is-occupied{
  background:#DDE9CF;
  color:#3E512E;
}
.sfb-cleaning-guest-label{
  width:150px;
  position:relative;
  z-index:3;
  text-align:center;
  pointer-events:none;
}
.sfb-cleaning-guest-label strong{
  display:block;
  font-size:12px;
  line-height:1.15;
  white-space:nowrap;
}
.sfb-cleaning-guest-label small{
  display:block;
  margin-top:3px;
  font-size:10px;
  line-height:1.15;
  white-space:nowrap;
  color:#536345;
}


/* Manager frontend dashboard */
.sfb-manager-actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}
.sfb-manager-sync,
.sfb-manager-save{
  border:0;
  border-radius:12px;
  padding:12px 16px;
  background:#5B6642;
  color:#fff;
  font-weight:700;
  cursor:pointer;
}
.sfb-manager-sync:disabled,
.sfb-manager-save:disabled{
  opacity:.6;
  cursor:default;
}
.sfb-manager-sync-message{
  margin:-12px 0 20px;
  font-size:13px;
  font-weight:600;
}
.sfb-manager-sync-message.is-ok,
.sfb-manager-save-message.is-ok{
  color:#3F6A35;
}
.sfb-manager-sync-message.is-error,
.sfb-manager-save-message.is-error{
  color:#9A332B;
}
.sfb-manager-properties{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:28px;
}
.sfb-manager-property-card{
  border:1px solid #E7E4DD;
  border-radius:12px;
  padding:10px 14px;
  background:#FAF9F6;
}
.sfb-manager-property-card strong,
.sfb-manager-property-card small{
  display:block;
}
.sfb-manager-property-card small{
  margin-top:2px;
  color:#777;
}
.sfb-manager-bookings h3{
  font-family:"Playfair Display",Georgia,serif;
  font-size:28px;
}
.sfb-manager-booking{
  margin-bottom:14px;
  padding:18px;
  border:1px solid #E7E4DD;
  border-radius:16px;
  background:#fff;
}
.sfb-manager-booking-summary{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  margin-bottom:16px;
}
.sfb-manager-booking-summary h4{
  margin:0 0 3px;
  font-family:"Playfair Display",Georgia,serif;
  font-size:21px;
}
.sfb-manager-booking-summary p{
  margin:0;
  color:#6F6F6F;
}
.sfb-manager-booking-tags{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
.sfb-manager-booking-tags span{
  padding:6px 9px;
  border-radius:999px;
  background:#F0F3E8;
  color:#4F5E3B;
  font-size:11px;
  font-weight:700;
}
.sfb-manager-edit-grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:12px;
}
.sfb-manager-edit-grid label{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:12px;
  font-weight:700;
  color:#5E5E5E;
}
.sfb-manager-edit-grid input,
.sfb-manager-edit-grid textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #E1DED6;
  border-radius:10px;
  padding:10px 11px;
  font:inherit;
  background:#fff;
}
.sfb-manager-note-field{
  grid-column:1/-1;
}
.sfb-manager-booking-footer{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:12px;
}
.sfb-manager-save-message{
  font-size:13px;
  font-weight:700;
}
@media(max-width:767px){
  .sfb-manager-booking-summary{
    flex-direction:column;
  }
  .sfb-manager-edit-grid{
    grid-template-columns:1fr;
  }
  .sfb-manager-note-field{
    grid-column:auto;
  }
}


/* Owner create booking */
.sfb-owner-create-box{
  margin:0 0 22px;
  padding:16px;
  border:1px solid #E7E4DD;
  border-radius:14px;
  background:#FAF9F6;
}
.sfb-owner-create-box h4{
  margin:0 0 12px;
  font-size:16px;
}
.sfb-owner-create-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
}
.sfb-owner-create-grid label{
  display:flex;
  flex-direction:column;
  gap:5px;
  font-size:11px;
  font-weight:700;
  color:#666;
}
.sfb-owner-create-grid input,
.sfb-owner-create-grid textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #DDD9D0;
  border-radius:9px;
  padding:9px 10px;
  font:inherit;
  background:#fff;
}
.sfb-owner-note-field{
  grid-column:1/-1;
}
.sfb-owner-create-footer{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:10px;
}
.sfb-owner-create{
  border:0;
  border-radius:10px;
  padding:10px 14px;
  background:#5B6642;
  color:#fff;
  font-weight:700;
  cursor:pointer;
}
.sfb-owner-create-message{
  font-size:13px;
  font-weight:700;
}
.sfb-owner-create-message.is-ok{ color:#3F6A35; }
.sfb-owner-create-message.is-error{ color:#9A332B; }

@media(max-width:900px){
  .sfb-owner-create-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:600px){
  .sfb-owner-create-grid{
    grid-template-columns:1fr;
  }
  .sfb-owner-note-field{
    grid-column:auto;
  }
}


/* v0.10.1 portal cleanup and owner controls */
.sfb-owner-booking-row{
  align-items:flex-start;
}
.sfb-owner-booking-main{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  align-items:center;
  flex:1;
}
.sfb-owner-booking-actions{
  display:flex;
  gap:8px;
  margin-left:auto;
}
.sfb-owner-booking-actions button,
.sfb-owner-save-edit{
  border:1px solid #D8D4CA;
  border-radius:9px;
  padding:8px 11px;
  background:#fff;
  color:#56623F;
  font-weight:700;
  cursor:pointer;
}
.sfb-owner-booking-actions .sfb-owner-delete{
  color:#9A3A32;
}
.sfb-owner-edit-panel{
  width:100%;
  margin-top:12px;
  padding:14px;
  border-radius:12px;
  background:#FAF9F6;
}
.sfb-owner-edit-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.sfb-owner-edit-grid label{
  display:flex;
  flex-direction:column;
  gap:5px;
  font-size:11px;
  font-weight:700;
  color:#666;
}
.sfb-owner-edit-grid input,
.sfb-owner-edit-grid textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #DDD9D0;
  border-radius:9px;
  padding:9px 10px;
  font:inherit;
  background:#fff;
}
.sfb-owner-edit-grid .sfb-owner-note-field{
  grid-column:1/-1;
}
.sfb-owner-edit-footer{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:10px;
}
.sfb-owner-edit-message{
  font-size:13px;
  font-weight:700;
}
.sfb-owner-edit-message.is-ok{color:#3F6A35;}
.sfb-owner-edit-message.is-error{color:#9A332B;}

/* Put guest name on the second row on tablet-sized owner forms. */
@media (min-width:768px) and (max-width:1180px){
  .sfb-owner-create-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .sfb-owner-create-grid .sfb-owner-name-field{
    grid-column:1/3;
    grid-row:2;
  }
  .sfb-owner-create-grid .sfb-owner-note-field{
    grid-column:1/-1;
  }

  .sfb-owner-edit-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .sfb-owner-edit-grid .sfb-owner-name-field{
    grid-column:1/3;
    grid-row:2;
  }
}

@media(max-width:767px){
  .sfb-owner-booking-row{
    flex-direction:column;
  }
  .sfb-owner-booking-actions{
    margin-left:0;
  }
  .sfb-owner-edit-grid{
    grid-template-columns:1fr;
  }
  .sfb-owner-edit-grid .sfb-owner-name-field,
  .sfb-owner-edit-grid .sfb-owner-note-field{
    grid-column:auto;
    grid-row:auto;
  }
}


/* v0.10.3 - Cleaning bookings separated by property */
.sfb-cleaning-property-list{display:grid;gap:22px}
.sfb-cleaning-property-section{border:1px solid #E5E1D8;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 7px 20px rgba(0,0,0,.03)}
.sfb-cleaning-property-title{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;background:#F6F7F1;border-bottom:1px solid #E5E1D8}
.sfb-cleaning-property-title h3{margin:0;font-family:"Playfair Display",Georgia,serif;font-size:24px}
.sfb-cleaning-property-title span{font-size:12px;color:#6B735A}
.sfb-cleaning-stay-list{padding:0 20px}
.sfb-cleaning-stay{display:grid;grid-template-columns:220px minmax(220px,1fr) minmax(180px,1fr);gap:22px;align-items:center;padding:18px 0;border-bottom:1px solid #ECE9E2}
.sfb-cleaning-stay:last-child{border-bottom:0}
.sfb-cleaning-stay.is-today{margin:0 -20px;padding-left:20px;padding-right:20px;background:#FFF7D9}
.sfb-cleaning-stay-dates{display:flex;align-items:center;gap:12px}
.sfb-cleaning-stay-dates div{display:flex;flex-direction:column;gap:2px}
.sfb-cleaning-stay-dates small,.sfb-cleaning-stay-note small{color:#777;font-size:10px;text-transform:uppercase;letter-spacing:.07em}
.sfb-cleaning-stay-dates strong{font-size:20px;color:#4C593A}
.sfb-cleaning-stay-guest{display:flex;flex-direction:column;gap:4px}
.sfb-cleaning-stay-guest strong{font-size:16px}
.sfb-cleaning-stay-guest span{color:#5F5F5F;font-size:13px}
.sfb-cleaning-stay .is-missing{color:#A06B61;font-style:italic;font-weight:500}
.sfb-cleaning-stay-note{display:flex;flex-direction:column;gap:4px;color:#555;font-size:13px}
.sfb-cleaning-no-bookings{padding:24px 20px;color:#888;font-size:14px}
@media(max-width:900px){
 .sfb-cleaning-stay{grid-template-columns:190px 1fr}
 .sfb-cleaning-stay-note{grid-column:1/-1}
}
@media(max-width:600px){
 .sfb-cleaning-property-title{align-items:flex-start;flex-direction:column;gap:4px}
 .sfb-cleaning-stay{grid-template-columns:1fr;gap:12px}
 .sfb-cleaning-stay-note{grid-column:auto}
}


/* v0.10.4 */
.sfb-cleaning-section-heading{
  margin:26px 0 12px;
  font-family:"Playfair Display",Georgia,serif;
  font-size:24px;
  color:#353535;
}


/* v0.10.5 baby equipment */
.sfb-owner-extra-field,
.sfb-manager-extra-field{
  display:flex;
  align-items:flex-end;
}
.sfb-owner-extra-field span,
.sfb-manager-extra-field span{
  display:flex;
  align-items:center;
  gap:7px;
  min-height:40px;
  font-weight:700;
  color:#555;
}
.sfb-owner-extra-field input,
.sfb-manager-extra-field input{
  width:auto !important;
}
.sfb-cleaning-extras{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:6px;
}
.sfb-cleaning-extras span{
  display:inline-flex;
  align-items:center;
  padding:5px 8px;
  border-radius:999px;
  background:#F3EFE3;
  color:#5C523A;
  font-size:12px;
  font-weight:700;
}


/* v0.10.6 cleaning accounting */
.sfb-manager-cleaning-account{
  margin:28px 0 34px;
}
.sfb-manager-cleaning-head{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-end;
  margin-bottom:14px;
}
.sfb-manager-cleaning-head h3{
  margin:0 0 4px;
  font-family:"Playfair Display",Georgia,serif;
  font-size:28px;
}
.sfb-manager-cleaning-head p{
  margin:0;
  color:#777;
  font-size:13px;
}
.sfb-manager-cleaning-total{
  min-width:130px;
  text-align:right;
}
.sfb-manager-cleaning-total small{
  display:block;
  color:#777;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.sfb-manager-cleaning-total strong{
  display:block;
  margin-top:2px;
  font-size:26px;
  color:#8B3C34;
}
.sfb-manager-cleaning-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-bottom:16px;
}
.sfb-cleaning-summary-card{
  padding:14px;
  border:1px solid #E5E1D8;
  border-radius:13px;
  background:#FAF9F6;
}
.sfb-cleaning-summary-card strong,
.sfb-cleaning-summary-card span,
.sfb-cleaning-summary-card small{
  display:block;
}
.sfb-cleaning-summary-card strong{
  margin-bottom:7px;
}
.sfb-cleaning-summary-card span{
  font-size:14px;
}
.sfb-cleaning-summary-card span b{
  color:#8B3C34;
}
.sfb-cleaning-summary-card small{
  margin-top:3px;
  color:#777;
}
.sfb-cleaning-summary-card.is-total{
  background:#F0F3E8;
  border-color:#D9DFC9;
}
.sfb-manager-cleaning-list{
  border:1px solid #E5E1D8;
  border-radius:15px;
  overflow:hidden;
  background:#fff;
}
.sfb-manager-cleaning-row{
  display:grid;
  grid-template-columns:minmax(230px,1fr) 90px 130px 95px;
  gap:14px;
  align-items:center;
  padding:13px 15px;
  border-bottom:1px solid #ECE9E2;
}
.sfb-manager-cleaning-row:last-child{
  border-bottom:0;
}
.sfb-manager-cleaning-row.is-paid{
  background:#F4F8EF;
}
.sfb-manager-cleaning-row.is-unpaid{
  background:#FFFDFC;
}
.sfb-manager-cleaning-row > div:first-child strong,
.sfb-manager-cleaning-row > div:first-child span,
.sfb-manager-cleaning-row > div:first-child small{
  display:block;
}
.sfb-manager-cleaning-row > div:first-child span{
  margin-top:2px;
  color:#666;
  font-size:13px;
}
.sfb-manager-cleaning-row > div:first-child small{
  color:#888;
}
.sfb-manager-cleaning-amount{
  font-weight:800;
  font-size:16px;
}
.sfb-manager-cleaning-check{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:13px;
  font-weight:700;
}
.sfb-manager-cleaning-paidat{
  color:#777;
  font-size:12px;
  text-align:right;
}
@media(max-width:900px){
  .sfb-manager-cleaning-summary{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .sfb-manager-cleaning-row{
    grid-template-columns:1fr auto;
  }
  .sfb-manager-cleaning-check,
  .sfb-manager-cleaning-paidat{
    grid-column:auto;
  }
}
@media(max-width:600px){
  .sfb-manager-cleaning-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .sfb-manager-cleaning-total{
    text-align:left;
  }
  .sfb-manager-cleaning-summary{
    grid-template-columns:1fr;
  }
}


/* v0.10.7 cleaning payment visibility */
.sfb-cleaning-balance{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin:18px 0 8px;
  padding:16px 18px;
  border-radius:14px;
  background:#F6F1E8;
  border:1px solid #E5DAC6;
}
.sfb-cleaning-balance span{
  font-size:13px;
  color:#6E6558;
  font-weight:700;
}
.sfb-cleaning-balance strong{
  font-size:24px;
  color:#8B3C34;
}
.sfb-cleaning-property-title > div:first-child span{
  display:block;
  margin-top:3px;
}
.sfb-cleaning-property-due{
  text-align:right;
}
.sfb-cleaning-property-due small,
.sfb-cleaning-property-due strong{
  display:block;
}
.sfb-cleaning-property-due small{
  color:#777;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.sfb-cleaning-property-due strong{
  margin-top:2px;
  color:#8B3C34;
  font-size:18px;
}
.sfb-cleaning-stay{
  grid-template-columns:220px minmax(220px,1fr) 105px minmax(180px,1fr);
}
.sfb-cleaning-stay-payment{
  display:flex;
  flex-direction:column;
  gap:2px;
  align-items:flex-start;
}
.sfb-cleaning-stay-payment small{
  color:#777;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.sfb-cleaning-stay-payment strong{
  font-size:17px;
}
.sfb-cleaning-stay-payment span{
  font-size:11px;
  font-weight:700;
}
.sfb-cleaning-stay-payment.is-paid{
  color:#557048;
}
.sfb-cleaning-stay-payment.is-due{
  color:#9A4A40;
}
@media(max-width:900px){
  .sfb-cleaning-stay{
    grid-template-columns:190px 1fr 90px;
  }
  .sfb-cleaning-stay-note{
    grid-column:1/-1;
  }
}
@media(max-width:600px){
  .sfb-cleaning-property-due{
    text-align:left;
  }
  .sfb-cleaning-stay{
    grid-template-columns:1fr;
  }
}


/* v0.10.8 cleaning task/payment logic */
.sfb-cleaning-stay-payment.is-upcoming{
  color:#6E735E;
}
.sfb-cleaning-task-list{
  display:grid;
  gap:10px;
}
.sfb-cleaning-task{
  display:grid;
  grid-template-columns:minmax(220px,1.4fr) minmax(180px,1fr) 100px;
  gap:18px;
  align-items:center;
  padding:14px 16px;
  border:1px solid #E7DED4;
  border-radius:14px;
  background:#FFFDFC;
}
.sfb-cleaning-task-main strong,
.sfb-cleaning-task-main span,
.sfb-cleaning-task-main small{
  display:block;
}
.sfb-cleaning-task-main span{
  margin-top:3px;
  color:#666;
  font-size:13px;
}
.sfb-cleaning-task-main small{
  margin-top:2px;
  color:#888;
}
.sfb-cleaning-task-guests{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  color:#555;
  font-size:13px;
}
.sfb-cleaning-task-amount{
  text-align:right;
}
.sfb-cleaning-task-amount small,
.sfb-cleaning-task-amount strong{
  display:block;
}
.sfb-cleaning-task-amount small{
  color:#9A4A40;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.sfb-cleaning-task-amount strong{
  margin-top:2px;
  color:#9A4A40;
  font-size:20px;
}
@media(max-width:700px){
  .sfb-cleaning-task{
    grid-template-columns:1fr;
    gap:10px;
  }
  .sfb-cleaning-task-amount{
    text-align:left;
  }
}


/* v0.11.0 manual booking price */
.sfb-manager-price-field{
  grid-column:1/2;
}
.sfb-manager-price-field small{
  margin-top:2px;
  color:#777;
  font-size:10px;
  font-weight:500;
}
@media(max-width:767px){
  .sfb-manager-price-field{
    grid-column:auto;
  }
}


/* v0.11.6 manager booking overview */
.sfb-manager-booking-list-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  margin-bottom:14px;
}
.sfb-manager-booking-filters{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.sfb-manager-filter{
  border:1px solid #D9D5CC;
  border-radius:999px;
  background:#fff;
  padding:7px 11px;
  color:#586344;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.sfb-manager-filter.is-active{
  background:#5B6642;
  border-color:#5B6642;
  color:#fff;
}
.sfb-manager-property-groups{
  display:grid;
  gap:14px;
}
.sfb-manager-property-group{
  border:1px solid #E6E2DA;
  border-radius:16px;
  overflow:hidden;
  background:#fff;
}
.sfb-manager-group-toggle{
  width:100%;
  border:0;
  background:#F6F7F1;
  padding:14px 17px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  cursor:pointer;
  color:#343434;
}
.sfb-manager-group-toggle span{
  font-family:"Playfair Display",Georgia,serif;
  font-size:21px;
  font-weight:700;
}
.sfb-manager-group-toggle small{
  color:#777;
}
.sfb-manager-group-body{
  padding:0 14px;
}
.sfb-manager-booking.is-compact{
  margin:0;
  padding:0;
  border:0;
  border-bottom:1px solid #ECE9E2;
  border-radius:0;
  box-shadow:none;
}
.sfb-manager-booking.is-compact:last-child{
  border-bottom:0;
}
.sfb-manager-booking-compact{
  display:grid;
  grid-template-columns:175px minmax(220px,1fr) 105px 125px 80px;
  gap:14px;
  align-items:center;
  padding:14px 2px;
}
.sfb-manager-booking-date strong,
.sfb-manager-booking-date span,
.sfb-manager-booking-guest strong,
.sfb-manager-booking-guest span{
  display:block;
}
.sfb-manager-booking-date strong{
  color:#4B5A38;
}
.sfb-manager-booking-date span,
.sfb-manager-booking-guest span{
  color:#777;
  font-size:12px;
  margin-top:2px;
}
.sfb-manager-booking-price{
  text-align:right;
}
.sfb-manager-booking-paid-toggle{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  font-weight:700;
}
.sfb-manager-booking-paid-toggle input{
  width:auto;
}
.sfb-manager-booking-edit-toggle{
  border:1px solid #D9D5CC;
  border-radius:9px;
  background:#fff;
  padding:8px 10px;
  color:#586344;
  font-weight:700;
  cursor:pointer;
}
.sfb-manager-booking-edit-panel{
  padding:2px 0 16px;
}
.sfb-manager-booking.is-booking-paid{
  background:#FBFDF9;
}
@media(max-width:950px){
  .sfb-manager-booking-compact{
    grid-template-columns:150px 1fr 100px 110px;
  }
  .sfb-manager-booking-edit-toggle{
    grid-column:1/-1;
    width:max-content;
  }
}
@media(max-width:700px){
  .sfb-manager-booking-list-head{
    flex-direction:column;
  }
  .sfb-manager-booking-compact{
    grid-template-columns:1fr 1fr;
  }
  .sfb-manager-booking-price{
    text-align:left;
  }
  .sfb-manager-booking-edit-toggle{
    grid-column:auto;
  }
}


/* v0.12.0 manager workspace */
.sfb-manager-topbar{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  margin-bottom:16px;
}
.sfb-manager-topbar h2{
  margin:4px 0 0;
  font-family:"Playfair Display",Georgia,serif;
  font-size:38px;
}
.sfb-manager-nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:24px;
  padding:8px;
  border:1px solid #E5E1D8;
  border-radius:14px;
  background:#FAF9F6;
}
.sfb-manager-nav button{
  border:0;
  border-radius:10px;
  padding:10px 14px;
  background:transparent;
  color:#5B6642;
  font-weight:700;
  cursor:pointer;
}
.sfb-manager-nav button.is-active{
  background:#fff;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
}
.sfb-manager-nav button.is-primary{
  margin-left:auto;
  background:#5B6642;
  color:#fff;
}
.sfb-manager-section{
  display:none;
}
.sfb-manager-section.is-active{
  display:block;
}
.sfb-manager-stat-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.sfb-manager-stat-card{
  padding:18px;
  border:1px solid #E5E1D8;
  border-radius:15px;
  background:#fff;
}
.sfb-manager-stat-card small,
.sfb-manager-stat-card strong,
.sfb-manager-stat-card span{
  display:block;
}
.sfb-manager-stat-card small{
  color:#777;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.sfb-manager-stat-card strong{
  margin:4px 0;
  font-size:28px;
  color:#485638;
}
.sfb-manager-stat-card span{
  color:#777;
  font-size:12px;
}
.sfb-manager-overview-block{
  margin-top:26px;
}
.sfb-manager-section-title{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:16px;
  margin-bottom:14px;
}
.sfb-manager-section-title h3{
  margin:0;
  font-family:"Playfair Display",Georgia,serif;
  font-size:28px;
}
.sfb-manager-section-title p{
  margin:3px 0 0;
  color:#777;
  font-size:13px;
}
.sfb-manager-upcoming-list{
  border:1px solid #E5E1D8;
  border-radius:15px;
  overflow:hidden;
  background:#fff;
}
.sfb-manager-upcoming-row{
  display:grid;
  grid-template-columns:minmax(220px,1fr) 190px 190px;
  gap:16px;
  padding:14px 16px;
  border-bottom:1px solid #ECE9E2;
}
.sfb-manager-upcoming-row:last-child{border-bottom:0}
.sfb-manager-upcoming-row > div:first-child strong,
.sfb-manager-upcoming-row > div:first-child span,
.sfb-manager-upcoming-row small,
.sfb-manager-upcoming-row > div:not(:first-child) strong{
  display:block;
}
.sfb-manager-upcoming-row > div:first-child span{
  margin-top:2px;
  color:#777;
}
.sfb-manager-upcoming-row small{
  color:#888;
  font-size:10px;
  text-transform:uppercase;
}
.sfb-manager-calendar-controls{
  display:flex;
  align-items:center;
  gap:10px;
}
.sfb-manager-calendar-controls button{
  border:1px solid #D8D4CC;
  background:#fff;
  border-radius:9px;
  width:36px;
  height:36px;
  font-size:22px;
  cursor:pointer;
}
.sfb-manager-calendar-wrap{
  overflow-x:auto;
  border:1px solid #E5E1D8;
  border-radius:15px;
  background:#fff;
}
.sfb-manager-calendar{
  min-width:max-content;
}
.sfb-manager-calendar-head{
  display:grid;
  align-items:stretch;
  border-bottom:1px solid #E5E1D8;
  background:#F7F6F2;
}
.sfb-manager-cal-property-name{
  position:sticky;
  left:0;
  z-index:3;
  display:flex;
  align-items:center;
  padding:10px 12px;
  background:#F7F6F2;
  border-right:1px solid #E5E1D8;
  font-weight:700;
}
.sfb-manager-cal-head-day{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:50px;
  border-right:1px solid #EEEAE3;
}
.sfb-manager-cal-head-day small{
  color:#888;
  font-size:9px;
}
.sfb-manager-cal-head-day strong{
  font-size:13px;
}
.sfb-manager-cal-property{
  display:grid;
  grid-template-columns:190px auto;
  border-bottom:1px solid #ECE9E2;
}
.sfb-manager-cal-property:last-child{border-bottom:0}
.sfb-manager-cal-property .sfb-manager-cal-property-name{
  background:#fff;
}
.sfb-manager-cal-days{
  display:grid;
}
.sfb-manager-cal-day{
  width:32px;
  height:42px;
  box-sizing:border-box;
  border-right:1px solid #F0EDE7;
}
.sfb-manager-cal-day.is-free{background:#EDF3E5}
.sfb-manager-cal-day.is-booked{background:#E9B5AD}
.sfb-manager-cal-day.is-checkin{background:linear-gradient(135deg,#EDF3E5 50%,#E9B5AD 50%)}
.sfb-manager-cal-day.is-checkout{background:linear-gradient(135deg,#E9B5AD 50%,#EDF3E5 50%)}
.sfb-manager-cal-day.is-turnover{background:linear-gradient(135deg,#E9B5AD 48%,#fff 48%,#fff 52%,#E9B5AD 52%)}
.sfb-manager-cal-legend{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin-top:10px;
  color:#666;
  font-size:12px;
}
.sfb-manager-cal-legend span{
  display:flex;
  align-items:center;
  gap:6px;
}
.sfb-manager-cal-legend i{
  width:16px;
  height:16px;
  border-radius:4px;
}
.sfb-manager-cal-legend i.is-free{background:#EDF3E5}
.sfb-manager-cal-legend i.is-booked{background:#E9B5AD}
.sfb-manager-cal-legend i.is-turnover{background:linear-gradient(135deg,#E9B5AD 50%,#EDF3E5 50%)}
.sfb-manager-create-card{
  padding:18px;
  border:1px solid #E5E1D8;
  border-radius:16px;
  background:#FAF9F6;
}
.sfb-manager-create-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.sfb-manager-create-grid label{
  display:flex;
  flex-direction:column;
  gap:5px;
  font-size:11px;
  font-weight:700;
  color:#666;
}
.sfb-manager-create-grid input,
.sfb-manager-create-grid select,
.sfb-manager-create-grid textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #DCD8CF;
  border-radius:10px;
  padding:10px 11px;
  background:#fff;
  font:inherit;
}
.sfb-manager-create-check{
  justify-content:flex-end;
}
.sfb-manager-create-check span{
  display:flex;
  align-items:center;
  gap:7px;
  min-height:40px;
}
.sfb-manager-create-check input{width:auto}
.sfb-manager-create-note{grid-column:1/-1}
.sfb-manager-create-footer{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:12px;
}
.sfb-manager-create-booking{
  border:0;
  border-radius:10px;
  padding:11px 15px;
  background:#5B6642;
  color:#fff;
  font-weight:700;
  cursor:pointer;
}
.sfb-manager-create-message{
  font-size:13px;
  font-weight:700;
}
.sfb-manager-create-message.is-ok{color:#4A6D3B}
.sfb-manager-create-message.is-error{color:#9A4037}
.sfb-manager-booking-dates{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.sfb-manager-booking-dates small,
.sfb-manager-booking-dates strong{
  display:block;
}
.sfb-manager-booking-dates small{
  color:#888;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.sfb-manager-booking-price small{
  display:block;
  margin-top:2px;
  color:#777;
  font-size:10px;
}
.sfb-cleaning-payment-filters{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.sfb-cleaning-payment-filters button{
  border:1px solid #D9D5CC;
  background:#fff;
  border-radius:999px;
  padding:7px 11px;
  font-weight:700;
  color:#5B6642;
  cursor:pointer;
}
.sfb-cleaning-payment-filters button.is-active{
  background:#5B6642;
  border-color:#5B6642;
  color:#fff;
}
.sfb-economy-main-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.sfb-economy-card{
  padding:18px;
  border:1px solid #E5E1D8;
  border-radius:15px;
  background:#fff;
}
.sfb-economy-card small,
.sfb-economy-card strong,
.sfb-economy-card span{
  display:block;
}
.sfb-economy-card small{
  color:#777;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.sfb-economy-card strong{
  margin:5px 0;
  font-size:25px;
}
.sfb-economy-card span{
  color:#777;
  font-size:11px;
}
.sfb-economy-card.is-accent{
  background:#F0F3E8;
  border-color:#D8DFC8;
}
.sfb-economy-period-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:14px 0;
}
.sfb-economy-period-grid > div{
  padding:16px;
  border:1px solid #E5E1D8;
  border-radius:14px;
  background:#FAF9F6;
}
.sfb-economy-period-grid small,
.sfb-economy-period-grid strong,
.sfb-economy-period-grid span{
  display:block;
}
.sfb-economy-period-grid strong{
  margin:4px 0;
  font-size:22px;
}
.sfb-economy-period-grid span{
  color:#5B6642;
  font-weight:700;
}
.sfb-economy-property-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:18px;
}
.sfb-economy-property-card{
  padding:17px;
  border:1px solid #E5E1D8;
  border-radius:15px;
  background:#fff;
}
.sfb-economy-property-card h4{
  margin:0 0 12px;
  font-family:"Playfair Display",Georgia,serif;
  font-size:20px;
}
.sfb-economy-property-card > div{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:6px 0;
  border-top:1px solid #F0EDE7;
}
.sfb-economy-property-card .is-commission{
  color:#506039;
  font-weight:700;
}
.sfb-economy-booking-table{
  border:1px solid #E5E1D8;
  border-radius:15px;
  overflow:hidden;
}
.sfb-economy-table-head,
.sfb-economy-table-row{
  display:grid;
  grid-template-columns:minmax(200px,1.4fr) 120px 120px 105px 150px 100px;
  gap:10px;
  align-items:center;
  padding:11px 14px;
}
.sfb-economy-table-head{
  background:#F7F6F2;
  color:#777;
  font-size:10px;
  text-transform:uppercase;
  font-weight:700;
}
.sfb-economy-table-row{
  border-top:1px solid #ECE9E2;
  font-size:12px;
}
.sfb-economy-table-row > span:first-child strong,
.sfb-economy-table-row > span:first-child small{
  display:block;
}
.sfb-economy-table-row > span:first-child small{
  color:#888;
}
@media(max-width:950px){
  .sfb-manager-stat-grid,
  .sfb-economy-main-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .sfb-manager-create-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .sfb-economy-property-grid{
    grid-template-columns:1fr 1fr;
  }
  .sfb-economy-booking-table{
    overflow-x:auto;
  }
  .sfb-economy-table-head,
  .sfb-economy-table-row{
    min-width:850px;
  }
}
@media(max-width:650px){
  .sfb-manager-topbar,
  .sfb-manager-section-title{
    flex-direction:column;
    align-items:flex-start;
  }
  .sfb-manager-nav button.is-primary{
    margin-left:0;
  }
  .sfb-manager-stat-grid,
  .sfb-economy-main-grid,
  .sfb-economy-period-grid,
  .sfb-economy-property-grid,
  .sfb-manager-create-grid{
    grid-template-columns:1fr;
  }
  .sfb-manager-upcoming-row{
    grid-template-columns:1fr;
  }
}


/* v0.12.2 calendar guest names */
.sfb-manager-cal-days{
  position:relative;
}
.sfb-manager-cal-booking-label{
  position:absolute;
  top:11px;
  z-index:2;
  height:20px;
  line-height:20px;
  padding:0 5px;
  box-sizing:border-box;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  text-align:center;
  color:#5B3D37;
  font-size:11px;
  font-weight:800;
  pointer-events:none;
  text-shadow:0 1px 0 rgba(255,255,255,.55);
}


/* v0.13.0 economy by property + partial payments */
.sfb-economy-total-commission{background:#eef1e5;border:1px solid #d8dec8;border-radius:16px;padding:12px 18px;text-align:right}
.sfb-economy-total-commission small{display:block;color:#777;text-transform:uppercase;font-size:11px;letter-spacing:.05em}
.sfb-economy-total-commission strong{font-size:24px;color:#5d6d3f}
.sfb-economy-properties{display:grid;gap:24px}
.sfb-economy-property-section{border:1px solid #e5e0d7;border-radius:22px;overflow:hidden;background:#fff}
.sfb-economy-property-heading{display:flex;align-items:center;gap:10px;padding:22px 24px 10px}
.sfb-economy-property-heading h4{margin:0;font-size:28px}
.sfb-economy-property-heading span{color:#888}
.sfb-economy-property-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 24px 22px}
.sfb-economy-property-stats>div{border:1px solid #e8e3da;border-radius:14px;padding:14px}
.sfb-economy-property-stats small,.sfb-economy-booking-row small{display:block;color:#888;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.sfb-economy-property-stats strong{display:block;font-size:22px;margin-top:5px}
.sfb-economy-property-stats .is-remaining strong{color:#9b4436}
.sfb-economy-property-stats .is-commission{background:#f2f4e9}.sfb-economy-property-stats .is-commission strong{color:#5d6d3f}
.sfb-economy-property-bookings{border-top:1px solid #e8e3da}
.sfb-economy-booking-row{display:grid;grid-template-columns:minmax(190px,2fr) repeat(4,minmax(100px,1fr)) auto;gap:18px;align-items:center;padding:16px 24px;border-bottom:1px solid #eee9e1}
.sfb-economy-booking-row:last-child{border-bottom:0}
.sfb-economy-booking-who span{display:block;color:#777;margin-top:3px}
.sfb-economy-status strong{color:#5d6d3f}
.sfb-payment-toggle,.sfb-add-payment{border:1px solid #607044;background:#fff;color:#607044;border-radius:10px;padding:9px 12px;font-weight:700;cursor:pointer}
.sfb-add-payment{background:#607044;color:#fff}
.sfb-payment-panel{display:none;grid-column:1/-1;background:#faf9f6;border-radius:14px;padding:15px;margin-top:2px}
.sfb-payment-fields{display:grid;grid-template-columns:1fr 1fr 1fr 2fr auto;gap:10px;align-items:end}
.sfb-payment-fields label span{display:block;font-size:12px;color:#777;margin-bottom:5px}
.sfb-payment-fields input,.sfb-payment-fields select{width:100%;box-sizing:border-box;padding:10px;border:1px solid #d8d2c8;border-radius:8px;background:#fff}
.sfb-payment-message{font-size:12px}.sfb-payment-message.is-ok{color:#607044}.sfb-payment-message.is-error{color:#a33}
.sfb-payment-history{margin-top:14px;border-top:1px solid #e1dcd3;padding-top:10px}
.sfb-payment-history>div{display:grid;grid-template-columns:100px 110px 140px 1fr;gap:12px;padding:5px 0;font-size:13px}
.sfb-payment-history em{color:#777}
@media(max-width:1100px){
 .sfb-economy-property-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .sfb-economy-booking-row{grid-template-columns:repeat(3,1fr)}
 .sfb-economy-booking-who{grid-column:1/-1}
 .sfb-payment-fields{grid-template-columns:1fr 1fr}
}
@media(max-width:650px){
 .sfb-economy-property-stats{grid-template-columns:1fr}
 .sfb-economy-booking-row{grid-template-columns:1fr 1fr;padding:14px}
 .sfb-payment-fields{grid-template-columns:1fr}
 .sfb-payment-history>div{grid-template-columns:1fr 1fr}
}


/* v0.13.1 clickable calendar bookings */
.sfb-manager-cal-booking-label{
  pointer-events:auto;
  cursor:pointer;
}
.sfb-manager-cal-booking-label:hover{
  text-decoration:underline;
}


/* v0.13.2 booking payment status */
.sfb-manager-booking-payment-summary{min-width:160px}
.sfb-manager-booking-payment-summary strong,
.sfb-manager-booking-payment-summary small{display:block}
.sfb-manager-booking-payment-summary strong{font-size:13px}
.sfb-manager-booking-payment-summary small{margin-top:2px;color:#777;font-size:10px}
.sfb-manager-booking-payment-summary.is-paid strong{color:#5d713e}
.sfb-manager-booking-payment-summary.is-partial strong{color:#a16d24}
.sfb-manager-booking-payment-summary.is-unpaid strong{color:#9c4338}

.sfb-booking-payment-editor{
  margin-top:14px;padding:15px;border:1px solid #e3ded5;border-radius:14px;background:#faf9f6;
}
.sfb-booking-payment-editor-head{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px;
}
.sfb-booking-payment-editor-head>div{
  background:#fff;border:1px solid #ebe6de;border-radius:10px;padding:10px 12px;
}
.sfb-booking-payment-editor-head small,
.sfb-booking-payment-editor-head strong{display:block}
.sfb-booking-payment-editor-head small{font-size:10px;color:#888;text-transform:uppercase}
.sfb-booking-payment-editor-head strong{margin-top:3px}
.sfb-booking-payment-form{
  display:grid;grid-template-columns:1fr 1fr 1fr 1.5fr auto auto;gap:9px;align-items:end;
}
.sfb-booking-payment-form label span{display:block;font-size:11px;color:#777;margin-bottom:4px}
.sfb-booking-payment-form input,
.sfb-booking-payment-form select{
  width:100%;box-sizing:border-box;padding:9px;border:1px solid #d8d2c8;border-radius:8px;background:#fff;
}
.sfb-booking-add-payment,.sfb-booking-pay-remaining{
  border:1px solid #607044;border-radius:9px;padding:9px 11px;font-weight:700;cursor:pointer;
}
.sfb-booking-add-payment{background:#607044;color:#fff}
.sfb-booking-pay-remaining{background:#fff;color:#607044}
.sfb-booking-payment-message{grid-column:1/-1;font-size:12px}
.sfb-booking-payment-message.is-ok{color:#607044}
.sfb-booking-payment-message.is-error{color:#a33}
.sfb-booking-payment-history{margin-top:13px;padding-top:11px;border-top:1px solid #e2ddd4}
.sfb-booking-payment-history>small{display:block;margin-bottom:6px;color:#777;font-weight:700}
.sfb-booking-payment-history>div{
  display:grid;grid-template-columns:100px 110px 150px 1fr;gap:10px;padding:5px 0;font-size:12px;
}
.sfb-booking-payment-history em{color:#777}

/* v0.13.2 compact economy */
.sfb-economy-overview-houses{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start;
}
.sfb-economy-house-card{
  border:1px solid #e5e0d7;border-radius:18px;background:#fff;padding:18px;
}
.sfb-economy-house-head{
  display:flex;justify-content:space-between;gap:12px;align-items:flex-start;
}
.sfb-economy-house-head h4{
  margin:0;font-family:"Playfair Display",Georgia,serif;font-size:23px;
}
.sfb-economy-house-head span{display:block;color:#888;margin-top:2px;font-size:12px}
.sfb-economy-house-head>strong{color:#607044;font-size:12px;white-space:nowrap}
.sfb-economy-house-progress{
  height:7px;border-radius:99px;background:#eeeae2;overflow:hidden;margin:14px 0;
}
.sfb-economy-house-progress span{display:block;height:100%;background:#6b7a4d}
.sfb-economy-house-numbers>div{
  display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid #eee9e1;
}
.sfb-economy-house-numbers small{color:#777}
.sfb-economy-house-numbers .is-paid strong{color:#5d713e}
.sfb-economy-house-numbers .is-remaining strong{color:#9c4338}
.sfb-economy-house-numbers .is-commission,
.sfb-economy-house-numbers .is-commission-total{color:#5d713e}
.sfb-economy-house-numbers .is-commission-total{font-weight:700}
.sfb-economy-go-bookings{
  width:100%;margin-top:14px;border:1px solid #607044;background:#fff;color:#607044;
  border-radius:10px;padding:10px 12px;font-weight:700;cursor:pointer;
}
.sfb-economy-go-bookings:hover{background:#f4f6ef}

@media(max-width:1100px){
  .sfb-economy-overview-houses{grid-template-columns:1fr}
  .sfb-booking-payment-form{grid-template-columns:1fr 1fr}
}
@media(max-width:650px){
  .sfb-booking-payment-editor-head{grid-template-columns:1fr 1fr}
  .sfb-booking-payment-form{grid-template-columns:1fr}
  .sfb-booking-payment-history>div{grid-template-columns:1fr 1fr}
}

/* v0.14.0 overview + yearly economy + owner settlement */
.sfb-manager-property-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.sfb-manager-property-overview-card{border:1px solid #e5e0d7;border-radius:17px;background:#fff;overflow:hidden}
.sfb-manager-property-overview-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:16px;background:#f7f6f2}
.sfb-manager-property-overview-head h4{margin:0;font-family:"Playfair Display",Georgia,serif;font-size:20px}
.sfb-manager-property-overview-head span{font-size:11px;color:#777}
.sfb-overview-booking-link{display:block;width:100%;text-align:left;border:0;border-top:1px solid #eee9e1;background:#fff;padding:12px 15px;cursor:pointer}
.sfb-overview-booking-link:hover{background:#faf9f6}.sfb-overview-booking-link strong,.sfb-overview-booking-link span,.sfb-overview-booking-link small{display:block}
.sfb-overview-booking-link span{margin:3px 0;color:#555}.sfb-overview-booking-link small{color:#888}
.sfb-manager-property-empty{padding:18px;color:#888}
.sfb-economy-overview-houses{grid-template-columns:1fr}
.sfb-economy-year-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.sfb-economy-year-card{border:1px solid #e7e2d9;border-radius:14px;padding:14px;background:#faf9f6}
.sfb-economy-year-card h5{margin:0 0 8px;font-size:21px}
.sfb-economy-year-card>div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid #ebe6dd}
.sfb-economy-year-card .is-remaining strong{color:#9c4338}.sfb-economy-year-card .is-commission{color:#5d713e}
.sfb-owner-settlement{margin-top:16px;padding:15px;border:1px solid #dfe4d3;border-radius:14px;background:#f5f7f0}
.sfb-owner-settlement h5{margin:0 0 10px;font-size:19px}
.sfb-owner-settlement-numbers{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.sfb-owner-settlement-numbers>div{padding:10px;background:#fff;border:1px solid #e4e7dc;border-radius:10px}
.sfb-owner-settlement-numbers small,.sfb-owner-settlement-numbers strong{display:block}
.sfb-owner-settlement-numbers small{color:#777;font-size:10px;text-transform:uppercase}.sfb-owner-settlement-numbers strong{margin-top:4px}
.sfb-owner-settlement-numbers .is-owner-due{background:#eef2e4}.sfb-owner-settlement-numbers .is-owner-due strong{color:#53643a;font-size:18px}
.sfb-owner-entry-form{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr 2fr auto;gap:7px;margin-top:12px}
.sfb-owner-entry-form input,.sfb-owner-entry-form select{min-width:0;padding:9px;border:1px solid #d7d2c8;border-radius:8px;background:#fff}
.sfb-owner-entry-save{border:0;border-radius:8px;padding:9px 12px;background:#607044;color:#fff;font-weight:700;cursor:pointer}
.sfb-owner-entry-message{grid-column:1/-1;font-size:12px}.sfb-owner-entry-message.is-ok{color:#607044}.sfb-owner-entry-message.is-error{color:#a33}
.sfb-owner-ledger{margin-top:12px;border-top:1px solid #dde1d5;padding-top:8px}
.sfb-owner-ledger>div{display:grid;grid-template-columns:90px 90px 120px 100px 1fr;gap:10px;padding:5px 0;font-size:12px}.sfb-owner-ledger em{color:#777}
@media(max-width:1000px){.sfb-manager-property-overview-grid{grid-template-columns:1fr}.sfb-owner-settlement-numbers{grid-template-columns:1fr 1fr}.sfb-owner-entry-form{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.sfb-economy-year-grid,.sfb-owner-settlement-numbers,.sfb-owner-entry-form{grid-template-columns:1fr}}


/* v0.14.1 overview booking cards */
.sfb-manager-property-overview-card{
  overflow:hidden;
}
.sfb-overview-booking-link{
  width:100% !important;
  max-width:none !important;
  box-sizing:border-box;
  border-left:0 !important;
  border-right:0 !important;
  border-bottom:0 !important;
  border-radius:0 !important;
  background:#fff;
  padding:14px 16px;
  color:#2f2f2f;
}
.sfb-overview-booking-link:first-of-type{
  border-top:0 !important;
}
.sfb-overview-booking-link strong{
  color:#2f2f2f;
}
.sfb-overview-booking-link:hover{
  background:#f8f7f3;
}
.sfb-overview-booking-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.sfb-overview-booking-top em{
  flex:0 0 auto;
  border-radius:999px;
  padding:4px 8px;
  font-size:10px;
  font-style:normal;
  font-weight:800;
  letter-spacing:.02em;
}
.sfb-overview-booking-link.is-current-stay{
  background:#eef4e7;
  border-top-color:#d9e4cb !important;
}
.sfb-overview-booking-link.is-current-stay:hover{
  background:#e8f0df;
}
.sfb-overview-booking-link.is-current-stay .sfb-overview-booking-top em{
  background:#66774a;
  color:#fff;
}
.sfb-overview-booking-link.is-checkout-today{
  background:#f8f1df;
  border-top-color:#eadfbe !important;
}
.sfb-overview-booking-link.is-checkout-today:hover{
  background:#f4ebd3;
}
.sfb-overview-booking-link.is-checkout-today .sfb-overview-booking-top em{
  background:#9b7a37;
  color:#fff;
}
.sfb-overview-booking-link.is-arrival-today{
  background:#edf1f6;
  border-top-color:#d9e0e9 !important;
}
.sfb-overview-booking-link.is-arrival-today .sfb-overview-booking-top em{
  background:#65758a;
  color:#fff;
}

/* v0.14.3 owner page dashboard-style bookings */
.sfb-owner-dashboard-bookings{
  border:1px solid #e5e0d7;
  border-radius:16px;
  overflow:hidden;
  background:#fff;
}
.sfb-owner-dashboard-booking{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  padding:14px 16px;
  border-bottom:1px solid #eee9e1;
  background:#fff;
}
.sfb-owner-dashboard-booking:last-child{border-bottom:0}
.sfb-owner-dashboard-booking-main strong,
.sfb-owner-dashboard-booking-main span,
.sfb-owner-dashboard-booking-main small{display:block}
.sfb-owner-dashboard-booking-main span{margin:3px 0;color:#555}
.sfb-owner-dashboard-booking-main small{color:#888}
.sfb-owner-dashboard-booking-top{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
}
.sfb-owner-dashboard-booking-top em{
  border-radius:999px;padding:4px 8px;font-size:10px;font-style:normal;font-weight:800;
}
.sfb-owner-dashboard-booking.is-current-stay{background:#eef4e7}
.sfb-owner-dashboard-booking.is-current-stay em{background:#66774a;color:#fff}
.sfb-owner-dashboard-booking.is-checkout-today{background:#f8f1df}
.sfb-owner-dashboard-booking.is-checkout-today em{background:#9b7a37;color:#fff}
.sfb-owner-dashboard-booking.is-arrival-today{background:#edf1f6}
.sfb-owner-dashboard-booking.is-arrival-today em{background:#65758a;color:#fff}
.sfb-owner-dashboard-booking .sfb-owner-edit-panel{
  grid-column:1/-1;
}

/* v0.14.3 editable owner ledger */
.sfb-owner-ledger-row{
  display:grid !important;
  grid-template-columns:90px 90px 140px 110px minmax(150px,1fr) auto !important;
  align-items:center;
  gap:10px;
}
.sfb-owner-ledger-actions{display:flex;gap:5px}
.sfb-owner-ledger-actions button{
  border:1px solid #d6d0c6;background:#fff;border-radius:7px;padding:5px 8px;cursor:pointer;font-size:11px;
}
.sfb-owner-ledger-delete{color:#9c4338}
.sfb-owner-ledger-edit-panel{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:1fr 1fr 1fr 1fr 1fr 2fr auto;
  gap:7px;
  padding:10px;
  background:#fff;
  border:1px solid #e2ddd4;
  border-radius:10px;
}
.sfb-owner-ledger-edit-panel[hidden]{display:none}
.sfb-owner-ledger-edit-panel input,
.sfb-owner-ledger-edit-panel select{
  min-width:0;padding:8px;border:1px solid #d7d2c8;border-radius:7px;background:#fff;
}
.sfb-owner-ledger-save{
  border:0;border-radius:7px;background:#607044;color:#fff;font-weight:700;padding:8px 10px;cursor:pointer;
}
.sfb-owner-ledger-message{grid-column:1/-1;font-size:11px}
.sfb-owner-ledger-message.is-ok{color:#607044}.sfb-owner-ledger-message.is-error{color:#a33}
@media(max-width:900px){
  .sfb-owner-ledger-row{grid-template-columns:1fr 1fr !important}
  .sfb-owner-ledger-edit-panel{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .sfb-owner-dashboard-booking{grid-template-columns:1fr}
  .sfb-owner-ledger-row,.sfb-owner-ledger-edit-panel{grid-template-columns:1fr !important}
}

/* v0.14.5 check-in/out times */
.sfb-cleaning-stay-dates em{
  display:block;
  margin-top:3px;
  color:#66774a;
  font-style:normal;
  font-weight:800;
  font-size:12px;
}


/* v0.14.6 manager calendar today + completed bookings + mobile economy */
.sfb-manager-cal-head-day.is-today{
  background:#5f6f43 !important;
  color:#fff !important;
  border-radius:8px 8px 0 0;
}
.sfb-manager-cal-head-day.is-today small,
.sfb-manager-cal-head-day.is-today strong{
  color:#fff !important;
}
.sfb-manager-cal-day.is-today{
  box-shadow:inset 2px 0 0 #5f6f43,inset -2px 0 0 #5f6f43;
}
.sfb-manager-booking.is-completed-booking{
  background:#f1f1ef;
  opacity:.78;
}
.sfb-manager-booking.is-completed-booking .sfb-manager-booking-compact{
  background:#f1f1ef;
}
.sfb-manager-booking.is-completed-booking .sfb-manager-summary-name,
.sfb-manager-booking.is-completed-booking .sfb-manager-booking-dates strong{
  color:#777;
}
.sfb-manager-booking.is-completed-booking .sfb-manager-booking-compact::before{
  content:"Afsluttet";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:center;
  margin-right:6px;
  padding:4px 8px;
  border-radius:999px;
  background:#deded9;
  color:#666;
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}

@media(max-width:700px){
  .sfb-manager-portal,
  .sfb-manager-section,
  .sfb-economy-overview-houses,
  .sfb-economy-house-card,
  .sfb-owner-settlement{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  .sfb-economy-house-card{
    padding:12px !important;
    overflow:hidden;
  }

  .sfb-economy-year-grid{
    grid-template-columns:1fr !important;
  }

  .sfb-owner-settlement{
    padding:12px !important;
  }

  .sfb-owner-settlement-numbers,
  .sfb-owner-entry-form{
    grid-template-columns:1fr !important;
  }

  .sfb-owner-entry-form input,
  .sfb-owner-entry-form select,
  .sfb-owner-entry-form button{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  .sfb-owner-ledger{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }

  .sfb-owner-ledger-row{
    min-width:560px;
  }

  .sfb-economy-total-commission{
    width:100%;
    box-sizing:border-box;
    text-align:left;
  }

  .sfb-manager-booking.is-completed-booking .sfb-manager-booking-compact::before{
    margin:0 0 6px 0;
  }
}


/* v0.14.7 unified rounded form fields */
.sfb-portal input[type="text"],
.sfb-portal input[type="email"],
.sfb-portal input[type="tel"],
.sfb-portal input[type="number"],
.sfb-portal input[type="date"],
.sfb-portal input[type="time"],
.sfb-portal input[type="password"],
.sfb-portal select,
.sfb-portal textarea,
.sfb-booking-form input[type="text"],
.sfb-booking-form input[type="email"],
.sfb-booking-form input[type="tel"],
.sfb-booking-form input[type="number"],
.sfb-booking-form input[type="date"],
.sfb-booking-form input[type="time"],
.sfb-booking-form select,
.sfb-booking-form textarea,
.sfb-contact-form input[type="text"],
.sfb-contact-form input[type="email"],
.sfb-contact-form input[type="tel"],
.sfb-contact-form select,
.sfb-contact-form textarea,
.sfb-frontend-booking input[type="text"],
.sfb-frontend-booking input[type="email"],
.sfb-frontend-booking input[type="tel"],
.sfb-frontend-booking input[type="number"],
.sfb-frontend-booking input[type="date"],
.sfb-frontend-booking input[type="time"],
.sfb-frontend-booking select,
.sfb-frontend-booking textarea{
  border:1px solid #d9d4ca !important;
  border-radius:16px !important;
  background:#fff !important;
  box-shadow:none !important;
  min-height:52px;
  padding:12px 16px !important;
  box-sizing:border-box;
  outline:none;
}

.sfb-portal textarea,
.sfb-booking-form textarea,
.sfb-contact-form textarea,
.sfb-frontend-booking textarea{
  min-height:110px;
  resize:vertical;
}

.sfb-portal input:focus,
.sfb-portal select:focus,
.sfb-portal textarea:focus,
.sfb-booking-form input:focus,
.sfb-booking-form select:focus,
.sfb-booking-form textarea:focus,
.sfb-contact-form input:focus,
.sfb-contact-form select:focus,
.sfb-contact-form textarea:focus,
.sfb-frontend-booking input:focus,
.sfb-frontend-booking select:focus,
.sfb-frontend-booking textarea:focus{
  border-color:#647246 !important;
  box-shadow:0 0 0 3px rgba(100,114,70,.10) !important;
}

.sfb-portal input[type="checkbox"],
.sfb-portal input[type="radio"],
.sfb-booking-form input[type="checkbox"],
.sfb-booking-form input[type="radio"],
.sfb-contact-form input[type="checkbox"],
.sfb-contact-form input[type="radio"],
.sfb-frontend-booking input[type="checkbox"],
.sfb-frontend-booking input[type="radio"]{
  min-height:0;
  padding:0 !important;
  border-radius:4px !important;
}

@media(max-width:700px){
  .sfb-portal input,
  .sfb-portal select,
  .sfb-portal textarea,
  .sfb-booking-form input,
  .sfb-booking-form select,
  .sfb-booking-form textarea,
  .sfb-contact-form input,
  .sfb-contact-form select,
  .sfb-contact-form textarea,
  .sfb-frontend-booking input,
  .sfb-frontend-booking select,
  .sfb-frontend-booking textarea{
    width:100%;
    max-width:100%;
  }
}

/* v0.14.8 cleaning payment batches + receipts */
.sfb-manager-cleaning-row{grid-template-columns:auto minmax(220px,1fr) 90px 130px 90px!important}
.sfb-cleaning-select{display:flex;align-items:center;justify-content:center}
.sfb-cleaning-batch-select{width:20px!important;height:20px!important;min-height:0!important}
.sfb-cleaning-batch-box{margin-top:16px;padding:16px;border:1px solid #e1ddd4;border-radius:18px;background:#faf9f6;display:grid;grid-template-columns:minmax(180px,1.5fr) 150px 130px minmax(180px,1fr) auto;gap:9px;align-items:center}
.sfb-cleaning-batch-box>div span{display:block;color:#777;font-size:12px;margin-top:3px}
.sfb-cleaning-batch-box input,.sfb-cleaning-batch-box select{min-width:0;border:1px solid #d9d4ca;border-radius:14px;padding:10px;background:#fff}
.sfb-cleaning-batch-pay{border:0;border-radius:14px;background:#607044;color:#fff;font-weight:800;padding:11px 15px;cursor:pointer}
.sfb-cleaning-batch-message{grid-column:1/-1;font-size:12px}
.sfb-cleaning-history{margin-top:20px}.sfb-cleaning-history h4{margin:0 0 10px;font-size:19px}
.sfb-cleaning-history-item{border:1px solid #e4dfd6;border-radius:15px;background:#fff;margin:8px 0;overflow:hidden}
.sfb-cleaning-history-item summary{display:grid;grid-template-columns:120px 1fr 100px;gap:10px;padding:13px 15px;cursor:pointer}
.sfb-cleaning-history-item summary b{text-align:right}
.sfb-cleaning-history-detail{padding:0 15px 13px}.sfb-cleaning-history-detail>div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #eee9e1;padding:8px 0}.sfb-cleaning-history-detail p{margin:7px 0 0;color:#666;font-size:12px}
@media(max-width:700px){
 .sfb-manager-cleaning-row{grid-template-columns:auto 1fr!important}
 .sfb-cleaning-batch-box{grid-template-columns:1fr}
 .sfb-cleaning-batch-message{grid-column:1}
 .sfb-cleaning-history-item summary{grid-template-columns:1fr auto}
 .sfb-cleaning-history-item summary span{grid-column:1}
}


/* v0.14.9 cleaning layout cleanup */
.sfb-manager-cleaning-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.sfb-manager-cleaning-row{
  display:grid !important;
  grid-template-columns:34px minmax(260px,1fr) 100px 150px 100px !important;
  align-items:center;
  gap:14px;
  padding:14px 16px !important;
  border:1px solid #e5e0d7 !important;
  border-radius:16px !important;
  background:#fff !important;
}

.sfb-manager-cleaning-row.is-paid{
  background:#f2f6ec !important;
  border-color:#dce5cf !important;
}

.sfb-manager-cleaning-row > div:nth-child(2){
  min-width:0;
}

.sfb-manager-cleaning-row > div:nth-child(2) strong,
.sfb-manager-cleaning-row > div:nth-child(2) span,
.sfb-manager-cleaning-row > div:nth-child(2) small{
  display:block;
}

.sfb-manager-cleaning-row > div:nth-child(2) strong{
  margin-bottom:3px;
  font-size:15px;
}

.sfb-manager-cleaning-row > div:nth-child(2) span{
  color:#555;
  font-size:13px;
  line-height:1.35;
}

.sfb-manager-cleaning-row > div:nth-child(2) small{
  margin-top:3px;
  color:#888;
  font-size:12px;
}

.sfb-manager-cleaning-amount{
  font-size:17px !important;
  font-weight:800;
  white-space:nowrap;
}

.sfb-manager-cleaning-check{
  display:flex !important;
  align-items:center;
  gap:7px;
  white-space:nowrap;
  font-weight:700;
}

.sfb-manager-cleaning-paidat{
  text-align:right;
  color:#777;
  font-size:12px;
}

.sfb-cleaning-select{
  display:flex;
  align-items:center;
  justify-content:center;
}

.sfb-cleaning-batch-select,
.sfb-manager-cleaning-paid{
  appearance:auto !important;
  -webkit-appearance:checkbox !important;
  width:18px !important;
  height:18px !important;
  min-height:0 !important;
  padding:0 !important;
  border-radius:4px !important;
}

/* Restore proper green portal buttons instead of white */
.sfb-manager-portal button,
.sfb-owner-portal button,
.sfb-cleaning-portal button{
  font-family:inherit;
}

.sfb-manager-nav button.is-primary,
.sfb-manager-create-booking,
.sfb-manager-save,
.sfb-booking-add-payment,
.sfb-booking-pay-remaining,
.sfb-cleaning-batch-pay,
.sfb-owner-entry-save,
.sfb-owner-ledger-save,
.sfb-owner-create,
.sfb-owner-save-edit{
  background:#607044 !important;
  color:#fff !important;
  border:1px solid #607044 !important;
  border-radius:14px !important;
  box-shadow:none !important;
}

.sfb-manager-nav button.is-primary:hover,
.sfb-manager-create-booking:hover,
.sfb-manager-save:hover,
.sfb-booking-add-payment:hover,
.sfb-booking-pay-remaining:hover,
.sfb-cleaning-batch-pay:hover,
.sfb-owner-entry-save:hover,
.sfb-owner-ledger-save:hover,
.sfb-owner-create:hover,
.sfb-owner-save-edit:hover{
  background:#53613b !important;
  border-color:#53613b !important;
  color:#fff !important;
}

.sfb-cleaning-payment-filters button{
  border:1px solid #d8d2c8 !important;
  background:#fff !important;
  color:#444 !important;
  border-radius:999px !important;
  padding:8px 14px !important;
}

.sfb-cleaning-payment-filters button.is-active{
  background:#607044 !important;
  border-color:#607044 !important;
  color:#fff !important;
}

/* Batch payment box: cleaner structure on tablet */
.sfb-cleaning-batch-box{
  grid-template-columns:minmax(220px,1.4fr) 150px 140px minmax(180px,1fr) auto !important;
  padding:16px !important;
  gap:10px !important;
}

@media(max-width:1050px){
  .sfb-manager-cleaning-row{
    grid-template-columns:34px minmax(0,1fr) 90px 140px !important;
  }
  .sfb-manager-cleaning-paidat{
    grid-column:2 / -1;
    text-align:left;
    margin-top:-6px;
  }
  .sfb-cleaning-batch-box{
    grid-template-columns:1fr 1fr !important;
  }
  .sfb-cleaning-batch-box > div:first-child,
  .sfb-cleaning-batch-note,
  .sfb-cleaning-batch-pay,
  .sfb-cleaning-batch-message{
    grid-column:1 / -1;
  }
}

@media(max-width:700px){
  .sfb-manager-cleaning-row{
    grid-template-columns:28px 1fr !important;
    gap:8px 10px;
    padding:13px !important;
  }

  .sfb-manager-cleaning-row > div:nth-child(2){
    grid-column:2;
  }

  .sfb-manager-cleaning-amount{
    grid-column:2;
    font-size:16px !important;
  }

  .sfb-manager-cleaning-check{
    grid-column:2;
  }

  .sfb-manager-cleaning-paidat{
    grid-column:2;
    text-align:left;
    margin:0;
  }

  .sfb-cleaning-batch-box{
    grid-template-columns:1fr !important;
  }

  .sfb-cleaning-batch-box > *{
    grid-column:1 !important;
    width:100%;
    box-sizing:border-box;
  }

  .sfb-manager-cleaning-summary{
    grid-template-columns:1fr 1fr !important;
  }
}


/* v0.15.0 - Bookinger: same clean full-width dashboard style */
.sfb-manager-property-group{
  border:1px solid #e5e0d7 !important;
  border-radius:18px !important;
  overflow:hidden !important;
  background:#fff !important;
  margin-bottom:18px !important;
}

.sfb-manager-group-toggle{
  width:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  padding:15px 18px !important;
  border:0 !important;
  border-radius:0 !important;
  background:#f7f6f2 !important;
  color:#2f2f2f !important;
  text-align:left !important;
}

.sfb-manager-group-toggle span:first-child{
  font-family:"Playfair Display",Georgia,serif !important;
  font-size:22px !important;
  font-weight:700 !important;
}

.sfb-manager-booking{
  border:0 !important;
  border-top:1px solid #ece7de !important;
  border-radius:0 !important;
  margin:0 !important;
  background:#fff !important;
  opacity:1 !important;
}

.sfb-manager-booking-compact{
  display:grid !important;
  grid-template-columns:170px minmax(220px,1.5fr) 150px 170px 110px !important;
  gap:16px !important;
  align-items:center !important;
  min-height:86px !important;
  padding:14px 18px !important;
  background:#fff !important;
}

.sfb-manager-booking.is-completed-booking,
.sfb-manager-booking.is-completed-booking .sfb-manager-booking-compact{
  background:#f2f2ef !important;
}

.sfb-manager-booking.is-completed-booking{
  opacity:1 !important;
}

.sfb-manager-booking.is-completed-booking .sfb-manager-booking-compact::before{
  content:"Afsluttet";
  grid-column:1 / -1;
  justify-self:start;
  margin:0 0 -6px 0 !important;
  padding:4px 9px;
  border-radius:999px;
  background:#deded8;
  color:#666;
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.sfb-manager-booking-dates{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:10px !important;
}

.sfb-manager-booking-dates > div small,
.sfb-manager-booking-dates > div strong,
.sfb-manager-booking-guest strong,
.sfb-manager-booking-guest span,
.sfb-manager-booking-price strong,
.sfb-manager-booking-price small,
.sfb-manager-booking-payment-summary strong,
.sfb-manager-booking-payment-summary small{
  display:block !important;
}

.sfb-manager-booking-dates small{
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
  color:#8a8a84 !important;
  font-size:9px !important;
}

.sfb-manager-booking-dates strong{
  margin-top:3px !important;
  font-size:14px !important;
}

.sfb-manager-booking-guest{
  min-width:0 !important;
}

.sfb-manager-booking-guest strong{
  font-size:16px !important;
  color:#2f2f2f !important;
}

.sfb-manager-booking-guest span{
  margin-top:4px !important;
  color:#888 !important;
  font-size:12px !important;
}

.sfb-manager-booking-price{
  text-align:right !important;
}

.sfb-manager-booking-price strong{
  font-size:16px !important;
}

.sfb-manager-booking-price small{
  margin-top:4px !important;
  color:#888 !important;
  font-size:10px !important;
}

.sfb-manager-booking-payment-summary{
  min-width:0 !important;
  text-align:left !important;
}

.sfb-manager-booking-payment-summary strong{
  font-size:13px !important;
}

.sfb-manager-booking-edit-toggle,
.sfb-manager-sync,
.sfb-manager-create-booking,
.sfb-manager-save,
.sfb-booking-add-payment,
.sfb-booking-pay-remaining,
.sfb-cleaning-batch-pay,
.sfb-owner-entry-save,
.sfb-owner-ledger-save,
.sfb-owner-create,
.sfb-owner-save-edit,
.sfb-economy-go-bookings{
  background:#607044 !important;
  color:#fff !important;
  border:1px solid #607044 !important;
  border-radius:14px !important;
  box-shadow:none !important;
  font-weight:800 !important;
}

.sfb-manager-booking-edit-toggle{
  width:100% !important;
  min-width:96px !important;
  padding:10px 14px !important;
}

.sfb-manager-booking-edit-toggle:hover,
.sfb-manager-sync:hover,
.sfb-manager-create-booking:hover,
.sfb-manager-save:hover,
.sfb-booking-add-payment:hover,
.sfb-booking-pay-remaining:hover,
.sfb-cleaning-batch-pay:hover,
.sfb-owner-entry-save:hover,
.sfb-owner-ledger-save:hover,
.sfb-owner-create:hover,
.sfb-owner-save-edit:hover,
.sfb-economy-go-bookings:hover{
  background:#53613b !important;
  border-color:#53613b !important;
  color:#fff !important;
}

.sfb-manager-booking-edit-panel{
  padding:16px 18px 18px !important;
  background:#faf9f6 !important;
  border-top:1px solid #e8e2d8 !important;
}

@media(max-width:1100px){
  .sfb-manager-booking-compact{
    grid-template-columns:150px minmax(180px,1.5fr) 130px 145px 100px !important;
    gap:12px !important;
    padding:13px 14px !important;
  }
}

@media(max-width:850px){
  .sfb-manager-booking-compact{
    grid-template-columns:1fr 1fr !important;
    gap:10px 14px !important;
    padding:14px 16px !important;
  }

  .sfb-manager-booking.is-completed-booking .sfb-manager-booking-compact::before{
    grid-column:1 / -1 !important;
  }

  .sfb-manager-booking-dates{
    grid-column:1 / -1 !important;
  }

  .sfb-manager-booking-guest{
    grid-column:1 !important;
  }

  .sfb-manager-booking-price{
    grid-column:2 !important;
    text-align:right !important;
  }

  .sfb-manager-booking-payment-summary{
    grid-column:1 !important;
  }

  .sfb-manager-booking-edit-toggle{
    grid-column:2 !important;
    justify-self:end !important;
    width:auto !important;
    min-width:120px !important;
  }
}

@media(max-width:600px){
  .sfb-manager-booking-compact{
    grid-template-columns:1fr !important;
  }

  .sfb-manager-booking-dates,
  .sfb-manager-booking-guest,
  .sfb-manager-booking-price,
  .sfb-manager-booking-payment-summary,
  .sfb-manager-booking-edit-toggle{
    grid-column:1 !important;
  }

  .sfb-manager-booking-price{
    text-align:left !important;
  }

  .sfb-manager-booking-edit-toggle{
    width:100% !important;
    justify-self:stretch !important;
  }
}


/* v0.15.1 - active manager tabs are green */
.sfb-manager-nav button.is-active:not(.is-primary){
  background:#607044 !important;
  color:#fff !important;
  border-color:#607044 !important;
  box-shadow:none !important;
}
.sfb-manager-nav button.is-active:not(.is-primary):hover{
  background:#53613b !important;
  color:#fff !important;
}

/* v0.15.1 - booking rows styled like the Overblik cards */
.sfb-manager-property-group{
  border:1px solid #e5e0d7 !important;
  border-radius:18px !important;
  overflow:hidden !important;
  background:#fff !important;
}

.sfb-manager-group-toggle{
  background:#f7f6f2 !important;
  border:0 !important;
  border-radius:0 !important;
  color:#2f2f2f !important;
}

.sfb-manager-booking{
  position:relative;
  border:0 !important;
  border-top:1px solid #eee9e1 !important;
  border-radius:0 !important;
  background:#fff !important;
  margin:0 !important;
}

.sfb-manager-booking-compact{
  display:grid !important;
  grid-template-columns:minmax(280px,1.8fr) 150px 155px 105px !important;
  grid-template-areas:
    "guest price payment edit"
    "dates price payment edit" !important;
  gap:4px 18px !important;
  align-items:center !important;
  min-height:94px !important;
  padding:15px 17px !important;
  background:#fff !important;
}

.sfb-manager-booking-guest{
  grid-area:guest !important;
  min-width:0 !important;
}

.sfb-manager-booking-guest strong{
  display:block !important;
  font-size:17px !important;
  line-height:1.2 !important;
  color:#2f2f2f !important;
}

.sfb-manager-booking-guest span{
  display:block !important;
  margin-top:4px !important;
  color:#888 !important;
  font-size:12px !important;
}

.sfb-manager-booking-dates{
  grid-area:dates !important;
  display:flex !important;
  align-items:center !important;
  gap:16px !important;
  margin-top:5px !important;
}

.sfb-manager-booking-dates > div{
  display:flex !important;
  align-items:baseline !important;
  gap:5px !important;
}

.sfb-manager-booking-dates > div:first-child::after{
  content:"→";
  margin-left:11px;
  color:#999;
  font-weight:400;
}

.sfb-manager-booking-dates small{
  display:none !important;
}

.sfb-manager-booking-dates strong{
  margin:0 !important;
  font-size:13px !important;
  color:#555 !important;
  font-weight:600 !important;
}

.sfb-manager-booking-price{
  grid-area:price !important;
  align-self:center !important;
  text-align:right !important;
}

.sfb-manager-booking-price strong{
  display:block !important;
  font-size:16px !important;
}

.sfb-manager-booking-price small{
  display:block !important;
  margin-top:4px !important;
  color:#888 !important;
  font-size:10px !important;
}

.sfb-manager-booking-payment-summary{
  grid-area:payment !important;
  align-self:center !important;
  min-width:0 !important;
}

.sfb-manager-booking-payment-summary strong,
.sfb-manager-booking-payment-summary small{
  display:block !important;
}

.sfb-manager-booking-edit-toggle{
  grid-area:edit !important;
  align-self:center !important;
  justify-self:stretch !important;
  width:100% !important;
  min-width:0 !important;
  background:#607044 !important;
  color:#fff !important;
  border:1px solid #607044 !important;
  border-radius:13px !important;
  padding:10px 12px !important;
  font-weight:800 !important;
}

.sfb-manager-booking-edit-toggle:hover{
  background:#53613b !important;
  border-color:#53613b !important;
  color:#fff !important;
}

/* completed stays: same idea as current stay/checkout colors in Overblik */
.sfb-manager-booking.is-completed-booking,
.sfb-manager-booking.is-completed-booking .sfb-manager-booking-compact{
  background:#f1f1ee !important;
  opacity:1 !important;
}

.sfb-manager-booking.is-completed-booking .sfb-manager-booking-compact::before{
  content:"Afsluttet";
  position:absolute !important;
  top:11px !important;
  right:14px !important;
  margin:0 !important;
  padding:4px 8px !important;
  border-radius:999px !important;
  background:#deded8 !important;
  color:#666 !important;
  font-size:9px !important;
  line-height:1 !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
  z-index:2;
}

/* active/current booking gets a soft green tint like Overblik */
.sfb-manager-booking:not(.is-completed-booking) .sfb-manager-booking-compact{
  transition:background .15s ease;
}

@media(max-width:900px){
  .sfb-manager-booking-compact{
    grid-template-columns:minmax(220px,1fr) 120px 120px !important;
    grid-template-areas:
      "guest price payment"
      "dates price payment"
      "edit edit edit" !important;
    gap:6px 14px !important;
    padding:14px 15px !important;
  }

  .sfb-manager-booking-edit-toggle{
    margin-top:6px !important;
    justify-self:start !important;
    width:auto !important;
    min-width:125px !important;
  }
}

@media(max-width:650px){
  .sfb-manager-nav{
    gap:6px !important;
  }

  .sfb-manager-nav button{
    flex:1 1 auto !important;
    text-align:center !important;
  }

  .sfb-manager-booking-compact{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "guest"
      "dates"
      "price"
      "payment"
      "edit" !important;
    gap:8px !important;
  }

  .sfb-manager-booking-price{
    text-align:left !important;
  }

  .sfb-manager-booking-edit-toggle{
    width:100% !important;
    justify-self:stretch !important;
  }

  .sfb-manager-booking.is-completed-booking .sfb-manager-booking-compact::before{
    position:static !important;
    grid-area:guest !important;
    justify-self:end !important;
    align-self:start !important;
  }
}


/* v0.15.2 portal language selector */
.sfb-manager-actions,
.sfb-portal-head-actions{
  display:flex;
  align-items:center;
  gap:10px;
}
.sfb-language-select-wrap{
  display:flex;
  align-items:center;
  gap:7px;
  margin:0;
}
.sfb-language-select-wrap > span{
  font-size:11px;
  color:#777;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.sfb-portal-language-select{
  min-height:40px !important;
  height:40px !important;
  width:auto !important;
  min-width:112px !important;
  padding:7px 30px 7px 11px !important;
  border:1px solid #d9d4ca !important;
  border-radius:12px !important;
  background:#fff !important;
  color:#333 !important;
  font-size:13px !important;
}
@media(max-width:700px){
  .sfb-manager-actions,
  .sfb-portal-head-actions{
    flex-wrap:wrap;
  }
  .sfb-language-select-wrap{
    width:auto;
  }
  .sfb-portal-language-select{
    width:auto !important;
    min-width:105px !important;
  }
}


/* v0.15.3 - Manager bookings made visually almost identical to Overblik */
.sfb-manager-property-group{
  border:1px solid #e5e0d7 !important;
  border-radius:18px !important;
  overflow:hidden !important;
  background:#fff !important;
}

.sfb-manager-group-toggle{
  padding:15px 18px !important;
  background:#f7f6f2 !important;
  border:0 !important;
  border-radius:0 !important;
}

.sfb-manager-booking{
  border:0 !important;
  border-top:1px solid #eee9e1 !important;
  border-radius:0 !important;
  margin:0 !important;
  background:#fff !important;
}

.sfb-manager-booking-compact{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 170px 145px 105px !important;
  grid-template-areas:
    "main price payment edit" !important;
  align-items:center !important;
  gap:16px !important;
  min-height:86px !important;
  padding:14px 16px !important;
  background:#fff !important;
}

/* Put guest + dates into the same visual block as Overblik */
.sfb-manager-booking-guest{
  grid-area:main !important;
  min-width:0 !important;
  padding-right:8px !important;
}

.sfb-manager-booking-guest strong{
  display:block !important;
  font-size:17px !important;
  line-height:1.2 !important;
  color:#2f2f2f !important;
  font-weight:800 !important;
}

.sfb-manager-booking-guest span{
  display:block !important;
  margin-top:4px !important;
  color:#888 !important;
  font-size:12px !important;
}

.sfb-manager-booking-dates{
  grid-area:main !important;
  align-self:end !important;
  display:flex !important;
  gap:0 !important;
  margin-top:36px !important;
  pointer-events:none;
}

.sfb-manager-booking-dates > div{
  display:inline-flex !important;
  align-items:center !important;
}

.sfb-manager-booking-dates > div:first-child::after{
  content:"→";
  margin:0 8px !important;
  color:#888 !important;
  font-weight:400 !important;
}

.sfb-manager-booking-dates small{
  display:none !important;
}

.sfb-manager-booking-dates strong{
  font-size:13px !important;
  font-weight:600 !important;
  color:#555 !important;
  margin:0 !important;
}

.sfb-manager-booking-price{
  grid-area:price !important;
  text-align:right !important;
  align-self:center !important;
}

.sfb-manager-booking-price strong{
  font-size:16px !important;
}

.sfb-manager-booking-price small{
  font-size:10px !important;
  color:#888 !important;
  margin-top:4px !important;
}

.sfb-manager-booking-payment-summary{
  grid-area:payment !important;
  align-self:center !important;
  min-width:0 !important;
}

.sfb-manager-booking-edit-toggle{
  grid-area:edit !important;
  align-self:center !important;
  width:100% !important;
  min-width:0 !important;
  background:#607044 !important;
  color:#fff !important;
  border:1px solid #607044 !important;
  border-radius:13px !important;
  padding:10px 12px !important;
  font-weight:800 !important;
}

/* Current / checkout / arrival styles align with Overblik */
.sfb-manager-booking.is-current-stay,
.sfb-manager-booking.is-current-stay .sfb-manager-booking-compact{
  background:#eef4e7 !important;
}

.sfb-manager-booking.is-checkout-today,
.sfb-manager-booking.is-checkout-today .sfb-manager-booking-compact{
  background:#f8f1df !important;
}

.sfb-manager-booking.is-arrival-today,
.sfb-manager-booking.is-arrival-today .sfb-manager-booking-compact{
  background:#edf1f6 !important;
}

/* Completed stays remain muted */
.sfb-manager-booking.is-completed-booking,
.sfb-manager-booking.is-completed-booking .sfb-manager-booking-compact{
  background:#f1f1ee !important;
}

.sfb-manager-booking.is-completed-booking .sfb-manager-booking-compact::before{
  content:"Afsluttet";
  position:absolute !important;
  top:11px !important;
  right:14px !important;
  margin:0 !important;
  padding:4px 8px !important;
  border-radius:999px !important;
  background:#deded8 !important;
  color:#666 !important;
  font-size:9px !important;
  line-height:1 !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
}

@media(max-width:900px){
  .sfb-manager-booking-compact{
    grid-template-columns:minmax(0,1fr) 135px 120px !important;
    grid-template-areas:
      "main price payment"
      "edit edit edit" !important;
    gap:10px 14px !important;
    padding:14px 15px !important;
  }

  .sfb-manager-booking-edit-toggle{
    justify-self:start !important;
    width:auto !important;
    min-width:130px !important;
  }
}

@media(max-width:650px){
  .sfb-manager-booking-compact{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "main"
      "price"
      "payment"
      "edit" !important;
  }

  .sfb-manager-booking-dates{
    margin-top:38px !important;
  }

  .sfb-manager-booking-price{
    text-align:left !important;
    margin-top:6px !important;
  }

  .sfb-manager-booking-edit-toggle{
    width:100% !important;
    justify-self:stretch !important;
  }
}


/* v0.15.4 STABLE UI RESET */

/* Active manager navigation must NEVER become a white blank tab */
.sfb-portal.sfb-manager-portal nav.sfb-manager-nav > button.is-active,
.sfb-portal.sfb-manager-portal nav.sfb-manager-nav > button.is-active:hover,
.sfb-portal.sfb-manager-portal nav.sfb-manager-nav > button.is-active:focus{
  background:#607044 !important;
  color:#fff !important;
  border:1px solid #607044 !important;
  box-shadow:none !important;
  opacity:1 !important;
}

/* Compact, rounded language pill */
.sfb-language-select-wrap{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
  height:42px !important;
  margin:0 !important;
  padding:0 8px 0 10px !important;
  border:1px solid #ddd8cf !important;
  border-radius:999px !important;
  background:#faf9f6 !important;
  box-sizing:border-box !important;
}
.sfb-language-icon{
  font-size:14px !important;
  line-height:1 !important;
}
.sfb-portal .sfb-portal-language-select{
  appearance:auto !important;
  -webkit-appearance:menulist !important;
  width:auto !important;
  min-width:88px !important;
  height:38px !important;
  min-height:38px !important;
  margin:0 !important;
  padding:5px 4px !important;
  border:0 !important;
  border-radius:999px !important;
  background:transparent !important;
  color:#3b3b38 !important;
  box-shadow:none !important;
  font-size:13px !important;
  font-weight:700 !important;
}

/* Cleaning rows: simple Mima/Overview-like cards, no text collision */
.sfb-manager-cleaning-list{
  display:flex !important;
  flex-direction:column !important;
  gap:9px !important;
  margin-top:14px !important;
}
.sfb-manager-cleaning-row{
  display:grid !important;
  grid-template-columns:34px minmax(0,1fr) 100px 150px !important;
  align-items:center !important;
  gap:14px !important;
  min-height:82px !important;
  margin:0 !important;
  padding:13px 16px !important;
  border:1px solid #e5e0d7 !important;
  border-radius:16px !important;
  background:#fff !important;
  box-sizing:border-box !important;
}
.sfb-manager-cleaning-row.is-paid{
  background:#f1f6eb !important;
  border-color:#dce5d1 !important;
}
.sfb-cleaning-row-main{
  min-width:0 !important;
}
.sfb-cleaning-row-main strong{
  display:block !important;
  margin:0 !important;
  color:#2f2f2f !important;
  font-size:15px !important;
  line-height:1.25 !important;
}
.sfb-cleaning-row-main .sfb-cleaning-row-date{
  display:block !important;
  margin-top:4px !important;
  color:#666 !important;
  font-size:12px !important;
  line-height:1.3 !important;
}
.sfb-cleaning-row-main small{
  display:block !important;
  margin-top:3px !important;
  color:#8a8a84 !important;
  font-size:12px !important;
}
.sfb-cleaning-row-amount{
  text-align:right !important;
}
.sfb-cleaning-row-amount small,
.sfb-cleaning-row-amount strong{
  display:block !important;
}
.sfb-cleaning-row-amount small{
  color:#8a8a84 !important;
  font-size:9px !important;
  text-transform:uppercase !important;
}
.sfb-cleaning-row-amount strong{
  margin-top:3px !important;
  color:#2f2f2f !important;
  font-size:17px !important;
}
.sfb-cleaning-row-status{
  min-width:0 !important;
}
.sfb-manager-cleaning-check{
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  margin:0 !important;
  white-space:nowrap !important;
}
.sfb-manager-cleaning-paidat{
  margin-top:5px !important;
  color:#888 !important;
  font-size:11px !important;
  text-align:left !important;
}
.sfb-cleaning-select{
  align-self:center !important;
}
.sfb-cleaning-batch-select,
.sfb-manager-cleaning-paid{
  appearance:auto !important;
  -webkit-appearance:checkbox !important;
  width:18px !important;
  height:18px !important;
  min-height:18px !important;
  padding:0 !important;
  margin:0 !important;
}

/* Keep manager action/filter buttons predictable */
.sfb-cleaning-payment-filters button.is-active{
  background:#607044 !important;
  color:#fff !important;
  border-color:#607044 !important;
}
.sfb-cleaning-payment-filters button:not(.is-active){
  background:#fff !important;
  color:#52603f !important;
  border:1px solid #d9d4ca !important;
}

@media(max-width:900px){
  .sfb-manager-cleaning-row{
    grid-template-columns:28px minmax(0,1fr) 86px !important;
  }
  .sfb-cleaning-row-status{
    grid-column:2 / -1 !important;
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
  }
  .sfb-manager-cleaning-paidat{
    margin-top:0 !important;
  }
}

@media(max-width:650px){
  .sfb-manager-actions,
  .sfb-portal-head-actions{
    gap:7px !important;
  }
  .sfb-language-select-wrap{
    height:38px !important;
    padding-left:8px !important;
  }
  .sfb-portal .sfb-portal-language-select{
    height:34px !important;
    min-height:34px !important;
    min-width:82px !important;
  }
  .sfb-manager-cleaning-row{
    grid-template-columns:26px 1fr !important;
    gap:7px 10px !important;
    padding:12px 13px !important;
  }
  .sfb-cleaning-row-main{
    grid-column:2 !important;
  }
  .sfb-cleaning-row-amount{
    grid-column:2 !important;
    text-align:left !important;
  }
  .sfb-cleaning-row-status{
    grid-column:2 !important;
    display:block !important;
  }
  .sfb-manager-cleaning-paidat{
    margin-top:4px !important;
  }
}


/* v0.15.6 - two surgical fixes only */

/* Booking list: give guest/meta block enough room above dates. */
.sfb-manager-booking-guest{
  padding-bottom:34px !important;
}
.sfb-manager-booking-dates{
  margin-top:0 !important;
  align-self:end !important;
}

/* Cleaning payment toolbar moved up, keep it compact and clean. */
.sfb-cleaning-batch-box{
  margin:14px 0 16px !important;
  padding:14px !important;
  border:1px solid #e2ddd4 !important;
  border-radius:16px !important;
  background:#faf9f6 !important;
  display:grid !important;
  grid-template-columns:minmax(210px,1.3fr) 145px 125px minmax(180px,1fr) auto !important;
  gap:9px !important;
  align-items:center !important;
}
.sfb-cleaning-batch-box > div:first-child{
  min-width:0 !important;
}
.sfb-cleaning-batch-box > div:first-child strong{
  display:block !important;
  font-size:14px !important;
}
.sfb-cleaning-batch-box > div:first-child span{
  display:block !important;
  margin-top:3px !important;
  color:#777 !important;
  font-size:11px !important;
}
.sfb-cleaning-batch-box input,
.sfb-cleaning-batch-box select{
  width:100% !important;
  min-width:0 !important;
  height:42px !important;
  min-height:42px !important;
  padding:8px 11px !important;
  border:1px solid #d9d4ca !important;
  border-radius:12px !important;
  background:#fff !important;
  box-sizing:border-box !important;
}
.sfb-cleaning-batch-pay{
  height:42px !important;
  min-height:42px !important;
  padding:8px 14px !important;
  border:1px solid #607044 !important;
  border-radius:12px !important;
  background:#607044 !important;
  color:#fff !important;
  font-weight:800 !important;
  white-space:nowrap !important;
}
.sfb-cleaning-batch-message{
  grid-column:1/-1 !important;
  font-size:11px !important;
}

@media(max-width:900px){
  .sfb-cleaning-batch-box{
    grid-template-columns:1fr 1fr !important;
  }
  .sfb-cleaning-batch-box > div:first-child,
  .sfb-cleaning-batch-note,
  .sfb-cleaning-batch-pay,
  .sfb-cleaning-batch-message{
    grid-column:1/-1 !important;
  }
  .sfb-manager-booking-guest{
    padding-bottom:36px !important;
  }
}

@media(max-width:650px){
  .sfb-cleaning-batch-box{
    grid-template-columns:1fr !important;
  }
  .sfb-cleaning-batch-box > *{
    grid-column:1 !important;
  }
  .sfb-manager-booking-guest{
    padding-bottom:38px !important;
  }
}


/* v0.17.0 click-to-select booking calendars */
.sfb-manager-create-layout{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
  gap:18px;
  align-items:start;
}
.sfb-manager-create-calendar-box{
  padding:18px;
  border:1px solid #E5E1D8;
  border-radius:16px;
  background:#FAF9F6;
}
.sfb-manager-create-calendar-box .sfb-public-calendar{max-width:none}
.sfb-manager-create-calendar-placeholder{
  min-height:310px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#777;
  border:1px dashed #DCD8CF;
  border-radius:14px;
  background:#fff;
  padding:24px;
}
.sfb-calendar-selection-hint{
  margin-top:12px;
  text-align:center;
  font-size:12px;
  color:#6B6B6B;
}
.sfb-selectable-calendar .sfb-public-cal-day:not(.is-booked):not(.is-turnover){
  cursor:pointer;
}
.sfb-selectable-calendar .sfb-public-cal-day.is-booked,
.sfb-selectable-calendar .sfb-public-cal-day.is-turnover{
  cursor:not-allowed;
}
.sfb-selectable-calendar .sfb-public-cal-day.is-selected-range{
  box-shadow:inset 0 0 0 2px #A8B58E;
}
.sfb-selectable-calendar .sfb-public-cal-day.is-selected-arrival,
.sfb-selectable-calendar .sfb-public-cal-day.is-selected-departure{
  background:#5B6642 !important;
  border-color:#5B6642 !important;
  color:#fff !important;
  box-shadow:0 0 0 2px rgba(91,102,66,.15);
}
.sfb-booking-date-picker{
  margin-bottom:20px;
}
.sfb-booking-date-picker .sfb-public-calendar{
  max-width:none;
}
@media(max-width:900px){
  .sfb-manager-create-layout{grid-template-columns:1fr}
  .sfb-manager-create-calendar-box{order:2}
}


/* v0.17.6 public language selector */
.sfb-public-language-bar{
  display:flex;
  justify-content:flex-end;
  margin:0 0 12px;
}
.sfb-public-language-wrap .sfb-portal-language-select{
  min-width:118px !important;
}


/* v0.17.8 guest-count warning */
.sfb-guest-warning-hint.is-warning{
  display:block;
  margin:10px 0 0;
  padding:10px 12px;
  border:1px solid #e2c77b;
  border-radius:12px;
  background:#fff8df;
  color:#6c5720;
  font-size:13px;
  line-height:1.45;
}
