:root {--bg:var(--ph-bg,#f3f6f4);--card:var(--ph-surface,#fff);--text:var(--ph-ink,#132b27);--muted:var(--ph-ink-secondary,#536b66);--line:var(--ph-line,rgba(24,76,69,.12));--brand:var(--ph-chrome-accent,#0f766e);--brand-2:var(--ph-chrome-accent-hover,#0b625c);--good:#16a34a;--warn:#dc2626;--radius:var(--ph-radius-card,16px);--shadow:var(--ph-shadow-card,0 12px 32px rgba(14,43,38,.07));--builder-text-shift:0px;--builder-type-structured:calc(14px + var(--builder-text-shift));--builder-leading-structured:1.58;--builder-type-mcq:calc(14px + var(--builder-text-shift));--builder-type-p3-ui:calc(11.5px + var(--builder-text-shift));--builder-type-p3-meta:calc(11px + var(--builder-text-shift));--builder-type-p5-ui:calc(12.75px + var(--builder-text-shift));--builder-type-p5-meta:calc(10.5px + var(--builder-text-shift))}
html[data-text-size=small]{--builder-text-shift:-1px}html[data-text-size=large]{--builder-text-shift:2px}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;color:var(--text);background:radial-gradient(circle at 15% 0%,rgba(15,118,110,.14),transparent 30%),radial-gradient(circle at 90% 10%,rgba(6,182,212,.12),transparent 32%),var(--bg)}
.topbar{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.topbar-inner{max-width:1500px;margin:0 auto;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.builder-shell-root {position:sticky;top:0;z-index:10}.builder-shell-root>.topbar{position:static;z-index:auto}
.builder-shell-root .brand,.builder-shell-root .top-actions{min-width:0;display:flex;align-items:center}
.builder-shell-root .brand{flex:1 1 auto}.builder-shell-root .top-actions{flex:0 0 auto;gap:8px}.builder-shell-root .builder-session-loading{white-space:nowrap}
html[data-language="zh"] .builder-shell-root .app-nav-context{gap:3px}
html[data-language="zh"] .builder-shell-root .app-nav-context small{overflow:visible;line-height:1.25;letter-spacing:.045em;transform:translateY(1px)}
@media(max-width:600px){
    .builder-shell-root .app-shell-header .app-nav-brand{display:none!important}
    .builder-shell-root .brand{flex:0 0 auto}
    body.builder-page .builder-shell-root .top-actions{
        flex:1 1 auto;
        justify-content:flex-end;
        max-width:calc(100% - 40px);
        overflow-x:visible;
    }
}
.badge{background:#edf6f5;color:#1f5a57;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:500}
.dev-role-switcher{display:flex;align-items:center;gap:7px;padding:5px 7px 5px 10px}.dev-role-switcher select{width:auto;border:1px solid #cfe2df;border-radius:999px;padding:4px 24px 4px 8px;background:#fff;color:#164e4a;font-size:12px;font-weight:700}
.dev-admin-link{border-radius:999px;padding:5px 9px;background:#0f766e;color:#fff;text-decoration:none;font-size:11px;font-weight:700}
.account-badge{display:inline-flex;align-items:center;gap:8px;padding:5px 6px 5px 11px}.account-admin-link{border-radius:999px;padding:5px 9px;background:#0f766e;color:#fff;text-decoration:none;font-size:11px;font-weight:750}
.app{max-width:1500px;margin:0 auto;padding:14px 18px 24px;display:grid;gap:10px}
.content-grid{display:grid;grid-template-columns:minmax(0,1fr) clamp(250px,20vw,285px);gap:14px;align-items:start}
#builder-paper-app,#builder-question-bank-app{display:contents}
body[data-role=guest] :is(.card-ms-action,.card-ms-panel){display:none!important}
.guest-account-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 4px 5px 4px 10px;
}
.guest-account-badge button {
    min-height: 27px;
    padding: 4px 9px;
    border: 0;
    border-radius: 999px;
    background: #0f766e;
    color: #fff;
    font: inherit;
    font-size: 10px;
    font-weight: 750;
    cursor: pointer;
}
.teacher-review-strip {border:1px solid var(--line);background:#f8fafc;border-radius:9px;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:3px;padding:5px 7px;display:flex}.review-actions{flex-wrap:wrap;align-items:center;gap:3px;display:inline-flex}.review-label{color:#94a3b8;letter-spacing:.03em;text-transform:uppercase;background:#f1f5f9;border-radius:999px;margin-right:3px;padding:3px 6px;font-size:9px;font-weight:800;transition:color .18s,background-color .18s,transform .18s}.review-label.is-approved{color:#166534;background:#dcfce7;transform:scale(1.02)}.review-label.is-subtitle-issue{color:#92400e;background:#fef3c7}.review-label.is-question-issue{color:#991b1b;background:#fee2e2}.review-action{color:#64748b;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:4px 6px;font-size:10px;font-weight:650}.review-action:hover{color:#334155;background:#eef2f7}.teacher-review-strip [data-action=review-approved].is-active{color:#166534;background:#dcfce7;border-color:#16a34a;font-weight:800}.teacher-review-strip [data-action=review-subtitle].is-active{color:#92400e;background:#fef3c7;border-color:#d97706;font-weight:800}.teacher-review-strip [data-action=review-question].is-active{color:#991b1b;background:#fee2e2;border-color:#dc2626;font-weight:800}.review-save-state{color:#15803d;text-align:center;width:12px;font-size:11px;font-weight:800}.review-save-state.is-saving{color:#9a6700}.review-save-state.is-saved{color:#15803d;animation:.7s reviewSaved}.review-save-state.is-error{color:#dc2626}.teacher-difficulty{color:#64748b;white-space:nowrap;align-items:center;gap:7px;margin-left:auto;font-size:11px;display:inline-flex}.teacher-difficulty-label{color:#64748b;font-size:10px;font-weight:700}.teacher-difficulty-label strong{color:#334155;font-weight:800}.teacher-difficulty-stars{align-items:center;gap:1px;display:inline-flex}.teacher-difficulty-star{color:#cbd5e1;cursor:pointer;line-height:1;transition:color .12s,transform .12s;background:0 0!important;border:0!important;padding:1px!important;font-size:18px!important}.teacher-difficulty-star:hover{color:#f59e0b;transform:translateY(-1px)}.teacher-difficulty-star.is-selected{color:#f59e0b}.difficulty-reset-link{color:#94a3b8;cursor:pointer;background:0 0;border:0;padding:2px 3px;font-size:9px;font-weight:700}.difficulty-reset-link:hover,.difficulty-reset-link.is-active{color:#0f766e;text-underline-offset:3px;text-decoration:underline}.difficulty-save-state{color:#15803d;text-align:center;min-width:12px;font-size:11px;font-weight:800}.difficulty-save-state.is-error{color:#dc2626;white-space:nowrap;font-size:10px}@keyframes reviewSaved{0%{opacity:.55;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.panel-head{border-bottom:1px solid var(--line);padding:11px 14px 9px}.panel-head-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.panel-head h2{margin:0;font-size:16px}.panel-head p{color:var(--muted);margin:4px 0 0;font-size:12px}.panel-body{padding:12px 14px 14px}.field-grid{grid-template-columns:repeat(4,minmax(120px,1fr));align-items:end;gap:10px;display:grid}.filter-panel .panel-head{display:none}.filter-panel .panel-body{padding:7px 10px 8px}.builder-subject-filter{min-width:0;position:relative}.builder-subject-select{appearance:none;border-radius:inherit;width:100%;min-width:0;min-height:34px;color:var(--text);cursor:pointer;text-overflow:ellipsis;background:0 0;border:0;padding:7px 27px 7px 10px;font-size:13px;font-weight:700;line-height:1.2}.builder-subject-select:focus{outline:0;box-shadow:none!important;border-color:#0000!important}.builder-subject-caret{pointer-events:none;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.builder-subject-filter:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand)14%,transparent)}.filter-panel.ph-panel-flush{overflow:visible!important}.field-grid.compact {grid-template-columns:auto minmax(132px,160px) minmax(95px,120px) minmax(95px,120px) minmax(155px,200px) minmax(160px,1fr);align-items:center;gap:6px}.field-grid.compact .field{min-width:0}.field{gap:6px;display:grid}.field[hidden]{display:none!important}.field label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:700}.field-grid.compact .field label{display:none}select,input,button{font:inherit}select,input{border:1px solid var(--line);background:#fff;border-radius:11px;width:100%;padding:8px 10px;font-size:13px}select:focus,input:focus{border-color:#14b8a6;outline:none;box-shadow:0 0 0 3px #14b8a626}.btn-row{flex-wrap:wrap;gap:8px;margin-top:2px;margin-bottom:8px;display:flex}.filter-actions{align-self:center;align-items:center;gap:8px;margin-top:0;display:flex}.filter-reset{display:inline-flex}.filter-reset-icon,.mobile-search-toggle{display:none}.multi-filter {min-width:0;position:relative}.filter-shell{border:1px solid var(--line);background:#fff;border-radius:11px;transition:background-color .16s,border-color .16s,box-shadow .16s}.filter-shell.is-placeholder{background:#f8fafc;border-color:#e2e8f0}.filter-shell.is-placeholder .filter-trigger{color:#94a3b8;font-weight:500}.filter-shell.has-selection{background:#fff;border-color:#cbd5e1}.filter-shell.has-selection .summary-text{color:#0f172a;font-weight:700}.filter-shell.is-open{border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61f}.filter-trigger{cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:34px;padding:7px 10px;font-size:13px;display:flex}.filter-trigger,.summary-text{min-width:0}.filter-caret{color:var(--muted);font-size:12px}.summary-text{white-space:nowrap;text-overflow:ellipsis;text-align:left;min-width:0;overflow:hidden}.multi-filter .menu{border:1px solid var(--line);width:min(390px,72vw);max-height:340px;box-shadow:var(--shadow);z-index:30;background:#fff;border-radius:14px;padding:8px;display:none;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden auto}.filter-shell.is-open .menu{display:block}.multi-filter .option-group+.option-group{border-top:1px solid #eef2f7;margin-top:8px;padding-top:8px}.option-group-title,.option-group-toggle{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0 0 6px;font-size:11px;font-weight:700}.option-group-row{grid-template-columns:minmax(0,1fr) auto;gap:5px;margin-bottom:4px;display:grid}.option-group-select{cursor:pointer;text-align:left;color:#0f172a;background:#f8fafc;border:0;border-radius:9px;align-items:center;gap:8px;width:100%;padding:6px 8px;font-size:12px;font-weight:600;display:flex}.option-group-select.is-selected{color:#0f766e;background:#eefaf8}.option-group-select.is-partial{color:#9a5b00;background:#fff7e6}.option-bilingual-copy{gap:2px;min-width:0;line-height:1.2;display:grid}.option-primary{overflow-wrap:anywhere;min-width:0}.option-secondary{color:#84918e;letter-spacing:.01em;text-transform:none;font-size:10px;font-weight:520;line-height:1.25;display:block}.multi-filter :is(.option-group-select,.option-item){white-space:normal}.option-item.is-selected .option-secondary,.option-group-select.is-selected .option-secondary{color:#4f8881}.option-group-progress{color:currentColor;background:#ffffffb8;border-radius:999px;margin-left:auto;padding:1px 5px;font-size:9px;font-weight:800;line-height:1.5}.option-group-toggle{cursor:pointer;background:linear-gradient(#fff,#f8fafc);border:1px solid #d9e5f1;border-radius:9px;justify-content:center;align-items:center;min-width:38px;padding:6px 8px;display:flex;box-shadow:inset 0 -1px #94a3b81f}.option-group-toggle:hover{background:#f0fdfa;border-color:#14b8a6}.option-group-toggle-icon{color:#0f766e;font-size:15px;font-weight:800;line-height:1}.option-list{gap:4px;display:grid}.option-item{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:8px;width:100%;padding:4px 8px;font-size:12px;line-height:1.45;display:flex}.option-item:hover{background:#f8fafc}.option-item.is-selected{color:#0f766e;background:#eefaf8;font-weight:600}.option-item.sub{width:calc(100% - 12px);margin-left:12px}.option-check{color:#0f766e;flex:0 0 14px;width:14px}.selected-strip{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.selected-pill{border:1px solid var(--line);color:#334155;white-space:nowrap;background:#fff;border-radius:999px;padding:3px 8px;font-size:11px}.selected-pill.chip-year{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.selected-pill.chip-paper{color:#0f766e;background:#ecfeff;border-color:#a5f3fc}.selected-pill.chip-classification{color:#4338ca;background:#eef2ff;border-color:#c7d2fe}.selected-pill.chip-search{color:#92400e;background:#fef3c7;border-color:#fcd34d}.results-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.bank-pagination{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.bank-pagination .btn{padding:7px 10px}.bulk-add-results{color:#0f766e;white-space:nowrap;background:#f0fdfa;border-color:#0d9488}.bulk-add-results:hover:not(:disabled){background:#ccfbf1;border-color:#0f766e}.bulk-add-results.is-pending{color:#fff;background:linear-gradient(135deg,#0f766e,#14b8a6)}.bulk-add-results.needs-confirmation{color:#92400e!important;background:#fffbeb!important;border-color:#d97706!important}.bulk-add-results.is-over-limit{color:#be123c!important;background:#fff1f2!important;border-color:#fca5a5!important}.bulk-add-results:disabled{cursor:default;opacity:.56}.page-jump{color:var(--muted);white-space:nowrap;flex:none;align-items:center;gap:5px;font-size:12px;font-weight:700;display:inline-flex}.page-jump #pageTotal{white-space:nowrap;flex:none}.page-jump input{border:1px solid var(--line);color:var(--ink);font:inherit;text-align:center;background:#fff;border-radius:8px;flex:0 0 54px;padding:6px 7px;width:54px!important}.count{color:var(--muted);font-size:13px;font-weight:600}.list{gap:8px;max-height:calc(100vh - 185px);padding:3px 3px 0 0;scroll-padding-top:3px;display:grid;overflow:auto}.builder-sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.question-loading-state,.question-loading-skeletons {min-width:0}.question-loading-state{gap:8px;display:grid}.question-loading-heading{color:var(--muted);align-items:center;gap:7px;font-size:11px;font-weight:750;display:inline-flex}.question-loading-heading:before{content:"";background:var(--brand);border-radius:50%;width:7px;height:7px}.question-loading-skeletons{gap:8px;display:grid}.question-card-skeleton {contain:paint;pointer-events:none;border:1px solid var(--line);background:#fff;border-radius:13px;align-content:start;gap:11px;min-height:158px;padding:10px;display:grid;position:relative;overflow:hidden}.question-card-skeleton:after{content:"";background:linear-gradient(105deg,transparent 24%,color-mix(in srgb,var(--brand)7%,#fff)46%,transparent 68%);will-change:transform;animation:1.45s ease-in-out infinite builderSkeletonSweep;position:absolute;inset:0;transform:translate(-105%)}.question-skeleton-head{grid-template-columns:36px minmax(112px,148px) minmax(72px,106px) 44px;align-items:center;gap:8px;display:grid}.question-skeleton-head>span,.question-skeleton-line,.question-skeleton-options>span{background:color-mix(in srgb,var(--brand)7%,#e6ecef);border-radius:999px;display:block}.question-skeleton-paper,.question-skeleton-topic,.question-skeleton-action{height:20px}.question-skeleton-id{height:14px}.question-skeleton-line{height:10px}.question-skeleton-line.is-wide{width:min(86%,560px)}.question-skeleton-line.is-medium{width:min(63%,390px)}.question-skeleton-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px;width:min(76%,510px);display:grid}.question-skeleton-options>span{height:9px}@keyframes builderSkeletonSweep{to{transform:translate(105%)}}.card {border:1px solid var(--line);background:#fff;border-radius:13px;gap:8px;padding:10px;scroll-margin-top:8px;transition:transform .15s,box-shadow .15s,border-color .15s;display:grid}.card.located{border-color:#14b8a6;animation:1.2s locatePulse;box-shadow:0 0 0 4px #14b8a629,0 12px 24px #0f766e1f}@keyframes locatePulse{0%{transform:translateY(-2px)scale(.995)}35%{transform:translateY(0)scale(1.01)}to{transform:translateY(0)scale(1)}}.card:hover{border-color:#a7dde2;transform:translateY(-1px);box-shadow:0 10px 20px #0f766e17}.card-top,.card-tags{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.card-top{justify-content:space-between}.card-heading{flex:360px;gap:4px;min-width:0;display:grid}.card-heading-line{flex-wrap:wrap;align-items:center;gap:6px 10px;min-width:0;display:flex}.card-heading-line .card-title{flex:none}.card-heading-line .card-tags{flex:220px;min-width:0}.source-status-tag {font-weight:800}.source-status-tag.is-copy {color:#6d28d9}.source-status-tag.is-original {color:#0f766e}.card-ms-action{justify-content:flex-start;margin-top:2px;display:flex}.card-ms-panel{background:#f8fafb;border:1px solid #d7e1e5;border-radius:9px;padding:8px;scroll-margin-top:8px;display:block;overflow:hidden}.card-ms-slot{display:contents}.card-ms-panel .mark-scheme-official-pages{justify-items:start;gap:8px;display:grid}.card-ms-panel .mark-scheme-official-image{object-fit:contain;width:auto;max-width:min(68%,600px);max-height:600px;margin:0;display:block}.card-body,.card-content{gap:7px;display:grid}.card-summary{color:#111;--margin-x:1.5mm;--label-width:26px;--indent-step:18px;--indent-level-1:12px;--indent-level-2:calc(var(--indent-level-1) + var(--indent-step));--indent-level-3:calc(var(--indent-level-2) + var(--indent-step));--indent-level-4:calc(var(--indent-level-3) + var(--indent-step));--continuation-indent-0:0px;--continuation-indent-1:calc(var(--indent-level-1) + var(--label-width));--continuation-indent-2:calc(var(--indent-level-2) + var(--label-width));--continuation-indent-3:calc(var(--indent-level-3) + var(--label-width));background:#fff;border:0;border-radius:0;padding:0;font-size:13px;line-height:1.62;overflow:hidden}.card-summary .part-label{box-sizing:border-box;text-align:right;padding-right:3px}.card-summary.is-collapsed{max-height:620px}.card-summary.is-expanded{max-height:none}.card-summary.is-collapsed:after{content:"";pointer-events:none;background:linear-gradient(#fff0,#fff 80%);height:34px;margin-top:-34px;display:block;position:sticky;bottom:0}.card-summary.is-collapsed.fits-preview:after{display:none}.card-summary .q-image,.card-summary img{object-fit:contain;width:auto;max-width:100%;max-height:230px;margin:6px auto;display:block}.card-summary .figure.embedded-source img{max-height:none}.card-summary .q-blocks{margin:4px 0}.card-actions{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;display:grid}.card-actions:has(button){border-top:1px solid var(--line);padding-top:6px}.card-actions-left,.card-actions-right{align-items:center;gap:8px;display:flex}.card-actions-left{justify-self:start}.expand-toggle{border:1px solid var(--line);color:#475569;cursor:pointer;background:#f8fafc;border-radius:6px;justify-self:center;align-items:center;gap:5px;padding:4px 6px;font-size:11px;font-weight:750;display:inline-flex}.expand-toggle[hidden]{display:none}.expand-toggle:hover{color:#0f766e;background:#eef7f6}.expand-toggle-icon{font-size:15px;line-height:1}button.disclosure-btn{border:1px solid var(--line);color:#475569;background:#f8fafc;border-radius:6px;align-items:center;gap:5px;padding:4px 6px;font-weight:700;display:inline-flex}button.disclosure-btn:hover,button.disclosure-btn.is-open{color:#0f766e;background:#eef7f6}.disclosure-icon{font-size:13px;line-height:1}.fallback-notice,.fallback-error{border-radius:10px;margin:0 0 10px;padding:10px 12px;font-size:12px;line-height:1.6}.fallback-notice{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.fallback-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.mcq-review-card{gap:10px;display:grid}.mcq-review-notice{color:#7c4a03;background:#fffaf0;border:1px solid #f5d08a;border-radius:9px;align-items:baseline;gap:8px;padding:9px 11px;font-size:12px;line-height:1.45;display:flex}.mcq-review-notice span{color:#7a5a2e}.card-summary img.mcq-source-review-image{width:auto;max-width:100%;max-height:540px;margin:0 auto}.paper-format-tag{color:#047857;vertical-align:middle;background:#ecfdf5;border-color:#a7f3d0;justify-content:center;align-items:center;font-weight:800;line-height:1;display:inline-flex}.mcq-cut-tag{color:#9a5b08;background:#fffaf0;border-color:#f5d08a}.fallback-path{margin-top:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.card-title{letter-spacing:.01em;align-items:center;gap:6px;font-size:15px;font-weight:800;line-height:1.25;display:inline-flex}.mark-chip{color:#166534;white-space:nowrap;background:#e6ffed;border:1px solid #b7efc5;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:800}.pill{color:#0e7490;white-space:nowrap;background:#e7f8ff;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:700}.right-actions{margin-left:auto}.add-btn,.small-btn{border:1px solid var(--line);cursor:pointer;color:#334155;background:#fff;border-radius:8px;padding:5px 9px;font-size:11px;font-weight:500}.add-btn{color:#0f766e;background:#f0fdfa;border-color:#14b8a6}.add-btn.is-added{color:#166534;background:#dcfce7;border-color:#22c55e;box-shadow:inset 0 -1px #22c55e29}.add-btn.is-pending{color:#fff;background:linear-gradient(135deg,#0f766e,#14b8a6);border-color:#14b8a6;box-shadow:0 8px 18px #0f766e2e}.card-tags{gap:6px}.tag{white-space:nowrap;border:1px solid;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:500}.tag.knowledge{background:var(--syllabus-topic-bg,#eff6ff);color:var(--syllabus-topic-fg,#1d4ed8);border-color:var(--syllabus-topic-border,#bfdbfe)}.tag.source{color:#9a3412;background:#fff7ed;border-color:#fed7aa}.tag.empty{color:#64748b;background:#f8fafc;border-color:#cbd5e1}.summary{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:6px;display:flex}.paper-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.paper-toolbar-metrics{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:inline-flex}.paper-toolbar-actions{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.metric{color:#0f172a;background:0 0;border:0;align-items:baseline;gap:5px;padding:0;display:inline-flex}.metric strong{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:0;font-size:11px}.metric span{font-size:15px;font-weight:800}.metric:first-child span{color:#0f766e}.metric:last-child span{color:#7c3aed}.paper-panel {align-self:start;position:sticky;top:72px}.paper-panel-toggle{border:1px solid var(--line);color:#334155;cursor:pointer;white-space:nowrap;background:#f8fafc;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:700;display:none}.paper-compact-toggle{border:1px solid var(--line);color:#475569;cursor:pointer;background:#f8fafc;border-radius:999px;min-width:26px;min-height:26px;padding:0 7px;font-size:12px;font-weight:800;line-height:1;display:none}.paper-compact-toggle:before{content:"";border-bottom:1.5px solid;border-right:1.5px solid;width:7px;height:7px;margin-top:-3px;transform:rotate(45deg)}.paper-fab{display:none}
.paper-list{border-radius:12px;gap:7px;max-height:calc(100vh - 210px);padding-right:2px;transition:box-shadow .18s,background-color .18s;display:grid;overflow:hidden auto}.paper-item{border:1px solid var(--line);-webkit-user-select:none;user-select:none;cursor:grab;background:#fcfdff;border-radius:12px;gap:5px;padding:8px 9px;transition:opacity .18s,transform .3s cubic-bezier(.2,.82,.24,1),filter .18s,box-shadow .24s,border-color .24s;display:grid;position:relative}.paper-item:active{cursor:grabbing}.paper-item.just-added{animation:.68s cubic-bezier(.18,.9,.24,1.2) paperAdd}.paper-item.just-restored{animation:.62s cubic-bezier(.2,.9,.25,1.15) paperRestore}.paper-item.just-moved{animation:.46s cubic-bezier(.2,.82,.24,1) paperMove}@keyframes paperAdd{0%{opacity:.4;transform:translateY(-14px)scale(.96)}60%{opacity:1;transform:translateY(2px)scale(1.01)}to{transform:none}}@keyframes paperRestore{0%{opacity:.55;transform:scale(.96)}60%{opacity:1;transform:scale(1.01)}to{transform:none}}@keyframes paperMove{0%{transform:scale(1.02);box-shadow:0 18px 38px #0f172a33}to{box-shadow:none;transform:none}}@media (prefers-reduced-motion:reduce){.question-card-skeleton:after,.paper-item,.paper-item.just-added,.paper-item.just-restored,.paper-item.just-moved{transition:none!important;animation:none!important}}.paper-item.dragging{opacity:.22;filter:saturate(.75);box-shadow:none}.paper-drag-ghost{z-index:9999;opacity:.96;border-color:color-mix(in srgb,var(--brand)38%,#fff);pointer-events:none;background:#fff;transform:rotate(.7deg)scale(1.025);box-shadow:0 22px 48px #0f172a38;position:fixed!important;top:-10000px!important;left:-10000px!important}.paper-item.drag-valid{background:color-mix(in srgb,var(--brand)7%,#fff);border-color:var(--brand)}.paper-item.is-removed{opacity:.55;filter:grayscale(.65);background:#f1f5f9}.paper-item-head{grid-template-columns:22px minmax(0,1fr) auto auto;grid-template-areas:"index title marks actions"".topics topics topics";align-items:center;gap:4px;min-width:0;display:grid}.paper-item button{-webkit-user-select:auto;user-select:auto}.paper-item .desktop-remove{color:#dc2626;background:#fff1f2;border:0;border-radius:8px;width:24px;min-width:24px;height:24px;padding:0;font-size:15px}.paper-item .desktop-remove:hover{color:#991b1b;background:#ffe4e6}.idx{color:#0f766e;background:#dff8f5;border-radius:50%;grid-area:index;justify-content:center;align-items:center;min-width:22px;height:22px;font-size:12px;font-weight:800;display:inline-flex}.item-actions{flex-wrap:wrap;grid-area:actions;align-items:center;gap:6px;display:flex;position:static}.paper-knowledge{flex-flow:row;grid-area:topics;align-content:center;align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}.paper-knowledge.inline{display:inline-flex}.paper-item strong{text-overflow:ellipsis;white-space:nowrap;grid-area:title;min-width:0;font-size:10px;overflow:hidden}.paper-marks{color:#166534;white-space:nowrap;background:#e6ffed;border:1px solid #b7efc5;border-radius:999px;grid-area:marks;justify-content:center;align-items:center;min-height:23px;padding:2px 6px;font-size:11px;font-weight:800;display:inline-flex}.paper-item.drop-before:before,.paper-item.drop-after:after{content:"";background:#0f766e;border-radius:999px;height:4px;position:absolute;left:10px;right:10px}.paper-item.drop-before:before{top:-3px}.paper-item.drop-after:after{bottom:-3px}.paper-item.drop-before,.paper-item.drop-after{border-color:#7dd3c7}.match-snippet{color:#475569;font-size:12px;line-height:1.5}mark{color:inherit;background:#fef08a;border-radius:2px;padding:0 .08em}.danger{color:var(--warn)}.feedback{font-size:12px;font-weight:600}.feedback.ok{color:var(--good)}.feedback.bad{color:var(--warn)}.paper-feedback{background:color-mix(in srgb,currentColor 5%,#fff);border-left:3px solid;border-radius:8px;margin-top:8px;padding:7px 9px;line-height:1.35}.paper-feedback[hidden]{display:none!important}
.empty {
    border: 1px dashed var(--line);
    border-radius: 11px;
    padding: 24px 14px;
    text-align: center;
    color: var(--muted);
    background: #fcfdff;
}
.paper-empty-state{min-height:98px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:color-mix(in srgb,var(--brand) 3%,#fff)}
.paper-empty-state::before{width:29px;height:29px;display:grid;place-items:center;content:"+";border-radius:10px;background:color-mix(in srgb,var(--brand) 10%,#fff);color:var(--brand);font-size:18px;font-weight:650;line-height:1}
.question-empty-state{min-height:116px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;border-style:solid;background:color-mix(in srgb,var(--brand) 3%,#fff);font-weight:650}
.question-empty-state::before{width:30px;height:30px;display:grid;place-items:center;content:"⌕";border-radius:10px;background:color-mix(in srgb,var(--brand) 10%,#fff);color:var(--brand);font-size:20px;line-height:1}
@media(max-width: 1360px) {
    .field-grid {
        grid-template-columns: repeat(3, minmax(140px, 1fr));
    }
    .field-grid.compact {
        grid-template-columns:auto minmax(124px,150px) minmax(88px,110px) minmax(88px,110px) minmax(145px,190px) minmax(150px,1fr);
    }
}
@media(max-width: 1220px) {
    .paper-list {
        max-height: calc(100vh - 210px);
    }
}
@media(max-width: 860px) {
    .field-grid {
        grid-template-columns: repeat(2, minmax(120px, 1fr));
    }
    .field-grid.compact {
        grid-template-columns:auto minmax(120px,150px) minmax(80px,100px) minmax(80px,100px) minmax(130px,1fr) minmax(130px,1fr);
    }
    .list {
        max-height: 420px;
    }
}
.card-summary .page {
    width: 100%;
    min-height: auto;
    margin: 0 auto;
    position: relative;
    box-sizing: border-box;
    padding: 0 var(--margin-x);
    background: #fff;
    page-break-after: auto;
    break-after: auto;
}
.card-summary .page:last-child {
    margin-bottom: 0;
}
.card-summary .header,
.card-summary .footer {
    display: none;
}
.card-summary .question-number {
    margin-top: 0;
}

@media(max-width: 768px) {
    .topbar-inner {
        padding: 7px 8px;
        gap: 8px;
        flex-wrap: nowrap;
    }
    .title-wrap {
        gap: 7px;
        min-width: 0;
        flex: 1 1 auto;
    }
    .title-wrap a {
        font-size: 11px;
        padding: 3px 7px;
        flex: 0 0 auto;
    }
    .title-wrap h1 {
        font-size: 15px;
        line-height: 1.1;
        white-space: nowrap;
    }
    .badge {
        padding: 3px 6px;
        font-size: 9px;
        line-height: 1.1;
        max-width: 112px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        flex: 0 0 auto;
    }
    .badge.dev-role-switcher {
        max-width: none;
        overflow: visible;
        padding: 3px;
    }
    .dev-role-switcher > span {
        display: none;
    }
    .dev-role-switcher .dev-admin-link {
        display: inline-flex;
        align-items: center;
        min-height: 28px;
        padding: 3px 6px;
        font-size: 9px;
        white-space: nowrap;
    }
    .dev-role-switcher select {
        max-width: 88px;
        padding: 3px 20px 3px 6px;
        font-size: 10px;
    }
    .badge.account-badge {
        max-width: none;
        overflow: visible;
        gap: 3px;
        padding: 3px;
    }
    .account-badge > span {
        display: none;
    }
    .account-admin-link {
        min-height: 28px;
        display: inline-flex;
        align-items: center;
        padding: 3px 6px;
        font-size: 9px;
        white-space: nowrap;
    }
    .guest-account-badge > span { display: none; }
    .guest-account-badge { padding: 3px; }
    .guest-account-badge button { min-height: 28px; padding: 3px 7px; font-size: 9px; }
    .app {
        padding: 6px 5px 84px;
        gap: 8px;
        min-height: calc(100svh - 56px);
    }
    .content-grid {
        grid-template-columns: 1fr;
        gap: 8px;
        min-height: calc(100svh - 138px);
    }
    .multi-filter .menu {
        width: min(280px, calc(100vw - 14px));
        max-height: 280px;
        padding: 5px;
    }
    .option-group-select,
    .option-item {
        font-size: 10.5px;
        padding: 3px 5px;
    }
    .option-secondary {
        font-size: 9px;
    }
    .option-group-toggle {
        min-width: 30px;
        padding: 3px 5px;
    }
    .field-years {
        grid-column: 2;
        grid-row: 1;
    }
    .field-paper {
        grid-column: 3;
        grid-row: 1;
    }
    .field-search {
        grid-column: 5;
        grid-row: 1;
    }
    .field-classification {
        grid-column: 4;
        grid-row: 1;
    }
    .field-subject { grid-column:1;grid-row:1 }
    .field-search input,
    .field-classification .filter-trigger,
    .field-years .filter-trigger,
    .field-paper .filter-trigger {
        min-height: 28px;
    }
    .selected-strip {
        display: none;
    }
    .panel:not(.paper-panel) {
        max-width: 100%;
    }
    .content-grid > .panel:first-child {
        display: grid;
        grid-template-rows: auto minmax(0, 1fr);
        min-height: calc(100svh - 146px);
    }
    .panel-body {
        padding: 6px 5px 7px;
    }
    .content-grid > .panel:first-child .panel-body {
        display: grid;
        grid-template-rows: minmax(0, 1fr) auto;
        min-height: 0;
    }
    .list {
        max-height: none;
        height: 100%;
        min-height: 0;
        padding-right: 0;
        gap: 6px;
    }
    .question-loading-skeletons {
        gap: 6px;
    }
    .question-card-skeleton {
        min-height: 144px;
        gap: 9px;
    }
    .question-skeleton-head {
        grid-template-columns: 32px minmax(92px, 1fr) 70px 38px;
        gap: 6px;
    }
    .question-skeleton-options {
        width: 100%;
    }
    .paper-panel {
        position: fixed;
        left: 6px;
        right: 6px;
        bottom: 10px;
        top: auto;
        width: auto;
        z-index: 30;
        border-radius: 18px;
        box-shadow: 0 18px 48px rgba(11, 23, 38, 0.2);
    }
    .paper-panel[hidden] {
        display: none !important;
    }
    .paper-panel-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 32px;
        padding: 5px 10px;
    }
    .paper-panel .panel-head {
        display: none;
    }
    .paper-toolbar {
        gap: 6px;
    }
    .paper-toolbar-metrics {
        gap: 8px;
    }
    .paper-compact-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    .metric {
        gap: 4px;
    }
    .metric strong {
        font-size: 9px;
    }
    .metric span {
        font-size: 13px;
    }
    .paper-fab {
        position: fixed;
        right: 8px;
        bottom: max(10px, env(safe-area-inset-bottom, 0px));
        z-index: 31;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        border: 1px solid rgba(15, 118, 110, 0.2);
        background: linear-gradient(135deg, rgba(15, 118, 110, 0.98), rgba(20, 184, 166, 0.98));
        color: #ffffff;
        border-radius: 999px;
        padding: 10px 14px;
        box-shadow: 0 16px 36px rgba(15, 118, 110, 0.28);
        font-size: 12.5px;
        font-weight: 800;
        cursor: pointer;
    }
    .paper-fab[hidden] {
        display: none !important;
    }
    .paper-fab-count {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 20px;
        height: 20px;
        padding: 0 6px;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.2);
        font-size: 11px;
    }
    .paper-list {
        max-height: none;
        padding-right: 0;
    }
    .paper-item {
        width: 100%;
    }
    .desktop-remove {
        display: none;
    }
    .mobile-reorder {
        display: inline-flex !important;
        width: auto;
        margin-top: 0;
        padding-top: 0;
        border-top: 0;
    }
    .mobile-reorder .btn {
        flex: 0 0 auto;
        min-width: 28px;
        min-height: 28px;
        padding: 4px;
        border-radius: 8px;
        font-size: 10px;
        font-weight: 800;
    }
    .mobile-reorder .icon-btn {
        min-width: 28px;
        padding: 4px;
    }
    .card {
        padding: 6px 4px 6px;
        gap: 5px;
    }
    .card-top {
        gap: 4px;
        align-items: flex-start;
    }
    .card-heading {
        gap: 3px;
        flex: 1 1 auto;
    }
    .card-title {
        font-size: 13px;
    }
    .mark-chip {
        padding: 1px 5px;
        font-size: 10px;
    }
    .add-btn,
    .small-btn {
        padding: 4px 7px;
        font-size: 10px;
    }
    .card-summary {
        font-size: 12.5px;
        line-height: 1.6;
        --margin-x: 2.5mm;
        --marks-gutter: 8mm;
        --label-width: 18px;
        --indent-step: 8px;
        --indent-level-1: 8px;
        --indent-level-2: calc(var(--indent-level-1) + var(--indent-step));
        --indent-level-3: calc(var(--indent-level-2) + var(--indent-step));
        --indent-level-4: calc(var(--indent-level-3) + var(--indent-step));
        --continuation-indent-0: 0px;
        --continuation-indent-1: calc(var(--indent-level-1) + var(--label-width));
        --continuation-indent-2: calc(var(--indent-level-2) + var(--label-width));
        --continuation-indent-3: calc(var(--indent-level-3) + var(--label-width));
    }
    .card-summary.is-collapsed {
        max-height: 360px;
    }
    .card-summary .page {
        padding-left: 3px;
        padding-right: 3px;
    }
    .card-summary .row {
        padding-right: 8mm;
    }
    .card-summary .seq-number {
        padding-right: 2px;
    }
    .card-summary .marks {
        min-width: 6.5mm;
        font-size: 10px;
    }
    .card-summary .q-image,
    .card-summary img {
        max-height: 110px;
        margin: 3px auto;
    }
    .card-ms-panel .mark-scheme-official-image {
        max-width: 100%;
        max-height: none;
    }
    .card-actions {
        grid-template-columns: 1fr auto;
        gap: 6px;
    }
    .card-actions-left,
    .card-actions-right {
        flex-wrap: wrap;
    }
    .card-tags {
        gap: 3px;
    }
}
@media(max-width: 480px) {
    .topbar-inner {
        padding: 5px 6px;
        gap: 6px;
    }
    .title-wrap {
        gap: 5px;
    }
    .title-wrap a {
        font-size: 10px;
        padding: 2px 6px;
    }
    .title-wrap h1 {
        font-size: 13px;
    }
    .badge {
        padding: 2px 5px;
        font-size: 8px;
        max-width: 92px;
    }
    .badge.dev-role-switcher {
        max-width: none;
    }
    .app {
        padding: 4px 4px 82px;
        min-height: calc(100svh - 52px);
    }
    .filter-trigger {
        min-height: 27px;
        padding: 4px 5px;
        font-size: 9.5px;
    }
    select,
    input {
        padding: 5px 6px;
        font-size: 10px;
    }
    .card {
        padding: 5px 3px 5px;
    }
    .card-top {
        align-items: flex-start;
        gap: 4px;
    }
    .right-actions {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 4px;
        margin-left: 0;
    }
    .card-summary {
        font-size: 12px;
        line-height: 1.58;
        --margin-x: 2mm;
        --marks-gutter: 7mm;
        --label-width: 20px;
        --indent-step: 7px;
        --indent-level-1: 7px;
    }
    .card-summary.is-collapsed {
        max-height: 410px;
    }
    .card-summary .page {
        padding-left: 2px;
        padding-right: 2px;
    }
    .card-summary .row {
        padding-right: 7mm;
        margin-top: 0.8mm;
    }
    .card-summary .marks {
        min-width: 6mm;
        font-size: 9px;
    }
    .card-summary .q-image,
    .card-summary img {
        max-height: 82px;
    }
    .idx {
        min-width: 20px;
        height: 20px;
        font-size: 11px;
    }
    .paper-item {
        padding: 5px 5px 4px;
        gap: 4px;
    }
    .paper-item strong {
        max-width: calc(100vw - 150px);
    }
    .paper-knowledge {
        gap: 2px;
    }
    .tag {
        font-size: 9px;
        padding: 1px 4px;
    }
    .mobile-reorder .btn,
    .item-actions .small-btn,
    .paper-fab {
        min-height: 28px;
    }
    .paper-panel-toggle {
        padding: 4px 9px;
        min-height: 30px;
        font-size: 10px;
    }
    .paper-panel {
        left: 4px;
        right: 4px;
        bottom: 8px;
    }
    .paper-panel .panel-head {
        padding: 7px 8px 5px;
    }
    .paper-panel .panel-body {
        padding: 5px 6px 7px;
    }
    .paper-toolbar-actions .btn,
    .paper-toolbar-actions .small-btn {
        min-height: 26px;
        padding: 4px 7px;
        font-size: 10px;
    }
    .paper-compact-toggle {
        min-width: 24px;
        min-height: 24px;
        padding: 0 6px;
        font-size: 11px;
    }
    .paper-fab {
        right: 6px;
        bottom: max(8px, env(safe-area-inset-bottom, 0px));
        padding: 9px 12px;
        gap: 7px;
    }
}
.pagination-mobile-label,
.mobile-feedback-toggle {
    display: none;
}
@media(max-width: 768px) {
    .filter-panel {
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }
    .filter-panel .panel-body {
        padding: 2px 1px 3px;
    }
    .field-grid.compact {
        grid-template-columns:minmax(78px,.9fr) 64px 64px minmax(84px,1fr) 32px 32px!important;
        gap: 3px;
    }
    .filter-actions {
        display: block;
        grid-column: 6;
        grid-row: 1;
    }
    .filter-reset {
        width: 32px;
        min-width: 32px;
        height: 32px;
        min-height: 32px;
        display: inline-grid;
        place-items: center;
        padding: 0;
        border: 0;
        border-radius: 9px;
        background: #eef2f7;
        color: #475569;
    }
    .filter-reset-label { display: none; }
    .filter-reset-icon { display: block; width: 15px; height: 15px; }
    .filter-shell {
        border-radius: 8px;
    }
    .filter-trigger,
    .builder-subject-select,
    .field-classification .filter-trigger,
    .field-years .filter-trigger,
    .field-paper .filter-trigger,
    .field-search input {
        min-height: 32px;
        height: 32px;
        padding: 3px 5px;
        border-radius: 8px;
        font-size: 11.5px;
    }
    .builder-subject-select{padding-right:20px}.builder-subject-caret{right:7px}
    .field-classification .filter-trigger {
        font-size: 11.5px;
    }
    .field-search { min-width: 0; }
    .field-search input { display: none; }
    .mobile-search-toggle {
        width: 32px;
        min-width: 32px;
        height: 32px;
        display: inline-grid;
        place-items: center;
        padding: 0;
        border: 0;
        border-radius: 9px;
        background: #eef2f7;
        color: #475569;
        cursor: pointer;
    }
    .mobile-search-toggle svg {
        width: 15px;
        height: 15px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.8;
        stroke-linecap: round;
    }
    .field-grid.is-mobile-search-open .field-subject,
    .field-grid.is-mobile-search-open .field-years,
    .field-grid.is-mobile-search-open .field-paper,
    .field-grid.is-mobile-search-open .field-classification { display: none; }
    .field-grid.is-mobile-search-open .field-search {
        grid-column: 1 / 6;
        display: grid;
        grid-template-columns: minmax(0, 1fr) 32px;
        gap: 3px;
    }
    .field-grid.is-mobile-search-open .field-search input {
        display: block;
        grid-column: 1;
        grid-row: 1;
    }
    .field-grid.is-mobile-search-open .mobile-search-toggle {
        grid-column: 2;
        grid-row: 1;
        background: #dff7f3;
        color: #0f766e;
    }
    .field-classification .multi-filter .menu {
        right: 0;
        left: auto;
        width: min(286px, calc(100vw - 154px));
        max-height: min(56svh, 360px);
    }
    .field-paper .multi-filter .menu{width:min(220px,calc(100vw - 160px))}
    .panel-head.results-head {
        min-height: 56px;
        padding: 7px 9px;
        flex-wrap: nowrap;
    }
    .results-head > div:first-child {
        min-width: 112px;
    }
    .results-head h2 {
        font-size: 15px;
    }
    .results-head .count {
        margin-top: 2px;
        font-size: 10px;
        line-height: 1.25;
    }
    .bank-pagination {
        flex: 0 0 auto;
        flex-wrap: nowrap;
        gap: 3px;
    }
    .bank-pagination .btn,
    .page-jump input {
        min-width: 34px;
        min-height: 34px;
        height: 34px;
        padding: 0 7px;
        border-radius: 8px;
        font-size: 11px;
    }
    .bulk-add-results .bulk-add-long-label {
        display: none;
    }
    .bulk-add-results::before {
        content: "All";
    }
    .bulk-add-results.is-over-limit::before {
        content: "Limit";
    }
    .page-jump {
        gap: 3px;
        font-size: 10px;
    }
    .page-jump input {
        width: 38px !important;
        flex-basis: 38px;
        padding: 0 4px;
    }
    .pagination-desktop-label {
        display: none;
    }
    .pagination-mobile-label {
        display: inline;
        font-size: 18px;
        line-height: 1;
    }
    .card {
        padding-bottom: 4px;
    }
    .add-btn {
        min-width: 40px;
        min-height: 36px;
        padding: 5px 8px;
    }
    button.disclosure-btn,
    .expand-toggle {
        min-height: 30px;
        padding: 4px 7px;
    }
    .mobile-feedback-toggle {
        width: fit-content;
        min-height: 30px;
        margin-top: 2px;
        border: 0;
        border-radius: 7px;
        padding: 4px 7px;
        display: inline-flex;
        align-items: center;
        gap: 5px;
        background: #f1f5f9;
        color: #475569;
        font-size: 10px;
        font-weight: 750;
    }
    .mobile-feedback-toggle::after {
        content: "▾";
        font-size: 9px;
    }
    .mobile-feedback-toggle[aria-expanded="true"]::after {
        content: "▴";
    }
    .teacher-review-strip {
        display: none;
        margin-top: 2px;
        padding: 3px 2px 1px;
        gap: 4px 7px;
    }
    .teacher-review-strip.is-open {
        display: flex;
    }
    .review-label,
    .review-save-state,
    .difficulty-save-state {
        display: none;
    }
    .review-actions {
        gap: 2px;
    }
    .review-action {
        min-height: 28px;
        padding: 4px 6px;
        border: 1px solid transparent;
        font-size: 9px;
    }
    .teacher-difficulty {
        width: 100%;
        margin-left: 0;
        flex-wrap: wrap;
        gap: 3px;
        white-space: normal;
    }
    .teacher-difficulty-label {
        font-size: 9px;
    }
    .teacher-difficulty-stars {
        gap: 0;
    }
    .teacher-difficulty-star,
    .difficulty-reset-link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 28px;
        min-height: 28px;
        padding: 0 !important;
    }
    .teacher-difficulty-star {
        font-size: 17px !important;
    }
    .paper-panel {
        left: 0;
        right: 0;
        bottom: 0;
        height: min(58svh, 520px);
        border: 0;
        border-radius: 18px 18px 0 0;
        box-shadow: 0 -18px 54px rgba(15, 23, 42, .28);
    }
    .paper-panel .panel-body {
        height: 100%;
        max-height: none;
        display: grid;
        grid-template-rows: auto minmax(0, 1fr) auto;
        overflow: hidden;
        padding: 8px 8px max(8px, env(safe-area-inset-bottom, 0px));
    }
    .paper-toolbar {
        margin-bottom: 6px;
        padding-bottom: 6px;
        border-bottom: 1px solid #e2e8f0;
    }
    .paper-toolbar-actions .btn,
    .paper-toolbar-actions .small-btn,
    .paper-compact-toggle {
        min-width: 36px;
        min-height: 36px;
        height: 36px;
        padding: 4px 8px;
    }
    .paper-list {
        min-height: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
        gap: 4px;
        align-content: start;
        grid-auto-rows: max-content;
    }
    .paper-item {
        position: relative;
        min-height: 44px;
        padding: 3px 5px;
        border-radius: 10px;
        touch-action: pan-y;
    }
    .paper-item-head {
        grid-template-columns: 22px minmax(74px, 1fr) minmax(54px, .72fr) auto auto;
        grid-template-areas: "index title topics marks actions";
        gap: 4px;
    }
    .paper-item strong {
        max-width: none;
        font-size: 11px;
    }
    .paper-knowledge {
        min-width: 0;
        flex-wrap: nowrap;
        gap: 2px;
        overflow: hidden;
        white-space: nowrap;
        justify-content: flex-start;
        padding-right: 7px;
    }
    .paper-knowledge .tag {
        flex: 0 0 auto;
        padding: 1px 4px;
        font-size: 8px;
        line-height: 1.15;
    }
    .paper-marks {
        font-size: 9px;
        white-space: nowrap;
    }
    .item-actions {
        position: static;
        right: auto;
        bottom: auto;
        margin-left: 0;
    }
    .mobile-reorder {
        gap: 2px;
    }
    .mobile-reorder .mobile-remove {
        min-width: 28px;
        min-height: 28px;
        width: 28px;
        height: 28px;
        border: 1px solid #fee2e2;
        border-radius: 999px;
        padding: 0;
        display: inline-grid;
        place-items: center;
        background: #fff7f7;
        color: #b91c1c;
        font-size: 14px;
    }
    .paper-item.touch-dragging {
        cursor: grabbing;
        z-index: 8;
        border-color: #8ecfc7;
        background: rgba(255, 255, 255, .98);
        box-shadow: 0 18px 38px rgba(15, 23, 42, .22), 0 3px 12px rgba(15, 118, 110, .14);
        transition: none !important;
        will-change: transform;
    }
    .paper-item.touch-dragging.drag-valid {
        border-color: #8ecfc7;
        background: rgba(255, 255, 255, .98);
    }
    #questionList .card .row.sub-sub-part .row-text {
        margin-left: 0;
    }
    .paper-fab {
        min-height: 48px;
    }
}
@media(max-width: 370px) {
    .dev-role-switcher .dev-admin-link,
    .account-admin-link {
        font-size: 0;
    }
    .dev-role-switcher .dev-admin-link::after,
    .account-admin-link::after {
        content: "Q Admin";
        font-size: 9px;
    }
    .field-grid.compact {
        grid-template-columns:70px 52px 56px minmax(72px,1fr) 32px 32px!important;
    }
    .builder-subject-select{font-size:10.5px;padding-left:5px}
    .results-head > div:first-child {
        min-width: 96px;
    }
    .bank-pagination .btn,
    .page-jump input {
        min-width: 31px;
        height: 32px;
        min-height: 32px;
        padding: 0 5px;
    }
}
.mobile-reorder {
    display: none;
}
.right-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}
.card-heading-line .card-tags {
    max-width: 100%;
}
.card-tags .tag.knowledge {
    max-width: min(100%, 42ch);
    overflow: hidden;
    text-overflow: ellipsis;
}
@media (min-width: 769px) {
    .card-top {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
    }
    .card-heading {
        min-width: 0;
    }
    .right-actions {
        align-self: start;
        margin-left: 0;
        position: relative;
        z-index: 1;
    }
}
.card.is-practical .card-summary.is-collapsed {
    max-height: none;
}
.card.is-practical .card-summary.is-collapsed::after {
    display: none;
}
.card.is-practical .card-actions {
    margin-top: 7px;
}
.card.is-practical .card-actions .expand-toggle {
    min-height: 30px;
    padding: 5px 10px;
    border: 1px solid #cbd5e1;
    background: #fff;
}
.card.is-practical .card-ms-panel .mark-scheme-official-pages {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    justify-items: stretch;
    max-width: 1048px;
}
.card.is-practical .card-ms-panel .mark-scheme-official-image {
    width: 100%;
    max-width: 580px;
    max-height: 580px;
    justify-self: start;
}
.card.is-practical .card-ms-panel .mark-scheme-official-pages.is-single {
    grid-template-columns: minmax(0, 1fr);
    max-width: 680px;
}
.card.is-practical .card-ms-panel .mark-scheme-official-pages.is-single .mark-scheme-official-image {
    max-width: 680px;
    max-height: 680px;
}
.card.paper-5 .card-ms-panel .mark-scheme-official-pages.is-paper5-q1,
.card.paper-5 .card-ms-panel .mark-scheme-official-pages.is-paper5-q2 {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    max-width: 960px;
}
.card.paper-5 .card-ms-panel .mark-scheme-official-pages.is-paper5-q1 .mark-scheme-official-image,
.card.paper-5 .card-ms-panel .mark-scheme-official-pages.is-paper5-q2 .mark-scheme-official-image {
    width: 100%;
    max-width: 960px;
    max-height: none;
}
@media(max-width: 760px) {
    .card.is-practical .card-ms-panel .mark-scheme-official-pages {
        grid-template-columns: minmax(0, 1fr);
    }
    .card.is-practical .card-ms-panel .mark-scheme-official-image {
        max-width: 100%;
        max-height: none;
    }
}
.paper-item.is-practical {
    min-height: 0;
    padding: 9px 10px;
    gap: 6px;
}
.paper-item.is-practical .paper-item-head {
    grid-template-columns: 26px minmax(0, 1fr) auto auto;
    grid-template-areas:
        "index title marks actions"
        ". topics topics topics";
    align-items: center;
    column-gap: 7px;
    row-gap: 6px;
}
.paper-item.is-practical .idx {
    width: 26px;
    height: 26px;
}
.paper-item.is-practical .paper-marks {
    justify-self: end;
    min-height: 20px;
    padding: 1px 6px;
    font-size: 9px;
}
.paper-item.is-practical .item-actions {
    align-self: start;
}
.paper-practical-details {
    grid-area: topics;
    display: grid;
    gap: 5px;
    min-width: 0;
    padding-top: 7px;
    border-top: 1px solid #e2e8f0;
}
.paper-practical-summary {
    min-width: 0;
    color: #475569;
    font-size: 9px;
    font-weight: 750;
    line-height: 1.25;
    white-space: nowrap;
}
.paper-practical-row {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 6px;
    align-items: start;
}
.paper-practical-row > strong {
    grid-area: auto;
    padding-top: 4px;
    color: #64748b;
    font-size: 8px;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
}
.paper-practical-row > div {
    display: flex;
    flex-wrap: wrap;
    gap: 3px;
    min-width: 0;
}
.paper-item.is-practical .practical-tag {
    min-height: 19px;
    padding: 2px 6px;
    font-size: 8.5px;
}
@media(min-width: 769px) {
    body[data-practical-builder="true"] .app {
        max-width: 1660px;
    }
    body[data-practical-builder="true"] .content-grid {
        grid-template-columns: minmax(0, 1fr) clamp(300px, 23vw, 350px);
    }
}
.paper-item.is-mcq .paper-item-head {
    grid-template-columns: 22px minmax(0, 1fr) minmax(58px, auto) auto;
    grid-template-areas: "index title topics actions";
}
.paper-item.is-mcq .paper-item-head.has-legacy > strong {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    line-height: 1.05;
    overflow: visible;
}
.paper-item.is-mcq .paper-item-head.has-legacy .paper-knowledge {
    align-self: start;
}
.paper-item.is-mcq .paper-legacy {
    padding: 0 4px;
    font-size: 8px;
    line-height: 1.1;
}
.paper-item.is-mcq .paper-knowledge {
    max-width: 76px;
    justify-content: flex-end;
    flex-wrap: nowrap;
}
.paper-item.is-mcq .paper-knowledge .tag {
    flex: 0 0 auto;
}
@media(max-width: 768px) {
    .paper-item.is-mcq .paper-item-head {
        grid-template-columns: 20px minmax(0, 1fr) minmax(48px, auto) auto;
    }
    .paper-item.is-mcq .paper-knowledge {
        max-width: 68px;
    }
}
@media(min-width: 769px) {
    .field-grid.compact.is-practical-mode {
        grid-template-columns:auto minmax(124px,150px) minmax(88px,110px) minmax(88px,110px) repeat(4,minmax(112px,1fr)) minmax(150px,1fr);
    }
    .field-grid.is-practical-mode.is-chemistry{grid-template-columns:auto minmax(124px,150px) minmax(88px,110px) minmax(88px,110px) repeat(4,minmax(0,1fr))}
    .field-grid.is-practical-mode.is-chemistry>.field-search{grid-column:5/9;grid-row:1}
    .field-grid.is-practical-mode.is-chemistry>:is(.field-practical-question,.field-practical-type){grid-column:span 2}
    .field-grid.is-practical-mode.is-chemistry>:is(.field-practical-instrument,.field-practical-apparatus,.field-practical-chemical,.field-practical-observation) .menu{right:0;left:auto}
}
@media(max-width: 768px) {
    .field-grid.compact.is-practical-mode {
        grid-template-columns:76px 60px 78px repeat(3,minmax(0,1fr)) 32px!important;
        grid-template-rows: 32px 32px 32px;
    }
    .field-grid.is-practical-mode .field-subject { grid-column:1;grid-row:1 }
    .field-grid.is-practical-mode .field-years { grid-column: 2; grid-row: 1; }
    .field-grid.is-practical-mode .field-paper { grid-column: 3; grid-row: 1; }
    .field-grid.is-practical-mode .field-search { grid-column: 4 / 7; grid-row: 1; }
    .field-grid.is-practical-mode .filter-actions { grid-column: 7; grid-row: 1; }
    .field-grid.is-practical-mode .field-practical-question { grid-column: 1 / 3; grid-row: 2; }
    .field-grid.is-practical-mode .field-practical-apparatus { grid-column: 3 / 5; grid-row: 2; }
    .field-grid.is-practical-mode .field-practical-instrument { grid-column: 5 / 8; grid-row: 2; }
    .field-grid.is-practical-mode .field-practical-skill { grid-column: 1 / 8; grid-row: 3; }
    .field-grid.is-practical-mode .field-practical-limitation { grid-column: 1 / 8; grid-row: 3; }
    .field-grid.is-practical-mode.is-chemistry>.field-practical-type{grid-area:3/1/4/3}
    .field-grid.is-practical-mode.is-chemistry>.field-practical-observation{grid-area:3/3/4/5}
    .field-grid.is-practical-mode.is-chemistry>.field-practical-chemical{grid-area:3/5/4/8}
    body[data-paper5-builder="true"] .field-grid.compact.is-practical-mode { grid-template-rows: 32px 32px; }
    body[data-paper5-builder="true"] .field-grid.is-practical-mode .field-practical-instrument { grid-column: 3 / 5; grid-row: 2; }
    body[data-paper5-builder="true"] .field-grid.is-practical-mode .field-practical-skill { grid-column: 5 / 8; grid-row: 2; }
    .field-grid.is-practical-mode.is-mobile-search-open .field-search{grid-column:1 / 7}
    .field-grid.is-practical-mode .field-practical-apparatus .menu,
    .field-grid.is-practical-mode .field-practical-instrument .menu,
    .field-grid.is-practical-mode .field-practical-question .menu,
    .field-grid.is-practical-mode .field-practical-skill .menu {
        width: min(286px, calc(100vw - 18px));
        max-height: min(56svh, 360px);
    }
    .field-grid.is-practical-mode .field-practical-question .menu {
        right: auto;
        left: 0;
    }
    .field-grid.is-practical-mode .field-practical-instrument .menu {
        right: 0;
        left: auto;
    }
    .field-grid.is-practical-mode.is-chemistry>:is(.field-practical-apparatus,.field-practical-observation) .menu{right:auto;left:50%;transform:translateX(-50%)}
    .field-grid.is-practical-mode.is-chemistry>.field-practical-chemical .menu{right:0;left:auto}
    .field-grid.is-practical-mode .field-practical-limitation .menu,
    .field-grid.is-practical-mode .field-practical-skill .menu {
        width: min(340px, calc(100vw - 18px));
        right: 0;
        left: auto;
    }
    .field-grid.is-mobile-search-open .field-practical-apparatus,
    .field-grid.is-mobile-search-open .field-practical-instrument,
    .field-grid.is-mobile-search-open .field-practical-question,
    .field-grid.is-mobile-search-open .field-practical-skill,
    .field-grid.is-mobile-search-open .field-practical-limitation {
        display: none !important;
    }
}
.card.paper-1 .mcq-doc{font-size:var(--builder-type-mcq);line-height:1.45}
.card.paper-2 .card-summary,.card.paper-4 .card-summary{font-size:var(--builder-type-structured);line-height:var(--builder-leading-structured)}
.card.paper-2 .marks,.card.paper-4 .marks{font-size:var(--builder-type-p3-meta)}
.card.paper-3 :is(.practical-tag,.practical-evaluation-summary-chip,.practical-inventory-chip){min-height:26px;padding:4px 8px;font-size:var(--builder-type-p3-ui);line-height:1.35}
.card.paper-3 :is(.practical-axis>strong,.practical-evaluation-summary-head strong,.practical-inventory-head strong,.practical-inventory-group-label){font-size:var(--builder-type-p3-ui);line-height:1.35}
.card.paper-3 :is(.practical-evaluation-summary-head span,.practical-evaluation-summary>small,.practical-inventory-head span,.practical-inventory-group-label small,.practical-inventory-chip small){font-size:var(--builder-type-p3-meta);line-height:1.35}
.card.paper-5 :is(.paper5-measurement-summary li>p,.paper5-plan-detail-summary article>p,.paper5-q2-value){font-size:var(--builder-type-p5-ui);line-height:1.5}
.card.paper-5 :is(.paper5-q1-title>span,.paper5-measurement-tools span,.paper5-plan-detail-summary article>span),.card-top .tag,.mark-chip{font-size:var(--builder-type-p5-meta)}
@media(max-width:768px){.field-search input{font-size:var(--builder-type-p3-ui);line-height:1.35}}
@media(max-width:480px){.card.is-practical .card-actions{grid-template-columns:1fr;padding-right:138px}.card.is-practical .card-actions .expand-toggle{justify-self:start}}
:is(button,.tag,.mark-chip,.pill,.selected-pill,.practical-tag,.practical-evaluation-summary-chip,.practical-inventory-chip){white-space:nowrap}

html[data-theme] :is(.app-nav-brand,.app-nav-context strong,.app-nav-back){color:var(--text)!important}
html[data-theme] .app-nav-context{border-color:var(--line)}
html[data-theme] :is(.dev-admin-link,.account-admin-link,.guest-account-badge button,.btn.primary){color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-2));border-color:var(--brand)}
html[data-theme] :is(.badge,.physics-language-switch,.physics-text-size-trigger){color:var(--muted);background:color-mix(in srgb,var(--bg) 48%,#fff);border-color:var(--line)}

.builder-learning-links{display:inline-flex;align-items:center;gap:4px;min-width:0}.builder-learning-link{white-space:nowrap}.builder-learning-link svg{width:20px;height:17px;flex:0 0 20px;fill:none;stroke:currentColor;stroke-width:1.7}.paper-toolbar-actions{flex:1 0 100%;width:100%;margin-left:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.paper-toolbar-actions :is(#saveCurrentPaperBtn,#openPreviewBtn){width:100%;min-width:0}.paper-toolbar-actions #clearPaperBtn{min-width:0}
@media(max-width:768px){.paper-toolbar-actions{grid-template-columns:auto minmax(0,1fr) minmax(0,1fr) auto}}
@media(max-width:600px){.builder-learning-links .ph-button{width:34px;padding:0!important}.builder-learning-link>span,.builder-shell-root .physics-text-size-trigger>*{display:none}.builder-shell-root .physics-text-size-trigger{width:34px;min-width:34px;padding:0;font-size:0}.builder-shell-root .physics-text-size-trigger:before{content:"Aa";font-size:10px}}
html[data-theme] :is(.dev-role-switcher select,.physics-language-switch button,.physics-text-size-trigger){color:var(--muted)}
html[data-theme] .dev-role-switcher select{border-color:color-mix(in srgb,var(--brand) 30%,#fff)}
html[data-theme] :is(.physics-language-switch button:hover,.physics-language-switch button:focus-visible,.physics-text-size-trigger:hover,.physics-text-size-trigger:focus-visible,.physics-text-size-switch.is-open .physics-text-size-trigger){color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,#fff);border-color:color-mix(in srgb,var(--brand) 28%,#fff)}
html[data-theme] .physics-language-switch button.is-active{color:var(--brand);background:#fff;box-shadow:0 2px 7px color-mix(in srgb,var(--brand) 12%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--brand) 9%,transparent)}
html[data-theme] :is(.physics-language-switch button:focus-visible,.physics-text-size-trigger:focus-visible){box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 20%,transparent)}
html[data-theme] .physics-text-size-trigger strong{color:var(--brand)}
html[data-theme] .physics-text-size-menu{border-color:var(--line);box-shadow:0 16px 38px color-mix(in srgb,var(--brand) 16%,transparent),inset 0 1px rgba(255,255,255,.84)}
html[data-theme] :is(.physics-text-size-menu button:hover,.physics-text-size-menu button:focus-visible,.physics-text-size-menu button.is-active){color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,#fff)}
html[data-theme] .physics-text-size-menu button.is-active:after{background:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 12%,transparent)}
html[data-theme] .filter-shell.is-placeholder{border-color:color-mix(in srgb,var(--brand) 14%,#fff);background:color-mix(in srgb,var(--brand) 4%,#fff)}
html[data-theme] .filter-shell.has-selection{border-color:color-mix(in srgb,var(--brand) 18%,#fff);background:var(--ph-surface,#fff)}
html[data-theme] .filter-shell:not(.is-open):hover{border-color:color-mix(in srgb,var(--brand) 28%,#fff);background:color-mix(in srgb,var(--brand) 7%,#fff)}
html[data-theme] :is(select,input):focus,html[data-theme] .filter-shell.is-open{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 14%,transparent)}
html[data-theme] :is(.difficulty-reset-link:hover,.difficulty-reset-link.is-active,.option-group-toggle-icon,.option-group-select.is-selected,.option-item.is-selected,.option-check,.expand-toggle:hover,button.disclosure-btn:hover,button.disclosure-btn.is-open,.metric span,.idx){color:var(--brand)}
html[data-theme] :is(.option-group-select.is-selected,.option-item.is-selected,.expand-toggle:hover,button.disclosure-btn:hover,button.disclosure-btn.is-open,.paper-item.is-active,.idx){background:color-mix(in srgb,var(--brand) 10%,#fff)}
html[data-theme] :is(.expand-toggle:hover,button.disclosure-btn:hover,button.disclosure-btn.is-open){border-color:color-mix(in srgb,var(--brand) 32%,#fff)}
html[data-theme] .card-ms-panel.mcq-answer-panel{width:fit-content;padding:6px 9px;border:1px solid color-mix(in srgb,var(--brand) 30%,#fff);border-left:3px solid var(--brand);border-radius:9px;background:color-mix(in srgb,var(--brand) 9%,#fff)}
html[data-theme] .mcq-answer-panel>strong{color:var(--brand)}
html[data-theme] :is(.option-group-toggle:hover,.add-btn,.card.located,.paper-item.is-active){border-color:var(--brand)}
html[data-theme] :is(.bulk-add-results,.add-btn,.mark-chip,.paper-marks){color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,#fff);border-color:color-mix(in srgb,var(--brand) 38%,#fff)}
html[data-theme] .paper-format-tag{color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,#fff);border-color:color-mix(in srgb,var(--brand) 34%,#fff)}
html[data-theme] .bulk-add-results:hover:not(:disabled){color:var(--brand);background:color-mix(in srgb,var(--brand) 16%,#fff);border-color:var(--brand)}
html[data-theme] .card:hover{border-color:color-mix(in srgb,var(--brand) 48%,#fff);box-shadow:0 10px 20px color-mix(in srgb,var(--brand) 10%,transparent)}
html[data-theme] :is(.bulk-add-results.is-pending,.add-btn.is-pending){color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-2))}
html[data-theme] :is(.card.located,.paper-item.is-active){box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 14%,transparent),0 12px 22px color-mix(in srgb,var(--brand) 10%,transparent)}
html[data-theme] :is(.paper-item.drop-before:before,.paper-item.drop-after:after){background:var(--brand)}
html[data-theme] .paper-fab{border-color:color-mix(in srgb,var(--brand) 28%,transparent);background:linear-gradient(135deg,var(--brand),var(--brand-2));box-shadow:0 16px 36px color-mix(in srgb,var(--brand) 30%,transparent)}
.card-ms-action{flex-wrap:wrap;align-items:center;gap:6px}
button.disclosure-btn.is-locked{color:#9a5b08;background:#fffaf0;border-color:#f5d08a}
.card-ms-locked-notice{color:#7c4a03;padding:5px 8px;border:1px solid #f5d08a;border-radius:8px;background:#fffaf0;font-size:10px;line-height:1.35}
