/* Spreadsheet density: a stable role/name pair and the whole date window. */
.top{height:50px;padding:0 24px}.brand{font-size:25px;gap:12px}
main{max-width:1600px;padding:22px 24px;margin:auto}
.eyebrow{font-size:9px;letter-spacing:1px}h1{font-size:26px;margin:6px 0;letter-spacing:-.7px}
.sub{font-size:12px}.heading .secondary{padding:8px 12px}
.stats{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
.stat,.stat:nth-child(2),.stat:nth-child(3){padding:8px 14px;border:1px solid var(--line);border-radius:5px;gap:10px;display:flex;align-items:center}
.stat strong{font-size:21px}.stat strong>span{font-size:13px!important}.stat b{font-size:11px;margin:0}.stat small{display:none}
.work{border-radius:6px}.toolbar{padding:13px 16px 10px}.toolbar h2{font-size:17px}.toolbar p{display:none}
.toolbar .primary{padding:9px 13px}.viewbar{padding:0 16px 12px;gap:12px}.filters button{padding:6px 10px}
.legend{font-size:10px}.legend .request-swatch{display:none}.daytabs{display:none}
.gridwrap{overflow:auto;max-height:calc(100dvh - 275px);min-height:180px;scrollbar-color:#526458 var(--bg)}
table{min-width:1100px;table-layout:fixed;border-collapse:separate;border-spacing:0}
th{position:sticky;top:0;z-index:3;height:49px;padding:7px 10px;border-bottom:1px solid var(--line);border-right:1px solid #29372e}
th:first-child{width:180px;padding-left:12px}th:nth-child(2){width:210px}th.rate-column{width:90px;text-align:right}
th b{font-size:13px}th small{margin-top:3px;font-size:10px}
td{height:50px;padding:0 10px;border-right:1px solid #29372e;font-size:12px;white-space:nowrap}
td:first-child{padding-left:12px}td.rate-column{text-align:right;font-variant-numeric:tabular-nums;color:#b9cbbd;font-size:11px}
th:first-child,td:first-child{position:sticky;left:0;background:var(--surface);z-index:2}
th:nth-child(2),td:nth-child(2){position:sticky;left:180px;background:var(--surface);z-index:2;box-shadow:1px 0 0 var(--line)}
th:first-child,th:nth-child(2){z-index:4;background:#17231c}
.rolebutton{padding:7px 0;font-size:12px;display:inline-flex;width:100%;line-height:1.2}
.rolebutton{align-items:center;justify-content:flex-start;gap:7px;min-width:0}.rolebutton .role-title{color:var(--text);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rolebutton .role-menu-mark{margin-left:auto;font-size:15px}.driver{display:inline-block;margin:0;font-size:9px;padding:2px 5px;flex-shrink:0}
.person{gap:0}.avatar{display:none}.person button{padding:10px 0;font-size:12px;font-weight:500;line-height:1.3;text-align:left}.person small{display:none}
td.daycell{padding:3px}.cell.coverage-booked,.cell.coverage-open{min-height:44px;width:100%;border-radius:4px;border:0;padding:8px 7px;display:flex;flex-direction:row;flex-wrap:nowrap;gap:7px;align-items:center;justify-content:center;position:relative;white-space:nowrap}
.cell.coverage-booked{background:#244332;color:#cbe8d3;box-shadow:inset 0 -2px #528e65}
.cell.coverage-open{background:#1b261f;color:#c1cdc3;box-shadow:inset 0 0 0 1px #617767;border:1px dashed #617767}
.cell.pending-approval{border-top:2px solid #ad8b49;padding-top:5px}
.coverage-label{font-size:11px;font-weight:600}.day-rate{font-size:10px;flex:0 0 auto;line-height:1.1}.inline-approval{font-size:10px;border-left:1px solid #607967;padding-left:7px;font-weight:400}.inline-approval.approved{color:#b5cbbd}.inline-approval.requested{color:#f3ce80}.request-marker{font-size:8px;color:#f3ce80}
.inactive-space{min-height:38px}.foot{padding:10px 16px;font-size:10px}.lower{margin-top:8px;font-size:10px}.lower p{margin:5px 0}
tr:hover td:first-child,tr:hover td:nth-child(2){background:#233029}
@media(max-width:650px){
 .top{height:46px;padding:0 12px}.brand span{display:inline;font-size:12px}.sandbox{font-size:7px;letter-spacing:.5px}main{padding:15px 10px}
 h1{font-size:23px;max-width:none}.heading .secondary{font-size:11px}.heading .secondary:after{display:none}
 .stats{gap:5px;margin:12px 0}.stat,.stat:nth-child(2),.stat:nth-child(3){padding:7px 8px;gap:6px;flex:1}.stat strong{font-size:19px}.stat b{font-size:9px;line-height:1.35}
 .toolbar{padding:11px 12px}.viewbar{padding:0 12px 10px;gap:8px}.legend{font-size:9px}.daytabs{display:none}
 table{min-width:1040px}th:first-child{width:155px}th:nth-child(2){width:160px}th.rate-column{width:85px}th:nth-child(2),td:nth-child(2){left:155px}
 th.dayhead:not(.active),td.daycell:not(.active){display:table-cell}th.dayhead{width:160px}
 .cell.coverage-booked,.cell.coverage-open{min-height:44px}.inactive-space{min-height:44px}.person button{min-height:44px;font-size:11px}.rolebutton{font-size:11px;padding:10px 0}
 .gridwrap{max-height:calc(100dvh - 270px)}.foot{padding:9px 12px}.lower{font-size:9px}
}
/* Keep every date column in view, without a horizontally scrolling table. */
.gridwrap{overflow-x:hidden;max-width:100%}
table{width:100%;min-width:0;table-layout:fixed}
th:first-child{width:17%}th:nth-child(2){width:23%}th.rate-column{width:12%}th.dayhead{width:auto}
th:first-child,td:first-child,th:nth-child(2),td:nth-child(2){left:auto;position:static}
th:first-child,th:nth-child(2){position:sticky;top:0}
td,th{min-width:0;overflow:hidden}
.person,.person>div{min-width:0;width:100%}.person button{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rolebutton{width:100%;overflow:hidden}.role-title{min-width:0}.role-menu-mark{flex-shrink:0}
.cell.coverage-booked,.cell.coverage-open{gap:4px;padding:7px 3px;min-width:0;overflow:hidden}
@media(max-width:900px){
 main{padding-left:12px;padding-right:12px}td{padding-left:5px;padding-right:5px}td:first-child,th:first-child{padding-left:7px}
 th:first-child{width:18%}th:nth-child(2){width:22%}th.rate-column{width:12%}th.dayhead{width:auto}
 .rolebutton{gap:3px}.rolebutton .role-title{font-size:11px}.driver{font-size:8px;padding:1px 3px}.role-menu-mark{display:none}
 .person button{font-size:11px}.coverage-label{font-size:10px}.day-rate{font-size:9px}.request-marker{font-size:7px}td.rate-column{font-size:10px}
}
@media(max-width:650px){
 table{min-width:0}th:first-child{width:19%}th:nth-child(2){width:23%}th.rate-column{width:14%}th.dayhead{width:auto}
 th:nth-child(2),td:nth-child(2){left:auto}th{padding:6px 2px;font-size:9px}th b{font-size:12px;margin-left:1px}th small{font-size:8px;letter-spacing:0;overflow:hidden;text-overflow:ellipsis}
 .rolebutton .role-title{font-size:10px}.person button{font-size:10px}.driver{font-size:7px;padding:1px 2px}.rolebutton{gap:2px}
 .cell.coverage-booked .coverage-label{font-size:0}.cell.coverage-booked .coverage-label:before{content:'✓';font-size:15px}
 .cell.coverage-open .coverage-label{font-size:9px}.cell.coverage-booked,.cell.coverage-open{gap:2px;padding:6px 1px}
 .cell .day-rate{display:none}td.rate-column{font-size:9px;padding:0 2px}.legend{gap:8px}.foot{font-size:9px}
}
