/* ========================================
   The points record in the Classlings look (js/classlings-record.js)
   The drawings of 17 October 2026 (~/Classlings/points-record-designs, B and D), built from the Points history
   page's own parts (classlings-history.css): one white panel with every pupil a row and a column for each period,
   the bar's Earned / Earned minus taken away switch, Save a copy and Print; and one pupil's own record, a card
   of each period's points beside a bar for every week of the school year. Every rule is scoped to
   body.classlings-app. Nothing here moves, fades or pops: only the Classlings do.
   ======================================== */

/* ---------------------------------------------------------------- the Menu's item */

/* On a laptop's height the Menu is two columns (classlings-app.css gives each row its place): Points record sits in the
   right-hand one, on the row History is on, under Reset everyone's points. */
@media (max-height: 680px) and (min-width: 760px) {
    body.classlings-app .more-menu-dropdown > #pointsRecordBtn { grid-area: 6 / 2; }
}

/* ---------------------------------------------------------------- the page */

body.classlings-app #recordScreen:not(.hidden) {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 16px var(--cla-gutter) 32px;
    overflow: hidden;
}

body.classlings-app .cla-rec-wrap {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
}

/* What the printer gets and a screen reader reads, and nothing else. */
body.classlings-app .cla-rec-printhead {
    display: none;
}

body.classlings-app .cla-rec-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

/* In the sky, a page's clouds float clear of its title and the line beside it (as for Points history). */
body.classlings-app.cla-sky:has(#recordScreen:not(.hidden)) {
    --cla-cloud-a: 66.2%;
    --cla-cloud-b: 78.5%;
    background:
        var(--cla-art-cloud) left var(--cla-cloud-a, 63.8%) top 14px / calc(var(--cla-px) * 32) calc(var(--cla-px) * 9) no-repeat,
        var(--cla-art-puff) left var(--cla-cloud-b, 78%) top 50px / calc(var(--cla-px) * 20) calc(var(--cla-px) * 5) no-repeat,
        var(--cla-art-edge) left 0 bottom var(--cla-soil) / calc(var(--cla-px) * 16) calc(var(--cla-px) * 2) repeat-x,
        linear-gradient(var(--cla-soil-colour), var(--cla-soil-colour)) left 0 bottom 0 / 100% var(--cla-soil) no-repeat,
        var(--cla-art-tufts) left 0 bottom var(--cla-ground) / calc(var(--cla-px) * 16) calc(var(--cla-px) * 3) repeat-x,
        linear-gradient(var(--cla-grass), var(--cla-grass)) left 0 bottom 0 / 100% var(--cla-ground) no-repeat,
        var(--cla-world);
}

/* ---------------------------------------------------------------- the panel of every pupil */

body.classlings-app .cla-rec-page {
    container: recpage / inline-size;
    display: grid;
    flex: 1;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
    min-height: 0;
    padding: 12px 24px 0;
    overflow: hidden;
    background: var(--cla-page);
    border: var(--cla-edge) solid var(--cla-wash-2);
    border-radius: var(--cla-r-l);
}

body.classlings-app .cla-rec-top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 16px;
    padding-bottom: 8px;
}

body.classlings-app .cla-rec-top h2 {
    margin: 0;
    font: 700 28px / 1.1 var(--cla-display);
}

body.classlings-app .cla-rec-top p {
    margin: 0;
    font: 500 20px / 1.2 var(--cla-display);
    color: var(--cla-ink-2);
}

body.classlings-app .cla-rec-top .cla-rec-end {
    margin-left: auto;
}

body.classlings-app .cla-rec-page .cla-rec-top {
    padding-bottom: 4px;
}

body.classlings-app .cla-rec-page .cla-rec-top h2 {
    font-size: 24px;
}

body.classlings-app .cla-rec-page .cla-rec-top p {
    font-size: 18px;
}

body.classlings-app .cla-rec-narrow {
    display: none;
}

/* So far, or Each half term: a small switch like the bar's. */
body.classlings-app .cla-rec-seg {
    display: inline-flex;
    gap: 4px;
    padding: var(--cla-switch-pad);
    background: var(--cla-wash);
    border-radius: calc(var(--cla-r-m) + var(--cla-switch-pad));
}

body.classlings-app .cla-rec-seg .cla-hist-tool {
    min-height: 44px;
}

/* Without term dates: one quiet line, and the way to add them. */
body.classlings-app .cla-rec-quiet {
    margin: 0;
    padding-bottom: 6px;
    font: 400 17px / 1.35 var(--cla-ui);
    color: var(--cla-ink-2);
}

body.classlings-app .cla-rec-link {
    appearance: none;
    margin: -10px 0;
    padding: 10px 4px;
    font: 600 17px / 1.2 var(--cla-display);
    color: var(--cla-ink);
    text-decoration: underline;
    text-underline-offset: 3px;
    background: none;
    border: 0;
    cursor: pointer;
}

/* A phone's choice of period: the standard drop-down, as the Leaderboard's Showing (hidden until the panel is narrow). */
body.classlings-app .cla-rec-pick {
    display: none;
    align-items: center;
    gap: 12px;
    padding-bottom: 8px;
}

body.classlings-app .cla-rec-pick label {
    font: 600 18px / 1 var(--cla-display);
}

body.classlings-app .cla-rec-pick select {
    appearance: none;
    -webkit-appearance: none;
    flex: 1;
    min-width: 0;
    min-height: var(--ctl-field-h, 48px);
    padding: 0 48px 0 14px;
    font: 400 18px / 1.4 var(--lb-read, 'Atkinson Hyperlegible', 'Segoe UI', system-ui, sans-serif);
    color: var(--cla-ink);
    background: var(--cla-page) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' width='8' height='8' shape-rendering='crispEdges'%3E%3Cpath fill='%231e1b3a' d='M0 2h2v1h-2zM6 2h2v1h-2zM1 3h2v1h-2zM5 3h2v1h-2zM2 4h4v1h-4zM3 5h2v1h-2z'/%3E%3C/svg%3E") right 16px center / 16px 16px no-repeat;
    border: var(--cla-edge) solid var(--cla-wash-2);
    border-radius: var(--ctl-field-r, 14px);
    cursor: pointer;
}

body.classlings-app .cla-rec-pick select:focus-visible {
    outline: 4px solid var(--cla-ink);
    outline-offset: 4px;
}

/* ---------------------------------------------------------------- the table of pupils */

/* The Points history table's own look (classlings-history.css), here with its own name so its narrow-screen rules,
   which turn that table into a list, leave this one alone. */
body.classlings-app .cla-rec-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 2px;
    font: 500 20px / 1.2 var(--cla-display);
}

body.classlings-app .cla-rec-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 0 12px 4px;
    font: 600 18px / 1.2 var(--cla-display);
    color: var(--cla-ink-2);
    text-align: left;
    vertical-align: bottom;
    background: var(--cla-page);
}

body.classlings-app .cla-rec-table td {
    height: 48px;
    padding: 0 12px;
    white-space: nowrap;
}

body.classlings-app .cla-rec-table tbody tr.cla-rec-row:nth-child(odd of .cla-rec-row) td {
    background: var(--cla-wash);
}

body.classlings-app .cla-rec-table tbody td:first-child {
    border-radius: var(--cla-r-s) 0 0 var(--cla-r-s);
}

body.classlings-app .cla-rec-table tbody td:last-child {
    border-radius: 0 var(--cla-r-s) var(--cla-r-s) 0;
}

body.classlings-app .cla-rec-table .cla-rec-rank {
    width: 44px;
    padding-right: 0;
    font: 600 18px / 1 var(--cla-display);
    color: var(--cla-ink-2);
    font-variant-numeric: tabular-nums;
}

/* The name takes what room the numbers leave, and is cut with an ellipsis rather than push them. */
body.classlings-app .cla-rec-table td.cla-rec-name {
    max-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.classlings-app .cla-rec-table .cla-hist-who {
    max-width: 100%;
    min-width: 0;
}

body.classlings-app .cla-rec-table .cla-hist-who > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.classlings-app .cla-rec-table .cla-rec-num {
    width: 10.5%;
    padding: 0 14px;
    font: 600 22px / 1 var(--cla-display);
    color: var(--cla-ink-2);
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

body.classlings-app .cla-rec-table.is-halves .cla-rec-num {
    width: 9.5%;
}

body.classlings-app .cla-rec-table td.cla-rec-num small {
    display: inline-block;
    min-width: 3ch;
    margin-left: 6px;
    font: 600 16px / 1 var(--cla-display);
    color: var(--pm-red-deep);
    text-align: left;
}

/* The column the pupils are sorted by: its numbers in full ink on a soft tint; the others quieter. */
body.classlings-app .cla-rec-table td.cla-rec-num.is-sorted {
    font-weight: 700;
    color: var(--cla-ink);
}

body.classlings-app .cla-rec-table tbody tr.cla-rec-row td.is-sorted {
    background: var(--cla-grape-tint) !important;
}

body.classlings-app .cla-rec-table td.cla-rec-num.is-zero {
    font-weight: 500;
    color: var(--cla-ink-2);
}

body.classlings-app .cla-rec-table td.cla-rec-num.is-none {
    color: var(--cla-wash-2);
}

/* The sort buttons in the heading: the column in use is a filled chip with the bar's chevron. */
body.classlings-app .cla-rec-sort {
    appearance: none;
    display: inline-grid;
    justify-items: end;
    gap: 2px;
    margin: 0 -8px 0 0;
    padding: 4px 8px;
    font: 600 18px / 1.15 var(--cla-display);
    color: var(--cla-ink-2);
    text-align: right;
    white-space: nowrap;
    background: none;
    border: 2px solid transparent;
    border-radius: var(--cla-r-s);
    cursor: pointer;
}

body.classlings-app .cla-rec-sort.is-left {
    justify-items: start;
    margin: 0 0 0 -8px;
    text-align: left;
}

body.classlings-app .cla-rec-sort:hover:not(:disabled) {
    background: var(--cla-wash);
}

body.classlings-app .cla-rec-sort small {
    font: 500 15px / 1.1 var(--cla-ui);
    color: var(--cla-ink-2);
}

body.classlings-app .cla-rec-sort b {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 600;
}

body.classlings-app .cla-rec-sort[aria-pressed="true"] {
    color: var(--cla-ink);
    background: var(--cla-grape-tint);
    border-color: var(--cla-grape-deep);
}

body.classlings-app .cla-rec-sort[aria-pressed="true"] small {
    color: var(--cla-ink);
}

body.classlings-app .cla-rec-sort .cla-ic {
    width: 12px;
    height: 12px;
}

/* A column to come (a half term not started) is greyed and can't be pressed. */
body.classlings-app .cla-rec-sort:disabled {
    cursor: default;
    opacity: 0.55;
}

/* The class's own line, first. */
body.classlings-app .cla-rec-table tr.cla-rec-class td {
    height: 44px;
    background: var(--cla-page);
    border-bottom: 2px solid var(--cla-wash-2);
    font: 600 18px / 1.1 var(--cla-display);
    color: var(--cla-ink);
}

body.classlings-app .cla-rec-table tr.cla-rec-class td.cla-rec-num {
    font: 700 20px / 1 var(--cla-display);
}

body.classlings-app .cla-rec-table tr.cla-rec-class td:first-child,
body.classlings-app .cla-rec-table tr.cla-rec-class td:last-child {
    border-radius: 0;
}

body.classlings-app .cla-rec-table tr.cla-rec-class td.cla-rec-num.is-none {
    color: var(--cla-ink-2);
}

/* A panel too narrow for every column shows one period at a time (the one sorted by), with a drop-down to change it. */
@container recpage (max-width: 990px) {
    body.classlings-app .cla-rec-pick {
        display: flex;
    }

    body.classlings-app .cla-rec-table .cla-rec-num:not(.is-shown) {
        display: none;
    }

    body.classlings-app .cla-rec-table .cla-rec-num {
        width: auto;
    }

    /* The drop-down above says which period it is: the column's own heading is for readers of the screen only. */
    body.classlings-app .cla-rec-table th.cla-rec-num {
        width: 0;
        padding: 0;
    }

    body.classlings-app .cla-rec-table th.cla-rec-num .cla-rec-sort {
        position: absolute;
        top: 0;
        left: 0;
        width: 1px;
        height: 1px;
        margin: -1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0 0 0 0);
    }

    body.classlings-app .cla-rec-wide {
        display: none;
    }

    body.classlings-app .cla-rec-narrow {
        display: inline;
    }
}

/* ---------------------------------------------------------------- one pupil's record */

body.classlings-app .cla-rec-one {
    display: grid;
    flex: 1;
    grid-template-columns: 400px minmax(0, 1fr);
    gap: 24px;
    min-height: 0;
}

body.classlings-app .cla-rec-card {
    gap: 12px;
    padding: 12px 20px;
}

body.classlings-app .cla-rec-card .cla-hist-me {
    grid-template-columns: 72px minmax(0, 1fr);
}

body.classlings-app .cla-rec-card .cla-hist-me .cla-hist-face {
    width: 72px;
    height: 72px;
}

body.classlings-app .cla-rec-periods {
    display: grid;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none;
}

body.classlings-app .cla-rec-periods li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 44px;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    padding: 0 12px;
    border-radius: var(--cla-r-s);
}

body.classlings-app .cla-rec-periods li:nth-child(odd) {
    background: var(--cla-wash);
}

body.classlings-app .cla-rec-periods span {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font: 600 18px / 1.1 var(--cla-display);
    white-space: nowrap;
}

body.classlings-app .cla-rec-periods small {
    font: 500 15px / 1.1 var(--cla-ui);
    color: var(--cla-ink-2);
}

body.classlings-app .cla-rec-periods b {
    font: 700 22px / 1 var(--cla-display);
    font-variant-numeric: tabular-nums;
}

body.classlings-app .cla-rec-periods b.is-zero {
    font-weight: 500;
    color: var(--cla-ink-2);
}

body.classlings-app .cla-rec-periods em {
    font: 600 16px / 1 var(--cla-display);
    font-style: normal;
    color: var(--pm-red-deep);
}

body.classlings-app .cla-rec-periods li.is-year {
    background: var(--cla-lime-tint);
    box-shadow: inset 0 0 0 2px var(--cla-lime-deep);
}

/* Week by week: a bar for each week of the school year. */
body.classlings-app .cla-rec-chart-panel {
    grid-template-rows: auto minmax(0, 1fr) auto;
    padding-bottom: 12px;
}

body.classlings-app .cla-rec-key {
    display: flex;
    align-items: center;
    gap: 8px;
    font: 500 16px / 1 var(--cla-ui);
}

body.classlings-app .cla-rec-top p.cla-rec-key {
    font: 500 16px / 1 var(--cla-ui);
}

body.classlings-app .cla-rec-key span {
    width: 14px;
    height: 14px;
    border-radius: 3px;
}

body.classlings-app .cla-rec-key .is-up {
    background: var(--cla-lime);
    box-shadow: inset 0 0 0 2px var(--cla-lime-deep);
}

body.classlings-app .cla-rec-key .is-down {
    margin-left: 8px;
    background: var(--pm-red);
    box-shadow: inset 0 0 0 2px var(--pm-red-deep);
}

body.classlings-app .cla-rec-chart {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    min-height: 0;
}

body.classlings-app .cla-rec-weeks {
    display: grid;
    grid-template-columns: repeat(var(--weeks), minmax(0, 1fr));
    grid-template-rows: minmax(0, 1fr);
    gap: 0 4px;
    min-height: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

body.classlings-app .cla-rec-weeks li {
    display: grid;
    grid-template-rows: minmax(0, 1fr) 22px 20px;
    min-height: 0;
}

body.classlings-app .cla-rec-up {
    position: relative;
    border-bottom: 2px solid var(--cla-ink-2);
}

body.classlings-app .cla-rec-up i {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: calc(var(--h) * 100%);
    background: var(--cla-lime);
    border-radius: 4px 4px 0 0;
    box-shadow: inset 0 0 0 2px var(--cla-lime-deep);
}

body.classlings-app .cla-rec-weeks li.is-now .cla-rec-up i {
    background: var(--cla-grape);
    box-shadow: inset 0 0 0 2px var(--cla-grape-deep);
}

body.classlings-app .cla-rec-down {
    position: relative;
}

body.classlings-app .cla-rec-down i {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: calc(var(--h) * 100%);
    background: var(--pm-red);
    border-radius: 0 0 4px 4px;
    box-shadow: inset 0 0 0 2px var(--pm-red-deep);
}

/* A holiday week: a dotted line where its bar would stand. */
body.classlings-app .cla-rec-weeks li.is-off .cla-rec-up {
    border-bottom-style: dotted;
}

body.classlings-app .cla-rec-month {
    font: 600 15px / 20px var(--cla-display);
    color: var(--cla-ink-2);
    white-space: nowrap;
}

body.classlings-app .cla-rec-bands {
    display: grid;
    grid-template-columns: repeat(var(--weeks), minmax(0, 1fr));
    gap: 0 4px;
    margin-top: 4px;
}

body.classlings-app .cla-rec-bands span {
    padding: 3px 6px;
    overflow: hidden;
    font: 600 15px / 1.1 var(--cla-display);
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
    background: var(--cla-wash);
    border-radius: 6px;
}

body.classlings-app .cla-rec-most {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 4px 16px;
    padding-top: 10px;
}

body.classlings-app .cla-rec-most h3 {
    margin: 0;
    font: 600 18px / 1.2 var(--cla-display);
    white-space: nowrap;
}

body.classlings-app .cla-rec-most ol {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

body.classlings-app .cla-rec-most li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font: 600 18px / 1.2 var(--cla-display);
    white-space: nowrap;
}

body.classlings-app .cla-rec-most li b {
    font: 700 22px / 1 var(--cla-display);
}

body.classlings-app .cla-rec-most .cla-rec-quiet {
    padding-bottom: 0;
}

/* The pupil's name in the bar's chip is cut with an ellipsis before it pushes the bar wider. */
body.classlings-app .cla-rec-chip {
    min-width: 0;
    max-width: 14em;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.classlings-app .cla-rec-nb {
    white-space: nowrap;
}

/* ---------------------------------------------------------------- narrower screens */

/* A school laptop: a narrower card, as Points history has. */
@media (max-width: 1180px) {
    body.classlings-app .cla-rec-one {
        grid-template-columns: 320px minmax(0, 1fr);
        gap: 16px;
    }

    body.classlings-app .cla-rec-card {
        padding: 12px 14px;
    }

    body.classlings-app .cla-rec-table td {
        padding: 0 8px;
    }

    body.classlings-app .cla-rec-table .cla-rec-num {
        padding: 0 10px;
    }
}

/* Smaller still: the card above the chart, and the page scrolls. */
@media (max-width: 900px) {
    body.classlings-app #recordScreen:not(.hidden) {
        overflow-y: auto;
    }

    body.classlings-app .cla-rec-one {
        flex: none;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto minmax(420px, 1fr);
    }

    body.classlings-app .cla-rec-card {
        overflow: visible;
    }

    body.classlings-app .cla-rec-chart-panel {
        min-height: 420px;
    }

    body.classlings-app .cla-rec-wrap.is-one {
        flex: none;
    }
}

/* A phone: the bar's words fold to their pictures (as Points history's do) and the switch's words are a little smaller, so
   the whole bar fits; the page has less room round it, and the list has its pupils' names and the one period. */
@media (max-width: 600px) {
    body.classlings-app #claPageBar .cla-hist-word {
        display: none;
    }

    /* "Earned" over "− taken away" on two lines, so the switch is narrow. */
    body.classlings-app #claPageBar .cla-hist-seg .cla-hist-tool {
        padding: 0 8px;
        font-size: 16px;
        line-height: 1.05;
        text-align: center;
        white-space: normal;
    }

    body.classlings-app #claPageBar .cla-hist-seg .cla-hist-tool[data-count="net"] {
        max-width: 7.6em;
    }

    body.classlings-app #claPageBar .cla-gap {
        display: none;
    }

    body.classlings-app .cla-rec-page {
        padding: 10px 12px 0;
    }

    body.classlings-app .cla-rec-table td {
        padding: 0 4px;
    }

    body.classlings-app .cla-rec-table .cla-rec-rank {
        width: 30px;
        padding-left: 8px;
    }

    body.classlings-app .cla-rec-table .cla-rec-num {
        padding: 0 8px;
    }
}

/* ---------------------------------------------------------------- Print */

/* Print is a page of its own: A4 landscape, the class and the date at the top, every pupil (nothing scrolls, and there is
   no bar or fade), the columns on screen, plain black on white. A pupil's own record prints as the card beside the chart,
   for parents' evening. */
@media print {
    @page {
        size: A4 landscape;
        margin: 12mm;
    }

    html:has(#recordScreen:not(.hidden)),
    body.classlings-app:has(#recordScreen:not(.hidden)) {
        height: auto !important;
        overflow: visible !important;
        color: #000 !important;
        background: #fff !important;
    }

    body.classlings-app:has(#recordScreen:not(.hidden)) :is(.app-header, #claFloat, #claLoading, .cla-hist-pop) {
        display: none !important;
    }

    body.classlings-app:has(#recordScreen:not(.hidden)) #app {
        display: block;
        height: auto;
        overflow: visible;
        padding: 0;
    }

    body.classlings-app #recordScreen:not(.hidden) {
        display: block;
        height: auto;
        padding: 0;
        overflow: visible;
    }

    body.classlings-app #recordScreen :is(.cla-hist, .cla-rec-wrap, .cla-rec-page, .cla-rec-head, .cla-rec-one) {
        display: block;
        height: auto;
        min-height: 0;
        padding: 0;
        overflow: visible;
        background: none;
        border: 0;
        border-radius: 0;
    }

    body.classlings-app .cla-rec-printhead {
        display: block;
        margin: 0 0 5mm;
    }

    body.classlings-app .cla-rec-printhead h1 {
        margin: 0;
        font: 700 20pt / 1.1 var(--cla-display);
    }

    body.classlings-app .cla-rec-printhead p {
        margin: 1mm 0 0;
        font: 400 12pt / 1.2 var(--cla-ui);
    }

    body.classlings-app #recordScreen :is(.cla-rec-hint, .cla-rec-seg, .cla-rec-quiet, .cla-rec-pick, .cla-rec-nobar) {
        display: none !important;
    }

    body.classlings-app #recordScreen .cla-rec-top {
        padding: 0 0 2mm;
    }

    body.classlings-app #recordScreen .cla-rec-top h2 {
        font: 700 13pt / 1.1 var(--cla-display);
        color: #000;
    }

    /* The table: every pupil, plain, with a thin line between rows; every column of the view, wherever it is printed from. */
    body.classlings-app #recordScreen .cla-rec-scroll {
        padding: 0;
        overflow: visible;
        mask-image: none;
        -webkit-mask-image: none;
    }

    body.classlings-app #recordScreen .cla-rec-table {
        border-spacing: 0;
        font-size: 10pt;
    }

    body.classlings-app #recordScreen .cla-rec-table thead th {
        position: static;
        padding: 0 2mm 1mm;
        font: 600 10pt / 1.15 var(--cla-display);
        color: #000;
        background: none;
        border-bottom: 1px solid #000;
    }

    body.classlings-app #recordScreen .cla-rec-table td {
        height: auto;
        padding: 0.6mm 2mm;
        color: #000 !important;
        background: none !important;
        border-bottom: 1px solid #bbb;
        border-radius: 0 !important;
        font-weight: 500;
    }

    body.classlings-app #recordScreen .cla-rec-table tr {
        break-inside: avoid;
    }

    body.classlings-app #recordScreen .cla-rec-table .cla-rec-num,
    body.classlings-app #recordScreen .cla-rec-table .cla-rec-num:not(.is-shown) {
        display: table-cell;
        width: auto;
        padding: 0.6mm 2mm;
        font: 600 10pt / 1.2 var(--cla-display);
        text-align: right;
    }

    body.classlings-app #recordScreen .cla-rec-table td.cla-rec-num.is-sorted {
        font-weight: 700;
    }

    body.classlings-app #recordScreen .cla-rec-table td.cla-rec-num.is-none,
    body.classlings-app #recordScreen .cla-rec-table td.cla-rec-num.is-zero {
        color: #666 !important;
    }

    body.classlings-app #recordScreen .cla-rec-table td.cla-rec-num small {
        min-width: 0;
        margin-left: 1mm;
        font: 600 8pt / 1 var(--cla-display);
        color: #000;
    }

    body.classlings-app #recordScreen .cla-rec-table th.cla-rec-num {
        width: auto;
        padding: 0 2mm 1mm;
    }

    body.classlings-app #recordScreen .cla-rec-table th.cla-rec-num .cla-rec-sort {
        position: static;
        display: contents;
        width: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        clip: auto;
    }

    body.classlings-app #recordScreen .cla-rec-table tr.cla-rec-class td {
        font-weight: 700;
        border-bottom: 1px solid #000;
    }

    /* A heading is its words, not a button (a printed heading that repeats on the next page needs them in the cell itself). */
    body.classlings-app #recordScreen .cla-rec-sort {
        display: contents;
        color: #000;
    }

    body.classlings-app #recordScreen .cla-rec-sort :is(b, small) {
        display: block;
        color: #000;
    }

    body.classlings-app #recordScreen .cla-rec-sort small {
        font-size: 8pt;
    }

    body.classlings-app #recordScreen .cla-rec-sort .cla-ic {
        display: none;
    }

    body.classlings-app #recordScreen .cla-rec-rank {
        width: 8mm;
        padding-right: 0;
        color: #000;
        font-size: 9pt;
    }

    body.classlings-app #recordScreen .cla-rec-table td.cla-rec-name {
        max-width: none;
        overflow: visible;
    }

    body.classlings-app #recordScreen .cla-hist-who {
        min-height: 0;
        gap: 2mm;
        font: 600 10pt / 1.2 var(--cla-display);
        color: #000;
    }

    body.classlings-app #recordScreen .cla-hist-who .cla-hist-face {
        width: 5mm;
        height: 5mm;
    }

    /* One pupil's record: the card beside the chart, in colour where colour is the point (the bars), black where it is words. */
    body.classlings-app #recordScreen .cla-rec-one {
        display: flex;
        gap: 8mm;
    }

    body.classlings-app #recordScreen :is(.cla-rec-card, .cla-rec-chart-panel) {
        display: block;
        padding: 0;
        overflow: visible;
        background: none;
        border: 0;
    }

    body.classlings-app #recordScreen .cla-rec-card {
        flex: none;
        width: 88mm;
    }

    body.classlings-app #recordScreen .cla-rec-chart-panel {
        flex: 1;
        min-width: 0;
    }

    body.classlings-app #recordScreen .cla-rec-card .cla-hist-me {
        grid-template-columns: 18mm minmax(0, 1fr);
        margin-bottom: 3mm;
    }

    body.classlings-app #recordScreen .cla-rec-card .cla-hist-me .cla-hist-face {
        width: 18mm;
        height: 18mm;
    }

    body.classlings-app #recordScreen .cla-rec-card .cla-hist-me h2 {
        font: 700 18pt / 1.1 var(--cla-display);
    }

    body.classlings-app #recordScreen .cla-rec-periods li {
        grid-template-columns: minmax(0, 1fr) auto 12mm;
        min-height: 8mm;
        padding: 0 2mm;
        background: none;
        border-bottom: 1px solid #bbb;
        border-radius: 0;
    }

    body.classlings-app #recordScreen .cla-rec-periods li.is-year {
        background: none;
        border-bottom: 1px solid #000;
        box-shadow: none;
        font-weight: 700;
    }

    body.classlings-app #recordScreen .cla-rec-periods :is(span, b, em, small) {
        color: #000;
        font-size: 10pt;
    }

    body.classlings-app #recordScreen .cla-rec-periods small {
        font-size: 8pt;
    }

    body.classlings-app #recordScreen .cla-rec-periods b.is-zero {
        color: #666;
    }

    body.classlings-app #recordScreen .cla-rec-chart {
        display: block;
    }

    body.classlings-app #recordScreen .cla-rec-weeks {
        height: 95mm;
    }

    body.classlings-app #recordScreen :is(.cla-rec-up i, .cla-rec-down i, .cla-rec-key span) {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    body.classlings-app #recordScreen .cla-rec-most {
        padding-top: 4mm;
    }
}
