/* V8: role-scoped appearance only. Login and operational permissions are unchanged. */
.dashboard-page[data-dashboard-role]{font-family:var(--dash-font-family);font-size:var(--dash-font-size);background:var(--dash-page-bg);color:var(--dash-text)}
.dashboard-page[data-dashboard-role] input,.dashboard-page[data-dashboard-role] select,.dashboard-page[data-dashboard-role] textarea,.dashboard-page[data-dashboard-role] button{font-family:inherit}
.dashboard-page[data-dashboard-role] .student-titlebar,.dashboard-page[data-dashboard-role] .topbar{height:auto;min-height:var(--dash-title-height);padding:8px 28px;background:var(--dash-header-bg);color:var(--dash-header-text)}
.dashboard-page[data-dashboard-role] .student-heading h1,.dashboard-page[data-dashboard-role] .student-heading small{color:var(--dash-header-text)}
.dashboard-page[data-dashboard-role] .content{min-height:calc(100dvh - var(--dash-title-height))}
.dashboard-page[data-dashboard-role] .panel,.dashboard-page[data-dashboard-role] .action-card,.dashboard-page[data-dashboard-role] .detail-dialog,.dashboard-page[data-dashboard-role] .notice-card-grid{border-radius:var(--dash-radius);background:var(--dash-card-bg);border-color:var(--dash-border)}
.dashboard-page[data-dashboard-role] .panelhead,.dashboard-page[data-dashboard-role] .balance-v06 .balance-header{min-height:var(--dash-card-header-height);padding:var(--dash-card-header-padding) 20px;background:var(--dash-card-header-bg);color:var(--dash-card-header-text);border-top:var(--dash-accent-width) solid var(--dash-accent-color);border-bottom:1px solid var(--dash-border);border-radius:calc(var(--dash-radius) - 1px) calc(var(--dash-radius) - 1px) 0 0;gap:12px}
.dashboard-page[data-dashboard-role] .panelhead h2,.dashboard-page[data-dashboard-role] .panelhead h3,.dashboard-page[data-dashboard-role] .panelhead p,.dashboard-page[data-dashboard-role] .balance-v06 .balance-header h2,.dashboard-page[data-dashboard-role] .balance-v06 .balance-header>.icon{color:var(--dash-card-header-text)}
.dashboard-page[data-dashboard-role] .content .panelhead a:not(.button):not(.action-card):not(.quick-link){color:var(--dash-card-header-text)}
.dashboard-page[data-dashboard-role] .panelhead button,.dashboard-page[data-dashboard-role] .dialog-header button{min-height:44px;background:var(--dash-card-bg);color:var(--dash-text);border-color:var(--dash-border)}
.dashboard-page[data-dashboard-role] .balance-v06 .status-header{background:var(--dash-status-header-bg);color:var(--dash-status-header-text)}
.dashboard-page[data-dashboard-role] .balance-v06 .status-header h2,.dashboard-page[data-dashboard-role] .balance-v06 .status-header>.icon{color:var(--dash-status-header-text)}
.dashboard-page[data-dashboard-role] .calendar-panel,.dashboard-page[data-dashboard-role] .notice-card-grid,.dashboard-page[data-dashboard-role] .detail-dialog,.dashboard-page[data-dashboard-role] .schedule-context{border-top:var(--dash-accent-width) solid var(--dash-accent-color)}
.dashboard-page[data-dashboard-role] .schedule-context{border-radius:calc(var(--dash-radius) - 1px) calc(var(--dash-radius) - 1px) 0 0}
.dashboard-page[data-dashboard-role] .dialog-header{background:var(--dash-card-header-bg);color:var(--dash-card-header-text);padding:var(--dash-card-header-padding) 20px;min-height:var(--dash-card-header-height)}
.dashboard-page[data-dashboard-role] .dialog-header h2,.dashboard-page[data-dashboard-role] .dialog-header .eyebrow{color:var(--dash-card-header-text)}
.dashboard-page[data-dashboard-role] table{border-collapse:separate;border-spacing:0;border:1px solid var(--dash-border);border-top:var(--dash-accent-width) solid var(--dash-accent-color);border-radius:var(--dash-radius);overflow:hidden}
.dashboard-page[data-dashboard-role] table thead th{background:var(--dash-table-header-bg);color:var(--dash-table-header-text);height:var(--dash-table-header-height);padding:8px 12px;box-sizing:border-box}
.dashboard-page[data-dashboard-role] table td{border-color:var(--dash-border)}
.dashboard-page[data-dashboard-role] .schedule-week table{border-radius:var(--dash-radius)}
.dashboard-page[data-dashboard-role] .profile-v07-layout,.dashboard-page[data-dashboard-role] .profile-v07-column,.dashboard-page[data-dashboard-role] .balance-summary-grid,.dashboard-page[data-dashboard-role] .overview-grid,.dashboard-page[data-dashboard-role] .quick-grid,.dashboard-page[data-dashboard-role] .upcoming-grid,.dashboard-page[data-dashboard-role] .profile-sections,.dashboard-page[data-dashboard-role] .profile-stack{gap:var(--dash-card-gap)}
.dashboard-page[data-dashboard-role] .profile-photo-large{border-color:var(--dash-accent-color)}
.dashboard-page[data-dashboard-role] .primary,.dashboard-page[data-dashboard-role] .theme-preview-tabs button[aria-pressed=true]{background:var(--dash-primary-bg);color:var(--dash-primary-text);border-color:var(--dash-primary-bg)}
.dashboard-page[data-dashboard-role] .content a:not(.button):not(.action-card):not(.quick-link){color:var(--dash-link-color)}
.dashboard-page[data-dashboard-role] :focus-visible{outline-color:var(--dash-accent-color)}
.dashboard-page[data-dashboard-role] .student-bell{background:var(--dash-card-bg);border-color:var(--dash-border)}
.dashboard-page[data-dashboard-role] .calendar-toolbar h2{color:var(--dash-text)}
.dashboard-page[data-dashboard-role] .calendar-day.today .day-number{background:var(--dash-accent-color);color:#172541}
.dashboard-page[data-dashboard-role] .calendar-event.category-0{background:var(--dash-event-0-bg);color:var(--dash-event-0-text)}
.dashboard-page[data-dashboard-role] .calendar-event.category-1{background:var(--dash-event-1-bg);color:var(--dash-event-1-text)}
.dashboard-page[data-dashboard-role] .calendar-event.category-2{background:var(--dash-event-2-bg);color:var(--dash-event-2-text)}
.dashboard-page[data-dashboard-role] .calendar-event.category-3{background:var(--dash-event-3-bg);color:var(--dash-event-3-text)}
/* Appearance editor and synthetic preview controls. */
.v08-scope-bar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:20px}.v08-scope-bar .field{margin:0;min-width:min(300px,100%)}.v08-scope-bar .tag{align-self:center}
.v08-controls summary{cursor:pointer;min-height:52px;padding:12px 20px;background:var(--dash-card-header-bg);color:var(--dash-card-header-text);border-top:var(--dash-accent-width) solid var(--dash-accent-color);font-weight:600}
.v08-controls .theme-grid{padding:20px}.v08-controls input[type=color]{width:100%;min-height:44px}.v08-controls input[type=number]{width:100%;min-height:44px}
.v08-save-bar{position:sticky;bottom:0;z-index:2;padding:12px;background:var(--dash-card-bg);border:1px solid var(--dash-border);border-radius:var(--dash-radius)}
.v08-preview-tools{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin:16px 0}.v08-preview-tools .field,.v08-preview-tools .theme-preview-tabs{margin:0}.v08-preview-tools .field{flex:1;min-width:160px}
.v08-style-workspace>div{min-width:0}.v08-style-workspace .preview-column{min-width:0}.v08-demo .v08-demo-table{display:block;overflow-x:auto}.v08-demo-table table{min-width:650px;width:100%}
@media(max-width:800px){
 .dashboard-page[data-dashboard-role] .student-titlebar,.dashboard-page[data-dashboard-role] .topbar{min-height:var(--dash-title-mobile-height);padding:10px 16px}
 .dashboard-page[data-dashboard-role] .content{min-height:calc(100dvh - var(--dash-title-mobile-height))}
 .dashboard-page[data-dashboard-role] .panelhead,.dashboard-page[data-dashboard-role] .balance-v06 .balance-header{padding:var(--dash-card-header-padding) 16px}
 .v08-save-bar{position:static}.v08-save-bar button{width:100%}.v08-controls .theme-grid{padding:16px}
}
.dashboard-page[data-dashboard-role] .calendar-panel .is-today .date-number{background:var(--dash-accent-color);color:var(--dash-accent-text,#172541)}
.dashboard-page[data-dashboard-role] .calendar-legend .category-dot.category-0{background:var(--dash-event-0-text)}
.dashboard-page[data-dashboard-role] .calendar-legend .category-dot.category-1{background:var(--dash-event-1-text)}
.dashboard-page[data-dashboard-role] .calendar-legend .category-dot.category-2{background:var(--dash-event-2-text)}
.dashboard-page[data-dashboard-role] .calendar-legend .category-dot.category-3{background:var(--dash-event-3-text)}
.dashboard-page[data-dashboard-role] .panelbody,.dashboard-page[data-dashboard-role] .panelhead,.dashboard-page[data-dashboard-role] .schedule-context{font-size:var(--dash-font-size)}
.dashboard-page[data-dashboard-role] table td,.dashboard-page[data-dashboard-role] table th,.dashboard-page[data-dashboard-role] .field label,.dashboard-page[data-dashboard-role] .profile-v06-list dt{font-size:calc(var(--dash-font-size) * .9286)}
.dashboard-page[data-dashboard-role] .profile-v06-list dd,.dashboard-page[data-dashboard-role] input:not([type=color]),.dashboard-page[data-dashboard-role] select,.dashboard-page[data-dashboard-role] textarea{font-size:var(--dash-font-size)}
.dashboard-page[data-dashboard-role] .student-welcome,.dashboard-page[data-dashboard-role] .hero{background:var(--dash-card-header-bg);color:var(--dash-card-header-text);border-top:var(--dash-accent-width) solid var(--dash-accent-color);border-radius:var(--dash-radius)}
.dashboard-page[data-dashboard-role] .student-welcome h2,.dashboard-page[data-dashboard-role] .student-welcome p,.dashboard-page[data-dashboard-role] .year-card small,.dashboard-page[data-dashboard-role] .year-card span,.dashboard-page[data-dashboard-role] .hero h2,.dashboard-page[data-dashboard-role] .hero p{color:var(--dash-card-header-text)}
.dashboard-page[data-dashboard-role] .student-welcome .eyebrow,.dashboard-page[data-dashboard-role] .hero .eyebrow{color:var(--dash-hero-accent-text,var(--dash-card-header-text))}
.dashboard-page[data-dashboard-role] .dashboard-brand small{color:var(--dash-brand-text,var(--dash-label-text))}
.dashboard-page[data-dashboard-role] input,.dashboard-page[data-dashboard-role] select,.dashboard-page[data-dashboard-role] textarea{color:var(--dash-text);background:var(--dash-card-bg);border-color:var(--dash-border)}
.dashboard-page[data-dashboard-role] .calendar-panel .date-cell{background:var(--dash-card-bg);color:var(--dash-text)}
.dashboard-page[data-dashboard-role] .schedule-week tbody th,.dashboard-page[data-dashboard-role] .schedule-week tbody td{color:var(--dash-text)}
/* Keep Save in document flow: it must never cover a color or section heading. */
.v08-save-bar{position:static}
