:root{--navy:#102a43;--navy2:#243b53;--page:#f5f7fa;--white:#fff;--text:#1f2933;--muted:#627d98;--border:#d9e2ec;--soft:#eaf2f8;--blue:#7aa6c2;--green:#1f7a4f;--greenSoft:#e9f7ef;--amber:#8a5a00;--amberSoft:#fff7df;--red:#a61b1b;--redSoft:#fff0f0;--shadow:0 8px 22px rgba(16,42,67,.08)}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--page);color:var(--text)}
button,input{font:inherit}
.status-state{position:absolute;left:-9999px}
.app{width:min(100%,880px);margin:auto;padding:14px}
.page{display:none}
#home{display:block}
.page:target{display:block}
body:has(.app-page:target) #home{display:none}
.hero{background:var(--navy);color:#fff;border-radius:18px;padding:20px;box-shadow:var(--shadow)}
.hero h1{margin:0}
.hero p{margin:7px 0 0;color:#d9e2ec}
.equipment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:14px}
.machine-button{display:block;min-height:92px;border:2px solid var(--border);border-radius:13px;background:#fff;color:var(--text);padding:11px;text-decoration:none;box-shadow:0 4px 14px rgba(16,42,67,.05)}
.machine-name{display:block;font-weight:800;margin-bottom:6px}
.machine-cue{display:block;color:var(--navy2);font-size:.82rem;font-weight:700;line-height:1.35;margin-top:8px}
.home-status,.detail-status{display:none}

.calendar-switch{position:absolute;left:-9999px}
.calendar-panel{margin-top:13px}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;width:100%}
.calendar-arrow{display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;border:1px solid var(--navy);border-radius:10px;background:#fff;color:var(--navy);font-size:1.5rem;font-weight:800;cursor:pointer;user-select:none}
.calendar-current-title{margin:0;text-align:center;flex:1;min-width:0;font-size:1.05rem}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.calendar-weekday{text-align:center;color:var(--muted);font-size:.76rem;font-weight:800;padding:5px 2px}
.calendar-day{min-height:48px;border:1px solid var(--border);border-radius:9px;background:#fff;padding:6px;text-align:right;font-size:.82rem}
.calendar-day.blank{background:#f3f5f7;border-color:#eef1f4}
.calendar-day.booked{background:var(--redSoft);border-color:#df9a9a;color:var(--red);font-weight:800}
.calendar-day.booked span{display:block;margin-top:4px;text-align:left;font-size:.62rem}
.calendar-legend{display:flex;align-items:center;gap:7px;margin-top:10px;color:var(--muted);font-size:.8rem}
.calendar-legend-swatch{width:15px;height:15px;border-radius:4px;background:var(--redSoft);border:1px solid #df9a9a}
.calendar-month{display:none}
.create-booking-link{display:block;margin-top:13px;border-radius:13px;background:var(--navy);color:#fff;padding:13px 16px;font-weight:800;text-align:center;text-decoration:none}.booking-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.back-button{display:inline-block;margin-bottom:12px;border:1px solid var(--navy);border-radius:12px;background:#fff;color:var(--navy);padding:11px 14px;font-weight:750;text-decoration:none}
.metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}
.metric,.panel{background:#fff;border:1px solid var(--border);border-radius:15px;padding:16px;box-shadow:0 4px 14px rgba(16,42,67,.04)}
.metric span,.label{display:block;color:var(--muted);font-size:.82rem;margin-bottom:5px}
.metric strong{font-size:1.3rem;color:var(--navy)}
.panel{margin-top:13px}
.panel h2{margin:0 0 13px;font-size:1.08rem}
.spec-row+.spec-row{margin-top:11px}
.spec-value{font-weight:650}
.current-status{margin-top:16px}
.status-pill{border-radius:999px;padding:7px 11px;font-size:.84rem;font-weight:800}
.status-pill.available{background:var(--greenSoft);color:var(--green)}
.status-pill.away{background:var(--amberSoft);color:var(--amber)}
.status-pill.broken{background:var(--redSoft);color:var(--red)}
.status-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px}
.status-option{display:block;border:2px solid var(--border);border-radius:11px;background:#fff;padding:11px 8px;font-weight:750;cursor:pointer;text-align:center;user-select:none}
.status-help{margin:10px 0 0;color:var(--muted);font-size:.82rem;line-height:1.4}
.booking-list{display:grid;gap:8px}
.booking-details{border:1px solid var(--blue);background:var(--soft);border-radius:12px;overflow:hidden}
.booking-details summary{cursor:pointer;list-style:none;padding:12px;font-weight:800}
.booking-details summary::-webkit-details-marker{display:none}
.booking-details summary::after{content:"View details";float:right;color:var(--navy2);font-size:.8rem;font-weight:700}
.booking-details[open] summary::after{content:"Hide details"}
.booking-detail-body{border-top:1px solid var(--blue);padding:12px;background:#fff}
.booking-detail-grid{display:grid;gap:8px}
.booking-detail-row{display:grid;grid-template-columns:110px 1fr;gap:8px}
.booking-detail-row span:first-child{color:var(--muted);font-size:.82rem}

.booking-item{background:var(--soft);border:1px solid var(--blue);border-radius:12px;padding:12px}
.booking-item strong,.booking-item small{display:block}
.booking-item small{margin-top:3px;color:var(--muted)}
.date-grid{display:grid;gap:12px}
.date-wrap{border:1px solid var(--border);border-radius:12px;padding:10px 12px}
.date-wrap input{width:100%;border:0;background:transparent}
.save-button{width:100%;margin-top:14px;border:0;border-radius:13px;background:var(--navy);color:#fff;padding:13px 16px;font-weight:800}
.message{min-height:24px;margin:10px 0 0;font-weight:700}
.message.success{color:var(--green)}
.message.error{color:var(--red)}

#mini-digger-available:checked ~ main [data-home-card="mini-digger"] {
  border-color:#8ac4a4; background:var(--greenSoft);
}
#mini-digger-available:checked ~ main [data-home-card="mini-digger"] .home-available,
#mini-digger-available:checked ~ main [data-machine-page="mini-digger"] .detail-available {
  display:inline-block;
}
#mini-digger-available:checked ~ main [data-machine-page="mini-digger"] label[for="mini-digger-available"] {
  border-color:var(--green); background:var(--greenSoft); color:var(--green);
}

#mini-digger-away:checked ~ main [data-home-card="mini-digger"] {
  border-color:#d6b35a; background:var(--amberSoft);
}
#mini-digger-away:checked ~ main [data-home-card="mini-digger"] .home-away,
#mini-digger-away:checked ~ main [data-machine-page="mini-digger"] .detail-away {
  display:inline-block;
}
#mini-digger-away:checked ~ main [data-machine-page="mini-digger"] label[for="mini-digger-away"] {
  border-color:var(--amber); background:var(--amberSoft); color:var(--amber);
}

#mini-digger-broken:checked ~ main [data-home-card="mini-digger"] {
  border-color:#df9a9a; background:var(--redSoft);
}
#mini-digger-broken:checked ~ main [data-home-card="mini-digger"] .home-broken,
#mini-digger-broken:checked ~ main [data-machine-page="mini-digger"] .detail-broken {
  display:inline-block;
}
#mini-digger-broken:checked ~ main [data-machine-page="mini-digger"] label[for="mini-digger-broken"] {
  border-color:var(--red); background:var(--redSoft); color:var(--red);
}
#six-tonne-digger-available:checked ~ main [data-home-card="six-tonne-digger"] {
  border-color:#8ac4a4; background:var(--greenSoft);
}
#six-tonne-digger-available:checked ~ main [data-home-card="six-tonne-digger"] .home-available,
#six-tonne-digger-available:checked ~ main [data-machine-page="six-tonne-digger"] .detail-available {
  display:inline-block;
}
#six-tonne-digger-available:checked ~ main [data-machine-page="six-tonne-digger"] label[for="six-tonne-digger-available"] {
  border-color:var(--green); background:var(--greenSoft); color:var(--green);
}

#six-tonne-digger-away:checked ~ main [data-home-card="six-tonne-digger"] {
  border-color:#d6b35a; background:var(--amberSoft);
}
#six-tonne-digger-away:checked ~ main [data-home-card="six-tonne-digger"] .home-away,
#six-tonne-digger-away:checked ~ main [data-machine-page="six-tonne-digger"] .detail-away {
  display:inline-block;
}
#six-tonne-digger-away:checked ~ main [data-machine-page="six-tonne-digger"] label[for="six-tonne-digger-away"] {
  border-color:var(--amber); background:var(--amberSoft); color:var(--amber);
}

#six-tonne-digger-broken:checked ~ main [data-home-card="six-tonne-digger"] {
  border-color:#df9a9a; background:var(--redSoft);
}
#six-tonne-digger-broken:checked ~ main [data-home-card="six-tonne-digger"] .home-broken,
#six-tonne-digger-broken:checked ~ main [data-machine-page="six-tonne-digger"] .detail-broken {
  display:inline-block;
}
#six-tonne-digger-broken:checked ~ main [data-machine-page="six-tonne-digger"] label[for="six-tonne-digger-broken"] {
  border-color:var(--red); background:var(--redSoft); color:var(--red);
}
#site-dumper-available:checked ~ main [data-home-card="site-dumper"] {
  border-color:#8ac4a4; background:var(--greenSoft);
}
#site-dumper-available:checked ~ main [data-home-card="site-dumper"] .home-available,
#site-dumper-available:checked ~ main [data-machine-page="site-dumper"] .detail-available {
  display:inline-block;
}
#site-dumper-available:checked ~ main [data-machine-page="site-dumper"] label[for="site-dumper-available"] {
  border-color:var(--green); background:var(--greenSoft); color:var(--green);
}

#site-dumper-away:checked ~ main [data-home-card="site-dumper"] {
  border-color:#d6b35a; background:var(--amberSoft);
}
#site-dumper-away:checked ~ main [data-home-card="site-dumper"] .home-away,
#site-dumper-away:checked ~ main [data-machine-page="site-dumper"] .detail-away {
  display:inline-block;
}
#site-dumper-away:checked ~ main [data-machine-page="site-dumper"] label[for="site-dumper-away"] {
  border-color:var(--amber); background:var(--amberSoft); color:var(--amber);
}

#site-dumper-broken:checked ~ main [data-home-card="site-dumper"] {
  border-color:#df9a9a; background:var(--redSoft);
}
#site-dumper-broken:checked ~ main [data-home-card="site-dumper"] .home-broken,
#site-dumper-broken:checked ~ main [data-machine-page="site-dumper"] .detail-broken {
  display:inline-block;
}
#site-dumper-broken:checked ~ main [data-machine-page="site-dumper"] label[for="site-dumper-broken"] {
  border-color:var(--red); background:var(--redSoft); color:var(--red);
}
#cherry-picker-available:checked ~ main [data-home-card="cherry-picker"] {
  border-color:#8ac4a4; background:var(--greenSoft);
}
#cherry-picker-available:checked ~ main [data-home-card="cherry-picker"] .home-available,
#cherry-picker-available:checked ~ main [data-machine-page="cherry-picker"] .detail-available {
  display:inline-block;
}
#cherry-picker-available:checked ~ main [data-machine-page="cherry-picker"] label[for="cherry-picker-available"] {
  border-color:var(--green); background:var(--greenSoft); color:var(--green);
}

#cherry-picker-away:checked ~ main [data-home-card="cherry-picker"] {
  border-color:#d6b35a; background:var(--amberSoft);
}
#cherry-picker-away:checked ~ main [data-home-card="cherry-picker"] .home-away,
#cherry-picker-away:checked ~ main [data-machine-page="cherry-picker"] .detail-away {
  display:inline-block;
}
#cherry-picker-away:checked ~ main [data-machine-page="cherry-picker"] label[for="cherry-picker-away"] {
  border-color:var(--amber); background:var(--amberSoft); color:var(--amber);
}

#cherry-picker-broken:checked ~ main [data-home-card="cherry-picker"] {
  border-color:#df9a9a; background:var(--redSoft);
}
#cherry-picker-broken:checked ~ main [data-home-card="cherry-picker"] .home-broken,
#cherry-picker-broken:checked ~ main [data-machine-page="cherry-picker"] .detail-broken {
  display:inline-block;
}
#cherry-picker-broken:checked ~ main [data-machine-page="cherry-picker"] label[for="cherry-picker-broken"] {
  border-color:var(--red); background:var(--redSoft); color:var(--red);
}
#road-sweeper-available:checked ~ main [data-home-card="road-sweeper"] {
  border-color:#8ac4a4; background:var(--greenSoft);
}
#road-sweeper-available:checked ~ main [data-home-card="road-sweeper"] .home-available,
#road-sweeper-available:checked ~ main [data-machine-page="road-sweeper"] .detail-available {
  display:inline-block;
}
#road-sweeper-available:checked ~ main [data-machine-page="road-sweeper"] label[for="road-sweeper-available"] {
  border-color:var(--green); background:var(--greenSoft); color:var(--green);
}

#road-sweeper-away:checked ~ main [data-home-card="road-sweeper"] {
  border-color:#d6b35a; background:var(--amberSoft);
}
#road-sweeper-away:checked ~ main [data-home-card="road-sweeper"] .home-away,
#road-sweeper-away:checked ~ main [data-machine-page="road-sweeper"] .detail-away {
  display:inline-block;
}
#road-sweeper-away:checked ~ main [data-machine-page="road-sweeper"] label[for="road-sweeper-away"] {
  border-color:var(--amber); background:var(--amberSoft); color:var(--amber);
}

#road-sweeper-broken:checked ~ main [data-home-card="road-sweeper"] {
  border-color:#df9a9a; background:var(--redSoft);
}
#road-sweeper-broken:checked ~ main [data-home-card="road-sweeper"] .home-broken,
#road-sweeper-broken:checked ~ main [data-machine-page="road-sweeper"] .detail-broken {
  display:inline-block;
}
#road-sweeper-broken:checked ~ main [data-machine-page="road-sweeper"] label[for="road-sweeper-broken"] {
  border-color:var(--red); background:var(--redSoft); color:var(--red);
}

.customer-grid{display:grid;gap:12px;margin-bottom:14px}
.text-wrap{border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:#fff}
.text-wrap input{width:100%;border:0;background:transparent;padding:0}
.customer-summary{margin-top:5px;color:var(--muted);font-size:.84rem;line-height:1.4}
@media(min-width:640px){.customer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-grid .full-row{grid-column:1/-1}}
@media(min-width:640px){.equipment-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.date-grid{grid-template-columns:1fr 1fr}}

#mini-digger-calendar-2026-08:checked ~ main [data-machine-page="mini-digger"] .calendar-2026-08 {
  display:block;
}
#mini-digger-calendar-2026-08:checked ~ main [data-machine-page="mini-digger"] .toolbar-2026-08 {
  display:flex;
}

#mini-digger-calendar-2026-09:checked ~ main [data-machine-page="mini-digger"] .calendar-2026-09 {
  display:block;
}
#mini-digger-calendar-2026-09:checked ~ main [data-machine-page="mini-digger"] .toolbar-2026-09 {
  display:flex;
}

#mini-digger-calendar-2026-10:checked ~ main [data-machine-page="mini-digger"] .calendar-2026-10 {
  display:block;
}
#mini-digger-calendar-2026-10:checked ~ main [data-machine-page="mini-digger"] .toolbar-2026-10 {
  display:flex;
}

#mini-digger-calendar-2026-11:checked ~ main [data-machine-page="mini-digger"] .calendar-2026-11 {
  display:block;
}
#mini-digger-calendar-2026-11:checked ~ main [data-machine-page="mini-digger"] .toolbar-2026-11 {
  display:flex;
}

#mini-digger-calendar-2026-12:checked ~ main [data-machine-page="mini-digger"] .calendar-2026-12 {
  display:block;
}
#mini-digger-calendar-2026-12:checked ~ main [data-machine-page="mini-digger"] .toolbar-2026-12 {
  display:flex;
}

#mini-digger-calendar-2027-01:checked ~ main [data-machine-page="mini-digger"] .calendar-2027-01 {
  display:block;
}
#mini-digger-calendar-2027-01:checked ~ main [data-machine-page="mini-digger"] .toolbar-2027-01 {
  display:flex;
}

#mini-digger-calendar-2027-02:checked ~ main [data-machine-page="mini-digger"] .calendar-2027-02 {
  display:block;
}
#mini-digger-calendar-2027-02:checked ~ main [data-machine-page="mini-digger"] .toolbar-2027-02 {
  display:flex;
}

#mini-digger-calendar-2027-03:checked ~ main [data-machine-page="mini-digger"] .calendar-2027-03 {
  display:block;
}
#mini-digger-calendar-2027-03:checked ~ main [data-machine-page="mini-digger"] .toolbar-2027-03 {
  display:flex;
}

#mini-digger-calendar-2027-04:checked ~ main [data-machine-page="mini-digger"] .calendar-2027-04 {
  display:block;
}
#mini-digger-calendar-2027-04:checked ~ main [data-machine-page="mini-digger"] .toolbar-2027-04 {
  display:flex;
}

#mini-digger-calendar-2027-05:checked ~ main [data-machine-page="mini-digger"] .calendar-2027-05 {
  display:block;
}
#mini-digger-calendar-2027-05:checked ~ main [data-machine-page="mini-digger"] .toolbar-2027-05 {
  display:flex;
}

#mini-digger-calendar-2027-06:checked ~ main [data-machine-page="mini-digger"] .calendar-2027-06 {
  display:block;
}
#mini-digger-calendar-2027-06:checked ~ main [data-machine-page="mini-digger"] .toolbar-2027-06 {
  display:flex;
}

#mini-digger-calendar-2027-07:checked ~ main [data-machine-page="mini-digger"] .calendar-2027-07 {
  display:block;
}
#mini-digger-calendar-2027-07:checked ~ main [data-machine-page="mini-digger"] .toolbar-2027-07 {
  display:flex;
}

main [data-machine-page="mini-digger"] [class*="calendar-20"],
main [data-machine-page="mini-digger"] [class*="toolbar-20"] {
  display:none;
}

#six-tonne-digger-calendar-2026-08:checked ~ main [data-machine-page="six-tonne-digger"] .calendar-2026-08 {
  display:block;
}
#six-tonne-digger-calendar-2026-08:checked ~ main [data-machine-page="six-tonne-digger"] .toolbar-2026-08 {
  display:flex;
}

#six-tonne-digger-calendar-2026-09:checked ~ main [data-machine-page="six-tonne-digger"] .calendar-2026-09 {
  display:block;
}
#six-tonne-digger-calendar-2026-09:checked ~ main [data-machine-page="six-tonne-digger"] .toolbar-2026-09 {
  display:flex;
}

#six-tonne-digger-calendar-2026-10:checked ~ main [data-machine-page="six-tonne-digger"] .calendar-2026-10 {
  display:block;
}
#six-tonne-digger-calendar-2026-10:checked ~ main [data-machine-page="six-tonne-digger"] .toolbar-2026-10 {
  display:flex;
}

#six-tonne-digger-calendar-2026-11:checked ~ main [data-machine-page="six-tonne-digger"] .calendar-2026-11 {
  display:block;
}
#six-tonne-digger-calendar-2026-11:checked ~ main [data-machine-page="six-tonne-digger"] .toolbar-2026-11 {
  display:flex;
}

#six-tonne-digger-calendar-2026-12:checked ~ main [data-machine-page="six-tonne-digger"] .calendar-2026-12 {
  display:block;
}
#six-tonne-digger-calendar-2026-12:checked ~ main [data-machine-page="six-tonne-digger"] .toolbar-2026-12 {
  display:flex;
}

#six-tonne-digger-calendar-2027-01:checked ~ main [data-machine-page="six-tonne-digger"] .calendar-2027-01 {
  display:block;
}
#six-tonne-digger-calendar-2027-01:checked ~ main [data-machine-page="six-tonne-digger"] .toolbar-2027-01 {
  display:flex;
}

#six-tonne-digger-calendar-2027-02:checked ~ main [data-machine-page="six-tonne-digger"] .calendar-2027-02 {
  display:block;
}
#six-tonne-digger-calendar-2027-02:checked ~ main [data-machine-page="six-tonne-digger"] .toolbar-2027-02 {
  display:flex;
}

#six-tonne-digger-calendar-2027-03:checked ~ main [data-machine-page="six-tonne-digger"] .calendar-2027-03 {
  display:block;
}
#six-tonne-digger-calendar-2027-03:checked ~ main [data-machine-page="six-tonne-digger"] .toolbar-2027-03 {
  display:flex;
}

#six-tonne-digger-calendar-2027-04:checked ~ main [data-machine-page="six-tonne-digger"] .calendar-2027-04 {
  display:block;
}
#six-tonne-digger-calendar-2027-04:checked ~ main [data-machine-page="six-tonne-digger"] .toolbar-2027-04 {
  display:flex;
}

#six-tonne-digger-calendar-2027-05:checked ~ main [data-machine-page="six-tonne-digger"] .calendar-2027-05 {
  display:block;
}
#six-tonne-digger-calendar-2027-05:checked ~ main [data-machine-page="six-tonne-digger"] .toolbar-2027-05 {
  display:flex;
}

#six-tonne-digger-calendar-2027-06:checked ~ main [data-machine-page="six-tonne-digger"] .calendar-2027-06 {
  display:block;
}
#six-tonne-digger-calendar-2027-06:checked ~ main [data-machine-page="six-tonne-digger"] .toolbar-2027-06 {
  display:flex;
}

#six-tonne-digger-calendar-2027-07:checked ~ main [data-machine-page="six-tonne-digger"] .calendar-2027-07 {
  display:block;
}
#six-tonne-digger-calendar-2027-07:checked ~ main [data-machine-page="six-tonne-digger"] .toolbar-2027-07 {
  display:flex;
}

main [data-machine-page="six-tonne-digger"] [class*="calendar-20"],
main [data-machine-page="six-tonne-digger"] [class*="toolbar-20"] {
  display:none;
}

#site-dumper-calendar-2026-08:checked ~ main [data-machine-page="site-dumper"] .calendar-2026-08 {
  display:block;
}
#site-dumper-calendar-2026-08:checked ~ main [data-machine-page="site-dumper"] .toolbar-2026-08 {
  display:flex;
}

#site-dumper-calendar-2026-09:checked ~ main [data-machine-page="site-dumper"] .calendar-2026-09 {
  display:block;
}
#site-dumper-calendar-2026-09:checked ~ main [data-machine-page="site-dumper"] .toolbar-2026-09 {
  display:flex;
}

#site-dumper-calendar-2026-10:checked ~ main [data-machine-page="site-dumper"] .calendar-2026-10 {
  display:block;
}
#site-dumper-calendar-2026-10:checked ~ main [data-machine-page="site-dumper"] .toolbar-2026-10 {
  display:flex;
}

#site-dumper-calendar-2026-11:checked ~ main [data-machine-page="site-dumper"] .calendar-2026-11 {
  display:block;
}
#site-dumper-calendar-2026-11:checked ~ main [data-machine-page="site-dumper"] .toolbar-2026-11 {
  display:flex;
}

#site-dumper-calendar-2026-12:checked ~ main [data-machine-page="site-dumper"] .calendar-2026-12 {
  display:block;
}
#site-dumper-calendar-2026-12:checked ~ main [data-machine-page="site-dumper"] .toolbar-2026-12 {
  display:flex;
}

#site-dumper-calendar-2027-01:checked ~ main [data-machine-page="site-dumper"] .calendar-2027-01 {
  display:block;
}
#site-dumper-calendar-2027-01:checked ~ main [data-machine-page="site-dumper"] .toolbar-2027-01 {
  display:flex;
}

#site-dumper-calendar-2027-02:checked ~ main [data-machine-page="site-dumper"] .calendar-2027-02 {
  display:block;
}
#site-dumper-calendar-2027-02:checked ~ main [data-machine-page="site-dumper"] .toolbar-2027-02 {
  display:flex;
}

#site-dumper-calendar-2027-03:checked ~ main [data-machine-page="site-dumper"] .calendar-2027-03 {
  display:block;
}
#site-dumper-calendar-2027-03:checked ~ main [data-machine-page="site-dumper"] .toolbar-2027-03 {
  display:flex;
}

#site-dumper-calendar-2027-04:checked ~ main [data-machine-page="site-dumper"] .calendar-2027-04 {
  display:block;
}
#site-dumper-calendar-2027-04:checked ~ main [data-machine-page="site-dumper"] .toolbar-2027-04 {
  display:flex;
}

#site-dumper-calendar-2027-05:checked ~ main [data-machine-page="site-dumper"] .calendar-2027-05 {
  display:block;
}
#site-dumper-calendar-2027-05:checked ~ main [data-machine-page="site-dumper"] .toolbar-2027-05 {
  display:flex;
}

#site-dumper-calendar-2027-06:checked ~ main [data-machine-page="site-dumper"] .calendar-2027-06 {
  display:block;
}
#site-dumper-calendar-2027-06:checked ~ main [data-machine-page="site-dumper"] .toolbar-2027-06 {
  display:flex;
}

#site-dumper-calendar-2027-07:checked ~ main [data-machine-page="site-dumper"] .calendar-2027-07 {
  display:block;
}
#site-dumper-calendar-2027-07:checked ~ main [data-machine-page="site-dumper"] .toolbar-2027-07 {
  display:flex;
}

main [data-machine-page="site-dumper"] [class*="calendar-20"],
main [data-machine-page="site-dumper"] [class*="toolbar-20"] {
  display:none;
}

#cherry-picker-calendar-2026-08:checked ~ main [data-machine-page="cherry-picker"] .calendar-2026-08 {
  display:block;
}
#cherry-picker-calendar-2026-08:checked ~ main [data-machine-page="cherry-picker"] .toolbar-2026-08 {
  display:flex;
}

#cherry-picker-calendar-2026-09:checked ~ main [data-machine-page="cherry-picker"] .calendar-2026-09 {
  display:block;
}
#cherry-picker-calendar-2026-09:checked ~ main [data-machine-page="cherry-picker"] .toolbar-2026-09 {
  display:flex;
}

#cherry-picker-calendar-2026-10:checked ~ main [data-machine-page="cherry-picker"] .calendar-2026-10 {
  display:block;
}
#cherry-picker-calendar-2026-10:checked ~ main [data-machine-page="cherry-picker"] .toolbar-2026-10 {
  display:flex;
}

#cherry-picker-calendar-2026-11:checked ~ main [data-machine-page="cherry-picker"] .calendar-2026-11 {
  display:block;
}
#cherry-picker-calendar-2026-11:checked ~ main [data-machine-page="cherry-picker"] .toolbar-2026-11 {
  display:flex;
}

#cherry-picker-calendar-2026-12:checked ~ main [data-machine-page="cherry-picker"] .calendar-2026-12 {
  display:block;
}
#cherry-picker-calendar-2026-12:checked ~ main [data-machine-page="cherry-picker"] .toolbar-2026-12 {
  display:flex;
}

#cherry-picker-calendar-2027-01:checked ~ main [data-machine-page="cherry-picker"] .calendar-2027-01 {
  display:block;
}
#cherry-picker-calendar-2027-01:checked ~ main [data-machine-page="cherry-picker"] .toolbar-2027-01 {
  display:flex;
}

#cherry-picker-calendar-2027-02:checked ~ main [data-machine-page="cherry-picker"] .calendar-2027-02 {
  display:block;
}
#cherry-picker-calendar-2027-02:checked ~ main [data-machine-page="cherry-picker"] .toolbar-2027-02 {
  display:flex;
}

#cherry-picker-calendar-2027-03:checked ~ main [data-machine-page="cherry-picker"] .calendar-2027-03 {
  display:block;
}
#cherry-picker-calendar-2027-03:checked ~ main [data-machine-page="cherry-picker"] .toolbar-2027-03 {
  display:flex;
}

#cherry-picker-calendar-2027-04:checked ~ main [data-machine-page="cherry-picker"] .calendar-2027-04 {
  display:block;
}
#cherry-picker-calendar-2027-04:checked ~ main [data-machine-page="cherry-picker"] .toolbar-2027-04 {
  display:flex;
}

#cherry-picker-calendar-2027-05:checked ~ main [data-machine-page="cherry-picker"] .calendar-2027-05 {
  display:block;
}
#cherry-picker-calendar-2027-05:checked ~ main [data-machine-page="cherry-picker"] .toolbar-2027-05 {
  display:flex;
}

#cherry-picker-calendar-2027-06:checked ~ main [data-machine-page="cherry-picker"] .calendar-2027-06 {
  display:block;
}
#cherry-picker-calendar-2027-06:checked ~ main [data-machine-page="cherry-picker"] .toolbar-2027-06 {
  display:flex;
}

#cherry-picker-calendar-2027-07:checked ~ main [data-machine-page="cherry-picker"] .calendar-2027-07 {
  display:block;
}
#cherry-picker-calendar-2027-07:checked ~ main [data-machine-page="cherry-picker"] .toolbar-2027-07 {
  display:flex;
}

main [data-machine-page="cherry-picker"] [class*="calendar-20"],
main [data-machine-page="cherry-picker"] [class*="toolbar-20"] {
  display:none;
}

#road-sweeper-calendar-2026-08:checked ~ main [data-machine-page="road-sweeper"] .calendar-2026-08 {
  display:block;
}
#road-sweeper-calendar-2026-08:checked ~ main [data-machine-page="road-sweeper"] .toolbar-2026-08 {
  display:flex;
}

#road-sweeper-calendar-2026-09:checked ~ main [data-machine-page="road-sweeper"] .calendar-2026-09 {
  display:block;
}
#road-sweeper-calendar-2026-09:checked ~ main [data-machine-page="road-sweeper"] .toolbar-2026-09 {
  display:flex;
}

#road-sweeper-calendar-2026-10:checked ~ main [data-machine-page="road-sweeper"] .calendar-2026-10 {
  display:block;
}
#road-sweeper-calendar-2026-10:checked ~ main [data-machine-page="road-sweeper"] .toolbar-2026-10 {
  display:flex;
}

#road-sweeper-calendar-2026-11:checked ~ main [data-machine-page="road-sweeper"] .calendar-2026-11 {
  display:block;
}
#road-sweeper-calendar-2026-11:checked ~ main [data-machine-page="road-sweeper"] .toolbar-2026-11 {
  display:flex;
}

#road-sweeper-calendar-2026-12:checked ~ main [data-machine-page="road-sweeper"] .calendar-2026-12 {
  display:block;
}
#road-sweeper-calendar-2026-12:checked ~ main [data-machine-page="road-sweeper"] .toolbar-2026-12 {
  display:flex;
}

#road-sweeper-calendar-2027-01:checked ~ main [data-machine-page="road-sweeper"] .calendar-2027-01 {
  display:block;
}
#road-sweeper-calendar-2027-01:checked ~ main [data-machine-page="road-sweeper"] .toolbar-2027-01 {
  display:flex;
}

#road-sweeper-calendar-2027-02:checked ~ main [data-machine-page="road-sweeper"] .calendar-2027-02 {
  display:block;
}
#road-sweeper-calendar-2027-02:checked ~ main [data-machine-page="road-sweeper"] .toolbar-2027-02 {
  display:flex;
}

#road-sweeper-calendar-2027-03:checked ~ main [data-machine-page="road-sweeper"] .calendar-2027-03 {
  display:block;
}
#road-sweeper-calendar-2027-03:checked ~ main [data-machine-page="road-sweeper"] .toolbar-2027-03 {
  display:flex;
}

#road-sweeper-calendar-2027-04:checked ~ main [data-machine-page="road-sweeper"] .calendar-2027-04 {
  display:block;
}
#road-sweeper-calendar-2027-04:checked ~ main [data-machine-page="road-sweeper"] .toolbar-2027-04 {
  display:flex;
}

#road-sweeper-calendar-2027-05:checked ~ main [data-machine-page="road-sweeper"] .calendar-2027-05 {
  display:block;
}
#road-sweeper-calendar-2027-05:checked ~ main [data-machine-page="road-sweeper"] .toolbar-2027-05 {
  display:flex;
}

#road-sweeper-calendar-2027-06:checked ~ main [data-machine-page="road-sweeper"] .calendar-2027-06 {
  display:block;
}
#road-sweeper-calendar-2027-06:checked ~ main [data-machine-page="road-sweeper"] .toolbar-2027-06 {
  display:flex;
}

#road-sweeper-calendar-2027-07:checked ~ main [data-machine-page="road-sweeper"] .calendar-2027-07 {
  display:block;
}
#road-sweeper-calendar-2027-07:checked ~ main [data-machine-page="road-sweeper"] .toolbar-2027-07 {
  display:flex;
}

main [data-machine-page="road-sweeper"] [class*="calendar-20"],
main [data-machine-page="road-sweeper"] [class*="toolbar-20"] {
  display:none;
}

.filter-state{position:absolute;left:-9999px}
.filter-panel{margin-top:13px;background:#fff;border:1px solid var(--border);border-radius:15px;padding:14px}
.filter-label{display:block;color:var(--muted);font-size:.82rem;font-weight:800;margin-bottom:9px}
.filter-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.filter-option{display:block;border:2px solid var(--border);border-radius:11px;background:#fff;padding:10px 8px;font-weight:800;text-align:center;cursor:pointer;user-select:none}
#filter-all:checked ~ main .filter-option[for="filter-all"],
#filter-available:checked ~ main .filter-option[for="filter-available"],
#filter-away:checked ~ main .filter-option[for="filter-away"],
#filter-broken:checked ~ main .filter-option[for="filter-broken"]{border-color:var(--navy);background:var(--soft);color:var(--navy)}
#filter-available:checked ~ main [data-home-card],
#filter-away:checked ~ main [data-home-card],
#filter-broken:checked ~ main [data-home-card]{display:none}
@media(min-width:640px){.filter-options{grid-template-columns:repeat(4,minmax(0,1fr))}}

#filter-available:checked ~ #mini-digger-available:checked ~ main [data-home-card="mini-digger"]{display:block}
#filter-away:checked ~ #mini-digger-away:checked ~ main [data-home-card="mini-digger"]{display:block}
#filter-broken:checked ~ #mini-digger-broken:checked ~ main [data-home-card="mini-digger"]{display:block}

#filter-available:checked ~ #six-tonne-digger-available:checked ~ main [data-home-card="six-tonne-digger"]{display:block}
#filter-away:checked ~ #six-tonne-digger-away:checked ~ main [data-home-card="six-tonne-digger"]{display:block}
#filter-broken:checked ~ #six-tonne-digger-broken:checked ~ main [data-home-card="six-tonne-digger"]{display:block}

#filter-available:checked ~ #site-dumper-available:checked ~ main [data-home-card="site-dumper"]{display:block}
#filter-away:checked ~ #site-dumper-away:checked ~ main [data-home-card="site-dumper"]{display:block}
#filter-broken:checked ~ #site-dumper-broken:checked ~ main [data-home-card="site-dumper"]{display:block}

#filter-available:checked ~ #cherry-picker-available:checked ~ main [data-home-card="cherry-picker"]{display:block}
#filter-away:checked ~ #cherry-picker-away:checked ~ main [data-home-card="cherry-picker"]{display:block}
#filter-broken:checked ~ #cherry-picker-broken:checked ~ main [data-home-card="cherry-picker"]{display:block}

#filter-available:checked ~ #road-sweeper-available:checked ~ main [data-home-card="road-sweeper"]{display:block}
#filter-away:checked ~ #road-sweeper-away:checked ~ main [data-home-card="road-sweeper"]{display:block}
#filter-broken:checked ~ #road-sweeper-broken:checked ~ main [data-home-card="road-sweeper"]{display:block}

.terms-panel{margin-top:14px;border:1px solid var(--border);border-radius:13px;background:#f8fafc;padding:13px}
.terms-panel h3{margin:0 0 8px;font-size:1rem}
.terms-panel p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.45}
.send-terms-button{width:100%;margin-top:12px;border:1px solid var(--navy);border-radius:13px;background:#fff;color:var(--navy);padding:12px 16px;font-weight:800;cursor:pointer}
.terms-status{min-height:22px;margin:8px 0 0;font-weight:700}

.pricing-summary{margin-top:14px;border:1px solid var(--blue);border-radius:13px;background:var(--soft);padding:13px}
.pricing-summary h3{margin:0 0 10px;font-size:1rem}
.pricing-grid{display:grid;grid-template-columns:1fr auto;gap:8px 14px}
.pricing-grid span{color:var(--muted)}
.pricing-grid strong{text-align:right}
.pricing-total{margin-top:10px;padding-top:10px;border-top:1px solid var(--blue);font-size:1.05rem}
.money-wrap{border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:#fff}
.money-wrap input{width:100%;border:0;background:transparent;padding:0}
.live-price-note{margin:0 0 10px;color:var(--muted);font-size:.82rem;line-height:1.4}
.terms-intro{margin:0 0 12px;color:var(--muted);font-size:.84rem;line-height:1.45}
.terms-document{border:1px solid var(--border);border-radius:12px;background:#fff;overflow:hidden}
.terms-document summary{cursor:pointer;padding:12px;font-weight:800;color:var(--navy)}
.terms-content{border-top:1px solid var(--border);padding:13px;max-height:420px;overflow:auto}
.terms-content h4{margin:14px 0 5px;font-size:.95rem}
.terms-content h4:first-child{margin-top:0}
.terms-content p{margin:0;color:var(--text);font-size:.86rem;line-height:1.5}
.terms-acceptance{display:flex;grid-template-columns:none;align-items:flex-start;gap:9px;margin-top:13px;font-weight:700;line-height:1.4}
.terms-acceptance input{flex:0 0 auto;margin-top:3px;width:18px;height:18px}
.save-button:disabled{opacity:.5;cursor:not-allowed}
.device-email-note{margin:8px 0 0;color:var(--muted);font-size:.8rem;line-height:1.4}
.edit-equipment-panel{margin-top:16px;border:1px solid var(--border);border-radius:13px;background:#f8fafc;overflow:hidden}
.edit-equipment-panel summary{cursor:pointer;padding:12px;font-weight:800;color:var(--navy)}
.edit-equipment-body{border-top:1px solid var(--border);padding:13px}
.edit-grid{display:grid;gap:12px}
.save-equipment-button,.reset-equipment-button{width:100%;margin-top:12px;border-radius:12px;padding:11px 14px;font-weight:800;cursor:pointer}
.save-equipment-button{border:0;background:var(--navy);color:#fff}
.reset-equipment-button{border:1px solid var(--navy);background:#fff;color:var(--navy)}
@media(min-width:640px){.edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.edit-grid .full-row{grid-column:1/-1}}

.edit-booking-button{width:100%;margin-top:12px;border:1px solid var(--navy);border-radius:11px;background:#fff;color:var(--navy);padding:10px 12px;font-weight:800;cursor:pointer}
.edit-booking-form{display:none;margin-top:12px;border-top:1px solid var(--border);padding-top:12px}
.edit-booking-form.open{display:block}
.edit-booking-grid{display:grid;gap:10px}
.edit-booking-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.edit-booking-save,.edit-booking-cancel{border-radius:11px;padding:10px 12px;font-weight:800;cursor:pointer}
.edit-booking-save{border:0;background:var(--navy);color:#fff}
.edit-booking-cancel{border:1px solid var(--navy);background:#fff;color:var(--navy)}
@media(min-width:640px){.edit-booking-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.edit-booking-grid .full-row{grid-column:1/-1}}



.home-hero-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.home-hero-row h1{margin:0}.add-machine-fab{display:flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;border-radius:50%;background:#fff;color:var(--navy);text-decoration:none;font-size:1.8rem;font-weight:800;line-height:1;box-shadow:0 3px 10px rgba(0,0,0,.14)}
.create-machine-page .panel{margin-top:13px}
.machine-manager-grid{display:grid;gap:12px}
.add-machine-button{width:100%;margin-top:12px;border:0;border-radius:12px;background:var(--navy);color:#fff;padding:12px 14px;font-weight:800;cursor:pointer}
@media(min-width:640px){.machine-manager-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.machine-manager-grid .full-row{grid-column:1/-1}}
.machine-button.dynamic-available{background:var(--greenSoft);border-color:#8ac4a4}
.machine-button.dynamic-away{background:var(--amberSoft);border-color:#d6b35a}
.machine-button.dynamic-broken{background:var(--redSoft);border-color:#df9a9a}

.machine-page .create-booking-link{
  display:block;
  margin-top:18px;
  order:1;
}
.machine-page .delete-machine-button{
  display:flex !important;
  margin-top:12px !important;
  order:2;
}

.delete-machine-button{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-height:64px !important;
  margin:12px 0 0 !important;
  border:0 !important;
  border-radius:14px !important;
  background:#b91c1c !important;
  color:#ffffff !important;
  padding:17px 20px !important;
  font-size:1.1rem !important;
  font-weight:900 !important;
  text-align:center !important;
  text-decoration:none !important;
  box-shadow:0 6px 16px rgba(185,28,28,.28) !important;
  cursor:pointer !important;
}
.machine-page .create-booking-link{
  display:block !important;
  margin-top:18px !important;
}
.machine-delete-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:99999;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(15,23,42,.72);
}
.machine-delete-modal.open{display:flex !important}
.machine-delete-dialog{
  width:min(100%,420px);
  border:2px solid #b91c1c;
  border-radius:18px;
  background:#fff;
  padding:22px;
  text-align:center;
  box-shadow:0 20px 50px rgba(0,0,0,.3);
}
.machine-delete-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  margin:0 auto 12px;
  border-radius:50%;
  background:#b91c1c;
  color:#fff;
  font-size:2rem;
  font-weight:900;
}
.machine-delete-dialog h2{margin:0 0 10px;color:#b91c1c}
.machine-delete-dialog strong{display:block;margin:8px 0;font-size:1.2rem;color:var(--navy)}
.machine-delete-warning{color:var(--muted);line-height:1.45}
.machine-delete-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.machine-delete-cancel,.machine-delete-confirm{
  min-height:50px;
  border-radius:12px;
  padding:11px 12px;
  font-weight:900;
  cursor:pointer;
}
.machine-delete-cancel{border:1px solid var(--navy);background:#fff;color:var(--navy)}
.machine-delete-confirm{border:0;background:#b91c1c;color:#fff}

.home-header-actions{display:flex;align-items:center;gap:8px}
.previous-hires-button{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  border:1px solid rgba(255,255,255,.75);
  border-radius:10px;
  background:rgba(255,255,255,.14);
  color:#fff;
  padding:8px 11px;
  font-size:.78rem;
  font-weight:900;
  text-decoration:none;
  white-space:nowrap;
}
.previous-hires-panel{margin-top:13px}
.previous-hires-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.previous-hires-toolbar h2{margin:0}
.previous-hires-count{margin:4px 0 0;color:var(--muted);font-size:.82rem}
.refresh-history-button{
  flex:0 0 auto;
  min-height:42px;
  border:1px solid var(--navy);
  border-radius:10px;
  background:#fff;
  color:var(--navy);
  padding:9px 12px;
  font-weight:900;
  cursor:pointer;
}
.previous-hires-list{display:grid;gap:12px}
.previous-hire-card{
  border:1px solid var(--border);
  border-radius:14px;
  background:#fff;
  overflow:hidden;
}
.previous-hire-card summary{
  cursor:pointer;
  padding:14px;
  font-weight:900;
  color:var(--navy);
  list-style:none;
}
.previous-hire-card summary::-webkit-details-marker{display:none}
.previous-hire-summary{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.previous-hire-summary-text{min-width:0}
.previous-hire-machine{display:block;font-size:1rem}
.previous-hire-dates{display:block;margin-top:4px;color:var(--muted);font-size:.8rem;font-weight:700}
.previous-hire-status{
  flex:0 0 auto;
  border-radius:999px;
  background:#e8eef5;
  color:var(--navy);
  padding:5px 8px;
  font-size:.72rem;
  font-weight:900;
}
.previous-hire-body{border-top:1px solid var(--border);padding:13px}
.previous-hire-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px}
.previous-hire-field{min-width:0}
.previous-hire-field span{display:block;color:var(--muted);font-size:.72rem;font-weight:800}
.previous-hire-field strong{display:block;margin-top:3px;overflow-wrap:anywhere;font-size:.87rem}
.previous-hires-empty{
  border:1px dashed var(--border);
  border-radius:12px;
  padding:22px;
  text-align:center;
  color:var(--muted);
  font-weight:700;
}
@media(max-width:430px){
  .previous-hires-button{padding:8px;font-size:.7rem}
  .previous-hire-grid{grid-template-columns:1fr}
}

.mark-previous-hire-button{
  width:100%;
  margin-top:10px;
  border:1px solid var(--navy);
  border-radius:11px;
  background:#fff;
  color:var(--navy);
  padding:10px 12px;
  font-weight:900;
  cursor:pointer;
}
.mark-previous-hire-button.completed{
  border-color:#557;
  background:#eef2f7;
  color:#557;
}

.booking-details[data-previous-hire="true"]{
  display:none !important;
}

.previous-hire-payment-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:99999;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(15,23,42,.72);
}
.previous-hire-payment-modal.open{display:flex !important}
.previous-hire-payment-dialog{
  width:min(100%,420px);
  border-radius:18px;
  background:#fff;
  padding:22px;
  text-align:center;
  box-shadow:0 20px 50px rgba(0,0,0,.3);
}
.previous-hire-payment-dialog h2{margin:0 0 10px;color:var(--navy)}
.previous-hire-payment-dialog p{margin:0;color:var(--muted)}
.previous-hire-payment-dialog strong{display:block;margin:10px 0 18px;font-size:1.05rem;color:var(--navy)}
.previous-hire-payment-actions{display:grid;gap:10px}
.previous-hire-paid,.previous-hire-unpaid,.previous-hire-cancel{
  min-height:52px;
  border-radius:12px;
  padding:12px;
  font-weight:900;
  cursor:pointer;
}
.previous-hire-paid{border:0;background:#18794e;color:#fff}
.previous-hire-unpaid{border:0;background:#b45309;color:#fff}
.previous-hire-cancel{border:1px solid var(--navy);background:#fff;color:var(--navy)}
.payment-status-paid{background:#e7f6ee;color:#18794e}
.payment-status-unpaid{background:#fff3df;color:#b45309}

.mark-paid-button{
  width:100%;
  margin-top:14px;
  border:0;
  border-radius:11px;
  background:#18794e;
  color:#fff;
  padding:11px 13px;
  font-weight:900;
  cursor:pointer;
}
.mark-paid-button:active{transform:scale(.99)}

.previous-hires-filters{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.previous-hires-filter{min-height:42px;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--navy);padding:9px 10px;font-weight:900;cursor:pointer}
.previous-hires-filter.active{border-color:var(--navy);background:var(--navy);color:#fff}

.database-status{margin-top:12px;border-radius:11px;padding:10px 12px;font-size:.82rem;font-weight:900}
.database-status.syncing{background:#eef2f7;color:var(--navy);border:1px solid var(--border)}
.database-status.online{background:#e7f6ee;color:#18794e;border:1px solid #9ed5b8}
.database-status.error{background:#fdeaea;color:#a61b1b;border:1px solid #e2a3a3}
.database-booking-badge{display:inline-block;margin-top:8px;border-radius:999px;background:#e7f6ee;color:#18794e;padding:4px 8px;font-size:.7rem;font-weight:900}
.agreement-status{margin:8px 0 0;font-size:.82rem;font-weight:900;color:var(--muted)}
.signing-panel{margin-top:13px}
.signing-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}
.signing-summary-field{border:1px solid var(--border);border-radius:11px;padding:10px}
.signing-summary-field span{display:block;color:var(--muted);font-size:.72rem;font-weight:800}
.signing-summary-field strong{display:block;margin-top:3px;font-size:.9rem;overflow-wrap:anywhere}
.signing-terms{border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:14px}
.signing-terms summary{cursor:pointer;padding:12px;font-weight:900;color:var(--navy)}
.signing-terms-body{border-top:1px solid var(--border);padding:13px;max-height:380px;overflow:auto}
.signing-terms-body h3{margin:14px 0 5px;font-size:.96rem}
.signing-terms-body h3:first-child{margin-top:0}
.signing-terms-body p{margin:0 0 9px;font-size:.86rem;line-height:1.5}
.signing-check{display:flex;align-items:flex-start;gap:9px;margin:12px 0;font-weight:800;line-height:1.4}
.signing-check input{width:20px;height:20px;flex:0 0 auto;margin-top:2px}
.signature-block{margin-top:14px}
#signature-canvas{display:block;width:100%;height:165px;margin-top:7px;border:2px solid var(--border);border-radius:12px;background:#fff;touch-action:none}
.clear-signature-button{width:100%;margin-top:8px;border:1px solid var(--navy);border-radius:10px;background:#fff;color:var(--navy);padding:9px;font-weight:900;cursor:pointer}
.submit-signature-button{width:100%;margin-top:14px;border:0;border-radius:12px;background:#18794e;color:#fff;padding:13px;font-size:1rem;font-weight:900;cursor:pointer}
@media(max-width:520px){.signing-summary{grid-template-columns:1fr}}

.email-fallback-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:99999;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(15,23,42,.72);
}
.email-fallback-modal.open{display:flex}
.email-fallback-dialog{
  width:min(100%,440px);
  border-radius:18px;
  background:#fff;
  padding:22px;
  text-align:center;
  box-shadow:0 20px 50px rgba(0,0,0,.3);
}
.email-fallback-dialog h2{margin:0 0 10px;color:var(--navy)}
.email-fallback-dialog p{color:var(--muted);line-height:1.45}
.email-fallback-actions{display:grid;gap:10px;margin-top:16px}
.email-fallback-primary,.email-fallback-secondary,.email-fallback-cancel{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  border-radius:12px;
  padding:11px 12px;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
}
.email-fallback-primary{border:0;background:var(--navy);color:#fff}
.email-fallback-secondary{border:1px solid var(--navy);background:#fff;color:var(--navy)}
.email-fallback-cancel{border:0;background:#eef2f7;color:var(--navy)}


.database-status-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
}
.database-status-row .database-status{
  flex:1;
  margin:0;
}
.refresh-shared-bookings{
  flex:0 0 auto;
  min-height:42px;
  border:1px solid var(--navy);
  border-radius:10px;
  padding:8px 12px;
  background:#fff;
  color:var(--navy);
  font-weight:900;
  cursor:pointer;
}
.refresh-shared-bookings:disabled{
  cursor:wait;
  opacity:.55;
}
.employee-agreement-panel{
  margin-top:15px;
  border:1px solid #d8e0ea;
  border-radius:14px;
  padding:14px;
  background:#f8fafc;
}
.employee-agreement-panel.signed{
  border-color:#86c89a;
  background:#f0fdf4;
}
.employee-agreement-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.employee-agreement-heading h3{
  margin:0;
  color:var(--navy);
  font-size:1rem;
}
.employee-agreement-state{
  border-radius:999px;
  padding:5px 9px;
  background:#e2e8f0;
  color:#475569;
  font-size:.72rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.035em;
}
.employee-agreement-panel.signed .employee-agreement-state{
  background:#dcfce7;
  color:#166534;
}
.employee-signature-preview{
  display:block;
  width:min(100%,420px);
  height:130px;
  margin:13px 0 8px;
  border:1px solid #cbd5e1;
  border-radius:10px;
  object-fit:contain;
  object-position:left center;
  background:#fff;
}
.employee-signature-meta,
.employee-signature-empty{
  margin:7px 0;
  color:#475569;
  line-height:1.4;
}
.view-signed-agreement-button{
  min-height:42px;
  margin-top:5px;
  border:0;
  border-radius:10px;
  padding:9px 13px;
  background:var(--navy);
  color:#fff;
  font-weight:900;
  cursor:pointer;
}
.signed-agreement-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:100000;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(15,23,42,.76);
}
.signed-agreement-modal.open{display:flex}
.signed-agreement-dialog{
  width:min(100%,720px);
  max-height:92vh;
  overflow:auto;
  border-radius:18px;
  background:#fff;
  padding:22px;
  box-shadow:0 24px 70px rgba(0,0,0,.34);
}
.signed-agreement-modal-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.signed-agreement-modal-heading h2{
  margin:0;
  color:var(--navy);
}
.signed-agreement-eyebrow{
  margin:0 0 4px;
  color:#166534;
  font-size:.73rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.close-signed-agreement{
  width:42px;
  height:42px;
  flex:0 0 auto;
  border:0;
  border-radius:50%;
  background:#eef2f7;
  color:var(--navy);
  font-size:1.65rem;
  line-height:1;
  cursor:pointer;
}
.signed-agreement-modal-details{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
  margin:18px 0;
}
.signed-agreement-modal-row{
  border:1px solid #d8e0ea;
  border-radius:10px;
  padding:10px;
  background:#f8fafc;
}
.signed-agreement-modal-row span{
  display:block;
  color:#64748b;
  font-size:.7rem;
  font-weight:900;
  text-transform:uppercase;
}
.signed-agreement-modal-row strong{
  display:block;
  margin-top:4px;
  overflow-wrap:anywhere;
}
.signed-agreement-image-frame{
  display:grid;
  place-items:center;
  min-height:230px;
  border:2px solid #d8e0ea;
  border-radius:14px;
  padding:15px;
  background:#fff;
}
.signed-agreement-image-frame img{
  display:block;
  width:100%;
  max-height:330px;
  object-fit:contain;
}
.signed-agreement-note{
  margin:12px 0 0;
  color:#64748b;
  font-size:.82rem;
  text-align:center;
}
@media(max-width:600px){
  .database-status-row{
    align-items:stretch;
    flex-direction:column;
  }
  .signed-agreement-modal-details{
    grid-template-columns:1fr;
  }
}


.booking-record-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid #d8e0ea;
}
.cancel-booking-record-button,
.delete-booking-record-button{
  min-height:44px;
  border-radius:10px;
  padding:9px 14px;
  font-weight:900;
  cursor:pointer;
}
.cancel-booking-record-button{
  border:1px solid #b45309;
  background:#fff7ed;
  color:#9a3412;
}
.delete-booking-record-button{
  border:1px solid #b91c1c;
  background:#fff;
  color:#b91c1c;
}
.cancel-booking-record-button:disabled,
.delete-booking-record-button:disabled,
.cancelled-booking [data-edit-booking]:disabled,
.cancelled-booking [data-mark-previous-hire]:disabled{
  cursor:not-allowed;
  opacity:.55;
}
.booking-details.cancelled-booking{
  border-color:#f0a3a3;
  background:#fff8f8;
}
.booking-details.cancelled-booking>summary{
  color:#991b1b;
  text-decoration:line-through;
  text-decoration-thickness:1px;
}
.booking-details.cancelled-booking .database-booking-badge::after{
  content:" — cancelled";
}


.return-booking-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:100002;
  align-items:center;
  justify-content:center;
  padding:16px;
  background:rgba(15,23,42,.78);
}
.return-booking-modal.open{display:flex}
.return-booking-dialog{
  width:min(100%,760px);
  max-height:94vh;
  overflow:auto;
  border-radius:20px;
  background:#fff;
  padding:22px;
  box-shadow:0 26px 80px rgba(0,0,0,.38);
}
.return-booking-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.return-booking-heading h2{margin:0;color:var(--navy)}
.return-booking-eyebrow{
  margin:0 0 4px;
  color:#166534;
  font-size:.73rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.return-booking-close{
  width:42px;
  height:42px;
  flex:0 0 auto;
  border:0;
  border-radius:50%;
  background:#eef2f7;
  color:var(--navy);
  font-size:1.65rem;
  line-height:1;
  cursor:pointer;
}
.return-booking-name{
  margin:10px 0 18px;
  color:#475569;
  font-weight:800;
}
.return-booking-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:13px;
}
.return-booking-grid label{display:block}
.return-booking-grid label>span{
  display:block;
  margin-bottom:6px;
  color:var(--navy);
  font-size:.82rem;
  font-weight:900;
}
.return-booking-grid input,
.return-booking-grid textarea{
  width:100%;
  border:1px solid var(--border);
  border-radius:11px;
  padding:10px 11px;
  background:#fff;
  color:var(--ink);
}
.return-booking-grid textarea{resize:vertical}
.return-booking-full{grid-column:1/-1}
.return-photo-preview{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  margin-top:12px;
}
.return-photo-preview:empty{display:none}
.return-photo-preview-item{
  min-width:0;
  border:1px solid var(--border);
  border-radius:11px;
  padding:7px;
  background:#f8fafc;
}
.return-photo-preview-item img{
  display:block;
  width:100%;
  height:105px;
  border-radius:7px;
  object-fit:cover;
  background:#fff;
}
.return-photo-preview-item span{
  display:block;
  margin-top:5px;
  overflow:hidden;
  color:#64748b;
  font-size:.7rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.return-balance-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:18px;
}
.return-balance-summary>div{
  border:1px solid var(--border);
  border-radius:12px;
  padding:12px;
  background:#f8fafc;
}
.return-balance-summary span{
  display:block;
  color:#64748b;
  font-size:.72rem;
  font-weight:900;
  text-transform:uppercase;
}
.return-balance-summary strong{
  display:block;
  margin-top:5px;
  color:var(--navy);
  font-size:1.05rem;
}
.return-balance-summary .return-final-balance{
  border-color:#86c89a;
  background:#f0fdf4;
}
.return-booking-actions{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:10px;
  margin-top:18px;
}
.return-booking-complete,
.return-booking-cancel{
  min-height:50px;
  border-radius:11px;
  padding:10px 13px;
  font-weight:900;
  cursor:pointer;
}
.return-booking-complete{
  border:0;
  background:#166534;
  color:#fff;
}
.return-booking-cancel{
  border:1px solid var(--navy);
  background:#fff;
  color:var(--navy);
}
.return-booking-complete:disabled{cursor:wait;opacity:.55}
.mark-returned-button{
  min-height:44px;
  border:1px solid #166534;
  border-radius:10px;
  padding:9px 14px;
  background:#f0fdf4;
  color:#166534;
  font-weight:900;
  cursor:pointer;
}
.mark-returned-button:disabled{
  cursor:not-allowed;
  opacity:.55;
}
.return-record-panel{
  margin-top:15px;
  border:1px solid #86c89a;
  border-radius:14px;
  padding:14px;
  background:#f0fdf4;
}
.return-record-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:11px;
}
.return-record-heading h3{
  margin:0;
  color:#14532d;
  font-size:1rem;
}
.return-record-status{
  border-radius:999px;
  padding:5px 9px;
  background:#dcfce7;
  color:#166534;
  font-size:.7rem;
  font-weight:900;
  text-transform:uppercase;
}
.return-record-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.return-record-field{
  border:1px solid #bbdfc5;
  border-radius:10px;
  padding:10px;
  background:#fff;
}
.return-record-field span{
  display:block;
  color:#64748b;
  font-size:.7rem;
  font-weight:900;
  text-transform:uppercase;
}
.return-record-field strong{
  display:block;
  margin-top:4px;
  color:#1f2937;
  overflow-wrap:anywhere;
}
.return-record-notes{
  margin:11px 0 0;
  border:1px solid #bbdfc5;
  border-radius:10px;
  padding:10px;
  background:#fff;
  color:#334155;
  line-height:1.45;
  white-space:pre-wrap;
}
.return-photo-gallery{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  margin-top:11px;
}
.return-photo-link{
  display:block;
  border:1px solid #bbdfc5;
  border-radius:10px;
  padding:6px;
  background:#fff;
}
.return-photo-thumb{
  display:block;
  width:100%;
  height:120px;
  border-radius:7px;
  object-fit:cover;
}
.previous-return-notes{
  margin-top:11px;
  border:1px solid var(--border);
  border-radius:10px;
  padding:10px;
  color:#334155;
  background:#f8fafc;
  line-height:1.45;
  white-space:pre-wrap;
}
@media(max-width:620px){
  .return-booking-grid,
  .return-balance-summary,
  .return-record-grid{
    grid-template-columns:1fr;
  }
  .return-booking-full{grid-column:auto}
  .return-booking-actions{grid-template-columns:1fr}
  .return-photo-preview,
  .return-photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
}


.completion-payment-status{
  margin:0;
  border:1px solid var(--border);
  border-radius:13px;
  padding:12px;
  background:#f8fafc;
}
.completion-payment-status legend{
  padding:0 5px;
  color:var(--navy);
  font-size:.84rem;
  font-weight:900;
}
.completion-payment-option{
  display:flex !important;
  align-items:flex-start;
  gap:10px;
  margin-top:9px;
  border:1px solid var(--border);
  border-radius:11px;
  padding:11px;
  background:#fff;
  cursor:pointer;
}
.completion-payment-option input{
  width:21px !important;
  height:21px;
  flex:0 0 auto;
  margin:1px 0 0;
}
.completion-payment-option span{
  display:block !important;
  margin:0 !important;
}
.completion-payment-option strong{
  display:block;
  color:var(--navy);
}
.completion-payment-option small{
  display:block;
  margin-top:3px;
  color:#64748b;
  line-height:1.35;
}


.completion-payment-details{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  border:1px solid #86c89a;
  border-radius:13px;
  padding:12px;
  background:#f0fdf4;
}
.completion-payment-details[hidden]{display:none}
.completion-payment-details>label>span,
.completion-payment-details legend{
  display:block;
  margin-bottom:6px;
  color:var(--navy);
  font-size:.82rem;
  font-weight:900;
}
.completion-payment-details fieldset{
  margin:0;
  border:0;
  padding:0;
}
.completion-method-option{
  display:inline-flex !important;
  align-items:center;
  gap:7px;
  margin:0 12px 0 0;
  cursor:pointer;
}
.completion-method-option input{
  width:20px !important;
  height:20px;
  margin:0;
}
.completion-method-option span{
  margin:0 !important;
  color:var(--ink) !important;
  font-weight:800 !important;
}
@media(max-width:620px){
  .completion-payment-details{grid-template-columns:1fr}
}


.install-app-panel{
  position:relative;
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 14px;
  border:1px solid #86c89a;
  border-radius:14px;
  padding:13px 46px 13px 14px;
  background:#f0fdf4;
}
.install-app-panel[hidden]{display:none}
.install-app-copy{
  flex:1;
  min-width:0;
}
.install-app-copy strong{
  display:block;
  color:#14532d;
}
.install-app-copy span{
  display:block;
  margin-top:3px;
  color:#475569;
  font-size:.82rem;
  line-height:1.35;
}
.install-app-button{
  flex:0 0 auto;
  min-height:42px;
  border:0;
  border-radius:10px;
  padding:9px 14px;
  background:var(--navy);
  color:#fff;
  font-weight:900;
  cursor:pointer;
}
.dismiss-install-app{
  position:absolute;
  top:6px;
  right:7px;
  width:32px;
  height:32px;
  border:0;
  border-radius:50%;
  background:transparent;
  color:#64748b;
  font-size:1.35rem;
  line-height:1;
  cursor:pointer;
}
.install-app-message{
  display:none;
  margin:-5px 0 14px;
  border-radius:10px;
  padding:10px 12px;
  color:#334155;
  background:#f8fafc;
  line-height:1.4;
}
.install-app-message.visible{display:block}
.install-app-message.success{
  color:#166534;
  background:#dcfce7;
}
.install-app-message.error{
  color:#b91c1c;
  background:#fee2e2;
}
@media(max-width:620px){
  .install-app-panel{
    align-items:stretch;
    flex-direction:column;
  }
  .install-app-button{width:100%}
}
@media(display-mode:standalone){
  .install-app-panel,
  .install-app-message{
    display:none !important;
  }
}


/* V14 — push notification controls */
.push-notification-panel{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
  margin:14px 0 16px;
  padding:14px;
  border:1px solid #cbd5e1;
  border-radius:14px;
  background:#fff;
  box-shadow:0 3px 10px rgba(15,23,42,.05);
}
.push-notification-copy{
  flex:1;
  min-width:0;
}
.push-notification-copy strong{
  display:block;
  color:var(--navy);
  font-size:.98rem;
}
.push-notification-copy > span{
  display:block;
  margin-top:4px;
  color:#475569;
  font-size:.82rem;
  line-height:1.4;
}
.push-notification-status{
  font-weight:800;
}
.push-notification-status.success{color:#166534}
.push-notification-status.warning{color:#92400e}
.push-notification-status.error{color:#b91c1c}
.push-notification-actions{
  display:flex;
  gap:8px;
  flex:0 0 auto;
}
.push-notification-button{
  min-height:42px;
  border:0;
  border-radius:10px;
  padding:9px 14px;
  background:var(--navy);
  color:#fff;
  font-weight:900;
  cursor:pointer;
}
.push-notification-button.secondary{
  background:#e2e8f0;
  color:#334155;
}
.push-notification-button:disabled{
  opacity:.5;
  cursor:not-allowed;
}
.notification-server-settings{
  width:100%;
  flex-basis:100%;
  margin-top:2px;
  border-top:1px solid #e2e8f0;
  padding-top:10px;
}
.notification-server-settings summary{
  color:#475569;
  font-size:.8rem;
  font-weight:800;
  cursor:pointer;
}
.notification-server-settings p{
  margin:8px 0;
  color:#64748b;
  font-size:.78rem;
  line-height:1.4;
}
.notification-server-row{
  display:flex;
  gap:8px;
}
.notification-server-row input{
  flex:1;
  min-width:0;
  border:1px solid #cbd5e1;
  border-radius:9px;
  padding:10px 11px;
  font:inherit;
}
.notification-server-row button{
  border:0;
  border-radius:9px;
  padding:9px 13px;
  background:#334155;
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.notification-server-message{
  min-height:1em;
}
.notification-server-message.success{color:#166534}
.notification-server-message.error{color:#b91c1c}
@media(max-width:720px){
  .push-notification-panel{
    align-items:stretch;
  }
  .push-notification-actions{
    width:100%;
  }
  .push-notification-button{
    flex:1;
  }
  .notification-server-row{
    flex-direction:column;
  }
}


/* V15 — notification settings moved off the homepage */
.notifications-page-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:8px 12px;
  border-radius:10px;
  background:#e2e8f0;
  color:#1e293b;
  text-decoration:none;
  font-size:.78rem;
  font-weight:900;
  white-space:nowrap;
}
.notifications-page-button:hover{
  background:#cbd5e1;
}
.notifications-page .push-notification-panel{
  margin-top:14px;
}
@media(max-width:620px){
  .home-header-actions{
    flex-wrap:wrap;
    justify-content:flex-end;
  }
  .notifications-page-button,
  .previous-hires-button{
    min-height:38px;
    padding:7px 9px;
    font-size:.68rem;
  }
}


/* V16 — Today's Hires */
.today-hires-button{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-height:40px;padding:8px 11px;border:1px solid rgba(255,255,255,.75);
  border-radius:10px;background:rgba(255,255,255,.14);color:#fff;
  text-decoration:none;font-size:.78rem;font-weight:900;white-space:nowrap;
}
.today-hires-nav-count{
  display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;
  padding:0 6px;border-radius:999px;background:#fff;color:var(--navy);
  font-size:.68rem;font-weight:900;
}
.today-hires-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.today-hires-heading-row h1{margin-bottom:4px}
.today-hires-heading-row p{margin:0}
.refresh-today-hires{
  flex:0 0 auto;min-height:42px;border:1px solid rgba(255,255,255,.8);
  border-radius:10px;padding:8px 13px;background:rgba(255,255,255,.14);
  color:#fff;font-weight:900;cursor:pointer;
}
.today-hires-summary{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0;
}
.today-summary-card{
  border:1px solid #cbd5e1;border-radius:14px;padding:14px 16px;background:#fff;
  box-shadow:0 3px 10px rgba(15,23,42,.05);
}
.today-summary-card span{display:block;color:#64748b;font-size:.78rem;font-weight:800}
.today-summary-card strong{display:block;margin-top:5px;color:var(--navy);font-size:1.8rem;line-height:1}
.today-summary-card.outgoing{border-left:5px solid #2563eb}
.today-summary-card.returning{border-left:5px solid #d97706}
.today-hires-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.today-hires-panel{margin:0}
.today-list-heading{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #e2e8f0}
.today-list-heading h2{margin:0;font-size:1.05rem}
.today-list-heading p{margin:4px 0 0;color:#64748b;font-size:.78rem}
.today-booking-list{display:grid;gap:10px}
.today-booking-card{border:1px solid #dbe3ec;border-radius:13px;padding:13px;background:#f8fafc}
.today-booking-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.today-booking-machine{margin:0;color:var(--navy);font-size:1rem;font-weight:900}
.today-booking-customer{margin:3px 0 0;color:#475569;font-size:.82rem;font-weight:800}
.today-booking-type{
  flex:0 0 auto;border-radius:999px;padding:5px 8px;font-size:.66rem;font-weight:900;
  text-transform:uppercase;letter-spacing:.02em;
}
.today-booking-type.outgoing{background:#dbeafe;color:#1d4ed8}
.today-booking-type.returning{background:#ffedd5;color:#c2410c}
.today-booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.today-booking-field{min-width:0;border-radius:9px;padding:8px 9px;background:#fff}
.today-booking-field span{display:block;color:#64748b;font-size:.67rem;font-weight:800}
.today-booking-field strong,.today-booking-field a{
  display:block;margin-top:2px;overflow-wrap:anywhere;color:#1e293b;font-size:.78rem;font-weight:800;
}
.today-booking-field a{color:#1d4ed8}
.today-booking-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}
.today-machine-status{
  display:inline-flex;align-items:center;min-height:28px;border-radius:999px;
  padding:4px 8px;font-size:.69rem;font-weight:900;
}
.today-machine-status.available{background:#dcfce7;color:#166534}
.today-machine-status.away{background:#fef3c7;color:#92400e}
.today-machine-status.broken{background:#fee2e2;color:#b91c1c}
.today-open-machine{
  display:inline-flex;align-items:center;justify-content:center;min-height:36px;
  border-radius:9px;padding:7px 10px;background:var(--navy);color:#fff;
  text-decoration:none;font-size:.73rem;font-weight:900;
}
.today-booking-empty{
  border:1px dashed #cbd5e1;border-radius:12px;padding:20px 12px;text-align:center;
  color:#64748b;font-size:.82rem;font-weight:700;background:#f8fafc;
}
.today-hires-page .message{margin:0 0 12px}
@media(max-width:760px){.today-hires-columns{grid-template-columns:1fr}}
@media(max-width:620px){
  .today-hires-button{min-height:38px;padding:7px 9px;font-size:.68rem}
  .today-hires-nav-count{min-width:19px;height:19px;font-size:.62rem}
  .today-hires-heading-row{align-items:stretch;flex-direction:column}
  .refresh-today-hires{width:100%}
}
@media(max-width:430px){
  .today-hires-summary{grid-template-columns:1fr 1fr;gap:8px}
  .today-summary-card{padding:12px}
  .today-booking-grid{grid-template-columns:1fr}
}


/* V17 — customer signature shown inside the matching Previous Hire */
.previous-hire-signature-section{
  margin-top:14px;
  border:1px solid #86c89a;
  border-radius:13px;
  padding:13px;
  background:#f0fdf4;
}
.previous-hire-signature-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.previous-hire-signature-heading h3{
  margin:0;
  color:var(--navy);
  font-size:.95rem;
}
.previous-hire-signature-state{
  flex:0 0 auto;
  border-radius:999px;
  padding:5px 8px;
  background:#dcfce7;
  color:#166534;
  font-size:.67rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.previous-hire-signature-image{
  display:block;
  width:min(100%,440px);
  height:135px;
  margin:12px 0 7px;
  border:1px solid #cbd5e1;
  border-radius:10px;
  object-fit:contain;
  object-position:left center;
  background:#fff;
}
.previous-hire-signature-meta,
.previous-hire-signature-empty{
  margin:6px 0 0;
  color:#475569;
  font-size:.8rem;
  line-height:1.4;
}


/* V18 — make stored customer signatures unmistakably visible to employees */
.previous-hire-view-signature{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:10px;
}
.previous-hire-signature-section.employee-agreement-panel{
  display:block;
}


/* V19 — direct Supabase signature visibility */
.direct-signature-container,
.previous-hire-direct-signature{
  margin-top:14px;
  border:2px solid #86c89a;
  border-radius:13px;
  padding:13px;
  background:#f0fdf4;
}
.direct-signature-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.direct-signature-heading h3{
  margin:0;
  color:var(--navy);
  font-size:1rem;
}
.direct-signature-badge{
  border-radius:999px;
  padding:5px 8px;
  font-size:.66rem;
  font-weight:900;
  text-transform:uppercase;
}
.direct-signature-badge.stored{
  background:#166534;
  color:#fff;
}
.direct-signature-badge.missing{
  background:#b91c1c;
  color:#fff;
}
.direct-signature-image{
  display:block;
  width:min(100%,480px);
  height:160px;
  margin:12px 0 8px;
  border:2px solid #94a3b8;
  border-radius:10px;
  object-fit:contain;
  object-position:left center;
  background:#fff;
}
.direct-signature-meta,
.direct-signature-message{
  margin:7px 0;
  color:#475569;
  line-height:1.45;
}
.direct-signature-message.warning{
  color:#92400e;
  font-weight:800;
}
.direct-signature-message.error{
  color:#b91c1c;
  font-weight:800;
}
.saved-signature-proof{
  margin:14px 0;
  border:2px solid #86c89a;
  border-radius:12px;
  padding:12px;
  background:#f0fdf4;
}
.saved-signature-proof strong{
  display:block;
  margin-bottom:8px;
  color:#166534;
}
.saved-signature-proof img{
  display:block;
  width:min(100%,480px);
  height:150px;
  border:1px solid #cbd5e1;
  border-radius:10px;
  object-fit:contain;
  object-position:left center;
  background:#fff;
}
@media(max-width:620px){
}


/* V20 — signatures live only inside their booking records */
[data-direct-signature],
[data-previous-direct-signature]{
  margin-top:14px;
}
[data-direct-signature] .direct-signature-image,
[data-previous-direct-signature] .direct-signature-image{
  width:min(100%,520px);
  height:175px;
}


/* V26 — reliable provider-specific email compose buttons */
#open-outlook-compose,
#open-gmail-compose{
  text-align:center;
}


/* V28 — mobile homepage title wrapping fix */
.home-title{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  column-gap:.28em;
}
.home-title-name{
  white-space:nowrap;
}
.home-title-hire{
  white-space:nowrap;
}
@media(max-width:430px){
  .home-title{
    display:block;
  }
  .home-title-name,
  .home-title-hire{
    display:block;
    width:max-content;
    max-width:100%;
  }
}


/* V33 — Android/mobile homepage header overlap fix */
@media(max-width:430px){
  #home .home-hero-row{
    display:block;
  }

  #home .home-title{
    display:block;
    margin:0;
    transform:none;
    font-size:2.35rem;
    line-height:.96;
    letter-spacing:-.025em;
  }

  #home .home-title-name,
  #home .home-title-hire{
    display:block;
    width:auto;
    max-width:none;
    white-space:nowrap;
  }

  #home .home-header-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
    width:100%;
    margin-top:12px;
  }

  #home .today-hires-button,
  #home .notifications-page-button,
  #home .previous-hires-button{
    width:100%;
    min-width:0;
    min-height:38px;
    padding:7px 8px;
    font-size:.69rem;
  }

  #home .add-machine-fab{
    width:100%;
    height:38px;
    min-height:38px;
    border-radius:10px;
    font-size:1.55rem;
  }

  #home .hero p{
    margin-top:12px;
  }
}

/* Slightly wider Android/iPhone screens can keep title/actions side by side safely. */
@media(min-width:431px) and (max-width:620px){
  #home .home-title{
    transform:none;
    font-size:2.45rem;
    line-height:1;
  }

  #home .home-hero-row{
    align-items:flex-start;
  }

  #home .home-header-actions{
    flex:0 0 150px;
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
  }
}


/* V35 — Previous Hires keyword search */
.previous-hires-search{
  margin:14px 0 10px;
}
.previous-hires-search label{
  display:block;
}
.previous-hires-search label>span{
  display:block;
  margin-bottom:6px;
  color:var(--navy);
  font-size:.82rem;
  font-weight:900;
}
.previous-hires-search-row{
  display:flex;
  gap:8px;
}
.previous-hires-search input[type="search"]{
  flex:1 1 auto;
  min-width:0;
  min-height:44px;
  border:1px solid var(--border);
  border-radius:10px;
  padding:9px 11px;
  background:#fff;
  color:var(--text);
  font:inherit;
}
.previous-hires-search input[type="search"]:focus{
  outline:2px solid var(--blue);
  outline-offset:1px;
  border-color:var(--navy);
}
#clear-previous-hires-search{
  flex:0 0 auto;
  min-height:44px;
  border:1px solid var(--navy);
  border-radius:10px;
  padding:8px 12px;
  background:#fff;
  color:var(--navy);
  font-weight:900;
  cursor:pointer;
}
.previous-hires-search small{
  display:block;
  margin-top:6px;
  color:var(--muted);
  font-size:.72rem;
}
@media(max-width:430px){
  .previous-hires-search-row{
    align-items:stretch;
  }
  #clear-previous-hires-search{
    padding:8px 10px;
  }
}


/* V37 — Home equipment type sort/filter */
.equipment-category-filter{
  margin:10px 0 14px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
}
.equipment-category-filter label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.equipment-category-filter .filter-label{
  margin:0;
  white-space:nowrap;
}
#machine-category-filter{
  flex:1 1 auto;
  min-width:0;
  max-width:260px;
  min-height:40px;
  border:1px solid var(--border);
  border-radius:9px;
  padding:7px 34px 7px 10px;
  background:#fff;
  color:var(--text);
  font:inherit;
  font-weight:800;
}
.machine-manager-grid select,
.edit-grid select{
  width:100%;
  min-height:42px;
  border:0;
  background:transparent;
  color:var(--text);
  font:inherit;
}
@media(max-width:430px){
  .equipment-category-filter label{
    align-items:stretch;
    flex-direction:column;
    gap:7px;
  }
  #machine-category-filter{
    width:100%;
    max-width:none;
  }
}


/* V38 — Android email/clipboard compatibility */
.android-manual-copy{
  margin-top:12px;
  padding:10px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
}
.android-manual-copy[hidden]{
  display:none !important;
}
.android-manual-copy label{
  display:block;
}
.android-manual-copy label>span{
  display:block;
  margin-bottom:6px;
  color:var(--navy);
  font-size:.8rem;
  font-weight:900;
}
#android-manual-copy-text{
  box-sizing:border-box;
  width:100%;
  resize:vertical;
  border:1px solid var(--border);
  border-radius:8px;
  padding:9px;
  background:#fff;
  color:var(--text);
  font:inherit;
  font-size:.78rem;
}
.android-manual-copy p{
  margin:6px 0 0;
  color:var(--muted);
  font-size:.72rem;
}


/* V39 — signature link access from a saved active booking */
.saved-signature-link-panel{
  margin-top:14px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
}
.saved-signature-link-heading h3{
  margin:0;
  color:var(--navy);
  font-size:1rem;
}
.saved-signature-link-heading p{
  margin:5px 0 0;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.4;
}
.saved-signature-link-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}
.saved-signature-link-button{
  min-height:40px;
  border:1px solid var(--navy);
  border-radius:9px;
  padding:8px 11px;
  background:#fff;
  color:var(--navy);
  font:inherit;
  font-size:.78rem;
  font-weight:900;
  cursor:pointer;
}
.saved-signature-link-button.primary{
  background:var(--navy);
  color:#fff;
}
.saved-signature-link-panel>.message{
  margin:8px 0 0;
}
@media(max-width:430px){
  .saved-signature-link-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .saved-signature-link-button{
    width:100%;
  }
}


/* V40 — signature actions visible directly in Awaiting Signature box */
.inline-signature-actions{
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid var(--border);
}
.inline-signature-message{
  margin:8px 0 0 !important;
}
.employee-agreement-panel.unsigned .saved-signature-link-button.primary{
  background:var(--navy);
  color:#fff;
}
@media(max-width:430px){
  .inline-signature-actions{
    display:grid;
    grid-template-columns:1fr;
  }
}


/* V41 — General Conditions for the Hiring of Plant */
.new-hire-agreement-text{
  white-space:pre-wrap;
  font-size:.78rem;
  line-height:1.5;
  color:var(--text);
}
.terms-content .new-hire-agreement-text{
  margin-top:4px;
}


/* V48 — Tomorrow planning section, isolated from Today logic */
.tomorrow-hires-section{
  margin-top:28px;
  padding-top:22px;
  border-top:2px solid var(--border);
}
.tomorrow-hires-heading{
  margin-bottom:10px;
}
.tomorrow-hires-heading h2{
  margin:0;
  color:var(--navy);
  font-size:1.25rem;
}
.tomorrow-hires-heading p{
  margin:4px 0 0;
  color:var(--muted);
  font-size:.8rem;
}
.tomorrow-hires-summary{
  margin-bottom:12px;
}
@media(max-width:430px){
  .tomorrow-hires-section{
    margin-top:22px;
    padding-top:18px;
  }
}


/* V52 — multi-machine booking */
.additional-machines-panel{
  margin:14px 0;
  padding:14px;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
}
.additional-machines-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.additional-machines-header h3{
  margin:0 0 4px;
  color:var(--navy);
  font-size:1rem;
}
.additional-machines-header p{
  margin:0;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.4;
}
.add-another-machine-button{
  flex:0 0 auto;
  border:0;
  border-radius:10px;
  padding:10px 12px;
  background:var(--navy);
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.additional-machine-list{
  display:grid;
  gap:8px;
  margin-top:12px;
}
.additional-machine-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
}
.additional-machine-select-wrap select{
  width:100%;
  min-height:42px;
  border:0;
  background:transparent;
  font:inherit;
  color:inherit;
  padding:0 8px;
}
.remove-additional-machine{
  min-height:42px;
  border:1px solid var(--border);
  border-radius:9px;
  background:#fff;
  color:var(--red);
  font-weight:750;
  cursor:pointer;
  padding:8px 11px;
}
.additional-machine-pricing-note{
  margin:10px 0 0;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.4;
}
@media(max-width:560px){
  .additional-machines-header{
    display:grid;
    grid-template-columns:1fr;
  }
  .add-another-machine-button{
    width:100%;
  }
}


/* V54 — Cross Hire Machines */
.cross-hire-home-section{
  margin-top:26px;
  padding-top:20px;
  border-top:2px solid var(--border);
}
.cross-hire-home-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:12px;
}
.cross-hire-home-heading h2{
  margin:0;
  color:var(--navy);
  font-size:1.18rem;
}
.cross-hire-home-heading p{
  margin:4px 0 0;
  color:var(--muted);
  font-size:.82rem;
}
.cross-hire-section-badge,
.cross-hire-card-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#fff3cd;
  color:#8a5a00;
  border:1px solid #e3bd59;
  font-weight:850;
  white-space:nowrap;
}
.cross-hire-section-badge{
  padding:7px 10px;
  font-size:.76rem;
}
.cross-hire-card-badge{
  width:max-content;
  padding:5px 8px;
  margin:2px 0 7px;
  font-size:.7rem;
}
.cross-hire-equipment-grid{
  margin-top:0;
}
.cross-hire-empty{
  margin:10px 0 0;
  padding:13px;
  border:1px dashed var(--border);
  border-radius:11px;
  color:var(--muted);
  background:#fff;
  font-size:.84rem;
}
.cross-hire-checkbox-label{
  display:flex;
  align-items:flex-start;
  gap:10px;
  min-height:48px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:11px;
  background:#fff;
}
.cross-hire-checkbox-label input{
  width:20px;
  height:20px;
  margin:2px 0 0;
  flex:0 0 auto;
}
.cross-hire-checkbox-label span{
  display:block;
}
.cross-hire-checkbox-label strong{
  display:block;
  color:var(--navy);
}
.cross-hire-checkbox-label small{
  display:block;
  margin-top:3px;
  color:var(--muted);
  line-height:1.35;
}
.edit-cross-hire-label{
  align-self:end;
}
@media(max-width:560px){
  .cross-hire-home-heading{
    align-items:flex-start;
  }
  .cross-hire-section-badge{
    font-size:.7rem;
  }
}


/* V57 — isolated Frequent Customer Presets */
.frequent-customers-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.frequent-customer-presets{
  margin:0 0 14px;
  padding:13px;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
}
.frequent-customer-presets-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.frequent-customer-presets-heading h3{
  margin:0 0 3px;
  color:var(--navy);
  font-size:1rem;
}
.frequent-customer-presets-heading p{
  margin:0;
  color:var(--muted);
  font-size:.8rem;
}
.manage-frequent-customers-link{
  flex:0 0 auto;
  border:1px solid var(--border);
  border-radius:9px;
  padding:7px 9px;
  background:#fff;
  color:var(--navy);
  font-size:.78rem;
  font-weight:800;
  text-decoration:none;
}
.frequent-customer-preset-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:11px;
}
.frequent-customer-preset-button{
  border:1px solid #b8c9da;
  border-radius:999px;
  padding:8px 11px;
  background:var(--soft);
  color:var(--navy);
  font-weight:800;
  cursor:pointer;
}
.frequent-customer-preset-empty{
  color:var(--muted);
  font-size:.8rem;
}
.frequent-customer-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.frequent-customer-grid .full-row{
  grid-column:1/-1;
}
.frequent-customer-editor-actions{
  display:flex;
  gap:8px;
  margin-top:14px;
}
.frequent-customer-editor-actions button,
#refresh-frequent-customers{
  border:0;
  border-radius:10px;
  padding:10px 13px;
  background:var(--navy);
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.frequent-customer-editor-actions button.secondary{
  border:1px solid var(--border);
  background:#fff;
  color:var(--navy);
}
.frequent-customer-list-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.frequent-customer-list-heading h2{
  margin:0;
}
.frequent-customer-list-heading p{
  margin:3px 0 0;
  color:var(--muted);
  font-size:.82rem;
}
.frequent-customer-list{
  display:grid;
  gap:9px;
  margin-top:10px;
}
.frequent-customer-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:11px;
  background:#fff;
}
.frequent-customer-card-details h3{
  margin:0 0 4px;
  color:var(--navy);
}
.frequent-customer-card-details p{
  margin:2px 0;
  color:var(--muted);
  font-size:.8rem;
}
.frequent-customer-card-actions{
  display:flex;
  gap:7px;
}
.frequent-customer-card-actions button{
  border:1px solid var(--border);
  border-radius:8px;
  padding:7px 10px;
  background:#fff;
  font-weight:750;
  cursor:pointer;
}
.frequent-customer-card-actions button.danger{
  color:var(--red);
}
.frequent-customer-empty{
  padding:13px;
  border:1px dashed var(--border);
  border-radius:10px;
  background:#fff;
  color:var(--muted);
}
@media(max-width:560px){
  .frequent-customer-grid{
    grid-template-columns:1fr;
  }
  .frequent-customer-grid .full-row{
    grid-column:auto;
  }
  .frequent-customer-presets-heading{
    display:grid;
    grid-template-columns:1fr;
  }
  .manage-frequent-customers-link{
    width:max-content;
  }
  .frequent-customer-card{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* V62 — Separate Cross Hire Machinery page */
#home .cross-hire-home-section{
  display:none!important;
}
.cross-hire-page-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.cross-hire-page-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.cross-hire-create-button{
  flex:0 0 auto;
  text-decoration:none;
}
.cross-hire-controls-panel{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
}
.cross-hire-status-filters{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.cross-hire-filter{
  border:1px solid var(--border);
  border-radius:999px;
  padding:9px 13px;
  background:#fff;
  color:var(--navy);
  font-weight:800;
  cursor:pointer;
}
.cross-hire-filter.active{
  background:var(--navy);
  color:#fff;
  border-color:var(--navy);
}
.cross-hire-sort-control{
  min-width:190px;
}
.cross-hire-sort-control select{
  width:100%;
  margin-top:6px;
  min-height:42px;
  border:1px solid var(--border);
  border-radius:10px;
  padding:8px 10px;
  background:#fff;
  color:var(--ink);
}
.cross-hire-page-count{
  margin:14px 0 10px;
  color:var(--muted);
  font-size:.85rem;
  font-weight:750;
}
.cross-hire-page-machine{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.cross-hire-page-category{
  margin-top:7px;
  color:var(--muted);
  font-size:.75rem;
}
.cross-hire-page-empty{
  padding:16px;
  border:1px dashed var(--border);
  border-radius:11px;
  background:#fff;
  color:var(--muted);
}
.cross-hire-page-empty[hidden]{
  display:none!important;
}
@media(max-width:620px){
  .cross-hire-page-title-row,
  .cross-hire-controls-panel{
    display:grid;
    grid-template-columns:1fr;
  }
  .cross-hire-create-button{
    width:100%;
    text-align:center;
  }
  .cross-hire-sort-control{
    min-width:0;
    width:100%;
  }
}


/* V63 — Cross Hire UI cleanup */
.cross-hire-home-storage,
.cross-hire-home-storage[hidden]{
  display:none!important;
}

/* Cross Hire machinery cards use the normal fleet card styling. */
.cross-hire-page-grid .machine-button{
  width:100%;
}

/* Dedicated Cross Hire page header: never overlap title and Create Machine. */
.cross-hire-page-title-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:14px;
}
.cross-hire-page-title-row > div{
  min-width:0;
}
.cross-hire-page-title-row h1{
  margin:0;
  line-height:1.05;
  overflow-wrap:anywhere;
}
.cross-hire-create-button{
  width:auto;
  min-width:150px;
  max-width:100%;
  white-space:normal;
  line-height:1.2;
  text-align:center;
}

/* The new Cross Hire header button added one extra action on the homepage.
   Include it in the existing compact mobile layout. */
@media(max-width:430px){
  #home .cross-hire-page-button{
    width:100%;
    min-width:0;
    min-height:38px;
    padding:7px 8px;
    font-size:.69rem;
  }
}

/* With five header actions, side-by-side title/actions is too tight.
   Stack them cleanly on phones and small tablets. */
@media(min-width:431px) and (max-width:620px){
  #home .home-hero-row{
    display:block;
  }

  #home .home-header-actions{
    width:100%;
    margin-top:12px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
  }

  #home .today-hires-button,
  #home .notifications-page-button,
  #home .previous-hires-button,
  #home .cross-hire-page-button{
    width:100%;
    min-width:0;
    min-height:38px;
    padding:7px 8px;
    font-size:.69rem;
  }

  #home .add-machine-fab{
    width:100%;
    height:38px;
    min-height:38px;
    border-radius:10px;
  }
}

@media(max-width:760px){
  .cross-hire-page-title-row{
    grid-template-columns:1fr;
  }

  .cross-hire-create-button{
    width:100%;
    min-width:0;
  }
}

@media(max-width:430px){
  .cross-hire-page-hero h1{
    font-size:2rem;
  }

  .cross-hire-status-filters{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
  }

  .cross-hire-filter{
    width:100%;
  }
}


/* V64 — Cross Hire button uses the exact Previous Hires button appearance. */
#home .cross-hire-page-button.previous-hires-button{
  display:flex;
  align-items:center;
  justify-content:center;
}


/* V66 — Cross Hire grouped sorting */
.cross-hire-sort-heading{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:8px 0 2px;
  padding:8px 2px 5px;
  border-bottom:2px solid var(--border);
  color:var(--navy);
}
.cross-hire-sort-heading strong{
  font-size:.95rem;
}
.cross-hire-sort-heading span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:24px;
  min-height:24px;
  border-radius:999px;
  background:var(--soft);
  color:var(--navy);
  font-size:.72rem;
  font-weight:900;
}

/* V66 — optional agreed booking price */
.price-override-field{
  display:block;
  margin-top:12px;
  padding:11px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
}
.price-override-field .label small{
  color:var(--muted);
  font-weight:700;
}
.price-override-help{
  display:block;
  margin-top:6px;
  color:var(--muted);
  font-size:.72rem;
  line-height:1.35;
}


/* V67 — Cross Hire filters now match the homepage controls */
.cross-hire-page-controls{
  margin-top:13px;
}

.cross-hire-status-panel{
  margin-top:0;
}

.cross-hire-status-panel .filter-option{
  appearance:none;
  -webkit-appearance:none;
  font:inherit;
  color:var(--text);
}

.cross-hire-status-panel .filter-option.active{
  border-color:var(--navy);
  background:var(--soft);
  color:var(--navy);
}

.cross-hire-equipment-category-filter{
  margin-top:10px;
}

#cross-hire-category-filter{
  flex:1 1 auto;
  min-width:0;
  max-width:260px;
  min-height:40px;
  border:1px solid var(--border);
  border-radius:9px;
  padding:7px 34px 7px 10px;
  background:#fff;
  color:var(--text);
  font:inherit;
  font-weight:800;
}

@media(max-width:430px){
  .cross-hire-equipment-category-filter label{
    align-items:stretch;
    flex-direction:column;
    gap:7px;
  }

  #cross-hire-category-filter{
    width:100%;
    max-width:none;
  }
}

/* V69 — visible Cross Hired marks */
.cross-hire-page-grid .cross-hire-card-badge,
.cross-hire-detail-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  max-width:100%;
  border-radius:999px;
  padding:5px 9px;
  background:#fff3cd;
  color:#7a5200;
  border:1px solid #d6b35a;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.04em;
  line-height:1;
}
.cross-hire-page-grid .cross-hire-card-badge{margin-top:7px}
.cross-hire-detail-mark{margin-top:8px}


/* V70 — multi-machine automatic price total */
.multi-machine-price-breakdown{
  margin:12px 0;
  padding:10px 11px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#f8fafc;
}
.multi-machine-price-breakdown[hidden]{
  display:none!important;
}
.multi-machine-price-title{
  display:block;
  margin-bottom:7px;
  color:var(--navy);
  font-size:.82rem;
}
.multi-machine-price-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:5px 0;
  border-top:1px solid var(--border);
  font-size:.8rem;
}
.multi-machine-price-row:first-of-type{
  border-top:0;
}
.multi-machine-price-row span{
  min-width:0;
}
.multi-machine-price-row strong{
  flex:0 0 auto;
  color:var(--navy);
}


/* V74 — reliable multi-machine automatic calculator */
.multi-machine-price-copy{
  min-width:0;
  display:grid;
  gap:3px;
}
.multi-machine-price-copy small{
  color:var(--muted);
  font-size:.7rem;
  font-weight:700;
}
.multi-machine-price-value{
  flex:0 0 auto;
  white-space:nowrap;
}
.multi-machine-price-grand-total{
  margin-top:4px;
  padding-top:9px;
  border-top:2px solid var(--border);
  color:var(--navy);
}
