.print-modal-body{
  display:grid;
  gap:14px;
}

.print-week-list{
  display:grid;
  gap:8px;
  max-height:48vh;
  overflow:auto;
}

.print-week-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.print-week-actions .btn{
  min-height:38px;
  padding:8px 12px;
}

.print-week-option{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:10px;
  align-items:start;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f8fafc;
}

.print-week-option.is-current-week{
  border-color:var(--brand,#0d8f8c);
  background:#edf7f6;
  box-shadow:0 0 0 1px rgba(13,143,140,.12);
}

.print-week-option input{
  margin-top:2px;
}

.print-week-option-label{
  display:grid;
  gap:3px;
  cursor:pointer;
}

.print-week-option-title{
  font-weight:800;
  color:#0f172a;
}

.print-week-option-meta{
  font-size:12px;
  color:#64748b;
  font-weight:600;
}

.print-root{
  display:none;
}

.print-sheet{
  break-after:page;
  page-break-after:always;
  padding:0;
  break-inside:avoid;
  page-break-inside:avoid;
}

.print-sheet:last-child{
  break-after:auto;
  page-break-after:auto;
}

.print-sheet-title{
  margin:0 0 6px 0;
  font-size:18px;
  font-weight:800;
  color:#0f172a;
}

.print-sheet-subtitle{
  margin:0 0 8px 0;
  color:#475569;
  font-size:11px;
  font-weight:600;
}

.print-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  background:#fff;
}

.print-table th,
.print-table td{
  border:1px solid #475569;
  padding:4px 4px;
  text-align:center;
  vertical-align:top;
  font-size:10px;
}

.print-table th{
  background:#e5e7eb;
  font-weight:800;
  vertical-align:middle;
}

.print-table th:first-child,
.print-table td:first-child{
  width:14%;
  text-align:left;
  font-weight:700;
}

.print-table th:last-child,
.print-table td:last-child{
  width:10%;
}

.print-day-label{
  display:block;
  font-weight:800;
}

.print-day-date{
  display:block;
  margin-top:2px;
  font-size:10px;
  color:#475569;
  font-weight:600;
}

.print-duty-head{
  min-height:26px;
  background:transparent !important;
  border:none !important;
  padding:4px 2px 6px 2px !important;
  vertical-align:middle !important;
}

.print-duty-badge-wrap{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:4px;
}

.print-duty-badge{
  display:grid;
  grid-template-columns:1fr;
  justify-items:center;
  align-content:center;
  padding:4px 8px;
  border-radius:999px;
  background:#f4a261;
  border:1px solid #e4934a;
  color:#4a2b00;
  font-size:9px;
  font-weight:800;
  line-height:1.15;
}

.print-duty-badge--closed{
  background:#fee2e2;
  border-color:#fecaca;
  color:#7f1d1d;
}

.print-duty-badge-label,
.print-duty-badge-name{
  display:block;
  width:100%;
  text-align:center;
  white-space:normal;
}

.print-table thead tr:first-child th{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
}

.print-table thead tr:first-child th:first-child,
.print-table thead tr:first-child th:last-child{
  background:transparent !important;
  border:none !important;
  padding:0 !important;
}

.print-cell-empty{
  color:#94a3b8;
}

.print-cell-empty.print-cell-empty--weekday{
  background:#f8fafc;
}

.print-cell-empty.print-cell-empty--weekend{
  background:#eceff3;
}

.print-cell-status{
  font-weight:700;
}

.print-table td.shift--regular{
  background:#ffffff !important;
}

.print-table td.shift--open{
  background:#bbf7d0 !important;
}

.print-table td.shift--close{
  background:#fecaca !important;
}

.print-table td.shift--open-close{
  background:linear-gradient(90deg,#bbf7d0 0 50%,#fecaca 50% 100%) !important;
}

.print-table td.shift--status{
  background:#f5f3ff !important;
}

.print-table td.shift--weekend-duty{
  background:#f4a261 !important;
}

.print-cell-main{
  display:block;
  min-height:14px;
  line-height:1.15;
  font-weight:700;
}

.print-cell-hours{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:2px;
  font-size:9px;
  color:#475569;
  font-weight:600;
  padding:1px 6px;
  border-radius:999px;
  border:1px solid #cbd5e1;
  background:#ffffff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}

.print-row-name{
  font-weight:800;
}

.print-total-col,
.print-total-row td,
.print-total-corner{
  background:#f8fafc;
  font-weight:800;
}

.print-total-row td{
  vertical-align:middle;
}

.print-total-label{
  text-align:left !important;
}

@page{
  size:A4 landscape;
  margin:12mm;
}

@media print{
  html,
  body{
    background:#fff !important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }

  body::before,
  body::after{
    display:none !important;
  }

  body.print-mode > *:not(#printContainer){
    display:none !important;
  }

  body.print-mode #printContainer{
    display:block !important;
  }

  body.print-mode #printContainer.hidden{
    display:block !important;
  }

  body.print-mode #printContainer *{
    visibility:visible;
  }

  .print-root{
    display:block;
    padding:0;
    color:#000;
  }

  .print-sheet{
    min-height:0;
  }

  .print-sheet-title{
    font-size:16px;
  }

  .print-sheet-subtitle,
  .print-table th,
  .print-table td{
    font-size:9.5px;
  }

  .print-week-modal,
  #printWeekModal{
    display:none !important;
  }
}
