:root{--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", sans-serif;--mono: "SF Mono", "JetBrains Mono", Consolas, "Courier New", monospace;--r-sm: 5px;--r-md: 7px;--r-lg: 10px;--r-xl: 14px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--titlebar-h: 38px;--statusbar-h: 26px;--ribbon-w: 48px;--tree-w: 230px;--desk-w: 340px;--fs-0: 10.5px;--fs-1: 12px;--fs-2: 13px;--fs-3: 14px;--fs-4: 16px;--fs-5: 20px;--fs-6: 28px;--fs-7: 24px;--fs-num: 26px;--content-max: 1080px;--shadow-card: none;--warn-ink: #1e1e20;--ok-ink: #1e1e20;--err-ink: #17161d;--pagehead-h: 64px;--pagehead-pad-x: var(--sp-6)}[data-theme=dark]{--bg-0: #161618;--bg-1: #1e1e20;--bg-2: #26262a;--bg-3: #2e2e33;--bg-4: #38383e;--border: #34343a;--border-soft: #2b2b31;--text-1: #e8e8ea;--text-2: #a6a6ae;--text-3: #8b8b94;--accent: #8a7cf5;--accent-hover: #9d91f7;--accent-soft: rgba(138, 124, 245, .16);--accent-contrast: #17161d;--err-ink: #ffffff;--ok: #4caf7d;--warn: #e0a34e;--err: #e05d5d;--shadow: 0 8px 28px rgba(0, 0, 0, .5);--shadow-lg: 0 18px 48px rgba(0, 0, 0, .62);--strand-quest: #8a7cf5;--strand-fire: #c98fd4;--strand-const: #7ea3c4;--fq-scene: #7cc4dc;--fq-character: #e0b26a;--fq-dialogue-bg: rgba(138, 124, 245, .07);--fq-warn-bg: rgba(224, 163, 78, .14);--adapt-delete: #e05d5d;--adapt-merge: #7cc4dc;--adapt-add: #4caf7d;--adapt-edit: #e0b26a;--adapt-psych: #b48ef0;--ep-status-draft: #7cc4dc}[data-theme=light]{--bg-0: #e8e8ea;--bg-1: #ffffff;--bg-2: #f4f4f5;--bg-3: #fafafa;--bg-4: #ececef;--border: #e0e0e3;--border-soft: #ebebee;--text-1: #2b2b30;--text-2: #6a6a72;--text-3: #84848d;--accent: #6c5ce7;--accent-hover: #5a4bd6;--accent-soft: rgba(108, 92, 231, .12);--accent-contrast: #ffffff;--shadow-card: 0 1px 2px rgba(17, 17, 22, .05);--ok: #2f9e6e;--warn: #d18a1f;--err: #cc3d3d;--shadow: 0 10px 30px rgba(0, 0, 0, .18);--shadow-lg: 0 20px 50px rgba(0, 0, 0, .26);--strand-quest: #6c5ce7;--strand-fire: #a855c4;--strand-const: #4d7fa8;--fq-scene: #1f7a9c;--fq-character: #a86a1c;--fq-dialogue-bg: rgba(108, 92, 231, .06);--fq-warn-bg: rgba(209, 138, 31, .14);--adapt-delete: #c73e3e;--adapt-merge: #1f7a9c;--adapt-add: #2f7d55;--adapt-edit: #a86a1c;--adapt-psych: #7a5cd0;--ep-status-draft: #1f7a9c}body,body *{transition-property:background-color,border-color;transition-duration:.15s;transition-timing-function:ease}.btn,.ribbon-btn,.tree-row,input,select,textarea{transition-property:none}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font);background:var(--bg-1);color:var(--text-1);font-size:var(--fs-3);line-height:1.55;overflow:hidden;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}code{font-family:var(--mono);font-size:.86em;background:var(--bg-4);padding:1px 5px;border-radius:4px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--bg-4);border-radius:6px;border:2px solid var(--bg-1)}::-webkit-scrollbar-track{background:transparent}[hidden]{display:none!important}button:focus-visible,a:focus-visible,select:focus-visible,[role=tab]:focus-visible,.tree-item:focus-visible{outline:2px solid var(--accent);outline-offset:1px}*{scrollbar-width:thin;scrollbar-color:var(--bg-4) transparent}.titlebar{height:var(--titlebar-h);display:flex;align-items:center;gap:var(--sp-3);background:var(--bg-0);border-bottom:1px solid var(--border-soft);padding:0 var(--sp-3);-webkit-user-select:none;user-select:none}.win-dots{display:flex;gap:7px}.win-dots span{width:12px;height:12px;border-radius:50%;background:var(--bg-4)}.win-dots span:nth-child(1){background:var(--err)}.win-dots span:nth-child(2){background:var(--warn)}.win-dots span:nth-child(3){background:var(--ok)}.titlebar-title{flex:1;text-align:center;color:var(--text-2);font-size:var(--fs-2);letter-spacing:.2px}.titlebar-btn{background:none;border:none;color:var(--text-2);font-size:var(--fs-3);padding:4px 8px;border-radius:var(--r-sm);white-space:nowrap}.titlebar-btn:hover{background:var(--bg-3);color:var(--text-1)}.workbench{display:flex;height:calc(100% - var(--titlebar-h) - var(--statusbar-h));overflow:hidden}.ribbon{width:var(--ribbon-w);background:var(--bg-0);border-right:1px solid var(--border-soft);display:flex;flex-direction:column;align-items:center;padding:var(--sp-2) 0;gap:var(--sp-1)}.ribbon-btn{width:36px;height:36px;border:none;background:none;border-radius:var(--r-md);color:var(--text-3);display:grid;place-items:center;transition:.15s;position:relative}.ribbon-btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.ribbon-btn:hover{background:var(--bg-2);color:var(--text-1)}.ribbon-btn.is-active{color:var(--accent);background:var(--accent-soft)}.ribbon-spacer{flex:1}.ribbon-btn:after{content:attr(data-tip);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);background:var(--bg-4);color:var(--text-1);border:1px solid var(--border);padding:3px 9px;border-radius:var(--r-sm);font-size:var(--fs-1);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s;z-index:60}.ribbon-btn:before{content:"";position:absolute;left:calc(100% + 6px);top:50%;width:7px;height:7px;transform:translateY(-50%) rotate(45deg);background:var(--bg-4);border-left:1px solid var(--border);border-bottom:1px solid var(--border);opacity:0;pointer-events:none;transition:opacity .12s;z-index:61}.ribbon-btn:hover:after,.ribbon-btn:focus-visible:after,.ribbon-btn:hover:before,.ribbon-btn:focus-visible:before{opacity:1}.filetree{width:var(--tree-w);background:var(--bg-2);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:auto}.pane-header{padding:var(--sp-3) var(--sp-4);font-weight:600;font-size:var(--fs-2);display:flex;align-items:center;gap:var(--sp-2);border-bottom:1px solid var(--border-soft);color:var(--text-1)}.pane-badge{font-size:var(--fs-1);font-weight:500;color:var(--accent);background:var(--accent-soft);padding:1px 7px;border-radius:99px}.tree{padding:var(--sp-2);font-size:var(--fs-2);color:var(--text-2);overflow:auto;flex:1}.tree-item{padding:5px 8px;border-radius:var(--r-sm);display:flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}.tree-item:hover{background:var(--bg-3);color:var(--text-1)}.tree-folder{font-weight:600;color:var(--text-1)}.tree-arrow{color:var(--text-3);font-size:var(--fs-1);width:12px;flex:none}.tree-children{padding-left:18px}.tree-file.is-active{background:var(--accent-soft);color:var(--accent);font-weight:600}.tree-file.is-current:not(.is-active){color:var(--accent);box-shadow:inset 2px 0 0 var(--accent)}.book-select{margin-left:auto;max-width:88px;background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);font-size:var(--fs-1);padding:2px 4px;border-radius:var(--r-sm);outline:none}.pane-section{display:flex;flex-direction:column;min-height:140px;flex:1 1 50%}.pane-section+.pane-section{border-top:1px solid var(--border)}.pane-section.is-collapsed{flex:0 0 auto;min-height:0}.pane-section.is-collapsed .tree{display:none}.sec-header{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-1);font-weight:600;color:var(--text-3);display:flex;align-items:center;gap:6px}.sec-collapse{display:inline-flex;padding:2px;background:none;border:none;cursor:pointer;color:var(--text-3);border-radius:var(--r-sm);line-height:1}.sec-collapse:hover{color:var(--text-1);background:var(--bg-3)}.sec-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.sec-badge{font-size:var(--fs-1);font-weight:500;color:var(--text-3);background:var(--bg-3);padding:0 7px;border-radius:99px;flex:none}.sec-actions{display:inline-flex;gap:2px;flex:none}.vault-actions{display:none;gap:2px;flex:none}.tree-item:hover .vault-actions{display:inline-flex}.vault-action-btn{display:inline-flex;padding:2px;background:none;border:none;cursor:pointer;color:var(--text-3);border-radius:var(--r-sm);line-height:1}.vault-action-btn:hover{color:var(--text-1);background:var(--bg-3)}.vault-action-btn.is-danger:hover{color:var(--err)}.tree-item.is-selected,.tree-item.is-current-book{background:var(--accent-soft);color:var(--accent)}.tree-item.is-current-book .book-meta{color:var(--accent)}.book-meta{flex:none;font-size:var(--fs-1);color:var(--text-3)}.vault-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.tree-inline-input{flex:1;min-width:0;font:inherit;color:var(--text-1);background:var(--bg-1);border:1px solid var(--accent);border-radius:var(--r-sm);padding:1px 4px;outline:none}.tree-controls{display:flex;align-items:center;gap:4px;padding:2px 8px 6px;border-bottom:1px solid var(--border-soft)}.tree-search{display:flex;align-items:center;gap:4px;flex:1;min-width:0;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-sm);padding:0 5px;color:var(--text-3)}.tree-search:focus-within{border-color:var(--accent)}.tree-search input{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--text-1);font:inherit;font-size:var(--fs-1);padding:4px 0}.tree-sort{flex:none;font:inherit;font-size:var(--fs-1);color:var(--text-1);background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-sm);padding:3px 4px;outline:none;cursor:pointer}.tree-sort:focus{border-color:var(--accent)}.tree-sys-toggle{display:inline-flex;align-items:center;justify-content:center;flex:none;background:none;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-3);cursor:pointer;padding:3px;line-height:1;transition:.15s}.tree-sys-toggle:hover{color:var(--text-1);border-color:var(--accent)}.tree-sys-toggle.is-on{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.mainpane{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg-1)}.tabbar{display:flex;align-items:center;background:var(--bg-2);border-bottom:1px solid var(--border);padding:0 var(--sp-2)}.workspace-tab{padding:8px 16px;font-size:var(--fs-2);color:var(--text-1);border-right:1px solid var(--border-soft);background:var(--bg-1);position:relative;-webkit-user-select:none;user-select:none}.workspace-tab.is-active:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent)}.workspace-tab.ghost{color:var(--text-3);background:transparent;border:none;cursor:pointer}.workspace-tab.ghost:hover{color:var(--text-1)}.workspace-tab{flex-shrink:0;border:none;border-right:1px solid var(--border-soft);display:inline-flex;align-items:center;gap:4px;max-width:220px;white-space:nowrap;cursor:pointer}.workspace-tab .tab-label{overflow:hidden;text-overflow:ellipsis}.workspace-tab .tab-close{margin-left:6px;font-size:var(--fs-1);line-height:1;flex:none;color:var(--text-3);opacity:.55;padding:1px 4px;border-radius:var(--r-sm);transition:.12s}.workspace-tab .tab-close:hover{color:var(--err);opacity:1}.tabbar-scroll{display:flex;align-items:center;flex:1;min-width:0;overflow-x:auto}.quickopen-wrap{position:relative;display:inline-flex;flex:none}.quickopen-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:280px;z-index:110;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:5px;animation:pop .14s ease}.quickopen-title{font-size:var(--fs-1);font-weight:700;color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;padding:7px 10px 5px}.quickopen-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;color:var(--text-2);font-size:var(--fs-2);padding:7px 10px;border-radius:var(--r-sm)}.quickopen-item:hover{background:var(--bg-3);color:var(--text-1)}.quickopen-num{font-family:var(--mono);color:var(--text-3);font-size:var(--fs-1);flex:none}.quickopen-chapter-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quickopen-empty{padding:14px 10px;text-align:center;color:var(--text-3);font-size:var(--fs-1)}.quickopen-divider{height:1px;background:var(--border-soft);margin:4px 6px}.quickopen-all{color:var(--accent);font-weight:600}.mainpane-view{display:none;flex:1;min-height:0;overflow:auto}.mainpane-view.is-active{display:block}.dashboard{flex:1;overflow:auto;padding:var(--sp-6)}.dash-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-4)}.dash-title h1{font-size:var(--fs-7);font-weight:700}.dash-sub{color:var(--text-2);font-size:var(--fs-2)}.dash-actions{display:flex;gap:var(--sp-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--bg-3);color:var(--text-1);border:1px solid var(--border);padding:7px 14px;border-radius:var(--r-md);font-size:var(--fs-2);transition:.15s;white-space:nowrap;position:relative}.btn>svg{flex:none}.btn:hover{background:var(--bg-4);border-color:var(--text-3)}.btn-primary{background:var(--accent);border-color:transparent;color:var(--accent-contrast);font-weight:600}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{background:var(--bg-4);color:var(--text-3);cursor:not-allowed;border-color:var(--border)}.btn-small{padding:4px 10px;font-size:var(--fs-1)}.btn-warn{background:var(--warn);border-color:transparent;color:var(--warn-ink);font-weight:600}.btn-block{width:100%;padding:10px;font-size:var(--fs-2)}.link-btn{display:inline-flex;align-items:center;gap:3px;background:none;border:none;color:var(--accent);font-size:var(--fs-1);padding:0;white-space:nowrap}.link-btn>svg{flex:none}.link-btn:hover{text-decoration:underline}.btn-label{display:inline}.btn[data-tip],.mini-btn[data-tip]{position:relative}@media(max-width:760px){.btn-label{display:none}.btn:has(>.btn-label){padding-left:9px;padding-right:9px}.btn-small:has(>.btn-label){padding-left:7px;padding-right:7px}.mini-btn:has(>.btn-label){padding-left:7px;padding-right:7px}.btn[data-tip]:after,.mini-btn[data-tip]:after{content:attr(data-tip);position:absolute;top:calc(100% + 9px);left:50%;transform:translate(-50%);background:var(--bg-4);color:var(--text-1);border:1px solid var(--border);padding:3px 9px;border-radius:var(--r-sm);font-size:var(--fs-1);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s;z-index:70}.btn[data-tip]:before,.mini-btn[data-tip]:before{content:"";position:absolute;top:calc(100% + 6px);left:50%;width:7px;height:7px;transform:translate(-50%) rotate(45deg);background:var(--bg-4);border-left:1px solid var(--border);border-top:1px solid var(--border);opacity:0;pointer-events:none;transition:opacity .12s;z-index:71}.btn.tip-up[data-tip]:after,.mini-btn.tip-up[data-tip]:after{top:auto;bottom:calc(100% + 9px)}.btn.tip-up[data-tip]:before,.mini-btn.tip-up[data-tip]:before{top:auto;bottom:calc(100% + 6px);border-left:none;border-top:none;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.btn[data-tip]:hover:after,.btn[data-tip]:focus-visible:after,.btn[data-tip]:hover:before,.btn[data-tip]:focus-visible:before,.mini-btn[data-tip]:hover:after,.mini-btn[data-tip]:focus-visible:after,.mini-btn[data-tip]:hover:before,.mini-btn[data-tip]:focus-visible:before{opacity:1}}.dash-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:var(--sp-5)}.dash-tab,.skills-tab{background:none;border:none;color:var(--text-2);font-size:var(--fs-2);padding:9px 16px;border-bottom:2px solid transparent;margin-bottom:-1px;transition:.15s}.dash-tab:hover,.skills-tab:hover{color:var(--text-1)}.dash-tab.is-active,.skills-tab.is-active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.dash-panel{display:none;animation:fade .18s ease}.dash-panel.is-active{display:block}@keyframes fade{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4);margin-bottom:var(--sp-5)}.stat-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5)}.stat-num{font-size:var(--fs-num);font-weight:700;letter-spacing:.3px;font-variant-numeric:tabular-nums}.stat-num.accent{color:var(--accent)}.stat-total{font-size:var(--fs-3);color:var(--text-3);font-weight:500}.stat-label{color:var(--text-2);font-size:var(--fs-1);margin-top:2px}.stat-bar{height:4px;background:var(--bg-4);border-radius:99px;margin-top:10px;overflow:hidden}.stat-bar i{display:block;height:100%;background:var(--accent);border-radius:99px}.stat-bar.ok i{background:var(--ok)}.overview-cols{display:grid;grid-template-columns:1fr 1.3fr;gap:var(--sp-4);margin-bottom:var(--sp-5)}.panel-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5)}.panel-title{font-weight:600;font-size:var(--fs-3);margin-bottom:var(--sp-4);display:flex;justify-content:space-between;align-items:center}.strand-row{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}.strand-name{width:88px;color:var(--text-2);font-size:var(--fs-2)}.strand-bar{flex:1;height:8px;background:var(--bg-4);border-radius:99px;overflow:hidden}.strand-bar i{display:block;height:100%;background:var(--accent);border-radius:99px}.strand-bar.fire i{background:var(--strand-fire)}.strand-bar.const i{background:var(--strand-const)}.strand-val{width:38px;text-align:right;font-weight:600;font-size:var(--fs-2)}.strand-warn{margin-top:var(--sp-3);padding:8px 12px;border-radius:var(--r-md);font-size:var(--fs-1);background:color-mix(in srgb,var(--warn) 12%,transparent);color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent);display:flex;align-items:center;gap:6px}.strand-warn b{margin:0 2px}.recent-list{list-style:none}.recent-list li{display:flex;align-items:center;gap:var(--sp-3);padding:8px 0;border-bottom:1px solid var(--border-soft);font-size:var(--fs-2)}.recent-list li:last-child{border-bottom:none}.recent-ch{color:var(--text-3);width:64px;font-family:var(--mono);font-size:var(--fs-1)}.recent-title{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-score{font-weight:700;color:var(--accent);width:34px;text-align:right}.recent-badge{margin-left:4px}.badge{font-size:var(--fs-1);padding:2px 8px;border-radius:99px;font-weight:600;white-space:nowrap}.badge.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}.badge.warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent)}.badge.err{color:var(--err);background:color-mix(in srgb,var(--err) 14%,transparent)}.chart{width:100%;height:auto;aspect-ratio:4 / 1;display:block}.chart.tall{aspect-ratio:32 / 11}.chart.clickable{cursor:pointer}.panel-toolbar{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-4);flex-wrap:wrap}.toolbar-hint{color:var(--text-3);font-size:var(--fs-1)}.table{width:100%;border-collapse:collapse;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.table th{text-align:left;padding:10px 14px;font-size:var(--fs-1);color:var(--text-2);font-weight:600;background:var(--bg-3);border-bottom:1px solid var(--border)}.table td{padding:11px 14px;border-bottom:1px solid var(--border-soft);font-size:var(--fs-2)}.table tbody tr{transition:.12s}.table tbody tr:hover{background:var(--bg-3)}.table tbody tr:last-child td{border-bottom:none}.table .c-num{font-family:var(--mono);color:var(--text-3);font-size:var(--fs-1)}.table .c-title{font-weight:500}.table .c-score{font-weight:700;color:var(--accent)}.table .row-actions{display:flex;gap:6px;opacity:0;transition:.15s}.table tr:hover .row-actions,.table tr:focus-within .row-actions{opacity:1}.mini-btn{display:inline-flex;align-items:center;gap:4px;background:var(--bg-4);border:1px solid var(--border);color:var(--text-1);font-size:var(--fs-1);padding:3px 10px;border-radius:var(--r-sm);white-space:nowrap}.mini-btn>svg{flex:none}.mini-btn:hover{background:var(--accent);border-color:transparent;color:var(--accent-contrast)}.settings-layout{display:grid;grid-template-columns:230px 1fr;gap:var(--sp-4);min-height:420px}.settings-tree{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);display:flex;flex-direction:column}.setting-tree-list{overflow-y:auto;flex:1;padding-bottom:8px}.set-item{padding:9px 12px;border-radius:var(--r-md);color:var(--text-2);font-size:var(--fs-2);cursor:pointer;margin-bottom:2px;display:flex;align-items:center;gap:6px}.set-item:hover{background:var(--bg-3);color:var(--text-1)}.set-item.is-active{background:var(--accent-soft);color:var(--accent);font-weight:600}.settings-editor{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);display:flex;flex-direction:column;overflow:hidden}.editor-head{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);font-weight:600;background:var(--bg-3)}.setting-textarea{flex:1;background:var(--bg-1);border:none;outline:none;resize:none;padding:var(--sp-4);color:var(--text-1);font-family:var(--mono);font-size:var(--fs-2);line-height:1.7;min-height:300px}.bio-panel{border-bottom:1px solid var(--border-soft);background:var(--bg-3);display:flex;flex-direction:column}.bio-panel-head{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);padding:8px var(--sp-4)}.bio-panel-title{font-size:var(--fs-1);font-weight:600;color:var(--text-2);white-space:nowrap}.bio-panel-actions{display:flex;align-items:center;gap:8px;flex:1;justify-content:flex-end}.bio-hint{max-width:320px}.bio-textarea{background:var(--bg-1);border:none;border-top:1px solid var(--border-soft);outline:none;resize:vertical;padding:10px var(--sp-4);color:var(--text-1);font-size:var(--fs-2);line-height:1.7;min-height:110px;max-height:300px}.bio-textarea::placeholder{color:var(--text-3)}.editor-foot{padding:8px var(--sp-4);border-top:1px solid var(--border-soft);color:var(--text-3);font-size:var(--fs-1)}.board{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}.board-col{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-3);min-height:280px;display:flex;flex-direction:column}.board-head{font-weight:600;font-size:var(--fs-2);padding:0 4px var(--sp-3);display:flex;justify-content:space-between;color:var(--text-2)}.board-count{background:var(--bg-4);border-radius:99px;padding:0 8px;font-size:var(--fs-1);color:var(--text-3)}.fs-card{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:0;font-size:var(--fs-2);cursor:grab;transition:transform .15s,box-shadow .15s,opacity .15s}.fs-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.fs-card.dragging{opacity:.4;cursor:grabbing}.fs-card .fs-title{font-weight:600;margin-bottom:4px}.fs-card .fs-meta{color:var(--text-3);font-size:var(--fs-1);margin-bottom:8px}.fs-card .fs-actions{display:flex;gap:6px}.board-hint{margin-top:var(--sp-4);color:var(--text-3);font-size:var(--fs-1)}.graph-card{padding-bottom:var(--sp-3)}.graph{width:100%;height:440px;display:block}.graph-legend{display:flex;gap:var(--sp-5);justify-content:center;color:var(--text-2);font-size:var(--fs-1);padding-top:var(--sp-2)}.graph-legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}.dot.role{background:var(--accent)}.dot.faction{background:var(--strand-const)}.dot.place{background:var(--ok)}.gnode{cursor:pointer}.gnode text{fill:var(--text-1);font-size:var(--fs-1);font-family:var(--font)}.gedge{stroke:var(--border);stroke-width:1.2}.gedge-label{fill:var(--text-3);font-size:var(--fs-1);font-family:var(--font)}.dim-row{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}.dim-name{width:88px;color:var(--text-2);font-size:var(--fs-2)}.dim-bar{flex:1;height:9px;background:var(--bg-4);border-radius:99px;overflow:hidden}.dim-bar i{display:block;height:100%;border-radius:99px;background:var(--accent)}.dim-bar.good i{background:var(--ok)}.dim-bar.bad i{background:var(--err)}.dim-bar.mid i{background:var(--warn)}.dim-val{width:36px;text-align:right;font-weight:700;font-size:var(--fs-2)}.dim-state{width:70px;font-size:var(--fs-1)}.desk{width:var(--desk-w);background:var(--bg-2);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:auto}.desk-state{margin-left:auto;font-size:var(--fs-1);color:var(--text-3);font-weight:500}.desk-state.run{color:var(--accent)}.desk-state.done{color:var(--ok)}.desk-state.err{color:var(--err)}.desk-controls{display:flex;gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--border-soft)}.desk-controls label{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-1);color:var(--text-2);flex:1}.input{background:var(--bg-1);border:1px solid var(--border);color:var(--text-1);padding:7px 10px;border-radius:var(--r-md);font-size:var(--fs-2);outline:none;width:100%}.input:focus{border-color:var(--accent)}.input:disabled{color:var(--text-3);background:var(--bg-2)}.input-num{font-family:var(--mono)}.input-lg{padding:11px 14px;font-size:var(--fs-3)}.gate-alert{margin:var(--sp-4);padding:var(--sp-3);border-radius:var(--r-md);background:color-mix(in srgb,var(--err) 10%,transparent);border:1px solid color-mix(in srgb,var(--err) 35%,transparent)}.gate-title{color:var(--err);font-weight:700;font-size:var(--fs-2);margin-bottom:4px}.gate-desc{font-size:var(--fs-1);color:var(--text-2);margin-bottom:8px}.pipeline{list-style:none;padding:var(--sp-4);display:flex;flex-direction:column;gap:2px}.pstep{display:flex;align-items:center;gap:var(--sp-3);padding:8px 10px;border-radius:var(--r-md);color:var(--text-3);transition:.2s;position:relative}.pstep .pdot{width:10px;height:10px;border-radius:50%;background:var(--bg-4);border:2px solid var(--border);flex:none;transition:.2s}.pstep .pname{flex:1;font-size:var(--fs-2)}.pstep .pstatus{font-size:var(--fs-1);font-weight:600}.pstep.is-todo{color:var(--text-3)}.pstep.is-run{color:var(--text-1);background:var(--bg-3)}.pstep.is-run .pdot{border-color:var(--accent);background:var(--accent-soft);animation:pulse 1s infinite}.pstep.is-run .pstatus{color:var(--accent)}.pstep.is-done{color:var(--text-2)}.pstep.is-done .pdot{background:var(--ok);border-color:var(--ok)}.pstep.is-done .pstatus{color:var(--ok)}.pstep.is-fail{color:var(--err)}.pstep.is-fail .pdot{background:var(--err);border-color:var(--err)}.pstep.is-fail .pstatus{color:var(--err)}@keyframes pulse{0%,to{box-shadow:0 0 0 0 var(--accent-soft)}50%{box-shadow:0 0 0 5px transparent}}.brief{margin:0 var(--sp-4) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-3);overflow:hidden}.brief-head{padding:9px 12px;font-weight:600;font-size:var(--fs-2);background:var(--bg-4);display:flex;justify-content:space-between;align-items:center}.brief-tag{font-size:var(--fs-1);color:var(--accent);background:var(--accent-soft);padding:1px 7px;border-radius:99px;font-weight:600}.brief-body{padding:var(--sp-3);font-size:var(--fs-2);color:var(--text-2)}.brief-body p{margin-bottom:7px}.brief-body b{color:var(--text-1)}.brief-forbid b{color:var(--err)}.pull{margin:0 var(--sp-4) var(--sp-4)}.pull-label{font-size:var(--fs-1);color:var(--text-2);margin-bottom:6px;display:flex;justify-content:space-between}.pull-label b{color:var(--accent);font-size:var(--fs-3)}.pull-bar{height:8px;background:var(--bg-4);border-radius:99px;overflow:hidden}.pull-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-hover));border-radius:99px;transition:width .8s ease}.desk-log{padding:0 var(--sp-4) var(--sp-4);font-family:var(--mono);font-size:var(--fs-1);color:var(--text-3);max-height:140px;overflow:auto}.desk-log div{padding:2px 0;border-bottom:1px dashed var(--border-soft)}.desk-log .lg-ok{color:var(--ok)}.desk-log .lg-run{color:var(--accent)}.desk-log .lg-err{color:var(--err)}.desk .btn-block{margin:0 var(--sp-4) var(--sp-4);width:calc(100% - 2 * var(--sp-4))}.statusbar{height:var(--statusbar-h);background:var(--bg-0);border-top:1px solid var(--border-soft);display:flex;align-items:center;gap:var(--sp-4);padding:0 var(--sp-4);font-size:var(--fs-1);color:var(--text-2);-webkit-user-select:none;user-select:none}.st-item b{color:var(--text-1);font-weight:600}.st-item .accent{color:var(--accent)}.st-spacer{flex:1}.st-pipeline{cursor:pointer;padding:2px 8px;border-radius:99px}.st-pipeline:hover{background:var(--bg-2)}.st-pipeline.run{color:var(--accent)}.st-pipeline.done{color:var(--ok)}.st-pipeline.err{color:var(--err)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fade .15s ease}.modal{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:88vh;overflow:hidden;animation:pop .18s cubic-bezier(.2,.9,.3,1.2)}@keyframes pop{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:none}}.modal-md{width:520px}.modal-lg{width:640px}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);font-weight:600;font-size:var(--fs-3)}.modal-close{background:none;border:none;color:var(--text-3);font-size:20px;line-height:1;padding:2px 8px;border-radius:var(--r-sm)}.modal-close:hover{background:var(--bg-3);color:var(--text-1)}.modal-body{padding:var(--sp-5);overflow:auto;flex:1}.modal-foot{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border)}.modal-foot-hint{flex:1;text-align:center;color:var(--text-3);font-size:var(--fs-1)}.wizard-progress{display:flex;justify-content:space-between;padding:var(--sp-4) var(--sp-6) 0;position:relative}.wizard-progress:before{content:"";position:absolute;top:calc(var(--sp-4) + 7px);left:12%;right:12%;height:2px;background:var(--border);z-index:0}.wprog-node{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:var(--fs-1);color:var(--text-3);position:relative;z-index:1;flex:1}.wprog-node i{width:14px;height:14px;border-radius:50%;background:var(--bg-3);border:2px solid var(--border);transition:.2s}.wprog-node.is-active{color:var(--accent);font-weight:600}.wprog-node.is-active i{border-color:var(--accent);background:var(--accent)}.wprog-node.is-done{color:var(--text-2)}.wprog-node.is-done i{border-color:var(--ok);background:var(--ok)}.wizard-step{display:none}.wizard-step.is-active{display:block;animation:fade .2s ease}.wizard-step h3{font-size:var(--fs-4);margin-bottom:var(--sp-4)}.wizard-step-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.wizard-step-head h3{margin-bottom:var(--sp-4)}.ai-assist-btn{display:inline-flex;align-items:center;gap:5px;background:var(--accent-soft);border:1px solid var(--accent);color:var(--accent);font:inherit;font-size:var(--fs-1);font-weight:600;padding:5px 12px;border-radius:99px;cursor:pointer;transition:.15s;flex:none}.ai-assist-btn:hover:not(:disabled){background:var(--accent);color:var(--accent-contrast)}.ai-assist-btn:disabled{opacity:.55;cursor:default}.ai-assist-btn.is-busy{animation:ai-pulse 1s ease-in-out infinite}@keyframes ai-pulse{50%{opacity:.6}}.chip-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2);margin-bottom:var(--sp-4)}.chip{background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);padding:8px 10px;border-radius:var(--r-md);font-size:var(--fs-2);transition:.15s;text-align:center}.chip:hover{border-color:var(--accent);color:var(--text-1)}.chip.is-active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.genre-groups{margin-bottom:var(--sp-4)}.genre-group{margin-bottom:10px}.genre-group-label{font-size:var(--fs-1);color:var(--text-3);letter-spacing:.05em;margin-bottom:6px}.genre-group-chips{gap:6px;margin-bottom:0}.field{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-2);color:var(--text-2);margin-bottom:var(--sp-3)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.tip{font-size:var(--fs-1);color:var(--text-3);background:var(--bg-2);border-left:3px solid var(--accent);padding:8px 12px;border-radius:0 var(--r-md) var(--r-md) 0;margin-bottom:var(--sp-3)}.wizard-summary{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);font-size:var(--fs-1);color:var(--text-2);margin-top:var(--sp-2)}.wizard-summary b{color:var(--text-1)}.verdict-lead{color:var(--text-2);margin-bottom:var(--sp-4)}.verdict-lead b{color:var(--err)}.verdict-item{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);margin-bottom:var(--sp-4);background:var(--bg-2)}.verdict-tag{display:inline-block;font-size:var(--fs-1);font-weight:700;padding:2px 9px;border-radius:99px;margin-bottom:8px}.tag-block{color:var(--err);background:color-mix(in srgb,var(--err) 15%,transparent)}.tag-warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 15%,transparent)}.verdict-desc{font-size:var(--fs-2);margin-bottom:6px}.verdict-desc b{color:var(--text-1)}.verdict-evidence{font-family:var(--mono);font-size:var(--fs-1);color:var(--text-3);margin-bottom:6px}.verdict-advice{font-size:var(--fs-1);color:var(--accent);background:var(--accent-soft);padding:7px 10px;border-radius:var(--r-sm);margin-bottom:10px}.verdict-opts{display:flex;gap:var(--sp-4);flex-wrap:wrap}.verdict-opts label{display:flex;align-items:center;gap:6px;font-size:var(--fs-2);color:var(--text-2);cursor:pointer}.verdict-opts input{accent-color:var(--accent)}.query-quick{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin:var(--sp-3) 0 var(--sp-4)}.query-result{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-2);padding:var(--sp-4)}.qr-head{font-weight:700;font-size:var(--fs-3);margin-bottom:var(--sp-3)}.qr-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--border-soft);font-size:var(--fs-2)}.qr-row span{color:var(--text-3)}.qr-row b{color:var(--text-1);font-weight:600}.qr-row.warn b{color:var(--warn)}.qr-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-3)}.qr-none{text-align:center;color:var(--text-3);font-size:var(--fs-2);padding:18px 0}.doctor-overall{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);font-weight:600;margin-bottom:var(--sp-4)}.doctor-overall.warn{background:color-mix(in srgb,var(--warn) 10%,transparent);color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent)}.doctor-overall.ok{background:color-mix(in srgb,var(--ok) 10%,transparent);color:var(--ok);border:1px solid color-mix(in srgb,var(--ok) 30%,transparent)}.doctor-overall.err{background:color-mix(in srgb,var(--err) 10%,transparent);color:var(--err);border:1px solid color-mix(in srgb,var(--err) 30%,transparent)}.doctor-list{list-style:none}.doctor-list li{display:flex;align-items:center;gap:var(--sp-3);padding:11px 4px;border-bottom:1px solid var(--border-soft);font-size:var(--fs-2)}.doctor-list li:last-child{border-bottom:none}.doctor-list i{font-style:normal}.doctor-list div{flex:1}.doctor-list b{display:block;font-weight:600}.doctor-list span{color:var(--text-3);font-size:var(--fs-1)}.settings-body{display:block}.set-group{margin-bottom:var(--sp-5);padding-bottom:var(--sp-5);border-bottom:1px solid var(--border-soft)}.set-group:last-child{border-bottom:none}.set-group-title{font-weight:700;font-size:var(--fs-2);margin-bottom:var(--sp-3);display:flex;align-items:center;gap:var(--sp-2)}.radio-row{display:flex;align-items:center;gap:8px;padding:7px 0;font-size:var(--fs-2);cursor:pointer}.radio-row input{accent-color:var(--accent)}.tag-ok{font-size:var(--fs-1);color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent);padding:1px 7px;border-radius:99px;font-weight:600}.tag-dim{font-size:var(--fs-1);color:var(--text-3);background:var(--bg-3);padding:1px 7px;border-radius:99px}.engine-config{margin:var(--sp-3) 0 0 var(--sp-5);padding:var(--sp-4);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md)}.conn-ok{color:var(--ok);font-size:var(--fs-1);font-weight:600;margin-left:8px}.set-group.about{color:var(--text-2);font-size:var(--fs-1);line-height:1.8}.toast-wrap{position:fixed;right:18px;bottom:calc(var(--statusbar-h) + 14px);display:flex;flex-direction:column;gap:8px;z-index:200}.toast{background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);padding:11px 16px;border-radius:var(--r-md);font-size:var(--fs-2);box-shadow:var(--shadow);display:flex;align-items:center;gap:8px;animation:toastIn .25s cubic-bezier(.2,.9,.3,1.2);max-width:340px}.toast.ok{border-left:3px solid var(--ok)}.toast.warn{border-left:3px solid var(--warn)}.toast.err{border-left:3px solid var(--err)}.toast.accent{border-left:3px solid var(--accent)}.toast.out{animation:toastOut .25s ease forwards}@keyframes toastIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes toastOut{to{opacity:0;transform:translate(24px)}}.chip-sm{padding:3px 10px;font-size:var(--fs-1);border-radius:99px}.filter-chips{display:flex;gap:6px;flex-wrap:wrap}.filter-chips .chip{background:var(--bg-2);border:1px solid var(--border);color:var(--text-2)}.filter-chips .chip.is-active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.btn-danger-ghost{background:none;border:1px solid var(--border);color:var(--err)}.btn-danger-ghost:hover{border-color:var(--err);background:color-mix(in srgb,var(--err) 10%,transparent)}.toolbar-field{display:flex;align-items:center;gap:8px;font-size:var(--fs-1);color:var(--text-2)}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}th.sortable:hover{color:var(--accent)}.sort-arrow{display:inline-block;width:10px;font-size:9px;color:var(--accent);opacity:0;transition:opacity .15s}th.sorted .sort-arrow{opacity:1}.table.clickable tbody tr{cursor:pointer}.drawer-sec-title{font-size:var(--fs-1);font-weight:700;color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px}.set-group-label{font-size:var(--fs-1);font-weight:700;color:var(--text-3);letter-spacing:.1em;padding:10px 8px 4px;text-transform:uppercase}.set-item-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dirty-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--warn);margin-left:7px;vertical-align:middle;box-shadow:0 0 6px var(--warn);flex:none}.dirty-dot.inline{position:static;flex:none}.editor-title-wrap{display:flex;align-items:center;font-size:var(--fs-3);font-weight:600;color:var(--text-1)}.editor-actions{display:flex;gap:8px}.editor-meta{display:flex;gap:6px;flex-wrap:wrap;padding:var(--sp-3) var(--sp-4) 10px}.meta-chip{font-size:var(--fs-1);padding:3px 9px;border-radius:99px;background:var(--bg-3);border:1px solid var(--border);color:var(--text-2)}.meta-chip b{color:var(--text-1);font-weight:600}.col-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px}.col-dot.todo{background:var(--text-3)}.col-dot.doing{background:var(--warn)}.col-dot.done{background:var(--ok)}.dropzone{min-height:120px;flex:1;display:flex;flex-direction:column;gap:8px;padding:2px;border-radius:8px;transition:background .15s,outline .15s;outline:2px dashed transparent;outline-offset:-4px}.dropzone.drag-over{background:var(--accent-soft);outline-color:var(--accent)}.fs-detail-head{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--border);margin-bottom:12px}.fs-detail-desc{font-size:var(--fs-2);line-height:1.75;color:var(--text-1);background:var(--bg-1);border:1px solid var(--border-soft);border-radius:8px;padding:11px 13px;margin-bottom:12px}.fs-detail-entity{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;color:var(--text-3);font-size:var(--fs-1)}.fs-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.fs-history li{font-size:var(--fs-1);color:var(--text-2);line-height:1.7;padding:7px 0;border-bottom:1px dashed var(--border-soft)}.fs-history li:last-child{border-bottom:none}.dash-panel[data-panel=quality] .panel-card{margin-bottom:var(--sp-5)}.dash-panel[data-panel=quality] .panel-card:last-child{margin-bottom:0}.quality-head{display:flex;align-items:center;gap:24px;padding:var(--sp-5) 20px}.quality-score{display:flex;flex-direction:column;align-items:center;flex:none;min-width:88px}.quality-score span:first-child{font-size:var(--fs-6);font-weight:800;color:var(--accent);line-height:1.1;font-variant-numeric:tabular-nums}.quality-score-label{font-size:var(--fs-1);color:var(--text-3);margin-top:2px}.quality-verdict{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}.qv-text{font-size:var(--fs-2);line-height:1.7;color:var(--text-1)}.qv-tags{display:flex;gap:6px;flex-wrap:wrap}.dim-row.clickable{cursor:pointer;border-radius:8px;padding:9px 10px;margin:0 -10px;transition:background .15s}.dim-row.clickable:hover,.dim-row.open{background:var(--bg-1)}.dim-caret{flex:none;width:16px;font-size:10px;color:var(--text-3);transition:transform .15s;text-align:center}.dim-row.open .dim-caret{transform:rotate(90deg);color:var(--accent)}.issue-list{display:flex;flex-direction:column;gap:9px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-soft)}.issue-item{background:var(--bg-1);border:1px solid var(--border-soft);border-radius:8px;padding:11px 13px;font-size:var(--fs-2);display:flex;flex-direction:column;gap:6px}.issue-item.err{border-left:3px solid var(--err)}.issue-item.warn{border-left:3px solid var(--warn)}.issue-top{display:flex;align-items:center;gap:8px}.issue-sev{flex:none;font-size:var(--fs-1);font-weight:700}.issue-item.err .issue-sev{color:var(--err)}.issue-item.warn .issue-sev{color:var(--warn)}.issue-item.info .issue-sev{color:var(--accent)}.issue-dim{flex:none;font-size:var(--fs-1);padding:2px 8px;border-radius:99px;background:var(--bg-3);border:1px solid var(--border);color:var(--text-2)}.issue-verdict{margin-left:auto}.issue-desc{color:var(--text-1);line-height:1.7}.issue-evidence{font-family:var(--mono);font-size:var(--fs-1);color:var(--text-2);background:var(--bg-3);border-radius:6px;padding:7px 10px;line-height:1.6}.issue-advice{color:var(--text-2);font-size:var(--fs-1)}.issue-advice b{color:var(--ok)}.issue-empty{margin-top:12px;padding:18px;text-align:center;font-size:var(--fs-1);color:var(--text-3);border:1px dashed var(--border);border-radius:8px}.badge.neutral{color:var(--text-2);background:var(--bg-3)}.dim-state.good{color:var(--ok)}.dim-state.mid{color:var(--warn)}.dim-state.bad{color:var(--err)}.table .c-score.good{color:var(--ok)}.table .c-score.mid{color:var(--warn)}.table .c-score.bad{color:var(--err)}.table .c-num.blocked,.table .c-sev-err{color:var(--err);font-weight:700}.empty-wrap{min-height:380px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:var(--sp-6)}.empty-icon{width:64px;height:64px;display:grid;place-items:center;font-size:30px;line-height:1;color:var(--accent);background:var(--accent-soft);border-radius:var(--r-xl);margin-bottom:2px}.empty-title{font-size:var(--fs-4);font-weight:700;color:var(--text-1)}.empty-desc{font-size:var(--fs-2);color:var(--text-3);max-width:380px;line-height:1.7}.desk-empty{padding:32px var(--sp-4);color:var(--text-3);font-size:var(--fs-2);text-align:center;line-height:1.8}.table-empty{display:flex;align-items:center;justify-content:center;gap:8px;padding:28px 0;color:var(--text-3);font-size:var(--fs-2)}.modal-mask.cmd-top{align-items:flex-start}.cmd-panel{width:520px;margin-top:10vh;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden;animation:pop .18s cubic-bezier(.2,.9,.3,1.2)}.cmd-input{width:100%;padding:13px 16px;background:transparent;border:none;outline:none;color:var(--text-1);font-size:var(--fs-3);border-bottom:1px solid var(--border-soft)}.cmd-input:focus{border-bottom-color:var(--border-soft)}.cmd-list{max-height:320px;overflow:auto;padding:6px}.cmd-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--r-md);color:var(--text-2);font-size:var(--fs-2);cursor:pointer}.cmd-item.is-active{background:var(--accent-soft);color:var(--text-1)}.cmd-item svg{width:15px;height:15px;flex:none}.cmd-item .cmd-item-tag{margin-left:auto}.cmd-hint{padding:8px 14px;border-top:1px solid var(--border-soft);color:var(--text-3);font-size:var(--fs-1);display:flex;gap:14px}.cmd-empty{padding:22px;text-align:center;color:var(--text-3);font-size:var(--fs-2)}.chapter-page{display:flex;flex-direction:column;height:100%}.chapter-head{display:flex;align-items:center;gap:10px;padding:8px 16px;border-bottom:1px solid var(--border);background:var(--bg-2);flex-wrap:wrap;flex:none}.ch-num-badge{flex:none;font-family:var(--mono);font-size:var(--fs-1);font-weight:600;color:var(--accent);background:var(--accent-soft);padding:3px 10px;border-radius:99px;white-space:nowrap}.chapter-title-input{flex:0 1 320px;max-width:320px;min-width:140px;font-weight:600}.chapter-editor{flex:1;width:100%;min-height:0;border:none;outline:none;resize:none;background:var(--bg-1);color:var(--text-1);font-size:var(--editor-fs, 15px);line-height:1.9;max-width:780px;margin:0 auto;padding:20px 24px;font-family:inherit}.chapter-editor::placeholder{color:var(--text-3)}.chapter-editor:disabled{color:var(--text-3)}.ch-word{flex:none;font-size:var(--fs-1);color:var(--text-3);white-space:nowrap}.ch-readonly-hint{flex:none;font-size:var(--fs-1);color:var(--text-3);white-space:nowrap;cursor:help}.ch-updated{flex:none;font-size:var(--fs-1);color:var(--text-3)}.ch-head-actions{display:flex;gap:8px;margin-left:auto}.recent-list li.recent-item{cursor:pointer;border-radius:6px;margin:0 -6px;padding:8px 6px;transition:background .15s}.recent-list li.recent-item:hover{background:var(--bg-3)}.recent-list li.recent-item:hover .recent-title{color:var(--accent)}@media(max-width:1180px){:root{--desk-w: 300px;--tree-w: 200px }}@media(max-width:960px){.filetree{display:none}.overview-cols,.stat-grid{grid-template-columns:1fr 1fr}.settings-layout{grid-template-columns:1fr}.quality-head{flex-direction:column;align-items:flex-start;gap:12px}}@media(max-width:760px){.desk{position:fixed;right:0;top:var(--titlebar-h);bottom:var(--statusbar-h);z-index:50;box-shadow:var(--shadow)}.board{grid-template-columns:1fr}.chip-grid{grid-template-columns:repeat(2,1fr)}.modal-lg,.modal-md,.cmd-panel{width:94vw}}.assist-panel{width:var(--desk-w);flex:none;background:var(--bg-2);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.assist-body{flex:1;min-height:0;overflow-y:auto}.assist-sec{padding:var(--sp-4);border-bottom:1px solid var(--border-soft)}.assist-sec:last-child{border-bottom:none}.assist-sec-title{font-size:var(--fs-1);font-weight:700;color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--sp-3)}.assist-meta-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:7px 0;border-bottom:1px dashed var(--border-soft);font-size:var(--fs-2)}.assist-meta-row:last-child{border-bottom:none}.assist-meta-row span{color:var(--text-3);flex:none}.assist-meta-row b{color:var(--text-1);font-weight:600;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assist-score{display:flex;align-items:baseline;gap:10px;margin-bottom:var(--sp-3)}.assist-score-num{font-size:var(--fs-num);font-weight:800;color:var(--accent);line-height:1;font-variant-numeric:tabular-nums}.assist-score-label{font-size:var(--fs-1);color:var(--text-3)}.assist-verdict{font-size:var(--fs-2);color:var(--text-2);line-height:1.7;margin-bottom:var(--sp-3)}.assist-panel .dim-name{width:64px;font-size:var(--fs-1)}.assist-panel .dim-val{width:34px}.assist-panel .dim-state{width:auto;flex:none;max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assist-empty{padding:18px 12px;text-align:center;font-size:var(--fs-2);color:var(--text-3);border:1px dashed var(--border);border-radius:var(--r-md);line-height:1.8}.assist-loading{padding:18px 0;text-align:center;color:var(--text-3);font-size:var(--fs-2)}.assist-error{padding:var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-1);color:var(--err);background:color-mix(in srgb,var(--err) 10%,transparent);border:1px solid color-mix(in srgb,var(--err) 35%,transparent);display:flex;flex-direction:column;gap:var(--sp-2);align-items:flex-start}.assist-actions{display:flex;flex-direction:column;gap:var(--sp-2)}@media(max-width:760px){.assist-panel{position:fixed;right:0;top:var(--titlebar-h);bottom:var(--statusbar-h);z-index:50;box-shadow:var(--shadow)}}.workbench.no-desk .mainpane{flex:1;min-width:0}.desk-page{height:100%;display:flex;flex-direction:column;background:var(--bg-1);overflow:hidden}.desk-page .empty-wrap{min-height:0;flex:1}.desk-page-head{flex:none;display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-4);padding:var(--sp-3) var(--sp-6);background:var(--bg-2);border-bottom:1px solid var(--border)}.desk-page-title{margin:0;font-size:var(--fs-4);font-weight:700;color:var(--text-1);display:flex;align-items:center;gap:10px}.desk-page-head .desk-state{margin-left:0}.desk-page-head .desk-controls{margin-left:auto;padding:0;border-bottom:none;display:flex;align-items:flex-end;gap:var(--sp-3)}.desk-page-head .desk-controls label{flex:none}.desk-page-head .desk-controls .input-num{width:88px}.desk-page-head .desk-controls select.input{width:132px}.desk-page-body{flex:1 1 auto;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-5) var(--sp-6)}.desk-page .gate-alert{margin:0}.desk-page .pipeline{flex:none;flex-direction:row;gap:20px;padding:0}.desk-page .pstep{flex:1;min-width:0;flex-direction:column;align-items:flex-start;gap:6px;padding:12px 14px;border:1px solid var(--border-soft);background:var(--bg-2)}.desk-page .pstep .pstep-top{display:flex;align-items:center;gap:8px;min-width:0}.desk-page .pstep .pname{flex:none;font-size:var(--fs-2);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.desk-page .pstep .pstatus{min-height:16px;font-size:var(--fs-1)}.desk-page .pstep .mini-btn{margin-top:2px}.desk-page .pstep.is-run{border-color:var(--accent)}.desk-page .pstep:not(:last-child):after{content:"›";position:absolute;top:50%;right:-16px;transform:translateY(-50%);color:var(--text-3);font-size:var(--fs-4);font-weight:700;line-height:1}.desk-page .desk-duo{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--sp-4);align-items:stretch}.desk-page .brief{margin:0}.desk-page .pull{margin:0;padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-3);display:flex;flex-direction:column;justify-content:center}.desk-main-actions{display:flex;align-items:center;gap:var(--sp-3);align-self:flex-start;flex-wrap:wrap}.desk-main-btn{min-width:280px;max-width:480px;padding:13px 28px;font-size:var(--fs-3);font-weight:600}.desk-cancel-btn{padding:13px 20px;font-size:var(--fs-3)}.desk-autonext-btn{padding:13px 18px;font-size:var(--fs-3)}.desk-autonext-btn.is-on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.desk-autonext-btn.is-on:hover{background:var(--accent-soft);border-color:var(--accent)}.desk-page .desk-log{flex:1 1 140px;min-height:120px;max-height:40%;padding:var(--sp-3) var(--sp-6);border-top:1px solid var(--border);background:var(--bg-2)}.desk-log-empty{padding:10px 0;color:var(--text-3);font-size:var(--fs-1);border-bottom:none}@media(max-width:960px){.desk-page .pipeline{flex-wrap:wrap;gap:var(--sp-3)}.desk-page .pstep{flex:1 1 150px}.desk-page .pstep:not(:last-child):after{content:none}.desk-page .desk-duo{grid-template-columns:1fr}.desk-main-btn{min-width:0}.desk-main-btn,.desk-cancel-btn,.desk-autonext-btn{padding-left:12px;padding-right:12px}}.library-page{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-1)}.library-header{display:flex;align-items:center;justify-content:space-between;min-height:var(--pagehead-h);padding:var(--sp-3) var(--pagehead-pad-x);border-bottom:1px solid var(--border);background:var(--bg-2)}.library-filter-label{font-size:var(--fs-1);color:var(--text-3);flex:none}.library-filter-divider{width:1px;height:16px;background:var(--border);margin:0 var(--sp-1);flex:none}.library-brand{display:flex;align-items:center;gap:10px}.library-logo{color:var(--accent)}.library-name{font-weight:700;font-size:var(--fs-4);color:var(--text-1)}.library-slogan{font-size:var(--fs-1);color:var(--text-3)}.library-new-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;font-size:var(--fs-3);border-radius:var(--r-md)}.library-body{flex:1;width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--sp-6) var(--sp-5)}.library-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-4)}.library-stat{display:flex;align-items:center;gap:10px;padding:var(--sp-3) var(--sp-4);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);color:var(--text-3)}.library-stat-ico{color:var(--text-2);margin-top:1px}.library-stat svg{color:var(--accent);flex:none}.library-stat-num{font-weight:700;font-size:var(--fs-4);color:var(--text-1);line-height:1.2}.library-stat-label{font-size:var(--fs-1);color:var(--text-3)}.library-toolbar{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap}.library-search{display:flex;align-items:center;gap:6px;flex:1 1 200px;max-width:300px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);padding:0 8px;color:var(--text-3)}.library-search:focus-within{border-color:var(--accent)}.library-search input{flex:1;background:none;border:none;outline:none;color:var(--text-1);font:inherit;font-size:var(--fs-2);padding:7px 0}.library-search-clear{background:none;border:none;color:var(--text-3);cursor:pointer;font-size:var(--fs-3);padding:0 2px}.library-search-clear:hover{color:var(--text-1)}.library-filter-chips{display:flex;gap:6px}.library-filter-chips .chip{padding:5px 12px;border-radius:99px;font-size:var(--fs-1)}.library-sort{width:auto;padding:6px 8px;font-size:var(--fs-2);flex:none}.library-section-title{font-size:var(--fs-2);color:var(--text-3);font-weight:600;margin:0 0 var(--sp-3)}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--sp-4)}.library-card{font:inherit;text-align:left;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);cursor:pointer;overflow:hidden;display:flex;flex-direction:column;transition:border-color .15s,transform .15s,box-shadow .15s}.library-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow)}.library-card:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.library-card.is-current{border-color:var(--accent)}.library-card.is-current .library-card-title:after{content:"· 在写";color:var(--accent);font-size:var(--fs-1);font-weight:600;margin-left:6px}.library-card-cover{position:relative;height:84px;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none}.library-card-glyph{font-size:var(--fs-6);font-weight:800;color:#ffffffeb;text-shadow:0 2px 10px rgba(0,0,0,.35);letter-spacing:2px}.library-card-emoji{position:absolute;top:8px;left:10px;font-size:15px;opacity:.9}.library-card-current{position:absolute;top:8px;right:8px;font-size:var(--fs-1);font-weight:600;background:#00000061;color:#fff;padding:2px 8px;border-radius:99px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.library-card-body{display:flex;flex-direction:column;gap:8px;padding:var(--sp-3) var(--sp-4) var(--sp-3);flex:1}.library-card-title{font-weight:700;font-size:var(--fs-3);color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-card-meta{display:flex;gap:8px;align-items:center}.library-card-genre{font-size:var(--fs-1);color:var(--text-3);background:var(--bg-3);padding:1px 8px;border-radius:99px}.library-card-status{font-size:var(--fs-1);color:var(--accent);background:var(--accent-soft);padding:1px 8px;border-radius:99px}.library-card-status.is-done{color:var(--text-3);background:var(--bg-3)}.library-card-progress{display:flex;align-items:center;gap:8px}.library-progress-bar{flex:1;height:4px;background:var(--bg-3);border-radius:99px;overflow:hidden}.library-progress-fill{display:block;height:100%;background:var(--accent);transition:width .3s}.library-progress-label{font-size:var(--fs-1);color:var(--text-3);flex:none}.library-card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto}.library-card-date{font-size:var(--fs-1);color:var(--text-3)}.library-card-delete{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-3);cursor:pointer;padding:4px;border-radius:var(--r-sm);opacity:0;transition:.15s}.library-card:hover .library-card-delete,.library-card:focus-within .library-card-delete{opacity:1}.library-card-delete:hover{color:var(--err);background:color-mix(in srgb,var(--err) 12%,transparent)}.library-card-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1.5px dashed var(--border);color:var(--text-3);min-height:190px;font-size:var(--fs-2);background:transparent;border-radius:var(--r-lg);cursor:pointer;transition:.15s}.library-card-add:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.library-empty{text-align:center;padding:64px 0;display:flex;flex-direction:column;gap:8px;align-items:center}.library-empty-icon{color:var(--text-3);margin-bottom:6px}.library-empty-title{font-weight:700;color:var(--text-1)}.library-empty-desc{color:var(--text-3);font-size:var(--fs-2);margin-bottom:8px}.library-empty-actions{display:flex;gap:var(--sp-3);flex-wrap:wrap;justify-content:center}.library-empty-tip{font-size:var(--fs-1);color:var(--text-3);margin-top:10px}.library-import-btn{background:var(--bg-2)}.library-import-btn:hover{border-color:var(--accent);color:var(--accent)}.import-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1.5px dashed var(--border);border-radius:var(--r-md);padding:26px 16px;color:var(--text-3);cursor:pointer;transition:.15s;margin-bottom:var(--sp-4);text-align:center}.import-drop:hover,.import-drop.is-over{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.import-drop.has-file{border-style:solid;color:var(--text-2);cursor:default}.import-drop.has-file:hover{background:transparent;border-color:var(--border)}.import-drop-title{font-weight:600;color:var(--text-1);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-drop-desc{font-size:var(--fs-1);display:flex;align-items:center;gap:8px;justify-content:center;flex-wrap:wrap}.import-drop-change{background:none;border:none;color:var(--accent);cursor:pointer;font-size:var(--fs-1);padding:0;text-decoration:underline;text-underline-offset:2px}.import-script-format{flex-direction:row;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.import-script-format-label{display:inline-flex;align-items:center;gap:5px;color:var(--text-2)}.import-script-format-hint{font-size:var(--fs-1);color:var(--text-3)}.library-back{display:inline-flex;align-items:center;gap:1px;font-size:var(--fs-1);margin-right:4px}.dash-volume-link{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;border-bottom:1px dashed var(--border)}.dash-volume-link:hover{color:var(--accent);border-bottom-color:var(--accent)}.volume-list{display:flex;flex-direction:column;gap:var(--sp-3)}.volume-card{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);transition:.15s}.volume-card:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow)}.volume-card-main{flex:1;min-width:0}.volume-card-title{font-weight:700;font-size:var(--fs-3);color:var(--text-1)}.volume-card-range{margin-top:3px;font-family:var(--mono);font-size:var(--fs-1);color:var(--text-3)}.volume-card-summary{margin-top:6px;font-size:var(--fs-2);color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.volume-card-side{display:flex;align-items:center;gap:var(--sp-4);flex:none}.volume-card-stats{font-size:var(--fs-1);color:var(--text-2)}.volume-card-updated{font-size:var(--fs-1);color:var(--text-3)}.volume-card-actions{display:inline-flex;gap:6px}.tpl-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3);font-size:var(--fs-2);color:var(--text-2)}.tpl-check{display:flex;align-items:center;gap:6px;cursor:pointer}.tpl-check input{accent-color:var(--accent)}.tpl-preview{margin:0;padding:10px 12px;background:var(--bg-1);border:1px solid var(--border-soft);border-radius:var(--r-md);font-family:var(--mono);font-size:var(--fs-1);line-height:1.7;color:var(--text-2);white-space:pre-wrap;word-break:break-word;max-height:200px;overflow:auto}.stale-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 12px;font-size:var(--fs-2);color:var(--warn, #e2a300);background:color-mix(in srgb,var(--warn, #e2a300) 10%,transparent);border-left:3px solid var(--warn, #e2a300);border-radius:var(--r-sm)}.stale-banner .stale-actions{display:inline-flex;gap:6px;margin-left:auto}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-1);padding:24px}.error-boundary-card{max-width:420px;text-align:center;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-xl);padding:40px 32px;box-shadow:var(--shadow-lg)}.error-boundary-icon{font-size:40px;margin-bottom:12px}.error-boundary-card h2{margin:0 0 8px;font-size:var(--fs-5)}.error-boundary-msg{color:var(--text-2);margin:0 0 8px}.error-boundary-hint{color:var(--text-3);font-size:var(--fs-1);margin:0 0 20px;word-break:break-all;max-height:60px;overflow:hidden}.error-boundary-actions{display:flex;gap:12px;justify-content:center}.error-boundary-actions button{padding:8px 20px;border-radius:999px;border:1px solid var(--border);background:var(--bg-3);color:var(--text-1);cursor:pointer;font-size:var(--fs-3)}.error-boundary-actions button:first-child{background:var(--ok);border-color:var(--ok);color:var(--ok-ink)}.concept-entry{margin-bottom:var(--sp-3)}.concept-entry-toggle{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-3)}.concept-entry-toggle .chip{flex:none;min-width:120px}.concept-entry-panel{background:var(--accent-soft);border:1px dashed var(--accent);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-3)}.concept-entry-actions{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-2)}.concept-entry-actions .ai-assist-btn{padding:7px 16px;font-size:var(--fs-2)}.concept-entry-actions .btn{flex:none}.concept-preview{border-style:solid;border-color:var(--accent)}.concept-preview-title{display:flex;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-3);font-size:var(--fs-3);font-weight:600;color:var(--text-1)}.concept-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2) var(--sp-4)}.cp-item{min-width:0}.cp-item>label{display:block;font-size:var(--fs-0);font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.cp-item>p{margin:0 0 var(--sp-1);font-size:var(--fs-2);color:var(--text-1);line-height:1.55;overflow-wrap:anywhere}.cp-item>p b{color:var(--text-1)}@media(max-width:720px){.concept-preview-grid{grid-template-columns:1fr}}.char-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-3)}.char-card.is-supporting{border-style:dashed}.char-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-2)}.char-card-head b{font-size:var(--fs-2);color:var(--text-1)}.char-card-remove{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-3);cursor:pointer;padding:4px;border-radius:var(--r-sm);transition:.15s}.char-card-remove:hover{color:var(--danger, #e5484d);background:var(--bg-3)}.char-add-btn{display:inline-flex;align-items:center;gap:6px;width:100%;justify-content:center;border:1px dashed var(--border);background:none;color:var(--text-3);padding:9px;border-radius:var(--r-md);cursor:pointer;transition:.15s;margin-bottom:var(--sp-3)}.char-add-btn:hover{border-color:var(--accent);color:var(--accent)}.library-card-cover-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.library-card-cover-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000000f,#00000005 45%,#0000009e)}.library-card-title-on-cover{position:absolute;left:10px;bottom:7px;right:10px;font-size:var(--fs-1);font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 6px rgba(0,0,0,.55);pointer-events:none}.spin{display:inline-block;animation:ai-pulse 1s ease-in-out infinite}.export-menu{position:relative;display:inline-flex}.export-menu-pop{position:absolute;bottom:calc(100% + 6px);right:0;z-index:40;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);padding:5px;min-width:148px;display:flex;flex-direction:column}.export-menu-pop button{background:none;border:none;color:var(--text-2);font:inherit;font-size:var(--fs-2);text-align:left;padding:7px 10px;border-radius:var(--r-sm);cursor:pointer;transition:.12s}.export-menu-pop button:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.export-menu-pop button:disabled{opacity:.5;cursor:default}.ep-outline{max-height:264px;overflow-y:auto;margin-top:var(--sp-2)}.ep-outline-item{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-2);font-size:var(--fs-2)}.ep-outline-item b{display:block;color:var(--text-1);margin-bottom:4px}.ep-outline-item p{color:var(--text-2);line-height:1.65;margin:0}.cover-modal-body{display:grid;grid-template-columns:180px 1fr;gap:var(--sp-4)}.cover-preview{position:relative;width:180px;height:264px;border-radius:var(--r-md);overflow:hidden;background:var(--bg-3);border:1px solid var(--border);display:flex;align-items:center;justify-content:center}.cover-preview img{width:100%;height:100%;object-fit:cover}.cover-preview-empty{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-3);font-size:var(--fs-1);padding:12px;text-align:center}.cover-form{min-width:0}@media(max-width:640px){.cover-modal-body{grid-template-columns:1fr}}.badge{display:inline-flex;align-items:center;gap:4px}.tree-ico{color:var(--text-3);flex:none}.tip{display:flex;align-items:flex-start;gap:6px}.tip:before{content:"";flex:none;width:13px;height:13px;margin-top:1px;background:var(--warn);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5'/%3E%3Cpath d='M9 18h6'/%3E%3Cpath d='M10 22h4'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5'/%3E%3Cpath d='M9 18h6'/%3E%3Cpath d='M10 22h4'/%3E%3C/svg%3E") center / contain no-repeat}.library-empty-tip{display:flex;align-items:center;gap:6px;justify-content:center}.library-empty-tip:before{content:"";flex:none;width:13px;height:13px;background:var(--warn);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5'/%3E%3Cpath d='M9 18h6'/%3E%3Cpath d='M10 22h4'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5'/%3E%3Cpath d='M9 18h6'/%3E%3Cpath d='M10 22h4'/%3E%3C/svg%3E") center / contain no-repeat}.doc-dot{display:inline-block;width:10px;height:10px;border-radius:50%}.doc-dot.is-ok{background:var(--ok)}.doc-dot.is-warn{background:var(--warn)}.doc-dot.is-err{background:var(--err)}.theme-ico-moon{display:none}[data-theme=light] .theme-ico-moon{display:block}[data-theme=light] .theme-ico-sun{display:none}.badge .icon,.btn .icon{vertical-align:middle}.editor-fs-select{width:74px;padding:2px 6px;font-size:var(--fs-1);color:var(--text-2)}.desk-idle-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3);margin-top:var(--sp-4)}.idle-card{background:var(--bg-3);border:1px solid var(--border-soft);border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:6px;min-width:0}.idle-card-head{font-size:var(--fs-1);font-weight:700;color:var(--text-3);letter-spacing:.04em}.idle-card-body{display:flex;flex-direction:column;gap:2px;min-width:0}.idle-strong{font-size:var(--fs-2);font-weight:700;color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.idle-sub{font-size:var(--fs-1);color:var(--text-3)}@media(max-width:960px){.desk-idle-cards{grid-template-columns:1fr}}.assist-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--sp-3)}[data-theme=light] .stat-card,[data-theme=light] .panel-card,[data-theme=light] .table,[data-theme=light] .volume-card,[data-theme=light] .library-card{box-shadow:var(--shadow-card);border-color:var(--border-soft)}.badge,.meta-chip,.tag-ok,.tag-dim,.adapt-chip,.skill-badge-official,.skill-badge-installed,.skill-badge-published{font-size:var(--fs-0);line-height:18px;padding:0 8px;height:20px;border-radius:99px;display:inline-flex;align-items:center;gap:4px}.auth-splash{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text-3);font-size:var(--fs-2);background:var(--bg-1)}.auth-splash-brand{font-size:44px;line-height:1}.auth-page{height:100%;overflow-y:auto;display:flex;align-items:center;justify-content:center;padding:var(--sp-6);background:radial-gradient(1000px 500px at 85% -10%,var(--accent-soft),transparent 60%),var(--bg-1)}.auth-card{width:400px;max-width:94vw;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:var(--sp-6)}.auth-brand{text-align:center;margin-bottom:var(--sp-5)}.auth-brand-icon{font-size:40px;line-height:1;display:block;margin-bottom:10px}.auth-brand-name{font-size:var(--fs-5);font-weight:800;letter-spacing:1px;color:var(--text-1)}.auth-brand-slogan{font-size:var(--fs-1);color:var(--text-3);margin-top:6px}.auth-title{font-size:var(--fs-4);font-weight:700;color:var(--text-1);margin-bottom:4px}.auth-subtitle{font-size:var(--fs-1);color:var(--text-3);margin-bottom:var(--sp-4)}.auth-form .field{margin-bottom:var(--sp-3)}.auth-error{font-size:var(--fs-2);color:var(--err);background:color-mix(in srgb,var(--err) 10%,transparent);border:1px solid color-mix(in srgb,var(--err) 30%,transparent);border-radius:var(--r-md);padding:8px 12px;margin-bottom:var(--sp-3)}.auth-form .btn-block{margin-top:4px}.auth-demo-btn{margin-top:var(--sp-2);background:var(--bg-3)}.auth-demo-btn:hover{border-color:var(--accent);color:var(--accent)}.auth-footer{margin-top:var(--sp-5);text-align:center;font-size:var(--fs-2);color:var(--text-3)}.auth-link{color:var(--accent);text-decoration:none;font-weight:600}.auth-link:hover{text-decoration:underline}.user-menu{position:relative;margin-left:auto}.user-menu-trigger{display:flex;align-items:center;gap:7px;background:none;border:1px solid transparent;color:var(--text-2);font-size:var(--fs-1);padding:3px 8px;border-radius:99px;transition:.15s}.user-menu-trigger:hover{background:var(--bg-3);color:var(--text-1)}.user-avatar{width:20px;height:20px;border-radius:50%;background:var(--accent);color:var(--accent-contrast);display:grid;place-items:center;font-size:var(--fs-1);font-weight:700;flex:none}.user-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-caret{color:var(--text-3);flex:none}.plan-badge{font-size:var(--fs-0);font-weight:700;letter-spacing:.06em;padding:1px 7px;border-radius:99px;flex:none}.plan-badge.free{color:var(--text-3);background:var(--bg-4)}.plan-badge.pro{color:var(--accent-contrast);background:var(--accent)}.user-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;z-index:120;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:5px;animation:pop .14s ease}.user-dropdown-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border-soft);margin-bottom:4px}.user-dropdown-email{font-size:var(--fs-1);color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-dropdown-item{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text-2);font-size:var(--fs-2);padding:8px 10px;border-radius:var(--r-sm)}.user-dropdown-item:hover{background:var(--bg-3);color:var(--text-1)}.user-dropdown-item.danger{color:var(--err)}.user-dropdown-item.danger:hover{background:color-mix(in srgb,var(--err) 10%,transparent)}.user-dropdown-divider{height:1px;background:var(--border-soft);margin:4px 6px}.badge.accent{color:var(--accent);background:var(--accent-soft)}.saas-page{height:100%;overflow-y:auto;background:var(--bg-1)}.page-header{background:var(--bg-0);border-bottom:1px solid var(--border-soft);padding:0 var(--sp-5);position:sticky;top:0;z-index:20}.page-header-inner{height:var(--titlebar-h);display:flex;align-items:center;gap:var(--sp-5)}.page-brand{font-size:var(--fs-2);font-weight:700;color:var(--text-1);text-decoration:none;letter-spacing:.5px}.page-brand:hover{color:var(--accent)}.page-nav{display:flex;gap:2px;flex:1}.page-nav-item{font-size:var(--fs-2);color:var(--text-2);text-decoration:none;padding:5px 12px;border-radius:var(--r-sm)}.page-nav-item:hover{color:var(--text-1);background:var(--bg-2)}.page-nav-item.is-active{color:var(--accent);background:var(--accent-soft);font-weight:600}.page-header-right{display:flex;align-items:center;gap:8px}.page-user{font-size:var(--fs-1);color:var(--text-2);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-title-row{display:flex;align-items:baseline;gap:var(--sp-3);padding:var(--sp-3) 0}.page-title-row h1{font-size:var(--fs-7);font-weight:700;color:var(--text-1)}.page-subtitle{font-size:var(--fs-1);color:var(--text-3)}.saas-content{max-width:var(--content-max);margin:0 auto;padding:var(--sp-5) var(--sp-6) var(--sp-6)}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);margin-bottom:var(--sp-4);align-items:start}.account-col{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.account-grid .panel-card{margin-bottom:0}@media(max-width:860px){.account-grid{grid-template-columns:1fr}}.plan-card .plan-name{font-size:var(--fs-5);font-weight:800;color:var(--text-1);margin-bottom:2px}.plan-card .plan-price{color:var(--accent);font-weight:700;font-size:var(--fs-2);margin-bottom:var(--sp-3)}.plan-card.is-pro{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.plan-features{list-style:none;margin-bottom:var(--sp-3);color:var(--text-2);font-size:var(--fs-2)}.plan-features li{padding:4px 0 4px 18px;position:relative;line-height:1.6}.plan-features li:before{content:"✓";position:absolute;left:2px;color:var(--ok);font-weight:700}.plan-meta{font-size:var(--fs-1);color:var(--text-3);margin-bottom:var(--sp-3);line-height:1.7}.plan-meta b{color:var(--text-1)}.plan-price-note{font-size:var(--fs-1);color:var(--text-3);font-weight:500}.plan-buy{display:flex;gap:var(--sp-2)}.plan-buy .btn{flex:1}.plan-paying{border:1px dashed var(--accent-soft);border-radius:10px;padding:var(--sp-2) var(--sp-3)}.plan-paying .plan-buy{margin-top:10px}.usage-row{margin-bottom:var(--sp-4)}.usage-row:last-of-type{margin-bottom:var(--sp-2)}.usage-row-head{display:flex;justify-content:space-between;font-size:var(--fs-2);color:var(--text-2);margin-bottom:6px}.usage-row-head b{font-weight:700}.usage-tone-ok{color:var(--ok)}.usage-tone-warn{color:var(--warn)}.usage-tone-err{color:var(--err)}.usage-bar{height:9px;border-radius:99px;background:var(--bg-4);overflow:hidden}.usage-bar i{display:block;height:100%;border-radius:99px;background:var(--ok);transition:width .4s ease}.usage-bar.warn i{background:var(--warn)}.usage-bar.err i{background:var(--err)}.usage-note{font-size:var(--fs-1);color:var(--text-3);line-height:1.7;margin-top:8px}.redeem-row{align-items:end}.redeem-btn{margin-bottom:var(--sp-3);flex:none}.profile-email{font-size:var(--fs-2);color:var(--text-2);margin-bottom:var(--sp-3)}.profile-email b{color:var(--text-1)}.profile-email .tag-dim{margin-left:8px}.profile-password{margin-top:4px}.admin-stat-grid{grid-template-columns:repeat(6,1fr);margin-bottom:var(--sp-4)}.admin-stat-grid .stat-num{font-size:var(--fs-5)}.admin-charts{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.admin-users-table td{padding:8px 12px}.admin-users-table input[type=checkbox]{accent-color:var(--err);cursor:pointer}.admin-redeem{display:flex;flex-direction:column;gap:var(--sp-4)}.new-codes-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.new-codes-list code{font-size:var(--fs-2);padding:5px 10px;background:var(--accent-soft);color:var(--accent);border-radius:var(--r-sm);-webkit-user-select:all;user-select:all}.pager{display:flex;align-items:center;gap:8px;margin-left:auto}.table tr.row-dim td{opacity:.55}.auth-footer-sep{margin:0 8px;color:var(--text-3)}.auth-legal-note{margin-top:10px;font-size:var(--fs-1);color:var(--text-3);line-height:1.8}.admin-row-actions{display:inline-flex;gap:6px}.legal-page{max-width:780px;margin:0 auto;padding:var(--sp-6) var(--sp-4) var(--sp-8)}.legal-head{text-align:center;margin-bottom:var(--sp-6)}.legal-brand{font-size:var(--fs-2);color:var(--text-3);letter-spacing:.5px;margin-bottom:var(--sp-3)}.legal-head h1{font-size:var(--fs-7);margin:0 0 var(--sp-2)}.legal-updated{font-size:var(--fs-1);color:var(--text-3)}.legal-body{display:flex;flex-direction:column;gap:var(--sp-5)}.legal-section h2{font-size:var(--fs-3);margin:0 0 var(--sp-2);color:var(--text-1)}.legal-text{font-size:var(--fs-3);line-height:2;color:var(--text-2)}.legal-foot{display:flex;justify-content:center;gap:var(--sp-5);margin-top:var(--sp-8);font-size:var(--fs-2)}.legal-foot a{color:var(--text-3);text-decoration:none}.legal-foot a:hover{color:var(--accent)}@media(max-width:960px){.account-grid{grid-template-columns:1fr}.admin-stat-grid{grid-template-columns:repeat(3,1fr)}.admin-charts{grid-template-columns:1fr}.page-nav{overflow-x:auto;scrollbar-width:none}.page-header-inner{gap:var(--sp-3)}.page-user{display:none}}@media(max-width:640px){.admin-stat-grid{grid-template-columns:repeat(2,1fr)}.admin-users-table{display:block;overflow-x:auto}}.auth-page{gap:clamp(24px,6vw,96px);padding:var(--sp-6) clamp(16px,6vw,96px);background:radial-gradient(1000px 500px at 85% -10%,var(--accent-soft),transparent 60%),radial-gradient(700px 420px at 8% 108%,var(--accent-soft),transparent 55%),var(--bg-1)}.auth-side{max-width:420px;display:flex;flex-direction:column;gap:18px;color:var(--text-2)}.auth-side-brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:1px;color:var(--text-1);font-size:var(--fs-4)}.auth-side-brand svg{color:var(--accent);background:var(--accent-soft);padding:3px;border-radius:9px;box-sizing:content-box}.auth-side-title{margin:0;font-size:var(--fs-5);line-height:1.35;color:var(--text-1);font-weight:800}.auth-side-points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;font-size:var(--fs-2);line-height:1.6}.auth-side-points li{display:flex;align-items:flex-start;gap:10px}.auth-side-points svg{color:var(--accent);background:var(--accent-soft);padding:6px;border-radius:var(--r-md);box-sizing:content-box;margin-top:0;flex:none}.auth-brand-icon{color:var(--accent)}@media(max-width:900px){.auth-side{display:none}.auth-page{justify-content:center}}.aw-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.aw-mode-chip{display:flex;flex-direction:column;align-items:flex-start;gap:3px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px;cursor:pointer;transition:.15s;text-align:left}.aw-mode-chip:hover{border-color:var(--accent)}.aw-mode-chip.is-active{background:var(--accent-soft);border-color:var(--accent)}.aw-mode-name{font-size:var(--fs-2);font-weight:600;color:var(--text-1)}.aw-mode-chip.is-active .aw-mode-name{color:var(--accent)}.aw-mode-desc{font-size:var(--fs-1);color:var(--text-3)}@media(max-width:640px){.aw-mode-grid{grid-template-columns:1fr}}.aw-runs{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}.aw-run-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r-sm);font-size:var(--fs-2)}.aw-run-row:nth-child(odd){background:var(--bg-2)}.aw-run-ch{flex:none;font-family:var(--mono);font-size:var(--fs-1);color:var(--text-3)}.aw-run-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-1)}.aw-run-words{flex:none;font-size:var(--fs-1);color:var(--text-3);font-variant-numeric:tabular-nums}.aw-entry-pct{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:700}.aw-entry-btn{color:var(--accent)}.skills-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:var(--sp-5)}.skills-toolbar{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4)}.skills-toolbar .toolbar-hint{flex:1;min-width:200px}.skill-section{margin-bottom:var(--sp-5)}.skill-section-head{display:flex;align-items:baseline;gap:var(--sp-3);margin-bottom:var(--sp-3)}.skill-section-title{font-size:var(--fs-3);font-weight:700;color:var(--text-1);margin:0}.skill-section-hint{font-size:var(--fs-1);color:var(--text-3)}.skill-section-empty{padding:14px;text-align:center;color:var(--text-3);font-size:var(--fs-2);border:1px dashed var(--border);border-radius:var(--r-md)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--sp-3)}.skill-card{display:flex;flex-direction:column;gap:8px;padding:var(--sp-3) var(--sp-4);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);font-size:var(--fs-2);transition:border-color .15s,transform .15s,box-shadow .15s}.skill-card.is-clickable{cursor:pointer}.skill-card.is-clickable:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow)}.skill-card-top{display:flex;align-items:flex-start;gap:10px}.skill-icon{flex:none;width:38px;height:38px;display:grid;place-items:center;font-size:20px;background:var(--bg-3);border:1px solid var(--border-soft);border-radius:var(--r-md)}.skill-card-title-wrap{flex:1;min-width:0}.skill-card-title{display:block;font-weight:700;font-size:var(--fs-3);color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skill-card-badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}.skill-card-desc{color:var(--text-2);font-size:var(--fs-1);line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.skill-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:4px}.skill-card-meta{color:var(--text-3);font-size:var(--fs-1);white-space:nowrap}.skill-card-dot{margin:0 4px}.skill-card-actions{display:flex;gap:5px;flex:none}.skill-del-btn:hover{background:var(--err);border-color:transparent;color:var(--err-ink)}.skill-badge-official{font-size:var(--fs-1);font-weight:600;color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent);padding:1px 7px;border-radius:99px;white-space:nowrap}.skill-badge-installed{font-size:var(--fs-1);font-weight:600;color:var(--accent);background:var(--accent-soft);padding:1px 7px;border-radius:99px;white-space:nowrap}.skill-badge-published{font-size:var(--fs-1);font-weight:600;color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent);padding:1px 7px;border-radius:99px;white-space:nowrap}.skill-stars{display:inline-flex;align-items:center;gap:5px;line-height:1}.skill-stars .stars-full{color:var(--warn);letter-spacing:1px}.skill-stars .stars-empty{color:var(--text-3);letter-spacing:1px}.skill-stars .stars-num{color:var(--text-1);font-weight:700;font-size:var(--fs-1)}.skill-stars .stars-count{color:var(--text-3);font-size:var(--fs-1)}.skill-stars.is-disabled{opacity:.55}.skill-stars.md .stars-full,.skill-stars.md .stars-empty{font-size:15px}.star-btn{background:none;border:none;padding:0 1px;font-size:15px;line-height:1;color:var(--text-3);transition:color .12s,transform .12s}.star-btn:hover:not(:disabled){color:var(--warn);transform:scale(1.15)}.star-btn.is-on{color:var(--warn)}.star-btn:disabled{cursor:not-allowed;opacity:.6}.skill-detail-title{display:inline-flex;align-items:center;gap:8px}.skill-detail-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:var(--sp-3)}.skill-detail-author{font-size:var(--fs-2);color:var(--text-2)}.skill-detail-downloads{font-size:var(--fs-2);color:var(--text-3);margin-left:auto}.skill-detail-desc{font-size:var(--fs-2);color:var(--text-1);line-height:1.7;margin-bottom:var(--sp-3)}.skill-tpl-preview{margin:0 0 var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);font-family:var(--mono);font-size:var(--fs-1);line-height:1.7;color:var(--text-2);white-space:pre-wrap;word-break:break-word;max-height:180px;overflow:auto}.skill-param-list{list-style:none;margin:0 0 var(--sp-4);display:flex;flex-direction:column}.skill-param-list li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 2px;border-bottom:1px dashed var(--border-soft);font-size:var(--fs-2)}.skill-param-list li:last-child{border-bottom:none}.skill-param-list-label{color:var(--text-1);font-weight:600}.skill-param-list-ph{color:var(--text-3);font-size:var(--fs-1)}.skill-rate-row{display:flex;align-items:center;gap:var(--sp-3)}.skill-rate-hint{font-size:var(--fs-1);color:var(--text-3)}.skill-icon-field{max-width:140px}.skill-tpl-inserts{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:6px 0}.skill-tpl-insert-label{font-size:var(--fs-1);color:var(--text-3)}.skill-tpl-inserts .chip{font-family:var(--mono);font-size:var(--fs-1);padding:2px 8px}.skill-tpl-textarea{font-family:var(--mono);font-size:var(--fs-2);line-height:1.7;resize:vertical}.skill-param-editor{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);display:flex;flex-direction:column;gap:6px;background:var(--bg-2)}.skill-param-head,.skill-param-row{display:grid;grid-template-columns:110px 1fr 52px 1.2fr 44px;gap:6px;align-items:center}.skill-param-head{font-size:var(--fs-1);color:var(--text-3);padding:0 2px}.skill-param-row .input{padding:5px 8px;font-size:var(--fs-1)}.skill-param-key{font-family:var(--mono)}.skill-param-required{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-1);color:var(--text-2);white-space:nowrap;cursor:pointer}.skill-param-required input{accent-color:var(--accent);margin:0}.skill-param-del{padding:3px 0;text-align:center}.skill-param-add{align-self:flex-start}.ch-ai-btn{border-color:var(--accent);color:var(--accent)}.ch-ai-btn:hover:not(:disabled){background:var(--accent);border-color:transparent;color:var(--accent-contrast)}.ch-ai-btn:disabled{border-color:var(--border);color:var(--text-3)}.skill-invoke-title{display:inline-flex;align-items:center;gap:8px}.skill-invoke-target{font-size:var(--fs-1);font-weight:500;color:var(--text-3);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skillpick-hint{padding:9px 12px;border-radius:var(--r-md);font-size:var(--fs-2);margin-bottom:var(--sp-3);color:var(--text-2);background:var(--bg-2);border:1px solid var(--border);border-left:3px solid var(--text-3)}.skillpick-hint.is-on{color:var(--accent);border-left-color:var(--accent);background:var(--accent-soft)}.skillpick-list{display:flex;flex-direction:column;gap:var(--sp-4)}.skillpick-group{display:flex;flex-direction:column;gap:4px}.skillpick-lock{margin-left:8px;font-size:var(--fs-1);color:var(--warn);font-weight:500}.skillpick-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);padding:9px 12px;transition:border-color .15s,background .15s}.skillpick-item:hover:not(:disabled){border-color:var(--accent);background:var(--bg-3)}.skillpick-item .skill-icon{width:32px;height:32px;font-size:var(--fs-4)}.skillpick-item.is-locked{opacity:.45;cursor:not-allowed}.skillpick-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.skillpick-name{display:flex;align-items:center;gap:6px;font-weight:600;font-size:var(--fs-2);color:var(--text-1)}.skillpick-desc{font-size:var(--fs-1);color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skillpick-side{display:flex;align-items:center;gap:6px;flex:none}.skill-invoke-body{display:flex;flex-direction:column;gap:var(--sp-4)}.skill-invoke-selected{display:flex;align-items:flex-start;gap:10px;padding:var(--sp-3);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md)}.skill-invoke-params{display:flex;flex-direction:column;gap:2px}.skill-result{display:flex;flex-direction:column;gap:6px}.skill-result-loading{align-items:center;gap:8px;color:var(--text-2);font-size:var(--fs-2);padding:18px 0;text-align:center}.skill-result-spinner{display:inline-block;animation:skill-spin 1.2s ease-in-out infinite}@keyframes skill-spin{50%{opacity:.35;transform:scale(.85)}}.skill-result-text{margin:0;padding:var(--sp-3) var(--sp-4);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);font-family:var(--mono);font-size:var(--fs-2);line-height:1.8;color:var(--text-1);white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto}.library-header-actions{display:flex;align-items:center;gap:var(--sp-2)}.library-skill-link{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:var(--fs-2);border-radius:var(--r-md);text-decoration:none}.library-skill-link:hover{border-color:var(--accent);color:var(--accent)}@media(max-width:640px){.skills-grid{grid-template-columns:1fr}.skill-param-head{display:none}.skill-param-row{grid-template-columns:1fr 1fr}.skill-detail-downloads{margin-left:0}}[data-theme=light] .skill-card{box-shadow:var(--shadow-card);border-color:var(--border-soft)}.script-page{flex:1;display:flex;flex-direction:column;min-height:0}.script-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border)}.script-head-main{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.script-title{font-weight:700;font-size:var(--fs-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.script-format-badge{flex:none;font-size:var(--fs-1);color:var(--accent);background:var(--accent-soft);padding:1px 8px;border-radius:99px}.script-meta{color:var(--text-3);font-size:var(--fs-1);white-space:nowrap}.script-renumber{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-1);color:var(--text-2);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none}.script-head-actions{display:flex;align-items:center;gap:var(--sp-2);flex:none}.script-body{flex:1;display:flex;min-height:0}.ep-editor-empty{flex:1;display:grid;place-items:center}.script-export-wrap{position:relative}.script-export-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:300px;z-index:110;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:10px;animation:pop .14s ease}.script-export-row{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:8px}.script-export-row>span{font-size:var(--fs-1);color:var(--text-3);flex:none}.chip-row{display:flex;gap:6px;flex-wrap:wrap}.script-export-go{width:100%;margin-top:4px}.ep-list{width:220px;flex:none;display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--bg-2);min-height:0}.ep-list-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-soft)}.ep-list-title{font-weight:600;font-size:var(--fs-2);color:var(--text-1);white-space:nowrap}.ep-list-stats{display:flex;gap:8px;flex-wrap:wrap;padding:5px var(--sp-3);font-size:var(--fs-1);color:var(--text-3);border-bottom:1px solid var(--border-soft)}.ep-list-body{flex:1;overflow:auto;padding:var(--sp-1)}.ep-list-hint{padding:10px 8px;color:var(--text-3);font-size:var(--fs-1)}.ep-row{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-2);color:var(--text-2)}.ep-row:hover{background:var(--bg-3);color:var(--text-1)}.ep-row.is-active{background:var(--accent-soft);color:var(--accent);font-weight:600}.ep-st-badge{flex:none;font-size:var(--fs-0);line-height:1.5;color:var(--text-3);border:1px solid currentColor;border-radius:99px;padding:0 4px}.ep-st-badge.is-draft{color:var(--ep-status-draft)}.ep-st-badge.is-review{color:var(--warn)}.ep-st-badge.is-final{color:var(--ok)}.ep-num{flex:none;font-family:var(--mono);font-size:var(--fs-1);color:var(--text-3)}.ep-row.is-active .ep-num{color:var(--accent)}.ep-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ep-src-badge{flex:none;font-size:var(--fs-0);color:var(--fq-character);border:1px solid currentColor;border-radius:99px;padding:0 4px;line-height:1.5}.ep-words{flex:none;font-size:var(--fs-1);color:var(--text-3)}.ep-del-btn{display:none;flex:none;background:none;border:none;cursor:pointer;color:var(--text-3);padding:2px;border-radius:var(--r-sm);line-height:1}.ep-row:hover .ep-del-btn{display:inline-flex}.ep-editor{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.ep-editor-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-soft)}.ep-num-badge{flex:none;font-size:var(--fs-1);font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:99px;padding:2px 9px}.ep-title-input{max-width:320px}.ep-status-badge{flex:none;font-size:var(--fs-1);color:var(--text-3);border:1px solid var(--border);border-radius:99px;padding:1px 8px}.ep-status-badge.is-placeholder{color:var(--text-3);border-color:var(--border)}.ep-status-badge.is-draft{color:var(--ep-status-draft);border-color:var(--ep-status-draft)}.ep-status-badge.is-review{color:var(--warn);border-color:var(--warn)}.ep-status-badge.is-final{color:var(--ok);border-color:var(--ok)}.ep-shortcut-bar{display:flex;align-items:center;gap:6px;row-gap:4px;flex-wrap:wrap;padding:4px var(--sp-3);border-bottom:1px solid var(--border-soft);background:var(--bg-2)}.ep-shortcut-hint{margin-left:auto;font-size:var(--fs-1);color:var(--text-3);white-space:nowrap;flex:none}@media(max-width:1360px){.ep-shortcut-hint{display:none}}@media(max-width:760px){.ep-shortcut-bar{gap:4px;padding:4px var(--sp-2);overflow-x:auto}}.ep-editor-body{flex:1;min-height:0;display:flex;overflow:hidden}.ep-cm-host{flex:1;min-width:0;display:flex;flex-direction:column}.ep-cm-host .cm-editor{flex:1;min-height:0;background:transparent}.ep-cm-host .cm-editor.cm-focused{outline:none}.ep-cm-host .cm-scroller{font-family:var(--font);font-size:var(--fs-3);line-height:1.75;overflow-y:auto;overflow-x:hidden}.ep-cm-host .cm-content{padding:16px 22px;caret-color:var(--accent);white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;-moz-tab-size:4;tab-size:4}.ep-cm-host .cm-line{padding:0}.ep-cm-host .cm-placeholder{color:var(--text-3)}.ep-cm-host .cm-selectionBackground,.ep-cm-host .cm-content ::selection{background:#8a7cf540}.ep-cm-host .cm-gutters{background:var(--bg-2);border-right:1px solid var(--border-soft);color:var(--text-3);font-family:var(--mono);font-size:var(--fs-1);-webkit-user-select:none;user-select:none}.ep-cm-host .cm-lineNumbers .cm-gutterElement{padding:0 8px 0 12px;min-width:30px;text-align:right}.ep-cm-host .fq-warn-gutter{width:8px}.ep-cm-host .fq-warn-gutter .cm-gutterElement{width:100%;padding:0;display:flex;align-items:center;justify-content:center}.ep-cm-host .fq-warn-gutter .fq-warn-dot{width:4px;height:12px;border-radius:2px;background:var(--warn)}.ep-cm-host .cm-tooltip.cm-tooltip-autocomplete>ul{font-family:var(--font);font-size:var(--fs-2);max-height:220px;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);padding:4px}.ep-cm-host .cm-tooltip.cm-tooltip-autocomplete>ul>li{padding:5px 8px;border-radius:var(--r-sm);color:var(--text-1)}.ep-cm-host .cm-tooltip.cm-tooltip-autocomplete>ul>li[aria-selected]{background:var(--bg-3);color:var(--accent);font-weight:600}.ep-cm-host .cm-panels{background:var(--bg-1);border-bottom:1px solid var(--border-soft);color:var(--text-1)}.ep-cm-host .cm-panels input,.ep-cm-host .cm-panels button,.ep-cm-host .cm-panels label{font-size:var(--fs-1)}.ep-cm-host .cm-searchMatch{background:#8a7cf540}.fq{color:var(--text-1)}.fq-section{color:var(--accent);font-weight:700}.fq-scene{color:var(--fq-scene);font-weight:700}.fq-character{color:var(--fq-character);font-weight:600}.fq-dialogue{background:var(--fq-dialogue-bg)}.fq-parenthetical,.fq-transition{color:var(--text-2)}.fq-boneyard{color:var(--text-3)}.fq-warn{background:var(--fq-warn-bg);box-shadow:inset 2px 0 0 var(--warn)}.ep-outline-panel{width:168px;flex:none;border-left:1px solid var(--border-soft);background:var(--bg-2);display:flex;flex-direction:column;min-height:0}.ep-outline-panel.is-collapsed{width:30px;align-items:center;padding-top:4px}.ep-outline-head{display:flex;align-items:center;justify-content:space-between;padding:4px 4px 4px 10px;border-bottom:1px solid var(--border-soft)}.ep-outline-title{font-size:var(--fs-1);font-weight:700;color:var(--text-3);letter-spacing:.06em}.ep-outline-body{flex:1;overflow-y:auto;padding:var(--sp-1)}.ep-outline-empty{padding:12px 8px;color:var(--text-3);font-size:var(--fs-1);line-height:1.8;text-align:center}.scene-item{display:flex;align-items:flex-start;gap:6px;padding:5px 6px;border-radius:var(--r-sm);cursor:pointer;border:1px solid transparent}.scene-item:hover{background:var(--bg-3)}.scene-item.is-active{background:var(--accent-soft)}.scene-item.is-dragging{opacity:.4}.scene-item.is-drop-before{box-shadow:inset 0 2px 0 var(--accent)}.scene-item.is-drop-after{box-shadow:inset 0 -2px 0 var(--accent)}.scene-no{flex:none;font-family:var(--mono);font-size:var(--fs-1);color:var(--text-3);min-width:16px;text-align:right;font-variant-numeric:tabular-nums}.scene-item.is-active .scene-no{color:var(--accent)}.scene-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.scene-loc{font-size:var(--fs-2);color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-item.is-active .scene-loc{color:var(--accent);font-weight:600}.scene-time{font-size:var(--fs-1);color:var(--text-3)}@media(max-width:900px){.ep-outline-panel{display:none}}.ep-status-bar{display:flex;align-items:center;gap:var(--sp-2);padding:4px var(--sp-3);border-top:1px solid var(--border-soft);font-size:var(--fs-1);color:var(--text-3)}.ep-status-bar.is-error{color:var(--err)}.ep-v-jump{margin-left:auto;background:none;border:none;cursor:pointer;color:var(--warn);font-size:var(--fs-1);padding:1px 6px;border-radius:var(--r-sm)}.ep-v-jump:hover{background:var(--fq-warn-bg)}.script-side{width:300px;flex:none;border-left:1px solid var(--border);background:var(--bg-2);display:flex;flex-direction:column;min-height:0}.script-side-tabs{display:flex;border-bottom:1px solid var(--border-soft)}.script-side-tab{flex:1;padding:7px 0;background:none;border:none;cursor:pointer;font-size:var(--fs-1);color:var(--text-3);border-bottom:2px solid transparent}.script-side-tab.is-active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.script-side>.adaptation-panel,.script-side>.stats-panel,.script-side>.version-panel,.script-side>.diagnose-panel{overflow-y:auto}.panel-mini-title{font-size:var(--fs-1);font-weight:700;color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;padding:8px 12px 4px}.panel-mini-title.with-gap{margin-top:8px}.stats-panel,.adaptation-panel{padding-bottom:12px}.stats-empty{padding:10px 12px;color:var(--text-3);font-size:var(--fs-1)}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;padding:6px 12px 0}.stats-item{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.stats-item dt{font-size:var(--fs-1);color:var(--text-3)}.stats-item dd{font-size:var(--fs-2);font-weight:600;color:var(--text-1);font-variant-numeric:tabular-nums}.stats-density{display:inline-flex;align-items:center;gap:5px}.stats-density-bar{width:42px;height:5px;background:var(--bg-4);border-radius:99px;overflow:hidden}.stats-density-bar i{display:block;height:100%;background:var(--accent)}.stats-hook-tip{display:flex;align-items:center;gap:5px;margin:8px 12px 0;padding:6px 8px;font-size:var(--fs-1);color:var(--warn);background:var(--fq-warn-bg);border-radius:var(--r-sm)}.stats-ok{display:flex;align-items:center;gap:5px;padding:8px 12px;color:var(--ok);font-size:var(--fs-1)}.v-item{display:flex;align-items:center;gap:6px;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:4px 12px;font-size:var(--fs-1);color:var(--text-2);line-height:1.5}.v-item:hover{background:var(--bg-3);color:var(--text-1)}.v-item.is-warn{color:var(--warn)}.v-item.is-hint{cursor:default;color:var(--text-3)}.v-item.is-hint:hover{background:none}.v-code{flex:none;font-size:var(--fs-0);font-weight:600;color:var(--warn)}.v-item.is-hint .v-code{color:var(--text-3)}.v-msg{min-width:0}.stats-note{padding:8px 12px 0;font-size:var(--fs-1);color:var(--text-3)}.adapt-summary{padding-top:4px}.adapt-summary-counts{display:flex;flex-wrap:wrap;gap:4px;padding:4px 12px 0}.adapt-chip{font-size:var(--fs-1);padding:1px 7px;border-radius:99px;background:var(--bg-3);color:var(--text-2)}.adapt-chip.adapt-delete{color:var(--adapt-delete)}.adapt-chip.adapt-merge{color:var(--adapt-merge)}.adapt-chip.adapt-add{color:var(--adapt-add)}.adapt-chip.adapt-dialogue_edit{color:var(--adapt-edit)}.adapt-chip.adapt-psych{color:var(--adapt-psych)}.adapt-chip.adapt-total{color:var(--text-3)}.adapt-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 12px;color:var(--text-3);font-size:var(--fs-1)}.adapt-list{list-style:none;padding:2px 8px}.adapt-item{display:flex;align-items:flex-start;gap:8px;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:7px 6px;border-radius:var(--r-sm)}.adapt-item:hover{background:var(--bg-3)}.adapt-type{flex:none;font-size:var(--fs-0);font-weight:600;padding:1px 7px;border-radius:99px;border:1px solid currentColor;line-height:1.6;margin-top:1px}.adapt-type.adapt-delete{color:var(--adapt-delete)}.adapt-type.adapt-merge{color:var(--adapt-merge)}.adapt-type.adapt-add{color:var(--adapt-add)}.adapt-type.adapt-dialogue_edit{color:var(--adapt-edit)}.adapt-type.adapt-psych{color:var(--adapt-psych)}.adapt-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.adapt-summary-text{font-size:var(--fs-1);color:var(--text-1);line-height:1.5}.adapt-src{font-size:var(--fs-1);color:var(--text-3)}.adapt-quote{font-size:var(--fs-1);color:var(--text-2);border-left:2px solid var(--border);padding-left:7px;white-space:pre-wrap}.adapt-detail{font-size:var(--fs-1);color:var(--text-3)}.drawer-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#00000059;display:flex;justify-content:flex-end}.source-drawer{width:min(520px,86vw);background:var(--bg-1);border-left:1px solid var(--border);display:flex;flex-direction:column;animation:drawerIn .18s ease}@keyframes drawerIn{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.drawer-head-main{display:flex;flex-direction:column;gap:2px;min-width:0}.drawer-book{font-size:var(--fs-1);color:var(--text-3)}.drawer-chapter{font-weight:700;font-size:var(--fs-3)}.drawer-body{flex:1;overflow:auto;padding:var(--sp-3) var(--sp-4);min-height:0}.drawer-hint{padding:8px 0;color:var(--text-3);font-size:var(--fs-1)}.drawer-hint.is-warn{color:var(--warn)}.drawer-content{font-family:inherit;font-size:var(--fs-2);line-height:1.8;white-space:pre-wrap;color:var(--text-1)}.drawer-quote-mark{background:var(--fq-warn-bg);color:inherit;border-radius:2px;padding:0 1px}.drawer-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--border)}.drawer-meta{font-size:var(--fs-1);color:var(--text-3)}.cvt-volume-groups{max-height:340px;overflow:auto;border:1px solid var(--border-soft);border-radius:var(--r-md);padding:6px}.cvt-volume-group+.cvt-volume-group{margin-top:8px}.cvt-volume-head{display:flex;align-items:center;justify-content:space-between;padding:2px 6px}.cvt-volume-check{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:var(--fs-2);cursor:pointer}.cvt-volume-meta{font-size:var(--fs-1);color:var(--text-3)}.cvt-chapter-grid{display:flex;flex-wrap:wrap;gap:4px;padding:6px 6px 8px}.cvt-chapter{min-width:40px;padding:3px 8px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-3);color:var(--text-2);font-size:var(--fs-1);cursor:pointer;font-variant-numeric:tabular-nums;transition:.12s}.cvt-chapter:hover{border-color:var(--accent);color:var(--text-1)}.cvt-chapter.is-selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.cvt-chapter.is-empty{opacity:.35;cursor:not-allowed;text-decoration:line-through}.cvt-select-summary{margin-top:10px;font-size:var(--fs-2);color:var(--text-2)}.cvt-select-summary.is-over{color:var(--err)}.cvt-limit-err{color:var(--err);font-size:var(--fs-1)}.cvt-estimate-card{border:1px solid var(--border);border-radius:var(--r-md);padding:10px 14px}.cvt-estimate-row{display:flex;gap:10px;padding:5px 0;font-size:var(--fs-2)}.cvt-estimate-row>span{flex:none;color:var(--text-3);min-width:56px}.cvt-estimate-row>b{color:var(--text-1);font-weight:600}.cvt-estimate-row.is-main>b{font-size:16px;color:var(--accent)}.cvt-copyright{display:flex;align-items:flex-start;gap:8px;margin-top:12px;cursor:pointer;font-size:var(--fs-2);color:var(--text-2);line-height:1.6}.cvt-copyright input{margin-top:3px}.cvt-task-body{min-height:200px}.cvt-progress-wrap{padding:6px 2px}.cvt-progress-head{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:8px}.cvt-status{font-size:var(--fs-1);font-weight:600;padding:2px 9px;border-radius:99px;background:var(--bg-3);color:var(--text-2)}.cvt-status-queued,.cvt-status-analyzing,.cvt-status-converting,.cvt-status-finalizing,.cvt-status-running{color:var(--accent);background:var(--accent-soft)}.cvt-status-done{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}.cvt-status-confirmed{color:var(--ok)}.cvt-status-error,.cvt-status-quota_blocked{color:var(--err)}.cvt-status-cancelled{color:var(--warn)}.cvt-status-expired{color:var(--text-3)}.cvt-progress-msg{flex:1;font-size:var(--fs-2);color:var(--text-1)}.cvt-progress-pct{font-size:var(--fs-2);font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.cvt-progress-bar{height:8px;background:var(--bg-4);border-radius:99px;overflow:hidden}.cvt-progress-bar i{display:block;height:100%;background:var(--accent);transition:width .6s ease}.cvt-progress-meta{margin-top:8px;font-size:var(--fs-1);color:var(--text-3)}.cvt-status-line{font-size:var(--fs-2);color:var(--text-1);line-height:1.7}.cvt-status-line .tip{margin-top:6px}.cvt-done-banner{padding:10px 12px;border-radius:var(--r-md);background:color-mix(in srgb,var(--ok) 10%,transparent);color:var(--ok);font-size:var(--fs-2);display:flex;flex-direction:column;gap:2px}.cvt-done-note{font-size:var(--fs-1);color:var(--text-2)}.cvt-preview-layout{display:flex;gap:10px;margin-top:10px;min-height:0}.cvt-preview-list{width:200px;flex:none;max-height:320px;overflow:auto;border:1px solid var(--border-soft);border-radius:var(--r-md);padding:4px}.cvt-preview-item{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:6px 8px;border-radius:var(--r-sm)}.cvt-preview-item:hover{background:var(--bg-3)}.cvt-preview-item.is-active{background:var(--accent-soft)}.cvt-preview-num{font-family:var(--mono);font-size:var(--fs-1);color:var(--text-3)}.cvt-preview-item.is-active .cvt-preview-num{color:var(--accent)}.cvt-preview-title{font-size:var(--fs-2);color:var(--text-1)}.cvt-preview-item.is-active .cvt-preview-title{color:var(--accent);font-weight:600}.cvt-preview-meta{font-size:var(--fs-1);color:var(--text-3)}.cvt-preview-detail{flex:1;min-width:0;display:flex;flex-direction:column}.cvt-preview-detail-head{display:flex;flex-direction:column;gap:2px;padding:4px 2px 8px;font-size:var(--fs-2);font-weight:700;color:var(--text-1)}.cvt-preview-detail-head span{font-size:var(--fs-1);font-weight:400;color:var(--text-3)}.cvt-preview-content{flex:1;min-height:0;max-height:220px;overflow:auto;font-family:var(--font);font-size:var(--fs-1);line-height:1.7;white-space:pre-wrap;background:var(--bg-2);border:1px solid var(--border-soft);border-radius:var(--r-md);padding:10px 12px;color:var(--text-1)}.cvt-center-wrap{position:relative;display:inline-flex}.cvt-center-btn{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-1)}.cvt-center-badge{min-width:15px;height:15px;padding:0 4px;border-radius:99px;background:var(--accent);color:var(--accent-contrast);font-size:var(--fs-0);font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1}.cvt-center-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:320px;z-index:160;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:5px;animation:pop .14s ease}.cvt-center-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:7px 10px;border-radius:var(--r-sm);font-size:var(--fs-1);color:var(--text-1)}.cvt-center-item:hover{background:var(--bg-3)}.cvt-center-item.is-hint{color:var(--text-3);cursor:default}.cvt-center-item.is-hint:hover{background:none}.cvt-center-book{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cvt-center-status{flex:none;font-size:var(--fs-1)}.cvt-center-status.cvt-s-queued,.cvt-center-status.cvt-s-analyzing,.cvt-center-status.cvt-s-converting,.cvt-center-status.cvt-s-finalizing{color:var(--accent)}.cvt-center-status.cvt-s-done,.cvt-center-status.cvt-s-confirmed{color:var(--ok)}.cvt-center-status.cvt-s-error{color:var(--err)}.cvt-center-status.cvt-s-cancelled{color:var(--warn)}.cvt-center-status.cvt-s-expired{color:var(--text-3)}.cvt-center-date{flex:none;font-size:var(--fs-1);color:var(--text-3);font-variant-numeric:tabular-nums}.library-type-badge{position:absolute;top:8px;right:8px;font-size:var(--fs-0);font-weight:600;padding:1px 7px;border-radius:99px;background:#ffffff2e;color:#fff;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.library-type-badge.is-script{background:#8a7cf58c}.chip-row .chip-pdf{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:var(--fs-1)}.chip-row .chip-pdf:disabled{opacity:.45;cursor:not-allowed}.chip-row .chip-pdf:disabled:hover{border-color:var(--border);color:var(--text-2)}.cvt-custom-count{margin-top:-6px;font-size:var(--fs-1);color:var(--text-3);text-align:right}.cvt-custom-count.is-over{color:var(--err);font-weight:600}.cvt-estimate-row .cvt-estimate-req{white-space:pre-wrap;word-break:break-word;font-weight:400}.cvt-custom-req{border:1px dashed var(--border);border-radius:var(--r-md);padding:8px 12px;margin-bottom:10px;display:flex;flex-direction:column;gap:3px}.cvt-custom-req-label{flex:none;font-size:var(--fs-1);font-weight:700;color:var(--text-3);letter-spacing:.06em}.cvt-custom-req p{margin:0;font-size:var(--fs-2);color:var(--text-2);line-height:1.7;white-space:pre-wrap;word-break:break-word}.cvt-preview-detail-title-row{display:flex;align-items:center;gap:8px;min-width:0}.cvt-edit-actions{display:inline-flex;gap:6px}.cvt-edit-area{flex:1;min-height:180px;max-height:320px;resize:vertical;font-family:var(--font);font-size:var(--fs-2);line-height:1.7;white-space:pre-wrap}.ep-ai-divider{width:1px;align-self:stretch;margin:1px 3px;background:var(--border-soft)}.ep-ai-btn{color:var(--accent)}.ep-ai-btn:disabled{color:var(--text-3);opacity:.55}.ep-ai-progress{display:inline-flex;align-items:center;gap:6px;min-width:0;font-size:var(--fs-1);color:var(--accent);white-space:nowrap}.ep-ai-progress-label{overflow:hidden;text-overflow:ellipsis}.ep-ai-progress-bar{width:46px;height:5px;flex:none;background:var(--bg-4);border-radius:99px;overflow:hidden}.ep-ai-progress-bar i{display:block;height:100%;background:var(--accent);transition:width .4s ease}.ep-ai-cancel{flex:none}.ep-list-head-btns{display:inline-flex;gap:6px}.ep-ai-head-btn{color:var(--accent)}.ep-list-ai{margin:6px var(--sp-3);padding:4px 6px;border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--bg-3)}.ep-card{display:flex;flex-direction:column;gap:2px;padding:4px 8px 5px;border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-2);color:var(--text-2);border:1px solid transparent}.ep-card:hover{background:var(--bg-3);color:var(--text-1)}.ep-card.is-active{background:var(--accent-soft);color:var(--accent)}.ep-card .ep-row-line{display:flex;align-items:center;gap:6px;min-width:0}.ep-card .ep-row-line .ep-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ep-card .ep-words{flex:none;font-size:var(--fs-1);color:var(--text-3)}.ep-lock-badge{flex:none;display:inline-flex;color:var(--warn);line-height:1;border:1px solid currentColor;border-radius:3px;padding:1px}.ep-outline-strip{display:flex;flex-direction:column;gap:1px;padding:2px 4px 2px 6px;border-left:2px solid var(--border-soft);border-radius:2px;font-size:var(--fs-1);line-height:1.5;min-width:0}.ep-outline-strip.is-editable{cursor:pointer}.ep-outline-strip.is-editable:hover{background:var(--bg-4);border-left-color:var(--accent)}.ep-outline-strip.is-readonly{color:var(--text-3);cursor:default;border-left-color:var(--border-soft)}.ep-card.is-active .ep-outline-strip.is-editable:hover{background:var(--bg-4)}.ep-outline-summary{color:var(--text-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-all}.ep-card.is-active .ep-outline-summary{color:inherit;opacity:.85}.ep-outline-strip.is-empty .ep-outline-summary{opacity:.6;font-style:italic}.ep-outline-hook{color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.85}.ep-card-actions{display:none;flex:none;align-items:center;gap:2px}.ep-card:hover .ep-card-actions,.ep-card:focus-within .ep-card-actions{display:inline-flex}.ep-menu-wrap{position:relative;display:inline-flex}.ep-menu-btn,.ep-del-btn{display:inline-flex;background:none;border:none;cursor:pointer;color:var(--text-3);padding:2px;border-radius:var(--r-sm);line-height:1}.ep-menu-btn:hover{color:var(--text-1);background:var(--bg-4)}.ep-del-btn:hover{color:var(--err);background:color-mix(in srgb,var(--err) 10%,transparent)}.ep-menu-pop{position:absolute;top:calc(100% + 4px);right:0;z-index:130;min-width:168px;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:4px;animation:pop .12s ease}.ep-menu-pop button{display:flex;align-items:center;gap:6px;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:6px 9px;border-radius:var(--r-sm);font-size:var(--fs-1);color:var(--text-1)}.ep-menu-pop button:hover{background:var(--bg-3)}.ep-menu-pop button:disabled{color:var(--text-3);cursor:not-allowed;background:none}.ep-menu-note{padding:5px 9px;font-size:var(--fs-1);color:var(--text-3)}.ep-card.is-dragging{opacity:.4}.ep-card.is-drop-before{box-shadow:inset 0 2px 0 var(--accent)}.ep-card.is-drop-after{box-shadow:inset 0 -2px 0 var(--accent)}.ep-list-body.is-dragging .ep-card-actions{display:none!important;pointer-events:none}.ep-list-body.is-dragging .ep-outline-strip{pointer-events:none}.ep-dnd-hint{padding-top:6px;text-align:center;opacity:.7}.outline-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.outline-field label{display:flex;align-items:baseline;justify-content:space-between;font-size:var(--fs-2);font-weight:600;color:var(--text-1)}.outline-count{font-size:var(--fs-1);font-weight:400;color:var(--text-3);font-variant-numeric:tabular-nums}.outline-count.is-over{color:var(--err);font-weight:600}.outline-textarea{resize:vertical;line-height:1.7;min-height:64px}.outline-err{margin:0;font-size:var(--fs-1);color:var(--err)}.outline-tip{margin:4px 0 0;font-size:var(--fs-1);color:var(--text-3);line-height:1.6}.outline-batch-row{flex-direction:row;align-items:center;gap:8px;margin-bottom:0}.outline-batch-row label{flex:none;margin:0}.outline-batch-row select{width:90px}.version-panel,.diagnose-panel{padding-bottom:12px}.ver-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-right:10px}.ver-empty{padding:12px;color:var(--text-3);font-size:var(--fs-1);line-height:1.7}.ver-list{list-style:none;padding:4px 6px;display:flex;flex-direction:column;gap:2px}.ver-item{display:flex;align-items:center;gap:6px;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:6px 7px;border-radius:var(--r-sm);font-size:var(--fs-1);color:var(--text-2);flex-wrap:wrap}.ver-item:hover{background:var(--bg-3);color:var(--text-1)}.ver-item.is-active{background:var(--accent-soft);color:var(--accent)}.ver-src-badge{flex:none;font-size:var(--fs-0);font-weight:600;padding:0 5px;line-height:1.6;border:1px solid currentColor;border-radius:99px}.ver-src-badge.is-manual{color:var(--text-2)}.ver-src-badge.is-ai{color:var(--accent)}.ver-src-badge.is-restore{color:var(--warn)}.ver-meta{flex:1;min-width:0;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ver-item.is-active .ver-meta{color:inherit;opacity:.8}.ver-note{opacity:.8}.ver-time{flex:none;color:var(--text-3);font-variant-numeric:tabular-nums}.ver-preview{margin:6px 8px;border:1px solid var(--border-soft);border-radius:var(--r-md);overflow:hidden}.ver-preview-head{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap;padding:6px 8px;background:var(--bg-3);font-size:var(--fs-1);color:var(--text-2)}.ver-preview-actions{display:inline-flex;gap:6px}.ver-restore-btn{color:var(--warn)}.ver-preview-body{display:grid;grid-template-columns:1fr 1fr;min-height:0}.ver-pane{display:flex;flex-direction:column;min-width:0}.ver-pane+.ver-pane{border-left:1px solid var(--border-soft)}.ver-pane-title{flex:none;padding:4px 8px 2px;font-size:var(--fs-1);color:var(--text-3);border-bottom:1px solid var(--border-soft);background:var(--bg-2)}.ver-pane-content{flex:1;min-height:0;max-height:300px;overflow:auto;margin:0;padding:8px 10px;font-family:var(--font);font-size:var(--fs-1);line-height:1.7;white-space:pre-wrap;word-break:break-word;color:var(--text-1)}@media(max-width:900px){.ver-preview-body{grid-template-columns:1fr}.ver-pane+.ver-pane{border-left:none;border-top:1px solid var(--border-soft)}}.diag-progress{margin:8px 12px 0}.diag-result{padding-top:4px}.diag-score-row{display:flex;align-items:baseline;gap:6px;padding:8px 12px 2px}.diag-score-big{font-size:var(--fs-num);font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums;line-height:1}.diag-score-unit{font-size:var(--fs-1);color:var(--text-3)}.diag-dims{display:flex;flex-direction:column;gap:5px;padding:8px 12px 4px}.diag-dim{display:flex;align-items:center;gap:8px;font-size:var(--fs-1)}.diag-dim-name{flex:none;width:44px;color:var(--text-2)}.diag-dim-bar{flex:1;height:6px;background:var(--bg-4);border-radius:99px;overflow:hidden}.diag-dim-bar i{display:block;height:100%;background:var(--accent);transition:width .4s ease}.diag-dim-val{flex:none;width:26px;text-align:right;color:var(--text-1);font-variant-numeric:tabular-nums;font-weight:600}.diag-issues{list-style:none;padding:2px 8px;margin:0}.diag-issue{padding:7px 6px;border-radius:var(--r-sm);font-size:var(--fs-1);border-bottom:1px solid var(--border-soft)}.diag-issue:last-child{border-bottom:none}.diag-issue-title{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--text-1)}.diag-sev-dot{flex:none;width:8px;height:8px;border-radius:99px}.diag-sev-dot.is-high{background:var(--err)}.diag-sev-dot.is-mid{background:var(--warn)}.diag-sev-dot.is-low{background:var(--text-3)}.diag-issue-detail{margin:3px 0 0 14px;color:var(--text-3);line-height:1.6}.diag-issue-advice{margin:2px 0 0 14px;color:var(--text-2);line-height:1.6}.sq-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.sq-card{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 8px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md)}.sq-card b{font-size:var(--fs-5);color:var(--accent);font-variant-numeric:tabular-nums}.sq-card span{font-size:var(--fs-1);color:var(--text-3)}.sq-table .sq-row{cursor:pointer}@media(max-width:1100px){.ep-list{width:184px}.ep-title-input{flex:1 1 120px;min-width:96px}}@media(max-width:960px){.script-side{display:none}.ep-shortcut-bar,.ep-editor-head{flex-wrap:wrap;row-gap:4px}}
