* {
    box-sizing: border-box;
}

:root {

    --background: #121214;
    --surface: #18181b;
    --surface-hover: #1f1f23;
    --border: #2c2c31;

    --gold: #caa43b;
    --gold-light: #d9b24b;

    --text: #ffffff;
    --text-secondary: #a3a3aa;
    --text-muted: #707078;

    --success: #63d48d;
}

body {
    margin: 0;
    font-family: Inter, Arial, Helvetica, sans-serif;
    background: var(--background);
    color: var(--text);
    -webkit-font-smoothing: antialiased;
}

a{color:var(--gold)}
a:where(:link,:visited,:active){color:var(--gold)}
a:where(:hover,:focus-visible){color:var(--gold-light)}
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible{
    outline:2px solid var(--gold-light);outline-offset:2px}
button:disabled { opacity: .55; cursor: not-allowed; }
.curriculumExposureDonut{display:block;width:92px;height:92px;padding:0;
    border:0;border-radius:50%;background:transparent;cursor:pointer}
.curriculumExposureDonut svg{display:block;width:100%;height:100%;
    overflow:visible}
.curriculumExposureDonut:hover,.curriculumExposureDonut:focus-visible{
    transform:scale(1.04)}
.curriculumExposureDialog{width:min(560px,calc(100% - 28px));max-height:80vh;
    padding:24px;background:var(--surface);color:var(--text);
    border:1px solid var(--border);border-radius:16px}
.curriculumExposureDialog::backdrop{background:rgba(0,0,0,.76)}
.curriculumExposureDialogHeader{display:flex;align-items:center;
    justify-content:space-between;gap:18px}
.curriculumExposureDialogHeader h2{margin:0}
.curriculumExposureList{display:grid;margin:20px 0 0}
.curriculumExposureList div{display:flex;justify-content:space-between;
    gap:20px;padding:12px 0;border-top:1px solid var(--border)}
.curriculumExposureList dt{font-weight:700}
.curriculumExposureList dd{margin:0;color:var(--text-secondary);
    font-variant-numeric:tabular-nums}
@media (max-width: 760px) { .app{display:block}.sidebar{width:100%;padding:16px}.branding{margin-bottom:16px}.sidebar nav{display:grid;grid-template-columns:repeat(2,1fr)}.content{padding:16px}.pageHeader{gap:12px;flex-wrap:wrap}.card{padding:16px}.membershipFormGrid{grid-template-columns:1fr!important}.calendarGrid{overflow-x:auto}.overviewGrid{grid-template-columns:1fr 1fr!important} }
.messageAdminLayout{display:grid;grid-template-columns:minmax(260px,34%) 1fr;gap:20px;margin-top:20px}.messageAdminLayout .membershipRecord{width:100%;text-align:left}.portalMessages{display:grid;gap:10px;max-height:520px;overflow:auto}.portalMessage{padding:12px;border-radius:8px;background:#272727}.portalMessage.person{border-left:4px solid #c99b35}.portalMessage.system_notice,.portalMessage.announcement{border-left:4px solid #7aa7ff}.portalMessage small{display:block;margin-top:6px;color:#bbb}.portalBadge{display:inline-block;padding:2px 7px;border-radius:999px;background:#c99b35;color:#111}@media(max-width:760px){.messageAdminLayout{grid-template-columns:1fr}}

.app {
    display: flex;
    min-height: 100vh;
}

/* ==========================================
   SIDEBAR
========================================== */

.sidebar {

    width: 255px;

    background: linear-gradient(
        180deg,
        #141417 0%,
        #101012 100%
    );

    border-right: 1px solid var(--border);

    padding: 36px 22px;

}

.branding {

    display: flex;

    flex-direction: column;

    align-items: center;

    margin-bottom: 44px;

}

.logoImage {

    width: 175px;

    margin-bottom: 26px;

}

.logoTitle {

    font-size: 23px;

    font-weight: 700;

    letter-spacing: .4px;

}

/* ==========================================
   NAVIGATION
========================================== */

.sidebar nav {

    display: flex;

    flex-direction: column;

    gap: 8px;

}

.navButton {

    width: 100%;

    background: transparent;

    border: none;

    color: var(--text-secondary);

    text-align: left;

    padding: 15px 18px;

    border-radius: 12px;

    font-size: 15px;

    font-weight: 500;

    cursor: pointer;

    transition: .18s ease;

}

.navButton:hover {

    background: rgba(255,255,255,.05);

    color: white;

    transform: translateX(4px);

}

.navButton.active {

    background: rgba(202,164,59,.16);

    color: var(--gold);

    font-weight: 700;

}

/* ==========================================
   MAIN
========================================== */

.content {

    flex: 1;

    padding: 72px 64px;

}

.card {

    background: transparent;

    border: none;

    padding: 0;

}

/* ==========================================
   TOOLBAR
========================================== */

.toolbar {

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 24px;

    margin-bottom: 42px;

}

.toolbarActions,
.rowActions {

    display: flex;

    align-items: center;

    gap: 12px;

}

#peopleViewTitle {

    margin: 0 0 24px;

    font-size: 34px;

}

#searchPeople {

    flex: 1;

    background: var(--surface);

    color: white;

    border: 1px solid var(--border);

    border-radius: 14px;

    padding: 18px 20px;

    font-size: 16px;

    transition: .18s;

}

#searchPeople:focus {

    outline: none;

    border-color: var(--gold);

    box-shadow: 0 0 0 5px rgba(202,164,59,.15);

}

#searchPeople::placeholder {

    color: var(--text-muted);

}

/* ==========================================
   BUTTONS
========================================== */

#showAddPersonButton,
#addPersonButton,
#confirmRestorePersonButton,
.primaryButton,
.rowActions button:not(.secondaryButton) {

    background: var(--gold);

    color: white;

    border: none;

    border-radius: 14px;

    padding: 16px 24px;

    font-size: 15px;

    font-weight: 700;

    cursor: pointer;

    transition: .18s;

}

#showAddPersonButton:hover,
#addPersonButton:hover,
#confirmRestorePersonButton:hover,
.primaryButton:hover,
.rowActions button:not(.secondaryButton):hover {

    transform: translateY(-2px);

    box-shadow: 0 10px 28px rgba(202,164,59,.22);

}
#curriculumPdf::file-selector-button{
    margin-right:12px;padding:10px 16px;border:0;border-radius:10px;
    background:var(--gold);color:#fff;font:700 14px/1.2 Inter,Arial,sans-serif;
    cursor:pointer
}
#curriculumPdf::file-selector-button:hover{background:var(--gold-light)}

.archivedDate {

    margin-top: 8px;

    color: var(--text-muted);

    font-size: 13px;

}

/* ==========================================
   FORM
========================================== */

.form {

    display: flex;

    flex-direction: column;

    gap: 14px;

    margin-top: 28px;

}

.form label {

    color: white;

    font-weight: 500;

}

.form input {

    background: var(--surface);

    color: white;

    border: 1px solid var(--border);

    border-radius: 12px;

    padding: 15px;

    font-size: 15px;

}

.form input:focus {

    outline: none;

    border-color: var(--gold);

}

/* ==========================================
   PEOPLE LIST
========================================== */

ul {

    list-style: none;

    margin: 0;

    padding: 0;

}

li {

    display: flex;

    justify-content: space-between;

    align-items: center;

    padding: 26px 8px;

    border-bottom: 1px solid rgba(255,255,255,.05);

    transition: .18s;

}

li:hover {

    background: rgba(255,255,255,.025);

    padding-left: 20px;

}

.name {

    font-size: 22px;

    font-weight: 650;

    letter-spacing: -.4px;

}

/* ==========================================
   STATUS
========================================== */

.statusBadge {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    padding: 8px 16px;

    border-radius: 999px;

    font-size: 12px;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: .8px;

}

.status-active {

    background: rgba(41,171,92,.14);

    color: var(--success);

}

.status-prospect {

    background: rgba(202,164,59,.14);

    color: var(--gold-light);

}

.status-inactive {

    background: rgba(255,255,255,.08);

    color: #9b9b9b;

}

hr {

    display: none;

}
/* ==========================================
   PERSON PAGE
========================================== */

.personHero {

    display: flex;

    justify-content: space-between;

    align-items: flex-end;

    margin-bottom: 52px;

    padding-bottom: 26px;

    border-bottom: 1px solid rgba(255,255,255,.05);

}

.personHero h1 {

    margin: 0;

    font-size: 56px;

    font-weight: 750;

    letter-spacing: -2px;

    line-height: 1;

}

.personActions {

    display: flex;

    align-items: center;

    gap: 14px;

}

.secondaryButton,
#savePersonButton,
.dangerButton {

    border-radius: 12px;

    padding: 12px 20px;

    font-size: 14px;

    font-weight: 700;

    cursor: pointer;

}

.dangerButton {

    background: rgba(204, 64, 64, .12);

    color: #ff8f8f;

    border: 1px solid rgba(255, 105, 105, .3);

}

.dangerButton:hover {

    background: rgba(204, 64, 64, .2);

    border-color: #ff8f8f;

}

.dangerButton:disabled {

    cursor: wait;

    opacity: .65;

}

.secondaryButton {

    background: transparent;

    color: var(--text);

    border: 1px solid var(--border);

}

.secondaryButton:hover {

    border-color: var(--gold);

    color: var(--gold-light);

    background: rgba(202,164,59,.08);

    transform: translateY(-1px);

}

.editPersonForm {

    background: linear-gradient(
        180deg,
        #18181b,
        #161619
    );

    border: 1px solid rgba(255,255,255,.05);

    border-radius: 18px;

    padding: 32px;

    margin-bottom: 32px;

}

.editPersonForm[hidden],
#personReadView[hidden] {

    display: none;

}

.editPersonForm h2 {

    margin: 0 0 28px;

    font-size: 22px;

}

.editPersonGrid {

    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 22px;

}

.editPersonGrid label {

    display: flex;

    flex-direction: column;

    gap: 10px;

    color: var(--text-secondary);

    font-size: 14px;

    font-weight: 600;

}

.editPersonGrid input {

    width: 100%;

    background: var(--surface);

    color: var(--text);

    border: 1px solid var(--border);

    border-radius: 12px;

    padding: 15px;

    font-size: 15px;

}

.editPersonGrid input:focus {

    outline: none;

    border-color: var(--gold);

    box-shadow: 0 0 0 4px rgba(202,164,59,.12);

}

.formActions {

    display: flex;

    gap: 12px;

    margin-top: 28px;

}

#savePersonButton {

    background: var(--gold);

    color: white;

    border: none;

}

#savePersonButton:disabled {

    cursor: wait;

    opacity: .65;

}

.formError {

    margin-top: 20px;

    color: #ff8f8f;

    font-size: 14px;

}

.confirmDialog {

    width: min(460px, calc(100% - 40px));

    background: var(--surface);

    color: var(--text);

    border: 1px solid var(--border);

    border-radius: 18px;

    padding: 30px;

    box-shadow: 0 24px 80px rgba(0,0,0,.55);

}

.confirmDialog::backdrop {

    background: rgba(0,0,0,.72);

}

.confirmDialog h2 {

    margin: 0 0 14px;

}

.confirmDialog p {

    margin: 0;

    color: var(--text-secondary);

    line-height: 1.6;

}

/* ==========================================
   OVERVIEW
========================================== */

.overviewGrid {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(220px,1fr));

    gap: 22px;

    margin-bottom: 56px;

}

.overviewCard {

    position: relative;

    overflow: hidden;

    background: linear-gradient(
        180deg,
        #1b1b1f 0%,
        #17171a 100%
    );

    border: 1px solid rgba(255,255,255,.05);

    border-radius: 18px;

    padding: 24px;

    min-height: 170px;

    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;

}

.overviewCard::before {

    content: "";

    position: absolute;

    left: 0;

    top: 0;

    width: 100%;

    height: 3px;

    background: linear-gradient(
        90deg,
        var(--gold),
        transparent
    );

    opacity: 0;

    transition: .18s;

}

.overviewCard:hover {

    transform: translateY(-4px);

    border-color: rgba(202,164,59,.30);

    box-shadow: 0 16px 40px rgba(0,0,0,.28);

}

.overviewCard:hover::before {

    opacity: 1;

}

.overviewCard:link,.overviewCard:visited{color:inherit;text-decoration:none}
.staticOverviewCard:hover{transform:none;border-color:rgba(255,255,255,.05);
    box-shadow:none}
.staticOverviewCard:hover::before{opacity:0}
.attendanceFilters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:28px}
.attendanceFilters .active{border-color:rgba(202,164,59,.55);
    background:rgba(202,164,59,.14);color:var(--gold-light)}
.attendanceMetricGrid{margin-bottom:28px}
.curriculumProgressGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;margin-top:18px}
.curriculumProgressCard{display:flex;align-items:center;gap:22px;padding:22px;
    border:1px solid var(--border);border-radius:14px;background:#101012}
.curriculumProgressCard h3{margin:0 0 6px;color:var(--text)}
.curriculumProgressCard p{margin:0;color:var(--text-secondary)}
.curriculumDonut{display:grid;place-items:center;flex:0 0 118px;width:118px;
    height:118px;border-radius:50%;background:conic-gradient(
    var(--gold) var(--progress),#29292d 0);position:relative}
.curriculumDonut::after{content:"";position:absolute;inset:13px;
    border-radius:50%;background:#101012}
.curriculumDonut strong{position:relative;z-index:1;color:var(--text);
    font-size:1.25rem}
@media(max-width:700px){
    .curriculumProgressGrid{grid-template-columns:1fr}
    .curriculumProgressCard{align-items:flex-start;flex-direction:column}
}

.overviewLabel {

    color: var(--text-muted);

    font-size: 11px;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 1.4px;

    margin-bottom: 18px;

}

.overviewValue {

    font-size: 34px;

    font-weight: 750;

    letter-spacing: -1px;

    color: white;

    line-height: 1.05;

    margin-bottom: 10px;

}

.overviewSubtext {

    color: var(--text-secondary);

    font-size: 14px;

    line-height: 1.5;

}

.personTabs {
    display: flex;
    gap: 10px;
    margin: 0 0 26px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255,255,255,.06);
}

.personTab {
    background: transparent;
    color: var(--text-secondary);
    border: 1px solid transparent;
    border-radius: 12px;
    padding: 11px 18px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: .18s;
}

.personTab:hover {
    color: var(--text);
    background: rgba(255,255,255,.04);
}

.personTab.active {
    color: var(--gold-light);
    background: rgba(202,164,59,.12);
    border-color: rgba(202,164,59,.3);
}

.billingStoredMethod {
    padding: 14px 16px;
    color: var(--text-secondary);
    background: var(--background);
    border: 1px solid var(--border);
    border-radius: 10px;
}

.billingStoredMethod strong {
    color: var(--text);
}

.stripeCardElement {
    display: block;
    width: 100%;
    min-height: 46px;
    padding: 14px 13px;
    background: var(--background);
    border: 1px solid var(--border);
    border-radius: 10px;
    transition: .18s;
}

.stripeCardElement.StripeElement--focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 4px rgba(202,164,59,.12);
}

.stripeCardElement.StripeElement--invalid {
    border-color: #ff8f8f;
}

/* ==========================================
   INFORMATION SECTIONS
========================================== */

.cardSection {

    background: linear-gradient(
        180deg,
        #18181b,
        #161619
    );

    border: 1px solid rgba(255,255,255,.05);

    border-radius: 18px;

    padding: 32px;

    margin-bottom: 26px;

    transition: .18s;

}

.cardSection:hover {

    border-color: rgba(255,255,255,.08);

}

.cardSection h2 {

    margin: 0 0 28px;

    font-size: 18px;

    font-weight: 700;

    letter-spacing: -.3px;

}

.cardSection p {

    display: flex;

    justify-content: space-between;

    align-items: center;

    margin: 0;

    padding: 16px 0;

    border-bottom: 1px solid rgba(255,255,255,.05);

    font-size: 15px;

    color: var(--text-secondary);

}

.cardSection p:last-child {

    border-bottom: none;

}

.cardSection strong {

    color: white;

    font-weight: 600;

}

.personTimeline {

    display: flex;

    flex-direction: column;

}

.sectionHeader,
.membershipRecordHeader {

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 20px;

}

.sectionHeader {

    margin-bottom: 28px;

}

.sectionHeader h2,
.membershipRecordHeader h3 {

    margin: 0;

}

.paymentActions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.paymentActions button {
    white-space: nowrap;
}

.calendarHero{display:flex;align-items:flex-end;justify-content:space-between;
 gap:20px;padding-bottom:28px;border-bottom:1px solid #2d291d}
.calendarHero h1{margin:4px 0 0;font-size:clamp(2.8rem,5vw,5.4rem);
 line-height:.9;letter-spacing:-.055em;text-transform:uppercase}
.calendarEyebrow{color:#d4af37;font-size:.7rem;font-weight:800;
 letter-spacing:.2em;text-transform:uppercase}
.calendarToolbar{display:grid;grid-template-columns:1fr auto 1fr;
 align-items:center;gap:24px;margin:28px 0}
.calendarNavigation,.calendarViews{display:flex;align-items:center;gap:8px}
.calendarViews{justify-content:flex-end}
.calendarArrow{display:grid;place-items:center;width:42px;height:42px;padding:0;
 border:1px solid #333;border-radius:50%;background:#111;color:#eee;
 font-size:1.15rem}
.calendarPeriod{text-align:center}
.calendarPeriod h2{margin:0;color:#fff;font-size:1.15rem;letter-spacing:.13em;
 text-transform:uppercase}
.calendarPeriod span{display:block;margin-top:5px;color:#777;font-size:.75rem}
.calendarViews .active{border-color:#a88728;background:#332b18;color:#d4af37}
.calendarSurface{width:100%;min-width:0;margin-inline:auto}
.calendarGrid{display:grid;width:100%;min-width:0;overflow-x:auto}
.curriculumApplicability{display:flex;align-items:center;gap:28px;margin:0;
 padding:12px 14px;border:1px solid var(--border);border-radius:8px}
.curriculumApplicability legend{padding:0 6px;color:var(--text-secondary);
 font-size:.78rem;font-weight:700}
.curriculumApplicability label{display:flex;align-items:center;gap:8px;
 min-width:92px;margin:0}
.curriculumOperationalGroup+.curriculumOperationalGroup{
    margin-top:32px;padding-top:32px;border-top:1px solid var(--border)
}
.curriculumOperationalGroup>h3{margin:0 0 18px;color:var(--gold);
 font-size:1rem;letter-spacing:.04em}
.curriculumArchivedToggle{display:flex;align-items:center;gap:10px;
 margin:0 0 20px;color:var(--text-secondary);font-size:.9rem}
.curriculumArchive{display:grid;gap:12px}
.curriculumArchiveYear{border:1px solid var(--border);border-radius:12px;
 background:var(--background)}
.curriculumArchiveYear>summary{padding:18px 20px;color:var(--gold);
 cursor:pointer;font-size:1.05rem;font-weight:800;list-style-position:inside}
.curriculumArchiveYear[open]>summary{border-bottom:1px solid var(--border)}
.curriculumArchiveYearContent{padding:8px 20px 20px}
.curriculumArchiveMonth{padding-top:20px}
.curriculumArchiveMonth h4{margin:0 0 10px;color:var(--text);
 font-size:.9rem;text-transform:uppercase;letter-spacing:.08em}
.curriculumArchiveRecord{display:grid;grid-template-columns:minmax(0,1fr) auto;
 gap:8px 24px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.curriculumArchiveRecord:last-child{border-bottom:0}
.curriculumArchiveRecord>div:first-child{display:flex;align-items:baseline;
 flex-wrap:wrap;gap:10px}
.curriculumArchiveRecord>div:first-child span,
.curriculumArchiveRecord>span{color:var(--text-secondary);font-size:.88rem}
.curriculumArchiveRecord .rowActions{grid-column:1/-1}
.curriculumManagementDialog form{display:grid;gap:22px}
.curriculumDialogField{display:flex;flex-direction:column;gap:9px;
 color:var(--text-secondary);font-size:14px;font-weight:600}
.curriculumDialogField input{width:100%;padding:13px;background:var(--background);
 color:var(--text);border:1px solid var(--border);border-radius:10px;font:inherit}
@media(max-width:760px){
    .curriculumArchiveRecord{grid-template-columns:1fr}
    .curriculumArchiveRecord .rowActions{grid-column:1}
}
.calendarWeek,.calendarMonth{grid-template-columns:repeat(7,minmax(150px,1fr));
 border:1px solid #292929;background:#111}
@media (min-width:901px){
    .calendarWeek,.calendarMonth{
        grid-template-columns:repeat(7,minmax(0,1fr));
        overflow-x:visible
    }
}
.academyCalendarDay{min-height:560px;border-right:1px solid #292929;
 background:#111}
.academyCalendarDay:last-child{border-right:0}
.academyCalendarDay>header{position:relative;display:flex;align-items:baseline;
 gap:8px;min-height:76px;padding:18px;border-bottom:1px solid #292929}
.academyCalendarDay>header span{color:#777;font-size:.69rem;font-weight:800;
 letter-spacing:.13em;text-transform:uppercase}
.academyCalendarDay>header strong{color:#eee;font-size:1.55rem}
.academyCalendarDay>header b{position:absolute;right:12px;top:12px;color:#d4af37;
 font-size:.55rem;letter-spacing:.12em;text-transform:uppercase}
.calendarToday{background:linear-gradient(180deg,rgba(212,175,55,.08),#111 30%)}
.calendarToday>header{border-top:3px solid #d4af37}
.calendarToday>header strong{color:#d4af37}
.academyDayClasses{display:grid;gap:10px;padding:10px}
.calendarDayQuiet{display:block;margin:18px;color:#4f4f4f}
.academyClassTile{position:relative;display:grid;gap:10px;padding:16px 14px;
 overflow:hidden;border:1px solid #2d2d2d;border-left:3px solid #d4af37;
 border-radius:2px;background:#171717;color:#fff;text-decoration:none;
 transition:border-color .18s ease,background .18s ease,transform .18s ease}
.academyClassTile:hover{background:#1c1c1c;border-color:#5a4c25;
 transform:translateY(-1px)}
.academyClassTile time{color:#fff;font-size:1.35rem;font-weight:800;
 letter-spacing:-.03em}
.academyClassIdentity h3{margin:0;color:#fff;font-size:1.05rem;
 line-height:1.05}
.trainingType{display:block;margin-top:8px;color:#d4af37;font-size:.63rem;
 font-weight:900;letter-spacing:.16em}
.multipleInstructors{display:block;margin-top:7px;color:#828282;font-size:.67rem}
.academyClassBookings{display:grid;gap:2px;padding-top:8px;
 border-top:1px solid #292929}
.academyClassBookings strong{color:#fff;font-size:1rem;letter-spacing:.04em}
.academyClassBookings span{color:#686868;font-size:.65rem}
.classOperationalStatus{width:max-content;margin-top:2px;padding:5px 7px;
 border:1px solid #393939;color:#999;font-size:.55rem;font-weight:900;
 letter-spacing:.1em;text-transform:uppercase}
.accent-gi{border-left-color:#d4af37}
.accent-nogi{border-left-color:#b8b8b8}
.accent-nogi .trainingType{color:#d2d2d2}
.accent-open{border-left-color:#4b7896}
.accent-open .trainingType{color:#78a6c4}
.status-confirmed .classOperationalStatus{border-color:#315d42;color:#72c48d}
.status-attention .classOperationalStatus{border-color:#80601d;color:#e4b94f}
.accent-cancelled{border-left-color:#8d3838;opacity:.68}
.accent-cancelled .classOperationalStatus{border-color:#723636;color:#d77777}
.accent-cancelled h3{text-decoration:line-through}
.calendarMonth .academyCalendarDay{min-height:310px}
.calendarMonth .academyCalendarDay>header{min-height:58px;padding:12px}
.calendarMonth .academyDayClasses{padding:7px;gap:7px}
.calendarMonth .academyClassTile{gap:6px;padding:10px}
.calendarMonth .academyClassTile time{font-size:1rem}
.calendarMonth .academyClassIdentity h3{font-size:.82rem}
.calendarMonth .academyClassBookings strong{font-size:.76rem}
.calendarMonth .academyClassBookings span,
.calendarMonth .multipleInstructors{display:none}
.calendarMonth .classOperationalStatus{font-size:.48rem}
.calendarTodayTimeline{display:block;max-width:980px;margin:0 auto}
.todayTimelineHeading{display:flex;align-items:baseline;gap:18px;
 padding:22px 0;border-bottom:1px solid #3d3420}
.todayTimelineHeading span{color:#d4af37;font-size:2.1rem;font-weight:900;
 letter-spacing:-.04em;text-transform:uppercase}
.todayTimelineHeading strong{color:#858585;font-size:.8rem;font-weight:600}
.todayTimeline{display:grid}
.timelineClass{grid-template-columns:110px minmax(220px,1fr) 160px auto;
 align-items:center;gap:24px;padding:25px 18px;border-width:0 0 1px 3px;
 background:transparent}
.timelineClass time{font-size:1.8rem}
.timelineClass .academyClassBookings{padding:0;border:0}
.timelineClass .classOperationalStatus{justify-self:end}

.weekdayOptions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.weekdayOptions label {
    display: flex;
    align-items: center;
    gap: 4px;
}

.invoiceLineRow {
    padding: 12px 0;
    border-bottom: 1px solid #dedede;
}

@media (max-width: 900px) {
    .calendarToolbar{grid-template-columns:1fr 1fr}
    .calendarPeriod{grid-column:1/-1;grid-row:1}
    .calendarViews{justify-content:flex-end}
    .calendarWeek,.calendarMonth{grid-template-columns:repeat(7,minmax(210px,1fr))}
    .timelineClass{grid-template-columns:82px 1fr;gap:14px}
    .timelineClass .academyClassBookings,.timelineClass .classOperationalStatus{
        grid-column:2;justify-self:start}
}
@media (max-width:600px){
    .calendarHero{align-items:flex-start;flex-direction:column}
    .calendarToolbar{grid-template-columns:1fr}
    .calendarPeriod{grid-column:auto;grid-row:auto;order:-1}
    .calendarNavigation,.calendarViews{justify-content:center}
    .todayTimelineHeading{align-items:flex-start;flex-direction:column;gap:4px}
}

#createMembershipButton,
#saveMembershipButton,
#recordPromotionButton,
#savePromotionButton,
#signWaiverButton,
#saveWaiverButton {

    background: var(--gold);

    color: white;

    border: none;

    border-radius: 12px;

    padding: 12px 18px;

    font-size: 14px;

    font-weight: 700;

    cursor: pointer;

}

.sectionStatus {

    margin-top: 8px;

    color: var(--text-secondary);

    font-size: 14px;

}

.waiverRecord {

    padding: 20px 0;

    border-bottom: 1px solid rgba(255,255,255,.05);

}

.waiverRecord:last-child {

    border-bottom: none;

}

.waiverVersion {

    color: var(--text);

    font-size: 16px;

    font-weight: 650;

}

.waiverDetail,
.waiverEvidence {

    margin-top: 7px;

    color: var(--text-secondary);

    font-size: 14px;

}

.waiverEvidence {

    color: var(--text-muted);

    overflow-wrap: anywhere;

}

.waiverDialog {

    width: min(620px, calc(100% - 40px));

}

.promotionRecord {

    padding: 20px 0;

    border-bottom: 1px solid rgba(255,255,255,.05);

}

.promotionRecord:last-child {

    border-bottom: none;

}

.promotionRanks {

    color: var(--text);

    font-size: 17px;

    font-weight: 650;

}

.promotionDetail,
.promotionNotes,
.dialogContext {

    color: var(--text-secondary);

    font-size: 14px;

}

.promotionDetail {

    margin-top: 7px;

}

.promotionNotes {

    display: block !important;

    margin-top: 12px !important;

    padding: 0 !important;

    border: none !important;

}

.promotionDialog {

    width: min(680px, calc(100% - 40px));

}

.dialogContext {

    justify-content: flex-start !important;

    gap: 6px;

    margin: 0 0 24px !important;

    padding: 0 !important;

    border: none !important;

}

.membershipRecord {

    padding: 24px 0;

    border-top: 1px solid rgba(255,255,255,.05);

}

.attendanceRecord {

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 24px;

    padding: 18px 0;

    border-bottom: 1px solid rgba(255,255,255,.05);

}

.attendanceRecord:last-child {

    border-bottom: none;

}

.attendanceClassName {

    color: var(--text);

    font-weight: 600;

}

.attendanceDetail,
.attendanceDate {

    color: var(--text-secondary);

    font-size: 14px;

}

.attendanceDetail {

    margin-top: 6px;

}

.attendanceDate {

    text-align: right;

}

.membershipRecord:first-child {

    padding-top: 0;

    border-top: none;

}

/* Promotion Review — individual decision support */
.gradingPage{display:grid;gap:24px}
.gradingQuestion{margin:8px 0 0;color:var(--text-secondary);font-size:1.05rem}
.gradingReviewsSection,.gradingHistorySection{padding:30px}
.gradingReviewList{display:grid;gap:18px;margin-top:22px}
.gradingReviewCard{padding:26px;border:1px solid rgba(255,255,255,.09);
    border-radius:14px;background:linear-gradient(145deg,
    rgba(255,255,255,.035),rgba(255,255,255,.012));cursor:pointer;
    transition:border-color .18s ease,background .18s ease}
.gradingReviewCard:hover,.gradingReviewCard:focus-visible{
    border-color:rgba(202,164,59,.55);background:var(--surface-hover)}
.gradingReviewCard:focus-visible{outline:2px solid var(--gold-light);
    outline-offset:3px}
.gradingReviewHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.gradingReviewHeader h3{margin:5px 0 0;font-size:1.55rem}
.gradingRank{margin:0;color:#caa43b;font-size:.72rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase}
.gradingDecision{display:inline-flex;align-items:center;min-height:36px;padding:8px 13px;border:1px solid;border-radius:999px;font-size:.68rem;font-weight:800;letter-spacing:.09em;text-align:center}
.gradingDecisionPromoted{border-color:rgba(79,190,120,.5);background:rgba(79,190,120,.12);color:#74d498}
.gradingDecisionReady{border-color:rgba(202,164,59,.55);background:rgba(202,164,59,.12);color:#e1bd58}
.gradingDecisionNotYet{border-color:rgba(196,143,69,.45);background:rgba(196,143,69,.09);color:#d7a45f}
.gradingDecisionIneligible{border-color:rgba(255,255,255,.13);background:rgba(255,255,255,.04);color:#aaa}
.gradingEvidence{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0}
.gradingFact{display:grid;gap:5px;padding:17px 18px;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:rgba(0,0,0,.16)}
.gradingFact span{color:#999;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.gradingFact strong{font-size:1.35rem;color:#fff}
.gradingFact small,.gradingCriterion small{color:#888}
.gradingCriteria{display:grid;gap:10px;padding-top:4px}
.gradingCriterion{display:flex;align-items:center;gap:13px;min-height:52px;padding:12px 15px;border-left:2px solid rgba(255,255,255,.08);background:rgba(255,255,255,.018)}
.gradingCriterion>div{display:grid;gap:3px}
.gradingMark{display:grid;place-items:center;width:25px;height:25px;flex:0 0 25px;border-radius:50%;font-weight:900}
.gradingMet{background:rgba(79,190,120,.13);color:#74d498}
.gradingUnmet{background:rgba(191,82,82,.13);color:#e07b7b}
.gradingUnknown{color:#888}
.gradingPolicyNotice{margin:16px 0 0;padding:12px 15px;border-left:2px solid #caa43b;background:rgba(202,164,59,.06);color:#aaa}
.gradingReviewActions{display:flex;justify-content:flex-end;margin-top:20px}
.gradingReviewSection{margin-top:26px;padding-top:24px;border-top:1px solid rgba(255,255,255,.07)}
.gradingReviewSection h4{margin:16px 0 10px;color:#fff;font-size:1.05rem}
.gradingStandardText,.gradingStandardUnavailable{margin:0;padding:18px;border-left:2px solid #caa43b;background:rgba(202,164,59,.045);color:#c5c5c5;line-height:1.65}
.gradingStandardUnavailable{color:#999}
.gradingDecisionForm{margin-top:24px}
.gradingDecisionForm>fieldset{display:grid;gap:22px;margin:0;padding:0;border:0}
.gradingDecisionForm>fieldset>legend,.gradingDecisionChoices>legend{margin-bottom:14px;color:#fff;font-size:1rem;font-weight:700}
.gradingCultureGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.gradingCultureCheck,.gradingDecisionChoices label{display:flex;align-items:center;gap:11px;padding:13px 14px;border:1px solid rgba(255,255,255,.08);border-radius:9px;background:rgba(255,255,255,.018);color:#ddd}
.gradingCultureCheck input,.gradingDecisionChoices input{width:19px;height:19px;accent-color:#caa43b}
.gradingNotes{display:grid;gap:9px;color:#ddd;font-weight:650}
.gradingNotes textarea{min-height:112px}
.gradingDecisionChoices{display:flex;gap:10px;margin:0;padding:0;border:0}
.gradingDecisionChoices label{min-width:150px}
.gradingDecisionForm button{justify-self:start}
.gradingHistorySection #history{margin-top:16px}
.gradingHistorySection #history p{padding:13px 0;margin:0;border-top:1px solid rgba(255,255,255,.06)}
.navButton{position:relative}
.navBadge{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:auto;padding:0 6px;border-radius:999px;background:#caa43b;color:#080808;font-size:.68rem;font-weight:850}
.navBadge[hidden]{display:none}
.professorInbox{max-width:1180px;margin:0 auto;padding:0;overflow:hidden}
.inboxHeader{padding:38px 42px 28px;border-bottom:1px solid rgba(202,164,59,.28)}
.inboxHeader h1{margin:7px 0 4px;color:#f3f0e8;font-size:clamp(2rem,4vw,3.35rem);
    letter-spacing:-.035em}
.inboxHeader p{margin:0;color:#96938b;font-size:1rem}
.inboxFilters{display:grid;grid-template-columns:1.3fr 1fr .8fr;gap:18px;
    padding:24px 42px;border-bottom:1px solid rgba(255,255,255,.07);
    background:rgba(255,255,255,.018)}
.inboxFilters label{display:grid;gap:8px;color:#b9b5aa;font-size:.72rem;
    font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.inboxFilters select{width:100%;min-height:48px;padding:0 14px;border:1px solid
    rgba(202,164,59,.32);border-radius:8px;background:#101010;color:#eee;
    font:inherit;font-size:.9rem;letter-spacing:0;text-transform:none}
#inboxContent{padding:30px 42px 42px}
.inboxList,.inboxSummaryList{display:grid;gap:12px}
.inboxItem,.inboxSummaryItem{position:relative;display:grid;
    grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:18px;
    padding:20px;border:1px solid rgba(255,255,255,.08);border-left:3px solid
    #82785b;border-radius:10px;background:rgba(255,255,255,.018)}
.inboxPriority-critical{border-left-color:#bd4b43}
.inboxPriority-important{border-left-color:#caa43b}
.inboxPriority-routine{border-left-color:#8f8b7f}
.inboxPriority-information{border-left-color:#625f58}
.inboxEventIcon{display:grid;place-items:center;width:42px;height:42px;
    border:1px solid rgba(202,164,59,.5);border-radius:50%;color:#d8bb61;
    font-size:.9rem;font-weight:900}
.inboxItemMeta{display:flex;align-items:center;gap:10px;margin-bottom:6px;
    color:#817e76;font-size:.7rem;font-weight:700;letter-spacing:.08em;
    text-transform:uppercase}
.inboxItemMeta time{margin-left:auto}
.inboxPriorityLabel{color:#c9aa50;text-transform:capitalize}
.inboxItem h2,.inboxSummaryItem h3{margin:0;color:#f0eee8;font-size:1.06rem}
.inboxItem p,.inboxSummaryItem p{margin:6px 0;color:#aaa69d;line-height:1.45}
.inboxPerson{display:block;margin-top:5px;color:#ded9cc}
.inboxWorkflowState{display:inline-block;margin-top:5px;color:#aaa69d;
    font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.inboxSummaryItem{padding:17px 18px}
.inboxSummaryItem>div>span{display:block;margin-bottom:4px;font-size:.68rem;
    font-weight:800;letter-spacing:.1em}
.inboxSummaryItem time{color:#77736b;font-size:.74rem}
.inboxEmpty{padding:55px 20px;text-align:center}
.inboxEmpty h2{margin:0 0 8px;color:#eee}
.inboxEmpty p{margin:0 auto 20px;color:#99958d}
@media(max-width:760px){
    .inboxHeader,.inboxFilters,#inboxContent{padding-left:22px;padding-right:22px}
    .inboxFilters{grid-template-columns:1fr}
    .inboxItem,.inboxSummaryItem{grid-template-columns:42px minmax(0,1fr)}
    .inboxItem>a,.inboxSummaryItem>a{grid-column:2;justify-self:start}
    .inboxItemMeta{flex-wrap:wrap}
    .inboxItemMeta time{width:100%;margin-left:0}
}

/* Academy operating workflow */
.sidebar{height:100vh;position:sticky;top:0;padding:24px 18px;overflow:hidden}
.branding{margin-bottom:22px}
.logoImage{width:132px;margin-bottom:14px}
.logoTitle{font-size:19px}
.sidebar nav{gap:5px}
.navButton{display:flex;align-items:center;gap:10px;min-height:42px;
    padding:10px 13px;border-radius:9px;color:var(--text-secondary);
    font-size:14px;text-decoration:none}
.navButton>span:first-child{flex:1}
.navButton:hover{transform:none}
.navGroup{margin:0}
.navGroup>summary{list-style:none}
.navGroup>summary::-webkit-details-marker{display:none}
.navChevron{flex:0!important;width:16px;color:#68655e;text-align:center;
    transition:transform .18s ease}
.navGroup[open] .navChevron{transform:rotate(180deg)}
.navSubmenu{display:grid;gap:2px;margin:3px 0 5px;padding-left:12px;
    border-left:1px solid rgba(202,164,59,.2)}
.navSubmenu .navButton{min-height:32px;padding:6px 11px;color:#85827a;
    font-size:12px}
.navSubmenu .navButton.active{background:transparent;color:var(--gold)}
.professorDashboard{max-width:1180px;margin:0 auto}
#dashboardContent{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;margin-top:30px}
.academyStateSection{padding:25px;background:rgba(15,15,15,.82);
    border:1px solid #292929;border-radius:14px}
.academyStateSection:first-child{grid-column:1/-1}
.academyStateSection>header{display:flex;align-items:center;
    justify-content:space-between;margin-bottom:14px}
.academyStateSection h2{margin:0;color:#eee;font-size:.74rem;
    font-weight:850;letter-spacing:.17em;text-transform:uppercase}
.academyStateSection header a{color:#9c873f;font-size:.68rem;font-weight:800;
    letter-spacing:.08em;text-decoration:none;text-transform:uppercase}
.academyStateMetrics{display:grid;gap:1px;background:#282828;
    border:1px solid #282828;border-radius:9px;overflow:hidden}
.academyStateSection:first-child .academyStateMetrics{
    grid-template-columns:repeat(3,minmax(0,1fr))}
.academyStateMetric{display:grid;grid-template-columns:auto 1fr auto;
    align-items:center;gap:13px;min-height:72px;padding:15px 17px;
    color:#aaa;background:#101010;text-decoration:none}
.academyStateMetric:hover{background:#14130f}
.academyStateMetric strong{min-width:34px;color:#d4af37;font-size:1.65rem}
.academyStateMetric span{font-size:.86rem;line-height:1.3}
.academyStateMetric b{color:#5f5c54;font-size:1rem}
.academyStateMetric.needsAttention{box-shadow:inset 3px 0 #b9574e}
.academyStateMetric.needsAttention strong{color:#d06a61}
.inboxWorkGroups{display:grid;gap:11px}
.inboxWorkGroup{border:1px solid #2a2a2a;border-left:3px solid #82785b;
    border-radius:10px;background:#101010;overflow:hidden}
.inboxWorkGroup.inboxPriority-critical{border-left-color:#bd4b43}
.inboxWorkGroup.inboxPriority-important{border-left-color:#caa43b}
.inboxWorkGroup.inboxPriority-routine{border-left-color:#8f8b7f}
.inboxWorkGroup.inboxPriority-information{border-left-color:#625f58}
.inboxWorkGroup>summary{display:grid;grid-template-columns:46px minmax(0,1fr)
    auto auto;align-items:center;gap:17px;padding:19px 20px;cursor:pointer;
    list-style:none}
.inboxWorkGroup>summary::-webkit-details-marker{display:none}
.inboxWorkGroup>summary h2{margin:3px 0 0;color:#eee;font-size:1.02rem}
.inboxWorkCount{display:grid;place-items:center;min-width:34px;height:34px;
    padding:0 8px;border-radius:17px;background:rgba(202,164,59,.12);
    color:#d4af37}
.inboxExpandLabel{color:#77736b;font-size:.68rem;font-weight:800;
    letter-spacing:.08em;text-transform:uppercase}
.inboxAffectedPeople{border-top:1px solid #272727;background:#0c0c0c}
.inboxAffectedPeople article{display:flex;align-items:center;
    justify-content:space-between;gap:18px;padding:14px 20px 14px 82px;
    border-bottom:1px solid #222}
.inboxAffectedPeople article:last-child{border-bottom:0}
.inboxAffectedPeople article>div{display:grid;grid-template-columns:minmax(140px,1fr)
    auto auto;align-items:center;gap:18px;flex:1}
.inboxAffectedPeople strong{color:#ddd}
.inboxAffectedPeople span,.inboxAffectedPeople time{color:#77736b;
    font-size:.73rem}
@media(max-width:1050px){
    #dashboardContent{grid-template-columns:1fr}
    .academyStateSection:first-child{grid-column:auto}
    .academyStateSection:first-child .academyStateMetrics{grid-template-columns:1fr}
}
@media(max-width:700px){
    .inboxWorkGroup>summary{grid-template-columns:42px minmax(0,1fr) auto}
    .inboxExpandLabel{display:none}
    .inboxAffectedPeople article{align-items:flex-start;flex-direction:column;
        padding-left:20px}
    .inboxAffectedPeople article>div{grid-template-columns:1fr;gap:5px}
}
.notificationsSection{grid-column:1/-1}
.notificationList{display:grid;gap:10px}
.notificationCard{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:15px;padding:17px 18px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:rgba(255,255,255,.018)}
.notificationIcon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.16);font-weight:850}
.notificationCopy>span{color:#999;font-size:.65rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
.notificationCopy h3{margin:4px 0;color:#fff;font-size:1.05rem}
.notificationCopy p{margin:0;color:#aaa}
.notificationCopy time{display:block;margin-top:6px;color:#777;font-size:.75rem}
.notification-critical{border-left:3px solid #b94f4f}.notification-critical .notificationIcon{color:#ef8c8c;border-color:#8b4545}
.notification-operational{border-left:3px solid #caa43b}.notification-operational .notificationIcon{color:#ddbc5b;border-color:#79652a}
.notification-informational{border-left:3px solid #777}.notification-informational .notificationIcon{color:#bbb}
@media(max-width:700px){.notificationCard{grid-template-columns:38px minmax(0,1fr)}.notificationCard>a{grid-column:2;justify-self:start}}

/* Atomic OS design system */
.srOnly{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
    overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.atomicPage{width:min(1240px,100%);margin-inline:auto}
.atomicPageHeader{margin-bottom:30px;padding-bottom:22px;
    border-bottom:1px solid var(--border)}
.atomicPageHeader h1{margin:0;color:var(--text);
    font-size:clamp(2rem,3.2vw,2.9rem);font-weight:750;line-height:1.05;
    letter-spacing:-.04em;text-transform:none}
.atomicPageHeader p{margin:8px 0 0;color:var(--text-secondary);
    font-size:.95rem}
.atomicInstrumentPanel{margin-bottom:34px}
.atomicMetricGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px}
.atomicMetricTile,.atomicCompactLink{position:relative;border:1px solid var(--border);
    border-radius:14px;background:var(--surface);color:var(--text);
    text-decoration:none;transition:border-color .18s ease,background .18s ease,
    transform .18s ease}
.atomicMetricTile{display:grid;align-content:space-between;min-height:132px;
    padding:21px}
.atomicMetricTile:hover,.atomicMetricTile:focus-visible,
.atomicCompactLink:hover,.atomicCompactLink:focus-visible{
    border-color:rgba(202,164,59,.55);background:var(--surface-hover);
    transform:translateY(-1px)}
.atomicMetricTile:focus-visible,.atomicCompactLink:focus-visible,
.atomicClassAction:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.atomicMetricLabel{padding-right:24px;color:var(--text-secondary);
    font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.atomicMetricValue{align-self:end;margin-top:18px;color:var(--text);
    font-size:clamp(1.55rem,2.5vw,2.2rem);font-weight:720;line-height:1.05;
    letter-spacing:-.035em}
.atomicMetricDetail{margin-top:10px;color:var(--text-muted);
    font-size:.68rem;line-height:1.45}
.atomicCardArrow{position:absolute;top:19px;right:20px;color:#706d65;
    transition:color .18s ease,transform .18s ease}
.atomicMetricTile:hover .atomicCardArrow,
.atomicCompactLink:hover .atomicCardArrow{color:var(--gold-light);
    transform:translateX(2px)}
.leadAnalyticsSummary{display:grid;
    grid-template-columns:minmax(240px,.75fr) minmax(320px,1.25fr);
    gap:28px;padding:28px;border:1px solid var(--border);
    border-radius:16px;background:var(--surface)}
.leadAnalyticsChart{display:flex;align-items:center;justify-content:center;
    gap:26px;min-height:250px}
.leadAnalyticsChart .atomicMetricValue{display:block}
.atomicDonutChart{position:relative;display:grid;place-items:center;
    width:190px;height:190px;flex:0 0 auto;border-radius:50%}
.atomicDonutChart svg{width:100%;height:100%;grid-area:1/1;
    overflow:visible}
.atomicDonutSegment{cursor:pointer;transition:opacity .15s ease,
    stroke-width .15s ease}
.atomicDonutSegment:hover,.atomicDonutSegment:focus-visible{
    opacity:.82;stroke-width:9;outline:none}
.atomicDonutChart span{z-index:1;grid-area:1/1;color:var(--text);
    font-size:2rem;font-weight:750}
.atomicDonutTooltip{position:absolute;z-index:4;left:50%;bottom:-34px;
    display:grid;gap:2px;min-width:140px;padding:10px 12px;
    transform:translateX(-50%);border:1px solid rgba(202,164,59,.5);
    border-radius:9px;background:#101012;box-shadow:0 10px 24px #0009;
    color:var(--text);font-size:.78rem;text-align:center;pointer-events:none}
.atomicDonutTooltip[hidden]{display:none}
.atomicDonutTooltip strong{color:var(--gold-light)}
.atomicDonutTooltip span{display:block;color:var(--text-secondary);
    font-size:.76rem;font-weight:500}
.leadSourceList{display:grid;align-content:start;gap:7px}
.leadSourceRow{display:grid;grid-template-columns:minmax(0,1fr) auto 54px;
    align-items:center;gap:16px;width:100%;min-height:46px;padding:10px 13px;
    border:1px solid var(--border);border-radius:10px;background:#101012;
    color:var(--text);text-align:left}
.leadSourceRow:hover,.leadSourceRow:focus-visible,.leadSourceRow.active{
    border-color:rgba(202,164,59,.55);background:var(--surface-hover)}
.leadSourceRow strong{color:var(--gold-light)}
.leadSourceRow small{color:var(--text-muted);text-align:right}
.leadPeopleList{display:grid;gap:14px}
.leadPersonCard{padding:24px}
.leadPersonCard .membershipRecordHeader{align-items:center}
.leadPersonCard .membershipRecordHeader h3{font-size:1.18rem;line-height:1.35}
.leadPersonCard .membershipRecordHeader>span{font-size:.9rem}
.leadPersonCard .membershipDetails{gap:10px;margin-top:14px}
.leadPersonCard .membershipDetails p{font-size:.96rem;line-height:1.55}
@media(max-width:800px){
    .leadAnalyticsSummary{grid-template-columns:1fr}
    .leadAnalyticsChart{min-height:auto}
}
.atomicSection{margin-top:28px}
.atomicPrimarySection{margin-top:0;padding:28px;border:1px solid var(--border);
    border-radius:16px;background:var(--surface)}
.atomicSectionHeader{display:flex;align-items:end;justify-content:space-between;
    gap:18px;margin-bottom:20px}
.atomicSectionHeader h2{margin:0;color:var(--text);font-size:1.5rem;
    font-weight:740;letter-spacing:-.025em}
.atomicSectionHeader p{margin:4px 0 0;color:var(--text-secondary);
    font-size:.8rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.atomicClassGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px}
.atomicClassTile{display:grid;grid-template-rows:auto 1fr auto;min-height:250px;
    padding:22px;border:1px solid var(--border);border-radius:14px;
    background:#101012}
.atomicClassTime{color:var(--gold-light);font-size:1.35rem;font-weight:780;
    letter-spacing:-.02em}
.atomicClassIdentity{align-self:start;padding:24px 0}
.atomicClassIdentity h3{margin:0 0 15px;color:var(--text);font-size:1.2rem;
    font-weight:720}
.atomicClassIdentity p{margin:4px 0;color:var(--text-secondary);
    font-size:.88rem}
.atomicClassAction{align-self:end;width:100%}
.atomicCompactLink{display:grid;grid-template-columns:1fr auto 24px;align-items:center;
    gap:20px;min-height:74px;padding:18px 20px}
.atomicCompactLink>span:first-child{font-size:1rem;font-weight:720}
.atomicCompactLink strong{color:var(--text-secondary);font-size:.9rem}
.atomicCompactLink .atomicCardArrow{position:static;justify-self:end}
.atomicEmptyState,.atomicErrorState{grid-column:1/-1;margin:0;padding:34px;
    border:1px dashed var(--border);border-radius:12px;color:var(--text-secondary);
    text-align:center}
.atomicErrorState h2{margin:0 0 18px;color:var(--text);font-size:1.2rem}
@media(max-width:980px){
    .atomicMetricGrid,.atomicClassGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
    .atomicPageHeader h1{font-size:2rem}
    .atomicMetricGrid,.atomicClassGrid{grid-template-columns:1fr}
    .atomicPrimarySection{padding:20px}
    .atomicClassTile{min-height:220px}
    .atomicCompactLink{grid-template-columns:1fr auto;padding-right:18px}
    .atomicCompactLink .atomicCardArrow{display:none}
}
@media(max-width:700px){
    .gradingReviewsSection,.gradingHistorySection,.gradingReviewCard{padding:20px}
    .gradingReviewHeader{flex-direction:column}
    .gradingEvidence{grid-template-columns:1fr}
    .gradingCultureGrid{grid-template-columns:1fr}
    .gradingDecisionChoices{flex-direction:column}
    .gradingDecision{align-self:flex-start}
}

.membershipDetails {

    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    column-gap: 32px;

    margin-top: 16px;

}

.membershipDetails p {

    margin: 0;

}

.sectionEmpty {

    margin: 0;

    color: var(--text-secondary);

}

/* Dashboard Black Label card layout */
.dashboardWidgets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;align-items:stretch}
.dashboardWidget{display:flex;flex-direction:column;background:#17171a;border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:28px;min-width:0;height:100%}
.dashboardWidget h2{margin:0 0 20px;font-size:1.4rem;font-weight:600;color:#fff}
.dashboardWidget p{margin:0;padding:12px 0;color:var(--text-secondary);font-size:1rem;line-height:1.45;border-bottom:1px solid rgba(255,255,255,.06)}
.dashboardWidget p:last-child{border-bottom:0;padding-bottom:0}
.dashboardWidget a{display:block;color:inherit;text-decoration:none}
.dashboardWidget a:hover{color:var(--gold-light)}
#widgets a.overviewCard,
#widgets a.overviewCard:visited,
#widgets a.overviewCard:hover,
#widgets a.overviewCard:focus{color:inherit;text-decoration:none}
#widgets a.overviewCard .overviewLabel{color:var(--text-muted);text-decoration:none}
#widgets a.overviewCard .overviewValue{color:white;text-decoration:none}
.dashboardWidget:nth-of-type(5) p{display:inline-block;margin:0 8px 8px 0;padding:8px 12px;border:1px solid rgba(202,164,59,.45);border-radius:999px;background:#211f18;color:#d4af37;font-size:.9rem}
.dashboardWidget:last-child{max-height:360px;overflow:auto}
.pageHeader h1{font-size:2rem}
.reportControls{display:flex;align-items:end;gap:16px;margin:32px 0;padding:24px;background:#17171a;border:1px solid rgba(255,255,255,.09);border-radius:18px}
.reportControls label{display:grid;gap:8px;color:var(--text-secondary);font-size:.9rem;font-weight:600}
.reportControls select{min-width:260px}
.reportTableCard{width:100%;overflow-x:auto;background:#17171a;border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:0}
.reportTableCard table{width:100%;border-collapse:separate;border-spacing:0;font-size:.95rem}
.reportTableCard th{position:sticky;top:0;background:#211f18;color:#d4af37;text-align:left;font-weight:600;padding:16px 20px;white-space:nowrap;border-bottom:1px solid rgba(202,164,59,.35)}
.reportTableCard td{padding:15px 20px;color:var(--text-secondary);border-bottom:1px solid rgba(255,255,255,.06);white-space:nowrap}
.reportTableCard tbody tr:hover{background:#1f1f23}
.reportTableCard tbody tr:last-child td{border-bottom:0}
#operationsPanels>.dashboardWidget:last-child,
#reportsLayout>.dashboardWidget{grid-column:1 / -1}
#operationsPanels{margin:24px 0 32px}
#reportsLayout{gap:32px}
#reportsLayout .reportControls{margin:0;width:100%;max-width:none;height:auto;align-self:start}
#reportsLayout .reportControls label{flex:1}
#reportsLayout .reportControls select{width:100%}
#reportsLayout .reportTableCard{height:auto;max-height:none}
#reportsLayout .reportTableCard>.sectionEmpty{padding:28px}
.reportsHeading{margin:0 0 24px}
.reportMetrics{margin:0 0 28px}
.reportMenu{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:12px;margin:24px 0 28px}
.reportMenuGroup{display:flex;flex-direction:column;gap:6px;padding:14px;
    border:1px solid var(--border);border-radius:12px;
    background:var(--background)}
.reportMenuGroup>strong{margin-bottom:4px;color:var(--gold);font-size:.75rem;
    letter-spacing:.08em;text-transform:uppercase}
.reportMenuGroup>span{color:var(--text-muted);font-size:.78rem}
.reportMenu a{display:inline-flex;align-items:center;min-height:38px;
    padding:9px 14px;border:1px solid var(--border);border-radius:10px;
    background:var(--surface);color:var(--gold);font-weight:700;
    text-decoration:none}
.reportMenu a:hover,.reportMenu a:focus-visible,
.reportMenu a[aria-current="page"]{border-color:rgba(202,164,59,.6);
    background:rgba(202,164,59,.1);color:var(--gold-light)}
.reportIntelligenceGrid,.reportDrilldownGrid{display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:22px}
.reportIntelligenceCard,.reportDrilldown{padding:24px;
    border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.reportIntelligenceCard,.reportDrilldown{margin-bottom:22px}
.reportIntelligenceGrid .reportIntelligenceCard{margin-bottom:0}
.reportIntelligenceCard h2{margin:0 0 20px;color:var(--gold);
    font-size:1.05rem}
.reportBars{display:grid;gap:12px}
.reportBarRow{display:grid;grid-template-columns:minmax(80px,auto) 1fr 44px;
    align-items:center;gap:12px;color:var(--text-secondary);font-size:.82rem}
.reportBarRow>div{height:8px;overflow:hidden;border-radius:999px;
    background:#29271f}
.reportBarRow i{display:block;height:100%;border-radius:inherit;
    background:var(--gold)}
.reportBarRow strong{color:var(--text);text-align:right}
.reportDrilldown summary{display:flex;justify-content:space-between;
    cursor:pointer;color:var(--gold);font-weight:750}
.reportDrilldown>div:not(.reportTableCard){display:grid;gap:7px;margin-top:16px}
.reportDrilldown>div>a{display:flex;justify-content:space-between;gap:16px;
    padding:10px 0;border-bottom:1px solid var(--border);text-decoration:none}
.reportDrilldown small{color:var(--text-muted)}
.reportComparison{display:grid;gap:12px}
.reportComparison article{display:grid;grid-template-columns:1fr auto;
    gap:3px 14px;padding:14px;border:1px solid var(--border);
    border-radius:10px;background:var(--background)}
.reportComparison article strong{color:var(--text)}
.reportComparison article span{color:var(--gold);font-weight:750}
.reportComparison article small{grid-column:1/-1;color:var(--text-muted)}
.originDetailList{display:grid;gap:4px;padding:4px 0 10px 18px;
    border-left:1px solid var(--border)}
.originDetailList button{display:grid;grid-template-columns:1fr auto auto;
    gap:10px;padding:8px 10px;border:0;background:transparent;
    color:var(--text-secondary);text-align:left}
.originDetailList button:hover{color:var(--gold)}
.originHistory{display:flex;flex-wrap:wrap;gap:10px}
.originHistory div{display:flex;align-items:center;justify-content:space-between;
    gap:20px;min-width:130px;padding:14px;border:1px solid var(--border);
    border-radius:10px;background:var(--background)}
.originHistory strong{color:var(--gold);font-size:1.2rem}
@media(max-width:760px){
    .reportIntelligenceGrid,.reportDrilldownGrid{grid-template-columns:1fr}
    .reportBarRow{grid-template-columns:72px 1fr 38px}
}
@media (max-width:700px){.reportControls{align-items:stretch;flex-direction:column}.reportControls select{min-width:0;width:100%}.reportControls button{width:100%}}
@media (max-width:700px){.dashboardWidgets{grid-template-columns:1fr;gap:24px}}

.settingsPageHeader {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 24px;
    margin-bottom: 40px;
}

.settingsPageHeader h1,
.settingsPageHeader p {
    margin-top: 0;
}

.settingsPageHeader p {
    margin-bottom: 0;
    color: var(--text-secondary);
}

.settingsPageHeader #updated {
    color: var(--text-muted);
    font-size: 14px;
}

.settingsDialog {
    width: min(720px, calc(100% - 40px));
    max-height: calc(100vh - 40px);
    padding: 0;
    overflow: auto;
    background: var(--surface);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: 0 28px 80px rgba(0,0,0,.55);
}

.settingsDialog::backdrop {
    background: rgba(0,0,0,.72);
    backdrop-filter: blur(3px);
}

.settingsDialog .membershipForm {
    padding: 30px;
}

.settingsDialog .membershipForm > h2 {
    margin: 0 0 26px;
}

.settingsDialog .membershipFormGrid {
    gap: 20px;
}

.settingsDialog .membershipFormGrid textarea {
    min-height: 110px;
    resize: vertical;
}

.settingsDialog .formActions {
    justify-content: flex-end;
    align-items: center;
    gap: 12px;
    margin: 28px 0 0;
    padding-top: 22px;
    border-top: 1px solid rgba(255,255,255,.07);
}
.recurringClassForm{display:grid;gap:20px}
.recurringClassForm>label{display:grid;gap:8px;font-weight:700}
.recurringClassForm fieldset{margin:0;padding:0;border:0}
.recurringClassForm legend{margin-bottom:10px;font-weight:700}
.recurringChecks{display:flex;flex-wrap:wrap;gap:10px}
.recurringChecks label,.recurringActive{display:flex!important;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-weight:600!important;cursor:pointer}
.recurringChecks input,.recurringActive input{width:auto!important;margin:0}
.recurringInline{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.recurringInline label{display:grid;gap:8px;font-weight:700}
.recurringActive{width:max-content}
@media(max-width:760px){.recurringInline{grid-template-columns:1fr}.recurringChecks{display:grid;grid-template-columns:repeat(2,1fr)}}

.legalVersionHistory {
    margin-top: 18px;
    border-top: 1px solid var(--border);
    padding-top: 14px;
}

.legalVersionHistory summary {
    color: var(--text-secondary);
    cursor: pointer;
    font-weight: 600;
}

.legalVersionRow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 0;
    border-bottom: 1px solid var(--border);
}

.legalDocumentPdf {
    width: 100%;
    min-height: 430px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fff;
}

.legalDocumentOpen {
    display: inline-flex;
    margin-top: 12px;
}

@media (max-width:700px) {
    .settingsPageHeader {
        align-items: flex-start;
        flex-direction: column;
        margin-bottom: 32px;
    }

    .settingsDialog .membershipForm {
        padding: 22px;
    }

    .settingsDialog .formActions {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .settingsDialog .formActions button {
        width: 100%;
    }

    .legalVersionRow {
        align-items: flex-start;
        flex-direction: column;
    }

    .legalDocumentPdf {
        min-height: 360px;
    }
}

.membershipDialog {

    width: min(720px, calc(100% - 40px));

}

.inventoryProductImage{margin-top:26px}
.inventoryImageDisplay{display:grid;place-items:center;min-height:300px;
 overflow:hidden;border:1px solid var(--border);border-radius:14px;
 background:var(--background)}
.inventoryImageDisplay img{display:block;width:100%;max-height:460px;
 object-fit:contain}
.inventoryImagePlaceholder{display:grid;place-items:center;gap:7px;
 min-height:300px;padding:32px;color:var(--text-secondary);text-align:center}
.inventoryImagePlaceholder strong{color:var(--text);font-size:1.05rem}
.inventoryImagePlaceholder span{font-size:.88rem}

.membershipFormGrid {

    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 20px;

}

.membershipFormGrid label {

    display: flex;

    flex-direction: column;

    gap: 9px;

    color: var(--text-secondary);

    font-size: 14px;

    font-weight: 600;

}

.membershipFormGrid input,
.membershipFormGrid select,
.membershipFormGrid textarea {

    width: 100%;

    background: var(--background);

    color: var(--text);

    border: 1px solid var(--border);

    border-radius: 10px;

    padding: 13px;

    font: inherit;

}

.membershipNotesField {

    grid-column: 1 / -1;

}

.membershipNotesField textarea {

    resize: vertical;

}

.timelineEvent {

    display: flex;

    justify-content: space-between;

    align-items: baseline;

    gap: 24px;

    padding: 16px 0;

    border-bottom: 1px solid rgba(255,255,255,.05);

}

.timelineEvent:last-child {

    border-bottom: none;

}

.timelineEventLabel {

    color: var(--text);

    font-weight: 600;

}

.timelineEventTime,
.timelineEmpty {

    color: var(--text-secondary);

    font-size: 14px;

}

.timelineEmpty {

    margin: 0;

}

/* ==========================================
   SCROLLBAR
========================================== */

::-webkit-scrollbar {

    width: 10px;

}

::-webkit-scrollbar-track {

    background: #111113;

}

::-webkit-scrollbar-thumb {

    background: #34343a;

    border-radius: 999px;

}

::-webkit-scrollbar-thumb:hover {

    background: #4a4a50;

}

/* ==========================================
   RESPONSIVE
========================================== */

@media (max-width:1100px){

    .overviewGrid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media (max-width:900px){

    .sidebar{

        display:none;

    }

    .content{

        padding:40px 28px;

    }

    .personHero{

        flex-direction:column;

        align-items:flex-start;

        gap:20px;

    }

}

@media (max-width:700px){

    .overviewGrid{

        grid-template-columns:1fr;

    }

    .editPersonGrid {

        grid-template-columns: 1fr;

    }

    .toolbar {

        align-items: stretch;

        flex-direction: column;

    }

    .toolbarActions {

        flex-wrap: wrap;

    }

    .membershipFormGrid,
    .membershipDetails {

        grid-template-columns: 1fr;

    }

    .attendanceRecord {

        align-items: flex-start;

        flex-direction: column;

        gap: 8px;

    }

    .attendanceDate {

        text-align: left;

    }

}

/* Dashboard metric grid responsiveness */
.content{width:100%;min-width:0}
@media (min-width:1200px){.overviewGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}}
@media (min-width:900px) and (max-width:1199px){.overviewGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}}
@media (min-width:701px) and (max-width:899px){.overviewGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}}
@media (max-width:700px){.overviewGrid{grid-template-columns:1fr;gap:20px}}

/* Use the full space beside navigation while retaining generous metric cards. */
.content{max-width:none;width:100%;flex:1}
.content{padding-left:40px;padding-right:40px}
.dashboardWidgets{width:100%;max-width:none}
.overviewGrid{display:grid;width:100%;max-width:none;margin-left:0;margin-right:0;align-self:stretch;grid-column:1 / -1;grid-template-columns:repeat(auto-fit,minmax(300px,1fr)) !important;gap:32px;align-items:start}
.personProfilePhoto{width:104px;height:104px;object-fit:cover;border:2px solid #d4af37;border-radius:50%}
.recurringClassGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:24px}
.recurringClassCard{display:grid;gap:20px;padding:26px;background:linear-gradient(145deg,#151515,#0c0c0c);border:1px solid #303030;border-radius:16px;box-shadow:0 18px 44px rgba(0,0,0,.22)}
.recurringClassCard.inactive{opacity:.68}
.recurringClassHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.recurringClassHeader h2,.recurringDetailHeader h2{margin:4px 0 0;color:#fff;font-size:1.65rem}
.recurringClassType{color:#d4af37;font-size:.75rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.recurringClassFacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.recurringClassFacts p,.occurrenceRow>div{display:grid;gap:5px;margin:0}
.recurringClassFacts span,.occurrenceRow span{color:#929292;font-size:.78rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.recurringClassFacts strong,.occurrenceRow strong{color:#f5f5f5}
.recurringClassDescription{margin:0;color:#aaa;line-height:1.55}
.recurringClassCard>button{justify-self:start}
.recurringClassDetail{scroll-margin-top:24px}
.recurringDetailHeader{align-items:flex-start}
.occurrenceList{display:grid;gap:10px;margin-top:20px}
.occurrenceRow{display:grid;grid-template-columns:1.35fr 1.35fr repeat(4,.65fr) 2fr;gap:14px;align-items:center;padding:18px;background:#111;border:1px solid #292929;border-radius:12px}
.occurrenceDate strong{font-size:1.05rem}
.occurrenceActions{display:flex!important;flex-wrap:wrap;justify-content:flex-end}
.occurrenceActions a{min-height:38px;padding:8px 12px;font-size:.82rem;text-decoration:none}
@media(max-width:1050px){.occurrenceRow{grid-template-columns:repeat(3,1fr)}.occurrenceActions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:760px){.recurringClassGrid{grid-template-columns:1fr}.recurringClassFacts{grid-template-columns:1fr}.occurrenceRow{grid-template-columns:repeat(2,1fr)}}

/* Professor Dashboard */
.professorDashboard{display:grid;gap:0}
.dashboardEyebrow{display:block;margin-bottom:8px;color:#d4af37;font-size:.72rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
#dashboardDate{color:#aaa;font-weight:700}
#dashboardContent{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:20px;margin-top:26px}
.dashboardSection{min-width:0;padding:26px;background:linear-gradient(145deg,#151515,#0d0d0d);border:1px solid #2c2c2c;border-radius:16px}
.dashboardSectionHeading{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.dashboardSectionHeading>span{display:grid;place-items:center;width:30px;height:30px;color:#d4af37;border:1px solid #665624;border-radius:50%;font-size:.72rem;font-weight:800}
.dashboardSectionHeading h2{margin:0;color:#fff;font-size:1.15rem;letter-spacing:.04em;text-transform:uppercase}
.dashboardSectionHeading small{margin-left:auto;color:#888}
.todaySection,.nextClassSection{grid-column:1/-1}
.todaySection{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);column-gap:28px}
.todaySection .dashboardSectionHeading{grid-column:1/-1}
.todaySchedule{display:grid;gap:8px}
.todayEvent{display:flex;justify-content:space-between;gap:20px;padding:14px 0;color:#fff;border-bottom:1px solid #292929;text-decoration:none}
.todayEvent span{color:#aaa}
.todayFacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.todayFacts>a{display:grid;gap:3px;padding:14px;background:#101010;border:1px solid #282828;border-radius:10px;color:#aaa;text-decoration:none}
.todayFacts strong{color:#d4af37;font-size:1.45rem}
.nextClassHero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:20px;border-bottom:1px solid #2b2b2b}
.nextClassHero h3{margin:5px 0;color:#fff;font-size:2rem}
.nextClassHero p{margin:0;color:#aaa}
.nextClassFocus{color:#d4af37;font-size:1.1rem}
.nextClassNumbers,.weekSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}
.nextClassNumbers p,.weekSummary p{display:grid;gap:5px;margin:0;padding:14px;background:#101010;border:1px solid #282828;border-radius:10px}
.nextClassNumbers span,.weekSummary span{color:#888;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.nextClassNumbers strong,.weekSummary strong{color:#fff;font-size:1.25rem}
.dashboardActions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.dashboardActions a{text-decoration:none}
.attentionQueue{display:grid;gap:9px}
.attentionRow{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px;background:#101010;border:1px solid #272727;border-radius:11px}
.attentionRow h3{margin:5px 0 2px;color:#fff;font-size:1rem}
.attentionRow p{margin:0;color:#999;font-size:.85rem;line-height:1.4}
.attentionStatus{color:#d4af37;font-size:.66rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.attentionStatus.alert,.attentionStatus.urgent,.attentionStatus.did_not_attend{color:#ff8f8f}
.attentionStatus.message,.attentionStatus.ready_to_convert{color:#f2cf5b}
.attentionStatus.low,.attentionStatus.normal{color:#aaa}
.attentionRow>.secondaryButton{flex:0 0 auto;text-decoration:none}
.weekSection{grid-column:1/-1}
.weekSummary{grid-template-columns:repeat(6,minmax(0,1fr));margin:0}
@media(max-width:1000px){
 #dashboardContent{grid-template-columns:1fr}
 .todaySection,.nextClassSection,.weekSection{grid-column:auto}
 .weekSummary{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:680px){
 .dashboardSection{padding:20px}
 .todaySection{grid-template-columns:1fr}
 .todayFacts{margin-top:18px}
 .nextClassHero{align-items:flex-start;flex-direction:column}
 .nextClassNumbers,.weekSummary{grid-template-columns:repeat(2,minmax(0,1fr))}
 .attentionRow{align-items:flex-start;flex-direction:column}
}

/* Professor Dashboard — operational briefing */
.professorDashboard{background:
 radial-gradient(circle at 92% 0,rgba(212,175,55,.07),transparent 34%),
 linear-gradient(155deg,#111,#090909);border-color:#292929}
.professorWelcome{padding:10px 4px 30px;border-bottom:1px solid #302a1b}
.professorWelcome h1{max-width:760px;margin:4px 0 8px;color:#fff;
 font-size:clamp(2.25rem,5vw,4.5rem);font-weight:750;line-height:.98;
 letter-spacing:-.045em;text-transform:uppercase}
.professorWelcome p{margin:0;color:#a7a7a7;font-size:1rem}
.morningEntrance{position:fixed;inset:0;z-index:10000;display:flex;
 flex-direction:column;align-items:center;justify-content:center;
 padding:32px;background:#090a0b;color:#fff;text-align:center;
 opacity:1;transition:opacity .5s ease}
.morningEntrance[hidden]{display:none}
.morningEntrance::before{content:"";position:absolute;inset:0;
 background:radial-gradient(circle at 50% 45%,rgba(200,158,47,.09),transparent 42%)}
.morningEntrance img{position:relative;width:min(270px,52vw);height:auto;
 margin-bottom:64px;filter:drop-shadow(0 10px 36px rgba(0,0,0,.7))}
.morningEntrance h1{position:relative;max-width:1000px;margin:0;
 font-size:clamp(2.6rem,6vw,6.5rem);line-height:.98;letter-spacing:-.045em;
 color:#fff}
.morningEntranceActions{position:relative;display:flex;flex-wrap:wrap;
 justify-content:center;gap:14px;margin-top:58px}
.morningEntranceActions button{min-height:52px;padding:0 28px;
 border:1px solid #c9a227;border-radius:2px;background:#c9a227;color:#090a0b;
 font:700 .78rem/1 Arial,sans-serif;letter-spacing:.13em;text-transform:uppercase}
.morningEntranceActions .morningSilentButton,
.morningEntranceActions .morningSkipButton{background:transparent;color:#e7e7e7;
 border-color:#4a422c}
.morningEntranceActions button:focus-visible{outline:3px solid #fff;
 outline-offset:5px}
.morningEntranceExit{opacity:0;pointer-events:none}
.morningAudioStatus{display:flex;flex-direction:column;gap:8px;
 align-self:end;padding:10px 0}
.morningAudioStatus span{color:#999;font-size:.78rem;text-transform:uppercase;
 letter-spacing:.1em}
@media(prefers-reduced-motion:reduce){
 .morningEntrance{transition:none}
}

/* Operational Class — live mat control */
.classControlHero{position:relative;display:grid;grid-template-columns:1fr;
 align-items:end;gap:28px;padding:10px 0 34px;border-bottom:1px solid #332b19}
.classBackLink{position:absolute;top:0;left:0;color:#777;font-size:.72rem;
 font-weight:750;letter-spacing:.08em;text-decoration:none;text-transform:uppercase}
[data-member-record-child] [data-member-record-navigation]{
 display:block;margin:0 0 12px}
[data-member-record-child] [data-member-record-navigation] .classBackLink{
 position:static;display:inline-flex;align-items:center}
.classControlIdentity{padding-top:42px}
.classControlIdentity>span{color:#d4af37;font-size:.72rem;font-weight:800;
 letter-spacing:.14em;text-transform:uppercase}
.classControlIdentity h1{max-width:820px;margin:8px 0 18px;color:#fff;
 font-size:clamp(3.5rem,7vw,7rem);line-height:.86;letter-spacing:-.06em;
 text-transform:uppercase}
.classHeadlineFacts{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.classHeadlineFacts>*{padding:7px 10px;border:1px solid #333;color:#aaa;
 font-size:.64rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.classHeadlineFacts strong:nth-child(2){color:#fff;font-size:.78rem}
.classStatus-completed{border-color:#315d42!important;color:#72c48d!important}
.classStatus-cancelled{border-color:#713636!important;color:#d77777!important}
.classPrimaryActions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
 gap:1px;margin:22px 0 38px;background:#292929;border:1px solid #292929}
.classPrimaryActions button{min-height:66px;border:0;border-radius:0;
 background:#121212;color:#eee;font-size:.71rem;font-weight:800;
 letter-spacing:.08em;text-transform:uppercase}
.classPrimaryActions button:hover{background:#1b1810;color:#d4af37}
.classOperationsSection{scroll-margin-top:20px;padding:28px;
 border:1px solid #2d2d2d;background:#101010}
.classOperationsSection>header{display:flex;align-items:end;
 justify-content:space-between;gap:20px;margin-bottom:24px}
.classOperationsSection h2,.classAdministration h2{margin:4px 0 0;
 color:#fff;font-size:1.65rem}
.classSectionEyebrow{color:#9b8032;font-size:.61rem;font-weight:850;
 letter-spacing:.16em;text-transform:uppercase}
.attendanceProgress{display:flex;align-items:baseline;gap:7px}
.attendanceProgress strong{color:#d4af37;font-size:2rem}
.attendanceProgress span{color:#777;font-size:.72rem}
.liveAttendanceList{display:grid;gap:8px}
.attendanceStudent{display:grid;grid-template-columns:1fr;align-items:stretch;
 border:1px solid #303030;background:#151515}
.attendanceStudent.attended{border-color:#315d42;background:#111914}
.attendanceStudent.trialStudent{border-left:4px solid #d4af37}
.attendanceTap{display:flex;align-items:center;gap:16px;min-height:76px;
 padding:12px 18px;border:0;background:transparent;color:#fff;text-align:left}
.attendanceTap:disabled{cursor:default;opacity:1}
.attendanceCheck{display:grid;place-items:center;flex:0 0 36px;height:36px;
 border:2px solid #5a5a5a;color:#0a0a0a;background:transparent;font-size:1.2rem;
 font-weight:900}
.attended .attendanceCheck{border-color:#72c48d;background:#72c48d}
.attendanceStudentName{font-size:1.15rem;font-weight:750}
.trialBadge,.waitlistBadge,.noShowBadge{margin-left:auto;padding:6px 8px;
 border:1px solid #6f5920;color:#d4af37;font-size:.58rem;letter-spacing:.13em;
 text-transform:uppercase}
.waitlistBadge{border-color:#3b5363;color:#7fa6bd}
.noShowBadge{border-color:#603737;color:#c66}
.awaitingBadge{margin-left:auto;color:#777;font-size:.58rem;letter-spacing:.1em;
 text-transform:uppercase}
.finishClassRow{display:flex;align-items:center;justify-content:space-between;
 gap:20px;margin-top:22px;padding-top:20px;border-top:1px solid #292929}
.finishClassRow p{margin:0;color:#777;font-size:.75rem}
.finishClassRow button{min-width:180px}
.finishClassRow button:disabled{opacity:.35}
.classOperationalGrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;
 margin-top:16px}
.contextNote{display:grid;gap:4px;padding:15px 0;border-bottom:1px solid #292929}
.contextNote:last-child{border:0}
.contextNote strong{color:#d4af37;font-size:.67rem;letter-spacing:.1em;
 text-transform:uppercase}
.contextNote span{color:#ddd}
.classQuietState{color:#666}
.classCurriculumFacts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.classCurriculumFacts p{display:grid;gap:6px;margin:0;padding:14px;
 border:1px solid #292929;background:#141414}
.classCurriculumFacts span{color:#777;font-size:.59rem;font-weight:800;
 letter-spacing:.1em;text-transform:uppercase}
.classCurriculumFacts strong{color:#eee}
.curriculumProfessorNote{padding:14px;border-left:2px solid #d4af37;color:#bbb}
.professorNotesPanel{display:grid;grid-template-columns:220px 1fr;gap:24px;
 margin-top:16px}
.professorNotesPanel p{margin:0;color:#ccc;line-height:1.7}
.classAdministration{display:flex;align-items:center;justify-content:space-between;
 gap:24px;margin-top:38px;padding:24px 0;border-top:1px solid #292929}
.classAdminActions{display:flex;gap:8px;flex-wrap:wrap}
.classReferenceDetails{margin-top:12px;border:1px solid #292929;background:#101010}
.classReferenceDetails summary{padding:20px 24px;color:#bbb;font-size:.72rem;
 font-weight:850;letter-spacing:.12em;cursor:pointer;text-transform:uppercase}
.classReferenceDetails[open] summary{border-bottom:1px solid #292929}
.classDetailsGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
 gap:1px;background:#292929}
.classDetailsGrid p{display:grid;gap:7px;margin:0;padding:18px;background:#111}
.classDetailsGrid span{color:#666;font-size:.58rem;font-weight:800;
 letter-spacing:.1em;text-transform:uppercase}
.classDetailsGrid strong{color:#ddd;font-size:.78rem}
.classHistoryBlock{padding:24px}
.classHistoryBlock h3{color:#eee}
@media(max-width:900px){
 .classControlHero{grid-template-columns:1fr}
 .classPrimaryActions{grid-template-columns:1fr 1fr}
 .classOperationalGrid{grid-template-columns:1fr}
 .classDetailsGrid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
 .classOperationsSection{padding:20px 14px}
 .classPrimaryActions{grid-template-columns:1fr}
 .attendanceStudent{grid-template-columns:1fr}
 .attendanceNoShow{margin:0 12px 12px}
 .professorNotesPanel{grid-template-columns:1fr}
 .classAdministration{align-items:flex-start;flex-direction:column}
}
#dashboardContent{display:grid;grid-template-columns:minmax(0,1.3fr)
 minmax(320px,.7fr);gap:22px;margin-top:30px}
.professorSection{min-width:0;padding:26px;background:rgba(15,15,15,.82);
 border:1px solid #292929;border-radius:16px}
.professorSection>header{display:flex;align-items:center;justify-content:
 space-between;gap:18px;margin-bottom:20px}
.professorSection>header h2{margin:0;color:#eee;font-size:.78rem;
 font-weight:850;letter-spacing:.17em;text-transform:uppercase}
.professorSection>header>a{color:#bba04c;font-size:.76rem;font-weight:750;
 text-decoration:none;text-transform:uppercase;letter-spacing:.08em}
.sectionCount{min-width:28px;color:#d4af37;font-size:.76rem;font-weight:850;
 text-align:right;text-transform:uppercase}
.decisionsSection{grid-column:1/-1;padding:30px;border-color:#4a3d19;
 background:linear-gradient(145deg,rgba(29,25,15,.92),rgba(12,12,12,.96))}
.decisionList{display:grid;gap:12px}
.decisionCard{display:flex;align-items:center;justify-content:space-between;
 gap:28px;padding:22px 24px;background:#111;border:1px solid #303030;
 border-radius:12px}
.decisionCard.decisionCritical{border-color:#786422;
 box-shadow:inset 3px 0 #d4af37;background:linear-gradient(100deg,#18160f,#101010)}
.decisionCopy{min-width:0}
.decisionLabel{display:block;margin-bottom:6px;color:#d4af37;font-size:.65rem;
 font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.decisionCopy h3{margin:0 0 5px;color:#fff;font-size:1.35rem}
.decisionCopy>p{margin:0;color:#9d9d9d;line-height:1.45}
.decisionPerson{display:block;margin-bottom:5px;color:#ddd}
.decisionReason{display:grid;grid-template-columns:auto auto;gap:4px 24px;
 margin-top:16px;color:#ddd}
.decisionReason span{grid-column:1/-1;color:#777;font-size:.65rem;
 font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.decisionReason strong{font-size:.86rem}
.quietAction{padding:9px 4px;color:#888;background:none;border:0;
 font:inherit;font-size:.78rem;cursor:pointer}
.quietAction:hover{color:#d4af37}
.moreOperational{display:inline-block;margin-top:16px;color:#d4af37;
 font-size:.83rem;font-weight:750;text-decoration:none}
.todayClassesSection{grid-column:1/-1}
.todayClassList{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.todayClass{display:flex;align-items:flex-end;justify-content:space-between;
 gap:16px;min-height:150px;padding:20px;color:inherit;background:#101010;
 border:1px solid #2b2b2b;border-radius:12px;text-decoration:none;
 transition:border-color .18s ease,transform .18s ease}
.todayClass:hover{border-color:#6c5921;transform:translateY(-2px)}
.todayClass h3{margin:6px 0 3px;color:#f7f7f7;font-size:1.15rem}
.todayClass p{margin:0;color:#777;font-size:.78rem}
.todayClass>div>span{color:#d4af37;font-size:.74rem;font-weight:800}
.classTodayStatus{display:grid;gap:8px;flex:0 0 auto;text-align:right}
.classTodayStatus strong{color:#ddd;font-size:.82rem}
.classTodayStatus span{font-size:.66rem;font-weight:850;letter-spacing:.06em;
 text-transform:uppercase}
.reviewRecommended{color:#f0c448}.reviewConfirmed{color:#8d9b82}
.compactList{display:grid;gap:8px}
.compactRow{display:flex;align-items:center;justify-content:space-between;
 gap:16px;padding:15px 0;border-bottom:1px solid #252525}
.compactRow:last-child{border-bottom:0}
.compactRow h3{margin:4px 0;color:#eee;font-size:.98rem}
.compactRow p{max-width:440px;margin:0;color:#7f7f7f;font-size:.8rem;
 white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compactRow div>span{color:#b69b45;font-size:.68rem;font-weight:800;
 letter-spacing:.08em;text-transform:uppercase}
.compactRow>a{flex:0 0 auto;text-decoration:none}
.summaryIntro{margin:0 0 12px;color:#888;font-size:.83rem}
.overnightList{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.overnightList li{color:#aaa}
.overnightList strong{display:inline-block;min-width:25px;color:#d4af37;
 font-size:1.15rem}
.backgroundSection{grid-column:1/-1}
.backgroundIssueList{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
 gap:10px}
.backgroundIssueList>a{display:grid;grid-template-columns:auto 1fr auto;
 align-items:center;gap:12px;padding:16px;color:#aaa;background:#0e0e0e;
 border:1px solid #252525;border-radius:10px;text-decoration:none}
.backgroundIssueList strong{color:#d4af37;font-size:1.3rem}
.backgroundIssueList span{font-size:.86rem}
.backgroundIssueList b{color:#696969;font-size:.65rem;letter-spacing:.06em;
 text-transform:uppercase}
.dashboardQuiet{margin:0;padding:20px 0;color:#696969;font-size:.9rem}
@media(max-width:1050px){
 #dashboardContent{grid-template-columns:1fr}
 .decisionsSection,.todayClassesSection,.backgroundSection{grid-column:auto}
 .todayClassList{grid-template-columns:1fr}
}
@media(max-width:700px){
 .professorWelcome h1{font-size:2.35rem}
 .professorSection,.decisionsSection{padding:20px}
 .decisionCard,.compactRow{align-items:flex-start;flex-direction:column}
 .decisionReason{grid-template-columns:1fr}
 .backgroundIssueList{grid-template-columns:1fr}
 .backgroundIssueList>a{grid-template-columns:auto 1fr}
 .backgroundIssueList b{grid-column:2}
}

/* Final operating-workflow cascade */
.sidebar{height:100vh;position:sticky;top:0;padding:16px 18px;overflow:hidden}
.branding{margin-bottom:12px}.logoImage{width:92px;margin-bottom:8px}
.logoTitle{font-size:17px}.sidebar nav{gap:3px}
.navButton{display:flex;align-items:center;gap:10px;min-height:36px;
 padding:7px 13px;border-radius:9px;font-size:13px;text-decoration:none}
.navButton>span:first-child{flex:1}.navButton:hover{transform:none}
.navGroup>summary{list-style:none}.navGroup>summary::-webkit-details-marker{display:none}
.navChevron{flex:0!important;width:16px;color:#68655e;text-align:center}
.navGroup[open] .navChevron{transform:rotate(180deg)}
.navSubmenu{display:grid;gap:2px;margin:3px 0 5px;padding-left:12px;
 border-left:1px solid rgba(202,164,59,.2)}
.navSubmenu .navButton{min-height:26px;padding:4px 11px;color:#85827a;font-size:11.5px}
.navSubmenu .navButton.active{background:transparent;color:var(--gold)}
#dashboardContent{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 gap:16px;margin-top:30px}
.academyStateSection:first-child{grid-column:1/-1}
.academyStateSection:first-child .academyStateMetrics{
 grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1050px){
 #dashboardContent{grid-template-columns:1fr}
 .academyStateSection:first-child{grid-column:auto}
 .academyStateSection:first-child .academyStateMetrics{grid-template-columns:1fr}
}
.developmentDangerZone{border:1px solid #9f3434;background:linear-gradient(180deg,#29191b,#1d1718)}
.developmentDangerZone h2{color:#ffb0b0}
.personAdministration{
    border-color:#6e3030;
}
.personAdministration h2{
    color:#ffb0b0;
}
.developmentResetPage{max-width:920px}
.developmentResetCounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:20px 0}
.developmentResetCounts span{padding:14px;border:1px solid #4b4141;border-radius:8px;background:#171719}
.developmentResetCounts strong{display:block;font-size:1.45rem}
.developmentResetCheck{display:flex;align-items:center;gap:10px;margin-top:14px}
.pauseRequestList{display:grid;gap:16px}.pauseRequestCard{display:grid;gap:18px;
 padding:22px;border:1px solid var(--border);border-radius:14px;background:#111}
.pauseRequestCard>header{display:flex;align-items:flex-start;
 justify-content:space-between;gap:18px}.pauseRequestCard h2{margin:4px 0 0}
.pauseRequestCard>header>span{color:var(--gold-light);font-weight:800}
.pauseRequestFacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 gap:14px;margin:0}.pauseRequestFacts div{padding-top:12px;
 border-top:1px solid var(--border)}.pauseRequestFacts dt{color:#8e8e8e;
 font-size:.72rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.pauseRequestFacts dd{margin:5px 0 0;color:#fff}.pauseRequestActions{display:flex;
 justify-content:flex-end;gap:9px;flex-wrap:wrap}.pauseRequestActions a{
 display:inline-flex;align-items:center;text-decoration:none}
.pauseDecisionDialog{width:min(620px,calc(100% - 32px))}
.pauseHistorySection{display:grid;gap:12px;margin-top:24px;padding-top:20px;
 border-top:1px solid var(--border)}.pauseHistorySection>h3{margin:0}
.activePauseRecord{border-color:var(--gold)}
@media(max-width:700px){.pauseRequestFacts{grid-template-columns:1fr}
 .pauseRequestCard>header{flex-direction:column}.pauseRequestActions{
 justify-content:flex-start}}
.developmentResetCheck input{width:auto}
.dangerButton{background:#a72e2e;color:#fff;border:1px solid #d55555;padding:10px 16px;border-radius:6px;font-weight:700}
.dangerButton:hover:not(:disabled){background:#c33838}
.dangerButton:disabled{opacity:.45;cursor:not-allowed}
.developmentPopulateZone{margin-top:18px;border:1px solid #3f644f;background:linear-gradient(180deg,#18231d,#171b19)}

/* Professor Dashboard — action-first operational home */
#dashboardContent{display:grid;grid-template-columns:1fr;gap:22px;margin-top:30px}
.dashboardWork,.dashboardHandoffs,.dashboardReady{padding:28px;
 border:1px solid #2d2d2d;border-radius:16px;background:#101010}
.dashboardWork>header,.dashboardHandoffs>header{display:flex;align-items:end;
 justify-content:space-between;gap:20px;margin-bottom:20px}
.dashboardWork header span,.dashboardHandoffs header span,.dashboardReady>span{
 display:block;margin-bottom:5px;color:#a68a38;font-size:.65rem;font-weight:850;
 letter-spacing:.15em;text-transform:uppercase}
.dashboardWork header h2,.dashboardHandoffs header h2,.dashboardReady h2{
 margin:0;color:#fff;font-size:1.65rem}
.dashboardWork header>a,.dashboardHandoffs header>a{color:#c6aa54;
 font-size:.72rem;font-weight:800;letter-spacing:.08em;text-decoration:none;
 text-transform:uppercase}
.dashboardActionList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 gap:10px}
.dashboardAction{padding:18px 20px;border:1px solid #303030;border-radius:11px;
 background:#151515}
.dashboardPriority-critical,.dashboardPriority-important{
 border-left:3px solid #d4af37;background:linear-gradient(90deg,#1d1910,#131313)}
.dashboardAction>header{display:flex;align-items:start;justify-content:
 space-between;gap:16px;padding-bottom:13px;border-bottom:1px solid #2b2b2b}
.dashboardAction>header span{color:#b99c43;font-size:.62rem;font-weight:850;
 letter-spacing:.12em;text-transform:uppercase}
.dashboardAction>header h3{margin:5px 0 0;color:#f5f5f5;font-size:1.08rem}
.dashboardAction>header>strong{display:grid;place-items:center;min-width:30px;
 height:30px;border:1px solid #685821;border-radius:50%;color:#d4af37}
.dashboardQueuePeople>div{display:flex;align-items:center;
 justify-content:space-between;gap:14px;padding:12px 0;
 border-bottom:1px solid #252525}
.dashboardQueuePeople p{display:grid;gap:2px;margin:0}
.dashboardQueuePeople p strong{color:#eee;font-size:.86rem}
.dashboardQueuePeople p span{color:#858585;font-size:.75rem}
.dashboardQueuePeople a,.dashboardQueueMore{flex:0 0 auto;color:#d4af37;
 font-size:.72rem;font-weight:800;text-decoration:none}
.dashboardQueueMore{display:block;padding-top:13px}
.dashboardClassList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 gap:12px}
.dashboardClassHandoff{display:block;padding:20px;color:inherit;
 border:1px solid #303030;border-radius:12px;background:#151515;
 text-decoration:none}
.dashboardClassHandoff:hover{border-color:#796528}
.dashboardClassHandoff>span{color:#c6a94f;font-size:.65rem;font-weight:850;
 letter-spacing:.12em;text-transform:uppercase}
.dashboardClassHandoff h3{margin:7px 0 3px;color:#fff;font-size:1.3rem}
.dashboardClassHandoff p{margin:0;color:#888;font-size:.82rem}
.dashboardClassHandoff strong{display:flex;justify-content:space-between;
 gap:16px;margin-top:20px;color:#aaa;font-size:.74rem}
.dashboardClassHandoff strong b{color:#d4af37}
.dashboardReady p{color:#888}
@media(max-width:760px){
 .dashboardWork,.dashboardHandoffs,.dashboardReady{padding:20px}
 .dashboardWork>header,.dashboardHandoffs>header{
  align-items:flex-start;flex-direction:column}
 .dashboardActionList{grid-template-columns:1fr}
 .dashboardClassList{grid-template-columns:1fr}
}

/* Production polish — shared Atomic staff experience */
.sidebar{
    width:272px;
    flex:0 0 272px;
    padding:28px 20px;
    overflow-y:auto;
    background:linear-gradient(180deg,#141417 0%,#101012 100%);
}
.branding{margin-bottom:28px}
.logoImage{width:184px;height:auto;margin-bottom:12px}
.logoTitle{margin:0;color:var(--text);font-size:18px;font-weight:750;
    letter-spacing:.02em}
.sidebar nav{gap:6px}
.navButton{min-height:42px;padding:10px 14px;border-radius:10px;
    font-size:14px;font-weight:600}
.navButton:hover{background:var(--surface-hover);color:var(--text)}
.navButton.active{background:rgba(202,164,59,.14);color:var(--gold-light)}
.content{min-width:0;padding:48px clamp(24px,4vw,56px)}
.content>.card,.content>div.card,.content>section.card{
    width:min(1240px,100%);margin-inline:auto}
.pageHeader,.personHero,.calendarHero{
    align-items:flex-end;margin-bottom:32px;padding-bottom:20px;
    border-bottom:1px solid var(--border)}
.pageHeader h1,.personHero h1,.calendarHero h1,.inboxHeader h1{
    margin:0;color:var(--text);font-size:clamp(2rem,3vw,2.8rem);
    font-weight:750;line-height:1.05;letter-spacing:-.035em;
    text-transform:none}
.pageHeader p,.calendarHero p{margin:7px 0 0;color:var(--text-secondary);
    font-size:.95rem;line-height:1.5}
.professorWelcome{padding:4px 0 24px}
.professorWelcome h1{max-width:none;margin:5px 0 7px;
    font-size:clamp(2.15rem,4vw,3.35rem);line-height:1;
    letter-spacing:-.04em;text-transform:none}
.morningEntrance h1{font-size:clamp(2.25rem,5vw,4.5rem)}
.classControlIdentity h1{font-size:clamp(2.5rem,5vw,4.4rem);
    line-height:.94}
#peopleViewTitle{font-size:clamp(2rem,3vw,2.8rem)}
.dashboardWork header h2,.dashboardReady h2,
.classOperationsSection h2,.classAdministration h2{
    font-size:1.4rem;line-height:1.2}
.dashboardWidget h2,.cardSection h2{font-size:1.25rem;line-height:1.25}
h3{line-height:1.3}
body{font-size:15px;line-height:1.5}
.cardSection,.dashboardWidget,.membershipRecord,.dashboardWork,
.dashboardReady{border-color:var(--border);border-radius:14px}
.dashboardWidget{padding:24px}
button,.primaryButton,.secondaryButton,.dangerButton{
    min-height:42px;border-radius:10px;padding:10px 16px;
    font:700 14px/1.2 Inter,Arial,sans-serif}
.atomicBackToTop{position:fixed;z-index:50;right:clamp(14px,3vw,32px);
    bottom:clamp(14px,3vw,28px);box-shadow:0 10px 28px rgba(0,0,0,.45)}
.atomicBackToTop[hidden]{display:none}
.secondaryButton{display:inline-flex;align-items:center;justify-content:center;
    border:1px solid var(--border);background:var(--surface);color:var(--text);
    text-decoration:none}
.secondaryButton:hover{border-color:rgba(202,164,59,.55);
    background:var(--surface-hover);color:var(--gold-light)}
.membershipRecord{padding:20px}
.interactiveRecord{cursor:pointer;transition:border-color .18s ease,
    background .18s ease}
.interactiveRecord:hover{border-color:rgba(202,164,59,.48);
    background:var(--surface-hover)}
.dashboardAction>header>strong{display:block;min-width:auto;height:auto;
    border:0;border-radius:0;color:var(--text-secondary);font-size:.75rem}
.dashboardAction>header>strong::after{content:" items"}
.dashboardQueuePeople a,.dashboardQueueMore,
.dashboardWork header>a{padding:4px 0;border-bottom:1px solid transparent}
.dashboardQueuePeople a:hover,.dashboardQueueMore:hover,
.dashboardWork header>a:hover{border-bottom-color:var(--gold)}

/* Settings control centre */
.settingsControlCentre{display:grid;grid-template-columns:230px minmax(0,1fr);
    align-items:start;gap:28px}
.settingsNavigation{position:sticky;top:24px;display:grid;gap:18px;
    max-height:calc(100vh - 48px);padding:22px;border:1px solid var(--border);
    border-radius:14px;background:var(--surface);overflow:auto}
.settingsNavigation>strong{color:var(--text);font-size:1rem}
.settingsNavigation>div{display:grid;gap:5px}
.settingsNavigation span{margin-bottom:2px;color:var(--gold-light);
    font-size:.66rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.settingsNavigation a{padding:5px 0;color:var(--text-secondary);
    font-size:.84rem;text-decoration:none}
.settingsNavigation a:hover,.settingsNavigation a:focus{color:var(--text)}
.settingsNavigation a.active{color:var(--text);font-weight:750}
.settingsNavigation a.active::before{content:"";display:inline-block;width:6px;
    height:6px;margin-right:7px;border-radius:50%;background:var(--gold)}
.settingsSections{grid-template-columns:1fr}
.settingsSections>.dashboardWidget{scroll-margin-top:24px}
.settingsSections>.dashboardWidget:target{border-color:rgba(202,164,59,.55)}

/* Messages */
.messageToolbar{display:flex;align-items:flex-end;justify-content:space-between;
    gap:20px;margin-bottom:20px}
.messageTemplateSection{margin:8px 0 28px;padding-bottom:28px;
    border-bottom:1px solid var(--border)}
.messageTemplateSection>h2{margin-bottom:16px}
.messageTemplateCard{display:flex;align-items:center;justify-content:space-between;
    gap:24px}
.messageTemplateCard h3{margin:0 0 6px}
.messageTemplateCard p{margin:0}
.communicationTemplateDialog{width:min(880px,calc(100% - 40px));
    overflow-x:hidden}
.communicationTemplateEditor{display:grid;width:100%;gap:22px}
.communicationTemplateEditor>label{display:grid;gap:9px}
.communicationTemplateEditor textarea{min-height:300px;line-height:1.65;
    resize:vertical;width:100%;box-sizing:border-box}
.communicationTemplateEditor input[readonly]{color:var(--text-muted);
    cursor:default}
.communicationTrigger{padding:20px;border:1px solid var(--border);
    border-radius:12px;background:rgba(255,255,255,.018)}
.communicationTrigger h3{margin:0 0 12px;color:var(--gold-light)}
.communicationTrigger ul{margin:0 0 18px;padding-left:22px;
    color:var(--text-secondary)}
.communicationTrigger li+li{margin-top:6px}
.communicationTrigger dl{display:flex;gap:32px;margin:0}
.communicationTrigger .communicationStatusGrid{display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px;
 margin-bottom:24px}
.communicationTrigger dl>div{display:grid;gap:4px}
.communicationTrigger dt{color:var(--text-muted);font-size:.7rem;
    font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.communicationTrigger dd{margin:0;color:var(--text);font-weight:700}
.messageFilters{display:flex;gap:8px}
.messageSearch{display:grid;gap:6px;width:min(360px,100%);
    color:var(--text-secondary);font-size:.68rem;font-weight:800;
    letter-spacing:.1em;text-transform:uppercase}
.messageSearch input{width:100%;min-height:44px;padding:0 14px;
    border:1px solid var(--border);border-radius:10px;background:var(--surface);
    color:var(--text);font:500 .9rem/1 Inter,Arial,sans-serif;
    letter-spacing:0;text-transform:none}
.messageAdminLayout{grid-template-columns:minmax(280px,360px) minmax(0,1fr);
    min-height:620px;gap:0;margin-top:0;border:1px solid var(--border);
    border-radius:14px;background:#101012;overflow:hidden}
#conversationList{display:block;max-height:720px;padding:10px;
    border-right:1px solid var(--border);overflow:auto}
.conversationCard{display:grid;grid-template-columns:42px minmax(0,1fr) auto;
    align-items:center;gap:12px;width:100%;min-height:72px;margin:0 0 4px;
    padding:11px;border:1px solid transparent;border-radius:10px;
    background:transparent;color:var(--text);text-align:left}
.conversationCard:hover{background:var(--surface-hover)}
.conversationCard.selected{border-color:rgba(202,164,59,.38);
    background:rgba(202,164,59,.1)}
.conversationCard.unread .conversationCopy strong{color:var(--gold-light)}
.conversationAvatar{display:grid;place-items:center;width:42px;height:42px;
    border:1px solid rgba(202,164,59,.36);border-radius:50%;
    background:rgba(202,164,59,.08);color:var(--gold-light);
    font-size:.72rem;font-weight:850;letter-spacing:.04em}
.conversationCopy{display:grid;min-width:0;gap:4px}
.conversationCopy strong{overflow:hidden;color:var(--text);
    text-overflow:ellipsis;white-space:nowrap}
.conversationCopy small{overflow:hidden;color:var(--text-muted);
    font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}
.portalBadge{min-width:23px;padding:3px 7px;background:var(--gold);
    color:#111;font-size:.68rem;font-weight:850;text-align:center}
#conversationPanel{display:flex;min-width:0;min-height:620px;
    flex-direction:column;padding:0;background:#121214}
.messagePanelHeader{display:flex;align-items:center;justify-content:space-between;
    gap:20px;padding:20px 24px;border-bottom:1px solid var(--border)}
.messagePanelHeader span{color:var(--gold-light);font-size:.63rem;
    font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.messagePanelHeader h2{margin:3px 0 2px;font-size:1.35rem}
.messagePanelHeader a{color:var(--text-secondary);font-size:.75rem;
    text-decoration:none}
.messagePanelHeader a:hover{color:var(--gold-light)}
.portalMessages{align-content:start;flex:1;max-height:480px;padding:24px;
    gap:12px;background:#0e0e10}
.portalMessage{justify-self:end;width:min(78%,620px);padding:12px 15px;
    border:1px solid var(--border);border-radius:14px 14px 4px 14px;
    background:var(--surface)}
.portalMessage.person{justify-self:start;border-left:0;
    border-radius:14px 14px 14px 4px;background:#211f18}
.portalMessage.system_notice,.portalMessage.announcement{
    justify-self:center;border-left:0;background:#18181b}
.portalMessage p{margin:0;color:var(--text);white-space:pre-wrap}
.portalMessage small{color:var(--text-muted);font-size:.68rem}
.messageReply{display:flex;align-items:flex-end;gap:12px;padding:18px 24px;
    border-top:1px solid var(--border);background:var(--surface)}
.messageReply label{display:grid;flex:1;gap:6px;color:var(--text-secondary);
    font-size:.7rem;font-weight:800;text-transform:uppercase}
.messageReply textarea{min-height:76px;resize:vertical}
.messagePanelEmpty{display:grid;place-content:center;gap:5px;min-height:180px;
    padding:28px;color:var(--text-muted);text-align:center}
.messagePanelEmpty strong{color:var(--text-secondary);font-size:1rem}

@media(max-width:900px){
    .sidebar{width:230px;flex-basis:230px}
    .logoImage{width:160px}
    .settingsControlCentre{grid-template-columns:1fr}
    .settingsNavigation{position:static;display:flex;max-height:none;
        overflow-x:auto}
    .settingsNavigation>strong{display:none}
    .settingsNavigation>div{min-width:max-content}
    .messageAdminLayout{grid-template-columns:1fr}
    #conversationList{max-height:310px;border-right:0;
        border-bottom:1px solid var(--border)}
}
@media(max-width:760px){
    .messageTemplateCard{align-items:stretch;flex-direction:column}
    .communicationTrigger dl{display:grid;gap:14px}
    .communicationTrigger .communicationStatusGrid{grid-template-columns:1fr}
    .sidebar{width:100%;height:auto;position:static;padding:18px}
    .branding{flex-direction:row;justify-content:center;gap:14px}
    .logoImage{width:120px;margin:0}
    .content{padding:24px 16px}
    .messageToolbar{align-items:stretch;flex-direction:column}
    .messageSearch{width:100%}
    .portalMessage{width:90%}
}
.registrationLinkProducts{border:1px solid var(--line);padding:16px;
 border-radius:var(--radius);margin:0}
.registrationLinkProducts legend{color:var(--gold);padding:0 8px}
.registrationLinkProducts>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 gap:10px 20px}
.registrationLinkProducts label{display:flex;align-items:center;gap:8px}
.registrationLinkValue{display:flex;gap:10px;align-items:center}
.registrationLinkValue input{flex:1;min-width:0}
@media(max-width:640px){
 .registrationLinkProducts>div{grid-template-columns:1fr}
 .registrationLinkValue{align-items:stretch;flex-direction:column}
}

/* Shared Professor navigation: desktop sidebar and mobile drawer consume the
   same navigation definition from ui.js. */
.mobileNavToggle,.mobileNavOverlay,.mobileNavDrawer{display:none}
@media(max-width:900px), (max-width:1100px) and (pointer:coarse){
 body.mobileNavigationOpen{overflow:hidden}
 .professorDesktopSidebar{display:none}
 .mobileNavToggle{
  position:fixed;display:grid;left:max(12px,env(safe-area-inset-left));
  top:max(12px,env(safe-area-inset-top));z-index:1002;width:44px;height:44px;
  place-content:center;gap:5px;padding:0;border:1px solid var(--border);
  border-radius:10px;background:#141417;box-shadow:0 5px 18px rgba(0,0,0,.35)}
 .mobileNavToggle span{display:block;width:20px;height:2px;
  border-radius:2px;background:var(--gold)}
 .mobileNavOverlay{
  position:fixed;display:block;inset:0;z-index:1000;padding:0;border:0;
  border-radius:0;background:rgba(0,0,0,.7);opacity:0;visibility:hidden;
  transition:opacity .2s ease,visibility .2s ease}
 .mobileNavDrawer{
  position:fixed;display:block;left:0;top:0;bottom:0;z-index:1001;
  width:min(82vw,320px);padding:max(24px,env(safe-area-inset-top)) 20px
   max(24px,env(safe-area-inset-bottom));
  overflow-y:auto;border-right:1px solid var(--border);
  background:linear-gradient(180deg,#141417 0%,#101012 100%);
  transform:translateX(-102%);transition:transform .22s ease}
 .mobileNavDrawer .branding{margin:38px 0 24px}
 .mobileNavDrawer .logoImage{width:170px}
 .mobileNavDrawer nav{display:grid;gap:6px}
 .mobileNavDrawer .navButton{min-height:44px}
 .mobileNavDrawer .navButton.active{
  background:rgba(202,164,59,.14);color:var(--gold-light)}
 .mobileNavOpen .mobileNavDrawer{transform:translateX(0)}
 .mobileNavOpen .mobileNavOverlay{opacity:1;visibility:visible}
 .content{width:100%;padding-top:max(72px,calc(env(safe-area-inset-top) + 58px))}
}
@media(prefers-reduced-motion:reduce){
 .mobileNavDrawer,.mobileNavOverlay{transition:none}
}
.newMemberRegistrations{
    margin:24px 0;
    padding:20px;
    border:1px solid #d4af37;
    background:rgba(212,175,55,.06);
}
.newMemberRegistrations h2{margin-top:0;color:#d4af37}
#newMemberRegistrationList{display:grid;gap:12px}
.newMemberRegistrationCard{
    display:grid;
    grid-template-columns:64px minmax(0,1fr) auto;
    gap:16px;
    align-items:center;
    padding:16px;
    border:1px solid #4b4124;
    background:#111;
}
.newMemberRegistrationCard img,
.newMemberPhotoPlaceholder{
    width:64px;height:64px;object-fit:cover;border-radius:50%;
    background:#292929;
}
.newMemberRegistrationCard>div:nth-child(2){
    display:grid;gap:4px;
}
.personRow.newMemberOutstanding{
    border-color:#d4af37;
    background:rgba(212,175,55,.1);
}
@media(max-width:700px){
    .newMemberRegistrationCard{grid-template-columns:52px 1fr}
    .newMemberRegistrationCard .rowActions{grid-column:1/-1}
}
