/* 2026-10-16：白色工作台布局；桌面侧栏与移动导航共用同一状态。 */
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--ws-canvas); }
body, button, input, textarea, select { font-family: var(--ws-font); font-size: var(--ws-text); color: var(--ws-ink); }
body { line-height: var(--ws-line); }
button, input, textarea { -webkit-tap-highlight-color: transparent; }
button, a, input, textarea { outline-offset: var(--ws-space-1); }
:focus-visible { outline: var(--ws-focus-width) solid var(--ws-focus); }
button { cursor: pointer; }
button:disabled { cursor: default; opacity: .45; }
input, textarea { min-width: 0; }
button, a { touch-action: manipulation; }
button { line-height: var(--ws-line-heading); }
a { color: var(--ws-accent); text-decoration: none; }
h1, h2, h3, p { margin: 0; }
.icon { width: var(--ws-icon); height: var(--ws-icon); flex: 0 0 auto; vertical-align: middle; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: var(--ws-space-4); top: var(--ws-space-4); transform: translateY(-200%); z-index: 100; padding: var(--ws-space-3) var(--ws-space-4); background: var(--ws-accent); color: var(--ws-on-accent); border-radius: var(--ws-radius); }
.skip-link:focus { transform: none; }
.workspace-shell { display: flex; min-height: 100dvh; }
.sidebar { width: var(--ws-sidebar-width); flex: 0 0 var(--ws-sidebar-width); background: var(--ws-sidebar); border-right: var(--ws-border-width) solid var(--ws-border); padding: var(--ws-space-7) var(--ws-space-4) var(--ws-space-5); position: fixed; inset: 0 auto 0 0; display: flex; flex-direction: column; z-index: 20; }
.brand { display: flex; align-items: center; gap: var(--ws-space-3); padding: 0 var(--ws-space-3); min-height: var(--ws-control); color: var(--ws-ink); font-weight: 700; font-size: var(--ws-brand-text); letter-spacing: .07em; }
.brand img { width: var(--ws-brand-icon); height: var(--ws-brand-icon); object-fit: contain; border-radius: var(--ws-radius-sm); }
.main-navigation { display: flex; flex-direction: column; gap: var(--ws-space-1); margin-top: var(--ws-space-8); }
.side-link, .new-import, .history-item, .membership-link, .account-link, .cloud-link { display: flex; align-items: center; gap: var(--ws-space-3); width: 100%; text-align: left; border: 0; border-radius: var(--ws-radius-sm); background: transparent; min-height: var(--ws-control); padding: var(--ws-space-3); color: var(--ws-secondary); }
.side-link:hover, .history-item:hover, .account-link:hover, .cloud-link:hover { background: var(--ws-hover); color: var(--ws-ink); }
.side-link.is-active { background: var(--ws-accent-soft); color: var(--ws-accent); font-weight: 600; }
.new-import { background: var(--ws-surface); border: var(--ws-border-width) solid var(--ws-border); color: var(--ws-ink); margin-bottom: var(--ws-space-4); justify-content: center; box-shadow: var(--ws-shadow); }
.new-import:hover { border-color: var(--ws-border-strong); }
.side-badge { margin-left: auto; padding: 0 var(--ws-space-2); border-radius: var(--ws-radius-pill); background: var(--ws-surface); }
.history-section { flex: 1; min-height: 0; display: flex; flex-direction: column; margin-top: var(--ws-space-7); }
.history-heading { display: flex; align-items: center; justify-content: space-between; padding-left: var(--ws-space-3); color: var(--ws-muted); }
.history-list { overflow-y: auto; margin-top: var(--ws-space-2); }
.history-item { color: var(--ws-secondary); }
.history-item span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.history-item .icon { color: var(--ws-muted); }
.history-empty { display: block; padding: var(--ws-space-3); color: var(--ws-muted); }
.sidebar-bottom { border-top: var(--ws-border-width) solid var(--ws-border); padding-top: var(--ws-space-4); margin-top: var(--ws-space-4); }
.sidebar-scroll { flex: 1; min-height: 0; overflow-y: auto; margin-top: var(--ws-space-5); padding-right: var(--ws-space-1); }
.sidebar-scroll .history-section { display: block; margin-top: var(--ws-space-6); }
.sidebar-scroll .history-list { overflow: visible; }
.history-item { align-items: flex-start; }
.history-item .icon { margin-top: var(--ws-space-1); }
.history-item span { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.sidebar-account-row { display: flex; align-items: center; gap: var(--ws-space-2); }
.sidebar-account-row .account-link { flex: 1; width: auto; min-width: 0; margin: 0; padding: var(--ws-space-2); }
.sidebar-account-row .account-link > span:nth-child(2) { white-space: normal; overflow-wrap: anywhere; }
.settings-button { color: var(--ws-secondary); }
.sidebar-resizer { position: absolute; width: var(--ws-sidebar-handle); top: 0; bottom: 0; right: calc(var(--ws-sidebar-handle) / -2); cursor: col-resize; touch-action: none; z-index: 2; }
.sidebar-resizer::after { content: ''; position: absolute; left: calc(var(--ws-sidebar-handle) / 2); top: 0; bottom: 0; width: var(--ws-border-width); background: transparent; }
.sidebar-resizer:hover::after, .sidebar-resizer:focus-visible::after, .is-sidebar-resizing .sidebar-resizer::after { background: var(--ws-gold); }
.is-sidebar-resizing, .is-sidebar-resizing * { cursor: col-resize !important; user-select: none; }
.sidebar-scrim { display: none; }
.directory-root, .directory-tree-name, .directory-toggle { display: flex; align-items: center; gap: var(--ws-space-2); border: 0; border-radius: var(--ws-radius-sm); background: transparent; color: var(--ws-secondary); text-align: left; }
.directory-root { width: 100%; padding: var(--ws-space-3); min-height: var(--ws-control); }
.directory-tree, .directory-tree-children { list-style: none; padding: 0; margin: 0; }
.directory-tree-children { margin-left: var(--ws-space-4); border-left: var(--ws-border-width) solid var(--ws-border); padding-left: var(--ws-space-1); }
.directory-tree-row { display: flex; align-items: flex-start; border-radius: var(--ws-radius-sm); }
.directory-tree-name { flex: 1; min-width: 0; padding: var(--ws-space-3) var(--ws-space-2) var(--ws-space-3) 0; }
.directory-tree-name span { white-space: normal; overflow-wrap: anywhere; }
.directory-tree-name > .icon { color: var(--ws-gold); margin-top: var(--ws-space-1); }
.directory-toggle, .directory-toggle-space { width: var(--ws-space-6); flex-shrink: 0; margin-top: var(--ws-space-3); padding: var(--ws-space-1) 0; }
.directory-root:hover, .directory-tree-row:hover { background: var(--ws-hover); }
.directory-root.is-active, .directory-tree-row.is-active { background: var(--ws-accent-soft); color: var(--ws-accent); }
.directory-breadcrumbs { display: flex; align-items: baseline; gap: var(--ws-space-3); flex-wrap: wrap; margin-bottom: var(--ws-space-7); }
.directory-breadcrumbs button { border: 0; background: transparent; padding: 0; color: var(--ws-accent); text-align: left; overflow-wrap: anywhere; }
.directory-breadcrumb-separator { color: var(--ws-muted); }
.directory-warning { padding: var(--ws-space-4); margin-bottom: var(--ws-space-5); border-radius: var(--ws-radius); background: var(--ws-gold-soft); color: var(--ws-secondary); }
.directory-folders { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--ws-space-4); margin-bottom: var(--ws-space-6); }
.directory-folder { display: flex; align-items: center; gap: var(--ws-space-3); min-width: 0; padding: var(--ws-space-5); border: var(--ws-border-width) solid var(--ws-border); border-radius: var(--ws-radius); background: var(--ws-surface); text-align: left; }
.directory-folder > .icon:first-child { color: var(--ws-gold); }
.directory-folder span { flex: 1; overflow-wrap: anywhere; }
.directory-files { display: grid; gap: var(--ws-space-3); }
.directory-file { display: grid; grid-template-columns: var(--ws-icon) minmax(0,1fr) auto var(--ws-icon); align-items: center; gap: var(--ws-space-4); padding: var(--ws-space-5); border: var(--ws-border-width) solid var(--ws-border); border-radius: var(--ws-radius); background: var(--ws-surface); text-align: left; }
.directory-folder:hover, .directory-file:hover:not(:disabled) { border-color: var(--ws-border-strong); background: var(--ws-selected); }
.directory-file-title { overflow-wrap: anywhere; }
.directory-file-count { color: var(--ws-muted); white-space: nowrap; }
.directory-file.is-unavailable { opacity: 1; color: var(--ws-muted); background: var(--ws-sidebar); }
.directory-more { display: flex; justify-content: center; margin-top: var(--ws-space-6); }
.dialog.settings-dialog { max-width: var(--ws-settings-width); }
.settings-layout { display: grid; grid-template-columns: var(--ws-settings-navigation) minmax(0,1fr); min-height: var(--ws-settings-content-height); max-height: calc(100dvh - var(--ws-space-12) - var(--ws-space-8)); overflow: hidden; }
.settings-navigation { padding: var(--ws-space-3); border-right: var(--ws-border-width) solid var(--ws-border); background: var(--ws-sidebar); display: flex; flex-direction: column; gap: var(--ws-space-1); overflow-y: auto; }
.settings-navigation button { display: flex; align-items: center; gap: var(--ws-space-3); border: 0; border-radius: var(--ws-radius-sm); min-height: var(--ws-control); padding: var(--ws-space-3); text-align: left; color: var(--ws-secondary); background: transparent; }
.settings-navigation button:hover { background: var(--ws-hover); }
.settings-navigation button.is-active { color: var(--ws-accent); background: var(--ws-gold-soft); font-weight: 600; }
.settings-navigation button.is-active .icon { color: var(--ws-gold); }
.settings-content { min-width: 0; overflow-y: auto; padding: var(--ws-space-5); }
.settings-section-title { font-size: var(--ws-subtitle); font-weight: 600; margin-bottom: var(--ws-space-6); }
.settings-content .dialog-body { padding: 0; overflow: visible; }
.settings-content .dialog-status, .settings-content .dialog-error { margin: 0 0 var(--ws-space-5); }
.settings-content .account-summary { align-items: flex-start; padding: 0; gap: var(--ws-space-4); }
.account-state { color: var(--ws-success); display: flex; align-items: center; gap: var(--ws-space-2); }
.profile-actions { display: flex; flex-wrap: wrap; gap: var(--ws-space-3); margin-top: var(--ws-space-3); }
.membership-current { display: flex; flex-direction: column; align-items: flex-start; gap: var(--ws-space-4); }
.membership-current > h3 { font-size: var(--ws-subtitle); font-weight: 600; }
.membership-current > p, .membership-expired { color: var(--ws-secondary); }
.membership-facts { display: grid; gap: var(--ws-space-4); width: 100%; margin: 0; padding: var(--ws-space-5); border: var(--ws-border-width) solid var(--ws-border); border-radius: var(--ws-radius); }
.membership-facts > div, .membership-usage > div { display: flex; justify-content: space-between; gap: var(--ws-space-4); }
.membership-facts dt { color: var(--ws-secondary); }
.membership-facts dd { margin: 0; text-align: right; }
.membership-usage { width: 100%; display: grid; gap: var(--ws-space-3); }
.membership-usage strong { font-weight: 500; }
.membership-usage progress { width: 100%; height: var(--ws-space-2); accent-color: var(--ws-gold); }
.membership-expired { margin-bottom: var(--ws-space-5); }
.settings-empty { display: flex; flex-direction: column; align-items: flex-start; gap: var(--ws-space-5); color: var(--ws-secondary); }
.import-controls, .result-actions { display: flex; align-items: center; gap: var(--ws-space-3); }
.membership-link { background: var(--ws-gold-soft); color: var(--ws-accent); font-weight: 600; }
.membership-link .icon:first-child { color: var(--ws-gold); }
.membership-link .icon:last-child { margin-left: auto; }
.account-tools { display: flex; gap: var(--ws-space-2); margin-top: var(--ws-space-3); }
.account-tools button { flex: 1; display: flex; align-items: center; justify-content: center; gap: var(--ws-space-2); border: 0; background: transparent; min-height: var(--ws-control); color: var(--ws-secondary); border-radius: var(--ws-radius-sm); }
.account-tools button:hover { background: var(--ws-hover); }
.account-link { margin-top: var(--ws-space-2); color: var(--ws-ink); }
.account-link > span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-link > .icon { margin-left: auto; }
.account-mini-avatar { width: var(--ws-brand-icon); height: var(--ws-brand-icon); background: var(--ws-accent-soft); color: var(--ws-accent); border-radius: 50%; display: grid; place-items: center; flex-shrink: 0; }
.cloud-link { justify-content: center; }
.workspace-body { margin-left: var(--ws-sidebar-width); width: calc(100% - var(--ws-sidebar-width)); }
.workspace-main { max-width: calc(var(--ws-content) + 2 * var(--ws-space-9)); margin: 0 auto; padding: var(--ws-space-10) var(--ws-space-9) var(--ws-space-12); outline: none; }
.mobile-header { display: none; }
.page-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--ws-space-6); margin-bottom: var(--ws-space-7); }
.eyebrow { display: block; color: var(--ws-secondary); margin-bottom: var(--ws-space-3); }
h1 { font-size: var(--ws-title); line-height: var(--ws-line-heading); font-weight: 600; letter-spacing: -.035em; }
h2 { font-size: var(--ws-subtitle); line-height: var(--ws-line-heading); font-weight: 600; }
.button { min-height: var(--ws-control); display: inline-flex; align-items: center; justify-content: center; gap: var(--ws-space-2); padding: var(--ws-space-3) var(--ws-space-5); border-radius: var(--ws-radius); border: var(--ws-border-width) solid transparent; font-weight: 500; white-space: nowrap; transition: background var(--ws-transition), border-color var(--ws-transition); }
.button-primary { color: var(--ws-on-accent); background: var(--ws-accent); }
.button-primary:hover:not(:disabled) { background: var(--ws-accent-hover); }
.button-secondary { color: var(--ws-accent); background: var(--ws-surface); border-color: var(--ws-border); }
.button-secondary:hover:not(:disabled) { border-color: var(--ws-border-strong); background: var(--ws-selected); }
.icon-button { display: inline-flex; align-items: center; justify-content: center; width: var(--ws-icon-button); height: var(--ws-icon-button); flex-shrink: 0; padding: var(--ws-space-1); border: 0; border-radius: var(--ws-radius-sm); color: var(--ws-secondary); background: transparent; }
.icon-button:hover:not(:disabled) { background: var(--ws-hover); color: var(--ws-accent); }
.text-button { display: inline-flex; align-items: center; gap: var(--ws-space-2); padding: var(--ws-space-2) 0; border: 0; color: var(--ws-secondary); background: transparent; }
.text-button:hover, .text-button.is-accent { color: var(--ws-accent); }
.feedback { padding: var(--ws-space-3) var(--ws-space-4); background: var(--ws-selected); border-radius: var(--ws-radius-sm); color: var(--ws-accent); margin-bottom: var(--ws-space-5); overflow-wrap: anywhere; }
.feedback.is-empty { display: none; }
.feedback-error { background: var(--ws-error-surface); color: var(--ws-error); }
.search-form, .compose-prompt { display: flex; align-items: center; gap: var(--ws-space-3); border: var(--ws-border-width) solid var(--ws-border); border-radius: var(--ws-radius-lg); padding: var(--ws-space-2); background: var(--ws-surface); }
.search-form > .icon { margin-left: var(--ws-space-3); color: var(--ws-muted); }
.search-form input, .compose-prompt input { border: 0; background: transparent; flex: 1; min-height: var(--ws-control); padding: var(--ws-space-2); outline: none; }
.search-form:focus-within, .compose-prompt:focus-within { border-color: var(--ws-border-strong); box-shadow: var(--ws-shadow); }
.result-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--ws-space-4); margin: var(--ws-space-7) 0 var(--ws-space-5); }
.result-heading > span { color: var(--ws-muted); }
.question-list { display: grid; gap: var(--ws-space-5); }
.question-card { border: var(--ws-border-width) solid var(--ws-border); border-radius: var(--ws-radius-lg); padding: var(--ws-space-5) var(--ws-space-6); background: var(--ws-surface); }
.question-card.is-selected { border-color: var(--ws-border-strong); background: var(--ws-selected); }
.question-card-head { display: flex; align-items: center; gap: var(--ws-space-4); margin-bottom: var(--ws-space-4); }
.question-check { display: inline-flex; align-items: center; gap: var(--ws-space-3); color: var(--ws-muted); }
input[type="checkbox"] { width: var(--ws-icon); height: var(--ws-icon); accent-color: var(--ws-accent); cursor: pointer; }
.type-tag { padding: var(--ws-space-1) var(--ws-space-3); border-radius: var(--ws-radius-sm); color: var(--ws-secondary); background: var(--ws-subtle); }
.question-open { margin-left: auto; }
.question-card-foot { display: flex; justify-content: flex-end; margin-top: var(--ws-space-3); }
.question-content { font-size: var(--ws-question-font); line-height: var(--ws-question-line); overflow-wrap: anywhere; }
.question-content p { white-space: pre-wrap; margin-bottom: var(--ws-question-space); }
.question-content p:last-child { margin-bottom: 0; }
.question-text { white-space: pre-wrap; }
.question-part { display: flex; gap: var(--ws-question-space); margin-top: var(--ws-question-space); }
.question-part > span { flex-shrink: 0; }
.question-part > div { min-width: 0; }
.question-blank { display: inline-block; min-width: var(--ws-space-10); }
.load-more { display: flex; justify-content: center; padding: var(--ws-space-6) 0; }
.question-content.is-compact { max-height: 22em; overflow: hidden; }
.question-options { list-style: none; margin: var(--ws-question-space) 0 0; padding: 0; display: grid; gap: var(--ws-question-small-space); }
.question-options li { display: flex; min-width: 0; gap: var(--ws-question-space); }
.question-options li > span:first-child { flex-shrink: 0; }
.question-options li > div { min-width: 0; }
.question-figure { display: inline-flex; flex-direction: column; align-items: flex-start; max-width: min(100%,var(--ws-figure-width)); margin: var(--ws-question-space) var(--ws-question-space) 0 0; vertical-align: top; }
.question-figure img { display: block; height: auto; max-width: 100%; max-height: var(--ws-figure-height); object-fit: contain; }
.question-figure figcaption { color: var(--ws-secondary); font-size: var(--ws-small); margin-top: var(--ws-question-small-space); }
.question-content .katex { font-size: 1.05em; }
.question-content .katex-display { margin: var(--ws-question-space) 0; max-width: 100%; overflow-x: auto; overflow-y: hidden; }
.question-math { font-family: var(--ws-font-paper); }
.question-table-wrap { max-width: 100%; overflow-x: auto; margin: var(--ws-question-space) 0; }
.question-table-wrap table { border-collapse: collapse; width: 100%; }
.question-table-wrap td { border: var(--ws-border-width) solid var(--ws-border); padding: var(--ws-space-2) var(--ws-space-3); }
.empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--ws-space-3); min-height: var(--ws-pane-empty-height); text-align: center; color: var(--ws-muted); padding: var(--ws-space-5) var(--ws-space-4); }
.empty-icon { width: var(--ws-space-10); height: var(--ws-space-10); background: var(--ws-subtle); border-radius: var(--ws-radius-lg); display: grid; place-items: center; color: var(--ws-secondary); }
.empty-icon .icon { width: var(--ws-space-7); height: var(--ws-space-7); }
.selection-tray { position: fixed; bottom: var(--ws-space-6); left: calc(var(--ws-sidebar-width) + var(--ws-space-6)); right: var(--ws-space-6); max-width: var(--ws-import-width); margin: auto; border: var(--ws-border-width) solid var(--ws-border); border-radius: var(--ws-radius-lg); padding: var(--ws-space-3) var(--ws-space-4); background: var(--ws-surface); box-shadow: var(--ws-tray-shadow); display: flex; justify-content: space-between; align-items: center; gap: var(--ws-space-4); z-index: 10; }
.selection-tray > span { display: flex; align-items: center; gap: var(--ws-space-3); color: var(--ws-accent); }
.import-view { max-width: var(--ws-import-width); margin: var(--ws-space-11) auto 0; }
.import-heading { text-align: center; margin-bottom: var(--ws-space-8); }
.brand-mark { display: grid; place-items: center; width: var(--ws-space-10); height: var(--ws-space-10); border-radius: var(--ws-radius-lg); background: var(--ws-gold-soft); color: var(--ws-gold); margin: 0 auto var(--ws-space-6); }
.brand-mark .icon { width: var(--ws-space-7); height: var(--ws-space-7); }
.import-heading h1 { font-size: var(--ws-hero-title); }
.import-form { border: var(--ws-border-width) solid var(--ws-border); border-radius: var(--ws-radius-lg); background: var(--ws-surface); box-shadow: var(--ws-shadow); padding: var(--ws-space-5); }
.import-form:focus-within { border-color: var(--ws-border-strong); }
.input-modes { display: flex; gap: var(--ws-space-2); margin-bottom: var(--ws-space-4); }
.mode-pill { border: 0; padding: var(--ws-space-2) var(--ws-space-4); border-radius: var(--ws-radius-pill); color: var(--ws-secondary); background: transparent; }
.mode-pill.is-active { color: var(--ws-accent); background: var(--ws-accent-soft); font-weight: 600; }
.mode-pill:hover { background: var(--ws-hover); }
.import-form textarea { display: block; width: 100%; border: 0; outline: none; padding: var(--ws-space-3); resize: vertical; line-height: var(--ws-line); min-height: 180px; max-height: 500px; background: transparent; }
::placeholder { color: var(--ws-muted); opacity: 1; }
.input-footer { display: flex; justify-content: space-between; align-items: center; gap: var(--ws-space-4); padding-top: var(--ws-space-4); }
.upload-button { display: inline-flex; align-items: center; gap: var(--ws-space-2); color: var(--ws-secondary); cursor: pointer; padding: var(--ws-space-2); border-radius: var(--ws-radius-sm); }
.upload-button:hover { background: var(--ws-hover); }
.file-chips { display: flex; flex-wrap: wrap; gap: var(--ws-space-2); }
.file-chip { display: inline-flex; align-items: center; max-width: 100%; gap: var(--ws-space-2); background: var(--ws-subtle); padding-left: var(--ws-space-3); border-radius: var(--ws-radius-sm); }
.file-chip > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.drop-indicator { display: none; }
.is-file-drop .drop-indicator { position: fixed; inset: var(--ws-space-6) var(--ws-space-6) var(--ws-space-6) calc(var(--ws-sidebar-width) + var(--ws-space-6)); display: flex; align-items: center; justify-content: center; gap: var(--ws-space-4); border: var(--ws-focus-width) dashed var(--ws-accent); background: var(--ws-selected); border-radius: var(--ws-radius-lg); z-index: 25; pointer-events: none; font-size: var(--ws-subtitle); }
.import-results { margin-top: var(--ws-space-9); }
.compose-prompt { padding-left: var(--ws-space-4); }
.paper-actions { display: flex; justify-content: space-between; align-items: center; gap: var(--ws-space-4); margin: var(--ws-space-6) 0; }
.paper-count { display: flex; gap: var(--ws-space-3); color: var(--ws-secondary); white-space: nowrap; }
.paper-action-buttons { display: flex; gap: var(--ws-space-2); }
.paper-sheet { max-width: var(--ws-paper-width); padding: var(--ws-space-8); border: var(--ws-border-width) solid var(--ws-border); border-radius: var(--ws-radius); margin: 0 auto; background: var(--ws-surface); box-shadow: var(--ws-shadow); }
.paper-title { width: 100%; font-size: var(--ws-subtitle); font-weight: 600; text-align: center; border: 0; border-bottom: var(--ws-border-width) dashed var(--ws-border); background: transparent; padding: var(--ws-space-3) var(--ws-space-2); margin-bottom: var(--ws-space-5); }
.paper-question { padding: var(--ws-space-5) 0 var(--ws-space-7); border-bottom: var(--ws-border-width) solid var(--ws-border); }
.paper-question:last-child { border-bottom: 0; }
.paper-question-toolbar { display: flex; align-items: center; gap: var(--ws-space-2); margin-bottom: var(--ws-space-4); }
.paper-question-toolbar strong { font-weight: 500; white-space: nowrap; }
.drag-handle { cursor: grab; margin-left: calc(-1 * var(--ws-space-3)); touch-action: none; user-select: none; }
.drag-handle:active { cursor: grabbing; }
.paper-question.is-dragging { opacity: .45; }
.paper-question.is-drop-target { border-top: var(--ws-focus-width) solid var(--ws-focus); }
.score-label { display: flex; align-items: center; gap: var(--ws-space-2); margin-left: auto; color: var(--ws-secondary); }
.score-label input { width: var(--ws-space-10); border: var(--ws-border-width) solid var(--ws-border); border-radius: var(--ws-radius-sm); background: var(--ws-surface); text-align: center; padding: var(--ws-space-1); }
.paper-move-buttons { display: flex; gap: var(--ws-space-1); }
.saved-papers { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--ws-space-5); }
.saved-paper { display: grid; grid-template-columns: 1fr auto; gap: var(--ws-space-3); text-align: left; border: var(--ws-border-width) solid var(--ws-border); border-radius: var(--ws-radius-lg); padding: var(--ws-space-6); background: var(--ws-surface); }
.saved-paper:hover { border-color: var(--ws-border-strong); box-shadow: var(--ws-shadow); }
.saved-paper-icon { grid-column: 1/-1; width: var(--ws-space-9); height: var(--ws-space-9); display: grid; place-items: center; background: var(--ws-accent-soft); color: var(--ws-accent); border-radius: var(--ws-radius); }
.saved-paper strong { grid-column: 1/-1; font-weight: 600; overflow-wrap: anywhere; }
.saved-paper > span:nth-last-child(2) { color: var(--ws-muted); }
.question-solutions { border-top: var(--ws-border-width) solid var(--ws-border); margin-top: var(--ws-space-3); padding-top: var(--ws-space-2); }
.question-solutions summary { cursor: pointer; color: var(--ws-accent); padding: var(--ws-space-2) 0; }
.question-solutions section { margin-top: var(--ws-space-3); }
.question-solutions h3 { font-size: var(--ws-text); font-weight: 600; color: var(--ws-secondary); margin-bottom: var(--ws-space-2); }
@media (max-width: 1100px) {
  .workspace-main { padding: var(--ws-space-8) var(--ws-space-6) var(--ws-space-12); }
  .paper-sheet { padding: var(--ws-space-6); }
  .paper-actions { align-items: flex-start; flex-direction: column; }
  h1 { font-size: var(--ws-title); }
}
@media (max-width: 760px) {
  .sidebar { transform: translateX(-100%); visibility: hidden; transition: transform var(--ws-transition); box-shadow: var(--ws-dialog-shadow); padding-top: var(--ws-space-6); }
  .sidebar.is-open { transform: translateX(0); visibility: visible; }
  .sidebar-resizer { display: none; }
  .sidebar-scrim { display: block; position: fixed; inset: 0; z-index: 19; border: 0; background: var(--ws-overlay); }
  .dialog.settings-dialog { max-height: calc(100dvh - 2 * var(--ws-space-3)); }
  .settings-layout { grid-template-columns: minmax(0,1fr); grid-template-rows: auto minmax(0,1fr); min-height: 0; max-height: calc(100dvh - var(--ws-space-12)); }
  .settings-navigation { flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: var(--ws-border-width) solid var(--ws-border); padding: var(--ws-space-3); }
  .settings-navigation button { flex-shrink: 0; padding: var(--ws-space-2) var(--ws-space-3); gap: var(--ws-space-2); }
  .settings-navigation button .icon { display: none; }
  .settings-content { padding: var(--ws-space-4); }
  .directory-folders { grid-template-columns: minmax(0,1fr); }
  .directory-file { grid-template-columns: var(--ws-icon) minmax(0,1fr) var(--ws-icon); gap: var(--ws-space-3); padding: var(--ws-space-4); }
  .directory-file-count { grid-column: 2; grid-row: 2; }
  .directory-file > .icon:last-child { grid-column: 3; grid-row: 1/3; }
  .import-controls { gap: var(--ws-space-2); }
  .result-heading { align-items: flex-start; }
  .result-actions { align-items: flex-end; flex-direction: column; }
  .workspace-body { margin-left: 0; width: 100%; }
  .mobile-header { display: flex; align-items: center; justify-content: space-between; gap: var(--ws-space-4); padding: var(--ws-space-3) var(--ws-space-4); border-bottom: var(--ws-border-width) solid var(--ws-border); }
  .mobile-header > span { font-weight: 700; letter-spacing: .07em; }
  .workspace-main { padding: var(--ws-space-7) var(--ws-space-4) var(--ws-space-12); }
  .page-heading { gap: var(--ws-space-3); align-items: flex-start; }
  .page-heading h1 { font-size: var(--ws-subtitle); }
  .page-heading .button { padding: var(--ws-space-3); }
  .import-view { margin-top: var(--ws-space-8); }
  .import-heading h1 { font-size: var(--ws-title); }
  .import-form { padding: var(--ws-space-3); }
  .import-form textarea { min-height: 220px; }
  .input-footer { gap: var(--ws-space-2); }
  .input-footer .button { padding: var(--ws-space-3); }
  .selection-tray { left: var(--ws-space-4); right: var(--ws-space-4); bottom: var(--ws-space-4); }
  .question-card { padding: var(--ws-space-4); }
  .question-card-head { gap: var(--ws-space-2); }
  .saved-papers { grid-template-columns: 1fr; }
  .paper-sheet { padding: var(--ws-space-4); }
  .paper-question-toolbar { flex-wrap: wrap; }
  .paper-move-buttons { gap: 0; }
  .paper-action-buttons { width: 100%; }
  .paper-action-buttons .button { flex: 1; padding: var(--ws-space-3) var(--ws-space-2); }
  .paper-action-buttons .icon { display: none; }
  .compose-prompt { flex-wrap: wrap; }
  .compose-prompt input { width: 100%; flex-basis: 100%; }
  .compose-prompt button { width: 100%; }
  .is-file-drop .drop-indicator { inset: var(--ws-space-4); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
@media print {
  .sidebar, .mobile-header, .page-heading, .compose-prompt, .paper-actions, .paper-question-toolbar, .feedback, .modal-backdrop, .selection-tray { display: none !important; }
  .workspace-body { width: 100%; margin: 0; }
  .workspace-main, .paper-sheet { padding: 0; border: 0; box-shadow: none; max-width: none; }
  .paper-title { border: 0; }
  .paper-question { break-inside: avoid; }
}
