body { font-family: system-ui, Arial, sans-serif; margin: 0; padding: 0; }

/* Content width controls */
.content-wrapper {
  width: 100%;
}

.content-contained {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 15px;
}

.content-full-width {
  width: 100%;
}

/* Responsive content control */
@media (min-width: 1400px) {
  .content-wrapper {
    max-width: 1400px;
    margin: 0 auto;
  }
}
header { display:flex; justify-content:space-between; align-items:center; margin-bottom: 12px; }
.flash-success { background:#e6ffed; border:1px solid #b4f5c8; padding:8px; margin:8px 0; }
.flash-error { background:#ffecec; border:1px solid #f5b4b4; padding:8px; margin:8px 0; }
table.calendar { width: 100%; border-collapse: collapse; }
table.calendar th, table.calendar td { border:1px solid #ddd; vertical-align: top; padding:6px; }
td.time { width: 70px; background:#fafafa; font-weight: bold; }
.shift { background:#f3f9ff; border:1px solid #cfe4ff; padding:6px; margin:4px 0; border-radius:4px; }
.meta { font-size: 12px; color:#333; margin-bottom: 4px; }

body {
  background-color: #f5f7fa;
}

.card {
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}

.weekly-shift-table thead th {
  text-align: center;
  vertical-align: bottom;
}

.weekly-shift-table td,
.weekly-shift-table th {
  text-align: center;
  vertical-align: top;
}

.shift-block {
  border: 1px solid #ccc;
  padding: .5rem;
  margin-bottom: .5rem;
  background: #f5f5f5;
  text-align: left;
}

.shift-block-special {
  background: #fff9c4; /* light yellow for "*** ***" / special rows */
}

.shift-block-cop .shift-block-header {
  background: #a00;
  color: #fff;
}

.shift-block-header {
  background: green;
  color: white;
  font-weight: bold;
  padding: .15rem .35rem;
  margin: -.5rem -.5rem .4rem -.5rem; /* flush to block borders */
}

.shift-entry {
  cursor: pointer;
  line-height: 1.25rem;
}

.weekly-shift-table .events td {
  background-color: #fff9c4; /* light yellow */
}

.weekly-shift-table .text-muted.small {
  color: #888;
  font-size: 0.8rem;
  text-align: center;
}
