/* Shared app materials, matching iOS StudyPaper (FlipCardView.swift).
   Loaded after page styles. Legacy dark-mode declarations require selected
   !important overrides; keep page layout and study decision controls scoped. */
:root {
    --wq-bg: #191a18;
    --wq-surface: #282925;
    --wq-surface-2: #30312c;
    --wq-surface-3: #393b34;
    --wq-text: #e8e2d5;
    --wq-text-soft: #d4cebf;
    --wq-text-muted: #beb9aa;
    --wq-text-dim: #a29e90;
    --wq-border: #45463d;
    --wq-border-strong: #746b56;
    --wq-accent: #c3ab83;
    --wq-accent-hover: #d2bd99;
    --wq-accent-2: #d2bd99;
    --wq-accent-soft: rgba(195, 171, 131, .12);
    --wq-on-accent: #22231e;
    --wq-paper-action: #514532;
    /* A single oak accent palette keeps the brand and controls together; app surfaces stay neutral. */
    --wq-wood-grain: repeating-linear-gradient(2deg, transparent 0 7px, #16171014 8px, transparent 9px 19px), repeating-linear-gradient(178deg, transparent 0 17px, #f1e5c907 18px, transparent 19px 37px);
    --wq-wood-fill: var(--wq-wood-grain), linear-gradient(110deg, #594b38, #463c2e);
    --wq-on-wood: #eee6d7;
    --wq-wood-brand: linear-gradient(110deg, #ceb991, #b49b74);
    --wq-wood-hover: var(--wq-wood-grain), linear-gradient(110deg, #66563f, #514532);
    /* Fixed, low-opacity fibers add paper tactility without moving behind text. */
    --wq-paper-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23ede6d5' opacity='.035' filter='url(%23p)' d='M0 0h160v160H0z'/%3E%3C/svg%3E");
    --wq-shadow-sm: 0 2px 6px #00000018;
    --wq-shadow-md: 0 6px 16px #00000026;
    --primary-color: var(--wq-accent);
    --primary-hover: var(--wq-accent-hover);
    --background-color: var(--wq-bg);
    --card-background: var(--wq-surface);
    --text-color: var(--wq-text);
    --text-muted: var(--wq-text-muted);
    --border-color: var(--wq-border);
    color-scheme: dark;
    background-color: var(--wq-bg);
}
html.dark .wq-paper-shell { background: var(--wq-bg); color: var(--wq-text); }
html.dark .wq-paper-shell :is(.top-header, .bottom-nav) {
    background: var(--wq-bg);
    border-color: var(--wq-border);
    box-shadow: none;
}
html.dark .wq-paper-shell .top-header { border-bottom: 1px solid var(--wq-border); }
html.dark .wq-paper-shell :is(.top-nav-item, .bottom-nav-item, .btn-top-login, .user-name) { color: var(--wq-text-muted); }
html.dark .wq-paper-shell :is(.top-nav-item.active, .bottom-nav-item.active) { color: var(--wq-accent); }
html.dark .wq-paper-shell :is(.top-nav-item.active, .top-nav-item:hover) { background: var(--wq-accent-soft); }
html.dark .wq-paper-shell .bottom-nav-item.active::before { width: 24px; height: 2px; background: var(--wq-accent); }
html.dark .wq-paper-shell .bottom-nav-item .nav-icon { width: 42px; border-radius: 9px; }
html.dark .wq-paper-shell .bottom-nav-item.active .nav-icon { background: var(--wq-accent-soft); transform: none; }
html.dark .wq-paper-shell .bottom-nav-item.active .nav-icon svg { stroke: var(--wq-accent); stroke-width: 1.8; }
html.dark .wq-paper-shell :is(.top-nav-cta, .btn-top-signup) { background: var(--wq-accent); color: var(--wq-on-accent); box-shadow: none; }
html.dark .wq-paper-shell :is(.top-nav-cta, .btn-top-signup):hover { background: var(--wq-accent-hover); }
html.dark .wq-paper-shell :is(.user-dropdown-btn, .mobile-menu-content, .user-dropdown-menu) { background: var(--wq-surface); border-color: var(--wq-border); }
html.dark .wq-paper-shell :is(.user-avatar, .set-avatar) { background: var(--wq-paper-action); border: 1px solid var(--wq-border-strong); color: var(--wq-accent); box-shadow: none; }
html.dark .wq-paper-shell :is(.mobile-menu-item, .mobile-menu-header, .mobile-menu-footer) { border-color: var(--wq-border); color: var(--wq-text-soft); }
html.dark .wq-paper-shell .mobile-menu-item:is(.active, :hover) { color: var(--wq-accent); background: var(--wq-accent-soft); }
.wq-paper-shell :is(a, button, input, select, summary):focus-visible { outline: 2px solid var(--wq-accent); outline-offset: 3px; }

/* Tab pages use the same quiet surfaces and clear hierarchy. */
html.dark .wq-paper-tabs > .main-wrapper { background: var(--wq-bg); }
html.dark .wq-paper-tabs :is(.mq-hub, .workbook-item, .collection-item, .sh-mode-card, .sh-recent-item, .sh-review-card, .xp-card, .set-profile-card, .set-list-card, .point-progress, .study-calendar, .lp-experience, .lp-ai__demo, .lp-material__result) {
    background: linear-gradient(135deg, #dad7ce03, transparent 65%), var(--wq-surface) !important;
    border: 1px solid var(--wq-border) !important;
    border-radius: 14px;
    box-shadow: inset 0 1px 0 #ede6d507, 0 4px 12px #00000026 !important;
}
html.dark .wq-paper-tabs :is(.workbook-item-footer, .workbook-item-body, .sh-container, .xp-root, .set-root) { background: transparent !important; }
html.dark .wq-paper-tabs :is(.workbook-item-title a, #recent-section .workbook-item-title a, .xp-card-title a, .sh-recent-item__title a, .set-nickname, .mq-hub__title, .xp-heading h1) { color: var(--wq-text) !important; }
html.dark .wq-paper-tabs :is(.workbook-item-desc, .workbook-item-meta, .workbook-item-author) { color: var(--wq-text-muted) !important; }
.wq-paper-tabs :is(.mq-hub__title, .xp-heading h1, .set-nickname) { font-weight: 600; letter-spacing: -.035em; }
.wq-paper-tabs :is(.mq-hub__eyebrow, .sh-section-title, .set-group-title) { color: var(--wq-accent); font-weight: 500; }
.wq-paper-tabs :is(.workbook-item-title, .xp-card-title, .sh-mode-card__title, .sh-recent-item__title, .set-list-title) { font-weight: 600; }
.wq-paper-tabs :is(.mq-hub__subtitle, .xp-card-desc, .sh-mode-card__sub) { line-height: 1.7; }
.wq-paper-tabs :is(.section-accent, .section-accent--recent, .sh-section-dot) { background: var(--wq-accent); }
.wq-paper-tabs :is(.workbook-item-footer, .xp-card-action, .set-stats-bar) { border-color: var(--wq-border) !important; }
html.dark .wq-paper-tabs :is(.mq-demo-banner, .sh-guest-banner) { background: var(--wq-accent-soft); border-color: var(--wq-border); border-radius: 14px; }
.wq-paper-tabs :is(.mq-demo-banner__chip, .sh-guest-banner span, .sh-mode-card__icon, .section-count) { background: var(--wq-accent-soft); color: var(--wq-accent); }
html.dark .wq-paper-tabs .mq-stat--active { background: var(--wq-accent-soft) !important; border-color: var(--wq-accent) !important; }
html.dark .wq-paper-tabs #recent-section .workbook-item { background: var(--wq-surface) !important; border-color: var(--wq-border) !important; }

/* Dark walnut actions with warm, readable labels. */
html.dark .wq-paper-tabs :is(.wkb-action-btn.study, .xp-study-btn, .sh-btn-quick) {
    background: var(--wq-paper-action) !important;
    border-color: var(--wq-border-strong) !important;
    color: var(--wq-text) !important;
    box-shadow: none !important;
}
html.dark .wq-paper-tabs :is(.wkb-action-btn.auto-learn, .wkb-action-btn.exam, .xp-play-btn) {
    background: var(--wq-surface-2) !important;
    border-color: var(--wq-border) !important;
    color: var(--wq-text-soft) !important;
    box-shadow: none !important;
}
html.dark .wq-paper-tabs :is(.wkb-action-btn, .xp-study-btn):is(:disabled, .disabled, .is-added) { background: var(--wq-surface-2) !important; border-color: var(--wq-border) !important; color: var(--wq-text-muted) !important; box-shadow: none !important; }
.wq-paper-tabs :is(.wkb-action-btn, .xp-study-btn, .mq-action, .sh-btn-quick) { min-height: 44px; border-radius: 11px; }
html.dark .wq-paper-tabs .xp-topic.is-active { background: var(--wq-accent-soft); color: var(--wq-accent); border-color: var(--wq-border-strong); }
.wq-paper-tabs .sh-mode-card { padding: 20px 18px; gap: 16px; }
.wq-paper-tabs .sh-mode-card--study { border-color: var(--wq-border-strong) !important; }
.wq-paper-tabs .sh-section-header { margin-bottom: 12px; }
.wq-paper-tabs .sh-recent-list { gap: 12px; }
.wq-paper-tabs .sh-review-card { padding: 20px; }
.wq-paper-tabs .set-profile-card { padding: 24px; }
.wq-paper-tabs .set-stats-bar { background: transparent; }
.wq-paper-tabs .set-stat-num { color: var(--wq-text); font-weight: 500; }
.wq-paper-tabs .set-list-icon { background: var(--wq-surface-2); }
.wq-paper-tabs .point-progress__fill { background: var(--wq-accent) !important; }

/* Guest home previews share the same paper materials as a real study card. */
html.dark .wq-paper-tabs .lp-study-card .lp-flash__face { background: var(--wq-paper-grain), linear-gradient(145deg, var(--wq-surface-2), var(--wq-surface)); color: var(--wq-text); border-color: var(--wq-border); }
.wq-paper-tabs .lp-study-card strong { font-family: 'Noto Serif KR', 'AppleMyungjo', Georgia, serif; font-weight: 500; }
html.dark .wq-paper-tabs :is(.lp-ai__demo, .lp-material__result) { background: var(--wq-surface) !important; }

@media (hover: hover) {
    html.dark .wq-paper-tabs :is(.workbook-item, .sh-mode-card, .xp-card):hover { border-color: var(--wq-border-strong) !important; transform: translateY(-2px); box-shadow: 0 8px 20px #00000024 !important; }
    html.dark .wq-paper-tabs :is(.wkb-action-btn, .xp-study-btn, .sh-btn-quick):hover:not(:disabled):not(.disabled):not(.is-added) { border-color: var(--wq-accent) !important; background: var(--wq-surface-3) !important; transform: none; }
}
@media (max-width: 600px) {
    .wq-paper-tabs .set-profile-card { padding: 20px 16px; }
    .wq-paper-tabs .sh-mode-card { padding: 18px 14px; }
}
@media (prefers-reduced-motion: reduce) {
    .wq-paper-shell :is(.top-nav-item, .bottom-nav-item, .workbook-item, .sh-mode-card, .xp-card) { transition: none; transform: none !important; }
}

/* Calendar, footer and mobile menu share the app chrome. */
/* Keep the logo silhouette and accessible image; tint it with the same oak
   material as the controls instead of introducing a second brand color. */
@media (min-width: 1024px), (min-width: 768px) and (orientation: landscape) and (min-height: 600px) {
    html.dark .wq-paper-shell .logo { position: relative; }
}
html.dark .wq-paper-shell .logo img { filter: none; opacity: 0; }
html.dark .wq-paper-shell .logo::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: var(--wq-wood-brand);
    -webkit-mask: url('../images/logo.png') left center / contain no-repeat;
    mask: url('../images/logo.png') left center / contain no-repeat;
}
html.dark .wq-paper-shell .desktop-footer { background: var(--wq-bg); border-color: var(--wq-border); }
html.dark .wq-paper-shell :is(.desktop-footer p, .footer-links a, .menu-item) { color: var(--wq-text-muted); }
html.dark .wq-paper-shell .menu-item:hover { background: var(--wq-accent-soft); color: var(--wq-accent); }
html.dark .wq-paper-tabs .study-calendar__table td { border-color: var(--wq-border) !important; background: transparent !important; }
html.dark .wq-paper-tabs .study-calendar__table :is(.study-calendar__date, .study-calendar__time) { color: var(--wq-text) !important; }
html.dark .wq-paper-tabs .study-calendar__table .is-future .study-calendar__date { color: var(--wq-text-muted) !important; }
html.dark .wq-paper-tabs .study-calendar__table :is(th:last-child, .study-calendar__attempts) { color: var(--wq-accent) !important; }
html.dark .wq-paper-tabs .study-calendar__table .is-today .study-calendar__date { color: var(--wq-on-accent) !important; }
html.dark .wq-paper-tabs .set-btn-edit-profile { background: var(--wq-surface-2); color: var(--wq-text-soft); border-color: var(--wq-border); }
.wq-paper-tabs .sh-mode-card__sub { max-width: none; word-break: keep-all; }
html.dark .wq-paper-tabs :is(input[type="text"], input[type="email"], input[type="password"], textarea) { background-color: var(--wq-surface-2) !important; color: var(--wq-text) !important; border-color: var(--wq-border) !important; }
html.dark .wq-paper-tabs :is(input, textarea)::placeholder { color: var(--wq-text-muted) !important; }
html.dark .wq-paper-tabs :is(input.mq-search__input, input.xp-search-input) { background: transparent !important; }
html.dark .wq-paper-tabs .mq-mobile-fab { background: var(--wq-accent); color: var(--wq-on-accent); border-color: var(--wq-accent); box-shadow: 0 6px 18px #00000040; }
html.dark .wq-paper-tabs .mq-mobile-fab svg { stroke: var(--wq-on-accent); stroke-width: 2; }
html.dark .wq-paper-tabs .mq-mobile-fab:active { background: var(--wq-accent-hover); }
html.dark .wq-paper-tabs :is(.topic-tag, .type-badge, .exam-type-tag) { color: var(--wq-text-muted) !important; background: var(--wq-surface-2) !important; border-color: var(--wq-border) !important; }

/* Study setup JS sets button colors inline when switching question types. */
html.dark .wq-paper-tabs .sh-btn-submit { background: var(--wq-accent) !important; color: var(--wq-on-accent) !important; box-shadow: none !important; font-weight: 600; }
html.dark .wq-paper-tabs .sh-btn-submit:hover { background: var(--wq-accent-hover) !important; }
html.dark .wq-paper-tabs .sh-wb-card:has(.sh-wb-chk:checked),
html.dark .wq-paper-tabs .sh-scope-card:has(input:checked) { background: var(--wq-paper-action); border-color: var(--wq-border-strong); }
html.dark .wq-paper-tabs .sh-scope-card:has(input:checked) .sh-scope-card__radio { background: var(--wq-accent); border-color: var(--wq-accent); }
html.dark .wq-paper-shell .avatar-circle { background: var(--wq-paper-action); color: var(--wq-accent); border: 1px solid var(--wq-border-strong); }
html.dark .wq-paper-shell .point-pill { background: var(--wq-accent-soft); color: var(--wq-accent); border-color: var(--wq-border); }
html.dark .wq-paper-shell :is(.user-profile-summary, .menu-section, .menu-footer) { border-color: var(--wq-border); }
html.dark .wq-paper-shell :is(.username, .user-details .username) { color: var(--wq-text); }

/* Login uses the same surfaces as the profile and library tabs. */
.is-login .auth-container { box-sizing: border-box; max-width: 460px; margin: 32px auto; }
html.dark .is-login .auth-card {
    background: var(--wq-surface) !important; border-color: var(--wq-border) !important;
    border-radius: 18px; box-shadow: 0 6px 16px #00000026 !important;
    padding: clamp(22px, 5vw, 36px);
}
html.dark .is-login .auth-header h1 { color: var(--wq-text) !important; font-weight: 600; letter-spacing: -.035em; }
html.dark .is-login :is(.auth-header p, .auth-footer, .divider) { color: var(--wq-text-muted) !important; }
html.dark .is-login .auth-form label { color: var(--wq-text-soft); }
html.dark .is-login .auth-form input:not([type="hidden"]) {
    box-sizing: border-box; background: var(--wq-surface-2) !important;
    border-color: var(--wq-border) !important; color: var(--wq-text) !important;
    min-height: 48px; border-radius: 10px;
}
html.dark .is-login .auth-form input:focus { border-color: var(--wq-accent) !important; box-shadow: 0 0 0 3px var(--wq-accent-soft); }
html.dark .is-login .btn-auth-primary {
    background: var(--wq-accent); color: var(--wq-on-accent); border-radius: 10px;
    min-height: 48px; box-shadow: none; transform: none;
}
html.dark .is-login .btn-auth-primary:hover { background: var(--wq-accent-hover); }
html.dark .is-login .btn-social {
    min-height: 48px; border-radius: 10px; background: var(--wq-surface-2) !important;
    color: var(--wq-text) !important; border-color: var(--wq-border) !important;
}
html.dark .is-login .btn-social:hover { background: var(--wq-surface-3) !important; }
html.dark .is-login .auth-footer a { color: var(--wq-accent) !important; }
@media (max-width: 560px) { .is-login .auth-container { margin-block: 12px; } }

/* A restrained wood finish on primary actions, never on page/card surfaces. */
html.dark .wq-paper-shell :is(.top-nav-cta, .btn-top-signup, .lp-shell .lp-btn--primary, .btn-auth-primary, .sh-btn-submit, .mq-mobile-fab, .wkb-action-btn.study, .xp-study-btn, .sh-btn-quick):not(:disabled):not(.disabled):not(.is-added) {
    background: var(--wq-wood-fill) !important;
    color: var(--wq-on-wood) !important;
    border-color: var(--wq-accent) !important;
    box-shadow: inset 0 1px 0 #ede6d514, 0 2px 5px #00000026 !important;
}
@media (hover: hover) {
    html.dark .wq-paper-shell :is(.top-nav-cta, .btn-top-signup, .lp-shell .lp-btn--primary, .btn-auth-primary, .sh-btn-submit, .mq-mobile-fab, .wkb-action-btn.study, .xp-study-btn, .sh-btn-quick):hover:not(:disabled):not(.disabled):not(.is-added) {
        background: var(--wq-wood-hover) !important;
        color: var(--wq-on-wood) !important;
    }
}

/* Set details are part of the same paper library, including legacy dark rules. */
html.dark .is-workbook-detail :is(.workbook-detail-header, .study-settings-dialog, .pagination, .access-lock-section) {
    background: var(--wq-surface) !important;
    border-color: var(--wq-border) !important;
    box-shadow: var(--wq-shadow-sm) !important;
}
html.dark .is-workbook-detail .workbook-content-section {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}
html.dark .is-workbook-detail .problem-card {
    background: var(--wq-paper-grain), var(--wq-surface) !important;
    border-color: var(--wq-border) !important;
    box-shadow: inset 0 1px 0 #ede6d507 !important;
}
html.dark .is-workbook-detail :is(.workbook-title, .content-title, .problem-text, .study-settings-head h2) {
    color: var(--wq-text) !important;
    font-weight: 600;
}
html.dark .is-workbook-detail .problem-text { font-weight: 500; line-height: 1.65; }
html.dark .is-workbook-detail :is(.detail-label, .stat-count, .meta-text, .workbook-description, .page-link, .page-num) { color: var(--wq-text-muted) !important; }
html.dark .is-workbook-detail :is(.problem-header, .stats-actions-row, .workbook-meta-info, .study-settings-head, .as-settings) { border-color: var(--wq-border) !important; }
html.dark .is-workbook-detail :is(.problem-type, .problem-count, .owner-badge, .text-tag, .answer-value, .stat-value) {
    color: var(--wq-accent) !important;
    background: var(--wq-accent-soft) !important;
    border-color: var(--wq-border) !important;
}
html.dark .is-workbook-detail :is(.action-btn:not(.delete), .study-settings-trigger, .wb-toolbar-search, .wb-toolbar-select, .prob-action:not(.delete), .practice-btn.print, .bookmark-btn) {
    background: var(--wq-surface-2) !important;
    color: var(--wq-text-soft) !important;
    border-color: var(--wq-border) !important;
    box-shadow: none !important;
}
html.dark .is-workbook-detail :is(.progress-bar-fill, .toggle-switch input:checked + .slider) { background: var(--wq-accent) !important; }
html.dark .is-workbook-detail :is(.page-num.active, .wb-toolbar-btn--primary, .access-btn, .submit-btn) {
    background: var(--wq-wood-fill) !important;
    color: var(--wq-on-wood) !important;
    border-color: var(--wq-accent) !important;
    box-shadow: none !important;
}

html.dark .is-workbook-detail :is(select, .progress-bar-bg) {
    background-color: var(--wq-surface-2) !important;
    color: var(--wq-text) !important;
    border-color: var(--wq-border) !important;
}
html.dark .is-workbook-detail .progress-text { color: var(--wq-accent) !important; }

/* Mobile library and profile: compact structure with room for clear reading. */
@media (max-width: 640px) {
    .wq-paper-tabs .mq-browser { margin-bottom: 16px; gap: 8px; }
    .wq-paper-tabs .section-header { margin-bottom: 12px; }
    .wq-paper-tabs .workbook-list-grid { gap: 12px; }
    .wq-paper-tabs .workbook-section .workbook-item-tags { min-height: 20px; }
    .wq-paper-tabs .workbook-section .workbook-item-title {
        font-size: 1rem; line-height: 1.45; font-weight: 600;
        white-space: normal; display: -webkit-box; -webkit-box-orient: vertical;
        -webkit-line-clamp: 2; overflow: hidden;
    }
    .wq-paper-tabs .workbook-section .wb-progress__track { height: 4px; }
    .wq-paper-tabs .workbook-section .workbook-item { padding: 14px; gap: 10px; }
    .wq-paper-tabs .workbook-section .workbook-item-body { padding: 0; gap: 8px; }
    .wq-paper-tabs .workbook-section .workbook-item-footer { padding: 0; }
    .wq-paper-tabs .workbook-section .workbook-actions:has(.wb-remove-btn) {
        flex-direction: row; align-items: center; gap: 8px;
    }
    .wq-paper-tabs .workbook-section .workbook-actions .wkb-dual-actions {
        flex: 1; min-width: 0; width: auto !important;
    }
    .wq-paper-tabs .workbook-section .workbook-actions .wkb-action-btn {
        min-width: 0; min-height: 44px !important; padding: 6px !important;
    }
    .wq-paper-tabs .workbook-section .wb-remove-btn {
        flex: 0 0 auto; width: auto; min-width: 44px; min-height: 44px;
        padding: 6px 8px; font-size: .78rem; background: transparent; border-color: transparent;
    }

    .wq-paper-tabs .workbook-section .wb-progress { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; margin-top: 0; gap: 12px; }
    .wq-paper-tabs .workbook-section .wb-progress__foot { display: flex !important; gap: 8px; font-size: .72rem; white-space: nowrap; }
    .wq-paper-tabs .workbook-section .wb-progress-meta-inline { display: none !important; }
    .wq-paper-tabs .set-root { gap: 16px; padding-bottom: 16px; }
    .wq-paper-tabs .set-profile-card { padding: 16px; gap: 16px; }
    .wq-paper-tabs .set-profile-main {
        grid-template-columns: 48px minmax(0, 1fr) auto;
        grid-template-areas: "avatar details action"; gap: 12px;
    }
    .wq-paper-tabs .set-avatar { width: 48px; height: 48px; font-size: 1.2rem; }
    .wq-paper-tabs .set-user-details { gap: 4px; }
    .wq-paper-tabs .set-nickname { font-size: 1.1rem; }
    .wq-paper-tabs .set-user-meta { font-size: .78rem; }
    .wq-paper-tabs .set-joined { font-size: .75rem; }
    .wq-paper-tabs .set-btn-edit-profile {
        width: auto; min-height: 44px; padding: 6px 8px; font-size: .76rem;
    }
    .wq-paper-tabs .set-edit-label-prefix { display: none; }
    .wq-paper-tabs .set-stats-bar { padding: 8px 0; }
    .wq-paper-tabs .set-stat-item { gap: 4px; padding: 4px; min-height: 44px; }
    .wq-paper-tabs .set-stat-num { font-size: 1.2rem; }
    .wq-paper-tabs .set-stat-lbl { font-size: .72rem; }
    .wq-paper-tabs .set-root .point-progress { padding: 16px; }
    .wq-paper-tabs .set-root .point-progress__heading { margin-bottom: 12px; }
    .wq-paper-tabs .set-root .point-progress__tiers { margin-bottom: 10px; }
    .wq-paper-tabs .set-root .point-progress__tiers strong { font-size: .95rem; }
    .wq-paper-tabs .set-root .point-progress__track { height: 6px; }
    .wq-paper-tabs .set-root .point-progress__details { margin-top: 8px; gap: 6px 10px; }
    .wq-paper-tabs .set-root .point-guide { margin-top: 12px; }
    .wq-paper-tabs .set-root .point-guide summary { min-height: 44px; padding-top: 0; }
    .wq-paper-tabs .set-root .study-calendar { padding: 16px 12px 10px; }
    .wq-paper-tabs .set-root .study-calendar__heading { margin-bottom: 6px; }
    .wq-paper-tabs .set-root .study-calendar__summary { margin: 4px 0 12px; }
    .wq-paper-tabs .set-root .study-calendar__table th { padding-bottom: 6px; }
    .wq-paper-tabs .set-root .study-calendar__table td { height: 68px; padding: 6px 0; }
    .wq-paper-tabs .set-root .study-calendar__date { height: 24px; margin-bottom: 3px; }
    .wq-paper-tabs .set-root .study-calendar__time,
    .wq-paper-tabs .set-root .study-calendar__attempts { line-height: 1.5; }
    .wq-paper-tabs .set-section-group { gap: 10px; }
    .wq-paper-tabs .set-list-row { padding: 12px 16px; min-height: 48px; gap: 12px; }
}

/* Review records: readable titles, quiet metadata and one clear next action. */
.wq-paper-tabs .sh-review-section { margin-top: 28px; }
.wq-paper-tabs .sh-review-description { margin: 0 0 16px; line-height: 1.6; }
.wq-paper-tabs .sh-review-list { gap: 12px; }
.wq-paper-tabs .sh-review-card { padding: 18px 20px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 24px; align-items: center; }
.wq-paper-tabs .sh-review-heading { min-width: 0; }
.wq-paper-tabs .sh-review-date { font-size: .73rem; }
.wq-paper-tabs .sh-review-card h3 { margin: 6px 0 0; font-size: .98rem; line-height: 1.5; font-weight: 600; word-break: keep-all; }
.wq-paper-tabs .sh-review-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-size: .76rem; }
.wq-paper-tabs .sh-review-meta > span { white-space: nowrap; }
.wq-paper-tabs .sh-review-wrong { color: var(--wq-accent); }
.wq-paper-tabs .sh-review-actions { grid-column: 2; grid-row: 1 / 3; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0; }
html.dark .wq-paper-tabs .sh-review-link { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; box-sizing: border-box; background: var(--wq-surface-2); color: var(--wq-text-soft); border: 1px solid var(--wq-border); border-radius: 9px; font-size: .78rem; text-decoration: none; }
html.dark .wq-paper-tabs .sh-review-link--primary { background: var(--wq-wood-fill); color: var(--wq-on-wood); border-color: var(--wq-border-strong); }
html.dark .wq-paper-tabs .sh-review-link--history { background: transparent; border-color: transparent; color: var(--wq-text-muted); margin-left: 0; }
.wq-paper-tabs .sh-review-more { min-height: 44px; border-color: var(--wq-border); color: var(--wq-text-soft); }
@media (max-width: 768px) {
    .wq-paper-tabs .sh-review-card { padding: 16px; grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .wq-paper-tabs .sh-review-actions { grid-column: auto; grid-row: auto; margin-top: 4px; display: flex; gap: 8px; }
    .wq-paper-tabs .sh-review-link--primary, .wq-paper-tabs .sh-review-link--secondary { flex: 1; }
    .wq-paper-tabs .sh-review-actions .sh-review-link--primary { order: -1; }
    .wq-paper-tabs .sh-review-link--history { margin-left: auto; padding-inline: 8px; }
}
