.schedule-main [hidden] { display: none !important; }
.schedule-workspace { padding-top: 34px; }
.schedule-access-bar { margin: 20px 0 24px; }
.schedule-toolbar, .schedule-caption, .schedule-editor-heading, .schedule-editor-row, .schedule-dialog-heading, .schedule-editor-day {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}
.schedule-class-pills, .schedule-actions, .schedule-day-pills, .schedule-editor-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.schedule-toolbar { align-items: flex-start; }
.schedule-pill {
    max-width: 100%;
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 8px 14px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 600;
    overflow-wrap: anywhere;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}
.schedule-pill:hover, .schedule-pill:focus-visible, .schedule-pill[aria-selected="true"], .schedule-pill[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: white; transform: translateY(-1px); }
.schedule-pill:active { transform: translateY(0) scale(0.98); }
.schedule-main button, .schedule-dialog button { cursor: pointer; }
.schedule-main button:disabled, .schedule-dialog button:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
.schedule-main button[aria-busy="true"] { cursor: wait; }
.schedule-main .button:disabled, .schedule-dialog .button:disabled { box-shadow: none; }
.schedule-main .button-primary:disabled, .schedule-dialog .button-primary:disabled { background: var(--accent); }
.schedule-main .button-secondary:disabled, .schedule-dialog .button-secondary:disabled { border-color: var(--line); background: rgba(255, 255, 255, 0.6); }
.schedule-access-bar[aria-busy="true"] button:disabled { cursor: wait; }
.schedule-main button:focus-visible, .schedule-board:focus-visible, .schedule-dialog button:focus-visible { outline: 3px solid var(--accent-soft); outline-offset: 3px; }
.schedule-feedback { min-height: 1.5em; margin: 14px 0 22px; color: var(--muted); font-size: 0.8rem; }
.schedule-feedback:empty { display: none; }
.schedule-feedback.is-error { color: #a63838; }
.schedule-caption { margin-bottom: 12px; align-items: end; }
.schedule-caption > div { min-width: 0; }
.schedule-caption h2, .schedule-editor h2 { margin: 0; font-size: clamp(1.7rem, 4vw, 2.5rem); font-weight: 500; letter-spacing: -0.05em; line-height: 1; overflow-wrap: anywhere; }
.schedule-caption .eyebrow, .schedule-editor-heading .eyebrow { margin-bottom: 6px; }
.schedule-caption > p { margin: 0; color: var(--muted); font-size: 0.76rem; }
.schedule-caption a { color: var(--accent-dark); }
.schedule-help, .schedule-editor-heading p { margin: 8px 0 20px; color: var(--muted); font-size: 0.78rem; line-height: 1.6; }
.schedule-board {
    overflow-x: auto;
    padding: 18px 14px 24px;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.75);
    box-shadow: 0 18px 44px rgba(23, 24, 34, 0.06);
}
.schedule-board.is-entering, .schedule-editor { animation: site-card-enter 420ms cubic-bezier(0.22, 1, 0.36, 1) both; }
.schedule-table { min-width: 1080px; }
.schedule-head, .schedule-grid { display: grid; grid-template-columns: 58px repeat(5, minmax(0, 1fr)); gap: 8px; }
.schedule-head { align-items: center; padding-bottom: 16px; }
.schedule-day-heading { margin: 0; padding: 7px 10px; color: var(--ink); font-size: 0.78rem; font-weight: 600; }
.schedule-axis-heading { color: var(--muted); font-size: 0.65rem; }
.schedule-time-axis, .schedule-day { position: relative; min-width: 0; }
.schedule-time-axis time { position: absolute; left: 0; font-size: 0.68rem; color: var(--muted); font-variant-numeric: tabular-nums; line-height: 1; }
.schedule-day {
    background: repeating-linear-gradient(to bottom, var(--line) 0, var(--line) 1px, transparent 1px, transparent var(--half-hour));
}
.schedule-lesson {
    --lesson-color: #5551ff;
    --lesson-background: #eeedff;
    position: absolute;
    left: 0;
    display: flex;
    width: 100%;
    min-height: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    padding: 10px 11px;
    border: 1px solid color-mix(in srgb, var(--lesson-color) 24%, transparent);
    border-left: 3px solid var(--lesson-color);
    border-radius: 11px;
    background: var(--lesson-background);
    color: var(--ink);
    overflow: hidden;
    text-align: left;
    transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}
.schedule-lesson:hover, .schedule-lesson:focus-visible { z-index: 2; border-color: var(--lesson-color); box-shadow: 0 12px 28px rgba(23, 24, 34, 0.08); }
.schedule-lesson:active { transform: scale(0.98); }
.schedule-course { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 0.75rem; line-height: 1.3; font-weight: 600; letter-spacing: -0.02em; }
.schedule-time { margin-top: 3px; color: var(--lesson-color); font-size: 0.69rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.schedule-room, .schedule-teacher { width: 100%; color: var(--muted); font-size: 0.65rem; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.schedule-teacher { white-space: normal; }
.schedule-lesson[data-length="medium"] { padding-block: 6px; gap: 0; }
.schedule-lesson[data-length="medium"] .schedule-course { -webkit-line-clamp: 1; }
.schedule-lesson[data-length="medium"] .schedule-room, .schedule-lesson[data-length="medium"] .schedule-teacher { display: none; }
.schedule-lesson[data-length="short"] { justify-content: center; padding: 1px 8px; }
.schedule-lesson[data-length="short"] .schedule-course { -webkit-line-clamp: 1; font-size: 0.66rem; }
.schedule-lesson[data-length="short"] span { display: none; }
.schedule-no-lessons { padding: 12px; color: var(--muted); font-size: 0.76rem; }
.schedule-day-pills { display: none; }
.schedule-editor { margin-top: 36px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-md); background: rgba(255, 255, 255, 0.76); }
.schedule-editor-heading { align-items: flex-start; }
.schedule-editor-actions { padding-bottom: 22px; margin-bottom: 22px; border-bottom: 1px solid var(--line); }
.schedule-editor-list { display: grid; gap: 9px; }
.schedule-editor-row { padding: 14px; border: 1px solid var(--line); border-left: 3px solid var(--lesson-color); border-radius: 13px; background: var(--page); }
.schedule-editor-day-heading { margin: 18px 0 4px; font-size: 0.9rem; font-weight: 600; }
.schedule-editor-copy { display: grid; min-width: 0; gap: 2px; overflow-wrap: anywhere; }
.schedule-editor-copy strong { font-size: 0.82rem; overflow-wrap: anywhere; }
.schedule-editor-copy span, .schedule-editor-copy small { color: var(--muted); font-size: 0.72rem; }
.schedule-editor-row .schedule-actions { flex: 0 1 auto; max-width: 100%; }
.schedule-icon-button { width: 50px; flex: 0 0 50px; padding: 0; }
.schedule-danger { border-color: rgba(165, 76, 73, 0.24); color: #a54c49; background: rgba(255, 244, 243, 0.96); }
.schedule-danger:hover, .schedule-danger:focus-visible { border-color: rgba(165, 76, 73, 0.38); color: #8e3835; background: rgba(255, 224, 222, 0.9); }
.schedule-dialog { width: min(540px, calc(100% - 34px)); max-height: calc(100dvh - 28px); padding: 0; border: 1px solid var(--line); border-radius: var(--radius-lg); background: rgba(255, 255, 255, 0.96); color: var(--ink); box-shadow: var(--shadow); }
.schedule-dialog::backdrop { background: rgba(17, 19, 26, 0.3); backdrop-filter: blur(6px); animation: site-dialog-backdrop-enter 220ms ease both; }
.schedule-dialog[open] { animation: site-dialog-enter 260ms cubic-bezier(0.22, 1, 0.36, 1) both; }
.schedule-dialog.is-closing { animation: site-dialog-leave 180ms ease forwards; pointer-events: none; }
.schedule-dialog.is-closing::backdrop { animation: site-dialog-backdrop-leave 180ms ease forwards; }
.schedule-form { display: grid; gap: 15px; padding: 28px; }
.schedule-form h2 { min-width: 0; margin: 0; font-size: 1.8rem; font-weight: 500; letter-spacing: -0.05em; line-height: 1; overflow-wrap: anywhere; }
.schedule-form p { margin: 0; font-size: 0.8rem; color: var(--muted); }
.schedule-form .is-error { color: #a63838; }
.schedule-form label, .schedule-editor-day label { display: grid; min-width: 0; gap: 6px; font-size: 0.7rem; font-weight: 600; color: var(--muted); letter-spacing: 0.05em; text-transform: uppercase; }
.schedule-form input, .schedule-form select, .schedule-editor-day select { width: 100%; min-width: 0; min-height: 42px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: rgba(255, 255, 255, 0.84); font: inherit; font-size: 0.82rem; font-weight: 400; letter-spacing: normal; text-transform: none; outline: 0; transition: border-color 160ms ease, box-shadow 160ms ease; }
.schedule-form input:focus, .schedule-form select:focus, .schedule-editor-day select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(85, 81, 255, 0.12); }
.schedule-form-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
.schedule-bulk-fields { padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: var(--page); }
.schedule-bulk-fields[hidden] { display: none; }
.schedule-bulk-fields label { display: flex; align-items: flex-start; text-transform: none; letter-spacing: normal; font-size: 0.78rem; color: var(--ink); }
.schedule-bulk-fields input { flex: 0 0 18px; width: 18px; min-height: 18px; padding: 0; margin: 2px 2px 0 0; accent-color: var(--accent); }
.schedule-bulk-fields p { margin-top: 8px; font-size: 0.72rem; }
.schedule-close { display: inline-grid; place-items: center; flex: 0 0 auto; width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); background: rgba(233, 233, 226, 0.62); font-size: 1.15rem; line-height: 1; transition: background-color 160ms ease, color 160ms ease, transform 160ms ease; }
.schedule-close:hover, .schedule-close:focus-visible { background: var(--accent-soft); color: var(--ink); }
.schedule-close:active { transform: scale(0.94); }
.schedule-facts { margin: 0 0 18px; }
.schedule-facts > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--line); font-size: 0.8rem; }
.schedule-facts dt { color: var(--muted); }
.schedule-facts dd { margin: 0; overflow-wrap: anywhere; text-align: right; }
.schedule-detail-period { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-block: 8px; font-size: 0.75rem; }
@media (max-width: 760px) {
    .schedule-toolbar, .schedule-caption, .schedule-editor-heading, .schedule-editor-row { align-items: flex-start; flex-direction: column; }
    .schedule-toolbar > .schedule-actions { width: 100%; }
    .schedule-day-pills { display: flex; margin-block: 18px; gap: 5px; }
    .schedule-day-pills .schedule-pill { flex: 1; padding: 7px 6px; font-size: 0.65rem; }
    .schedule-table { min-width: 0; }
    .schedule-head, .schedule-grid { grid-template-columns: 45px minmax(0, 1fr); }
    .schedule-head .is-other-day, .schedule-grid .is-other-day { display: none; }
    .schedule-board { padding: 15px 10px 20px; }
    .schedule-course { font-size: 0.82rem; }
    .schedule-room, .schedule-teacher { font-size: 0.73rem; }
    .schedule-editor { padding: 18px; }
    .schedule-form { padding: 22px; }
    .schedule-editor-row .schedule-actions { flex-wrap: wrap; }
}
@media (max-width: 640px) {
    .schedule-form-row { grid-template-columns: 1fr; }
}
