:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.5;--page:#f3f7f5;--surface:#fff;--surface-hover:#edf6f2;--text:#17312d;--text-soft:#345a53;--muted:#526e68;--accent:#0b7566;--accent-hover:#095d52;--button:#0b7566;--button-hover:#095d52;--on-button:#fff;--border:#d4e4de;--border-subtle:#e4eee9;--field-border:#a8c4ba;--badge-bg:#e1f3eb;--badge-text:#155d49;--notice:#e5f5e9;--error:#b4233c;--shadow-color:#112e2512;color:var(--text);background:var(--page)}
html[data-theme="dark"]{color-scheme:dark;--page:#0b1110;--surface:#15201c;--surface-hover:#1c2c25;--text:#f3f8f5;--text-soft:#c8ddd2;--muted:#a8c4b5;--accent:#72e0a2;--accent-hover:#a2f1c2;--button:#187a49;--button-hover:#20975a;--on-button:#fff;--border:#30463a;--border-subtle:#27392f;--field-border:#547261;--badge-bg:#224330;--badge-text:#b4f2ca;--notice:#183923;--error:#ff8092;--shadow-color:#00000038}
*{box-sizing:border-box}body{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.container{max-width:1040px;margin:auto;padding:0 22px}.topbar{background:var(--surface);border-bottom:1px solid var(--border)}
.topbar-inner{display:flex;align-items:center;gap:26px;min-height:66px;flex-wrap:wrap}.brand{font-weight:750;color:var(--text);font-size:1.1rem}
nav{display:flex;gap:20px;flex-wrap:wrap}nav a{color:var(--text-soft)}.logout{margin-left:0}.text-button{border:0;background:none;color:var(--text-soft);padding:0;cursor:pointer;font:inherit}
main{padding-top:34px!important;padding-bottom:70px!important}h1{font-size:1.85rem;line-height:1.2;margin:0 0 20px}h2{font-size:1.12rem;margin:0 0 12px}
p{margin:0 0 16px}.muted,small{color:var(--muted)}small{display:block;font-size:.88rem;margin-top:4px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;box-shadow:0 2px 7px var(--shadow-color)}
.action{color:var(--text)}.action strong,.action span{display:block}.action span{color:var(--muted);margin-top:6px}.stack{display:grid;gap:10px}.row{display:flex;align-items:center;justify-content:space-between;gap:18px;color:var(--text)}.row strong{display:block}.row a{color:var(--accent)}.heading-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.heading-row h1{margin:0}
.button,button[type=submit]{display:inline-block;background:var(--button);color:var(--on-button);border:0;border-radius:8px;padding:10px 16px;font:inherit;font-weight:650;cursor:pointer}.button:hover{color:var(--on-button);background:var(--button-hover);text-decoration:none}button[type=submit]:hover{background:var(--button-hover)}
.narrow{max-width:640px}.form-card p{margin-bottom:18px}.form-card label,.task label{display:block;font-weight:600;margin-bottom:5px}input:not([type=checkbox]):not([type=hidden]),textarea,select{display:block;width:100%;max-width:100%;padding:10px 12px;border:1px solid var(--field-border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit}textarea{min-height:110px}input[type=checkbox]{margin-right:8px}.helptext{display:block;color:var(--muted);font-size:.86rem}.errorlist,.error{color:var(--error)}.notice{background:var(--notice);padding:12px 16px;border-radius:8px;margin-bottom:20px}.badge{display:inline-block;background:var(--badge-bg);color:var(--badge-text);padding:5px 9px;border-radius:99px;font-size:.85rem;white-space:nowrap}
.task,.material{margin-bottom:14px}.task input{max-width:300px!important}.text-content{white-space:normal}.secondary-link{margin-left:16px}
.material-image{display:block;max-width:100%;height:auto;border:1px solid var(--border);border-radius:8px}.solution-material{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.solution-material h3{font-size:1rem;margin:0 0 10px}
.catalog-track{margin:30px 0 16px}.catalog-group{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:12px}.catalog-group summary{cursor:pointer;padding:15px 18px;font-weight:650;display:flex;justify-content:space-between;gap:15px}.catalog-group summary:hover{background:var(--surface-hover)}.catalog-group summary .muted{font-size:.85rem;font-weight:400;white-space:nowrap}.catalog-topics{padding:0 15px 15px}.catalog-topics .card{box-shadow:none}
@media(max-width:650px){.topbar-inner{padding-top:12px;padding-bottom:12px;gap:10px}nav{order:3;width:100%;gap:14px}.logout{margin-left:auto}.row{align-items:flex-start;flex-direction:column}.heading-row{align-items:flex-start;flex-direction:column}h1{font-size:1.55rem}}
.exam-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.exam-card{display:flex;flex-direction:column;gap:7px;color:var(--text)}.exam-card strong{font-size:1.06rem}.exam-number{font-size:1.15rem;color:var(--accent);font-weight:750}.exam-card small{margin-top:auto;padding-top:8px}.subtopic-content{padding:0 18px 18px}.subtopic .material{box-shadow:none}.source-name{color:var(--muted);font-size:.9rem;margin-left:8px}
.resource-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0 34px}.resource-group{background:var(--surface);border:1px solid var(--border);border-radius:12px;min-width:0}.resource-group>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;cursor:pointer}.resource-group>summary strong{font-size:1rem}.resource-group>summary .muted{font-size:.84rem;white-space:nowrap}.resource-list{padding:0 12px 12px;max-height:520px;overflow:auto}.resource-item{border-top:1px solid var(--border-subtle)}.resource-item>summary{padding:10px 4px;cursor:pointer;font-size:.93rem}.resource-item>summary small{display:inline;margin-left:8px}.resource-body{padding:4px 8px 10px}.resource-body p:last-child{margin-bottom:0}.task-topics h2{font-size:1.25rem;margin-bottom:6px}.practice-list{padding-left:24px;margin:8px 0 0}.practice-list li{padding:8px 0;border-bottom:1px solid var(--border-subtle)}.practice-list li:last-child{border:0}
@media(max-width:650px){.resource-overview{grid-template-columns:1fr}.resource-group>summary{flex-wrap:wrap}}
.profile-resource-hub{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0 40px}.profile-resource-hub .resource-group>summary{min-height:72px}.profile-resource-hub .resource-list{max-height:630px}.resource-number{border-top:1px solid var(--border-subtle)}.resource-number>summary{cursor:pointer;padding:10px 4px;font-weight:650;font-size:.9rem}.resource-number>summary small{display:inline;margin-left:8px}.resource-number-list{padding:0 0 8px 12px}.catalog-numbers>h2,.general-materials>h2{font-size:1.28rem;margin-bottom:16px}.general-materials{margin-top:42px}.topic-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:24px}.topic-card{color:var(--text);display:flex;flex-direction:column;gap:8px}.topic-card strong{font-size:1.05rem}.topic-card span{color:var(--accent);margin-top:auto}.subtopic-heading{margin-top:30px}.task-sources{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.task-example{margin-bottom:12px}.task-example .text-content{margin-top:14px}.task-example p:last-child{margin-bottom:0}.topic-navigation{margin-top:30px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;align-items:center;justify-content:space-between;gap:15px}.topic-navigation a:last-child{text-align:right}
@media(max-width:800px){.profile-resource-hub{grid-template-columns:1fr}.profile-resource-hub .resource-group>summary{min-height:0}}
.resource-entry{display:flex;flex-direction:column;justify-content:space-between;min-height:104px;color:var(--text)}.resource-entry strong{font-size:1.08rem}.resource-entry span{color:var(--accent);font-size:.9rem}
.number-jump{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 28px}.number-jump a{padding:7px 12px;background:var(--surface);border:1px solid var(--border);border-radius:8px;font-weight:650}.number-jump a[aria-current=page]{color:var(--on-button);background:var(--button);border-color:var(--button)}
.pdf-section{scroll-margin-top:24px;margin:26px 0 34px}.pdf-section h2{font-size:1.18rem}.pdf-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.pdf-link{display:flex;align-items:center;justify-content:space-between;gap:18px;color:var(--text);padding:14px 16px}.pdf-link span{color:var(--accent);white-space:nowrap;font-size:.88rem}
.solution-gallery{display:grid;grid-template-columns:1fr;gap:16px;margin-top:20px}.solution-card{min-width:0;padding:14px}.solution-card h3{font-size:1rem;margin:0 0 12px}.solution-card img{display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:6px}
@media(max-width:700px){.solution-gallery{grid-template-columns:1fr}.pdf-link{align-items:flex-start;flex-direction:column;gap:8px}}
.topic-list{margin-top:24px}.topic-row{display:flex;align-items:center;gap:18px;color:var(--text);padding:15px 18px}.topic-position{min-width:42px;color:var(--accent);font-weight:750}.topic-label{flex:1}.topic-label strong{font-size:1rem}.topic-label small{margin-top:2px}.topic-arrow{color:var(--accent);white-space:nowrap;font-size:.9rem}
@media(max-width:650px){.topic-row{gap:10px}.topic-arrow{font-size:0}.topic-arrow::after{content:'→';font-size:1rem}}
.theme-toggle{margin-left:auto;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-size:.9rem;font-weight:650;cursor:pointer;white-space:nowrap}.theme-toggle:hover{background:var(--surface-hover)}.theme-icon{font-size:1.1rem;line-height:1}.logout button[type=submit]{padding:8px 14px}.card:hover{border-color:var(--field-border)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:650px){.theme-toggle{margin-left:auto}.theme-label{display:none}.theme-toggle{width:38px;justify-content:center;padding:8px}}
.task-search{margin:18px 0 28px;max-width:520px}.task-search label{display:block;font-size:.9rem;font-weight:650;margin-bottom:6px}.task-search>div{display:flex;gap:8px}.task-search input{min-width:0}.task-search button{white-space:nowrap}.task-card{margin-bottom:16px}.task-card-head{display:flex;align-items:center;flex-wrap:wrap;gap:12px;border-bottom:1px solid var(--border-subtle);padding-bottom:12px;margin-bottom:16px}.task-card-head a{font-weight:700}.task-source{color:var(--muted);font-size:.9rem;margin-left:auto}.task-statement{font-size:1.04rem;line-height:1.65}.task-statement p:last-child{margin-bottom:0}.task-diagram{display:block;max-width:min(100%,600px);max-height:440px;width:auto;height:auto;object-fit:contain;margin:20px auto;padding:12px;background:#fff;border-radius:6px}.task-answer{margin-top:18px;border-top:1px solid var(--border-subtle)}.task-answer summary{cursor:pointer;color:var(--accent);font-weight:700;padding:14px 0 0}.task-answer-body{padding-top:14px}.task-answer-body p:last-child{margin-bottom:0}
.task-image-link{display:block;width:fit-content;max-width:100%;margin:0 auto;cursor:zoom-in}.task-image-link .task-diagram{margin:20px auto}.task-answer-image{max-width:100%;max-height:none;object-fit:initial}
@media(max-width:650px){.task-search>div{flex-direction:column}.task-source{width:100%;margin-left:0}}
.task-card-actions{display:flex;justify-content:flex-end;gap:18px;margin-top:16px;padding-top:12px;border-top:1px solid var(--border-subtle);font-size:.9rem}.danger-link{color:var(--error)!important}.danger-button{background:var(--error)!important;color:#fff!important}.delete-actions{display:flex;align-items:center;gap:18px}.manage-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.manage-filters label,.homework-filter-grid label{font-size:.9rem;font-weight:650}.manage-filters select,.manage-filters input,.homework-filter-grid select,.homework-filter-grid input{margin-top:5px}.manage-search{grid-column:span 2}.manage-filter-actions{display:flex;align-items:end;gap:14px}.manage-results{gap:12px}.manage-result{min-width:0}.manage-result-meta{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:8px}.manage-result-meta span{color:var(--muted);font-size:.88rem}.manage-result-text{margin-bottom:10px}.manage-thumb{display:block;max-width:240px;max-height:140px;object-fit:contain;background:#fff;border-radius:6px;margin:8px 0}.manage-result-actions{display:flex;gap:20px;justify-content:flex-end;border-top:1px solid var(--border-subtle);padding-top:9px;margin-top:10px}.pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:22px}.homework-builder{max-width:100%}.homework-main-fields{max-width:720px;display:grid;gap:8px;margin-bottom:18px}.homework-main-fields label{font-weight:650}.homework-main-fields select{margin-bottom:4px}.homework-picker-head{display:flex;justify-content:space-between;align-items:start;gap:16px}.homework-picker-head h2{font-size:1.2rem}.homework-picker-head strong{white-space:nowrap;color:var(--accent)}.homework-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.homework-task-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;max-height:72vh;overflow:auto;padding:2px}.homework-task-card{display:flex;flex-direction:column;gap:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:14px;cursor:pointer;min-width:0}.homework-task-card:hover{border-color:var(--accent)}.homework-task-card:has(input:checked){border-color:var(--accent);background:var(--surface-hover)}.homework-task-card[hidden],.homework-task-grid[hidden]{display:none}.homework-task-heading{display:flex;align-items:center;gap:6px}.homework-task-heading small{margin:0 0 0 auto;text-align:right}.homework-task-statement{line-height:1.45;overflow-wrap:anywhere}.homework-task-card img{max-width:100%;max-height:190px;width:auto;height:auto;object-fit:contain;align-self:center;background:#fff;border-radius:5px}.homework-task-card>small{margin-top:auto}.homework-submit{margin-top:18px;text-align:right}
@media(max-width:750px){.manage-filters,.homework-filter-grid{grid-template-columns:1fr}.manage-search{grid-column:auto}.homework-picker-head{flex-direction:column}.homework-task-grid{max-height:none}}

/* Subtle hover feedback without layout shifts. */
@media (prefers-reduced-motion: no-preference){
  a, .text-button, .theme-toggle, .button, button[type=submit],
  .card, .catalog-group, .resource-group, .homework-task-card,
  .number-jump a, .catalog-group summary, .resource-group>summary,
  .task-answer summary{transition:color .18s ease,background-color .18s ease,
    border-color .18s ease,box-shadow .2s ease,transform .2s ease}
  .button:hover,button[type=submit]:hover,.theme-toggle:hover{transform:translateY(-2px);box-shadow:0 5px 14px var(--shadow-color)}
  .button:active,button[type=submit]:active,.theme-toggle:active{transform:translateY(0);box-shadow:none}
  .card:hover,.homework-task-card:hover,.catalog-group:hover,.resource-group:hover{transform:translateY(-2px);box-shadow:0 6px 18px var(--shadow-color)}
  .number-jump a:hover{transform:translateY(-2px);border-color:var(--accent);text-decoration:none}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

.task-source-filter{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0 26px}
.task-source-filter a{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-soft);font-size:.9rem;font-weight:650}
.task-source-filter a span{color:var(--muted);font-size:.82rem;font-weight:500}
.task-source-filter a:hover{border-color:var(--accent);background:var(--surface-hover);color:var(--text);text-decoration:none}
.task-source-filter a[aria-current="page"]{border-color:var(--accent);background:var(--badge-bg);color:var(--badge-text)}
.task-source-filter a[aria-current="page"] span{color:inherit}
:root{--card-glow:rgba(11,117,102,.22)}
html[data-theme="dark"]{--card-glow:rgba(114,224,162,.26)}
.task-source-filter a[aria-current="page"]{box-shadow:0 0 0 1px var(--accent),0 0 13px var(--card-glow)}
.task-source-filter a:hover,.task-source-filter a:focus-visible{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 20px var(--card-glow)}
.catalog-numbers .exam-card:hover,.catalog-numbers .exam-card:focus-visible,
.profile-resource-hub .resource-entry:hover,.profile-resource-hub .resource-entry:focus-visible{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 24px var(--card-glow)}
.variant-list-row{color:var(--text);text-decoration:none}.variant-list-row small{display:block;color:var(--muted);margin-top:5px}.variant-builder{display:grid;gap:16px;margin-bottom:36px}.variant-main-fields{display:grid;grid-template-columns:2fr 1fr;gap:16px}.variant-builder label,.variant-task label{display:block;font-weight:650}.variant-builder label input,.variant-builder label select,.variant-task label input{margin-top:6px}.variant-rules h2{margin:0}.variant-rules .heading-row{margin-bottom:12px}.variant-rule{display:grid;grid-template-columns:1fr 1.4fr 130px 42px;gap:10px;align-items:end;padding:12px 0;border-top:1px solid var(--border-subtle)}.variant-remove,.variant-secondary{border:1px solid var(--border);background:var(--surface);color:var(--accent);border-radius:8px;padding:9px 12px;font:inherit;cursor:pointer}.variant-remove{font-size:1.4rem;line-height:1}.variant-remove:hover,.variant-secondary:hover{background:var(--surface-hover)}.variant-fixed p{margin:8px 0 0}.variant-preview{margin-top:30px}.variant-task{max-width:100%;overflow:hidden}.variant-task-meta{display:flex;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--border-subtle)}.variant-task-meta span{color:var(--muted)}.variant-task img{display:block;max-width:min(100%,700px);max-height:500px;width:auto;height:auto;object-fit:contain;margin:16px auto;background:#fff;border-radius:6px}.variant-task label{max-width:320px;margin-top:18px}.variant-task details{border-top:1px solid var(--border-subtle);padding-top:12px}.variant-task summary{cursor:pointer;color:var(--accent);font-weight:700}.variant-submit{display:flex;justify-content:flex-end;align-items:center;gap:20px;margin:20px 0}.variant-attempts{margin-top:40px}.variant-correct{color:var(--accent)!important}.variant-wrong{color:var(--error)!important}
.variant-history-row{display:flex;align-items:center;justify-content:space-between;gap:20px}.variant-history-row .variant-list-row{min-width:0;flex:1}.variant-history-actions{display:flex;align-items:center;gap:20px;white-space:nowrap}@media(max-width:650px){.variant-history-row{align-items:flex-start;flex-direction:column}.variant-history-actions{width:100%;justify-content:space-between}}
.variant-review-wrap{padding:0;overflow:hidden}.variant-review-table{width:100%;border-collapse:collapse;table-layout:fixed}.variant-review-table th,.variant-review-table td{padding:9px 16px;border-bottom:1px solid var(--border-subtle);text-align:left;vertical-align:middle}.variant-review-table tr:last-child th,.variant-review-table tr:last-child td{border-bottom:0}.variant-review-table thead{background:var(--surface-hover);color:var(--text-soft)}.variant-review-table thead th{font-size:.82rem;font-weight:650}.variant-review-table th:first-child{width:90px}.variant-review-table th:last-child{width:145px}.variant-review-table tbody th{white-space:nowrap}.variant-review-table tbody td:nth-child(2){color:var(--muted);overflow-wrap:anywhere}.variant-review-answer{font-weight:700;overflow-wrap:anywhere}@media(max-width:650px){.variant-review-table th,.variant-review-table td{padding:8px;font-size:.82rem}.variant-review-table th:first-child{width:58px}.variant-review-table th:last-child{width:92px}}
.variant-result-wrap{overflow-x:auto}.variant-result-table{min-width:720px}.variant-result-table th:first-child{width:75px}.variant-result-table th:last-child{width:75px}.variant-result-table th:nth-child(2){width:25%}.variant-result-table td{overflow-wrap:anywhere}.variant-score{display:flex;align-items:baseline;gap:16px;margin:0 0 16px}.variant-score strong{font-size:1.8rem;color:var(--accent)}.variant-score-note{margin-bottom:20px}.variant-score-note p{margin:8px 0 0;color:var(--muted)}
@media(max-width:700px){.variant-main-fields{grid-template-columns:1fr}.variant-rule{grid-template-columns:1fr 1fr}.variant-rule label:nth-child(2){grid-column:span 2;grid-row:2}.variant-rule .variant-remove{justify-self:end}.variant-task-meta{flex-direction:column}}
.catalog-profile-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.catalog-profile-heading h1{margin:0}.catalog-profile-heading .button{white-space:nowrap}.quick-variant-dialog{width:min(860px,calc(100vw - 24px));max-height:min(88vh,900px);box-sizing:border-box;overflow:auto;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--text);box-shadow:0 22px 60px #0005;padding:24px}.quick-variant-dialog::backdrop{background:#0009;backdrop-filter:blur(3px)}.quick-variant-header{display:flex;align-items:start;justify-content:space-between;gap:14px}.quick-variant-header h2{margin:0}.quick-variant-header p{margin:0 0 4px}.quick-dialog-close{border:0;background:transparent;color:var(--muted);font-size:1.8rem;line-height:1;cursor:pointer}.quick-variant-title{display:block;font-weight:650;margin:18px 0}.quick-variant-title input{margin-top:6px}.quick-variant-list{display:grid;gap:2px}.quick-variant-list h3{font-size:.92rem;color:var(--accent);margin:20px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--border)}.quick-number-group{border-bottom:1px solid var(--border-subtle)}.quick-count-row{display:grid;grid-template-columns:124px minmax(0,1fr) 92px;align-items:center;gap:12px;min-height:49px}.quick-count-control{display:flex;align-items:center;gap:5px}.quick-count-control button{width:29px;height:29px;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--accent);font:inherit;cursor:pointer;padding:0}.quick-count-control button:hover:not(:disabled){background:var(--surface-hover);border-color:var(--accent)}.quick-count-control button:disabled{opacity:.35;cursor:default}.quick-count-control input[type=number]{width:48px!important;min-width:0;box-sizing:border-box;padding:5px 2px;text-align:center;appearance:textfield;-moz-appearance:textfield}.quick-count-control input::-webkit-inner-spin-button,.quick-count-control input::-webkit-outer-spin-button{appearance:none;margin:0}.quick-count-row small{color:var(--muted);text-align:right}.quick-count-label{min-width:0}.quick-subtopics{margin:0 0 8px 136px}.quick-subtopics summary{cursor:pointer;color:var(--accent);font-size:.88rem;padding:2px 0 8px}.quick-subtopic-list{border-left:2px solid var(--border);padding-left:12px}.quick-topic-row{grid-template-columns:124px minmax(0,1fr) 50px;font-size:.89rem}.quick-variant-footer{position:sticky;bottom:-24px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border-top:1px solid var(--border);padding:16px 0;margin-top:14px}.quick-variant-footer div{display:flex;flex-direction:column;gap:3px}.quick-variant-footer a{font-size:.88rem}.quick-variant-footer button:disabled{opacity:.45;cursor:default}.quick-variant-footer button:disabled:hover{background:var(--button);transform:none;box-shadow:none}
@media(max-width:700px){.catalog-profile-heading{align-items:flex-start;flex-direction:column}.quick-variant-dialog{padding:16px}.quick-count-row{grid-template-columns:112px minmax(0,1fr);gap:8px}.quick-count-row small{display:none}.quick-subtopics{margin-left:0}.quick-topic-row{grid-template-columns:112px minmax(0,1fr)}.quick-variant-footer{bottom:-16px}}
.quick-variant-reset{border:0;background:none;color:var(--accent);padding:0;text-align:left;font:inherit;font-size:.88rem;cursor:pointer}.quick-variant-reset:hover{text-decoration:underline}
.quick-topic-choice{display:grid;grid-template-columns:22px minmax(0,1fr) 76px;align-items:center;gap:8px;min-height:36px;cursor:pointer;font-size:.89rem}.quick-topic-choice input{width:16px;height:16px;accent-color:var(--accent);margin:0}.quick-topic-choice small{color:var(--muted);text-align:right}.quick-topic-choice:hover span{color:var(--accent)}.quick-variant-hint{font-size:.82rem;margin:8px 0 0}
.variant-rule-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
@media(max-width:700px){.variant-rule-actions{justify-content:flex-start}}
.variant-exclusions{grid-column:1/-1;margin-top:2px;border:1px solid var(--border);border-radius:8px;background:var(--surface-hover);padding:10px 12px}.variant-exclusions[hidden]{display:none}.variant-exclusions summary{cursor:pointer;color:var(--accent);font-size:.9rem;font-weight:650}.variant-exclusion-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;margin-top:10px}.variant-exclusion-choice{display:flex!important;align-items:flex-start;gap:8px;font-size:.88rem;font-weight:400!important;cursor:pointer}.variant-exclusion-choice input{margin-top:3px;accent-color:var(--accent);flex:none}.variant-exclusion-choice span{min-width:0}
@media(max-width:700px){.variant-exclusion-list{grid-template-columns:1fr}}
@media (prefers-reduced-motion: no-preference){
  .task-source-filter a{transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}
  .task-source-filter a:hover{transform:translateY(-2px)}
}

/* Subject landing: a quiet visual anchor above the study catalog. */
:root{--hero-glow:rgba(20,151,118,.14);--hero-line:rgba(11,117,102,.15)}
html[data-theme="dark"]{--hero-glow:rgba(88,222,151,.12);--hero-line:rgba(114,224,162,.13)}
.brand{display:inline-flex;align-items:center;gap:9px;letter-spacing:-.025em}
.brand::before{content:"";width:24px;height:24px;border-radius:7px;background:linear-gradient(145deg,var(--accent),var(--button));box-shadow:inset 0 0 0 5px var(--surface),0 0 0 1px var(--accent);transform:rotate(-8deg)}
.profile-hero{position:relative;isolation:isolate;overflow:hidden;padding:28px 30px 10px;margin:-4px 0 26px;border:1px solid var(--border);border-radius:22px;background:radial-gradient(circle at 88% 8%,var(--hero-glow),transparent 33%),linear-gradient(135deg,var(--surface),var(--surface-hover));box-shadow:0 16px 38px var(--shadow-color)}
.profile-hero::before{content:"";position:absolute;z-index:-1;width:250px;height:250px;right:-54px;top:-102px;border:1px solid var(--hero-line);border-radius:50%;box-shadow:0 0 0 34px var(--hero-line),0 0 0 75px var(--hero-line);opacity:.42;pointer-events:none}
.profile-kicker{display:flex;align-items:center;gap:9px;margin:0 0 12px;color:var(--accent);font-size:.82rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.profile-kicker span{width:4px;height:4px;border-radius:50%;background:currentColor}
.profile-hero h1{font-size:clamp(1.9rem,3.6vw,2.7rem);letter-spacing:-.035em}
.profile-hero .task-search{margin:20px 0 22px}
.profile-hero .task-search>div{filter:drop-shadow(0 4px 10px var(--shadow-color))}
.profile-resource-hub .resource-entry{position:relative;overflow:hidden;padding:20px 22px 18px;min-height:132px}
.profile-resource-hub .resource-entry::before{content:"01";display:grid;place-items:center;width:34px;height:34px;margin-bottom:9px;border:1px solid var(--border);border-radius:10px;background:var(--badge-bg);color:var(--badge-text);font-size:.72rem;font-weight:800;letter-spacing:.06em}
.profile-resource-hub .resource-entry:nth-child(2)::before{content:"02"}
.profile-resource-hub .resource-entry:nth-child(3)::before{content:"03"}
.profile-resource-hub .resource-entry::after{content:"";position:absolute;right:-24px;top:-24px;width:88px;height:88px;border:1px solid var(--hero-line);border-radius:50%;pointer-events:none}
.profile-resource-hub .resource-entry strong{font-size:1.04rem;letter-spacing:-.015em}
.catalog-numbers>h2{display:flex;align-items:center;gap:12px;font-size:1.35rem;letter-spacing:-.02em}
.catalog-numbers>h2::before{content:"";width:4px;height:24px;border-radius:4px;background:var(--accent)}
.catalog-numbers .exam-card{position:relative;overflow:hidden;min-height:142px;padding:20px 44px 19px 20px}
.catalog-numbers .exam-card::after{content:"↗";position:absolute;right:20px;top:18px;color:var(--accent);font-size:1.15rem;opacity:.65}
.catalog-numbers .exam-card:hover::after,.catalog-numbers .exam-card:focus-visible::after{opacity:1;transform:translate(2px,-2px)}
.catalog-numbers .exam-number{display:inline-flex;align-items:center;align-self:flex-start;min-height:31px;padding:2px 9px;border-radius:8px;background:var(--badge-bg);color:var(--badge-text);font-size:.88rem}
.catalog-numbers .exam-card small{border-top:1px solid var(--border-subtle);padding-top:11px}
@media (prefers-reduced-motion: no-preference){.catalog-numbers .exam-card::after{transition:transform .18s ease,opacity .18s ease}}
@media(max-width:650px){.profile-hero{padding:22px 18px 4px;border-radius:16px}.profile-hero::before{opacity:.22}.profile-resource-hub .resource-entry{min-height:112px}.catalog-numbers .exam-card{min-height:126px}}

/* Reuse the same restrained visual language on study and authoring pages. */
a.card:hover,a.card:hover *,a.card:focus-visible,a.card:focus-visible *,a.variant-list-row:hover{text-decoration:none}
.page-intro{position:relative;isolation:isolate;overflow:hidden;padding:24px 28px;margin:0 0 24px;border:1px solid var(--border);border-radius:18px;background:radial-gradient(circle at 93% -25%,var(--hero-glow),transparent 36%),linear-gradient(135deg,var(--surface),var(--surface-hover));box-shadow:0 9px 28px var(--shadow-color)}
.page-intro::after{content:"";position:absolute;z-index:-1;right:-18px;top:-54px;width:170px;height:170px;border:1px solid var(--hero-line);border-radius:50%;box-shadow:0 0 0 29px var(--hero-line);opacity:.38;pointer-events:none}
.page-intro h1{margin:0 0 7px;letter-spacing:-.028em}
.page-intro p:last-child{margin-bottom:0}
.page-kicker{margin:0 0 11px;color:var(--accent);font-size:.79rem;font-weight:750;letter-spacing:.075em;text-transform:uppercase}
.page-kicker a{color:inherit}
.page-intro.heading-row{min-height:118px}
.page-intro .button{position:relative;z-index:1}
.topic-list{gap:10px}
.topic-row{min-height:74px}
.topic-position{display:grid;place-items:center;min-width:43px;height:40px;border:1px solid var(--border);border-radius:10px;background:var(--badge-bg);color:var(--badge-text);font-size:.88rem}
.topic-row .topic-arrow{transition:transform .18s ease}
.topic-row:hover .topic-arrow,.topic-row:focus-visible .topic-arrow{transform:translateX(3px)}
.teacher-tools .action{position:relative;overflow:hidden;min-height:125px;padding-top:44px}
.teacher-tools .action::before{content:"";position:absolute;left:20px;top:18px;width:24px;height:5px;border-radius:8px;background:var(--accent);box-shadow:10px 0 0 var(--hero-line)}
.teacher-tools .action::after{content:"↗";position:absolute;right:20px;top:17px;color:var(--accent);opacity:.65}
.teacher-tools .action:hover::after{opacity:1}
.variant-builder>.card,.homework-builder>.card,.form-card{border-top:2px solid var(--accent)}
.variant-builder input:focus,.variant-builder select:focus,.homework-builder input:focus,.homework-builder select:focus,.form-card input:focus,.form-card select:focus,.form-card textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--hero-glow);outline:none}
@media (prefers-reduced-motion: reduce){.topic-row .topic-arrow{transition:none}}
@media(max-width:650px){.page-intro{padding:20px 18px;margin-bottom:20px}.page-intro::after{opacity:.2}.page-intro.heading-row{min-height:0}.teacher-tools .action{min-height:108px}}

/* Public introduction and sign-in share the app's light and dark palettes. */
.guest-login{padding:8px 14px;font-size:.9rem}
.landing-hero{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(290px,.85fr);align-items:center;gap:36px;padding:clamp(30px,5vw,58px);border:1px solid var(--border);border-radius:24px;background:radial-gradient(circle at 85% 6%,var(--hero-glow),transparent 38%),linear-gradient(135deg,var(--surface),var(--surface-hover));box-shadow:0 18px 42px var(--shadow-color)}
.landing-hero::after{content:"";position:absolute;z-index:-1;right:-56px;top:-122px;width:300px;height:300px;border:1px solid var(--hero-line);border-radius:50%;box-shadow:0 0 0 42px var(--hero-line),0 0 0 96px var(--hero-line);opacity:.45;pointer-events:none}
.landing-hero h1{max-width:590px;font-size:clamp(2.25rem,5vw,3.65rem);line-height:1.08;letter-spacing:-.055em;margin:0 0 22px}
.landing-lead{max-width:580px;color:var(--text-soft);font-size:1.08rem;line-height:1.7}
.landing-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin:27px 0}.landing-actions .button{padding:13px 19px}
.landing-text-link{font-weight:650}.landing-focus{margin:0;color:var(--muted);font-size:.9rem}
.landing-path{padding:20px 24px;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:0 12px 30px var(--shadow-color)}
.landing-path-label{display:block;margin-bottom:12px;color:var(--accent);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em}
.landing-path div{display:flex;align-items:center;gap:14px;padding:17px 0;border-top:1px solid var(--border-subtle);font-weight:650}
.landing-path b{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--badge-bg);color:var(--badge-text);font-size:.78rem}
.landing-section{margin:62px 0}.landing-section-heading{max-width:600px;margin-bottom:25px}.landing-section-heading h2{font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.035em}.landing-section-heading p:last-child{margin:0}
.landing-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.landing-feature{min-height:180px;padding:24px;border-top:2px solid var(--accent)}
.landing-feature>span{color:var(--accent);font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.landing-feature h3{font-size:1.12rem;margin:18px 0 9px}.landing-feature p{color:var(--text-soft);margin:0}
.landing-bottom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 30px}.landing-info-panel{padding:28px;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:0 8px 26px var(--shadow-color)}
.landing-info-panel h2{font-size:1.4rem;letter-spacing:-.025em}.landing-info-panel p:not(.page-kicker){color:var(--text-soft)}.landing-info-panel .button{margin-top:5px}.landing-collab{background:linear-gradient(145deg,var(--surface),var(--surface-hover))}.landing-collab>a{font-weight:700}
.login-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,440px);align-items:center;gap:clamp(28px,5vw,70px);max-width:960px;margin:clamp(28px,8vh,86px) auto}.login-intro h1{font-size:clamp(2rem,4vw,3rem);letter-spacing:-.045em}.login-intro p:not(.page-kicker){font-size:1.04rem}.login-intro>a{font-weight:700}
.login-card{padding:30px;border-top:3px solid var(--accent);box-shadow:0 16px 40px var(--shadow-color)}.login-card h2{font-size:1.35rem;margin-bottom:22px}.login-card label{display:block;font-weight:650;margin:16px 0 6px}.login-card button[type=submit]{width:100%;margin-top:24px}.login-contact{border-top:1px solid var(--border-subtle);padding-top:17px;margin:21px 0 0;color:var(--muted);font-size:.9rem}.login-contact a{font-weight:700}
@media(max-width:760px){.landing-hero,.login-layout{grid-template-columns:1fr}.landing-hero{gap:28px}.landing-path{max-width:560px}.landing-feature-grid,.landing-bottom-grid{grid-template-columns:1fr}.login-layout{margin:18px auto}.login-intro{max-width:620px}}
@media(max-width:650px){.guest-login{margin-left:auto}.theme-toggle{margin-left:0}.landing-hero{padding:25px 20px;border-radius:18px}.landing-section{margin:42px 0}.landing-feature{min-height:0}.landing-info-panel{padding:23px}.login-card{padding:23px}}
/* First-visit product tour. */
.onboarding-replay{margin:32px 0 0;text-align:right}.onboarding-replay button{font-size:.9rem}
.onboarding-dialog{width:min(720px,calc(100% - 28px));max-height:min(90vh,760px);padding:0;border:1px solid var(--border);border-radius:20px;background:var(--surface);color:var(--text);box-shadow:0 28px 90px #0008;overflow:auto}
.onboarding-dialog::backdrop{background:rgba(4,15,12,.76);backdrop-filter:blur(5px)}
.onboarding-shell{padding:clamp(20px,4vw,34px)}.onboarding-top,.onboarding-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px}.onboarding-top .page-kicker{margin:0}.onboarding-close{border:0;background:transparent;color:var(--muted);font:inherit;font-size:1.9rem;line-height:1;cursor:pointer}.onboarding-close:hover{color:var(--text)}
.onboarding-progress{display:flex;gap:7px;margin:18px 0 24px}.onboarding-progress span{height:5px;flex:1;border-radius:99px;background:var(--border)}.onboarding-progress span.active{background:var(--accent)}
.onboarding-step[hidden]{display:none}.onboarding-step h2{font-size:clamp(1.35rem,3vw,1.9rem);line-height:1.2;margin:0 0 12px}.onboarding-step p:last-child{color:var(--text-soft);margin:0 0 24px}.onboarding-eyebrow{color:var(--accent);font-size:.8rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase;margin:0 0 8px!important}
.onboarding-visual{height:190px;padding:22px;border:1px solid var(--border);border-radius:14px;background:radial-gradient(circle at 80% 10%,var(--badge-bg),transparent 45%),var(--page);margin-bottom:22px;display:grid;place-items:center;overflow:hidden}
.onboarding-mini-header,.onboarding-mini-grid,.onboarding-mini-task,.onboarding-mini-builder,.onboarding-mini-homework,.onboarding-mini-result{width:min(100%,420px)}.onboarding-mini-header{font-weight:800;display:flex;justify-content:space-between;border-bottom:1px solid var(--border);padding:4px 0 10px}.onboarding-mini-header i{color:var(--accent);font-size:.65rem;letter-spacing:.35em}.onboarding-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.onboarding-mini-grid span,.onboarding-mini-task,.onboarding-mini-builder span,.onboarding-mini-homework,.onboarding-mini-result{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px;box-shadow:0 8px 24px var(--shadow-color)}.onboarding-mini-grid span{color:var(--accent);font-size:.78rem}.onboarding-mini-grid b{color:var(--text);font-size:.85rem}.onboarding-mini-task>span{display:flex;justify-content:space-between;font-weight:700}.onboarding-mini-task b{font-size:.7rem;color:var(--muted)}.onboarding-mini-lines{height:12px;width:75%;background:var(--border);border-radius:4px;margin:18px 0}.onboarding-mini-answer{border-top:1px solid var(--border);padding-top:9px;color:var(--accent);font-size:.8rem}.onboarding-mini-builder{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.onboarding-mini-builder span{font-size:.8rem;white-space:nowrap}.onboarding-mini-builder b{color:var(--accent)}.onboarding-mini-builder em,.onboarding-mini-result em{grid-column:1/-1;background:var(--button);color:var(--on-button);font-style:normal;text-align:center;padding:7px;border-radius:7px;font-size:.8rem}.onboarding-mini-homework>span,.onboarding-mini-result>strong{font-weight:750}.onboarding-mini-homework div,.onboarding-mini-result div{display:flex;justify-content:space-between;border-top:1px solid var(--border);padding:6px 0;font-size:.8rem}.onboarding-mini-homework b,.onboarding-mini-result b{color:var(--accent)}.onboarding-mini-result em{display:block;margin-top:4px}
.onboarding-bottom{border-top:1px solid var(--border);padding-top:18px}.onboarding-bottom>div{display:flex;gap:9px;align-items:center}.onboarding-counter{color:var(--muted);font-size:.9rem}.onboarding-skip{border:0;background:transparent;color:var(--muted);font:inherit;cursor:pointer;padding:9px}.onboarding-skip:hover{color:var(--text)}.onboarding-bottom .button{cursor:pointer}
@media(prefers-reduced-motion:no-preference){.onboarding-step.onboarding-animate{animation:onboarding-in .35s ease both}.onboarding-step.onboarding-animate .onboarding-visual>div{animation:onboarding-rise .55s ease both}@keyframes onboarding-in{from{opacity:.25}to{opacity:1}}@keyframes onboarding-rise{from{opacity:.5;transform:translateY(14px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}}
@media(max-width:520px){.onboarding-visual{height:160px;padding:12px}.onboarding-mini-grid b{font-size:.7rem}.onboarding-mini-builder span{font-size:.65rem;padding:8px}.onboarding-bottom{align-items:flex-start}.onboarding-bottom>div{flex-wrap:wrap;justify-content:flex-end}.onboarding-skip{order:3}.onboarding-dialog{max-height:92vh}}
.onboarding-dialog{height:min(640px,calc(100dvh - 28px));max-height:none;overflow:hidden}.onboarding-shell{height:100%;min-height:0;display:flex;flex-direction:column}.onboarding-step{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}.onboarding-bottom{flex:none}.onboarding-visual{position:relative;isolation:isolate}.onboarding-visual::before{content:"";position:absolute;width:190px;height:190px;z-index:-1;border-radius:50%;background:var(--card-glow);filter:blur(32px);left:calc(50% - 95px);top:0}.onboarding-welcome-visual{background:radial-gradient(circle at 50% 50%,var(--badge-bg),var(--page) 65%)}.onboarding-welcome-mark{display:grid;gap:8px;text-align:center}.onboarding-welcome-mark span{font-size:clamp(2.1rem,7vw,3.4rem);font-weight:850;letter-spacing:-.05em;color:var(--accent)}.onboarding-welcome-mark i{font-size:.85rem;font-style:normal;color:var(--text-soft);letter-spacing:.05em}.onboarding-progress span{transition:background-color .28s ease,box-shadow .28s ease}.onboarding-progress span.active{box-shadow:0 0 10px var(--card-glow)}
@media(prefers-reduced-motion:no-preference){.onboarding-dialog[open]{animation:onboarding-dialog-enter .35s cubic-bezier(.2,.8,.2,1) both}.onboarding-dialog[open]::backdrop{animation:onboarding-backdrop-enter .35s ease both}.onboarding-visual::before{animation:onboarding-pulse 3s ease-in-out infinite alternate}@keyframes onboarding-dialog-enter{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes onboarding-backdrop-enter{from{opacity:0}to{opacity:1}}@keyframes onboarding-pulse{from{opacity:.48;transform:scale(.8)}to{opacity:1;transform:scale(1.18)}}}
@media(max-width:520px){.onboarding-dialog{height:calc(100dvh - 20px)}.onboarding-shell{padding:18px}.onboarding-visual{height:150px}.onboarding-step h2{font-size:1.3rem}}
.paper-catalog-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.paper-catalog-row p{margin:.35rem 0 0}
.paper-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.paper-answer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin:1.5rem 0}
.paper-answer-card{display:grid;gap:.7rem}
.paper-answer-card label,.paper-result-card label{display:grid;gap:.35rem}
.paper-result-card{display:grid;gap:.6rem}
.paper-result-card p{margin:.2rem 0}
.paper-work{white-space:pre-wrap}
@media(max-width:700px){.paper-catalog-row{align-items:flex-start;flex-direction:column}}

/* Short practice game. */
.student-game-link{margin-bottom:20px}
.game-intro{margin-bottom:20px}.game-score-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 32px}.game-score{display:grid;gap:3px;background:linear-gradient(140deg,var(--surface),var(--surface-hover))}.game-score>span{color:var(--text-soft);font-weight:650}.game-score strong{font-size:2.4rem;line-height:1.2;color:var(--accent);font-variant-numeric:tabular-nums}.game-score small{margin:0}.game-block-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.game-block{min-height:210px;display:flex;flex-direction:column;gap:7px;color:var(--text);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.game-block:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 12px 30px var(--shadow-color);text-decoration:none}.game-block strong{font-size:1.15rem}.game-block>span:not(.game-block-mark){color:var(--text-soft);font-size:.93rem}.game-block small{margin-top:auto}.game-block-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--badge-bg);color:var(--accent);font-size:1.45rem;font-weight:750}.game-week-note{margin-top:22px}.game-question{max-width:740px;padding:clamp(22px,4vw,36px)}.game-question-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.game-question h2{font-size:clamp(1.4rem,3vw,2rem);line-height:1.35;margin:0 0 28px}.game-question label{display:block;font-weight:650;margin:0 0 8px}.game-question input[type=text]{max-width:390px;margin-bottom:18px}.game-options{border:0;padding:0;margin:0 0 18px}.game-options legend{font-weight:650;margin-bottom:10px}.game-options label{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;margin-bottom:8px;cursor:pointer}.game-options label:hover,.game-options label:has(input:checked){border-color:var(--accent);background:var(--surface-hover)}.game-options input{accent-color:var(--accent)}.game-feedback{max-width:740px;margin-bottom:16px;border-left:4px solid var(--error)}.game-feedback.game-correct{border-left-color:var(--accent)}.game-feedback-label{font-weight:800;color:var(--error)}.game-correct .game-feedback-label{color:var(--accent)}.game-feedback p{margin:9px 0}.game-feedback p:last-child{margin-bottom:0;color:var(--text-soft)}.game-finished{max-width:740px}
@media(max-width:740px){.game-block-grid{grid-template-columns:1fr}.game-block{min-height:150px}.game-score-grid{gap:9px}.game-score{padding:16px}.game-score strong{font-size:1.9rem}}@media(prefers-reduced-motion:reduce){.game-block{transition:none}.game-block:hover{transform:none}}

/* Compact, single-row site navigation. */
.topbar{position:relative;z-index:30}.topbar-inner{min-height:68px;gap:clamp(12px,2vw,26px);flex-wrap:nowrap}
.topbar-nav{display:flex;align-items:center;gap:clamp(4px,1vw,14px);flex-wrap:nowrap;min-width:0}
.topbar-nav>a,.topbar-dropdown>summary{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:8px 12px;border-radius:10px;color:var(--text-soft);font-size:.92rem;font-weight:650;white-space:nowrap;cursor:pointer}
.topbar-nav>a:hover,.topbar-dropdown>summary:hover,.topbar-nav>a[aria-current="page"],.topbar-dropdown[open]>summary{color:var(--accent);background:var(--surface-hover);text-decoration:none}
.topbar-dropdown{position:relative}.topbar-dropdown>summary{list-style:none;touch-action:manipulation}.topbar-dropdown>summary::-webkit-details-marker{display:none}
.topbar-dropdown:not([open])>.topbar-menu{display:none}
.topbar-dropdown[open]::after{content:"";position:absolute;top:100%;left:0;right:0;height:7px}
.topbar-dropdown>summary>span[aria-hidden="true"]:last-child{font-size:1.05rem;line-height:1}.topbar-menu{position:absolute;top:calc(100% + 7px);left:0;min-width:198px;display:grid;gap:2px;padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 36px var(--shadow-color)}
.topbar-dropdown>summary{transition:background-color .18s ease,color .18s ease,box-shadow .18s ease}
.topbar-dropdown[open]>summary{box-shadow:inset 0 0 0 1px var(--hero-line),0 0 16px var(--hero-glow)}
.topbar-dropdown>summary>span[aria-hidden="true"]:last-child{display:inline-block;transition:transform .2s ease}
.topbar-dropdown[open]>summary>span[aria-hidden="true"]:last-child{transform:rotate(180deg)}
.topbar-dropdown .topbar-menu{min-width:220px;padding:9px;background:radial-gradient(circle at 90% 0,var(--hero-glow),transparent 65%),var(--surface);border-color:var(--field-border);box-shadow:0 18px 42px var(--shadow-color),0 0 0 1px var(--hero-line)}
.topbar-dropdown .topbar-menu>a,.topbar-dropdown .topbar-menu .text-button{transition:background-color .16s ease,color .16s ease,transform .16s ease}
.topbar-dropdown .topbar-menu>a:hover,.topbar-dropdown .topbar-menu .text-button:hover{transform:translateX(3px)}
@media(prefers-reduced-motion:no-preference){.topbar-dropdown[open]>.topbar-menu{transform-origin:top center;animation:topbar-menu-enter .19s cubic-bezier(.2,.8,.2,1) both}@keyframes topbar-menu-enter{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}}
@media(prefers-reduced-motion:reduce){.topbar-dropdown>summary,.topbar-dropdown>summary>span[aria-hidden="true"]:last-child,.topbar-dropdown .topbar-menu>a,.topbar-dropdown .topbar-menu .text-button{transition:none}.topbar-dropdown .topbar-menu>a:hover,.topbar-dropdown .topbar-menu .text-button:hover{transform:none}}
.topbar-menu>a,.topbar-menu .text-button{display:block;width:100%;padding:10px 12px;border-radius:7px;color:var(--text);font-size:.91rem;font-weight:550;text-align:left;text-decoration:none}
.topbar-menu>a:hover,.topbar-menu .text-button:hover{background:var(--surface-hover);color:var(--accent);text-decoration:none}
.topbar-profile{margin-left:auto}.topbar-profile>summary{border:1px solid var(--border);background:var(--surface);padding:5px 9px 5px 6px;max-width:198px}
.topbar-avatar{display:grid;place-items:center;width:29px;height:29px;flex:none;border-radius:8px;background:var(--badge-bg);color:var(--badge-text);font-size:.85rem;font-weight:800}
.topbar-username{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-profile-menu{right:0;left:auto;min-width:210px}.topbar-profile-caption{padding:7px 12px;border-bottom:1px solid var(--border-subtle);color:var(--muted);font-size:.82rem;overflow-wrap:anywhere}
.topbar-profile-menu .theme-toggle{margin:0;width:100%;justify-content:flex-start;padding:10px 12px;border:0;border-radius:7px;background:transparent;color:var(--text);font-size:.91rem;font-weight:550}
.topbar-profile-menu .theme-toggle:hover{transform:none;box-shadow:none;background:var(--surface-hover);color:var(--accent)}
.topbar-profile-menu .logout{margin:0;border-top:1px solid var(--border-subtle);padding-top:5px}.topbar-profile-menu .logout button[type=submit]{background:transparent;color:var(--text);font-weight:550;box-shadow:none;transform:none}
.topbar-profile-menu .logout button[type=submit]:hover{background:var(--surface-hover);color:var(--accent)}
.topbar-mobile{display:none}.topbar .guest-login{margin-left:auto}.topbar .guest-login+.theme-toggle{margin-left:0}
@media(max-width:780px){.topbar-nav{display:none}.topbar-mobile{display:block;margin-left:auto}.topbar-mobile .topbar-menu{left:auto;right:0;min-width:230px}.topbar-profile{margin-left:0}.topbar-mobile .topbar-menu,.topbar-profile .topbar-menu{max-width:calc(100vw - 32px);max-height:min(70vh,520px);overflow-y:auto}.topbar-dropdown[open]>.topbar-menu{animation:none}}
@media(max-width:480px){.topbar-inner{padding-top:8px;padding-bottom:8px}.topbar-mobile>summary span{display:none}.topbar-username{display:none}.topbar-profile>summary{gap:4px}.topbar-profile .theme-label{display:inline}.topbar-profile .theme-toggle{height:auto}.topbar .guest-login+.theme-toggle{width:38px}}
.paper-topic-section{margin:20px 0 26px}.paper-section-heading{margin:28px 0 14px}
.paper-source-filter{margin:26px 0 30px}.paper-source-filter a{min-height:40px}.paper-source-filter a span{font-variant-numeric:tabular-nums}

/* Shared finish for content pages, cards and forms. */
body{background:radial-gradient(ellipse 900px 380px at 50% 0,var(--hero-glow),transparent 75%),var(--page)}
a.card:hover,a.card:focus-visible{border-color:var(--accent);box-shadow:0 12px 30px var(--shadow-color),0 0 0 1px var(--hero-line),0 0 22px var(--hero-glow);text-decoration:none}
.card:focus-within{border-color:var(--field-border)}
input:not([type=checkbox]):not([type=hidden]):focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--hero-glow);outline:none}
.button,button[type=submit]:not(.text-button){box-shadow:0 4px 12px var(--shadow-color)}
.variant-review-table tbody tr,.variant-result-table tbody tr{transition:background-color .18s ease}
.variant-review-table tbody tr:hover,.variant-result-table tbody tr:hover{background:var(--surface-hover)}
@media(prefers-reduced-motion:no-preference){
  html.page-entering main{animation:page-appear .26s cubic-bezier(.2,.8,.2,1) both}
  html.page-leaving main{animation:page-leave .14s ease-in both;pointer-events:none}
  @keyframes page-appear{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
  @keyframes page-leave{to{opacity:0;transform:translateY(-5px)}}
}

/* Variant library, scores and game progress. */
:root{--result-warning:#8a5d0e;--result-warning-bg:#fff4d9}
html[data-theme="dark"]{--result-warning:#f0c875;--result-warning-bg:#3a321e}
.paper-side-section{margin-bottom:12px}.paper-side-section h2{margin-bottom:8px}.paper-mini-list{display:grid;max-height:220px;overflow:auto}.paper-mini-list a{display:flex;justify-content:space-between;gap:16px;padding:10px 2px;border-top:1px solid var(--border-subtle);color:var(--text);font-size:.9rem}.paper-mini-list a:hover{color:var(--accent);text-decoration:none}.paper-mini-list span{color:var(--muted);white-space:nowrap}
.paper-section-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:8px 0 14px}.paper-section-head .page-kicker{margin:0 0 4px}.paper-section-head h2{font-size:1.35rem;letter-spacing:-.02em;margin:0}.paper-section-head>.muted{font-size:.9rem;white-space:nowrap}.paper-section-heading{margin-top:32px}
.paper-catalog-list{gap:12px}.paper-catalog-row{min-height:132px;border-left:3px solid var(--hero-line);padding:19px 22px}.paper-catalog-row:hover{border-left-color:var(--accent)}.paper-catalog-info{min-width:0}.paper-catalog-tags{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:9px}.paper-catalog-tags .badge{font-weight:700}.paper-meta-chip,.paper-state{display:inline-flex;align-items:center;min-height:27px;padding:3px 9px;border:1px solid var(--border);border-radius:99px;color:var(--muted);font-size:.78rem;font-weight:650}.paper-state-done{color:var(--accent);border-color:var(--hero-line);background:var(--badge-bg)}.paper-state-assigned{color:var(--result-warning);border-color:var(--result-warning);background:var(--result-warning-bg)}.paper-catalog-info h3{font-size:1.08rem;line-height:1.3;margin:0 0 5px}.paper-catalog-info p{font-size:.9rem;margin:0;color:var(--muted)}.paper-actions{justify-content:flex-end;flex:none}.paper-actions>a:not(.button){font-size:.9rem;font-weight:650}.paper-empty{padding:26px}.paper-empty p{margin:7px 0 0;color:var(--muted)}
.score-progress,.game-progress{display:block;width:100%;height:10px;overflow:hidden;border:0;border-radius:99px;background:var(--border-subtle);accent-color:var(--accent)}.score-progress::-webkit-progress-bar,.game-progress::-webkit-progress-bar{background:var(--border-subtle);border-radius:99px}.score-progress::-webkit-progress-value,.game-progress::-webkit-progress-value{background:linear-gradient(90deg,var(--button),var(--accent));border-radius:99px}.score-progress::-moz-progress-bar,.game-progress::-moz-progress-bar{background:var(--accent);border-radius:99px}
.paper-score-panel{padding:24px 28px;margin-bottom:18px;background:radial-gradient(circle at 90% 0,var(--hero-glow),transparent 48%),var(--surface)}.paper-score-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px}.paper-score-heading>div{display:grid;gap:3px}.paper-score-heading .page-kicker{margin:0}.paper-score-heading strong,.variant-score-top strong{font-size:clamp(2rem,5vw,3rem);line-height:1.1;color:var(--accent);font-variant-numeric:tabular-nums}.paper-score-heading strong small,.variant-score-top strong small{display:inline;font-size:.45em;font-weight:600;color:var(--muted)}.paper-score-heading span:not(.page-kicker){color:var(--muted)}.paper-score-secondary{padding:10px 20px;border-left:1px solid var(--border);text-align:right}.paper-score-panel>.muted{margin:12px 0 0;font-size:.9rem}.paper-score-panel>a{display:inline-block;margin-top:12px}
.paper-result-nav{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.paper-result-nav a{display:grid;place-items:center;width:39px;height:39px;border:1px solid var(--border);border-radius:10px;color:var(--text);background:var(--surface);font-size:.88rem;font-weight:750;font-variant-numeric:tabular-nums}.paper-result-nav a:hover,.paper-result-nav a:focus-visible{transform:translateY(-2px);text-decoration:none;box-shadow:0 5px 14px var(--shadow-color)}.paper-result-nav .is-correct{color:var(--accent);border-color:var(--accent);background:var(--badge-bg)}.paper-result-nav .is-wrong{color:var(--error);border-color:var(--error)}.paper-result-nav .is-partial{color:var(--result-warning);border-color:var(--result-warning);background:var(--result-warning-bg)}.paper-result-nav .is-pending{border-style:dashed;color:var(--muted)}.paper-result-card{scroll-margin-top:24px;border-left:3px solid var(--border)}.paper-result-correct{border-left-color:var(--accent)}.paper-result-wrong{border-left-color:var(--error)}.paper-result-partial{border-left-color:var(--result-warning)}.paper-result-pending{border-left-style:dashed}.paper-question-score{font-size:.88rem;color:var(--text-soft)}
.variant-score-hero{display:grid;gap:17px;margin-bottom:16px;padding:24px 28px;background:radial-gradient(circle at 92% 0,var(--hero-glow),transparent 48%),var(--surface)}.variant-score-top{display:flex;align-items:center;justify-content:space-between}.variant-score-top>div{display:grid;gap:3px}.variant-score-top .page-kicker{margin:0}.variant-score-top span:not(.page-kicker){color:var(--muted)}.variant-score-mark{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--badge-bg);color:var(--accent)!important;font-size:1.7rem;font-weight:800}.variant-score-hero p{margin:0;font-size:.9rem}.variant-result-table tbody tr.result-row-correct th:first-child{box-shadow:inset 3px 0 var(--accent)}.variant-result-table tbody tr.result-row-wrong th:first-child{box-shadow:inset 3px 0 var(--error)}
.game-block .game-progress{height:8px;margin-top:auto}.game-block .game-progress+small{margin-top:3px}.game-intro .game-progress{max-width:440px;margin-top:15px}.game-feedback{position:relative;overflow:hidden}.game-feedback-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.game-feedback-icon{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--badge-bg);color:var(--accent);font-size:1.35rem;font-weight:800}.game-wrong .game-feedback-icon{background:color-mix(in srgb,var(--error) 13%,var(--surface));color:var(--error)}.game-feedback .game-feedback-label{font-size:1.08rem}.game-question .badge{font-weight:750}
@media(prefers-reduced-motion:no-preference){.paper-result-nav a{transition:transform .18s ease,box-shadow .18s ease}.game-feedback{animation:game-result-enter .28s cubic-bezier(.2,.8,.2,1) both}@keyframes game-result-enter{from{opacity:.35;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}
@media(max-width:700px){.paper-catalog-row{align-items:stretch;min-height:0;padding:17px}.paper-actions{justify-content:flex-start}.paper-mini-list a{flex-direction:column;gap:2px}.paper-score-panel,.variant-score-hero{padding:20px}.paper-score-secondary{padding:8px 0 8px 14px}.paper-section-head{align-items:start}.paper-section-head>.muted{font-size:.8rem}}

/* Cohesive dashboards and working lists. */
.dashboard-intro{margin-bottom:18px}.dashboard-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:0 0 34px}.dashboard-shortcut{position:relative;display:grid;align-content:start;gap:5px;min-height:158px;padding:20px 22px;color:var(--text)}.dashboard-shortcut-icon{display:grid;place-items:center;width:34px;height:34px;margin-bottom:7px;border-radius:10px;background:var(--badge-bg);color:var(--accent);font-size:1.25rem;font-weight:800}.dashboard-shortcut strong{font-size:1.05rem}.dashboard-shortcut small{margin:0}.dashboard-shortcut-arrow{position:absolute;right:19px;top:18px;color:var(--accent);font-size:1.05rem;transition:transform .2s ease}.dashboard-shortcut:hover .dashboard-shortcut-arrow{transform:translate(2px,-2px)}
.dashboard-section{margin:30px 0 36px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:0 0 14px}.section-heading .page-kicker{margin:0 0 3px}.section-heading h2{font-size:1.35rem;letter-spacing:-.02em;margin:0}.section-count{display:grid;place-items:center;min-width:34px;height:34px;padding:0 9px;border-radius:10px;background:var(--badge-bg);color:var(--badge-text);font-weight:750;font-variant-numeric:tabular-nums}.dashboard-assignment{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:78px;border-left:3px solid var(--hero-line)}a.dashboard-assignment:hover,.dashboard-assignment:focus-within{border-left-color:var(--accent)}.dashboard-assignment>span:first-child{min-width:0}.dashboard-assignment strong{display:block;overflow-wrap:anywhere}.dashboard-assignment small{margin-top:4px}.dashboard-row-action{white-space:nowrap;font-weight:700}.dashboard-row-end{display:flex;align-items:center;gap:15px;white-space:nowrap}.dashboard-footer-link{margin:4px 0 28px;text-align:right;font-weight:700}
.dashboard-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 33px}.dashboard-metric{display:grid;gap:5px;padding:19px 22px;background:radial-gradient(circle at 95% 0,var(--hero-glow),transparent 60%),var(--surface)}.dashboard-metric>span{color:var(--muted);font-weight:650}.dashboard-metric strong{font-size:clamp(1.9rem,4vw,2.5rem);line-height:1.15;color:var(--accent);font-variant-numeric:tabular-nums}.dashboard-metric a{width:fit-content;font-size:.9rem;font-weight:700}
.empty-state{display:flex;align-items:flex-start;gap:17px;padding:25px 27px;border-style:dashed;background:linear-gradient(135deg,var(--surface),var(--surface-hover))}.empty-state-mark{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:12px;background:var(--badge-bg);color:var(--accent);font-size:1.5rem;font-weight:750}.empty-state strong{font-size:1.03rem}.empty-state p{margin:5px 0 0;color:var(--muted)}.empty-state a{display:inline-block;margin-top:12px;font-weight:700}
.variant-history-list{gap:12px}.variant-history-row{border-left:3px solid var(--hero-line);min-height:105px}.variant-history-row:hover{border-left-color:var(--accent)}.variant-history-kicker{display:block;margin-bottom:4px;color:var(--accent);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.variant-history-row .variant-list-row strong{display:block;font-size:1.06rem;color:var(--text)}.variant-history-meta{display:flex;flex-wrap:wrap;gap:7px 13px;margin-top:8px;color:var(--muted);font-size:.82rem}.variant-history-meta span+span::before{content:"·";margin-right:13px;color:var(--field-border)}.variant-history-actions .button{padding:8px 13px;font-size:.9rem}
.catalog-numbers>.grid{gap:14px}.catalog-numbers .exam-card{min-height:158px;padding:20px 22px}.catalog-numbers .exam-card strong{line-height:1.35}.catalog-numbers .exam-card small{border-top:1px solid var(--border-subtle);margin-top:auto;padding-top:11px}
.form-card,.variant-builder>.card,.homework-builder>.card{box-shadow:0 8px 24px var(--shadow-color)}
@media(max-width:760px){.dashboard-shortcuts{grid-template-columns:1fr}.dashboard-shortcut{min-height:108px;padding:17px 20px;grid-template-columns:34px minmax(0,1fr);column-gap:13px}.dashboard-shortcut-icon{grid-row:span 2;margin:0}.dashboard-shortcut strong,.dashboard-shortcut small{grid-column:2}.dashboard-metrics{gap:9px}}
@media(max-width:560px){.dashboard-assignment{align-items:flex-start;flex-direction:column;gap:10px}.dashboard-row-end{width:100%;justify-content:space-between}.dashboard-metric{padding:16px}.variant-history-meta span+span::before{margin-right:8px}.empty-state{padding:19px}}

/* Motion that confirms scoring and selection without delaying the next action. */
.variant-rule{border-left:3px solid transparent;padding-left:12px;padding-right:12px;border-radius:10px;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}.variant-rule.is-configured{border-left-color:var(--accent);background:var(--surface-hover)}.variant-rule:focus-within{box-shadow:0 0 0 2px var(--hero-line)}.variant-rule.has-topic{background:var(--badge-bg)}.variant-builder-bottom{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:16px}.variant-builder-summary{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.9rem}.variant-builder-summary strong{display:grid;place-items:center;min-width:36px;height:36px;padding:0 9px;border-radius:10px;background:var(--badge-bg);color:var(--badge-text);font-size:1.1rem;font-variant-numeric:tabular-nums}
.quick-number-group{border-left:3px solid transparent;padding-left:9px;margin-left:-12px;border-radius:8px;transition:background-color .2s ease,border-color .2s ease}.quick-number-group.is-selected{border-left-color:var(--accent);background:var(--surface-hover)}.quick-number-group.is-selected .quick-count-label{color:var(--accent);font-weight:700}.quick-topic-choice:has(input:not(:checked)){color:var(--muted)}
@media(prefers-reduced-motion:no-preference){
  .paper-result-nav a,.variant-result-table tbody tr{animation:score-item-in .28s ease-out both}
  .paper-result-nav a:nth-child(3n+2),.variant-result-table tbody tr:nth-child(3n+2){animation-delay:.04s}
  .paper-result-nav a:nth-child(3n+3),.variant-result-table tbody tr:nth-child(3n+3){animation-delay:.08s}
  @keyframes score-item-in{from{opacity:.45;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
  .game-correct .game-feedback-icon{animation:game-correct-pop .42s cubic-bezier(.2,.9,.3,1.2) both}
  .game-wrong .game-feedback-icon{animation:game-wrong-nudge .28s ease both}
  @keyframes game-correct-pop{from{transform:scale(.65)}65%{transform:scale(1.14)}to{transform:scale(1)}}
  @keyframes game-wrong-nudge{0%,100%{transform:translateX(0)}30%{transform:translateX(-3px)}65%{transform:translateX(3px)}}
  .task-answer[open]>.task-answer-body,.variant-task details[open]>.text-content,.paper-result-card details[open]>.paper-work{animation:solution-content-in .22s ease-out both}
  @keyframes solution-content-in{from{opacity:.25;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
}
@supports (interpolate-size:allow-keywords){
  .task-answer,.variant-task details,.paper-result-card details{interpolate-size:allow-keywords}
  .task-answer::details-content,.variant-task details::details-content,.paper-result-card details::details-content{block-size:0;overflow:hidden;transition:block-size .24s ease,content-visibility .24s allow-discrete}
  .task-answer[open]::details-content,.variant-task details[open]::details-content,.paper-result-card details[open]::details-content{block-size:auto}
}

/* Page navigation and action confirmations. */
@media(prefers-reduced-motion:no-preference){.content-reveal-pending{opacity:0}}
@media print{.content-reveal-pending{opacity:1!important}}
@media(prefers-reduced-motion:no-preference){
  .quick-variant-dialog[open]{animation:builder-dialog-in .25s cubic-bezier(.2,.8,.2,1) both}
  .quick-variant-dialog[open]::backdrop{animation:builder-backdrop-in .25s ease both}
  @keyframes builder-dialog-in{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
  @keyframes builder-backdrop-in{from{opacity:0}to{opacity:1}}
  .notice{animation:notice-arrive .3s ease-out both}
  @keyframes notice-arrive{from{opacity:.3;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}
  [data-submit-feedback] button[aria-busy="true"]::after{animation:submit-spin .7s linear infinite}
  @keyframes submit-spin{to{transform:rotate(360deg)}}
}
.notice{display:flex;align-items:center;gap:11px;border:1px solid var(--border);box-shadow:0 6px 18px var(--shadow-color);color:var(--text)}
.notice[data-status="success"]{border-color:var(--accent);background:var(--notice)}
.notice[data-status="error"]{border-color:var(--error)}
.notice-mark{display:grid;place-items:center;flex:none;width:27px;height:27px;border-radius:50%;background:var(--badge-bg);color:var(--accent);font-weight:800}
.notice[data-status="error"] .notice-mark{background:color-mix(in srgb,var(--error) 13%,var(--surface));color:var(--error)}
[data-submit-feedback] button[aria-busy="true"]{cursor:progress;opacity:.85}
[data-submit-feedback] button[aria-busy="true"]::after{content:"";display:inline-block;width:12px;height:12px;margin-left:10px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-1px}
.homework-result-summary{display:grid;gap:17px;padding:23px 28px;margin:0 0 22px;background:radial-gradient(circle at 90% 0,var(--hero-glow),transparent 50%),var(--surface)}
.homework-result-summary>div{display:grid;gap:3px}.homework-result-summary>div>span{color:var(--muted);font-weight:650}.homework-result-summary strong{font-size:clamp(2rem,5vw,3rem);line-height:1.1;color:var(--accent);font-variant-numeric:tabular-nums}.homework-result-summary strong small{display:inline;color:var(--muted);font-size:.45em}
