.dashboard-charts{--chart-green:var(--ksk-318968);--chart-red:var(--ksk-d45a65);--chart-amber:var(--ksk-e9b64e);--chart-gray:var(--ksk-e8ebf2);margin:0 0 30px}.chart-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:0 0 20px}.chart-toolbar h2{font-size:24px;line-height:1.3;margin-top:6px}.chart-toolbar>div:last-child{min-width:230px;max-width:320px}.chart-toolbar label{display:block;font-size:12px;font-weight:600;color:var(--ktk-667187);margin-bottom:7px}.chart-toolbar select{font:inherit;font-size:14px;padding:10px 30px 10px 12px;min-height:44px;width:100%;border:1px solid var(--ksk-d8ddea);border-radius:8px;background:var(--ksk-ffffff);color:var(--ktk-31394b)}.chart-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;margin-bottom:20px}.chart-card{min-width:0;border-radius:16px;background:var(--ksk-fff);border:1px solid var(--ksk-e5e8f0);padding:24px;box-shadow:0 3px 12px var(--ksk-26346003)}.chart-card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.chart-card h3{font-size:19px;line-height:1.4;font-weight:700}.chart-card-heading>span{font-size:12px;color:var(--ktk-6a7385);white-space:nowrap}.chart-card-heading>span strong{font-size:22px;color:var(--blue)}.chart-description{font-size:13px;line-height:1.6;color:var(--ktk-687284);margin:8px 0 16px}.notion-mosaic{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:7px;max-width:530px;margin:24px 0 18px}.mosaic-cell{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:6px;font-size:15px;font-weight:700;min-width:0;border:1px solid transparent}.mosaic-cell.new,.chart-key.new{background:var(--chart-gray);color:var(--ktk-667085)}.mosaic-cell.review,.chart-key.review,.chart-dot.review{background:var(--chart-red);color:var(--ktk-ffffff)}.mosaic-cell.learning,.chart-key.learning{background:var(--chart-amber);color:var(--ktk-5c4211)}.mosaic-cell.recent,.chart-key.recent,.chart-dot.recent{background:var(--chart-green);color:var(--ktk-ffffff)}.mosaic-cell:hover,.mosaic-cell:focus-visible{outline:3px solid var(--ks-5368f5);outline-offset:2px;position:relative;z-index:1}.chart-insight{font-size:13px;color:var(--ktk-525d73);line-height:1.6;min-height:42px;margin:12px 0}.chart-legend{list-style:none;padding:0;margin:16px 0}.chart-legend li{display:flex;align-items:center;gap:9px;font-size:13px;line-height:1.5;color:var(--ktk-525d73)}.chart-legend strong{margin-left:auto;font-size:16px;color:var(--ktk-283145)}.mosaic-legend{display:grid;grid-template-columns:1fr 1fr;gap:13px 22px;border-top:1px solid var(--ks-edf0f5);padding-top:18px}.chart-key{width:20px;height:20px;border-radius:5px;flex-shrink:0;display:grid;place-items:center;font-weight:700}.chart-text-link{color:var(--blue);font-size:13px;font-weight:600;line-height:1.6}.success-visual{width:190px;height:190px;margin:12px auto;position:relative}.success-visual svg{display:block;width:100%;height:100%}.success-visual circle{fill:none;stroke-width:16}.donut-track{stroke:var(--chart-gray)}.donut-track.has-answers{stroke:var(--chart-red)}.donut-correct{stroke:var(--chart-green)}.donut-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:none}.donut-label strong{font-size:36px;line-height:1.3;color:var(--kt-253344);letter-spacing:-1px}.donut-label small{font-size:20px}.donut-label span{font-size:11px;color:var(--kt-667187);margin-top:4px;max-width:110px;text-align:center}.chart-dot{width:10px;height:10px;display:inline-block;border-radius:50%;flex-shrink:0}.success-legend{display:flex;gap:25px;justify-content:center}.success-legend li{gap:7px}.chart-footnote{font-size:12px;line-height:1.65;color:var(--ktk-6a7385);margin-top:12px}.chart-period{display:inline-flex;flex-shrink:0;background:var(--ksk-f0f2f8);padding:4px;gap:3px;border-radius:9px}.chart-period button{border:0;border-radius:6px;padding:7px 12px;background:transparent;color:var(--ktk-657087);font-size:13px;min-height:36px}.chart-period button[aria-pressed=true]{background:var(--ksk-fff);color:var(--blue);font-weight:700;box-shadow:0 1px 4px var(--ksk-29357512)}.activity-bars{display:block;width:100%;max-height:245px;margin:14px auto 0;overflow:visible}.chart-gridline{stroke:var(--kgk-e9edf5);stroke-width:1;stroke-dasharray:3 5}.chart-axis{fill:var(--kgk-687284);font-size:12px}.bar-count{fill:var(--kg-5463cf);font-size:12px;font-weight:600}.activity-bar{fill:var(--kg-8d9aee)}.bar-hit{fill:transparent}.activity-bars g:hover .activity-bar,.activity-bars g:focus .activity-bar{fill:var(--kg-5368f5)}.activity-bars g:focus{outline:none}.activity-bars g:focus .bar-hit{stroke:var(--kg-5368f5);stroke-width:2;rx:4}.chart-activity .chart-insight{margin:0;min-height:22px}.chart-data{margin-top:18px;border-top:1px solid var(--ksk-edf0f5);padding-top:14px;font-size:13px;color:var(--ktk-58637a)}.chart-data summary{cursor:pointer;font-weight:600}.chart-data table{width:100%;border-collapse:collapse;text-align:left;margin-top:15px}.chart-data caption{text-align:left;margin-bottom:10px}.chart-data th,.chart-data td{padding:9px 6px;border-bottom:1px solid var(--ksk-edf0f5)}.chart-data tbody th{font-weight:400}.chart-data td{text-align:right;font-variant-numeric:tabular-nums}.dashboard-charts [aria-busy=true]{min-height:120px;padding:18px}.chart-toolbar select:focus-visible{outline:3px solid var(--ksk-5368f5);outline-offset:3px}
@media(max-width:1100px){.notion-mosaic{grid-template-columns:repeat(9,minmax(0,1fr))}.chart-card{padding:20px}.chart-card-heading{flex-wrap:wrap}}
@media(max-width:900px){.chart-grid{grid-template-columns:1fr}.notion-mosaic{grid-template-columns:repeat(13,minmax(0,1fr))}.chart-toolbar{align-items:flex-start;flex-direction:column}.chart-toolbar>div:last-child{max-width:none;width:100%}}
@media(max-width:550px){.chart-toolbar h2{font-size:22px}.chart-card{padding:20px 18px}.notion-mosaic{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}.mosaic-cell{font-size:16px}.chart-card h3{font-size:18px}.mosaic-legend{column-gap:14px}.chart-legend li{font-size:12px}.chart-legend strong{font-size:15px}.chart-period{margin-top:4px}.activity-bars{max-height:none}.chart-axis,.bar-count{font-size:12px}.chart-toolbar>div:last-child{min-width:0}.chart-footnote{font-size:12px}}

/* Subject journeys share the verified notion evidence with the charts below. */
.dashboard-subjects{margin-bottom:38px}
.dashboard-more-subjects{margin-top:18px;border:1px solid var(--ksk-dce5d7);border-radius:16px;background:var(--ksk-f9faf5)}
.dashboard-more-subjects>summary{padding:16px 20px;cursor:pointer;font-size:14px;font-weight:700;color:var(--ktk-385842);min-height:48px}
.dashboard-more-subjects>.dashboard-subject-grid{padding:0 16px 16px}
.dashboard-more-subjects>summary:focus-visible,.chart-notion-map>summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:12px}
.notion-distribution{display:flex;height:22px;border-radius:8px;overflow:hidden;margin:24px 0 20px;background:var(--chart-gray)}
.distribution-segment.new{background:var(--chart-gray)}
.distribution-segment.review{background:var(--chart-red)}
.distribution-segment.learning{background:var(--chart-amber)}
.distribution-segment.recent{background:var(--chart-green)}
.chart-notion-map{margin:16px 0;font-size:13px;line-height:1.7}
.chart-notion-map>summary{cursor:pointer;font-weight:700;color:var(--ktk-385842);padding:10px 0;min-height:44px}
.dashboard-subject-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:16px}
.dashboard-subject-heading h2{margin:6px 0 0;font-size:24px}
.dashboard-subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.dashboard-subject-card{min-width:0;padding:24px;border:1px solid var(--ksk-d6e4da);border-bottom:4px solid var(--ksk-c6dbc9);background:var(--ksk-fff);border-radius:22px}
.dashboard-subject-title{display:flex;align-items:center;gap:13px}
.dashboard-subject-title h3{margin:4px 0 0;font-size:22px;color:var(--ktk-233d35)}
.dashboard-subject-title p{margin:0;font-size:12px;color:var(--ktk-65766a)}
.dashboard-subject-symbol{width:54px;height:54px;display:grid;place-items:center;flex:none;background:var(--ksk-d9efdf);border:1px solid var(--ksk-bfddc7);border-radius:17px;font-size:20px;font-weight:850;letter-spacing:-1px;color:var(--ktk-265843)}
.dashboard-subject-card[data-subject-card=francais]{border-color:var(--ksk-ecdace);border-bottom-color:var(--ksk-e7c8b5)}
.dashboard-subject-card[data-subject-card=francais] .dashboard-subject-symbol{background:var(--ksk-fff0e4);border-color:var(--ksk-e9cebc);color:var(--ktk-945136);font-size:25px}
.dashboard-subject-count{margin:22px 0 10px;color:var(--ktk-5f7164);font-size:13px}
.dashboard-subject-count strong{font-size:28px;color:var(--ktk-233d35);letter-spacing:-1px;margin-right:6px}
.dashboard-subject-count strong span{font-size:17px;font-weight:650;color:var(--ktk-647466)}
.dashboard-subject-card progress{display:block;width:100%;height:9px;border:0;border-radius:20px;overflow:hidden;accent-color:var(--ksk-43855e);background:var(--ksk-eaf0e7)}
.dashboard-subject-card progress::-webkit-progress-bar{background:var(--ksk-eaf0e7);border-radius:20px}
.dashboard-subject-card progress::-webkit-progress-value{background:var(--ksk-43855e);border-radius:20px}
.dashboard-subject-card progress::-moz-progress-bar{background:var(--ksk-43855e);border-radius:20px}
.dashboard-subject-status{font-size:12px;color:var(--ktk-627364);line-height:1.5;margin:10px 0 20px}
.dashboard-subject-status.has-review{color:var(--ktk-994b3a)}
.dashboard-subject-links{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.dashboard-subject-links .button{min-height:43px;font-size:13px;padding:11px 16px}
.chart-toolbar>div.chart-filters{display:grid;grid-template-columns:minmax(190px,.85fr) minmax(210px,1.15fr);gap:12px;max-width:520px;min-width:0;width:54%}
.chart-filters>div{min-width:0}
@media(max-width:1100px){.chart-toolbar>div.chart-filters{width:100%;max-width:none}.chart-toolbar{align-items:start;flex-direction:column}.dashboard-subject-links .button{width:100%}}
@media(max-width:650px){.dashboard-subject-grid{grid-template-columns:1fr;gap:14px}.dashboard-subject-card{padding:20px}.dashboard-subject-heading{align-items:start;flex-direction:column;gap:8px}.dashboard-subject-title h3{font-size:20px}.dashboard-subject-heading h2{font-size:22px}.chart-toolbar>div.chart-filters{grid-template-columns:1fr}.dashboard-subject-links .button{width:auto}.dashboard-subjects{margin-bottom:28px}}
