/* Staff / teacher / student cabinets only. Loaded after elite.css. */

body:has(.cabinet-nav) {
    --cabinet-paper: #f3eee4;
    --cabinet-ink: #1a1612;
    --cabinet-gold: #8c7044;
    --cabinet-muted: #6d6458;
    --cabinet-border: #d8cfc0;
    --cabinet-surface: #f7f1e7;
}

body:has(.cabinet-nav) .page,
body:has(.cabinet-nav) .page .card,
body:has(.cabinet-nav) .cabinet-nav,
body:has(.cabinet-nav) .cabinet-table-wrap,
body:has(.cabinet-nav) .cabinet-row,
body:has(.cabinet-nav) .pill-row,
body:has(.cabinet-nav) .teacher-list-filter,
body:has(.cabinet-nav) .cabinet-toolbar,
body:has(.cabinet-nav) .student-week-item,
body:has(.cabinet-nav) .list {
    max-width: 100%;
    min-width: 0;
}

/* ---- tables: scroll inside wrap, do not squash cells ---- */

body:has(.cabinet-nav) .cabinet-table-wrap {
    overflow-x: auto;
    overflow-y: hidden;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
}

body:has(.cabinet-nav) .cabinet-table-wrap > table,
body:has(.cabinet-nav) .cabinet-table-wrap .cabinet-table {
    max-width: none !important;
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
}

body:has(.cabinet-nav) .cabinet-table th,
body:has(.cabinet-nav) .cabinet-table td {
    overflow-wrap: anywhere;
    word-break: break-word;
}

body:has(.cabinet-nav) .cabinet-table input,
body:has(.cabinet-nav) .cabinet-table textarea,
body:has(.cabinet-nav) .cabinet-table select {
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

body:has(.cabinet-nav) .studio-thumb {
    border-radius: 0;
    flex: 0 0 auto;
}

@media (max-width: 720px) {
    body:has(.cabinet-nav) {
        overflow-x: hidden;
    }

    body:has(.cabinet-nav) .page {
        overflow-x: clip;
        padding-top: 16px;
        padding-bottom: 36px;
    }

    body:has(.cabinet-nav) .card {
        padding: 16px 14px 18px;
        overflow-x: clip;
    }

    body:has(.cabinet-nav) .card > h1 {
        font-family: "Cormorant Garamond", "Times New Roman", serif;
        font-size: clamp(1.7rem, 8vw, 2.2rem);
        overflow-wrap: anywhere;
    }

    body:has(.cabinet-nav) .card > h2 {
        font-family: "Cormorant Garamond", "Times New Roman", serif;
        overflow-wrap: anywhere;
    }

    /* ---- nav: wrap, smaller type ---- */

    body:has(.cabinet-nav) .cabinet-nav {
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 0;
        margin: 0 0 18px;
        padding: 0;
        border-bottom: 1px solid var(--cabinet-border);
    }

    body:has(.cabinet-nav) .cabinet-nav-group {
        display: flex;
        flex-wrap: wrap;
        width: 100%;
        margin-left: 0;
    }

    body:has(.cabinet-nav) .cabinet-nav a {
        flex: 0 1 auto;
        max-width: 100%;
        padding: 7px 8px 9px;
        margin: 0;
        border-radius: 0;
        font-size: 10px;
        letter-spacing: 0.05em;
        line-height: 1.25;
        white-space: nowrap;
    }

    body:has(.cabinet-nav) .cabinet-nav--staff a {
        padding: 6px 7px 8px;
        font-size: 10px;
        letter-spacing: 0.04em;
    }

    /* ---- filters ---- */

    body:has(.cabinet-nav) .teacher-list-filter,
    body:has(.cabinet-nav) .teacher-list-filter label {
        display: block;
        width: 100%;
        max-width: 100%;
        margin: 0 0 14px;
    }

    body:has(.cabinet-nav) .teacher-list-filter input {
        display: block;
        width: 100%;
        max-width: 100% !important;
        box-sizing: border-box;
    }

    body:has(.cabinet-nav) .js-staff-teacher-filter {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        width: 100%;
    }

    body:has(.cabinet-nav) .js-staff-teacher-filter .auth-tab {
        flex: 1 1 auto;
        min-width: 0;
        border-radius: 0;
        text-align: center;
    }

    /* ---- list rows + payment / access / materials ---- */

    body:has(.cabinet-nav) ul.list > li,
    body:has(.cabinet-nav) .cabinet-row {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 10px !important;
        min-width: 0;
        max-width: 100%;
    }

    body:has(.cabinet-nav) ul.list > li > *,
    body:has(.cabinet-nav) .cabinet-row > * {
        min-width: 0;
        max-width: 100%;
    }

    body:has(.cabinet-nav) .cabinet-row-main {
        display: block;
        min-width: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    body:has(.cabinet-nav) ul.list .btn,
    body:has(.cabinet-nav) ul.list .btn-sm,
    body:has(.cabinet-nav) ul.list form,
    body:has(.cabinet-nav) .cabinet-row .btn,
    body:has(.cabinet-nav) .cabinet-row form,
    body:has(.cabinet-nav) .cabinet-row form .btn {
        width: 100%;
        box-sizing: border-box;
        text-align: center;
        border-radius: 0;
    }

    /* ---- toolbars, pills, week-item chrome (not weekboard grid) ---- */

    body:has(.cabinet-nav) .cabinet-toolbar,
    body:has(.cabinet-nav) .card > .weekboard-toolbar,
    body:has(.cabinet-nav) .js-staff-teacher-section > .weekboard-toolbar,
    body:has(.cabinet-nav) .js-staff-teacher-section > .cabinet-toolbar {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        width: 100%;
    }

    body:has(.cabinet-nav) .cabinet-toolbar .pill-row,
    body:has(.cabinet-nav) .weekboard-toolbar .pill-row,
    body:has(.cabinet-nav) .student-week-item .pill-row,
    body:has(.cabinet-nav) .card > .pill-row,
    body:has(.cabinet-nav) .card form.pill-row {
        display: flex;
        flex-wrap: wrap;
        width: 100%;
        gap: 8px;
    }

    body:has(.cabinet-nav) .cabinet-toolbar .pill-row .btn,
    body:has(.cabinet-nav) .student-week-item .pill-row .btn,
    body:has(.cabinet-nav) .card > .pill-row > .btn,
    body:has(.cabinet-nav) .card > .pill-row > a.btn,
    body:has(.cabinet-nav) .card form.pill-row > .btn,
    body:has(.cabinet-nav) .card form .pill-row > .btn,
    body:has(.cabinet-nav) .card form .pill-row > a.btn,
    body:has(.cabinet-nav) .card details .pill-row > .btn,
    body:has(.cabinet-nav) .card > p > .btn {
        width: 100%;
        text-align: center;
        box-sizing: border-box;
        border-radius: 0;
    }

    body:has(.cabinet-nav) .student-week-item {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
        padding: 14px 12px;
        border-radius: 0;
    }

    body:has(.cabinet-nav) .student-week-item > div {
        min-width: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    body:has(.cabinet-nav) .section-head {
        display: block;
        margin-bottom: 14px;
    }

    /* ---- forms in cabinet cards ---- */

    body:has(.cabinet-nav) .card form > label,
    body:has(.cabinet-nav) .card details form > label,
    body:has(.cabinet-nav) .card form > input,
    body:has(.cabinet-nav) .card form > textarea,
    body:has(.cabinet-nav) .card form > select,
    body:has(.cabinet-nav) .card details form > input,
    body:has(.cabinet-nav) .card details form > textarea,
    body:has(.cabinet-nav) .card details form > select {
        display: block;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    body:has(.cabinet-nav) .card .checkbox-row {
        display: flex;
        align-items: flex-start;
        gap: 8px;
        width: 100%;
        text-transform: none;
        letter-spacing: 0;
        white-space: normal;
    }

    body:has(.cabinet-nav) .card .checkbox-row input {
        width: auto;
        margin-top: 2px;
    }

    body:has(.cabinet-nav) .card details {
        min-width: 0;
        max-width: 100%;
    }

    body:has(.cabinet-nav) .card details summary {
        overflow-wrap: anywhere;
        cursor: pointer;
    }

    body:has(.cabinet-nav) #copy-reset {
        width: 100%;
        margin-top: 8px;
        border-radius: 0;
    }

    /* ---- staff chats list chrome (not weekboard grid) ---- */

    body:has(.cabinet-nav) .teacher-chat-card {
        max-width: 100%;
        min-width: 0;
        border-radius: 0;
    }

    body:has(.cabinet-nav) .teacher-chat-header {
        flex-wrap: wrap;
        align-items: flex-start;
        gap: 8px;
    }

    body:has(.cabinet-nav) .teacher-chat-header .pill-row,
    body:has(.cabinet-nav) .teacher-chat-header > div:last-of-type {
        width: 100%;
    }

    body:has(.cabinet-nav) .list > .teacher-chat-card .teacher-chat-form,
    body:has(.cabinet-nav) .js-staff-thread-form {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }

    body:has(.cabinet-nav) .list > .teacher-chat-card .teacher-chat-form textarea,
    body:has(.cabinet-nav) .js-staff-thread-form textarea,
    body:has(.cabinet-nav) .list > .teacher-chat-card .teacher-chat-form .btn,
    body:has(.cabinet-nav) .js-staff-thread-form .btn {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        border-radius: 0;
    }

    /* student / teacher / support chat page chrome around the widget */
    body:has(.cabinet-nav) .teacher-chat-shell--with-list {
        min-width: 0;
        max-width: 100%;
    }

    body:has(.cabinet-nav) .chat-list-item,
    body:has(.cabinet-nav) .chat-list-item-head,
    body:has(.cabinet-nav) .chat-list-preview,
    body:has(.cabinet-nav) .teacher-chat-title,
    body:has(.cabinet-nav) .teacher-chat-subtitle {
        min-width: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    body:has(.cabinet-nav) .tripi-student-cal .pill-row {
        align-items: flex-end;
    }

    body:has(.cabinet-nav) .tripi-student-cal .pill-row .btn,
    body:has(.cabinet-nav) .tripi-student-cal .pill-row label,
    body:has(.cabinet-nav) .tripi-student-cal .pill-row #stu-cal-title {
        flex: 1 1 100%;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    body:has(.cabinet-nav) .tripi-student-cal .pill-row #stu-cal-prev,
    body:has(.cabinet-nav) .tripi-student-cal .pill-row #stu-cal-next {
        flex: 1 1 calc(50% - 4px);
        width: auto;
    }

    body:has(.cabinet-nav) .tripi-student-cal .pill-row label input,
    body:has(.cabinet-nav) .tripi-student-cal .pill-row label select {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }

    body:has(.cabinet-nav) .tripi-student-cal-grid {
        max-width: 100%;
        overflow-x: auto;
    }

    /* home stats: stack label / count / action */
    body:has(.cabinet-nav) .cabinet-table--stack,
    body:has(.cabinet-nav) .cabinet-table--stack tbody,
    body:has(.cabinet-nav) .cabinet-table--stack tr,
    body:has(.cabinet-nav) .cabinet-table--stack td {
        display: block;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        text-align: left !important;
    }

    body:has(.cabinet-nav) .cabinet-table--stack {
        width: 100% !important;
        min-width: 0 !important;
    }

    body:has(.cabinet-nav) .cabinet-table--stack tr {
        padding: 12px 0;
        border-bottom: 1px solid var(--cabinet-border);
    }

    body:has(.cabinet-nav) .cabinet-table--stack tr:last-child {
        border-bottom: 0;
    }

    body:has(.cabinet-nav) .cabinet-table--stack td {
        padding: 2px 0;
        border: 0;
    }

    body:has(.cabinet-nav) .cabinet-table--stack td:last-child .btn {
        width: 100%;
        margin-top: 6px;
        text-align: center;
        border-radius: 0;
    }
}

@media (max-width: 430px) {
    body:has(.cabinet-nav) .cabinet-nav a {
        padding: 6px 6px 8px;
        font-size: 9px;
        letter-spacing: 0.03em;
    }

    body:has(.cabinet-nav) .cabinet-nav--staff {
        flex-direction: column;
        gap: 0;
    }

    body:has(.cabinet-nav) .card {
        padding: 14px 12px 16px;
    }

    body:has(.cabinet-nav) .cabinet-table-wrap .cabinet-table {
        font-size: 12px;
    }

    body:has(.cabinet-nav) .cabinet-table th,
    body:has(.cabinet-nav) .cabinet-table td {
        padding: 10px 10px 10px 0;
    }

    body:has(.cabinet-nav) .cabinet-table .btn,
    body:has(.cabinet-nav) .cabinet-table .btn-sm {
        white-space: normal;
    }
}
