.schedule-dashboard .panel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.schedule-dashboard .panel-kicker {
    display: inline-block;
    margin-bottom: 4px;
    color: var(--accent-strong);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.schedule-dashboard .panel-header h3 {
    margin: 0;
    color: var(--text-strong);
    font-size: 1.05rem;
    line-height: 1.25;
    font-weight: 800;
}

.schedule-dashboard .view-panel {
    padding: var(--panel-padding);
    display: grid;
    gap: 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    box-shadow: var(--shadow-sm);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.schedule-dashboard .panel-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid rgba(37, 99, 235, 0.16);
    background: linear-gradient(180deg, #f3f8ff 0%, #e2eeff 100%);
    white-space: nowrap;
    color: var(--text-strong);
    font-size: 0.86rem;
    font-weight: 700;
}

.schedule-dashboard .table-shell {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: #ffffff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.schedule-dashboard .schedule-table {
    width: max-content;
    min-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    color: var(--text-strong);
    background: #ffffff;
    table-layout: auto;
}

.schedule-dashboard .schedule-table th,
.schedule-dashboard .schedule-table td {
    min-width: 88px;
    padding: 8px 9px;
    border-right: 1px solid #64a8fa;
    border-bottom: 1px solid #66adfd;
    text-align: center;
    vertical-align: middle;
    background: #ffffff;
    font-size: 0.8rem;
}

.schedule-dashboard .schedule-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: linear-gradient(180deg, #eef5ff 0%, #dceafe 100%);
    color: var(--text-strong);
    font-weight: 600;
    font-size: 0.8rem;
}

.schedule-dashboard .schedule-table tbody tr:nth-child(even) td:not(.row-label) {
    background: #fbfdff;
}

.schedule-dashboard .schedule-table tbody tr:hover td:not(.row-label) {
    background: #f4f8ff;
}

.schedule-dashboard .schedule-table th:first-child,
.schedule-dashboard .schedule-table td:first-child {
    width: 76px;
    min-width: 76px;
    max-width: 76px;
}

.schedule-dashboard .schedule-table th:not(:first-child),
.schedule-dashboard .schedule-table td:not(:first-child) {
    min-width: 100px;
}

.schedule-dashboard .schedule-table th:first-child {
    border-top-left-radius: 14px;
}

.schedule-dashboard .schedule-table th:last-child {
    border-top-right-radius: 14px;
}

.schedule-dashboard .schedule-table tr:last-child td:first-child {
    border-bottom-left-radius: 14px;
}

.schedule-dashboard .schedule-table tr:last-child td:last-child {
    border-bottom-right-radius: 14px;
}

.schedule-dashboard .row-label {
    font-weight: 600;
    color: var(--text-strong);
    background: linear-gradient(180deg, #f6faff 0%, #edf4ff 100%) !important;
}

.schedule-dashboard .row-label-day,
.schedule-dashboard .row-label-period {
    color: var(--accent-strong);
}

.schedule-dashboard .lesson-card {
    display: grid;
    gap: 2px;
    min-width: unset;
    padding: 6px 7px;
    border-radius: 10px;
    background: linear-gradient(180deg, #fbfdff 0%, #eaf3ff 100%);
    border: 1px solid #c3d8fb;
    box-shadow: 0 6px 16px rgba(37, 99, 235, 0.08);
}

.schedule-dashboard .lesson-subject {
    color: var(--text-strong);
    font-size: 0.7rem;
    font-weight: 600;
    line-height: 1.2;
}

.schedule-dashboard .lesson-meta {
    color: var(--accent-strong);
    font-size: 0.6rem;
    font-weight: 400;
    line-height: 1.2;
}

.schedule-dashboard .cell-empty {
    color: var(--muted);
    font-size: 0.6rem;
    font-weight: 400;
}

.schedule-dashboard .session-divider td {
    border-top: 1.5px solid #19C809;
}

.schedule-dashboard .day-divider td {
    border-top: 1px solid #F56C27;
}

.schedule-dashboard .session-morning td:not(.row-label) {
    background: #fcfeff;
}

.schedule-dashboard .session-afternoon td:not(.row-label) {
    background: #f7fbff;
}

.schedule-dashboard .period-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

.schedule-dashboard .period-number {
    font-weight: 800;
    font-size: 0.9rem;
    color: #0f172a;
}

.schedule-dashboard .period-tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

.schedule-dashboard .morning-tag {
    background: linear-gradient(180deg, #dbeafe 0%, #bfdbfe 100%);
    color: #1d4ed8;
    border: 1px solid #93c5fd;
}

.schedule-dashboard .afternoon-tag {
    background: linear-gradient(180deg, #dcfce7 0%, #bbf7d0 100%);
    color: #15803d;
    border: 1px solid #86efac;
}

@media (min-width: 1600px) {
    .schedule-dashboard .view-panel {
        padding: 16px;
    }

    .schedule-dashboard .schedule-table {
        width: 100%;
    }

    .schedule-dashboard .schedule-table th,
    .schedule-dashboard .schedule-table td {
        min-width: 84px;
        padding: 7px 8px;
        font-size: 0.8rem;
    }

    .schedule-dashboard .lesson-card {
        padding: 6px;
    }
}

@media (max-width: 768px) {
    .schedule-dashboard .view-panel {
        padding: 14px;
    }

    .schedule-dashboard .table-shell:not(:has(.schedule-table-wide)) {
        overflow-x: hidden !important;
    }

    .schedule-dashboard .schedule-table:not(.schedule-table-wide) {
        min-width: 100% !important;
        width: 100%;
        table-layout: fixed;
    }

    .schedule-dashboard .schedule-table:not(.schedule-table-wide) th,
    .schedule-dashboard .schedule-table:not(.schedule-table-wide) td {
        min-width: unset !important;
        padding: 6px 4px;
        font-size: 0.6rem;
        word-break: break-word;
        white-space: normal;
    }

    .schedule-dashboard .schedule-table:not(.schedule-table-wide) th:first-child,
    .schedule-dashboard .schedule-table:not(.schedule-table-wide) td:first-child {
        width: 52px;
        min-width: 52px;
    }

    .schedule-dashboard .table-shell:has(.schedule-table-wide) {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }

    .schedule-dashboard .schedule-table.schedule-table-wide {
        min-width: max-content !important;
        width: max-content !important;
        table-layout: auto !important;
    }

    .schedule-dashboard .schedule-table-wide th,
    .schedule-dashboard .schedule-table-wide td {
        min-width: 85px !important;
        padding: 6px 6px;
        font-size: 0.6rem;
    }

    .schedule-dashboard .lesson-card {
        padding: 4px;
        gap: 2px;
    }

    .schedule-dashboard .lesson-subject {
        font-size: 0.6rem;
    }

    .schedule-dashboard .lesson-meta {
        font-size: 0.6rem;
    }

    .schedule-dashboard .cell-empty {
        font-size: 0.55rem;
    }

    .schedule-dashboard .schedule-table-wide th:nth-child(1),
    .schedule-dashboard .schedule-table-wide td:nth-child(1) {
        min-width: 50px !important;
        width: 50px;
        max-width: 55px;
        font-size: 0.65rem;
        padding: 4px 3px;
    }

    .schedule-dashboard .schedule-table-wide th:nth-child(2),
    .schedule-dashboard .schedule-table-wide td:nth-child(2) {
        min-width: 60px !important;
        width: 60px;
        max-width: 60px;
        padding: 4px 3px;
    }
}
