:root{--bg-deep: #eef2f7;--bg-panel: #ffffff;--bg-elevated: #f8fafc;--bg-hover: #e8edf4;--border: #e2e8f0;--border-strong: #cbd5e1;--text: #0f172a;--text-muted: #475569;--text-dim: #64748b;--accent: #0284c7;--accent-dim: rgba(2, 132, 199, .12);--accent-focus-border: #7dd3fc;--accent-focus-ring: rgba(125, 211, 252, .22);--accent-2: #6d28d9;--used-for-pill-bg: rgba(254, 242, 242, .95);--used-for-pill-border: rgba(252, 165, 165, .65);--used-for-pill-text: #7f1d1d;--used-for-pill-kbd: #991b1b;--source-pill-bg: rgba(241, 245, 249, .95);--source-pill-border: rgba(100, 116, 139, .5);--source-pill-text: #334155;--source-pill-kbd: #475569;--success: #059669;--radius: 10px;--radius-sm: 6px;--font: "Segoe UI", system-ui, -apple-system, sans-serif;--shadow: 0 12px 32px rgba(15, 23, 42, .08);--unit-tone-a-bg: rgba(224, 242, 254, .52);--unit-tone-a-border: rgba(56, 189, 248, .3);--unit-tone-a-bg-strong: rgba(186, 230, 253, .88);--unit-tone-b-bg: rgba(237, 233, 254, .52);--unit-tone-b-border: rgba(167, 139, 250, .32);--unit-tone-b-bg-strong: rgba(221, 214, 254, .88);--unit-tone-case-bg: rgba(254, 252, 232, .58);--unit-tone-case-border: rgba(250, 204, 21, .34);--unit-tone-case-bg-strong: rgba(254, 243, 198, .9)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--bg-deep);color:var(--text);color-scheme:light;-webkit-font-smoothing:antialiased;line-height:1.45}.app-root{height:100%;min-height:0;display:flex;flex-direction:column}button,input,select,textarea{font:inherit;color:inherit}.app-shell{display:grid;grid-template-columns:300px 420px minmax(0,1fr);grid-template-rows:1fr;flex:1;min-height:0}.list-pane-column{display:flex;flex-direction:row;min-width:0;min-height:0}.list-pane-column .list-pane{flex:1 1 0;min-width:0}.list-pane-resize-handle{flex:0 0 6px;width:6px;touch-action:none;cursor:col-resize;align-self:stretch;background:transparent;border-right:1px solid var(--border);margin-right:-1px;z-index:2}.list-pane-resize-handle:hover{background:var(--accent-dim)}@media (max-width: 1100px){.app-shell{grid-template-columns:280px 1fr;grid-template-rows:1fr 42%}.app-shell .detail-pane{grid-column:1 / -1;border-top:1px solid var(--border)}}.panel{background:var(--bg-panel);border-right:1px solid var(--border);min-height:0;display:flex;flex-direction:column}.panel-header{padding:18px 20px 14px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(2,132,199,.07),transparent)}.panel-title{margin:0;font-size:15px;font-weight:600;letter-spacing:.02em}.panel-sub{margin:4px 0 0;font-size:12px;color:var(--text-dim)}.subject-switcher{display:flex;gap:6px;margin-bottom:12px;padding:4px;border-radius:999px;background:#ffffffb8;border:1px solid var(--border);box-shadow:inset 0 1px #fffc}.subject-switcher__btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;padding:7px 10px;border:none;border-radius:999px;background:transparent;color:var(--text-muted);font:inherit;font-size:12px;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.subject-switcher__btn:hover{background:var(--bg-hover);color:var(--text)}.subject-switcher__btn--active{background:var(--subject-accent-soft, var(--accent-dim));color:var(--subject-accent, var(--accent));box-shadow:0 1px 2px #0f172a0f}.subject-switcher__dot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.85;flex-shrink:0}.subject-switcher__label{white-space:nowrap}.search-wrap{padding:12px 16px 8px}.search-field{position:relative;display:block}.search-input{width:100%;padding:8px 36px 8px 11px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);outline:none;font-size:13px;line-height:1.35;transition:border-color .15s,box-shadow .15s}.search-input::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.search-input:focus{border-color:var(--accent-focus-border);box-shadow:0 0 0 3px var(--accent-focus-ring)}.search-input::placeholder{color:var(--text-dim);font-size:12px}.search-icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--text-dim);pointer-events:none;opacity:.85}.search-input:focus+.search-icon{color:#38bdf8;opacity:.95}.filter-scroll{flex:1;overflow:auto;padding:8px 16px 16px}.filter-footer{flex-shrink:0;padding:10px 16px 14px;border-top:1px solid var(--border);background:var(--bg-panel)}.filter-clear-btn{display:inline-flex;width:100%;align-items:center;justify-content:center;box-sizing:border-box}.filter-group{margin-bottom:18px}.filter-group-title-paren{font-weight:400;font-size:11px;color:var(--text-dim);text-transform:none;letter-spacing:normal}.filter-group-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:0 0 8px}.filter-chips-wrap{display:flex;flex-direction:column;align-items:stretch}.filter-more-row{display:flex;justify-content:flex-end;margin-top:6px}.filter-more-btn{flex-shrink:0;width:26px;height:26px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);font-size:15px;line-height:1;letter-spacing:0;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.filter-more-btn:hover{background:var(--bg-hover);border-color:var(--border-strong);color:var(--text)}.filter-more-btn[aria-expanded=true]{background:var(--bg-hover);border-color:var(--accent);color:var(--accent)}.filter-chips{display:flex;flex-wrap:wrap;gap:6px}.filter-scroll .filter-chips .chip{line-height:1.15;padding:4px 10px}.filter-chips.filter-chips--clamped{gap:5px;max-height:54px;overflow:hidden}.chip{font-size:12px;padding:5px 10px;border-radius:999px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-muted);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.chip:hover{background:var(--bg-hover);color:var(--text)}.chip.active{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.filter-scroll .filter-chips .chip.unit-tone-a{background:var(--unit-tone-a-bg);border-color:var(--unit-tone-a-border);color:var(--text-muted)}.filter-scroll .filter-chips .chip.unit-tone-a:hover{background:var(--unit-tone-a-bg-strong);color:var(--text)}.filter-scroll .filter-chips .chip.unit-tone-a.active{border-color:#0ea5e9;background:var(--unit-tone-a-bg-strong);color:#0c4a6e}.filter-scroll .filter-chips .chip.unit-tone-b{background:var(--unit-tone-b-bg);border-color:var(--unit-tone-b-border);color:var(--text-muted)}.filter-scroll .filter-chips .chip.unit-tone-b:hover{background:var(--unit-tone-b-bg-strong);color:var(--text)}.filter-scroll .filter-chips .chip.unit-tone-b.active{border-color:#8b5cf6;background:var(--unit-tone-b-bg-strong);color:#5b21b6}.filter-scroll .filter-chips .chip.unit-tone-case{background:var(--unit-tone-case-bg);border-color:var(--unit-tone-case-border);color:var(--text-muted)}.filter-scroll .filter-chips .chip.unit-tone-case:hover{background:var(--unit-tone-case-bg-strong);color:var(--text)}.filter-scroll .filter-chips .chip.unit-tone-case.active{border-color:#d97706;background:var(--unit-tone-case-bg-strong);color:#92400e}.filter-scroll .filter-chips .chip.chip-filter-exclude,.filter-scroll .filter-chips .chip.chip-filter-exclude.unit-tone-a,.filter-scroll .filter-chips .chip.chip-filter-exclude.unit-tone-b,.filter-scroll .filter-chips .chip.chip-filter-exclude.unit-tone-case,.filter-scroll .filter-chips .chip.chip-filter-exclude.unit-tone-a.active,.filter-scroll .filter-chips .chip.chip-filter-exclude.unit-tone-b.active,.filter-scroll .filter-chips .chip.chip-filter-exclude.unit-tone-case.active{border-style:solid;border-color:#fca5a5;background:#fef2f2;color:#991b1b}.filter-scroll .filter-chips .chip.chip-filter-exclude:hover,.filter-scroll .filter-chips .chip.chip-filter-exclude.unit-tone-a:hover,.filter-scroll .filter-chips .chip.chip-filter-exclude.unit-tone-b:hover,.filter-scroll .filter-chips .chip.chip-filter-exclude.unit-tone-case:hover,.filter-scroll .filter-chips .chip.chip-filter-exclude.unit-tone-a.active:hover,.filter-scroll .filter-chips .chip.chip-filter-exclude.unit-tone-b.active:hover,.filter-scroll .filter-chips .chip.chip-filter-exclude.unit-tone-case.active:hover{background:#fee2e2;color:#7f1d1d;border-color:#f87171}.chip.chip-danger{border-color:#fecaca;color:#b91c1c}.chip.chip-danger:hover{background:#fef2f2;border-color:#f87171;color:#991b1b}.chip-clear{border-style:dashed;color:var(--text-dim)}.list-pane .list-scroll{flex:1;overflow:auto;padding:12px}.q-card{width:100%;text-align:left;padding:14px 14px 12px;margin-bottom:8px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);cursor:pointer;transition:border-color .15s,background .15s,transform .12s}.q-card:hover{border-color:var(--border-strong);background:var(--bg-hover)}.q-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px #0284c759}.list-pane .q-card.q-card--tone-a{background:var(--unit-tone-a-bg);border-color:var(--border)}.list-pane .q-card.q-card--tone-a:hover{background:var(--unit-tone-a-bg-strong);border-color:var(--border-strong)}.list-pane .q-card.q-card--tone-a.selected{border-color:var(--accent);box-shadow:0 0 0 1px #0284c752}.list-pane .q-card.q-card--tone-b{background:var(--unit-tone-b-bg);border-color:var(--border)}.list-pane .q-card.q-card--tone-b:hover{background:var(--unit-tone-b-bg-strong);border-color:var(--border-strong)}.list-pane .q-card.q-card--tone-b.selected{border-color:#7c3aed;box-shadow:0 0 0 1px #7c3aed47}.list-pane .q-card.q-card--tone-case{background:var(--unit-tone-case-bg);border-color:var(--border)}.list-pane .q-card.q-card--tone-case:hover{background:var(--unit-tone-case-bg-strong);border-color:var(--border-strong)}.list-pane .q-card.q-card--tone-case.selected{border-color:#d97706;box-shadow:0 0 0 1px #d9770647}.q-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.q-card-title{flex:1 1 auto;min-width:0;font-size:12px;font-weight:600;color:var(--accent);letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.q-card-stem{margin:6px 0 8px;font-size:13px;color:var(--text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.q-card-marks{flex:0 0 auto}.label-row--list{margin-top:0;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;max-width:100%;scrollbar-width:thin}.label-row--list .label-pill.label-pill--value-only,.label-row--list .label-pill.label-pill--used-for.label-pill--value-only{max-width:min(220px,28vw);flex-shrink:0}.q-card-meta{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%}.marks-pill{font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px;background:#6d28d91a;color:var(--accent-2)}.detail-pane{background:var(--bg-deep);min-height:0;display:flex;flex-direction:column}.detail-scroll{flex:1;overflow:auto;padding:24px 28px 40px}.detail-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:14px;padding:40px}.detail-header{margin-bottom:20px}.detail-notes{margin-top:14px;padding:10px 12px;border-radius:var(--radius-sm);border:1px dashed var(--border-strong);background:var(--bg-elevated)}.detail-notes-label{font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.detail-notes-body{font-size:13px;color:var(--text-muted);white-space:pre-wrap;word-break:break-word;line-height:1.45}.detail-header-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.detail-header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.btn-copy-exam{flex-shrink:0;padding:8px 14px;font-size:12px;font-weight:600;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.btn-copy-exam:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--accent)}.btn-copy-exam.btn-copy-exam--danger{border-color:#fca5a5e6;background:#fef2f2bf;color:#b91c1c}.btn-copy-exam.btn-copy-exam--danger:hover{background:#fef2f2;border-color:#f87171;color:#991b1b}.btn-save-bank{flex-shrink:0;padding:8px 14px;font-size:12px;font-weight:600;border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent-dim);color:var(--accent);cursor:pointer;transition:background .12s,border-color .12s,opacity .12s}.btn-save-bank:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent)}.btn-save-bank:disabled{opacity:.45;cursor:not-allowed}.btn-clone-new{flex-shrink:0;padding:8px 12px;font-size:12px;font-weight:600;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text);cursor:pointer;transition:background .12s,border-color .12s,opacity .12s}.btn-clone-new:hover:not(:disabled){background:var(--bg-hover);border-color:var(--text-dim)}.btn-clone-new:disabled{opacity:.45;cursor:not-allowed}.copy-hint-actions{margin:0;padding:0 6px 0 0;max-width:min(240px,40vw);font-size:12px;font-weight:500;line-height:1.35;color:var(--success);text-align:right;flex:0 1 auto;min-width:0}.copy-hint-actions--err{color:#b91c1c}.detail-id{font-size:12px;font-weight:600;color:var(--accent);letter-spacing:.06em}.detail-stem{margin:10px 0 0;font-family:"Segoe UI Variable",var(--font);font-size:16px;font-weight:500;line-height:1.55;letter-spacing:-.015em;color:var(--text);white-space:pre-wrap;word-break:break-word}.label-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.label-pill{font-size:11px;padding:4px 10px;border-radius:6px;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-muted)}.label-pill kbd{font-size:10px;text-transform:uppercase;color:var(--text-dim);margin-right:6px}.label-pill kbd.kbd-as-key{text-transform:none}.label-pill.label-pill--value-only{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.label-pill.label-pill--source{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--source-pill-bg);border-color:var(--source-pill-border);color:var(--source-pill-text)}.label-pill.label-pill--source.label-pill--value-only{max-width:160px;background:var(--bg-elevated);border-color:var(--border);color:var(--text-muted)}.label-pill.label-pill--source kbd{color:var(--source-pill-kbd);text-transform:none}.label-pill.label-pill--used-for{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--used-for-pill-bg);border-color:var(--used-for-pill-border);color:var(--used-for-pill-text)}.label-pill.label-pill--used-for kbd{color:var(--used-for-pill-kbd);text-transform:none}.label-pill.label-pill--used-for.label-pill--value-only{max-width:min(240px,38vw)}.figure{margin:20px 0;border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;background:var(--bg-panel);box-shadow:var(--shadow)}.figure img{display:block;width:100%;max-height:320px;object-fit:contain;background:#f1f5f9}.figure figcaption{padding:10px 14px;font-size:12px;color:var(--text-muted);border-top:1px solid var(--border)}.parts-section-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:28px 0 12px}.part-block{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel);margin-bottom:14px;overflow:hidden}.part-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;background:var(--bg-elevated);border-bottom:1px solid var(--border)}.part-id{font-weight:700;color:var(--accent);min-width:1.5em}.part-prompt{flex:1;font-size:14px;white-space:pre-wrap;word-break:break-word}.part-marks{font-size:12px;font-weight:600;color:var(--success);white-space:nowrap}.part-body{padding:14px 16px 16px}.block-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin:0 0 6px}.pre-block{margin:0;padding:12px 14px;border-radius:var(--radius-sm);background:#f1f5f9;border:1px solid var(--border);font-size:13px;white-space:pre-wrap;word-break:break-word;color:var(--text-muted);font-family:Cascadia Mono,Consolas,ui-monospace,monospace}.detail-stem u,.part-prompt u,.pre-block u{text-decoration:underline;text-underline-offset:2px}.combined-block,.whole-item-ams{margin-top:20px}.status-bar{padding:8px 16px;font-size:11px;color:var(--text-dim);border-top:1px solid var(--border);background:var(--bg-panel)}.footer-settings-menu{position:relative;display:inline-block;margin-right:10px;vertical-align:middle}.footer-settings-summary{list-style:none;cursor:pointer;display:inline-block;padding:6px 12px;font-size:12px;font-weight:600;color:var(--text);border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-elevated)}.footer-settings-summary::-webkit-details-marker{display:none}.footer-settings-popover{position:absolute;bottom:100%;left:0;margin-bottom:8px;padding:12px 14px;min-width:280px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);z-index:50}.footer-settings-row{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--text);margin-bottom:10px;cursor:pointer}.footer-settings-row:last-of-type{margin-bottom:8px}.footer-settings-row input{margin-top:3px;flex-shrink:0}.footer-settings-hint{margin:0;font-size:11px;color:var(--text-dim);line-height:1.4}.list-pane .panel-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.count-badge{font-size:11px;color:var(--text-dim)}.draft-page{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--bg-deep)}.pdf-import-layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:16px;padding:12px 16px 16px;background:var(--bg-deep)}@media (max-width: 960px){.pdf-import-layout{grid-template-columns:1fr}}.pdf-import-panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;overflow:auto}.pdf-import-review{min-height:0}.pdf-import-h2{margin:0 0 10px;font-size:13px;font-weight:600;color:var(--text-muted)}.pdf-import-h3{margin:16px 0 8px;font-size:12px;font-weight:600;color:var(--text-dim)}.pdf-import-h3--review{margin-top:0;letter-spacing:.02em}.pdf-import-single-review .pdf-import-block{margin-bottom:14px}.pdf-import-label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted);margin-bottom:12px}.pdf-import-file{font-size:12px}.pdf-import-batch-hint{margin:0 0 10px;font-size:11px;line-height:1.45;color:var(--text-dim)}.pdf-import-batch-hint strong{color:var(--text-muted);font-weight:600}.pdf-import-meta{display:flex;flex-direction:column;gap:10px}.pdf-import-meta label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--text-dim)}.pdf-import-status{margin:12px 0 0;font-size:12px;color:var(--success)}.pdf-import-err{margin:8px 0 0;font-size:12px;color:#b91c1c}.pdf-import-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.pdf-import-counter{font-size:12px;font-weight:600;color:var(--text-muted)}.pdf-import-warn{margin:0 0 12px;padding-left:18px;font-size:12px;color:#92400e}.pdf-import-block,.pdf-import-part label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-muted);margin-bottom:12px}.pdf-import-part{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:12px}.pdf-import-part legend{font-size:11px;font-weight:600;color:var(--accent);padding:0 6px}.pdf-import-ta{width:100%;min-height:0;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);font-family:var(--font);font-size:13px;resize:vertical;tab-size:4;-moz-tab-size:4;outline:none}.pdf-import-ta:focus{border-color:var(--accent-focus-border);box-shadow:0 0 0 2px var(--accent-focus-ring)}.pdf-import-images{margin-top:8px}.pdf-import-imglist{margin:8px 0 0;padding-left:0;list-style:none;font-size:12px;color:var(--text-muted)}.pdf-import-imgrow{margin-bottom:14px}.pdf-import-fig{margin:0 0 6px;max-width:100%}.pdf-import-fig img{display:block;max-width:100%;height:auto;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated)}.pdf-import-fig figcaption{margin-top:4px;font-size:11px;color:var(--text-dim)}.pdf-import-imgpath{font-size:11px;word-break:break-all}.pdf-import-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.pdf-import-save-hint{font-size:12px;font-weight:600;color:var(--success)}.pdf-import-save-hint--pending{font-weight:500;color:var(--text-dim)}.pdf-import-empty{margin:0;font-size:13px;color:var(--text-dim)}.draft-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg-panel)}.draft-title{margin:0;font-size:16px;font-weight:600;flex:1 1 160px;min-width:140px}.draft-save-group{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:10px;margin-left:auto;flex-shrink:0;min-width:0}.draft-save-group .btn-save-bank,.draft-save-group .btn-clone-new{flex-shrink:0}.draft-save-hint{margin:0;min-width:0;max-width:min(380px,48vw);font-size:12px;line-height:1.35;color:var(--text-dim);text-align:left;overflow-wrap:anywhere}.draft-save-hint--ok{color:var(--success);font-weight:600}.draft-save-hint--err{color:#b91c1c;font-weight:500}.compose-controls{display:flex;flex-direction:column;gap:12px;margin-bottom:12px;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-panel)}.compose-controls .filter-chips .chip{border-radius:var(--radius-sm)}.compose-row{display:flex;flex-wrap:wrap;align-items:flex-end;row-gap:14px;column-gap:44px}.compose-row-labels{align-items:flex-end;column-gap:16px}.compose-paper-field{min-width:200px}.compose-paper-chips{margin-top:2px}.compose-row .filter-chips{gap:9px}.compose-auto-title{margin:0;font-size:12px;color:var(--text-muted)}.compose-auto-title code{font-size:11px;background:var(--bg-elevated);padding:2px 6px;border-radius:4px}.compose-field{display:flex;flex-direction:column;gap:6px;min-width:140px}.compose-field-full{flex:1;min-width:100%}textarea.compose-notes-ta{display:block;width:100%;box-sizing:border-box;min-height:30px;resize:vertical;max-height:12rem;overflow-y:auto}.compose-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.compose-label.compose-label--key{text-transform:none;letter-spacing:.02em}.compose-select{padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font-family:var(--font);font-size:13px;outline:none}.compose-select:focus{border-color:var(--accent-focus-border);box-shadow:0 0 0 2px var(--accent-focus-ring)}.compose-field-sm{min-width:0;max-width:220px}.compose-field-meta-free.compose-field-sm{flex:0 0 clamp(160px,26vw,220px);width:clamp(160px,26vw,220px);min-width:clamp(160px,26vw,220px);max-width:clamp(160px,26vw,220px)}.compose-select-sm{padding:5px 8px;font-size:12px;max-width:100%}.compose-field-combobox .compose-combobox{width:100%}.compose-combobox{position:relative}.compose-suggest-list{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 3px);margin:0;padding:4px 0;list-style:none;max-height:200px;overflow-y:auto;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);box-shadow:0 8px 24px #0000002e}.compose-suggest-item{padding:6px 10px;font-size:12px;cursor:pointer;color:var(--text)}.compose-suggest-item:hover,.compose-suggest-item--active{background:var(--accent-dim);color:var(--text)}.compose-level-chips{margin-top:2px}.compose-field-usage-inline{flex:0 1 100px;min-width:72px;max-width:120px}.compose-field-source-inline{flex:0 1 220px;min-width:0;max-width:220px}.compose-usage-input,.compose-source-input{max-width:100%;width:100%;box-sizing:border-box}.compose-hint{font-size:11px;color:var(--text-dim);line-height:1.35}.compose-hint code{font-size:10px;background:var(--bg-elevated);padding:1px 4px;border-radius:3px}.compose-banner{margin-bottom:10px}.compose-editor-mode{display:flex;flex-direction:column;flex:1;min-height:0;margin-top:10px}.compose-editor-shell{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 1px 2px #0f172a0d,0 8px 24px #0f172a0f;overflow:hidden}.compose-editor-tab-bar{display:flex;flex-wrap:nowrap;flex-shrink:0;gap:4px;padding:0 8px 0 12px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fafbfc 0%,var(--bg-panel) 100%)}.compose-editor-tab{position:relative;margin:0 0 -1px;padding:12px 16px 11px;display:flex;flex-direction:column;align-items:flex-start;gap:1px;font:inherit;color:var(--text-dim);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .16s ease,border-color .16s ease,background .16s ease}.compose-editor-tab-label{font-size:13px;font-weight:600;letter-spacing:.01em;line-height:1.2}.compose-editor-tab-hint{font-size:10px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);opacity:.72;line-height:1.2}.compose-editor-tab:hover:not(:disabled):not(.compose-editor-tab--active){color:var(--text);background:#0284c70a}.compose-editor-tab:hover:not(:disabled):not(.compose-editor-tab--active) .compose-editor-tab-hint{opacity:.88}.compose-editor-tab.compose-editor-tab--active{color:var(--text);border-bottom-color:var(--accent);background:linear-gradient(180deg,rgba(2,132,199,.06) 0%,transparent 65%)}.compose-editor-tab.compose-editor-tab--active .compose-editor-tab-label{color:var(--accent)}.compose-editor-tab.compose-editor-tab--active .compose-editor-tab-hint{color:var(--text-muted);opacity:.95}.compose-editor-tab:disabled{opacity:.42;cursor:not-allowed}.compose-editor-body{flex:1;min-height:0;display:flex;flex-direction:column;padding:14px 16px 16px;background:var(--bg-panel);overflow:auto}.compose-editor-tabpanel{display:flex;flex-direction:column;flex:1;min-height:0;padding-top:0}.compose-form-error{margin-bottom:10px}.compose-draft-form{flex:1;min-height:200px;overflow:auto;padding-right:4px}.compose-draft-form-h3{margin:16px 0 8px;font-size:12px;font-weight:600;color:var(--text-dim);letter-spacing:.02em}.compose-draft-form-h3:first-child{margin-top:0}.compose-draft-parts-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:16px 0 8px}.compose-draft-parts-toolbar .compose-draft-form-h3{margin:0}.compose-draft-add-part-row{margin:12px 0 10px}.compose-draft-part-legend{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:0 2px 6px 0;margin:0 0 6px;border-bottom:1px solid var(--border);font-size:13px}.compose-draft-form-hint{margin:-4px 0 10px;font-size:11px;line-height:1.45;color:var(--text-muted)}.compose-draft-form .pdf-import-part{background:#f2f5f9;background:color-mix(in srgb,var(--bg-panel) 58%,var(--bg-deep) 42%);border-color:var(--border-strong);box-shadow:0 1px 3px #0f172a0f}.compose-draft-figures-section{margin-top:4px;padding:12px 12px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated)}.compose-draft-figures-section .compose-draft-form-h3{margin-top:0}.compose-draft-upload-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px}.compose-draft-btn{flex:0 0 auto;align-self:flex-start;padding:5px 11px;font-size:12px;font-weight:600;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-panel);color:var(--text);cursor:pointer;line-height:1.3;transition:background .12s,border-color .12s,color .12s}.compose-draft-btn:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--accent)}.compose-draft-btn--danger{border-color:#fca5a5d9;background:#fef2f2a6;color:#b91c1c}.compose-draft-btn--danger:hover{background:#fef2f2;border-color:#f87171;color:#991b1b}.compose-draft-file-input{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.compose-draft-figures{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:12px}.compose-draft-fig-row{display:grid;grid-template-columns:112px minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;row-gap:6px;align-items:start;padding-top:10px;border-top:1px solid var(--border)}.compose-draft-fig-row:first-child{padding-top:0;border-top:none}.compose-draft-fig-thumb{grid-column:1;grid-row:2;margin:0;flex-shrink:0;width:112px;border-radius:var(--radius-sm);border:1px solid var(--border);overflow:hidden;background:var(--bg-panel)}.compose-draft-fig-thumb img{display:block;width:100%;height:auto;max-height:84px;object-fit:cover}.compose-draft-fig-fields{grid-column:2;grid-row:2;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.compose-draft-fig-label{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 10px;width:100%;max-width:min(100%,520px);margin:0;font-size:11px;font-weight:600;color:var(--text-dim)}.compose-draft-fig-label-text{flex:0 0 auto;min-width:18ch;letter-spacing:.02em;white-space:nowrap}.compose-draft-fig-input{flex:1 1 140px;min-width:0}.compose-draft-fig-name-row{grid-column:1 / -1;grid-row:1;display:flex;align-items:flex-start;gap:6px;min-width:0}.compose-draft-fig-name{flex:0 1 auto;min-width:0;max-width:calc(100% - 24px);font-size:11px;font-weight:600;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;color:var(--text-muted);word-break:break-all}.compose-draft-fig-remove{flex-shrink:0;box-sizing:border-box;width:16px;height:16px;margin:0;padding:0;display:grid;place-items:center;font-size:12px;font-weight:600;line-height:0;color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border);border-radius:3px;cursor:pointer;transition:color .12s,background .12s,border-color .12s}.compose-draft-fig-remove:hover{color:#b91c1c;border-color:#fca5a5;background:#fef2f2}.draft-layout{display:grid;grid-template-columns:minmax(280px,1fr) minmax(280px,1fr);gap:16px;flex:1;min-height:0;padding:12px 16px 16px}@media (max-width: 900px){.draft-layout{grid-template-columns:1fr;grid-template-rows:minmax(200px,45%) 1fr}}.draft-editor-col,.draft-preview-col{display:flex;flex-direction:column;min-height:0}.draft-format-cheatsheet{flex-shrink:0;margin:0 0 10px;font-size:12px;color:var(--text-muted);line-height:1.45;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated)}.draft-format-cheatsheet>summary{cursor:pointer;padding:6px 10px;font-weight:600;color:var(--text);list-style:none}.draft-format-cheatsheet>summary::-webkit-details-marker{display:none}.draft-format-cheatsheet-body{padding:2px 10px 8px 14px;border-top:1px solid var(--border)}.draft-format-cheatsheet-body ul{margin:4px 0 0;padding-left:1.15em}.draft-format-cheatsheet-body li{margin-bottom:4px}.draft-format-cheatsheet-body code,.draft-format-cheatsheet-body kbd{font-size:11px;padding:0 3px;border-radius:3px;background:var(--bg-deep);border:1px solid var(--border)}.draft-format-cheatsheet-body kbd{font-family:inherit;font-weight:600}.draft-label{font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:6px}.draft-textarea{flex:1;min-height:220px;width:100%;resize:vertical;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font-family:Cascadia Mono,Consolas,ui-monospace,monospace;font-size:13px;line-height:1.45;outline:none;tab-size:4;-moz-tab-size:4}.draft-textarea:focus{border-color:var(--accent-focus-border);box-shadow:0 0 0 2px var(--accent-focus-ring)}.draft-parse-status{flex-shrink:0;margin-bottom:8px}.draft-errors{padding:8px 12px;border-radius:var(--radius-sm);background:#fef2f2;color:#991b1b;font-size:12px;margin-bottom:6px}.draft-warnings{padding:8px 12px;border-radius:var(--radius-sm);background:#fffbeb;color:#92400e;font-size:12px;margin-bottom:6px}.draft-ok{font-size:12px;color:var(--success)}.draft-preview-shell{flex:1;min-height:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--bg-panel)}.draft-preview-shell .detail-pane{height:100%}.login-page{min-height:100%;display:grid;place-items:center;padding:24px;position:relative;overflow:hidden}.login-page-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 60% at 20% 10%,rgba(2,132,199,.18),transparent 55%),radial-gradient(ellipse 70% 50% at 90% 80%,rgba(109,40,217,.14),transparent 50%),linear-gradient(165deg,#e8f4fc 0%,var(--bg-deep) 42%,#e9eef5 100%);z-index:0}.login-page-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(15,23,42,.06) 1px,transparent 1px);background-size:22px 22px;opacity:.45}.login-card{position:relative;z-index:1;width:min(100%,420px);padding:36px 32px 28px;border-radius:16px;border:1px solid rgba(255,255,255,.75);background:#ffffffe0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 24px 48px #0f172a1f,0 2px 8px #0f172a0f}.login-brand{text-align:center;margin-bottom:28px}.login-logo{width:56px;height:56px;margin:0 auto 14px;border-radius:14px;display:grid;place-items:center;font-weight:700;font-size:18px;letter-spacing:-.02em;color:#fff;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);box-shadow:0 8px 20px #0284c759}.login-title{margin:0;font-size:1.35rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}.login-subtitle{margin:8px 0 0;font-size:.92rem;color:var(--text-muted)}.login-form{display:flex;flex-direction:column;gap:16px}.login-field{display:flex;flex-direction:column;gap:6px}.login-label{font-size:.82rem;font-weight:600;color:var(--text-muted)}.login-field input{padding:11px 13px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:#fff;transition:border-color .15s,box-shadow .15s}.login-field input:focus{outline:none;border-color:var(--accent-focus-border);box-shadow:0 0 0 3px var(--accent-focus-ring)}.login-error{margin:0;padding:10px 12px;border-radius:var(--radius-sm);font-size:.88rem;color:#b91c1c;background:#fee2e2d9;border:1px solid rgba(252,165,165,.6)}.login-submit{margin-top:4px;padding:12px 16px;border:none;border-radius:var(--radius-sm);font-weight:600;color:#fff;cursor:pointer;background:linear-gradient(135deg,#0369a1 0%,var(--accent) 45%,#0ea5e9 100%);box-shadow:0 4px 14px #0284c759;transition:transform .12s,box-shadow .12s,opacity .12s}.login-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px #0284c766}.login-submit:disabled{opacity:.7;cursor:wait}.login-footnote{margin:22px 0 0;text-align:center;font-size:.78rem;color:var(--text-dim)}.auth-loading{min-height:100%;display:grid;place-items:center;background:var(--bg-deep)}.auth-loading-card{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-muted)}.auth-loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:auth-spin .75s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.status-bar-user{display:inline-flex;align-items:center;gap:8px;margin-right:10px;font-size:12px;color:var(--text-muted)}.status-bar-role{padding:2px 8px;border-radius:999px;font-size:10px;font-weight:600;color:#0369a1;background:var(--accent-dim);border:1px solid rgba(2,132,199,.2)}.status-bar-logout{margin-right:10px;padding:4px 10px;font-size:11px}
