/* Seven-day schedule board; kept separate from compact table/list styling. */
.cabinet-shell .cabinet-schedule-workspace { width: 100%; max-width: none; min-width: 0; }
.cabinet-shell .cabinet-board-welcome { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; }
.cabinet-board-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.cabinet-board-tools form { margin: 0; }
.cabinet-week-view { width: 100%; min-width: 0; margin-top: 12px; }
.cabinet-week-board { display: grid; grid-template-columns: repeat(7, minmax(196px, 1fr)); align-items: start; gap: 10px; overflow-x: auto; padding: 2px 2px 14px; scrollbar-width: thin; scrollbar-color: #a4acc4 transparent; }
.cabinet-week-board:focus-visible { outline: 2px solid #5659fe; outline-offset: 3px; }
.cabinet-day-column { display: flex; flex-direction: column; gap: 8px; min-height: 210px; min-width: 0; padding: 10px; border: 1px solid #dfe4ef; border-radius: 12px; background: #eaeef6; }
.cabinet-day-column.is-weekend { background: #efedf6; }
.cabinet-day-column.is-today { background: #eeedff; border-color: #aaa7ef; }
.cabinet-day-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; }
.cabinet-shell .cabinet-day-heading h2 { margin: 0 0 4px; font-size: 13px; font-weight: 700; text-transform: capitalize; color: #24304a; }
.cabinet-day-heading > div > span { color: #5c687e; font-size: 12px; }
.cabinet-day-count { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 26px; height: 26px; border-radius: 8px; background: #fff9; color: #4d5970; font-size: 12px; font-weight: 600; }
.cabinet-day-today { align-self: flex-start; padding: 3px 7px; border-radius: 5px; font-size: 10px; font-weight: 600; color: #fff; background: #5659fe; }
.cabinet-day-cards { display: flex; flex-direction: column; gap: 8px; }
.cabinet-shell .cabinet-week-board .cabinet-lesson-card { display: block; padding: 9px 10px; margin: 0; border: 1px solid #dce2ed; border-left: 3px solid #7771e7; border-radius: 9px; background: #fff; box-shadow: 0 2px 4px #202c4005; overflow-wrap: anywhere; }
.cabinet-shell .cabinet-week-board .cabinet-lesson-card:hover { border-color: #aaa7df; }
.cabinet-shell .cabinet-week-board .cabinet-lesson-card.is-completed { border-left-color: #319775; }
.cabinet-lesson-summary { position: relative; display: block; padding-right: 18px; list-style: none; cursor: pointer; }
.cabinet-lesson-summary::-webkit-details-marker { display: none; }
.cabinet-lesson-summary:focus-visible { outline: 2px solid #7771e7; outline-offset: 4px; border-radius: 4px; }
.cabinet-lesson-chevron { position: absolute; right: 0; top: 3px; color: #7771a5; font-size: 18px; line-height: 1; transition: transform .15s; }
.cabinet-lesson-card[open] > .cabinet-lesson-summary .cabinet-lesson-chevron { transform: rotate(180deg); }
.cabinet-shell .cabinet-week-board .cabinet-lesson-summary h3 { margin-bottom: 0; }
.cabinet-lesson-expanded { margin-top: 8px; padding-top: 6px; border-top: 1px solid #eef0f5; }
.cabinet-lesson-time { display: flex; align-items: center; gap: 5px; width: fit-content; padding: 3px 6px; margin-bottom: 6px; border-radius: 6px; color: #4441a5; background: #f0efff; font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; }
.cabinet-shell .cabinet-week-board .cabinet-lesson-card h3 { margin: 0 0 6px; font-size: 13px; line-height: 1.4; }
.cabinet-shell .cabinet-lesson-card h3 a { color: #202c40; }
.cabinet-shell .cabinet-lesson-card h3 a:hover { color: #4548c8; }
.cabinet-shell .cabinet-week-board .cabinet-lesson-card p { margin: 3px 0; color: #5b667b; font-size: 12px; line-height: 1.5; }
.cabinet-lesson-teacher { display: flex; align-items: flex-start; gap: 6px; }
.cabinet-lesson-teacher i { flex: 0 0 14px; margin-top: 2px; }
.cabinet-lesson-completed { display: inline-block; margin-top: 4px; padding: 3px 6px; border-radius: 5px; background: #e6f5ed; color: #207550; font-size: 11px; }
.cabinet-lesson-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding-top: 5px; margin-top: 6px; border-top: 1px solid #eef0f5; }
.cabinet-shell .cabinet-lesson-actions form { display: inline-flex; margin: 0 0 0 auto; }
.cabinet-shell .cabinet-lesson-actions a, .cabinet-shell .cabinet-lesson-actions button { display: inline-flex; align-items: center; justify-content: center; min-height: 28px; padding: 4px; border: 0; border-radius: 5px; color: #4548c8; background: transparent; font: inherit; font-size: 11px; cursor: pointer; }
.cabinet-shell .cabinet-lesson-actions button { color: #a83232; }
.cabinet-shell .cabinet-lesson-actions a:hover { background: #eeefff; }
.cabinet-shell .cabinet-lesson-actions button:hover { background: #fff0f0; }
.cabinet-day-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-height: 80px; border: 1px dashed #cbd2e2; border-radius: 8px; color: #6c7890; font-size: 12px; }
.cabinet-day-empty i { width: 24px; height: 24px; font-size: 24px; opacity: .65; }
.cabinet-shell a.cabinet-day-add { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 38px; margin-top: auto; padding: 8px; border: 1px dashed #bbbfd6; border-radius: 8px; color: #4845ab; background: #ffffff70; font-size: 12px; font-weight: 600; }
.cabinet-shell a.cabinet-day-add:hover { background: #fff; border-color: #7771e7; }
.cabinet-day-add > span { font-size: 20px; line-height: 16px; }
.cabinet-week-day-nav, .cabinet-week-mobile-hint { display: none; }
.cabinet-shell .cabinet-lesson-editor .cabinet-lesson-times { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cabinet-shell .cabinet-lesson-editor .cabinet-lesson-times label { display: block; }
@media (max-width: 700px) {
    .cabinet-shell .cabinet-my-schedule .cabinet-filters > label { flex: 1 1 100%; }
    .cabinet-shell .cabinet-my-schedule .cabinet-profile form.cabinet-filters input,
    .cabinet-shell .cabinet-my-schedule .cabinet-profile form.cabinet-filters select { min-height: 44px; height: 44px; font-size: 16px; }
    .cabinet-shell .cabinet-my-schedule .cabinet-filters > button { min-height: 44px; width: 100%; }
    .cabinet-shell .cabinet-my-schedule .cabinet-form-links a { display: inline-flex; align-items: center; min-height: 44px; }
    .cabinet-shell .cabinet-board-welcome h1 { font-size: 19px; }
    .cabinet-board-tools { width: 100%; }
    .cabinet-board-tools > a, .cabinet-board-tools > form { flex: 1 1 170px; }
    .cabinet-board-tools .cabinet-button { width: 100%; min-height: 44px; }
    .cabinet-week-day-nav { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; margin-bottom: 12px; }
    .cabinet-week-day-nav button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-width: 0; min-height: 58px; padding: 7px 2px; border: 1px solid #dfe4ef; border-radius: 9px; background: #fff; color: #556278; font: inherit; cursor: pointer; }
    .cabinet-week-day-nav button span { font-size: 10px; text-transform: capitalize; }
    .cabinet-week-day-nav button strong { font-size: 14px; }
    .cabinet-week-day-nav button.is-today { border-color: #8d87df; }
    .cabinet-week-day-nav button.is-active { background: #5659fe; color: #fff; border-color: #5659fe; }
    .cabinet-week-board { grid-template-columns: repeat(7, calc(100% - 24px)); gap: 10px; padding: 2px 0 14px; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; }
    .cabinet-day-column { scroll-snap-align: start; min-height: 220px; padding: 12px; }
    .cabinet-shell .cabinet-day-heading h2 { font-size: 16px; }
    .cabinet-shell .cabinet-week-board .cabinet-lesson-card { padding: 12px; }
    .cabinet-shell .cabinet-week-board .cabinet-lesson-card h3 { font-size: 15px; }
    .cabinet-shell .cabinet-week-board .cabinet-lesson-card p { font-size: 13px; }
    .cabinet-shell .cabinet-lesson-actions a, .cabinet-shell .cabinet-lesson-actions button { min-height: 44px; padding: 8px; font-size: 12px; }
    .cabinet-shell a.cabinet-day-add { min-height: 44px; font-size: 13px; }
    .cabinet-shell p.cabinet-week-mobile-hint { display: block; margin: 2px 0 12px; color: #68758b; font-size: 11px; }
    .cabinet-shell .cabinet-lesson-editor .cabinet-lesson-times { grid-template-columns: 1fr; }
    .cabinet-shell .cabinet-lesson-editor input, .cabinet-shell .cabinet-lesson-editor select { min-height: 44px; font-size: 16px; }
    .cabinet-page .cabinet-record-modal .modal-content { padding: 16px; }
    .cabinet-edit-frame { height: 72dvh; }
}


.cabinet-inline-loader { display: inline-block; flex: 0 0 16px; width: 16px; height: 16px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: cabinet-spin .8s linear infinite; vertical-align: middle; }
.cabinet-editor-loading { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 120px; color: #556278; }
.cabinet-edit-frame[hidden] { display: none; }
.cabinet-shell .cabinet-day-heading .cabinet-day-today { display: inline-block; margin-left: 5px; font-size: 9px; padding: 2px 5px; vertical-align: middle; color: #fff; }
.cabinet-shell .cabinet-schedule-workspace .cabinet-structure-path { margin-bottom: 14px; }
@media (prefers-reduced-motion: reduce) { .cabinet-inline-loader { animation: none; } }
