.shift-page{max-width:1050px;margin:auto}
.shift-page h1{margin:.3rem 0;font-size:clamp(26px,5vw,44px)}
.shift-heading,.shift-tools,.shift-tabs,.shift-controls,.shift-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}
.shift-heading{justify-content:space-between;margin-bottom:1.5rem}
.shift-tools a{display:inline-flex;align-items:center;padding:.45rem}
.shift-tools a[aria-current=page]{color:var(--cyan);font-weight:700}
.shift-tabs{margin:1rem 0}
.shift-tabs button[aria-pressed=true]{color:#051d25;background:var(--cyan)}
.shift-controls{justify-content:space-between;margin:.5rem 0}
.shift-controls label{display:grid;gap:.3rem}
.shift-controls input{padding:.4rem}
.shift-list{display:grid;gap:.6rem}
.shift-roster{overflow:hidden}
.shift-roster .roster-table{table-layout:fixed;min-width:0;width:100%}
.shift-roster .roster-table :is(th,td){padding:clamp(3px,1vw,10px);white-space:normal;overflow-wrap:anywhere}
.shift-roster .roster-table :is(th,td)[data-vessel]{text-align:center}
.shift-roster .roster-table th:nth-child(1){width:12%}
.shift-roster .roster-table th:nth-child(2){width:15%}
.shift-roster .roster-table th:nth-child(3){width:31%}
.shift-journal-roster .roster-table th:nth-child(1){width:16%}
.shift-journal-roster .roster-table th:nth-child(2){width:35%}
.shift-journal-roster .roster-table th:nth-child(3){width:auto}
.shift-roster .badge{display:inline-block;margin:2px 3px 2px 0;white-space:normal}
.shift-roster details{margin-top:.35rem}
.shift-roster details summary{cursor:pointer;color:var(--cyan);font-size:11px}
.shift-actions{align-content:center;padding:.25rem 0}
.shift-quantities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.shift-counter{display:grid;grid-template-columns:32px minmax(0,1fr) 32px;gap:3px}
.shift-counter input{min-width:0;text-align:center;padding:4px!important}
.shift-counter button{padding:0;min-width:0}
.shift-tenders{display:flex;flex-wrap:wrap;gap:.4rem;border:0;padding:0;margin:0}
.shift-tenders legend{margin-bottom:.35rem;color:var(--muted)}
.shift-tenders label{display:flex!important;align-items:center;gap:.3rem;padding:.4rem .55rem;border:1px solid var(--line);border-radius:8px}
.shift-tenders input{width:auto!important}
.shift-owner-summary .stat-grid{margin-bottom:1rem}
.shift-owner-summary table{table-layout:fixed}
.shift-owner-summary th,.shift-owner-summary td{white-space:normal;padding:8px}
.shift-owner-summary .shift-discounts{margin-top:1rem}
.shift-roster .booking-entry{border-left:2px solid var(--cyan)}
.shift-start{margin:2rem auto;text-align:center}
@media(max-width:560px){
  .shift-tools{gap:.25rem}
  .shift-roster{padding:7px}
  .shift-roster .roster-table :is(th,td){font-size:9px;letter-spacing:0;text-transform:none}
  .shift-roster .roster-table td strong,.shift-roster .roster-table td small{font-size:10px}
  .shift-roster .roster-table input{width:1rem;height:1rem}
  .shift-counter{grid-template-columns:24px minmax(0,1fr) 24px}
}
