.daryn-dashboard {
    --daryn-bg: #f6f5f1;
    --daryn-surface: #ffffff;
    --daryn-border: #e4e2dc;
    --daryn-border-light: #edecea;
    --daryn-text: #1a1817;
    --daryn-text-dim: #6b6560;
    --daryn-text-muted: #a09a93;
    --daryn-accent: #2d5de0;
    --daryn-accent-light: #e8eeff;
    --daryn-gold: #c8941f;
    --daryn-gold-bg: #fef9eb;
    --daryn-silver: #6b7b85;
    --daryn-silver-bg: #f0f3f5;
    --daryn-bronze: #9e6930;
    --daryn-bronze-bg: #fdf5ec;
    --daryn-noplace: #8890a0;
    --daryn-noplace-bg: #f2f3f5;
    --daryn-gratitude: #7c5dad;
    --daryn-gratitude-bg: #f4f0fa;
    --daryn-success: #2a9d5c;
    --daryn-success-bg: #edf8f1;
    --daryn-danger: #d64040;
    --daryn-lv-rayon: #64748b;
    --daryn-lv-gorod: #3b82f6;
    --daryn-lv-oblast: #f59e0b;
    --daryn-lv-respub: #ef4444;
    --daryn-lv-inter: #a855f7;
    --daryn-heat-0: #f6f5f1;
    --daryn-heat-1: #e0edff;
    --daryn-heat-2: #bdd6ff;
    --daryn-heat-3: #8ab8ff;
    --daryn-heat-4: #5a96f5;
    --daryn-heat-5: #2d5de0;
}

.daryn-dashboard {
    max-width: 1400px;
    margin: 0 auto;
    padding: 20px 0 80px;
    color: var(--daryn-text);
    line-height: 1.5;
}

/* ── HEADER ── */
.daryn-dashboard .daryn-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 24px; padding-bottom: 20px; border-bottom: 2px solid var(--daryn-text); }
.daryn-dashboard .daryn-header-badge { font-weight: 800; font-size: 10px; letter-spacing: 3px; color: var(--daryn-accent); margin-bottom: 6px; text-transform: uppercase; }
.daryn-dashboard .daryn-header-title { font-weight: 600; font-size: 28px; letter-spacing: -0.5px; }
.daryn-dashboard .daryn-header-right { text-align: right; font-size: 13px; color: var(--daryn-text-dim); }

/* ── KPI ROW ── */
.daryn-dashboard .daryn-kpi-row { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; margin-bottom: 24px; }
.daryn-dashboard .daryn-kpi-card { background: var(--daryn-surface); border: 1px solid var(--daryn-border); border-radius: 12px; padding: 16px 18px; }
.daryn-dashboard .daryn-kpi-label { font-size: 10px; text-transform: uppercase; letter-spacing: 1px; color: var(--daryn-text-muted); margin-bottom: 4px; font-weight: 500; }
.daryn-dashboard .daryn-kpi-value { font-weight: 600; font-size: 26px; line-height: 1.1; }
.daryn-dashboard .daryn-kpi-sub { font-size: 11px; color: var(--daryn-text-dim); margin-top: 3px; }
.daryn-dashboard .daryn-kpi-value-noplace { color: var(--daryn-noplace); }
.daryn-dashboard .daryn-kpi-value-accent { color: var(--daryn-accent); }
.daryn-dashboard .daryn-kpi-value-high { color: var(--daryn-success); }
.daryn-dashboard .daryn-kpi-value-med { color: #d49b00; }
.daryn-dashboard .daryn-kpi-value-low { color: var(--daryn-danger); }

/* ── CARD ── */
.daryn-dashboard .daryn-card { background: var(--daryn-surface); border: 1px solid var(--daryn-border); border-radius: 12px; padding: 24px; }
.daryn-dashboard .daryn-card.full-width { margin-bottom: 24px; }
.daryn-dashboard .daryn-card-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.daryn-dashboard .daryn-card-title { font-weight: 400; font-size: 15px; }
.daryn-dashboard .daryn-card-hint { font-size: 11px; color: var(--daryn-text-muted); }
.daryn-dashboard .daryn-grid-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 24px; }

/* ── PARALLEL TABS ── */
.daryn-dashboard .daryn-parallel-tabs { display: flex; gap: 4px; margin-bottom: 16px; flex-wrap: wrap; }
.daryn-dashboard .daryn-par-tab { padding: 5px 14px; border-radius: 6px; font-size: 12px; font-weight: 500; cursor: pointer; border: 1px solid var(--daryn-border); background: var(--daryn-bg); color: var(--daryn-text-dim); transition: all 0.15s; user-select: none; }
.daryn-dashboard .daryn-par-tab:hover { border-color: var(--daryn-accent); color: var(--daryn-accent); }
.daryn-dashboard .daryn-par-tab.active { background: var(--daryn-accent); color: #fff; border-color: var(--daryn-accent); }
.daryn-dashboard .daryn-tab-count { font-size: 10px; opacity: 0.7; margin-left: 4px; }

/* ── HEATMAP ── */
.daryn-dashboard .daryn-heatmap-wrapper { overflow-x: auto; }
.daryn-dashboard .daryn-heatmap-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.daryn-dashboard .daryn-heatmap-table th { padding: 6px 8px; text-align: center; font-weight: 500; font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--daryn-text-muted); border-bottom: 1px solid var(--daryn-border); white-space: nowrap; }
.daryn-dashboard .daryn-heatmap-table th:first-child { text-align: left; }
.daryn-dashboard .daryn-heatmap-table th.sep-left { border-left: 2px solid var(--daryn-border); }
.daryn-dashboard .daryn-heatmap-table td { padding: 5px 6px; text-align: center; border-bottom: 1px solid var(--daryn-border-light); white-space: nowrap; }
.daryn-dashboard .daryn-heatmap-table td:first-child { text-align: left; font-weight: 500; font-size: 12px; }
.daryn-dashboard .daryn-heatmap-table td.sep-left { border-left: 2px solid var(--daryn-border); }

.daryn-dashboard .daryn-heat-cell { display: inline-flex; align-items: baseline; justify-content: center; gap: 3px; min-width: 76px; height: 40px; line-height: 40px; border-radius: 6px; transition: transform 0.15s; cursor: default; padding: 0 8px; white-space: nowrap; }
.daryn-dashboard .daryn-heat-cell:hover { transform: scale(1.06); }
.daryn-dashboard .daryn-heat-cell .hc-prize { font-weight: 700; font-size: 16px; }
.daryn-dashboard .daryn-heat-cell .hc-total { font-size: 11px; opacity: 0.65; }
.daryn-dashboard .daryn-heat-cell.h0 { background: var(--daryn-heat-0); color: var(--daryn-text-muted); }
.daryn-dashboard .daryn-heat-cell.h1 { background: var(--daryn-heat-1); color: var(--daryn-accent); }
.daryn-dashboard .daryn-heat-cell.h2 { background: var(--daryn-heat-2); color: var(--daryn-accent); }
.daryn-dashboard .daryn-heat-cell.h3 { background: var(--daryn-heat-3); color: #fff; }
.daryn-dashboard .daryn-heat-cell.h4 { background: var(--daryn-heat-4); color: #fff; }
.daryn-dashboard .daryn-heat-cell.h5 { background: var(--daryn-heat-5); color: #fff; }
.daryn-dashboard .daryn-heatmap-table .row-total { font-weight: 600; font-size: 12px; color: var(--daryn-accent); white-space: nowrap; }
.daryn-dashboard .daryn-rate-hint { font-size: 10px; color: var(--daryn-text-muted); }

.daryn-dashboard .daryn-place-mini { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 30px; border-radius: 5px; font-weight: 700; font-size: 14px; padding: 0 6px; }
.daryn-dashboard .daryn-place-mini.empty { color: var(--daryn-text-muted); background: transparent; }
.daryn-dashboard .daryn-place-mini.gold { background: var(--daryn-gold-bg); color: var(--daryn-gold); }
.daryn-dashboard .daryn-place-mini.silver { background: var(--daryn-silver-bg); color: var(--daryn-silver); }
.daryn-dashboard .daryn-place-mini.bronze { background: var(--daryn-bronze-bg); color: var(--daryn-bronze); }
.daryn-dashboard .daryn-place-mini.gratitude { background: var(--daryn-gratitude-bg); color: var(--daryn-gratitude); }
.daryn-dashboard .daryn-place-mini.noplace { background: var(--daryn-noplace-bg); color: var(--daryn-noplace); }

.daryn-dashboard .daryn-heatmap-table tfoot td { padding: 8px 6px; border-top: 2px solid var(--daryn-border); font-weight: 600; font-size: 12px; color: var(--daryn-text-dim); white-space: nowrap; }
.daryn-dashboard .daryn-heatmap-table tfoot td:first-child { font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; }

/* ── TRACK DOTS ── */
.daryn-dashboard .daryn-track-levels { display: inline-flex; align-items: center; gap: 3px; width: 200px; }
.daryn-dashboard .daryn-track-step { width: 28px; height: 28px; border-radius: 5px; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; flex-shrink: 0; }
.daryn-dashboard .daryn-track-step.empty { background: var(--daryn-bg); color: var(--daryn-text-muted); border: 1.5px dashed var(--daryn-border); font-size: 10px; }
.daryn-dashboard .daryn-track-step.gold { background: var(--daryn-gold-bg); color: var(--daryn-gold); border: 1.5px solid rgba(200,148,31,0.4); }
.daryn-dashboard .daryn-track-step.silver { background: var(--daryn-silver-bg); color: var(--daryn-silver); border: 1.5px solid rgba(107,123,133,0.4); }
.daryn-dashboard .daryn-track-step.bronze { background: var(--daryn-bronze-bg); color: var(--daryn-bronze); border: 1.5px solid rgba(158,105,48,0.4); }
.daryn-dashboard .daryn-track-step.noplace { background: var(--daryn-noplace-bg); color: var(--daryn-noplace); border: 1.5px solid rgba(136,144,160,0.4); }
.daryn-dashboard .daryn-track-step.gratitude { background: var(--daryn-gratitude-bg); color: var(--daryn-gratitude); border: 1.5px solid rgba(124,93,173,0.4); }
.daryn-dashboard .daryn-track-connector { width: 10px; height: 2px; background: var(--daryn-border); flex-shrink: 0; }
.daryn-dashboard .daryn-track-connector.active { background: var(--daryn-accent); height: 3px; border-radius: 1px; }

.daryn-dashboard .daryn-levels-header { display: inline-flex; align-items: center; gap: 3px; width: 200px; }
.daryn-dashboard .daryn-levels-header .lh-cell { width: 28px; text-align: center; font-size: 9px; font-weight: 600; text-transform: uppercase; color: var(--daryn-text-muted); flex-shrink: 0; }
.daryn-dashboard .daryn-levels-header .lh-spacer { width: 10px; flex-shrink: 0; }

/* ── TRACK TABLE ── */
.daryn-dashboard .daryn-trk-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.daryn-dashboard .daryn-trk-table th, .daryn-dashboard .daryn-trk-table td { padding: 0; vertical-align: middle; text-align: left; }
.daryn-dashboard .daryn-trk-table .trk-year { width: 80px; white-space: nowrap; font-size: 11px; font-weight: 600; color: var(--daryn-text-dim); padding-right: 6px; }
.daryn-dashboard .daryn-trk-table .trk-subj { width: 90px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 11px; color: var(--daryn-text-dim); padding-right: 6px; }
.daryn-dashboard .daryn-trk-table .trk-dots { width: 210px; }
.daryn-dashboard .daryn-trk-table .trk-depth { width: auto; white-space: nowrap; text-align: right; font-size: 10px; color: var(--daryn-text-muted); font-weight: 500; }
.daryn-dashboard .daryn-trk-table .trk-depth strong { font-size: 11px; color: var(--daryn-text); }
.daryn-dashboard .daryn-trk-table .trk-par { font-weight: 400; font-size: 10px; color: var(--daryn-text-muted); }
.daryn-dashboard .daryn-trk-table .trk-row td { padding-top: 4px; padding-bottom: 4px; }
.daryn-dashboard .daryn-trk-table .trk-row.trk-current { background: rgba(45,93,224,0.04); }
.daryn-dashboard .daryn-trk-table .trk-student-name-row td { font-size: 12px; font-weight: 600; color: var(--daryn-text); padding-top: 10px; padding-bottom: 4px; }
.daryn-dashboard .daryn-trk-table .trk-student-name-row.trk-sep td { border-top: 1px solid var(--daryn-border); }

/* ── TEACHER TRACKS ── */
.daryn-dashboard .daryn-teachers-tracks { display: flex; flex-direction: column; gap: 4px; max-height: 700px; overflow-y: auto; }
.daryn-dashboard .daryn-teacher-block { border: 1px solid var(--daryn-border-light); border-radius: 10px; }
.daryn-dashboard .daryn-teacher-head { display: flex; align-items: center; gap: 10px; padding: 10px 14px; cursor: pointer; transition: background 0.15s; user-select: none; }
.daryn-dashboard .daryn-teacher-head:hover { background: var(--daryn-bg); }
.daryn-dashboard .daryn-teacher-name { font-weight: 600; font-size: 13px; flex: 1; }
.daryn-dashboard .daryn-teacher-summary { display: flex; gap: 8px; flex-shrink: 0; }
.daryn-dashboard .daryn-teacher-chip { font-size: 11px; padding: 2px 8px; border-radius: 5px; font-weight: 600; white-space: nowrap; }
.daryn-dashboard .daryn-teacher-chip.students { background: var(--daryn-accent-light); color: var(--daryn-accent); }
.daryn-dashboard .daryn-teacher-chip.eff.high { background: var(--daryn-success-bg); color: var(--daryn-success); }
.daryn-dashboard .daryn-teacher-chip.eff.med { background: #fef3cd; color: #92700c; }
.daryn-dashboard .daryn-teacher-chip.eff.low { background: #fde8e8; color: var(--daryn-danger); }
.daryn-dashboard .daryn-teacher-chevron { font-size: 12px; color: var(--daryn-text-muted); transition: transform 0.2s; flex-shrink: 0; }
.daryn-dashboard .daryn-teacher-block.open .daryn-teacher-chevron { transform: rotate(90deg); }
.daryn-dashboard .daryn-teacher-students { display: none; padding: 4px 14px 12px; }
.daryn-dashboard .daryn-teacher-block.open .daryn-teacher-students { display: block; }

/* ── STUDENT TRACKS ── */
.daryn-dashboard .daryn-student-tracks { display: flex; flex-direction: column; gap: 2px; max-height: 700px; overflow-y: auto; overflow-x: hidden; }
.daryn-dashboard .daryn-student-group { border: 1px solid var(--daryn-border-light); border-radius: 8px; }
.daryn-dashboard .daryn-student-group-head { display: flex; align-items: center; gap: 10px; padding: 8px 12px; cursor: pointer; transition: background 0.15s; user-select: none; }
.daryn-dashboard .daryn-student-group-head:hover { background: var(--daryn-bg); }
.daryn-dashboard .daryn-sg-rank { width: 22px; font-weight: 600; font-size: 11px; color: var(--daryn-text-muted); text-align: center; flex-shrink: 0; }
.daryn-dashboard .daryn-sg-info { flex: 1; min-width: 0; }
.daryn-dashboard .daryn-sg-name { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.daryn-dashboard .daryn-sg-meta { font-size: 10px; color: var(--daryn-text-muted); }
.daryn-dashboard .daryn-sg-badges { display: flex; gap: 4px; flex-shrink: 0; }
.daryn-dashboard .daryn-sg-badge { padding: 2px 7px; border-radius: 5px; font-size: 10px; font-weight: 600; }
.daryn-dashboard .daryn-sg-badge.lv0 { background: #f1f5f9; color: var(--daryn-lv-rayon); }
.daryn-dashboard .daryn-sg-badge.lv1 { background: #eff6ff; color: var(--daryn-lv-gorod); }
.daryn-dashboard .daryn-sg-badge.lv2 { background: #fffbeb; color: var(--daryn-lv-oblast); }
.daryn-dashboard .daryn-sg-badge.lv3 { background: #fef2f2; color: var(--daryn-lv-respub); }
.daryn-dashboard .daryn-sg-badge.lv4 { background: #faf5ff; color: var(--daryn-lv-inter); }
.daryn-dashboard .daryn-sg-badge.years { background: var(--daryn-bg); color: var(--daryn-text-dim); }
.daryn-dashboard .daryn-sg-chevron { font-size: 12px; color: var(--daryn-text-muted); transition: transform 0.2s; flex-shrink: 0; }
.daryn-dashboard .daryn-student-group.open .daryn-sg-chevron { transform: rotate(90deg); }
.daryn-dashboard .daryn-sg-tracks { max-height: 0; overflow: hidden; padding: 0 12px; transition: max-height 0.25s ease, padding 0.25s ease; }
.daryn-dashboard .daryn-student-group.open .daryn-sg-tracks { max-height: 600px; overflow: visible; padding: 0 12px 10px; }

/* ── RESPONSIVE ── */
@media (max-width: 900px) { .daryn-dashboard .daryn-grid-2col { grid-template-columns: 1fr; } .daryn-dashboard .daryn-kpi-row { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) { .daryn-dashboard .daryn-header { flex-direction: column; align-items: flex-start; gap: 8px; } .daryn-dashboard .daryn-kpi-row { grid-template-columns: repeat(2, 1fr); } }
