.va-scheduler-wrap {
    max-width: 100%;
    overflow-x: auto;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
    background: #fff;
    padding: 12px;
    border: 1px solid #e6e6e6;
    box-shadow: 0 1px 6px rgba(0,0,0,0.03);
}

.va-scheduler-controls {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-bottom:10px;
    flex-wrap:wrap;
}

.va-rate-group label {
    margin-right:12px;
    display:inline-block;
    font-size:14px;
}
.va-rate-group input { width:80px; margin-left:6px; padding:4px 6px; }

.va-controls-right button {
    margin-left:8px;
    padding:6px 10px;
    border:1px solid #ccc;
    background:#fafafa;
    cursor:pointer;
    border-radius:4px;
}

.va-scheduler-table-container { overflow:auto; }

.va-scheduler-table {
    border-collapse: collapse;
    width:100%;
    min-width: 1400px;
    table-layout: fixed;
}

.va-scheduler-table thead th {
    position: sticky;
    top: 0;
    background: #f7f7f7;
    border: 1px solid #eaeaea;
    padding:8px;
    text-align:center;
    font-weight:600;
    z-index:3;
}

.va-scheduler-table thead tr:first-child th.day-group {
    font-size:14px;
    padding-top:12px;
    padding-bottom:6px;
}

.va-scheduler-table thead tr + tr th.sub-head {
    font-weight:600;
    padding:6px;
    background:#fafafa;
}

.time-col-head { left:0; z-index:5; }

.va-scheduler-table tbody td, .va-scheduler-table tfoot td {
    border: 1px solid #f0f0f0;
    padding:6px;
    text-align:center;
    vertical-align:middle;
    min-width: 60px;
    height:26px;
    cursor: pointer;
    user-select: none;
    overflow:hidden;
}

.time-col {
    text-align:left;
    padding-left:8px;
    background:#fafafa;
    font-size:13px;
    cursor:default;
    position: sticky;
    left: 0;
    z-index:4;
    border-right:1px solid #eaeaea;
    min-width:70px;
}

.sched-cell { font-weight:700; line-height:1; }

/* color per VA column when marked */
.sched-cell[data-va="X"].va-x { background: #e8f5e9; color: #1b5e20; }
.sched-cell[data-va="Y"].va-y { background: #fffde7; color: #f57f17; }
.sched-cell[data-va="Z"].va-z { background: #ffebee; color: #b71c1c; }

/* hover for empty cells */
.sched-cell:hover { background: #f5f8fa; }

/* daily totals footer */
.daily-totals-row td { background:#fbfbfb; font-weight:600; text-align:center; }

/* results area */
.va-scheduler-results { margin-top:12px; display:flex; gap:20px; flex-wrap:wrap; }
.va-result-item { font-size:14px; }
.va-result-item.total { font-weight:700; }

/* hint */
.va-scheduler-hint { margin-top:8px; color:#666; font-size:13px; }

/* responsive */
@media (max-width: 900px) {
    .va-scheduler-table { min-width:1200px; }
}
