/* =============================================================================
   Diary view
   ============================================================================= */

.dca-diary-wrap {
    font-family: inherit;
}

/* Controls bar */
.dca-diary-controls {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}

/* Week / Month toggle */
.dca-diary-view-toggle {
    display: flex;
    border: 1px solid #c3c4c7;
    border-radius: 6px;
    overflow: hidden;
}

.dca-diary-view-btn {
    padding: 7px 18px;
    border: 0;
    background: #fff;
    cursor: pointer;
    font-size: 0.9em;
    font-weight: 600;
    color: #444;
    transition: background 0.15s, color 0.15s;
}

.dca-diary-view-btn + .dca-diary-view-btn {
    border-left: 1px solid #c3c4c7;
}

.dca-diary-view-btn.is-active {
    background: #2271b1;
    color: #fff;
}

.dca-diary-view-btn:focus-visible {
    outline: 3px solid #2271b1;
    outline-offset: -3px;
}

/* Filter select */
.dca-diary-filter-select {
    padding: 7px 12px;
    border: 1px solid #c3c4c7;
    border-radius: 6px;
    font-size: 0.9em;
    background: #fff;
    color: #1d2327;
    cursor: pointer;
    height: 36px;
}

/* Navigation */
.dca-diary-nav {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
    text-align: center;
}

.dca-diary-period-label {
    font-weight: 700;
    font-size: 1.05em;
    color: #1d2327;
}

/* Loading */
.dca-diary-loading {
    padding: 32px;
    text-align: center;
    color: #666;
    font-style: italic;
}

.dca-diary-grid-wrap {
    transition: opacity 0.15s;
}

/* =============================================================================
   Table
   ============================================================================= */

.dca-diary-table-wrap {
    overflow-x: auto;
    width: 100%;
    border: 1px solid #dcdcde;
    border-radius: 8px;
}

.dca-diary-table {
    border-collapse: collapse;
    width: 100%;
    font-size: 0.9em;
    background: #fff;
}

/* Sticky name column */
.dca-diary-name-header,
.dca-diary-name-cell {
    position: sticky;
    left: 0;
    z-index: 2;
    background: #fff;
}

/* Column headers */
.dca-diary-table thead th {
    background: #f6f7f7;
    padding: 8px 6px;
    text-align: center;
    border-bottom: 2px solid #dcdcde;
    border-right: 1px solid #ebebeb;
    font-weight: 600;
    white-space: nowrap;
    color: #3c434a;
}

.dca-diary-name-header {
    text-align: left;
    padding: 8px 14px;
    min-width: 160px;
    max-width: 220px;
    border-right: 2px solid #dcdcde;
    z-index: 3;
    background: #f6f7f7;
}

.dca-diary-day-header.is-weekend {
    background: #f0f0f0;
    color: #999;
}

.dca-diary-day-header.is-today {
    background: #e8f0fb;
    color: #135e96;
}

/* Week view day header */
.dca-diary-week-table .dca-diary-day-header {
    min-width: 120px;
}

.dca-diary-day-name {
    display: block;
    font-size: 0.78em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #666;
}

.dca-diary-week-table .dca-diary-day-header.is-today .dca-diary-day-name {
    color: #135e96;
}

.dca-diary-day-num {
    display: block;
    font-size: 1.1em;
    font-weight: 700;
    color: #1d2327;
    margin-top: 1px;
}

.dca-diary-week-table .dca-diary-day-header.is-today .dca-diary-day-num {
    color: #135e96;
}

/* Month view day header */
.dca-diary-month-table .dca-diary-day-header {
    min-width: 34px;
    width: 34px;
    padding: 6px 2px;
    font-size: 0.78em;
}

/* Group header rows */
.dca-diary-group-header .dca-diary-group-label {
    background: #f0f4f8;
    padding: 5px 14px;
    font-weight: 700;
    font-size: 0.75em;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #50575e;
    border-top: 2px solid #dcdcde;
    border-bottom: 1px solid #dcdcde;
    border-right: none;
    min-width: 0;
    max-width: none;
}

/* Name cells */
.dca-diary-name-cell {
    padding: 7px 14px;
    font-weight: 500;
    color: #1d2327;
    border-right: 2px solid #dcdcde;
    border-bottom: 1px solid #ebebeb;
    white-space: nowrap;
    min-width: 160px;
    max-width: 220px;
}

/* Zebra striping — applied to sticky name cells to keep background consistent */
.dca-diary-row:nth-child(even) .dca-diary-name-cell {
    background: #fafafa;
}

/* Data cells */
.dca-diary-cell {
    padding: 5px 6px;
    text-align: center;
    border-right: 1px solid #ebebeb;
    border-bottom: 1px solid #ebebeb;
    vertical-align: middle;
}

.dca-diary-row:nth-child(even) .dca-diary-cell {
    filter: brightness(0.97);
}

.dca-diary-no-record {
    background: #fafafa;
}

.dca-diary-weekend {
    background: #f4f4f4;
}

.dca-diary-empty {
    padding: 32px 16px;
    color: #666;
    font-style: italic;
    text-align: center;
}

/* =============================================================================
   Status colours
   ============================================================================= */

.dca-diary-present,
.dca-diary-worked  { background: #edf7ee; }
.dca-diary-expected { background: #fef9ec; }
.dca-diary-sick     { background: #fce8e8; }
.dca-diary-holiday  { background: #e8f0fb; }
.dca-diary-closed,
.dca-diary-absent   { background: #f0f0f0; }
.dca-diary-unknown  { background: #fafafa; }

/* Week view — status badge pill */
.dca-diary-status-badge {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 10px;
    font-size: 0.76em;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.5;
}

.dca-diary-present  .dca-diary-status-badge,
.dca-diary-worked   .dca-diary-status-badge { background: #46b450; color: #fff; }
.dca-diary-expected .dca-diary-status-badge { background: #f0b849; color: #333; }
.dca-diary-sick     .dca-diary-status-badge { background: #d63638; color: #fff; }
.dca-diary-holiday  .dca-diary-status-badge { background: #2271b1; color: #fff; }
.dca-diary-closed   .dca-diary-status-badge,
.dca-diary-absent   .dca-diary-status-badge { background: #666;    color: #fff; }

/* Week view — times and hours */
.dca-diary-times,
.dca-diary-hours {
    display: block;
    font-size: 0.79em;
    color: #555;
    margin-top: 3px;
    white-space: nowrap;
}

/* Month view — coloured circle abbreviation */
.dca-diary-abbr {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    font-size: 0.7em;
    font-weight: 800;
    line-height: 1;
}

.dca-diary-present  .dca-diary-abbr,
.dca-diary-worked   .dca-diary-abbr { background: #46b450; color: #fff; }
.dca-diary-expected .dca-diary-abbr { background: #f0b849; color: #333; }
.dca-diary-sick     .dca-diary-abbr { background: #d63638; color: #fff; }
.dca-diary-holiday  .dca-diary-abbr { background: #2271b1; color: #fff; }
.dca-diary-closed   .dca-diary-abbr,
.dca-diary-absent   .dca-diary-abbr { background: #666;    color: #fff; }

/* =============================================================================
   Responsive — mobile nav
   ============================================================================= */

@media (max-width: 700px) {
    .dca-diary-nav {
        grid-template-columns: 1fr 1fr;
        grid-template-areas: "label label" "prev  next";
        gap: 8px;
    }
    .dca-diary-nav .dca-diary-prev        { grid-area: prev; }
    .dca-diary-nav .dca-diary-period-label { grid-area: label; }
    .dca-diary-nav .dca-diary-next        { grid-area: next; }
}
