.cabinet-toolbar { margin-bottom: 18px; flex-wrap: wrap; }
.cabinet-person { width: 100%; display: flex; align-items: center; gap: 20px; text-align: left; color: inherit; font: inherit; cursor: pointer; }
.cabinet-person:hover { border-color: #159a50; }
.cabinet-person-numbers { align-items: flex-end; text-align: right; }
.main.cabinet-page { padding: 12px 20px; }
.main.cabinet-page > .view { max-width: none; }
.cabinet-page .payout-card { position: fixed; top: var(--payout-top, 66px); right: 20px; z-index: 8; padding: 10px 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 3px 12px #1521150a; font-size: 14px; }
.cabinet-page .cabinet-tabs { padding-right: 240px; min-height: 40px; }
.cabinet-students,.cabinet-trials { display: grid; gap: 12px; }
.cabinet-students { grid-template-columns: repeat(4,minmax(0,1fr)); }
.cabinet-trials { grid-template-columns: repeat(7,minmax(0,1fr)); }
.cabinet-students .cabinet-person,.cabinet-trials .cabinet-person { padding: 14px; flex-direction: column; align-items: stretch; gap: 10px; min-width: 0; }
.cabinet-students .cabinet-person .cabinet-person-numbers { display: grid; grid-template-columns: 1fr auto; align-items: center; text-align: left; gap: 6px 10px; }
.cabinet-students .cabinet-person-numbers > :nth-child(even) { text-align: right; }
.cabinet-trials .cabinet-person { font-size: 12px; justify-content: space-between; }
.cabinet-trials .tag { white-space: normal; }
.cabinet-page {
    --lesson-yellow: #eab308;
    --lesson-lime: #a3e635;
    --lesson-red: #ef4444;
    --lesson-purple: #a855f7;
    --lesson-green: #22c55e;
    --lesson-orange: #f97316;
    --lesson-unreported: #1e3a8a;
}
.payment-row { display: flex; justify-content: space-between; gap: 20px; padding: 10px 0; border-bottom: 1px solid #e7e9e3; }
.calendar-card { padding: 0; }
.calendar-controls { flex-wrap: wrap; margin-bottom: 8px; }
.week-picker-label { position: relative; padding: 8px 12px; font-weight: 600; cursor: pointer; }
.week-picker-label .week-picker { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.calendar-legend { display: flex; gap: 16px; flex-wrap: wrap; font-size: 12px; margin: 8px 0; }
.calendar-legend span:before { content: ''; display: inline-block; vertical-align: middle; width: 10px; height: 10px; margin-right: 5px; border-radius: 3px; }
.calendar-legend .free:before { background: #d9efdf; }
.calendar-legend .trial:before { background: #ffe19b; }
.calendar-legend .regular:before { background: #dce6ff; }
.calendar-surface { border: 1px solid #dde2d9; border-radius: 12px; position: relative; }
.week-head,.week-grid { display: grid; grid-template-columns: 44px repeat(7,minmax(0,1fr)); }
.week-head { background: #fff; border-bottom: 1px solid #dde2d9; }
.week-head>div { padding: 10px 2px; display: flex; justify-content: center; gap: 8px; font-size: 12px; }
.week-head .calendar-zone { font-size: 10px; align-items: center; }
.week-grid { height: calc(100dvh - 240px); background: #fff; }
.week-head .calendar-today { outline: 2px solid #d7ad22; outline-offset: -3px; border-radius: 8px; }
.week-hours { height: 100%; position: relative; background: white; }
.week-hours span { position: absolute; right: 7px; font: 10px 'JetBrains Mono',monospace; color: #7e877f; }
.week-day { position: relative; height: 100%; min-width: 0; border-left: 1px solid #e1e5de; background: repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hour-height) - 1px),#e8ebe5 calc(var(--hour-height) - 1px),#e8ebe5 var(--hour-height)); }
.calendar-free { position: absolute; left: 1px; right: 1px; background: #d9efdf99; border-radius: 4px; }
.calendar-event { position: absolute; z-index: 2; text-align: left; border: 1px solid #adc0e7; border-left-width: 3px; border-radius: 5px; background: #e4ecff; color: #122137; padding: 0 3px; overflow: hidden; font: inherit; font-size: 10px; cursor: pointer; display: flex; align-items: center; gap: 4px; line-height: 1; min-height: 0; }
.calendar-event b { flex-shrink: 0; font-size: 9px; }
.calendar-event span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event.regular.completed { background: #dcfce7; border-color: var(--lesson-green); }
.calendar-event.regular.missed { background: #ffedd5; border-color: var(--lesson-orange); }
.cabinet-trials .trial-scheduled,.calendar-event.trial-scheduled { background: #fef3c7; border-color: var(--lesson-yellow); }
.cabinet-trials .trial-converted,.calendar-event.trial-converted { background: #ecfccb; border-color: var(--lesson-lime); }
.cabinet-trials .trial-refused,.calendar-event.trial-refused { background: #fee2e2; border-color: var(--lesson-red); }
.cabinet-trials .trial-noshow,.calendar-event.trial-noshow { background: #f3e8ff; border-color: var(--lesson-purple); }
.cabinet-trials .trial-thinking,.calendar-event.trial-thinking { background: #ffedd5; border-color: var(--lesson-orange); }
.cabinet-trials .trial-unreported,.cabinet-trials .regular-unreported,.calendar-event.trial-unreported,.calendar-event.regular.unreported { background: var(--lesson-unreported); border-color: var(--lesson-unreported); color: #fff; }
.cabinet-trials .trial-unreported .muted,.cabinet-trials .trial-unreported .tag { color: #fff; }
.cabinet-trials .trial-unreported .tag { background: transparent; border-color: #ffffff80; }
.lesson-countdown { font-size: 19px; font-weight: 600; }
@media (max-width: 720px) {
.cabinet-person,.payout-card { flex-wrap: wrap; gap: 12px; }
.cabinet-person-numbers { align-items: flex-start; text-align: left; }
.calendar-card { padding: 10px; }
}
.cabinet-person .stack { display: flex; flex-direction: column; gap: 5px; }
.cabinet-person .grow { min-width: 0; }
.cabinet-person .stack > * + * { margin-top: 0; }
.cabinet-tabs { flex-wrap: wrap; gap: 8px; border-bottom: 0; margin-bottom: 0; }
.cabinet-tabs .btn { white-space: nowrap; }
.cabinet-person { overflow-wrap: anywhere; }
@media (max-width: 1100px) {
.cabinet-students { grid-template-columns: repeat(3,minmax(0,1fr)); }
.cabinet-trials { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 720px) {
.main.cabinet-page { padding: 10px 8px; }
.cabinet-page .payout-card { position: sticky; top: 8px; width: fit-content; margin: 0 0 8px auto; }
.cabinet-page .cabinet-tabs { padding-right: 0; }
.cabinet-students,.cabinet-trials { grid-template-columns: repeat(2,minmax(0,1fr)); }
.week-head>div { flex-direction: column; align-items: center; gap: 2px; font-size: 10px; }
.calendar-legend { gap: 8px; font-size: 10px; }
.calendar-card { padding: 0; }
.calendar-event { gap: 2px; padding: 0 1px; }
.calendar-event b { font-size: 8px; }
.calendar-event span { font-size: 8px; }
}
.regular-unreported .auto-miss-label { margin-top: auto; }
.auto-miss-progress { display: block; width: 100%; height: 6px; border-radius: 3px; background: #ffffff30; overflow: hidden; }
.auto-miss-progress > span { display: block; height: 100%; border-radius: inherit; background: #ef4444; }
.student-payment-summary,.student-detail-link { display: block; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; line-height: 1.5; text-align: left; cursor: pointer; text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 4px; }
.student-payment-summary { font-size: 14px; }
.student-payment-summary:hover,.student-detail-link:hover { color: var(--green, #159a50); }
