/* Calendar view: compact horizontal booking rows (variant B). */
.bookings-day-card{padding:26px 24px}.booking-timeline{width:100%;max-width:none}.timeline-item{display:grid;grid-template-columns:92px minmax(0,1fr);position:relative}.timeline-time{position:relative;padding:13px 23px 13px 0;text-align:right;color:#625d56;font-size:.85rem;line-height:1.25;white-space:nowrap}.timeline-time:after{content:"";position:absolute;right:0;top:0;bottom:0;width:1px;background:#dfdad2}.timeline-time:before{content:"";position:absolute;right:-4px;top:17px;width:7px;height:7px;border:2px solid #fff;border-radius:50%;background:#9b968e;box-shadow:0 0 0 1px #d0cac1;z-index:1}.timeline-booking{padding:8px 0 8px 25px}.timeline-card{display:grid;grid-template-columns:108px 98px minmax(160px,1.25fr) minmax(80px,.9fr) 78px minmax(145px,1fr) auto;gap:14px;align-items:center;min-height:64px;padding:12px 16px;background:#fff;border:1px solid #e5e0d8;border-radius:9px;box-shadow:0 2px 8px #3c332506}.timeline-card--pending{border-left:3px solid #edb28d}.timeline-card--paid{border-left:3px solid #a8d09f}.timeline-field,.timeline-state{min-width:0;display:grid;gap:3px;color:#322f2b;font-size:.87rem;line-height:1.35}.timeline-field strong{font-size:.9rem;color:#24211e}.timeline-field__label{display:none;color:#80796f;font-size:.65rem;font-weight:700;letter-spacing:.055em;line-height:1.1;text-transform:uppercase}.timeline-card__contacts a{width:max-content;max-width:100%;overflow-wrap:anywhere;color:#3e3933;text-decoration:none;border-bottom:1px solid #d7d0c6}.timeline-card__contacts a:hover,.timeline-edit:hover{border-color:#25231f;color:#25231f}.timeline-card__comment{color:#706a62;overflow-wrap:anywhere}.timeline-card__amount strong{white-space:nowrap}.timeline-state{align-items:start}.timeline-badge{display:inline-flex;width:max-content;padding:4px 9px;border-radius:999px;font-size:.74rem;font-weight:700;white-space:nowrap}.timeline-badge--pending{background:#fbf1e9;color:#985026}.timeline-badge--paid{background:#edf6ef;color:#28633a}.timeline-paid-button{margin-top:3px;border:1px solid #25231f;border-radius:6px;background:#25231f;color:#fff;padding:7px 9px;font-size:.73rem;font-weight:700;line-height:1.15;cursor:pointer;white-space:nowrap}.timeline-paid-button:hover{background:#46413a}.timeline-actions{display:flex;align-items:center;justify-content:flex-end;gap:13px;min-width:125px}.timeline-edit{color:#4b4741;text-decoration:none;border-bottom:1px solid #c5bdb2;font-size:.78rem;line-height:1.25;white-space:nowrap}.timeline-cancel{margin:0}.timeline-cancel .danger{padding:0!important;border:0!important;background:transparent!important;color:#a24b42!important;font-size:.78rem;font-weight:600;white-space:nowrap}.timeline-free .timeline-time{padding-top:10px;padding-bottom:10px}.timeline-free .timeline-time:before{top:13px;background:#d4d0c8}.timeline-free__label{padding:10px 0 10px 25px;color:#8b867e;font-size:.82rem}
@media(max-width:980px){.timeline-card{grid-template-columns:100px 90px minmax(135px,1fr) 70px minmax(132px,.9fr) auto}.timeline-card__comment{display:none}.timeline-actions{min-width:auto;gap:10px}}
@media(max-width:760px){.bookings-day-card{padding:20px 13px}.bookings-day-card h2{margin-left:3px}.timeline-item{grid-template-columns:76px minmax(0,1fr)}.timeline-time{padding:12px 14px 12px 0;font-size:.76rem}.timeline-booking{padding:7px 0 7px 15px}.timeline-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:13px 14px;min-height:0;padding:14px 13px}.timeline-field__label{display:block}.timeline-card__hall{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between}.timeline-card__hall .timeline-field__label{display:none}.timeline-card__client,.timeline-card__contacts{align-self:start}.timeline-card__comment{display:grid;grid-column:1/-1}.timeline-card__amount{grid-column:1}.timeline-state{grid-column:2}.timeline-state .timeline-field__label{display:block}.timeline-paid-button{width:100%;margin-top:5px;padding:9px 7px;white-space:normal}.timeline-actions{grid-column:1/-1;justify-content:space-between;gap:12px;padding-top:1px}.timeline-free .timeline-time{padding-top:9px;padding-bottom:9px}.timeline-free .timeline-time:before{top:12px}.timeline-free__label{padding:9px 0 9px 15px;font-size:.79rem}}
@media(max-width:390px){.timeline-item{grid-template-columns:67px minmax(0,1fr)}.timeline-booking{padding-left:12px}.timeline-card{grid-template-columns:1fr}.timeline-card__amount,.timeline-state{grid-column:auto}.timeline-state{align-items:stretch}}

/* Keep every time label on one vertical axis. Only the booking card is indented. */
.timeline-booking{padding-left:0}
.timeline-booking .timeline-card{margin-left:25px}

/* On a phone the time is a compact row above a full-width card, not a narrow side column. */
@media(max-width:760px){
  .timeline-item{display:block}
  .timeline-time{padding:7px 0;text-align:left;font-size:.78rem;color:#625d56}
  .timeline-time:after,.timeline-time:before{display:none}
  .timeline-booking{padding:0 0 15px}
  .timeline-booking .timeline-card{margin-left:0}
  .timeline-free{display:flex;align-items:center;gap:10px;padding:4px 0 10px}
  .timeline-free .timeline-time{padding:0;min-width:86px}
  .timeline-free__label{padding:0;font-size:.8rem}
}

@media(max-width:390px){
  .timeline-item{grid-template-columns:none}
  .timeline-booking{padding-left:0}
}

/* One coordinate system for every dot: no horizontal padding on the grid row itself. */
.timeline-booking{padding:8px 0}
.timeline-booking .timeline-card{margin-left:25px}
.timeline-actions{flex-direction:column;align-items:flex-start;justify-content:center;gap:7px}

@media(max-width:760px){
  .timeline-booking{padding:0 0 15px}
  .timeline-booking .timeline-card{margin-left:0}
  .timeline-booking>.timeline-time{display:inline-flex;padding:6px 10px;margin:0 0 -1px;background:#f5f0e9;border:1px solid #e5e0d8;border-bottom:0;border-radius:7px 7px 0 0;color:#403b35;font-weight:700;font-size:.78rem}
  .timeline-actions{flex-direction:row;align-items:center;justify-content:space-between;gap:12px}
}

/* Mobile cards use visual grouping instead of repeated technical headings. */
@media(max-width:760px){
  .timeline-field__label,.timeline-state>.timeline-field__label{display:none}
  .timeline-card__contacts a[href*="t.me/"]::before{content:"✈";display:inline-block;margin-right:6px;color:#2a7db8;font-size:.8rem}
  .timeline-card__contacts a[href*="instagram.com/"]::before{content:"◎";display:inline-block;margin-right:6px;color:#a24979;font-size:1rem;line-height:.7}
  .timeline-card__amount,.timeline-state{align-self:end}
}

/* Do not collapse useful data into a single column on narrow phones. */
@media(max-width:390px){
  .timeline-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .timeline-card__hall,.timeline-card__comment,.timeline-actions{grid-column:1/-1}
  .timeline-card__amount{grid-column:1}
  .timeline-state{grid-column:2}
}

.timeline-card__contacts a[href*="t.me/"]::before{content:"✈";display:inline-block;margin-right:6px;color:#2a7db8;font-size:.8rem}
.timeline-card__contacts a[href*="instagram.com/"]::before{content:"◎";display:inline-block;margin-right:6px;color:#a24979;font-size:1rem;line-height:.7}

/* The status sits on the right edge on phones; the coloured marker starts below the time tab. */
.timeline-card--pending,.timeline-card--paid{position:relative;border-left-color:#e5e0d8}
.timeline-card--pending::before,.timeline-card--paid::before{content:"";position:absolute;left:-3px;top:11px;bottom:11px;width:3px;border-radius:3px 0 0 3px}
.timeline-card--pending::before{background:#edb28d}.timeline-card--paid::before{background:#a8d09f}
@media(max-width:760px){.timeline-state{justify-items:end;text-align:right}.timeline-state form{width:100%}.timeline-state .timeline-paid-button{margin-left:auto}.timeline-card__contacts .timeline-phone::before{content:none}}
