/* Shared BDF admin presentation. Deliberately leaves application states and form contracts intact. */
.dashboard-v2 { --bdf-purple:#247bd0; --bdf-orange:#1b73cf; --bdf-orange-dk:#145fae; --bdf-orange-lt:#edf5ff; --bdf-turquoise:#328fa8; --ink:#29313e; --ink-2:#53617a; --muted:#697487; --line:#e5eaf3; --bg:#f2f2f8; --surface:#fff; }
.v2-nav-divider { padding:19px 12px 5px; margin:0; border-top:1px solid #f0f2f6; margin-top:6px; }
.admin-v2 { padding:0; }
.admin-v2 > main.registration-admin-shell, .admin-v2 > main.payment-admin-shell { width:auto; max-width:none; margin:0 0 0 216px; padding:0 32px 48px; }
.admin-v2.is-login > main.registration-admin-shell, .admin-v2.is-login > main.payment-admin-shell { max-width:1000px; margin:0 auto; }
.admin-v2 .panel-topbar { padding:23px 0 0; margin-bottom:28px; min-height:48px; }
.admin-v2 .registration-admin-header, .admin-v2 .payment-admin-header { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin:0 0 27px; padding:0; border:0; }
.admin-v2 .registration-admin-header h1, .admin-v2 .payment-admin-header h1 { font:600 27px/1.3 DashboardSans,system-ui,sans-serif; letter-spacing:-.8px; margin:3px 0 0; }
.admin-v2 .eyebrow { color:#697487; font:650 9px/1.5 DashboardSans,system-ui,sans-serif; letter-spacing:1.35px; text-transform:uppercase; margin:0 0 5px; }
.admin-v2 .admin-header-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.admin-v2 .admin-header-actions:not(:has(>*)) { display:none; }
.admin-v2 h2, .admin-v2 h3, .admin-v2 h4 { font-family:DashboardSans,system-ui,sans-serif; font-weight:600; color:#29313e; letter-spacing:-.25px; }
.admin-v2 h2 { font-size:18px; margin:0 0 14px; }
.admin-v2 h3 { font-size:15px; }
.admin-v2 p, .admin-v2 li, .admin-v2 dd, .admin-v2 td { overflow-wrap:anywhere; }
.admin-v2 .btn { width:auto; min-height:40px; font-size:12px; padding:9px 14px; letter-spacing:0; text-transform:none; box-shadow:none; transform:none; }
.admin-v2 .btn.full { width:100%; }
.admin-v2 .btn.danger, .admin-v2 button.danger { color:#a44862; background:#fff2f5; border-color:#edc8d3; }
.admin-v2 .btn.danger:hover { background:#fce4ec; border-color:#dc9fb2; }
.admin-v2 .btn:disabled { opacity:.55; cursor:not-allowed; }
.admin-v2 label { min-width:0; color:#56647a; font-size:12px; }
.admin-v2 label>span:first-child { font-size:11px; font-weight:550; letter-spacing:0; text-transform:none; }
.admin-v2 input:not([type=checkbox]):not([type=radio]):not([type=hidden]), .admin-v2 select, .admin-v2 textarea { max-width:100%; min-width:0; min-height:42px; padding:10px 12px; border:1px solid #dce3ee; border-radius:8px; background:#fff; color:#35425a; font:400 13px/1.45 DashboardSans,system-ui,sans-serif; box-shadow:none; }
.admin-v2 input[type=checkbox], .admin-v2 input[type=radio] { accent-color:#247bd0; flex:none; width:17px; height:17px; }
.admin-v2 textarea { min-height:95px; resize:vertical; }
.admin-v2 input:focus-visible, .admin-v2 textarea:focus-visible, .admin-v2 select:focus-visible { outline:3px solid #217ee640; outline-offset:2px; border-color:#7bb3ee; }
.admin-v2 input::placeholder, .admin-v2 textarea::placeholder { color:#838da0; }
.admin-v2 form { min-width:0; }
.admin-v2 fieldset { min-width:0; border:1px solid #e5eaf3; border-radius:11px; padding:16px; }
.admin-v2 legend { font-size:12px; font-weight:600; padding:0 7px; }
.admin-v2 :is(.admin-user-section,.student-admin-section,.class-list-section,.class-create-panel,.class-migrate-panel,.workshop-event-section,.workshop-registration-section,.etk-section,.etk-new,.ku-panel,.ku-matches,.dev-cohort,.dev-new-report,.pay-period-charts,.pay-report,.pay-manual-panel,.pay-requests) { background:#fff; border:1px solid #edf0f6; border-radius:16px; padding:23px; margin-bottom:22px; box-shadow:none; }
.admin-v2 :is(.admin-user-card,.access-user-card,.registration-record,.pay-card,.dev-student,.workshop-editor,.student-account-list>article,.student-request-list>article,.etk-card) { background:#fff; border:1px solid #e7ebf3; border-radius:13px; box-shadow:none; }
.admin-v2 :is(.admin-user-form,.attendance-access-form,.class-form,.workshop-event-form,.student-account-create,.parent-account-create,.student-account-reset,.etk-form) { gap:16px; }
.admin-v2 :is(.registration-notice,.student-notice,.attendance-note,.dev-hint,.registration-scope-note) { border-radius:10px; padding:14px 17px; margin-bottom:18px; font-size:12px; line-height:1.65; box-shadow:none; }
.admin-v2 .registration-notice.success, .admin-v2 .registration-notice.ok { background:#edf7f1; border:1px solid #cde8db; color:#3d775e; }
.admin-v2 .registration-notice.error, .admin-v2 .student-notice.error { background:#fff0f4; border:1px solid #f1d0dc; color:#9d4966; }
.admin-v2 .registration-notice.warning, .admin-v2 .attendance-note-warning { background:#fff7eb; border:1px solid #efdfbf; color:#89622c; }
.admin-v2 :is(.registration-empty,.student-empty,.ku-empty,.attendance-empty,.etk-empty) { border:1px dashed #dce4f0; border-radius:12px; background:#f9fbff; color:#69768c; padding:24px; text-align:center; font-size:13px; }
.admin-v2 :is(.registration-filters,.pay-filters,.attendance-selector,.ku-search,.dev-class-picker) { border:1px solid #edf0f6; border-radius:14px; background:white; padding:19px; margin:0 0 22px; gap:14px; }
.admin-v2 :is(.admin-filter-selects,.pay-filters,.attendance-selector) { align-items:end; }
.admin-v2 :is(.admin-user-card strong,.registration-person>strong,.pay-who-link,.dev-student-name) { color:#34425a; }
.admin-v2 :is(.group-badge,.branch-badge,.class-badge,.age-badge,.student-status-badge,.pay-state,.student-status) { font-size:10px; letter-spacing:0; border-radius:6px; padding:4px 7px; box-shadow:none; }
.admin-v2 :is(.pay-state.paid,.student-status.paid,.student-status-badge.active) { color:#38775e; background:#e8f6ee; border-color:#d1e8da; }
.admin-v2 :is(.pay-state.unpaid,.pay-late-badge,.overdue-payment-badge) { color:#a04b68; background:#fff0f5; border-color:#f0d0dd; }
.admin-v2 :is(.pay-state.upcoming,.pay-partial-badge,.attendance-counts .warn) { color:#8d692d; background:#fff4e4; border-color:#eddcba; }
.admin-v2 table { width:100%; border-collapse:collapse; font-size:12px; background:#fff; }
.admin-v2 th { padding:13px 14px; font-size:10px; font-weight:600; color:#6c7890; text-align:left; text-transform:none; letter-spacing:.2px; background:#f6f8fc; border-bottom:1px solid #e9edf4; white-space:nowrap; }
.admin-v2 td { padding:14px; border-bottom:1px solid #edf0f5; color:#46536a; vertical-align:top; }
.admin-v2 tbody tr:hover { background:#fafcff; }
.admin-v2 :is(.ku-table-wrap,.pay-table-wrap,.attendance-history,.registration-table-wrap,.table-wrap,.class-attendance-preview) { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:thin; }
.admin-v2 summary { cursor:pointer; }
.admin-v2 summary:focus-visible { outline:3px solid #217ee6; outline-offset:4px; }
.admin-v2 :is(.registration-record-summary,.pay-group-head,.dev-student>summary,.class-roster-heading,.workshop-editor>summary,.etk-summary) { padding:17px 20px; border-radius:12px; }
.admin-v2 :is(.registration-record-body,.pay-detail-body,.dev-student-body,.class-roster-body,.etk-drawer) { border-top:1px solid #edf0f5; padding:20px; background:#fff; }
.admin-v2 .registration-records { gap:15px; }
.admin-v2 .reg-group-head, .admin-v2 .pay-group-head { color:#5a6980; border-color:#e8edf5; background:#f6f8fc; }
.admin-v2 .registration-admin-login { max-width:460px; margin:35px auto; }
.admin-v2 :is(.ku-grid,.ku-stat-row,.ku-contacts) { gap:18px; }
.admin-v2 .ku-stat { border-color:#e5ebf4; background:#fff; border-radius:12px; }
.admin-v2 .ku-stat strong { color:#386fa8; }
.admin-v2 .ku-search { display:flex; align-items:end; }
.admin-v2 .ku-search label { flex:1; }
.admin-v2 .ku-search em { font-size:10px; font-style:normal; color:#758298; }
.admin-v2 .pay-tabs { gap:8px; padding:0; margin-bottom:20px; }
.admin-v2 .pay-tabs a { border-radius:8px; background:#fff; border:1px solid #e4eaf3; color:#68758b; font-size:12px; }
.admin-v2 .pay-tabs a.active { color:#1d6fbf; border-color:#b9d5f4; background:#eaf3ff; }
.admin-v2 .pay-pie, .admin-v2 .pay-month { border-radius:12px; border-color:#e8edf5; background:#fff; }
.admin-v2 .pay-report-row { border-color:#e8edf5; }
.admin-v2 .pay-list { gap:14px; }
.admin-v2 .pay-drawer, .admin-v2 .pay-vault, .admin-v2 .pay-aging { border-radius:14px; box-shadow:none; border-color:#e5eaf3; }
.admin-v2 .pay-collect-form { background:#f4f8ff; border-color:#dbe9fb; border-radius:11px; }
.admin-v2 .attendance-days-grid { gap:8px; }
.admin-v2 .attendance-days a { border-radius:8px; border-color:#e4eaf3; }
.admin-v2 .attendance-days a.active { color:#1c6dbb; border-color:#8db8e6; background:#eaf3ff; }
.admin-v2 .attendance-student { border-radius:11px; border-color:#e6ebf4; background:#fff; box-shadow:none; }
.admin-v2 .attendance-status-options label { min-height:40px; border-radius:7px; }
.admin-v2 .attendance-save-bar { background:#fffffff5; border:1px solid #e2e9f4; border-radius:11px; box-shadow:0 5px 25px #344b7110; padding:14px 17px; }
.admin-v2 .dev-score { accent-color:#2d85db; }
.admin-v2 .dev-criteria-group { border:1px solid #e6ebf4; border-radius:12px; background:#fbfcff; padding:17px; }
.admin-v2 .dev-criterion { border-color:#edf1f6; }
.admin-v2 .dev-report-form { background:#f8faff; border-color:#e5edf8; border-radius:12px; }
.admin-v2 .class-status-navigation a { border-radius:8px; }
.admin-v2 .class-day-options label, .admin-v2 .access-class-grid label { border-radius:8px; border-color:#e5ebf4; }
.admin-v2 .class-student-row { background:#fbfcff; border-color:#e9edf5; border-radius:8px; }
.admin-v2 .etk-intro { color:#697487; font-size:13px; line-height:1.7; }
.admin-v2 .etk-meta { font-size:12px; color:#697487; }
.admin-v2 .admin-danger-zone, .admin-v2 .class-migrate-panel, .admin-v2 .attendance-delete-zone, .admin-v2 .pay-row-delete, .admin-v2 .pay-row-void, .admin-v2 .etk-delete { margin-top:22px; padding:16px; border:1px solid #edd4dd; border-radius:11px; background:#fffbfc; }
.admin-v2 .admin-danger-zone>summary { color:#99536b; font-size:12px; }
.admin-v2 .admin-backup-tools { padding:12px 15px; border:1px solid #e4e9f2; border-radius:10px; background:#f7f9fc; }
.admin-v2 .admin-backup-tools>summary { font-size:12px; color:#66768d; }
.admin-v2 .admin-backup-tools[open] { display:flex; gap:10px; flex-wrap:wrap; }
.admin-v2 .admin-backup-tools[open]>summary { flex-basis:100%; margin-bottom:9px; }
.admin-v2 .student-account-list dl { background:#f8faff; border-radius:8px; padding:13px; }
.admin-v2 .credential-share-box { background:#f0f7ff; border:1px solid #cce1f8; border-radius:12px; }
.admin-v2 .student-request-list>article { border-left:3px solid #e9b78a; }
.admin-v2 .student-public-header { max-width:1000px; margin:auto; padding:25px; border:0; background:transparent; }
.admin-v2 .student-auth-shell { max-width:500px; margin:30px auto; }
.admin-v2 .student-auth-card { border:1px solid #e8edf5; border-radius:16px; background:#fff; padding:28px; box-shadow:none; }
.admin-v2 .student-auth-card form { display:grid; gap:17px; }
.admin-v2 .student-auth-card label { display:grid; gap:7px; }
.admin-document-v2 .bar { max-width:100%; padding:10px 0; }
.admin-document-v2 .sheet { border-radius:14px; box-shadow:none; border:1px solid #e8edf5; margin:20px auto; }
.admin-document-v2 .bar button { background:#1b73cf; border-color:#1b73cf; }
@media(min-width:1700px) { .admin-v2>main.registration-admin-shell,.admin-v2>main.payment-admin-shell { padding-inline:46px; } }
@media(max-width:1199px) { .admin-v2>main.registration-admin-shell,.admin-v2>main.payment-admin-shell { margin-left:190px; padding-inline:25px; } .admin-v2 :is(.registration-filters,.pay-filters,.attendance-selector) { gap:12px; } .admin-v2 .admin-filter-selects { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:900px) { .admin-v2>main.registration-admin-shell,.admin-v2>main.payment-admin-shell { margin-left:176px; padding-inline:20px; } .admin-v2 .registration-admin-header,.admin-v2 .payment-admin-header { flex-wrap:wrap; } .admin-v2 :is(.ku-grid,.pay-chart-pair,.workshop-event-grid,.workshop-event-form,.admin-user-form,.student-account-create,.parent-account-create) { grid-template-columns:repeat(2,minmax(0,1fr)); } .admin-v2 .attendance-selector { grid-template-columns:1fr 1fr; } .admin-v2 .registration-edit-minor,.admin-v2 .registration-edit-adult { grid-template-columns:repeat(2,minmax(0,1fr)); } .admin-v2 .access-class-grid { grid-template-columns:1fr; } }
@media(max-width:680px) {
 .v2-nav-divider { grid-column:1/-1; padding-top:16px; }
 .admin-v2>main.registration-admin-shell,.admin-v2>main.payment-admin-shell { margin:0; padding:0 18px 35px; }
 .admin-v2.is-login>main.registration-admin-shell,.admin-v2.is-login>main.payment-admin-shell { margin:0; }
 .admin-v2 .panel-topbar { padding-top:17px; margin-bottom:24px; }
 .admin-v2 .registration-admin-header h1,.admin-v2 .payment-admin-header h1 { font-size:24px; }
 .admin-v2 .registration-admin-header,.admin-v2 .payment-admin-header { margin-bottom:22px; }
 .admin-v2 .admin-header-actions { width:100%; }
 .admin-v2 .btn { width:auto; min-height:44px; font-size:11px; white-space:normal; line-height:1.5; }
 .admin-v2 :is(.admin-user-section,.student-admin-section,.class-list-section,.class-create-panel,.class-migrate-panel,.workshop-event-section,.workshop-registration-section,.etk-section,.etk-new,.ku-panel,.ku-matches,.dev-cohort,.dev-new-report,.pay-period-charts,.pay-requests) { padding:18px 15px; border-radius:13px; margin-bottom:18px; }
 .admin-v2 :is(.registration-filters,.pay-filters,.attendance-selector,.ku-search,.dev-class-picker) { padding:16px; gap:13px; }
 .admin-v2 .ku-search { flex-wrap:wrap; }
 .admin-v2 .ku-search label { flex-basis:100%; }
 .admin-v2 :is(.admin-filter-selects,.registration-edit-minor,.registration-edit-adult,.ku-grid,.pay-chart-pair,.workshop-event-grid,.workshop-event-form,.admin-user-form,.student-account-create,.parent-account-create,.attendance-selector,.student-account-reset,.class-form,.etk-form,.dev-new-report) { grid-template-columns:minmax(0,1fr); }
 .admin-v2 input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.admin-v2 select,.admin-v2 textarea { font-size:16px; }
 .admin-v2 .wide { grid-column:1/-1; }
 .admin-v2 :is(.registration-record-summary,.pay-group-head,.class-roster-heading,.dev-student>summary,.etk-summary) { padding:15px; flex-wrap:wrap; gap:9px; }
 .admin-v2 :is(.registration-record-body,.pay-detail-body,.dev-student-body,.class-roster-body,.etk-drawer) { padding:16px 13px; }
 .admin-v2 .registration-person { flex-wrap:wrap; min-width:0; }
 .admin-v2 .registration-summary-meta { flex-wrap:wrap; }
 .admin-v2 .pay-tabs { display:flex; flex-wrap:wrap; }
 .admin-v2 .pay-tabs a { flex:1 1 auto; text-align:center; min-height:42px; }
 .admin-v2 .pay-bulk-bar { flex-wrap:wrap; gap:10px; }
 .admin-v2 .pay-bulk-bar>* { max-width:100%; }
 .admin-v2 .pay-collect-form,.admin-v2 .pay-edit-form,.admin-v2 .pay-remind-form { grid-template-columns:1fr; }
 .admin-v2 .attendance-student { grid-template-columns:minmax(0,1fr); gap:12px; }
 .admin-v2 .attendance-status-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
 .admin-v2 .attendance-status-options label { min-width:0; padding:8px 5px; font-size:10px; }
 .admin-v2 .attendance-save-bar { position:static; margin-top:15px; flex-wrap:wrap; }
 .admin-v2 .attendance-days-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .admin-v2 .dev-criterion { grid-template-columns:1fr; gap:8px; }
 .admin-v2 .dev-scorelist { flex-wrap:wrap; gap:8px; }
 .admin-v2 .admin-user-actions,.admin-v2 .workshop-card-actions,.admin-v2 .etk-card-actions { flex-wrap:wrap; gap:8px; }
 .admin-v2 .student-request-list>article { display:flex; flex-direction:column; gap:15px; }
 .admin-v2 .class-student-row { flex-wrap:wrap; gap:10px; }
 .admin-v2 .class-add-student { grid-template-columns:1fr; }
 .admin-v2 .admin-backup-tools { width:100%; }
 .admin-v2 .admin-danger-zone { padding:14px; }
 .admin-document-v2 .sheet { padding:24px 18px; width:100%; }
 .admin-document-v2 .bar { padding-inline:0; }
}
@media print {
 .admin-v2 .v2-sidebar,.admin-v2 .panel-topbar,.admin-v2 .v2-skip { display:none!important; }
 .admin-v2>main.registration-admin-shell,.admin-v2>main.payment-admin-shell { margin:0!important; padding:0!important; }
 .admin-document-v2 { background:#fff; color:var(--ink); font:15px/1.6 "Segoe UI",system-ui,sans-serif; }
 .admin-document-v2 .sheet { max-width:none; border:0; border-radius:0; margin:0; padding:0; box-shadow:none; }
 .admin-document-v2 .sheet h1 { font-size:1.45rem; margin:5px 0 0; }
}

.v2-sidebar { overflow-x:hidden; }
.dashboard-v2 .v2-nav .btn { min-width:0; white-space:normal; }
@media(max-width:680px) { .admin-v2 .pay-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); } .admin-v2 .pay-tabs a:last-child:nth-child(odd) { grid-column:1/-1; } }

/* Tablet content width is smaller than the viewport because the sidebar remains visible. */
@media(min-width:681px) and (max-width:1199px) {
 .admin-v2 .attendance-student { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 .admin-v2 .attendance-note { grid-column:1/-1; }
 .admin-v2 .attendance-status-options { min-width:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
 .admin-v2 .attendance-status-options label { min-width:0; font-size:10px; }
}
.admin-v2 .attendance-day.secili { outline-color:#247bd0; }
.admin-v2 .class-day-options input:checked+span { border-color:#3386d7; background:#edf6ff; color:#2569aa; box-shadow:inset 0 0 0 1px #3386d7; }
.admin-v2 .dev-group-hint,.admin-v2 .class-days,.admin-v2 .attendance-days { background:#f8faff; border-color:#e5ebf5; color:#65748a; }
.admin-v2 .dev-group-hint em { color:#455772; }
.admin-v2 .registration-admin-filters { background:#fff; border:1px solid #edf0f6; border-radius:14px; padding:19px; }
.admin-v2 .attendance-access-panel, .admin-v2 .student-account-list details { background:#f9fbff; border-color:#e5ebf4; }
.admin-v2 .student-account-list details>summary { color:#526c8c; }
.admin-v2 :is(div,section,article,details):has(>table) { max-width:100%; overflow-x:auto; scrollbar-width:thin; }

/* Shared screen contrast. Existing responsive layout and print rules are preserved. */
@media screen {
 .dashboard-v2 {
  --v2-bg:#D2DCE9; --v2-ink:#142338; --v2-muted:#445A73; --v2-line:#8EA6C3; --v2-accent:#2F6FDD;
  --bg:#D2DCE9; --surface:#FFFFFF; --ink:#142338; --ink-2:#445A73; --muted:#445A73; --line:#8EA6C3;
  --bdf-orange:#2F6FDD; --bdf-orange-dk:#245BB9; --bdf-orange-lt:#E4EDF7; --bdf-purple:#2F6FDD;
  --pay-green-text:#155C3D; --pay-green-bg:#DCF3E7; --pay-green-line:#438362;
  --pay-red-text:#8A2031; --pay-red-bg:#FFE7EB; --pay-red-line:#B65A6B;
  --pay-amber-text:#704600; --pay-amber-bg:#FFF0CF; --pay-amber-line:#A77B2D;
  background-color:#D2DCE9; color:#142338;
 }
 .dashboard-v2 :is(.v2-sidebar,.v2-panel,.v2-metric,.dash-today-card,.dash-tasks li,.registration-admin-login,
  .admin-user-section,.student-admin-section,.class-list-section,.class-create-panel,.class-migrate-panel,
  .workshop-event-section,.workshop-registration-section,.etk-section,.etk-new,.ku-panel,.ku-matches,.ku-stat,
  .dev-cohort,.dev-new-report,.pay-period-charts,.pay-report,.pay-manual-panel,.pay-requests,
  .admin-user-card,.access-user-card,.registration-record,.pay-card,.dev-student,.workshop-editor,
  .student-account-list>article,.student-request-list>article,.etk-card,.attendance-student,
  .registration-record-body,.pay-detail-body,.dev-student-body,.class-roster-body,.etk-drawer,
  .pay-month,.pay-pie,.pay-drawer,.pay-vault,.pay-aging,.student-auth-card,.sheet) {
  background:#FFFFFF; border-color:#8EA6C3; color:#142338;
 }
 .dashboard-v2 :is(.registration-admin-filters,.registration-filters,.admin-filter-selects,.pay-filters,.attendance-selector,.ku-search,
  .dev-class-picker,.admin-backup-tools,.attendance-access-panel,.student-account-list details,
  .registration-edit-panel,.registration-edit-form,.pay-collect-form,.pay-edit-form,.pay-remind-form,.dev-report-form,.dev-criteria-group,
  .class-days,.attendance-days,.dev-group-hint,.student-account-list dl) {
  background:#E4EDF7; border-color:#8EA6C3; color:#142338;
 }
 .dashboard-v2 :is(h1,h2,h3,h4,.v2-metric strong,.v2-capacity-label strong,.v2-donut figcaption strong,
  .pay-who-link,.registration-person>strong,.dev-student-name,.ku-stat strong,.v2-payment-legend a>strong) {
  color:#142338; font-weight:700;
 }
 .dashboard-v2 :is(p,dt,label,small,.eyebrow,.v2-overline,.v2-breadcrumb,.v2-nav-label,.v2-footer,
  .v2-metric-label,.v2-metric small,.v2-panel-description,.v2-chart-note,.v2-capacity-context,
  .v2-capacity-label>span,.v2-capacity-chart>span,.v2-donut figcaption span,.v2-legend-label,
  .v2-collected>span,.v2-collected small,.dash-today-main>span,.dash-tasks li span,.pay-card-meta,
  .ku-stat span,.ku-stat small,.etk-intro,.etk-meta,.dev-group-hint em) { color:#445A73; }
 .dashboard-v2 :is(.v2-capacity-schedule,.v2-collected>strong,.pay-amount,.pay-group-name,.pay-who strong) { color:#142338; }
 .dashboard-v2 :is(.v2-period,.v2-count,.v2-legend-label small,.v2-priority,.class-student-row,
  .registration-empty,.student-empty,.ku-empty,.attendance-empty,.etk-empty,.v2-bar-track) {
  background:#E4EDF7; border-color:#8EA6C3; color:#445A73;
 }
 .dashboard-v2 :is(.v2-menu-toggle,.btn,.bar a) { background:#FFFFFF; border-color:#8EA6C3; color:#142338; }
 .dashboard-v2 .pay-tabs a { background:#FFFFFF; border-color:#8EA6C3; color:#445A73; }
 .dashboard-v2 :is(.btn.primary,.bar button) { background:#2F6FDD; border-color:#2F6FDD; color:#FFFFFF; }
 .dashboard-v2 .btn.primary:hover { background:#245BB9; border-color:#245BB9; color:#FFFFFF; }
 .dashboard-v2 :is(.btn.danger,button.danger) { background:#FFE7EB; border-color:#B65A6B; color:#8A2031; }
 .dashboard-v2 .btn:disabled { opacity:1; background:#E4EDF7; border-color:#8EA6C3; color:#445A73; }
 .dashboard-v2 :is(.v2-nav a.active,.pay-tabs a.active,.class-status-navigation a.active) {
  background:#E4EDF7; border-color:#2F6FDD; color:#142338;
 }
 .dashboard-v2 .v2-text-link { color:#142338!important; text-decoration:underline; text-decoration-color:#2F6FDD; }
 .dashboard-v2 :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea) {
  background:#FFFFFF; border-color:#8EA6C3; color:#142338;
 }
 .dashboard-v2 :is(input,textarea)::placeholder { color:#445A73; opacity:1; }
 .dashboard-v2 :is(input,select,textarea,button,a,summary):focus-visible { outline:2px solid #2F6FDD; outline-offset:3px; }
 .dashboard-v2 :is(input[type=checkbox],input[type=radio]) { accent-color:#2F6FDD; }
 .dashboard-v2 :is(.reg-group-head,.pay-group-head) { background:#B7C9E0; border-color:#8EA6C3; color:#142338; }
 .dashboard-v2 table { background:#FFFFFF; color:#142338; }
 .dashboard-v2 th { background:#B7C9E0; border-color:#8EA6C3; color:#142338; font-weight:700; }
 .dashboard-v2 td { border-color:#8EA6C3; color:#142338; }
 .dashboard-v2 tbody tr:nth-child(odd)>td { background:#FFFFFF; }
 .dashboard-v2 tbody tr:nth-child(even)>td { background:#E4EDF7; }
 .dashboard-v2 :is(.attendance-save-bar,fieldset) { background:#FFFFFF; border-color:#8EA6C3; color:#142338; }
 .dashboard-v2 :is(.registration-notice.success,.registration-notice.ok,.student-notice.success,
  .pay-state b.ok,.pay-state.paid,.student-status.paid,.student-status-badge.active,.ku-status.active,.ku-stat.ok strong) {
  background:#DCF3E7; border-color:#438362; color:#155C3D;
 }
 .dashboard-v2 :is(.registration-notice.error,.student-notice.error,.pay-state b.late,.pay-state.unpaid,
  .pay-late-badge,.overdue-payment-badge,.student-status.overdue,.ku-stat.bad strong) {
  background:#FFE7EB; border-color:#B65A6B; color:#8A2031;
 }
 .dashboard-v2 :is(.registration-notice.warning,.attendance-note-warning,.pay-state b.due,.pay-state.upcoming,
  .student-status.pending,.ku-status.on_break,.ku-stat.warn strong) {
  background:#FFF0CF; border-color:#A77B2D; color:#704600;
 }
 .dashboard-v2 :is(.pay-state b.partial,.pay-partial-badge,.pay-discount-badge) {
  background:#F1EAFB; border-color:#9073B6; color:#513385;
 }
 .dashboard-v2 :is(.pay-state b.exempt,.pay-exempt-note,.pay-state.voided,.ku-status.inactive) {
  background:#E4EDF7; border-color:#8EA6C3; color:#445A73;
 }
 .dashboard-v2 .pay-card.state-paid { border-left-color:#438362; }
 .dashboard-v2 .pay-card:is(.state-unpaid,.state-overdue) { border-left-color:#B65A6B; }
 .dashboard-v2 .pay-card.state-partial { border-left-color:#9073B6; }
 .dashboard-v2 .pay-card.state-upcoming { border-left-color:#A77B2D; }
 .dashboard-v2 .pay-card:is(.state-exempt,.state-voided) { border-left-color:#8EA6C3; }
 .dashboard-v2 .admin-danger-zone { background:#FFE7EB; border-color:#B65A6B; }
 .dashboard-v2 .admin-danger-zone>summary { color:#8A2031; }
}

/* BDF v4: the approved palette on existing admin components at every screen size. */
@media screen {
 .dashboard-v2 { --v4-blue:#DBEAFE; --v4-green:#DCFCE7; --v4-orange:#FFEDD5; --v4-purple:#F3E8FF; --v4-pink:#FCE7F3; }
 .dashboard-v2 [data-v4-color="0"] { --v4-card-bg:var(--v4-blue); --v4-card-line:#4175BA; }
 .dashboard-v2 [data-v4-color="1"] { --v4-card-bg:var(--v4-green); --v4-card-line:#27845B; }
 .dashboard-v2 [data-v4-color="2"] { --v4-card-bg:var(--v4-orange); --v4-card-line:#B25C16; }
 .dashboard-v2 [data-v4-color="3"] { --v4-card-bg:var(--v4-purple); --v4-card-line:#8751B7; }
 .dashboard-v2 [data-v4-color="4"] { --v4-card-bg:var(--v4-pink); --v4-card-line:#B54F83; }
 .dashboard-v2 [data-v4-color]:is(article,details,li,div,tr,a) { background:var(--v4-card-bg); border-color:var(--v4-card-line); color:#142338; opacity:1; }
 .dashboard-v2 .v2-metrics>.v2-metric:nth-child(1) { background:#DBEAFE; border-color:#4175BA; }
 .dashboard-v2 .v2-metrics>.v2-metric:nth-child(2) { background:#FFEDD5; border-color:#B25C16; }
 .dashboard-v2 .v2-metrics>.v2-metric:nth-child(3) { background:#DCFCE7; border-color:#27845B; }
 .dashboard-v2 .v2-metrics>.v2-metric:nth-child(4) { background:#F3E8FF; border-color:#8751B7; }
 .dashboard-v2 .v2-capacity-list>[data-v4-color] { padding:12px; border:1px solid var(--v4-card-line); border-radius:10px; }
 .dashboard-v2 .v2-capacity-list>[data-v4-color] .v2-bar-track { background:#FFFFFF; }
 .dashboard-v2 .v2-capacity-list>[data-v4-color] .v2-bar-track>span { background:var(--v4-card-line); }
 .dashboard-v2 tr[data-v4-color]>td { background:var(--v4-card-bg); border-color:var(--v4-card-line); color:#142338; }
 .dashboard-v2 [data-v4-color]>:is(header,summary,.registration-record-body,.dev-student-body,.class-roster-body,.etk-drawer) { background:transparent; border-color:var(--v4-card-line); }
 .dashboard-v2 .dash-tasks li:has(a[href^="payment-admin.php"]) { --v4-card-bg:#FEE2E2; --v4-card-line:#B94040; }
 .dashboard-v2 .dash-tasks li:has(a[href^="kursiyer.php"]) { --v4-card-bg:#FFEDD5; --v4-card-line:#B25C16; }
 .dashboard-v2 .dash-tasks li:has(a[href^="attendance-admin.php"]) { --v4-card-bg:#DBEAFE; --v4-card-line:#4175BA; }
 .dashboard-v2 .dash-tasks li:has(a[href^="development-admin.php"]) { --v4-card-bg:#F3E8FF; --v4-card-line:#8751B7; }
 .dashboard-v2 .dash-tasks li:has(a[href*="media_consent=denied"]) { --v4-card-bg:#DCFCE7; --v4-card-line:#27845B; }
 .dashboard-v2 .dash-tasks li { background:var(--v4-card-bg,#DBEAFE); border-color:var(--v4-card-line,#4175BA); }
 .dashboard-v2 [data-v4-color] :is(.pay-who>span,.pay-card-meta,.class-admin-card small,.dev-student-meta,.dev-feedback-meta,.dev-report-meta,.ku-stat span,.ku-stat small,.etk-meta,.attendance-student-main small) { color:#445A73; }
 .dashboard-v2 :is(.v2-capacity-label>span,.v2-capacity-context,.v2-capacity-chart>span,.dash-today-main>span,.dash-tasks li span,.v2-metric-label,.v2-metric small) { color:#445A73; }
 .dashboard-v2 :is([data-v4-color] strong,.v2-metric strong) { color:#142338; }
 .dashboard-v2 .dash-tasks .v2-priority { background:#FFFFFF; color:#445A73; }
 .dashboard-v2 :is(.ku-contact-role,.attendance-note em,.dev-stat,.reg-group-count,.pay-group-count,.pay-group-figures) { color:#445A73; }
 .dashboard-v2 .dash-today-card .dash-today-state { background:#FFFFFF; color:#445A73; }
 .dashboard-v2 :is(.reg-group-name,.pay-group-name) { color:#142338; }
 .dashboard-v2 [data-v4-color] :is(label>span,small,time,.registration-summary-meta,.registration-summary-meta>span) { color:#445A73; }
}

/* Keep the mobile header in view; contain wide data tables inside their own scrollers. */
@media screen and (max-width:680px) {
 html:has(body.dashboard-v2) { overflow-x:clip; }
 body.dashboard-v2 { width:100%; min-width:0; max-width:100%; overflow-x:clip; }
 .dashboard-v2 .v2-sidebar { position:sticky; top:0; inset-inline:0; z-index:100; width:100%; max-width:100%; box-sizing:border-box; overflow:visible; margin:0; background:#FFFFFF; border-bottom:1px solid #8EA6C3; }
 .dashboard-v2 .v2-nav { position:absolute; top:100%; left:0; right:0; width:100%; box-sizing:border-box; margin:0; padding:12px; max-height:calc(100vh - 79px); max-height:calc(100dvh - 79px); overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; background:#FFFFFF; border-bottom:1px solid #8EA6C3; }
 .dashboard-v2 .v2-brand { max-width:calc(100% - 90px); min-width:0; }
 .dashboard-v2 .registration-admin-shell,.dashboard-v2 .payment-admin-shell { width:100%; min-width:0; max-width:100%; box-sizing:border-box; margin-inline:0; }
 .admin-v2>main.registration-admin-shell,.admin-v2>main.payment-admin-shell { padding-inline:12px; }
 .dashboard-v2 .v2-content { padding-inline:12px; }
 .dashboard-v2 .v2-topbar:not(.panel-topbar) { padding-inline:12px; }
 .dashboard-v2 :is(.v2-content,.attendance-shell,.attendance-schedule,.attendance-schedule-card,.attendance-list,.registration-admin-header,.payment-admin-header,.pay-list,.class-admin-list,.dev-cohort) { min-width:0; max-width:100%; box-sizing:border-box; }
 .dashboard-v2 .attendance-schedule { grid-template-columns:minmax(0,1fr); }
 .dashboard-v2 .attendance-schedule-card { width:100%; overflow-wrap:anywhere; }
 .dashboard-v2 .attendance-schedule-card.active { outline:2px solid #142338; outline-offset:2px; }
 .dashboard-v2 :is(input,select,textarea) { min-width:0; max-width:100%; box-sizing:border-box; }
 .dashboard-v2 :is(.ku-table-wrap,.pay-table-wrap,.registration-table-wrap,.table-wrap,.class-attendance-preview) { width:100%; min-width:0; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
 .dashboard-v2 :is([id],input,select,textarea,button,a,summary) { scroll-margin-top:90px; }
}
@media screen {
 .dashboard-v2 tbody tr:nth-child(5n+1) { --v4-card-bg:#DBEAFE; --v4-card-line:#4175BA; }
 .dashboard-v2 tbody tr:nth-child(5n+2) { --v4-card-bg:#DCFCE7; --v4-card-line:#27845B; }
 .dashboard-v2 tbody tr:nth-child(5n+3) { --v4-card-bg:#FFEDD5; --v4-card-line:#B25C16; }
 .dashboard-v2 tbody tr:nth-child(5n+4) { --v4-card-bg:#F3E8FF; --v4-card-line:#8751B7; }
 .dashboard-v2 tbody tr:nth-child(5n+5) { --v4-card-bg:#FCE7F3; --v4-card-line:#B54F83; }
 .dashboard-v2 tbody tr:nth-child(n)>td { background:var(--v4-card-bg,#FFFFFF); border-color:var(--v4-card-line,#8EA6C3); color:#142338; }
 .dashboard-v2 .attendance-history-list>a>div:first-child>span { color:#445A73; }
}
