/* Seven service lanes use only their real starts, without empty shared tracks. */
.compact-schedule{display:flex;flex-direction:column;gap:8px;min-width:0;height:var(--compact-board-height,calc(100dvh - 240px));min-height:240px;max-width:100%}
.compact-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 15px;flex:0 0 auto;color:#69756d;font-size:11px;line-height:1.4}
.compact-legend>span{display:inline-flex;align-items:center;gap:5px}
.compact-legend>span:before{content:'';width:8px;height:8px;border-radius:2px;background:#e9f4ed;border:1px solid #b7d4c2}
.compact-legend .compact-legend-booked:before{background:#d8ede2;border-color:#68a78a}
.compact-legend .compact-legend-blocked:before{background:#e8e7e2;border-color:#acaea5}
.compact-legend .compact-legend-approval:before{background:#fde1d3;border-color:#db8660}
.compact-board-scroll{flex:1 1 auto;min-height:0;min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;border-radius:8px}
.compact-board-scroll:focus-visible{outline:3px solid #e8a793;outline-offset:-3px}
.compact-board{display:grid;grid-template-columns:repeat(var(--compact-columns,7),minmax(0,1fr));gap:6px;height:100%;min-width:0}
.compact-lane{--compact-resource:#7b8e76;--compact-soft:#edf2e9;--compact-resource-ink:#44533e;display:flex;flex-direction:column;min-width:0;min-height:0;border:1px solid #dcdfd7;background:#f8faf6;border-radius:8px;overflow:hidden}
.compact-lane[data-quest=saw]{--compact-resource:#ce718f;--compact-soft:#fce8ee;--compact-resource-ink:#78354c}
.compact-lane[data-quest=chernobyl]{--compact-resource:#bd9a3e;--compact-soft:#fbf2d7;--compact-resource-ink:#6c591f}
.compact-lane[data-quest=circus]{--compact-resource:#a254bd;--compact-soft:#f3e7fa;--compact-resource-ink:#613176}
.compact-lane[data-quest=guests]{--compact-resource:#4c83d5;--compact-soft:#e5efff;--compact-resource-ink:#294f87}
.compact-lane[data-quest=ritual]{--compact-resource:#3caaa4;--compact-soft:#def4f1;--compact-resource-ink:#276762}
.compact-lane[data-quest=loft]{--compact-resource:#bc8c57;--compact-soft:#f8eee1;--compact-resource-ink:#755630}
.compact-lane[data-quest=mafia]{--compact-resource:#7e83ac;--compact-soft:#eceefa;--compact-resource-ink:#4d527d}
.compact-lane-heading{display:flex;flex-direction:column;justify-content:center;gap:2px;flex:0 0 48px;min-width:0;padding:6px 8px;background:var(--compact-soft);border-bottom:2px solid var(--compact-resource);color:var(--compact-resource-ink)}
.compact-lane-heading h3{font-size:13px;line-height:1.3;margin:0;letter-spacing:-.2px;overflow-wrap:anywhere}
.compact-lane-summary{font-size:11px;line-height:1.3;color:#74806d;white-space:nowrap}
.compact-lane-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:4px;flex:1 1 auto;min-width:0;min-height:0;padding:5px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c6cec1 transparent;scroll-padding:6px}
.compact-booking,.compact-blocked{display:flex;grid-column:1 / -1;flex:0 0 auto;flex-direction:column;align-items:stretch;gap:3px;width:100%;min-width:0;padding:7px;border:1px solid var(--compact-resource);border-left:3px solid var(--compact-resource);border-radius:5px;background:var(--compact-soft);color:var(--compact-resource-ink);text-align:left;line-height:1.3;cursor:pointer}
.compact-booking:hover{filter:brightness(.97)}
.compact-booking:focus-visible,.compact-blocked:focus-visible,.compact-slot button:focus-visible{outline:3px solid #d98667;outline-offset:-2px}
.compact-status-new .compact-status-label{background:#fff2d8;color:#8c5b15}
.compact-status-confirmed .compact-status-label{background:#e1f4e6;color:#376b46}
.compact-status-completed .compact-status-label{background:#e8ebed;color:#60676d}
.compact-needs-approval{box-shadow:inset 0 0 0 1px #d88456}
.compact-booking-top{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:2px 4px;min-width:0}
.compact-time-range{font-size:12px;font-weight:700;line-height:1.3;white-space:nowrap;font-variant-numeric:tabular-nums}
.compact-status-label{padding:1px 3px;border:1px solid #fff;border-radius:3px;font-size:11px;line-height:1.3;font-weight:600}
.compact-guest-name{font-size:13px;line-height:1.35;font-weight:700;overflow-wrap:anywhere}
.compact-guest-phone{font-size:12px;line-height:1.3;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-.25px}
.compact-booking-details{display:flex;justify-content:space-between;align-items:baseline;gap:3px 6px;flex-wrap:wrap;font-size:11px;line-height:1.3}
.compact-price{font-size:12px;white-space:nowrap}
.compact-booking-tags{display:flex;flex-wrap:wrap;gap:3px;min-width:0}
.compact-tag{display:inline-block;padding:1px 3px;border:1px solid #a3bba9;border-radius:3px;background:#fff8;color:#45634c;font-size:11px;line-height:1.25;font-weight:600;overflow-wrap:anywhere}
.compact-urgent{border-color:#da997c;background:#fff0e6;color:#9e4320}
.compact-blacklist-tag{border-color:#bd7777;background:#fff0ee;color:#9e3030}
.compact-blacklisted{box-shadow:inset 0 0 0 1px #ce9892}
.compact-note-tag{border-color:#d0c1a8;color:#756448;background:#fff9e9}
.compact-custom-tag{border-color:#b9b6d3;color:#665a83;background:#f7f3ff}
.compact-blocked{padding:6px 7px;border-color:#d0d1ca;border-left-color:#90968a;background:#e9ebe5;color:#5f685a}
.compact-blocked:hover{background:#dfe3d8;border-color:#a9b09f}
.compact-block-top{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px;font-size:11px;line-height:1.35}
.compact-block-top strong{font-size:12px;font-variant-numeric:tabular-nums}
.compact-block-reason{font-size:11px;line-height:1.35;overflow-wrap:anywhere}
.compact-slot{display:flex;align-items:stretch;flex:0 0 auto;min-width:0;border:1px solid #cedecf;border-radius:4px;background:#f1f8f0;overflow:hidden}
.compact-slot button{min-height:29px;padding:4px 6px;border:0;border-radius:0;background:transparent;color:#55724e;font-size:11px;line-height:1.3;text-align:left}
.compact-slot-open{display:flex;align-items:center;justify-content:space-between;gap:3px;flex:1 1 auto;min-width:0}
.compact-start{font-size:12px;line-height:1.3;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.compact-slot-label{font-size:11px;line-height:1.3;min-width:0}
.compact-add-mark{font-size:16px;line-height:1;flex:0 0 auto}
.compact-slot .compact-slot-close{display:grid;place-items:center;flex:0 0 20px;min-width:20px;max-width:20px;padding:2px;border-left:1px solid #d1e1ce;font-size:14px;line-height:1}
.compact-slot-free button:hover{background:#e2f0dc;color:#365f2a}
.compact-slot-occupied{border-color:#d8dcd4;background:#f0f1ed}
.compact-slot-past{border-color:#e2e4dd;background:#f7f7f3}
.compact-slot-past button,.compact-slot-occupied button{color:#868d80;opacity:1;cursor:default}
.compact-lane-empty{grid-column:1 / -1;font-size:12px;line-height:1.5;color:#8b9284;margin:10px 4px}
@media(min-width:761px){
  .compact-slot button{padding:4px 3px}
  .compact-slot .compact-slot-label,.compact-slot .compact-add-mark{display:none}
}
@media(min-width:1201px) and (max-width:1500px){
  .compact-slot-free .compact-slot-label{display:none}
  .compact-booking,.compact-blocked{padding-left:6px;padding-right:6px}
}
@media(max-width:1200px){
  .compact-board{grid-template-columns:repeat(var(--compact-columns,7),minmax(165px,1fr));min-width:calc(var(--compact-columns,7)*165px + (var(--compact-columns,7) - 1)*6px)}
}
@media(max-width:760px){
  .compact-schedule{min-height:320px;gap:9px}
  .compact-legend{gap:6px 12px;font-size:12px}
  .compact-board-scroll{scroll-snap-type:x proximity}
  .compact-board{grid-template-columns:repeat(var(--compact-columns,7),180px);min-width:calc(var(--compact-columns,7)*180px + (var(--compact-columns,7) - 1)*6px);scroll-snap-type:x proximity}
  .compact-lane{scroll-snap-align:start}
  .compact-lane-heading{flex-basis:50px;padding:7px 9px}
  .compact-lane-heading h3{font-size:14px}
  .compact-lane-summary{font-size:12px}
  .compact-lane-body{padding:6px;gap:6px}
  .compact-booking,.compact-blocked{padding:9px;gap:4px}
  .compact-guest-name{font-size:14px}
  .compact-time-range,.compact-guest-phone,.compact-price{font-size:13px}
  .compact-status-label,.compact-booking-details,.compact-tag,.compact-block-reason{font-size:12px}
  .compact-slot{grid-column:1 / -1}
  .compact-slot button{min-height:44px;padding:8px;font-size:12px}
  .compact-slot .compact-add-mark{display:none}
  .compact-start{font-size:13px}
  .compact-slot .compact-slot-close{flex-basis:44px;min-width:44px;max-width:44px;font-size:18px}
}

/* A phone overview keeps one shared clock and every resource on screen. */
.compact-schedule.is-mobile-calendar{position:relative;display:flex;flex-direction:column;gap:0;min-height:0;height:var(--compact-board-height,60dvh);max-height:var(--compact-board-height,60dvh);width:100%;max-width:100%;overflow:hidden;overscroll-behavior:none}
.compact-mobile-board{display:grid;grid-template-columns:30px repeat(var(--compact-mobile-columns,7),minmax(0,1fr));gap:0;flex:1 1 auto;min-width:0;min-height:0;width:100%;max-width:100%;overflow:hidden;border:1px solid #dbe0d6;border-radius:4px;background:#fff}
.compact-mobile-axis{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;background:#f5f6f2;color:#697260}
.compact-mobile-axis-heading{display:flex;align-items:center;justify-content:center;flex:0 0 24px;height:24px;overflow:hidden;border-bottom:1px solid #dbe0d6;font-size:10px;line-height:11px;font-weight:600;letter-spacing:-.4px}
.compact-mobile-axis-body{position:relative;flex:1 1 auto;min-height:0;overflow:hidden}
.compact-mobile-time{position:absolute;right:1px;max-width:29px;font-size:10px;line-height:11px;font-weight:600;letter-spacing:-.45px;white-space:nowrap;font-variant-numeric:tabular-nums;transform:translateY(-50%)}
.compact-mobile-time.is-first{transform:none}.compact-mobile-time.is-last{transform:translateY(-100%)}
.has-short-mobile-height .compact-mobile-time:not(.is-hour):not(.is-last),.has-short-mobile-height .compact-mobile-time.is-penultimate{display:none}
.compact-mobile-column.compact-lane{display:flex;flex-direction:column;gap:0;min-width:0;min-height:0;height:100%;padding:0;border:0;border-left:1px solid #dbe0d6;border-radius:0;overflow:hidden;background:#fff}
.compact-mobile-heading{display:flex;align-items:center;justify-content:center;flex:0 0 24px;min-width:0;height:24px;margin:0;padding:1px;overflow:hidden;border-bottom:2px solid var(--compact-resource);background:var(--compact-soft);color:var(--compact-resource-ink);font-size:10.5px;line-height:12px;letter-spacing:-.35px;white-space:nowrap;font-weight:700}
.compact-mobile-track{position:relative;flex:1 1 auto;min-width:0;min-height:0;overflow:hidden;background-color:#fff;background-image:linear-gradient(to bottom,#e9ede5 1px,transparent 1px);background-size:100% calc(100% / 31);background-repeat:repeat-y}
.compact-mobile-free{position:absolute;left:1px;z-index:1;display:block;width:calc(100% - 2px);min-width:0;min-height:0!important;height:13px;margin:0;padding:0;overflow:hidden;border:0;border-radius:2px;background:transparent;color:#4e7040;font-size:10.5px;line-height:11px;letter-spacing:-.3px;font-weight:600;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums;touch-action:manipulation}
.compact-mobile-free-label{display:block;width:100%;height:13px;padding:0 1px;overflow:hidden;border:1px solid #c8ddbf;border-radius:2px;background:#eef7e9;line-height:11px;pointer-events:none}
.compact-mobile-free:hover .compact-mobile-free-label{background:#dceecf}.compact-mobile-free.is-past{color:#969d8e;opacity:1}.compact-mobile-free.is-past .compact-mobile-free-label{border-color:#e4e8df;background:#f8f9f6}
.compact-mobile-actual-span{position:absolute;z-index:1;display:block;min-height:1px;background:var(--compact-resource);opacity:.25;pointer-events:none}
.compact-mobile-event.compact-booking,.compact-mobile-event.compact-blocked{position:absolute;z-index:2;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:0;min-width:0;min-height:0!important;margin:0;padding:1px;border-width:1px;border-radius:3px;overflow:hidden;text-align:left;line-height:1.05;touch-action:manipulation;box-sizing:border-box}
.compact-mobile-event .compact-mobile-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;flex:0 1 auto;min-width:0;min-height:0;max-width:100%;margin:0;padding:0 1px;overflow:hidden;font-size:10.5px;line-height:11.5px;font-weight:700;letter-spacing:-.2px;overflow-wrap:anywhere;text-overflow:ellipsis}
.compact-mobile-event-time{display:block;flex:0 0 auto;min-width:0;max-width:100%;margin:0;padding:0 1px;overflow:hidden;font-size:10px;line-height:11px;letter-spacing:-.35px;white-space:nowrap;font-variant-numeric:tabular-nums}
.compact-mobile-phone{display:none;flex:0 0 9px;min-width:0;max-width:100%;height:9px;margin:0;padding:0;font:var(--compact-mobile-phone-size,8px)/9px Arial,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:0;white-space:nowrap}
.compact-mobile-event.has-contact-phone .compact-mobile-phone{display:block}
.compact-mobile-event.compact-booking:not(.is-point) .compact-mobile-name{display:block;flex:0 0 10px;height:10px;max-height:10px;margin:0;padding:0;overflow:hidden;font:700 var(--compact-mobile-name-size,9px)/10px Arial,sans-serif;letter-spacing:-.15px;white-space:nowrap;overflow-wrap:normal;text-overflow:ellipsis}
.compact-mobile-event.compact-booking:not(.is-point) .compact-mobile-event-time{display:block;flex:0 0 9px;height:9px;max-height:9px;padding:0;font:700 9px/9px Arial,sans-serif;letter-spacing:0}
.compact-mobile-event.compact-booking.is-clock-only:not(.is-point) .compact-mobile-name{display:none}
.compact-mobile-state{position:absolute;top:0;right:0;z-index:2;display:block;min-width:4px;height:9px;padding:0;color:#ae6d1b;font-size:14px;line-height:7px;font-weight:700;pointer-events:none}
.compact-status-confirmed .compact-mobile-state{color:#367c52}.compact-status-completed .compact-mobile-state{color:#727c85}
.compact-needs-approval .compact-mobile-state,.compact-blacklisted .compact-mobile-state{height:10px;padding:0 1px;background:#fff1dd;color:#a54427;font-size:10px;line-height:10px}
.compact-mobile-event.is-condensed .compact-mobile-name{-webkit-line-clamp:1}
.compact-mobile-event.is-very-condensed .compact-mobile-event-time{display:none}
.compact-mobile-event.is-very-condensed .compact-mobile-name{font-size:10.5px;line-height:11px}
.compact-mobile-event.is-point{display:grid;place-items:center;padding:0!important;border-radius:50%;transform:translateX(-50%)}
.compact-mobile-event.is-point .compact-mobile-name{display:block;max-width:100%;padding:0;overflow:hidden;font-size:10px;line-height:11px;white-space:nowrap;text-overflow:clip}
.compact-mobile-event.is-point .compact-mobile-event-time,.compact-mobile-event.is-point .compact-mobile-state{display:none}
.compact-mobile-event.compact-blocked .compact-mobile-name{display:block;font-size:10px;line-height:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compact-mobile-continuation{position:absolute;z-index:3;display:block;width:7px;height:10px;background:#fffd;color:#65543b;font-size:10px;line-height:10px;font-weight:700;pointer-events:none}
.compact-mobile-continuation.is-before{top:0;left:0}.compact-mobile-continuation.is-after{right:0;bottom:0}
.compact-mobile-offhours{display:block;flex:0 0 24px;min-width:0;min-height:0!important;width:100%;height:24px;margin:0 0 3px;padding:2px 6px;overflow:hidden;border:1px solid #d8d9e2;border-radius:3px;background:#f3f2f8;color:#625b79;font-size:11px;line-height:17px;text-align:left;white-space:nowrap;text-overflow:ellipsis}
.compact-mobile-offhours:hover{background:#eae6f5}
.compact-mobile-event:focus-visible,.compact-mobile-free:focus-visible{outline:2px solid #bb6c4a;outline-offset:-2px;z-index:5}
