/* Compact booking board: all days on the left, chronological times on the right. */
.booking-options{padding:15px 18px;border-radius:14px}
.booking-option-grid{display:grid;grid-template-columns:minmax(180px,2fr) minmax(125px,1fr) minmax(125px,1fr);gap:12px;align-items:start}
.booking-option-grid .field{margin:0;min-width:0}
.booking-option-grid .field-label{margin-bottom:5px}
.booking-option-grid input,.booking-option-grid select{padding:9px 11px}
.loft-option{grid-column:1/-1;max-width:400px;width:100%}
.compact-duration{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);margin-top:11px}
.compact-duration svg{width:14px;height:14px}
.month-toolbar{display:flex;align-items:flex-end;gap:12px;margin:20px 0 13px}
.month-select{display:flex;align-items:center;gap:10px;min-width:0;color:var(--muted);font-size:12px}
.month-select input{font:inherit;font-size:14px;font-weight:550;color:var(--ink);background:white;border:1px solid var(--line);border-radius:9px;min-height:44px;padding:9px 12px;min-width:160px}
.month-arrows{display:flex;gap:5px}
.month-arrows button{border:1px solid var(--line);background:white;min-width:44px;min-height:44px}
.booking-board{display:grid;grid-template-columns:170px minmax(0,1fr);gap:20px;align-items:start}
.calendar-panel{position:sticky;top:18px;overflow:hidden;border-radius:14px;padding:12px 8px 9px}
.calendar-caption{font-size:11px;font-weight:600;color:var(--muted);padding:1px 9px 10px}
.month-days{position:relative;display:flex;flex-direction:column;gap:3px;max-height:65dvh;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c1cebc transparent;padding:2px}
.calendar-day{display:grid;grid-template-columns:36px 1fr 8px;align-items:center;gap:6px;flex-shrink:0;width:100%;min-height:44px;padding:8px 10px;border-radius:8px;color:var(--ink);background:transparent;text-align:left}
.calendar-day:hover{background:#edf3e8}
.calendar-day.active{background:var(--primary);color:white}
.day-number{font-size:16px;font-weight:650;font-variant-numeric:tabular-nums}
.day-weekday{font-size:11px;color:var(--muted)}
.calendar-day.weekend:not(.active) .day-weekday{color:#ae7c4b}
.calendar-day.active .day-weekday{color:#e2efdf}
.booking-dot{width:5px;height:5px;border-radius:50%;background:#b29662;display:inline-block;flex-shrink:0}
.calendar-day.active .booking-dot{background:#e5cf95}
.booking-dot.no-booking{visibility:hidden}
.calendar-legend{display:flex;gap:6px;justify-content:center;align-items:center;border-top:1px solid var(--line);margin-top:9px;padding-top:10px;color:var(--muted);font-size:10px}
.day-agenda{min-width:0}
.agenda-heading{margin:0 0 14px;padding-top:1px}
.agenda-heading h2{font-size:20px;font-weight:650;line-height:1.3;text-transform:capitalize}
.agenda-heading p{font-size:11px;color:var(--muted);margin-top:5px}
.agenda-policy{font-size:11px;color:#7b6f4c;background:#f4f0e1;border-radius:9px;padding:10px 12px;margin-bottom:15px}
.agenda-group{margin-bottom:22px}
.agenda-group-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 1px 9px}
.agenda-group-title h3{font-size:14px}
.agenda-group-title>span{color:var(--muted);font-size:10px;text-align:right}
.agenda-list{display:flex;flex-direction:column;gap:8px}
.agenda-row{display:block;width:100%;min-height:76px;padding:12px 15px;border:1px solid #dce4d8;border-radius:10px;text-align:left;color:var(--ink);background:white;transition:background .15s,border-color .15s}
.agenda-row.free{background:#f0f7ec;border-color:#c9ddbf}
.agenda-row.free:hover{background:#e6f2de;border-color:#95b788}
.agenda-row.booked{background:#f8f8f5;border-left:3px solid #b4bcb0}
.agenda-row.booked:hover{background:#edf0e9;border-color:#a9b5a3}
.agenda-row-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.agenda-time{font-size:19px;font-weight:600;line-height:1.35;letter-spacing:-.3px;font-variant-numeric:tabular-nums;white-space:nowrap}
.time-status{font-size:10px;font-weight:650;line-height:1.3;white-space:nowrap;padding:4px 7px;border-radius:5px;background:#e3eedb;color:#48763a}
.time-status.busy{background:#e7eae3;color:#6b7766}
.agenda-row-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;color:var(--muted);font-size:11px;line-height:1.4}
.agenda-row-bottom>span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.agenda-row-bottom svg{width:14px;height:14px;flex-shrink:0;color:#7e9572}
.agenda-row.booked .agenda-row-bottom svg{color:#788077}
.agenda-empty{font-size:12px;line-height:1.6;padding:18px 15px;border:1px dashed #cad6c5;border-radius:10px;color:var(--muted)}
.agenda-help{font-size:11px;color:var(--muted);margin:16px 0}
.summary-date-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:21px 0 13px}
.summary-date-line h2{font-size:17px}
#summary-day-stats .stats{margin-top:0;margin-bottom:27px}
.stat{padding:14px 17px}
.stat-value{font-size:25px}
.source-control{position:relative}
.source-control input{padding-right:47px}
.source-toggle{position:absolute;right:1px;top:1px;width:42px;height:42px;display:grid;place-items:center;border-radius:0 8px 8px 0;background:transparent;color:var(--muted)}
.source-toggle:hover{background:#edf2e9}
.source-toggle svg{width:16px;height:16px;transform:rotate(90deg)}
.source-suggestions{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:10;max-height:220px;overflow:auto;overscroll-behavior:contain;border:1px solid #d4dfce;border-radius:10px;padding:5px;background:white;box-shadow:0 8px 25px #18352118}
.source-option{padding:11px 12px;min-height:44px;font-size:14px;color:var(--ink);border-radius:6px;cursor:pointer;overflow-wrap:anywhere}
.source-option:hover,.source-option[aria-selected=true]{background:#edf5e6}
.source-empty{padding:10px 12px;color:var(--muted);font-size:12px}
.source-field>.field-hint{display:block}
.full-booking-table{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.full-booking-table th{text-transform:uppercase}
.full-booking-table td{vertical-align:top}
.full-booking-table .full-text-cell .cell-value{display:block;max-width:300px;min-width:170px;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:900px){.booking-board{grid-template-columns:120px minmax(0,1fr);gap:15px}.booking-option-grid{grid-template-columns:minmax(180px,1.5fr) minmax(120px,1fr) minmax(110px,1fr)}.calendar-day{grid-template-columns:27px 1fr 5px;padding:8px}.agenda-time{font-size:18px}}
@media(max-width:680px){
  .booking-options{padding:13px 14px;border-radius:12px}
  .booking-option-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
  .program-option{grid-column:1/-1}
  .booking-option-grid .field-label{font-size:10px}
  .booking-option-grid input,.booking-option-grid select{font-size:16px;padding:9px 10px;min-height:44px}
  .compact-duration{font-size:10px;margin-top:10px}
  .month-toolbar{margin:16px 0 12px;gap:7px;justify-content:space-between}
  .month-select{gap:6px;font-size:11px}
  .month-select input{font-size:14px;padding:9px 8px;min-width:0;width:156px;max-width:100%}
  .month-arrows{gap:4px}
  .month-arrows button{padding:7px;min-width:40px;min-height:44px}
  .booking-board{grid-template-columns:72px minmax(0,1fr);gap:10px}
  .calendar-panel{padding:10px 4px 8px;top:76px;border-radius:11px}
  .calendar-caption{font-size:9px;text-align:center;padding:0 0 8px;line-height:1.4}
  .month-days{gap:3px;max-height:58dvh;padding:2px}
  .calendar-day{grid-template-columns:1fr 15px;gap:3px;min-height:46px;padding:7px 5px;position:relative}
  .day-number{font-size:16px;text-align:center}
  .day-weekday{font-size:9px}
  .calendar-day .booking-dot{position:absolute;width:4px;height:4px;bottom:4px;left:calc(50% - 2px)}
  .calendar-legend{font-size:8px;gap:3px;padding-top:8px;margin-top:7px}
  .calendar-legend .booking-dot{width:4px;height:4px}
  .agenda-heading{margin-bottom:14px;padding-top:0}
  .agenda-heading h2{font-size:16px;line-height:1.4}
  .agenda-heading p{font-size:10px;line-height:1.5}
  .agenda-group{margin-bottom:19px}
  .agenda-group-title{gap:5px;align-items:flex-start;margin-bottom:8px;flex-wrap:wrap}
  .agenda-group-title h3{font-size:13px}
  .agenda-group-title>span{font-size:9px;text-align:left}
  .agenda-row{padding:11px 9px;min-height:72px;border-radius:9px}
  .agenda-row-top{gap:5px}
  .agenda-time{font-size:16px;letter-spacing:-.4px}
  .time-status{font-size:9px;padding:3px 5px}
  .agenda-row-bottom{font-size:10px;margin-top:7px;gap:5px}
  .agenda-row-bottom svg{width:12px;height:12px}
  .agenda-row .next-day{font-size:8px;margin-left:1px}
  .agenda-list{gap:7px}
  .agenda-policy{font-size:10px;padding:9px;line-height:1.5}
  .agenda-empty{padding:14px 10px;font-size:11px}
  .agenda-help{font-size:10px}
  .summary-date-line h2{font-size:15px}
  .stat{padding:12px 13px}.stat-value{font-size:23px}
}
@media(max-width:370px){.booking-board{grid-template-columns:62px minmax(0,1fr);gap:8px}.calendar-day{padding:7px 3px}.agenda-time{font-size:14px}.time-status{font-size:8px;padding:3px 4px}.agenda-row{padding:11px 7px}.month-select input{width:140px}.month-select>span{display:none}}
