.ex-shell{min-height:100dvh;display:flex;flex-direction:column;background:var(--color-canvas);color:var(--color-ink-700)}.ex-header{position:sticky;top:0;z-index:30;height:56px;flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;padding-inline:12px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}@media(min-width:768px){.ex-header{padding-inline:24px;gap:16px}}.ex-header-left{min-width:0;line-height:1.25}.ex-title{font-family:var(--font-sans);letter-spacing:0;line-height:1.25;font-weight:600;color:var(--color-ink-900);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ex-section{font-size:13px;color:var(--color-ink-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ex-header-center{display:flex;justify-content:center}.ex-header-right{display:flex;align-items:center;justify-content:flex-end;gap:4px;min-width:0}@media(max-width:639px){.ex-hide-sm{display:none!important}.ex-sr-sm{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ex-section{white-space:normal;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}@media(min-width:1024px){.ex-show-sm{display:none!important}}.ex-timer-wrap{display:flex;align-items:center;gap:8px}.ex-timer{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-control);border:1px solid var(--color-border);font-size:17px;font-weight:700;color:var(--color-ink-900);font-variant-numeric:tabular-nums}.ex-timer[data-warn]{color:var(--color-warning-700);background:var(--color-warning-100);border-color:var(--color-warning-700)}.ex-save{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-ink-500);white-space:nowrap}.ex-save[data-status=saved]{color:var(--color-success-700)}.ex-save[data-status=retrying],.ex-save[data-status=offline]{color:var(--color-warning-700)}@media(max-width:1023px){.ex-save-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}.ex-banner{display:flex;align-items:flex-start;gap:8px;padding:10px 16px;font-size:14px;background:var(--color-warning-100);color:var(--color-warning-700);border-bottom:1px solid var(--color-warning-700)}.ex-banner-sticky{position:sticky;top:56px;z-index:29}.ex-keys{margin-top:16px;font-size:12px;line-height:1.9;color:var(--color-ink-500)}.ex-keys-title{font-weight:600;color:var(--color-ink-700)}.ex-keys>span{white-space:nowrap}.ex-keys kbd{display:inline-block;min-width:1.6em;padding:0 5px;border:1px solid var(--color-border);border-bottom-width:2px;border-radius:4px;background:var(--color-surface);font:inherit;font-weight:600;line-height:1.5;text-align:center;color:var(--color-ink-900)}@media(hover:none)and (pointer:coarse){.ex-keys{display:none}}.ex-body{flex:1;width:100%;max-width:var(--container-page);margin-inline:auto;padding:16px 16px 24px}@media(min-width:768px){.ex-body{padding:24px}}@media(min-width:1024px){.ex-body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:start}.ex-main{grid-column:span 8}.ex-aside{grid-column:span 4;position:sticky;top:72px;max-height:calc(100dvh - 152px);overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:16px;box-shadow:var(--shadow-depth)}}@media(max-width:1023px){.ex-aside{display:none}}.ex-main{min-width:0}.ex-footer{position:sticky;bottom:0;z-index:30;min-height:calc(64px + env(safe-area-inset-bottom));flex:none;background:var(--color-surface);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom)}@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.ex-header,.ex-footer{background:color-mix(in srgb,var(--color-surface) 82%,transparent);-webkit-backdrop-filter:blur(10px) saturate(140%);backdrop-filter:blur(10px) saturate(140%)}}.ex-footer-inner{height:64px;max-width:var(--container-page);margin-inline:auto;padding-inline:16px;display:flex;align-items:center;gap:8px}@media(min-width:768px){.ex-footer-inner{padding-inline:24px;gap:12px}}.ex-spacer{flex:1}.ex-btn{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding-inline:14px;border-radius:var(--radius-control);font-weight:600;font-size:15px;white-space:nowrap;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-ink-900);transition:background-color var(--duration-micro) var(--ease-out)}.ex-btn:hover:not(:disabled){background:var(--color-canvas)}.ex-btn:disabled{opacity:.5;cursor:not-allowed}.ex-btn-primary{background:var(--color-brand-400);border-color:var(--color-brand-400);color:var(--color-on-brand)}.ex-btn-primary:hover:not(:disabled){background:var(--color-brand-500);border-color:var(--color-brand-500)}.ex-btn-outline{color:var(--color-ink-900);border-color:var(--color-ink-700)}.ex-btn-ghost{border-color:transparent;background:transparent;color:var(--color-ink-700)}.ex-btn[aria-pressed=true]{background:var(--color-warning-100);color:var(--color-warning-700);border-color:var(--color-warning-700)}@media(max-width:479px){.ex-btn{padding-inline:10px}.ex-btn-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}.ex-question{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:16px;box-shadow:var(--shadow-depth)}@media(min-width:768px){.ex-question{padding:24px}}.ex-stimulus{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.ex-stimulus-title{font-size:16px;margin-bottom:8px}.ex-stimulus-toggle{cursor:pointer;font-weight:600;color:var(--color-ink-900);min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px;list-style:none}.ex-stimulus-toggle::-webkit-details-marker{display:none}.ex-chevron{transition:transform var(--duration-micro) var(--ease-out)}details[open]>.ex-stimulus-toggle .ex-chevron{transform:rotate(180deg)}.ex-q-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.ex-q-number{font-size:15px;font-family:var(--font-sans);font-weight:700;color:var(--color-ink-900)}.ex-muted{color:var(--color-ink-500);font-weight:500}.ex-chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;background:var(--color-canvas);border:1px solid var(--color-border);color:var(--color-ink-700);white-space:nowrap}.ex-chip-ok{background:var(--color-success-100);color:var(--color-success-700);border-color:transparent}.ex-chip-bad{background:var(--color-danger-100);color:var(--color-danger-700);border-color:transparent}.ex-chip-warn{background:var(--color-warning-100);color:var(--color-warning-700);border-color:transparent}.ex-rich{font-size:16px;line-height:1.65;color:var(--color-ink-900);overflow-wrap:anywhere;min-width:0}.ex-rich p+p,.ex-rich p+ul,.ex-rich p+ol,.ex-rich ul+p,.ex-rich ol+p{margin-top:.75em}.ex-rich ul{list-style:disc;padding-left:1.25em}.ex-rich ol{list-style:decimal;padding-left:1.25em}.ex-rich table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin-block:.75em;font-size:15px}.ex-rich th,.ex-rich td{border:1px solid var(--color-border);padding:6px 10px}.ex-rich code{font-size:.92em;background:var(--color-canvas);border-radius:4px;padding:0 4px}.ex-rich .katex-display{overflow-x:auto;overflow-y:hidden;padding-block:4px}span.ex-rich p{display:inline}.ex-stem{margin-bottom:16px}.ex-img{display:block;max-width:100%;height:auto;margin-top:12px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface)}.ex-options{display:grid;gap:8px}.ex-option{position:relative;display:flex;align-items:flex-start;gap:12px;min-height:48px;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);cursor:pointer;transition:border-color var(--duration-micro) var(--ease-out),background-color var(--duration-micro) var(--ease-out)}.ex-option:hover:not([data-readonly]){border-color:var(--color-ink-500)}.ex-option[data-checked]{border-color:var(--color-ink-900);background:var(--color-canvas)}.ex-option[data-checked]:not([data-state]){box-shadow:inset 0 0 0 1px var(--color-ink-900)}.ex-option:has(:focus-visible){outline:2px solid var(--color-brand-600);outline-offset:2px}.ex-option[data-readonly]{cursor:default}.ex-option[data-state=key]{border-color:var(--color-success-700);background:var(--color-success-100)}.ex-option[data-state=wrong]{border-color:var(--color-danger-700);background:var(--color-danger-100)}.ex-option[data-state=partial]{border-color:var(--color-warning-700);background:var(--color-warning-100)}.ex-option-input{position:absolute;opacity:0;width:1px;height:1px}.ex-option-letter{flex:none;display:grid;place-items:center;width:28px;height:28px;margin-top:1px;border-radius:50%;border:1.5px solid var(--color-ink-500);font-size:14px;font-weight:700;color:var(--color-ink-700)}.ex-option-input[type=checkbox]+.ex-option-letter{border-radius:6px}.ex-option[data-checked] .ex-option-letter{background:var(--color-ink-900);border-color:var(--color-ink-900);color:var(--color-on-accent)}.ex-option-text{min-width:0;flex:1}.ex-marks{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.ex-mark{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600}.ex-mark-ok{color:var(--color-success-700)}.ex-mark-bad{color:var(--color-danger-700)}.ex-mark-warn{color:var(--color-warning-700)}.ex-mark-exam{color:var(--color-ink-700);background:var(--color-canvas);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:0 8px}.ex-cat{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--color-border);border-radius:var(--radius-control);overflow:hidden}.ex-cat th,.ex-cat td{padding:10px 8px;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.ex-cat tr:last-child>*{border-bottom:0}.ex-cat thead th{background:var(--color-canvas);font-size:13px;font-weight:600;color:var(--color-ink-700)}.ex-cat thead th:not(:first-child),.ex-cat td{width:22%;min-width:56px;text-align:center;overflow-wrap:anywhere}.ex-cat tbody th{font-weight:400;color:var(--color-ink-900);overflow-wrap:anywhere}.ex-cat td[data-state=key]{background:var(--color-success-100)}.ex-cat td[data-state=wrong]{background:var(--color-danger-100)}.ex-cat-no{font-weight:600}.ex-cat-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:44px;min-width:44px;cursor:pointer;gap:2px}.ex-cat-cell input{width:20px;height:20px;accent-color:var(--color-ink-900)}.ex-match{display:grid;gap:12px}.ex-match-row{display:grid;gap:6px}.ex-match-left{color:var(--color-ink-900)}.ex-label{display:block;font-size:14px;font-weight:600;color:var(--color-ink-900);margin-bottom:6px}.ex-input{min-height:44px;width:100%;max-width:100%;padding:8px 14px;font-size:16px;color:var(--color-ink-900);background:var(--color-surface);border:1px solid var(--color-ink-500);border-radius:var(--radius-control)}.ex-short-row{display:flex;align-items:center;gap:8px;max-width:320px}.ex-textarea{min-height:160px;resize:vertical}.ex-hint{margin-top:6px;font-size:13px;color:var(--color-ink-500)}.ex-q-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--color-border)}.ex-nav-summary{font-size:14px;font-weight:600;color:var(--color-ink-900)}.ex-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:13px;color:var(--color-ink-700)}.ex-legend li{display:inline-flex;align-items:center;gap:6px}.ex-nav-section{margin-top:16px}.ex-nav-title{font-family:var(--font-sans);font-size:14px;font-weight:600;margin-bottom:8px}.ex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px}.ex-cell{position:relative;width:100%;min-height:44px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-ink-700);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.ex-cell-glyph{position:absolute;top:1px;right:4px;font-size:10px;line-height:1.2}.ex-cell-mini{width:22px;min-height:22px;border-radius:6px;font-size:11px}.ex-cell[data-status=answered]{background:var(--color-ink-900);border-color:var(--color-ink-900);color:var(--color-on-accent)}.ex-cell[data-status=partial]{border-style:dashed;border-color:var(--color-ink-900);color:var(--color-ink-900)}.ex-cell[data-status=flagged]{background:var(--color-warning-100);border:1.5px dashed var(--color-warning-700);color:var(--color-warning-700)}.ex-cell[aria-current=true]{outline:2px solid var(--color-ink-900);outline-offset:1px}.ex-cell:disabled{opacity:.55;cursor:not-allowed}.ex-review,.ex-transition,.ex-state{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:20px;box-shadow:var(--shadow-depth)}@media(min-width:768px){.ex-review,.ex-transition,.ex-state{padding:28px}}.ex-review-title{font-size:22px}.ex-review-lead{margin-top:6px;color:var(--color-ink-700)}.ex-table-wrap{overflow-x:auto;margin-block:16px}.ex-table{width:100%;border-collapse:collapse;font-size:14px}.ex-table th,.ex-table td{padding:8px 10px;border-bottom:1px solid var(--color-border);text-align:left}.ex-table td{text-align:right}.ex-table thead th{color:var(--color-ink-500);font-weight:600}.ex-table thead th:not(:first-child){text-align:right}.ex-review-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:24px}.ex-transition,.ex-state{display:grid;gap:12px;justify-items:start;max-width:var(--container-reading);margin-inline:auto}.ex-transition h2:focus{outline:none}.ex-banner svg{flex:none;margin-top:2px}
