/* Revision timetable (revision.html). Exercise-book language from notebook.css:
   cream sheets, navy outline, hard offset shadow, gold for "selected". Tables stay
   plain white by default; rating colours appear only when the student turns them on. */

.rv-shell,
.rv-shell.is-collapsed { grid-template-columns: 1fr; }
.rv-display { min-width: 0; }

.rv-head,
.rv-help,
.rv-notice,
.rv-content { max-width: 1240px; margin-left: auto; margin-right: auto; }

.rv-title {
    margin: 0 0 8px;
    font-family: var(--gm-display);
    font-size: clamp(1.8rem, 3vw, 2.4rem);
    color: var(--gm-paper-ink, var(--gm-ink));
}
.rv-lede { margin: 0 0 14px; max-width: 70ch; color: var(--gm-ink-2); line-height: 1.55; }
.rv-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 26px; margin-bottom: 26px; }
.rv-add-main {
    display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 20px 0 16px;
    font: inherit; font-weight: 700; cursor: pointer;
}
.gm-notebook .rv-add-main { background: var(--book-selected); }
.gm-notebook .rv-add-main:not(:disabled):hover { background: var(--book-selected); }
.rv-add-main .gm-ic { stroke-width: 2.2; }
.rv-tool-links { display: flex; flex-wrap: wrap; align-items: center; gap: 0 22px; }
.rv-tool-link {
    display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 2px;
    border: 0; background: transparent; font: inherit; font-weight: 600; color: var(--gm-paper-ink);
    text-decoration: none; cursor: pointer;
}
.rv-tool-link .gm-ic { color: var(--gm-gold-ink); }
.rv-tool-link:hover { text-decoration: underline; text-decoration-color: var(--gm-gold); text-underline-offset: 5px; }
.rv-tool-link[aria-expanded="true"] { text-decoration: underline; text-decoration-color: var(--gm-paper-ink); text-underline-offset: 5px; }
.rv-tool-link:focus-visible { outline: 2px solid var(--gm-paper-ink); outline-offset: 3px; border-radius: 4px; }
.rv-switch { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; font-weight: 600; color: var(--gm-paper-ink); cursor: pointer; }
.rv-switch input { width: 18px; height: 18px; }

.rv-notice[hidden], .rv-content[hidden] { display: none; }
.rv-notice--error { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; border-color: var(--gm-danger); color: var(--gm-danger); }
.rv-notice--error p { margin: 0; flex: 1 1 200px; }

/* ---------- how to study cards ---------- */
.rv-help { display: grid; gap: 14px; margin-bottom: 26px; }
.rv-help[hidden] { display: none; }
.rv-card {
    background: var(--gm-paper-fill);
    border: 1.5px solid var(--gm-paper-ink);
    border-radius: 14px;
    box-shadow: var(--book-tab);
}
.rv-card summary {
    list-style: none;
    display: flex;
    align-items: baseline;
    gap: 14px;
    padding: 14px 18px;
    font-family: var(--gm-display);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--gm-paper-ink);
    cursor: pointer;
}
.rv-card summary::-webkit-details-marker { display: none; }
.rv-card summary::after { content: "+"; margin-left: auto; font-family: var(--gm-font); font-weight: 500; }
.rv-card[open] summary::after { content: "\2212"; }
.rv-card-body { padding: 0 22px 18px; color: var(--gm-ink-2); line-height: 1.6; }
.rv-card-body ol { margin: 0 0 12px; padding-left: 1.2em; display: grid; gap: 8px; }
.rv-card-body b { color: var(--gm-paper-ink); }
.rv-card-lede { margin: 0 0 12px; }
.rv-card-note { margin: 0 0 12px; padding: 12px 14px; border-radius: 10px; background: var(--gm-gold-soft); }
.rv-card-check { margin: 10px 0 0; font-size: 0.9rem; color: var(--gm-muted); }

/* ---------- due today ---------- */
.rv-due {
    margin-bottom: 40px;
    padding: 20px 24px 22px;
    background: var(--gm-paper-fill);
    border: 1.5px solid var(--gm-paper-ink);
    border-radius: 16px;
    box-shadow: var(--book-sheet);
}
.rv-due-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; margin-bottom: 8px; }
.rv-due-title { margin: 0; font-family: var(--gm-display); font-size: 1.45rem; letter-spacing: -0.01em; color: var(--gm-paper-ink); }
.rv-due-count { margin: 0; font-size: 0.95rem; color: var(--gm-ink-2); }
.rv-due-count:empty { display: none; }
.rv-due-list { margin: 0; padding: 0; list-style: none; }
.rv-due-item + .rv-due-item { border-top: 1px solid var(--book-rule); }
.rv-due-link {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2px 18px;
    width: 100%; min-height: 56px; padding: 10px 2px;
    border: 0; background: transparent;
    font: inherit; text-align: left; color: var(--gm-paper-ink); cursor: pointer;
}
.rv-due-topic { font-size: 1.05rem; font-weight: 650; }
.rv-due-meta { grid-column: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: 0.92rem; color: var(--gm-ink-2); }
.rv-due-go { grid-column: 2; grid-row: 1 / span 2; display: inline-flex; align-items: center; gap: 8px; font-weight: 650; white-space: nowrap; transition: color 0.15s ease; }
.rv-due-go::after { content: "\2192"; transition: transform 0.15s ease; }
.rv-due-link:hover .rv-due-go { color: var(--gm-gold-ink); }
.rv-due-link:hover .rv-due-go::after { transform: translateX(3px); }
.rv-late,
.rv-key-pill {
    display: inline-flex; align-items: center; padding: 0 8px; min-height: 22px;
    border: 1.5px solid var(--gm-paper-ink); border-radius: 999px;
    font-size: 0.8rem; font-weight: 650; color: var(--gm-paper-ink); background: #fffdf8; white-space: nowrap;
}
.rv-due-empty { margin: 4px 0 0; color: var(--gm-ink-2); }
.rv-due-empty[hidden], .rv-later[hidden] { display: none; }

/* Disclosures inside Due today: "N more can wait" and the week ahead. No default triangle. */
.rv-later { margin-top: 10px; border-top: 1px solid var(--book-rule); }
.rv-later summary {
    list-style: none; display: flex; align-items: center; gap: 10px; min-height: 48px;
    font-weight: 650; color: var(--gm-paper-ink); cursor: pointer;
}
.rv-later summary::-webkit-details-marker { display: none; }
.rv-later summary::after { content: "+"; margin-left: auto; font-size: 1.2rem; font-weight: 500; }
.rv-later[open] summary::after { content: "\2212"; }
.rv-later summary:hover { color: var(--gm-gold-ink); }
.rv-later-note { margin: 0 0 4px; font-size: 0.92rem; color: var(--gm-ink-2); }
.rv-week-days { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px 28px; padding: 4px 0 6px; }
.rv-week-date { margin: 0 0 6px; font-family: var(--gm-display); font-size: 1rem; color: var(--gm-paper-ink); }
.rv-week-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.rv-week-list li { display: grid; gap: 1px; }
.rv-week-topic { font-weight: 600; color: var(--gm-paper-ink); }
.rv-week-meta { font-size: 0.88rem; color: var(--gm-ink-2); }

/* ---------- my subjects ---------- */
.rv-subjects-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 20px; margin-bottom: 10px; }
.rv-section-title { margin: 0; font-family: var(--gm-display); font-size: 1.6rem; letter-spacing: -0.01em; color: var(--gm-paper-ink); }
.rv-key {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px;
    margin: 0 0 22px; padding: 0; list-style: none;
    font-size: 0.9rem; color: var(--gm-ink-2);
}
.rv-key li { display: inline-flex; align-items: center; gap: 8px; }
.rv-key-mark {
    display: inline-grid; place-items: center; flex: none; width: 18px; height: 18px;
    border: 1px solid var(--book-rule); border-radius: 5px; background: #fffdf8;
    font-size: 0.8rem; font-weight: 700; line-height: 1; color: var(--gm-paper-ink);
}
.rv-key-mark--next { background: var(--book-selected); border: 1.5px solid var(--gm-paper-ink); box-shadow: 2px 2px 0 var(--gm-paper-ink); }
.rv-key-mark--help { color: var(--gm-danger); }
.rv-key-mark--glance { border: 1.5px dashed var(--gm-muted); }
.rv-key-date { font-weight: 500; color: var(--gm-ink-2); font-variant-numeric: tabular-nums; }
.rv-colours .rv-key-mark--done { background: #e3f1e6; border-color: #9cc9a8; color: #1f5e37; }
.rv-colours .rv-key-mark--help { background: #f7dfdc; border-color: #dc9d95; color: #8a241c; }

.rv-subjects { display: grid; gap: 30px; }
.rv-subject {
    background: #fffdf8;
    border: 1.5px solid var(--gm-paper-ink);
    border-radius: 16px;
    box-shadow: var(--book-sheet);
    overflow: hidden;
}
.rv-subject-head {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px;
    padding: 18px 22px; background: var(--gm-paper-fill); border-bottom: 1px solid var(--book-rule);
}
.rv-subject-title { margin: 0; font-family: var(--gm-display); font-size: 1.35rem; letter-spacing: -0.01em; color: var(--gm-paper-ink); }
.rv-subject-meta { margin: 2px 0 0; font-size: 0.9rem; color: var(--gm-ink-2); }
.rv-subject-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; }
.rv-exam { display: inline-flex; align-items: center; gap: 12px; }
.rv-exam-text { display: grid; text-align: right; line-height: 1.3; }
.rv-exam-label { font-size: 0.9rem; font-weight: 650; color: var(--gm-paper-ink); }
.rv-exam-when { font-size: 0.88rem; color: var(--gm-ink-2); }
.rv-exam input,
.rv-field input,
.rv-field select,
.rv-field textarea {
    min-height: 44px; padding: 6px 10px;
    border: 1.5px solid var(--lc-navy-line, var(--gm-line-strong)); border-radius: 10px;
    background: #fffdf8; color: var(--gm-paper-ink); font: inherit;
}
.rv-subject-empty { margin: 0; padding: 18px 22px; color: var(--gm-ink-2); }

/* Topic rows. Wide screens: one header row names the five checks and each topic is one
   line of five check boxes. Narrow screens: each topic lists its checks one per line. */
.rv-columns { display: none; }
.rv-topics { margin: 0; padding: 0; list-style: none; }
.rv-topic { display: grid; gap: 12px; padding: 18px 22px; }
.rv-topic + .rv-topic { border-top: 1px solid var(--book-rule); }
.rv-topic--broken { color: var(--gm-danger); }
.rv-topic-id p { margin: 0; }
.rv-topic-name { font-size: 1.05rem; font-weight: 650; line-height: 1.3; color: var(--gm-paper-ink); }
.rv-topic-meta { margin-top: 2px; font-size: 0.88rem; color: var(--gm-ink-2); }

.rv-checks { margin: 0; padding: 0; list-style: none; }
.rv-check { font-variant-numeric: tabular-nums; }
.rv-check-date { font-weight: 650; color: var(--gm-paper-ink); }
.rv-check--planned .rv-check-date { font-weight: 500; color: var(--gm-ink-2); }
.rv-check-state { display: inline-flex; align-items: baseline; gap: 5px; font-size: 0.9rem; font-weight: 600; color: var(--gm-paper-ink); }
.rv-check-note { font-size: 0.85rem; color: var(--gm-ink-2); }
.rv-check--glanced .rv-check-state, .rv-check--skipped .rv-check-state { font-weight: 500; font-style: italic; color: var(--gm-ink-2); }
.rv-mark { font-weight: 700; }
.is-retry .rv-mark { color: var(--gm-danger); }
.rv-check-go {
    width: 100%; border: 1.5px solid var(--gm-paper-ink); border-radius: 10px;
    background: var(--gm-gold-soft); box-shadow: var(--book-tab);
    font: inherit; text-align: left; color: var(--gm-paper-ink); cursor: pointer;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.is-due .rv-check-go { background: var(--book-selected); }
.rv-check-go:hover { transform: translate(-1px, -1px); box-shadow: 4px 4px 0 var(--gm-paper-ink); }
.rv-check-go:active { transform: translate(1px, 1px); box-shadow: 1px 1px 0 var(--gm-paper-ink); }
.rv-check-record { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; }
.rv-check-record::after { content: "\2192"; }
.is-late .rv-check-state { padding: 0 8px; border: 1.5px solid var(--gm-paper-ink); border-radius: 999px; background: #fffdf8; font-size: 0.8rem; }
.rv-rating { font-weight: 500; }
.rv-colours .rv-rated--green { --rv-fill: #e3f1e6; --rv-edge: #9cc9a8; }
.rv-colours .rv-rated--yellow { --rv-fill: #fbf0c9; --rv-edge: #e3c768; }
.rv-colours .rv-rated--red { --rv-fill: #f7dfdc; --rv-edge: #dc9d95; }
.rv-colours .rv-check--recalled .rv-mark { color: var(--gm-success); }

.rv-next { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.rv-next > p { margin: 0 0 4px; }
.rv-next-links { display: flex; flex-wrap: wrap; gap: 0 18px; }
.rv-small { margin: 6px 0 0; font-size: 0.85rem; color: var(--gm-ink-2); }
.rv-warn { font-size: 0.88rem; font-weight: 600; color: var(--gm-danger); }
.rv-suggest { display: grid; justify-items: start; margin-bottom: 6px; padding: 10px 12px; border-radius: 10px; background: var(--gm-gold-soft); }
.rv-suggest p { margin: 0 0 2px; font-size: 0.88rem; color: var(--gm-paper-ink); }
.rv-text-button {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0 2px;
    border: 0; background: transparent; font: inherit; font-size: 0.92rem; font-weight: 600;
    color: var(--gm-ink-2); text-decoration: underline; text-decoration-color: var(--book-rule);
    text-underline-offset: 4px; cursor: pointer;
}
.rv-text-button:hover { color: var(--gm-gold-ink); text-decoration-color: currentColor; }
.rv-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:is(.rv-check-go, .rv-due-link, .rv-later summary, .rv-text-button):focus-visible { outline: 2px solid var(--gm-paper-ink); outline-offset: 3px; }

/* Narrow: a compact list, one line per check (name, date, what happened). */
@media (max-width: 1099px) {
    .rv-check { display: grid; grid-template-columns: 7.6em 4.4em minmax(0, 1fr); align-items: baseline; column-gap: 12px; padding: 9px 0; border-top: 1px solid var(--book-rule); }
    .rv-checks > .rv-check:first-child { border-top: 0; }
    .rv-check-name { font-size: 0.9rem; color: var(--gm-ink-2); }
    .rv-check > .rv-check-note { grid-column: 3; }
    .rv-check--empty { display: none; }
    .rv-colours [class*="rv-rated--"] { background: var(--rv-fill); box-shadow: -8px 0 0 var(--rv-fill), 8px 0 0 var(--rv-fill); }
    .rv-check--next { padding: 6px 0; border-top: 0; display: block; }
    .rv-check--next + .rv-check { border-top: 0; }
    .rv-check-go {
        display: grid; grid-template-columns: 7.6em minmax(0, 1fr) auto; align-items: baseline; gap: 2px 12px;
        min-height: 56px; padding: 12px; margin-left: -12px; width: calc(100% + 12px);
    }
    .rv-check-go .rv-check-name { grid-column: 1; grid-row: 1 / span 3; }
    .rv-check-go .rv-check-date { grid-column: 2; grid-row: 1; }
    .rv-check-go .rv-check-state { grid-column: 2; grid-row: 2; justify-self: start; }
    .rv-check-go .rv-check-note { grid-column: 2; grid-row: 3; }
    .rv-check-record { grid-column: 3; grid-row: 1 / span 3; align-self: center; }
    .rv-check-go .rv-check-name { color: var(--gm-paper-ink); }
}

/* Wide: the five checks as aligned boxes under one header row. */
@media (min-width: 1100px) {
    .rv-columns,
    .rv-topic { grid-template-columns: minmax(170px, 1.15fr) minmax(0, 5fr) minmax(200px, 1.2fr); column-gap: 22px; }
    .rv-columns {
        display: grid; padding: 10px 22px;
        border-bottom: 1px solid var(--book-rule);
        font-size: 0.85rem; font-weight: 650; color: var(--gm-ink-2);
    }
    .rv-columns-checks,
    .rv-checks { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
    .rv-columns-checks span { padding-left: 12px; }
    .rv-topic { align-items: start; }
    .rv-check-name { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .rv-check {
        display: flex; flex-direction: column; gap: 3px; min-height: 76px; padding: 10px 12px;
        border: 1px solid var(--rv-edge, var(--book-rule)); border-radius: 10px; background: var(--rv-fill, #fffdf8);
    }
    .rv-check--planned { border-color: transparent; background: rgba(241, 230, 203, 0.45); }
    .rv-check--glanced, .rv-check--skipped { border: 1.5px dashed var(--gm-muted); }
    .rv-check--empty { border-color: transparent; }
    .rv-check--next { padding: 0; border: 0; background: transparent; }
    .rv-check-go { display: flex; flex-direction: column; gap: 3px; height: 100%; min-height: 76px; padding: 10px 12px; }
    .rv-check-go .rv-check-state { align-self: flex-start; }
    .rv-check-record { margin-top: auto; padding-top: 4px; font-size: 0.9rem; }
}

.rv-others { padding: 4px 2px 0; }
.rv-others-title { margin: 0; font-family: var(--gm-display); font-size: 1.15rem; color: var(--gm-paper-ink); }
.rv-others-note { margin: 4px 0 6px; font-size: 0.92rem; color: var(--gm-ink-2); }
.rv-others-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--book-rule); }
.rv-others-list li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 24px; padding: 8px 0; border-bottom: 1px solid var(--book-rule); }
.rv-others-name { flex: 1 1 220px; font-weight: 650; color: var(--gm-paper-ink); }
.rv-others-list .gm-run-button { min-height: 44px; }

.rv-hidden-note { margin: 16px 0 0; font-size: 0.9rem; color: var(--gm-ink-2); }
.rv-history-cycle { font-size: 0.88rem; color: var(--gm-ink-2); }
.rv-archived { margin-top: 22px; }
.rv-archived[hidden] { display: none; }
.rv-archived summary { min-height: 44px; display: flex; align-items: center; font-weight: 650; color: var(--gm-paper-ink); cursor: pointer; }
.rv-archived-list { margin: 8px 0 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.rv-archived-list li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 12px; color: var(--gm-ink-2); }
.rv-hidden-note[hidden] { display: none; }
.rv-empty { display: grid; gap: 8px; }
.rv-empty p { margin: 0; }

.rv-foot { margin-top: 40px; padding-top: 18px; border-top: 1px solid var(--book-rule); }
.rv-foot-actions { display: flex; flex-wrap: wrap; gap: 4px 22px; }
.rv-zone, .rv-credit { margin: 10px 0 0; font-size: 0.88rem; color: var(--gm-ink-2); }

/* ---------- dialogs ---------- */
.rv-dialog {
    /* styles.css resets margins on every element; put the dialog back in the centre. */
    position: fixed;
    inset: 0;
    margin: auto;
    height: fit-content;
    width: min(560px, calc(100% - 32px));
    max-height: min(88vh, 860px);
    padding: 0;
    border: 1.5px solid var(--gm-paper-ink);
    border-radius: 16px;
    background: var(--gm-paper-fill);
    color: var(--gm-paper-ink);
    box-shadow: var(--book-sheet);
}
.rv-dialog::backdrop { background: rgba(13, 29, 54, 0.45); }
.rv-dialog form, .rv-history { display: grid; gap: 14px; padding: 22px 24px; }
.rv-dialog-title { margin: 0; font-family: var(--gm-display); font-size: 1.35rem; color: var(--gm-paper-ink); }
.rv-dialog-lede, .rv-dialog-note { margin: 0; color: var(--gm-ink-2); line-height: 1.5; }
.rv-dialog-note[hidden], .rv-dialog-source[hidden], [data-rv-recall-fields][hidden], .rv-choice[hidden] { display: none; }
.rv-dialog-source { margin: 0; padding: 10px 12px; border-radius: 10px; background: var(--gm-gold-soft); line-height: 1.45; }
.rv-dialog-error { margin: 0; min-height: 1.2em; font-weight: 600; color: var(--gm-danger); }
.rv-dialog-error:empty { display: none; }
.rv-dialog-actions { display: flex; justify-content: flex-end; align-items: center; gap: 6px 14px; }
.rv-dialog-actions--wrap { flex-wrap: wrap; justify-content: flex-start; }
[data-rv-recall-fields] { display: grid; gap: 14px; }
.rv-field { display: grid; gap: 6px; font-weight: 600; font-size: 0.92rem; }
.rv-field textarea { resize: vertical; min-height: 84px; line-height: 1.45; }
.rv-field input[readonly] { background: var(--gm-gold-soft); }
.rv-choice { display: grid; gap: 4px; margin: 0; padding: 0; border: 0; }
.rv-choice legend { margin-bottom: 6px; padding: 0; font-weight: 600; font-size: 0.92rem; }
.rv-choice label { display: flex; align-items: center; gap: 10px; min-height: 36px; font-weight: 500; cursor: pointer; }
.rv-choice--rating { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rv-choice--rating legend { grid-column: 1 / -1; }
.rv-choice input:disabled + * , .rv-choice label:has(input:disabled) { opacity: 0.45; cursor: default; }
.rv-history-body { display: grid; gap: 10px; max-height: 52vh; overflow: auto; }
.rv-history-body p { margin: 0; line-height: 1.45; }
.rv-history-first { color: var(--gm-ink-2); }
.rv-history-item { padding: 10px 12px; border: 1px solid var(--book-rule); border-radius: 10px; background: #fffdf8; }
.rv-history-head { font-weight: 650; }

/* ---------- small screens ---------- */
@media (max-width: 560px) {
    .rv-due { padding-left: 16px; padding-right: 16px; }
    .rv-subject-head, .rv-topic, .rv-subject-empty { padding-left: 16px; padding-right: 16px; }
    .rv-exam-text { text-align: left; }
    .rv-due-link { grid-template-columns: minmax(0, 1fr); }
    .rv-due-go { grid-column: 1; grid-row: auto; margin-top: 4px; }
    .rv-check { grid-template-columns: 6.6em 4em minmax(0, 1fr); column-gap: 10px; }
    .rv-check-go { grid-template-columns: 6.6em minmax(0, 1fr) auto; column-gap: 10px; }
    .rv-choice--rating { grid-template-columns: 1fr; }
    /* Keep Save in reach on a phone: the dialog scrolls inside the screen. */
    .rv-dialog { max-height: calc(100dvh - 24px); overflow: auto; }
}
@media (prefers-reduced-motion: reduce) {
    .rv-due-go, .rv-due-go::after, .rv-check-go { transition: none; }
    .rv-due-link:hover .rv-due-go::after, .rv-check-go:hover, .rv-check-go:active { transform: none; }
}

/* ---------- print: the timetable only, like the paper template ---------- */
@media print {
    .lc-topbar, .book-index, .rv-tools, .rv-help, .rv-due, .rv-foot-actions, .rv-zone, .rv-next, .gm-status,
    .rv-switch, .rv-subject-tools .gm-run-button, .rv-check-record { display: none !important; }
    body { background: #fff; }
    html, body, .lc-shell, .lc-display, .rv-display { height: auto !important; max-height: none !important; overflow: visible !important; }
    .rv-archived, .rv-hidden-note { display: none !important; }
    .rv-subject { break-inside: avoid; box-shadow: none; border-color: #999; }
    .rv-topic { break-inside: avoid; }
    .rv-check-go { box-shadow: none; background: none; border-color: #999; }
}
