.top-actions{margin-bottom:20px}
.field-stack{display:grid;gap:14px}
.mt{margin-top:26px}
.days{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
.date-count{font-weight:600;color:var(--navy);font-size:.93rem}
.roles{display:grid;gap:10px;margin:8px 0 12px}
.role-row{display:grid;grid-template-columns:minmax(0,1fr) 130px auto;gap:10px;align-items:end}
.vols{display:grid;gap:14px;margin:10px 0 12px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.vol .checks.two{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
fieldset.vol{background:#fcfcfd}
.bulk{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.bulk summary{cursor:pointer;font-weight:600;color:var(--navy);min-height:32px}
.bulk[open] summary{margin-bottom:8px}
.bulk textarea{margin-bottom:6px}
.generate-row{justify-content:center;margin:26px 0}
.generate-row .btn{font-size:1.08rem;padding:12px 30px}
.results{margin-top:6px}
#messages{display:grid;gap:8px;margin-bottom:14px}
#messages:empty{display:none}
.out-head{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:flex-end;margin-bottom:14px}
.out-head h2{margin-bottom:0}
.schedule td,.schedule th{min-width:120px}
.unfilled{color:var(--err);font-weight:700}
@media(max-width:560px){.role-row{grid-template-columns:1fr 100px}.role-row .rm{grid-column:1/-1}}
@media print{
  @page{size:landscape;margin:.5in}
  .results{margin:0}
  #messages{display:none}
  #print-title{font-family:Merriweather,Georgia,serif;font-size:18pt;margin-bottom:2px}
  .out-head{margin-bottom:8px}
  .out-head .muted{color:#333}
  table{font-size:10pt}
  .schedule td,.schedule th{min-width:0;padding:5px 7px}
  .fairness{font-size:9pt}
  h3.mt{margin-top:16px;break-before:auto}
  .unfilled{color:#000;text-decoration:underline}
  .print-note{margin-top:14px;font-size:10pt}
}
.vol .row{grid-template-columns:minmax(0,1fr) 120px}
