:root{color-scheme:light;--ink:#172b4d;--muted:#718198;--muted2:#9aa9bb;--line:#dce5ef;--line-soft:#eaf0f6;--surface:#fff;--surface-soft:#f7fafd;--canvas:#f4f7fb;--accent:#2f7de1;--accent-soft:#eaf3ff;--teal:#099b84;--teal-soft:#e5f6f2;--warm:#d99244;--warm-soft:#fff4e9;--danger:#c94e59;--danger-soft:#fff0f1;--shadow:0 8px 24px rgba(30,62,98,.055);font-family:"Alibaba PuHuiTi",sans-serif;color:var(--ink);background:var(--canvas);font-synthesis:none}html[data-theme="dark"]{color-scheme:dark;--ink:#edf2f8;--muted:#a2afbe;--muted2:#77869a;--line:#303b49;--line-soft:#273240;--surface:#161b22;--surface-soft:#1b222c;--canvas:#10151b;--accent:#78adf0;--accent-soft:#1d3048;--teal:#5dc6ad;--teal-soft:#15352f;--warm:#e2ae71;--warm-soft:#34281d;--danger:#ec8290;--danger-soft:#3a2025;--shadow:0 8px 24px rgba(0,0,0,.22)}*{box-sizing:border-box;font-family:inherit}html,body{min-height:100%;margin:0;background:var(--canvas);color:var(--ink)}body{font-size:14px;line-height:1.55}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font-size:32px;line-height:1.18;letter-spacing:-.02em;margin-bottom:8px}h2{font-size:21px;line-height:1.3;margin:0}h3{font-size:16px;margin:0 0 8px}.muted{color:var(--muted);margin:0}.small-label,.field-hint{font-size:11px;color:var(--muted)}.eyebrow,.section-kicker{font-size:10px;letter-spacing:.14em;color:var(--accent);font-weight:700;margin:0 0 7px}.app-shell{display:flex;min-height:100vh}.sidebar{position:sticky;top:0;flex:none;width:258px;height:100vh;padding:22px 15px 17px;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:5}.sidebar-brand{display:flex;align-items:center;gap:11px;padding:0 8px 22px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:var(--ink);color:var(--surface);font-size:19px;font-weight:700}.sidebar-brand strong,.sidebar-brand small{display:block}.sidebar-brand strong{font-size:14px;line-height:1.2}.sidebar-brand small{margin-top:5px;color:var(--muted);font-size:10px;letter-spacing:.1em}.book-switcher-wrap{margin:0 2px 19px;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft)}.book-switcher-wrap .small-label{display:block;margin:0 0 6px}.book-switcher-wrap select{width:100%;min-height:38px;padding:7px 30px 7px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);outline:0}.add-book{width:100%;margin-top:8px}.side-nav{display:grid;gap:4px}.nav-link{display:flex;align-items:center;gap:11px;min-height:42px;padding:9px 10px;border-radius:7px;color:var(--muted);font-size:13px;font-weight:500}.nav-link:hover{background:var(--surface-soft);color:var(--ink)}.nav-link.active{background:var(--accent-soft);color:var(--ink);box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.nav-icon{width:19px;text-align:center;color:var(--muted);font-size:17px}.nav-link.active .nav-icon{color:var(--accent)}.sidebar-foot{display:grid;grid-template-columns:9px 1fr;align-items:center;gap:4px 8px;margin-top:auto;padding:14px 9px 0;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.sidebar-foot small{grid-column:2;color:var(--muted2);font-size:10px}.online-dot{width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px var(--teal-soft)}.app-main{min-width:0;flex:1}.topbar{position:sticky;top:0;z-index:4;height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:color-mix(in srgb,var(--surface) 94%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}.breadcrumb{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.breadcrumb b{color:var(--muted2);font-weight:400}.breadcrumb strong{color:var(--ink);font-weight:600}.topbar-tools{display:flex;align-items:center;gap:10px}.avatar{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:700}.user-name{font-size:12px;color:var(--muted)}.theme-toggle,.icon-button{display:grid;place-items:center;width:35px;height:35px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-size:17px}.theme-toggle:hover,.icon-button:hover{background:var(--surface-soft);color:var(--ink)}.mobile-menu{display:none}.content-shell{max-width:1600px;margin:0 auto;padding:34px 34px 70px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:24px}.page-heading h1{margin-bottom:5px}.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 13px;border:1px solid transparent;border-radius:7px;font-size:12px;font-weight:600;transition:background .15s,border .15s,transform .15s}.button:hover{transform:translateY(-1px)}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:hover{filter:brightness(1.04)}.button.secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.button.secondary:hover,.button.outline:hover{background:var(--surface-soft)}.button.outline{background:var(--surface);border-color:var(--line);color:var(--muted)}.button.subtle{background:transparent;border-color:var(--line-soft);color:var(--muted)}.button.danger{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 30%,var(--line));color:var(--danger)}.button.compact{min-height:32px;padding:6px 10px;font-size:11px}.button.wide{width:100%;min-height:44px}.icon-button{flex:none;border:0;background:transparent;font-size:23px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.metric-card{min-height:116px;padding:16px 17px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}.metric-label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.metric-mark{display:grid;place-items:center;width:23px;height:23px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:700}.metric-card strong{display:block;margin:9px 0 2px;font-size:27px;line-height:1.1}.metric-card small{color:var(--muted2);font-size:10px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(310px,.9fr);gap:15px}.section-block{min-width:0;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:15px}.section-title h2{margin:0}.section-title small{color:var(--muted2);font-size:11px}.section-kicker{margin-bottom:3px}.empty-state{display:grid;place-items:center;min-height:160px;padding:24px;color:var(--muted);text-align:center}.empty-state strong{color:var(--ink);font-size:14px}.empty-state p{max-width:380px;margin:6px auto 0;font-size:12px}.list{display:grid;gap:8px}.list-row{display:flex;align-items:center;gap:12px;min-width:0;padding:12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface);transition:background .15s,border .15s}.list-row:hover{background:var(--surface-soft);border-color:var(--line)}.list-main{min-width:0;flex:1}.list-main strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.list-main small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.row-meta{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px;white-space:nowrap}.status-pill,.priority-pill,.tag{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:3px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:10px;white-space:nowrap}.status-pill.done,.status-pill.review{background:var(--teal-soft);border-color:color-mix(in srgb,var(--teal) 25%,var(--line));color:var(--teal)}.status-pill.active{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 25%,var(--line));color:var(--accent)}.status-pill.blocked,.status-pill.archived{background:var(--warm-soft);color:var(--warm)}.priority-pill.high{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 25%,var(--line))}.word-chip{display:inline-flex;gap:7px;align-items:center;color:var(--muted);font-size:10px;white-space:nowrap}.word-chip b{color:var(--ink);font-weight:600}.progress-line{height:6px;overflow:hidden;border-radius:8px;background:var(--line-soft)}.progress-line span{display:block;height:100%;border-radius:inherit;background:var(--teal)}.book-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.book-card{padding:17px;border:1px solid var(--line);border-radius:9px;background:var(--surface);cursor:pointer}.book-card:hover{border-color:var(--accent);box-shadow:var(--shadow)}.book-card.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.book-card h3{margin:4px 0}.book-card p{font-size:12px;color:var(--muted);min-height:38px}.book-card-footer{display:flex;align-items:center;justify-content:space-between;color:var(--muted2);font-size:10px}.toolbar{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.toolbar button,.toolbar select{min-width:31px;height:31px;padding:0 8px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--muted);font-size:12px}.toolbar button:hover,.toolbar button[aria-pressed="true"]{border-color:var(--line);background:var(--surface);color:var(--ink)}.toolbar .tool-divider{width:1px;height:20px;margin:0 4px;background:var(--line)}.editor-layout{display:grid;grid-template-columns:minmax(340px,1fr) minmax(410px,.9fr);gap:14px;align-items:start}.editor-panel,.preview-panel{min-width:0;overflow:hidden}.editor-panel{padding:0}.editor-top{padding:16px 18px;border-bottom:1px solid var(--line-soft)}.editor-fields{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:12px;margin-bottom:12px}.editor-fields label,.form-grid label,.dialog-field{display:grid;gap:5px;color:var(--muted);font-size:11px}.field-input,.field-select,.field-textarea{width:100%;min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);outline:0;font-size:12px}.field-input:focus,.field-select:focus,.field-textarea:focus,.editor-canvas:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-textarea{resize:vertical;min-height:82px}.editor-toolbar{border:0;border-bottom:1px solid var(--line-soft);border-radius:0;padding:8px 12px}.editor-canvas{min-height:440px;max-height:65vh;overflow:auto;margin:18px auto;padding:48px clamp(25px,5vw,70px);width:min(100% - 28px,780px);border:1px solid var(--line);border-radius:4px;background:var(--surface);box-shadow:0 5px 20px rgba(30,62,98,.07);outline:0;font-size:16px;line-height:1.95;white-space:normal}.editor-canvas:empty:before{content:attr(data-placeholder);color:var(--muted2);pointer-events:none}.editor-canvas p{margin:0 0 1em}.editor-canvas h2,.editor-canvas h3{margin:1.4em 0 .7em}.editor-canvas blockquote{margin:1em 0;padding:.15em 0 .15em 1em;border-left:3px solid var(--accent);color:var(--muted)}.editor-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 17px;border-top:1px solid var(--line-soft)}.count-pair{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:10px}.count-pair b{color:var(--ink);font-weight:600}.save-state{color:var(--muted2);font-size:10px}.save-state.saved{color:var(--teal)}.preview-panel{padding:0}.preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 15px;border-bottom:1px solid var(--line-soft)}.preview-head h3{margin:0;font-size:13px}.preview-mode-switch{display:flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:7px;background:var(--surface-soft)}.preview-mode-switch button{padding:5px 8px;border:0;border-radius:5px;background:transparent;color:var(--muted);font-size:10px}.preview-mode-switch button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}.reader-settings{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}.reader-settings label{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:10px}.reader-settings input[type=range]{width:74px;accent-color:var(--accent)}.reader-settings select{height:29px;padding:3px 6px;border:1px solid var(--line);border-radius:5px;background:var(--surface);font-size:10px}.reader-shell{--reader-size:16px;--reader-leading:1.95;--reader-bg:#fffaf2;--page-width:370px;--page-height:min(66vh,720px);padding:13px;background:var(--surface-soft)}.reader-paper{position:relative;margin:0 auto;max-width:820px;padding:18px;border:1px solid var(--line);border-radius:7px;background:var(--reader-bg);color:#302b25;box-shadow:0 5px 18px rgba(32,37,43,.08);transition:background .15s,color .15s}.reader-paper.night{background:#1c2027;color:#dce1e7}.reader-paper.sepia{background:#f4ead8;color:#3a3328}.reader-title{margin:4px auto 14px;text-align:center;font-size:17px;font-weight:600}.reader-pages{height:var(--page-height);overflow:hidden;scroll-behavior:smooth;scrollbar-width:none}.reader-pages::-webkit-scrollbar{display:none}.reader-flow{height:var(--page-height);column-width:var(--page-width);column-gap:36px;column-fill:auto;font-size:var(--reader-size);line-height:var(--reader-leading);overflow-x:auto;overflow-y:hidden;white-space:normal}.reader-flow p{margin:0 0 .85em;break-inside:avoid}.reader-flow h2,.reader-flow h3,.reader-flow blockquote{break-inside:avoid}.reader-flow blockquote{padding-left:1em;border-left:2px solid currentColor;opacity:.78}.reader-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;color:var(--muted);font-size:10px}.reader-arrows{display:flex;gap:5px}.reader-arrows button{width:31px;height:29px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}.mobile-reader-toggle{display:none}.reader-fullscreen{position:fixed;inset:0;z-index:30;overflow:auto;padding:20px;background:var(--canvas)}.reader-fullscreen .reader-paper{max-width:840px;padding:34px 48px}.reader-fullscreen .reader-pages{height:calc(100vh - 180px)}.reader-fullscreen .reader-flow{height:calc(100vh - 180px)}.reader-fullscreen .reader-title{font-size:23px}.reader-fullscreen-close{position:fixed;top:15px;right:15px;z-index:31}.editor-list-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:13px}.search-input{min-width:190px;flex:1;min-height:36px;padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);font-size:12px}.select-small{min-height:34px;padding:6px 9px;border:1px solid var(--line);border-radius:6px;background:var(--surface);font-size:11px}.chapter-list{display:grid;gap:7px;max-height:calc(100vh - 250px);overflow:auto;padding:3px}.chapter-row{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line-soft);border-radius:7px;background:var(--surface);cursor:pointer}.chapter-row:hover{background:var(--surface-soft)}.chapter-row.active{border-color:var(--accent);background:var(--accent-soft)}.chapter-no{min-width:36px;color:var(--muted2);font-size:10px;text-align:center}.chapter-row .list-main strong{font-size:11px}.editor-workspace{display:grid;grid-template-columns:220px minmax(0,1fr);gap:13px}.editor-main{min-width:0}.editor-main .page-heading{margin-bottom:14px}.editor-main .page-heading h1{font-size:25px}.editor-sidebar{padding:12px}.chapter-side-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.chapter-side-title h3{font-size:12px;margin:0}.outline-doc-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:14px}.doc-tabs{display:grid;gap:5px}.doc-tab{padding:10px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);text-align:left;font-size:12px}.doc-tab:hover,.doc-tab.active{border-color:var(--line);background:var(--surface-soft);color:var(--ink)}.doc-tab strong{display:block;font-size:12px;font-weight:600}.doc-tab small{display:block;margin-top:3px;color:var(--muted2);font-size:10px}.doc-editor{min-width:0}.doc-editor .editor-canvas{min-height:520px}.ticket-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:13px}.ticket-filter-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;flex:1}.view-toggle{display:flex;padding:3px;border:1px solid var(--line);border-radius:7px;background:var(--surface-soft)}.view-toggle button{padding:6px 10px;border:0;border-radius:5px;background:transparent;color:var(--muted);font-size:10px}.view-toggle button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}.ticket-board{display:grid;grid-template-columns:repeat(6,minmax(205px,1fr));gap:10px;overflow:auto;padding-bottom:9px}.ticket-column{min-width:205px;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft)}.ticket-column-head{display:flex;align-items:center;justify-content:space-between;margin:0 2px 9px;font-size:11px;font-weight:600}.ticket-column-head span{color:var(--muted2);font-size:10px}.ticket-column-body{display:grid;gap:7px;min-height:120px}.ticket-card{padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);cursor:pointer}.ticket-card:hover{border-color:var(--accent)}.ticket-card strong{display:block;margin:6px 0;font-size:12px}.ticket-card small{color:var(--muted2);font-size:10px}.ticket-card-meta{display:flex;align-items:center;justify-content:space-between}.ticket-table{width:100%;border-collapse:collapse}.ticket-table th,.ticket-table td{padding:10px 9px;border-bottom:1px solid var(--line-soft);text-align:left;font-size:11px}.ticket-table th{color:var(--muted2);font-weight:500}.ticket-table td{color:var(--ink)}.ticket-table tr:hover td{background:var(--surface-soft)}.ticket-table .title-cell{max-width:380px;font-weight:600}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid .full{grid-column:1/-1}.dialog-field input,.dialog-field select,.dialog-field textarea{width:100%}.dialog-checklist{display:grid;gap:7px}.checklist-row{display:flex;align-items:center;gap:8px}.checklist-row input[type=text]{flex:1}.checklist-row input[type=checkbox]{accent-color:var(--teal)}.book-switcher-row{display:flex;align-items:center;gap:10px}.security-note{padding:12px;border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);color:var(--muted);font-size:11px}.token-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-soft)}.token-row:last-child{border-bottom:0}.token-row .list-main{flex:1}.token-once{padding:12px;border:1px solid var(--warm);border-radius:7px;background:var(--warm-soft);overflow-wrap:anywhere;font-size:12px}.app-dialog{width:min(720px,calc(100% - 28px));max-height:min(88vh,850px);padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);box-shadow:0 24px 80px rgba(0,0,0,.25)}.app-dialog::backdrop{background:rgba(16,26,38,.42);backdrop-filter:blur(2px)}.app-dialog form{display:flex;flex-direction:column;max-height:inherit}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:19px 21px;border-bottom:1px solid var(--line-soft)}.dialog-head h2{font-size:19px}.dialog-body{overflow:auto;padding:18px 21px}.dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:13px 21px;border-top:1px solid var(--line-soft)}.form-error{color:var(--danger);font-size:11px}.toast-region{position:fixed;right:18px;bottom:18px;z-index:60;display:grid;gap:8px;pointer-events:none}.toast{max-width:min(390px,calc(100vw - 30px));padding:11px 14px;border:1px solid var(--line);border-radius:8px;background:var(--ink);color:var(--surface);box-shadow:var(--shadow);font-size:12px}.toast.error{background:var(--danger);color:white}.screen-reader{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.login-page{display:grid;place-items:center;min-height:100vh;padding:24px;background:radial-gradient(circle at 15% 8%,var(--accent-soft),transparent 35%),var(--canvas)}.login-shell{width:min(430px,100%)}.login-brand{display:flex;align-items:center;gap:12px;margin:0 0 25px 5px}.login-brand strong,.login-brand small{display:block}.login-brand strong{font-size:15px}.login-brand small{margin-top:4px;color:var(--muted);font-size:11px}.login-card{padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.login-card h1{font-size:29px}.login-card form{margin-top:24px}.login-card label{display:block;margin:14px 0 6px;color:var(--muted);font-size:12px;font-weight:500}.login-card input{width:100%;height:43px;padding:9px 11px;border:1px solid var(--line);border-radius:7px;background:var(--surface);outline:0}.login-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.login-card .button{margin-top:16px}.login-foot{margin:20px 0 0;padding-top:15px;border-top:1px solid var(--line-soft);color:var(--muted2);font-size:10px}.lock-icon{color:var(--teal);margin-right:5px}.login-copy{margin-top:18px;text-align:center;color:var(--muted2);font-size:10px}.login-theme{position:fixed;top:18px;right:18px}.saving{color:var(--warm)!important}.error-text{color:var(--danger)}.mobile-editor-tabs{display:none}
html[data-theme="dark"] .reader-paper{box-shadow:0 5px 18px rgba(0,0,0,.3)}
@media(max-width:1200px){.editor-layout{grid-template-columns:minmax(300px,1fr) minmax(360px,.85fr)}.editor-workspace{grid-template-columns:195px minmax(0,1fr)}.content-shell{padding:29px 25px 60px}.metric-grid{gap:10px}}
@media(max-width:900px){.sidebar{width:225px}.dashboard-grid{grid-template-columns:1fr}.editor-layout{grid-template-columns:1fr}.preview-panel{order:2}.editor-panel{order:1}.reader-shell{--page-width:340px}.ticket-board{grid-template-columns:repeat(6,minmax(190px,1fr))}}
@media(max-width:680px){.app-shell{display:block}.sidebar{position:fixed;top:0;bottom:0;left:0;width:min(290px,86vw);height:100dvh;transform:translateX(-105%);transition:transform .2s;box-shadow:8px 0 24px rgba(0,0,0,.1)}.sidebar.open{transform:translateX(0)}.app-main{min-height:100vh}.topbar{height:57px;padding:0 12px;gap:8px}.mobile-menu{display:grid}.breadcrumb{gap:6px;font-size:10px}.breadcrumb span{display:none}.breadcrumb b{display:none}.topbar-tools{gap:6px}.user-name{max-width:70px;overflow:hidden;text-overflow:ellipsis}.avatar{width:27px;height:27px}.theme-toggle{width:31px;height:31px}.topbar-tools .button{min-height:29px;padding:5px 8px}.content-shell{padding:23px 13px 45px}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:19px}.page-heading h1{font-size:26px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.metric-card{min-height:98px;padding:12px}.metric-card strong{font-size:23px}.section-block{padding:15px}.book-card-grid{grid-template-columns:1fr}.list-row{align-items:flex-start;gap:8px;padding:10px}.row-meta{align-items:flex-end;flex-direction:column;gap:4px}.editor-workspace{grid-template-columns:1fr}.editor-sidebar{display:none}.editor-main .page-heading{align-items:flex-start;flex-direction:row}.editor-fields{grid-template-columns:1fr 124px;gap:8px}.editor-canvas{min-height:54vh;max-height:none;margin:11px auto;padding:31px 23px;width:calc(100% - 20px);font-size:16px}.preview-panel{display:none}.preview-panel.mobile-preview-active{display:block;position:fixed;inset:0;z-index:24;overflow:auto;padding:0 0 max(20px,env(safe-area-inset-bottom));background:var(--canvas)}.preview-panel.mobile-preview-active .preview-head{position:sticky;top:0;background:var(--surface);z-index:2}.preview-panel.mobile-preview-active .reader-shell{--page-height:auto;--page-width:100%;padding:10px}.preview-panel.mobile-preview-active .reader-paper{max-width:650px;min-height:100dvh;padding:24px 22px;border:0;border-radius:0;box-shadow:none}.preview-panel.mobile-preview-active .reader-pages{height:auto;overflow:visible}.preview-panel.mobile-preview-active .reader-flow{height:auto;overflow:visible;column-count:1;column-width:auto;column-gap:0}.preview-panel.mobile-preview-active .reader-title{font-size:20px;margin:10px auto 22px}.preview-panel.mobile-preview-active .reader-controls .desktop-page-control{display:none}.mobile-reader-toggle{display:inline-flex}.reader-settings{position:sticky;top:55px;z-index:2;background:var(--surface)}.outline-doc-layout{grid-template-columns:1fr}.doc-tabs{display:flex;overflow:auto;gap:5px}.doc-tab{min-width:108px}.doc-tab strong{white-space:nowrap}.doc-editor .editor-canvas{min-height:55vh}.ticket-toolbar{align-items:stretch;flex-direction:column}.ticket-filter-row{display:grid;grid-template-columns:1fr 1fr}.ticket-filter-row .search-input{grid-column:1/-1}.ticket-board{grid-template-columns:repeat(6,minmax(190px,1fr))}.ticket-table th:nth-child(4),.ticket-table td:nth-child(4),.ticket-table th:nth-child(5),.ticket-table td:nth-child(5){display:none}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.app-dialog{width:calc(100% - 18px);max-height:90dvh}.dialog-head,.dialog-body,.dialog-actions{padding-left:15px;padding-right:15px}.login-card{padding:23px}.reader-fullscreen{padding:10px}.reader-fullscreen .reader-paper{padding:26px 20px}.reader-fullscreen .reader-pages,.reader-fullscreen .reader-flow{height:auto;overflow:visible;column-count:1;column-width:auto}.reader-fullscreen .reader-pages{height:auto}.reader-fullscreen .reader-flow{height:auto}.save-indicator{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* 手机阅读预览：暖纸色、较大字号与连续纵向阅读。 */
.reader-shell{--reader-size:20px;--reader-leading:1.95;--reader-bg:#faf5e9;--page-width:390px}
.reader-paper.sepia{background:#ded3bd;color:#342c20}
.reader-title{font-size:22px;margin:7px auto 22px}
.reader-flow p{margin:0 0 1.05em}
.reader-fullscreen .reader-title{font-size:26px}
@media(max-width:680px){
  .preview-panel.mobile-preview-active{background:#ded3bd}
  .preview-panel.mobile-preview-active .reader-shell{--page-height:auto;--page-width:100%;padding:0;background:transparent}
  .preview-panel.mobile-preview-active .reader-paper{max-width:650px;min-height:100dvh;padding:26px clamp(20px,6vw,30px);border:0;border-radius:0;box-shadow:none}
  .preview-panel.mobile-preview-active .reader-title{font-size:24px;margin:12px auto 26px}
}@media(max-width:680px){.preview-panel.mobile-preview-active[data-reader-theme="night"]{background:#1c2027}}
/* 书页由页面按钮控制翻页，不显示浏览器原生横向滚动条。 */
.reader-flow{overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}
.reader-flow::-webkit-scrollbar{display:none;width:0;height:0}/* 本地游戏开发总控台色板：仅复制颜色令牌，小说站继续独立加载自己的样式。 */
:root{--ink:#172b4d;--muted:#718198;--muted-2:#9aa9bb;--muted2:var(--muted-2);--line:#dce5ef;--line-soft:#eaf0f6;--surface:#fff;--surface-soft:#f7fafd;--canvas:#f4f7fb;--accent:#2f7de1;--accent-soft:#eaf3ff;--teal:#099b84;--teal-soft:#e5f6f2;--warm:var(--accent);--warm-soft:var(--accent-soft);--danger:#c94e59;--danger-soft:#fff0f1;--shadow:0 8px 24px rgba(30,62,98,.055)}
html[data-theme="dark"]{color-scheme:dark;--ink:#e7eef7;--muted:#9aacc0;--muted-2:#71849a;--muted2:var(--muted-2);--line:#2b4056;--line-soft:#223449;--surface:#162536;--surface-soft:#1c3046;--canvas:#0d1826;--accent:#69a9ff;--accent-soft:#1c3d68;--teal:#4bc9ae;--teal-soft:#173f3d;--warm:var(--accent);--warm-soft:var(--accent-soft);--danger:#ff8c96;--danger-soft:#48252c;--shadow:0 10px 28px rgba(0,0,0,.22);background:#0d1826;color:var(--ink)}
html[data-theme="dark"],html[data-theme="dark"] body{background:#0d1826;color:var(--ink)}
.reader-paper.night{background:#162536;color:#e7eef7}
@media(max-width:680px){
  .preview-panel.mobile-preview-active{display:flex;flex-direction:column;overflow:hidden;padding:0;background:#ded3bd}
  .preview-panel.mobile-preview-active[data-reader-theme="night"]{background:#162536}
  .preview-panel.mobile-preview-active .preview-head{position:relative;top:auto;flex:0 0 auto;background:var(--surface)}
  .preview-panel.mobile-preview-active .preview-mode-switch{display:none}
  .preview-panel.mobile-preview-active .reader-settings{position:relative;top:auto;flex:0 0 auto;background:var(--surface)}
  .preview-panel.mobile-preview-active .reader-shell{display:flex;flex:1 1 auto;min-height:0;--page-height:auto;--page-width:calc(100vw - clamp(40px,12vw,60px));padding:0;background:transparent;overflow:hidden}
  .preview-panel.mobile-preview-active .reader-paper{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;height:100%;max-width:none;padding:14px clamp(20px,6vw,30px) 10px;border:0;border-radius:0;box-shadow:none}
  .preview-panel.mobile-preview-active .reader-title{flex:0 0 auto;margin:8px auto 16px;font-size:24px}
  .preview-panel.mobile-preview-active .reader-pages{flex:1 1 auto;min-height:0;height:auto;overflow:hidden}
  .preview-panel.mobile-preview-active .reader-flow{height:100%;column-width:calc(100vw - clamp(40px,12vw,60px));column-gap:0;column-count:auto;overflow-x:hidden;overflow-y:hidden;touch-action:none}
  .preview-panel.mobile-preview-active .reader-controls{flex:0 0 auto;margin:10px 0 0;padding-bottom:max(8px,env(safe-area-inset-bottom))}
  .preview-panel.mobile-preview-active .reader-controls .desktop-page-control{display:grid}
  .reader-fullscreen{display:flex;flex-direction:column;overflow:hidden}
  .reader-fullscreen[hidden]{display:none!important}
  .reader-fullscreen .reader-paper{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;height:100%;max-width:none;padding:42px 20px 10px}
  .reader-fullscreen .reader-pages{flex:1 1 auto;min-height:0;height:auto;overflow:hidden}
  .reader-fullscreen .reader-flow{height:100%;column-width:calc(100vw - 60px);column-gap:0;column-count:auto;overflow-x:hidden;overflow-y:hidden;touch-action:none}
}/* 当前游戏总控台的 Apple 中性配色：亮色与暗色均取自线上运行主题。 */
:root{color-scheme:light;--ink:#1d1d1f;--muted:#6e6e73;--muted-2:#86868b;--muted2:var(--muted-2);--line:rgba(0,0,0,.10);--line-soft:rgba(0,0,0,.055);--surface:#fff;--surface-soft:#f5f5f7;--canvas:#f4f7fb;--accent:#0071e3;--accent-soft:rgba(0,113,227,.08);--teal:#5f6368;--teal-soft:#f5f5f7;--warm:var(--accent);--warm-soft:var(--accent-soft);--danger:#b42318;--danger-soft:#fff1f0;--shadow:0 1px 3px rgba(0,0,0,.04),0 10px 28px rgba(0,0,0,.06)}
html[data-theme="dark"]{color-scheme:dark;--ink:#f5f5f7;--muted:#a1a1a6;--muted-2:#8e8e93;--muted2:var(--muted-2);--line:rgba(255,255,255,.13);--line-soft:rgba(255,255,255,.075);--surface:#161617;--surface-soft:#1c1c1e;--canvas:#000;--accent:#0a84ff;--accent-soft:rgba(10,132,255,.14);--teal:#c7c7cc;--teal-soft:#2c2c2e;--warm:var(--accent);--warm-soft:var(--accent-soft);--danger:#ff6961;--danger-soft:#3a1e1c;--shadow:0 1px 3px rgba(0,0,0,.55),0 12px 30px rgba(0,0,0,.45);background:#000;color:var(--ink)}
html[data-theme="dark"],html[data-theme="dark"] body{background:#000;color:var(--ink)}
.reader-paper.paper{--reader-ink:#1d1d1f;--reader-muted:#6e6e73;--reader-line:rgba(0,0,0,.10);background:#fff;color:var(--reader-ink)}
.reader-paper.sepia{--reader-ink:#342c20;--reader-muted:#75664f;--reader-line:rgba(52,44,32,.18);background:#ded3bd;color:var(--reader-ink)}
.reader-paper.night{--reader-ink:#f5f5f7;--reader-muted:#a1a1a6;--reader-line:rgba(255,255,255,.13);background:#161617;color:var(--reader-ink)}
.reader-title,.reader-flow{color:var(--reader-ink,#1d1d1f)}
.reader-controls{color:var(--reader-muted,#6e6e73)}
.reader-arrows button{border-color:var(--reader-line,rgba(0,0,0,.10));background:transparent;color:var(--reader-muted,#6e6e73)}
@media(max-width:680px){
  .preview-panel.mobile-preview-active[data-reader-theme="paper"]{background:#fff}
  .preview-panel.mobile-preview-active[data-reader-theme="sepia"]{background:#ded3bd}
  .preview-panel.mobile-preview-active[data-reader-theme="night"]{background:#161617}
  .preview-panel.mobile-preview-active .reader-arrows{display:none!important}
  .preview-panel.mobile-preview-active .reader-controls .mobile-reader-toggle{min-height:30px;padding:4px 0;border:0;background:transparent;box-shadow:none;color:var(--reader-muted);font-size:11px}
  .reader-fullscreen .reader-controls>button{display:none!important}
}.reader-controls{color:var(--reader-ink,#1d1d1f)}
.reader-arrows button{color:var(--reader-ink,#1d1d1f)}
@media(max-width:680px){.preview-panel.mobile-preview-active .reader-controls .mobile-reader-toggle{color:var(--reader-ink,#1d1d1f)}}/* 阅读设置：固定在阅读视区下缘，以当前书页色调呈现。 */
.reader-settings-open{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:6px 11px;border:1px solid var(--reader-line,rgba(0,0,0,.10));border-radius:999px;background:transparent;color:var(--reader-ink,#1d1d1f);font-size:11px;font-weight:600}
.reader-settings-open:hover{background:color-mix(in srgb,var(--reader-ink,#1d1d1f) 7%,transparent)}
.reader-settings-dialog{position:fixed;inset:auto auto 22px 50%;z-index:1000;width:min(510px,calc(100vw - 30px));max-height:min(78dvh,660px);margin:0;padding:0;overflow:auto;transform:translateX(-50%);border:1px solid var(--reader-line,rgba(0,0,0,.10));border-radius:18px 18px 12px 12px;background:var(--reader-bg,#fff);color:var(--reader-ink,#1d1d1f);box-shadow:0 20px 70px rgba(0,0,0,.26)}
.reader-settings-dialog.paper{--reader-bg:#fff;--reader-ink:#1d1d1f;--reader-muted:#6e6e73;--reader-line:rgba(0,0,0,.10)}
.reader-settings-dialog.sepia{--reader-bg:#ded3bd;--reader-ink:#342c20;--reader-muted:#75664f;--reader-line:rgba(52,44,32,.18)}
.reader-settings-dialog.night{--reader-bg:#161617;--reader-ink:#f5f5f7;--reader-muted:#a1a1a6;--reader-line:rgba(255,255,255,.13)}
.reader-settings-dialog::backdrop{background:rgba(0,0,0,.34);backdrop-filter:blur(3px)}
.reader-settings-form{display:grid;gap:0}
.reader-settings-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px 14px;border-bottom:1px solid var(--reader-line)}
.reader-sheet-grip{display:none}
.reader-settings-kicker{margin:0 0 4px;color:var(--reader-muted);font-size:10px;letter-spacing:.1em}
.reader-settings-head h2{margin:0;color:var(--reader-ink);font-size:18px}
.reader-settings-done{min-height:34px;padding:6px 12px;border:1px solid var(--reader-line);border-radius:999px;background:transparent;color:var(--reader-ink);font-size:12px;font-weight:600}
.reader-settings-body{display:grid;gap:18px;padding:18px 22px 22px}
.reader-setting-group{display:grid;gap:10px}
.reader-setting-label{display:flex;align-items:center;justify-content:space-between;color:var(--reader-ink);font-size:12px;font-weight:600}
.reader-setting-label output{color:var(--reader-muted);font-variant-numeric:tabular-nums;font-weight:500}
.reader-size-slider{width:100%;margin:2px 0;accent-color:var(--accent)}
.reader-leading-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.reader-leading-options button{min-height:38px;border:1px solid var(--reader-line);border-radius:9px;background:transparent;color:var(--reader-muted);font-size:12px}
.reader-leading-options button.is-selected{border-color:var(--reader-ink);background:color-mix(in srgb,var(--reader-ink) 7%,transparent);color:var(--reader-ink);font-weight:700}
.reader-tone-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.reader-tone-option{display:grid;grid-template-columns:1fr auto;align-items:center;gap:7px;min-width:0;padding:8px;border:1px solid var(--reader-line);border-radius:11px;background:var(--tone-bg);color:var(--tone-ink);text-align:left;font-size:11px;font-weight:600}
.reader-tone-option::before{grid-column:1/-1;display:block;height:25px;border:1px solid var(--tone-line);border-radius:6px;background:var(--tone-bg);content:""}
.reader-tone-option.tone-paper{--tone-bg:#fff;--tone-ink:#1d1d1f;--tone-line:rgba(0,0,0,.10)}
.reader-tone-option.tone-sepia{--tone-bg:#ded3bd;--tone-ink:#342c20;--tone-line:rgba(52,44,32,.18)}
.reader-tone-option.tone-night{--tone-bg:#161617;--tone-ink:#f5f5f7;--tone-line:rgba(255,255,255,.13)}
.reader-tone-check{opacity:0;color:var(--accent);font-size:13px}
.reader-tone-option.is-selected{outline:2px solid var(--accent);outline-offset:1px}
.reader-tone-option.is-selected .reader-tone-check{opacity:1}
.reader-tone-option:focus-visible,.reader-settings-open:focus-visible,.reader-settings-done:focus-visible{outline:3px solid var(--accent-soft);outline-offset:2px}
@keyframes readerSheetIn{from{transform:translate(-50%,18px);opacity:.8}to{transform:translate(-50%,0);opacity:1}}
@media(max-width:680px){
  .reader-settings-dialog{inset:auto 0 0;width:100%;max-width:none;max-height:80dvh;padding-bottom:env(safe-area-inset-bottom);transform:none;border-right:0;border-bottom:0;border-left:0;border-radius:18px 18px 0 0}
  .reader-settings-dialog[open]{animation:readerSheetIn .22s ease-out}
  .reader-settings-head{padding:20px 17px 13px}
  .reader-settings-body{gap:16px;padding:15px 17px 20px}
  .reader-sheet-grip{position:absolute;top:7px;left:50%;display:block;width:34px;height:4px;border-radius:999px;background:var(--reader-muted);opacity:.35;transform:translateX(-50%)}
  .preview-panel.mobile-preview-active .reader-controls .reader-settings-open{min-height:30px;padding:4px 10px;color:var(--reader-ink);border-color:var(--reader-line)}
}@keyframes readerSheetUp{from{transform:translateY(22px);opacity:.85}to{transform:translateY(0);opacity:1}}
@media(max-width:680px){
  .reader-settings-dialog[open]{animation:readerSheetUp .22s ease-out}
  .reader-fullscreen .reader-controls #fullPrev,.reader-fullscreen .reader-controls #fullNext{display:none!important}
  .reader-fullscreen .reader-controls .reader-settings-open{display:inline-flex!important}
}

/* 全站响应式安全网：阻止网格/弹性子项把页面撑宽，并让长文本留在所属面板内。 */
*,
*::before,
*::after{
  box-sizing:border-box;
}

html,
body{
  min-width:0;
  max-width:100%;
  overflow-x:clip;
}

.app-shell,
.app-main,
.content-shell,
#mainContent,
.topbar,
.breadcrumb,
.topbar-tools,
.page-heading,
.page-heading>* ,
.section-title>* ,
.dashboard-grid,
.editor-layout,
.editor-workspace,
.editor-main,
.editor-panel,
.preview-panel,
.outline-doc-layout,
.outline-doc-layout>* ,
.section-block,
.doc-editor,
.book-card-grid,
.book-card,
.form-grid,
.form-grid>* ,
.editor-fields,
.editor-fields>* ,
.ticket-toolbar,
.ticket-filter-row,
.ticket-filter-row>* ,
.ticket-board,
.ticket-column,
.token-row,
.app-dialog,
.dialog-body,
.dialog-actions{
  min-width:0;
}

img,
svg,
video,
canvas{
  max-width:100%;
}

.button,
.field-input,
.field-select,
.field-textarea,
.search-input,
.select-small,
.custom-select,
.multi-select,
.custom-select-trigger,
.multi-select-trigger{
  min-width:0;
  max-width:100%;
}

.button{
  white-space:normal;
  overflow-wrap:anywhere;
  text-align:center;
}

.breadcrumb strong,
.reader-title,
.ticket-card strong,
.book-card h3,
.section-title h2{
  overflow-wrap:anywhere;
}

.token-once,
.security-note,
.book-card,
.ticket-card,
.dialog-body,
.doc-editor>.reader-paper{
  overflow-wrap:anywhere;
}

/* surface/ink 令牌随主题反转：浅色为浅底深字，深色为深底浅字。 */
.brand-mark{
  border:1px solid var(--line);
  background:var(--surface);
  color:var(--ink);
}

/* 设定资料使用界面主题文字色，避免深色模式沿用阅读纸张的深棕字。 */
.doc-editor>.reader-paper{
  border-color:var(--line);
  background:var(--surface-soft);
  color:var(--ink);
}

.doc-editor>.reader-paper .reader-title,
.doc-editor>.reader-paper .reader-flow{
  color:var(--ink);
}

/* 表格和看板各自在自己的面板中横向滚动；滚动条使用全站中性色。 */
.ticket-board,
.section-block:has(> .ticket-table),
.chapter-list,
.doc-tabs,
.editor-canvas,
.dialog-body,
.reader-settings-dialog{
  scrollbar-color:var(--muted2) transparent;
  scrollbar-width:thin;
}

.ticket-board,
.section-block:has(> .ticket-table){
  overscroll-behavior-x:contain;
}

.ticket-board::-webkit-scrollbar,
.section-block:has(> .ticket-table)::-webkit-scrollbar,
.chapter-list::-webkit-scrollbar,
.doc-tabs::-webkit-scrollbar,
.editor-canvas::-webkit-scrollbar,
.dialog-body::-webkit-scrollbar,
.reader-settings-dialog::-webkit-scrollbar{
  width:8px;
  height:8px;
}

.ticket-board::-webkit-scrollbar-thumb,
.section-block:has(> .ticket-table)::-webkit-scrollbar-thumb,
.chapter-list::-webkit-scrollbar-thumb,
.doc-tabs::-webkit-scrollbar-thumb,
.editor-canvas::-webkit-scrollbar-thumb,
.dialog-body::-webkit-scrollbar-thumb,
.reader-settings-dialog::-webkit-scrollbar-thumb{
  border:2px solid transparent;
  border-radius:999px;
  background:var(--muted2);
  background-clip:padding-box;
}

/* 对话框由固定头尾和唯一滚动正文组成，窄屏与矮窗口仍能触达操作区。 */
.app-dialog{
  max-width:calc(100vw - 20px);
  overflow:hidden;
  overscroll-behavior:contain;
}

.app-dialog form{
  min-width:0;
  min-height:0;
  overflow:hidden;
}

.dialog-head,
.dialog-actions{
  flex:0 0 auto;
  min-width:0;
}

.dialog-body{
  flex:1 1 auto;
  min-height:0;
  overscroll-behavior:contain;
}

.dialog-actions{
  flex-wrap:wrap;
}

.dialog-actions>.button,
.dialog-actions>button{
  min-width:0;
}

.reader-settings-dialog{
  box-sizing:border-box;
  max-width:calc(100vw - 24px);
  overflow-x:hidden;
  overscroll-behavior:contain;
}

.reader-settings-body{
  min-width:0;
}

.ticket-board{
  max-width:100%;
  min-width:0;
}

.ticket-table{
  max-width:100%;
}

@media(max-width:680px){
  .book-card-footer,
  .editor-footer,
  .count-pair,
  .dialog-actions{
    flex-wrap:wrap;
  }

  .book-card-footer{
    gap:7px 12px;
  }

  .count-pair{
    row-gap:5px;
  }

  .ticket-board{
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    padding-bottom:10px;
    scroll-snap-type:x proximity;
  }

  .ticket-column{
    scroll-snap-align:start;
  }

  .section-block:has(> .ticket-table){
    max-width:100%;
    overflow-x:auto!important;
    overflow-y:hidden!important;
  }

  .ticket-table{
    min-width:720px;
  }

  .app-dialog{
    max-width:calc(100vw - 18px);
    max-height:min(90dvh,850px);
  }

  .dialog-head{
    gap:8px;
    padding-top:15px;
    padding-bottom:13px;
  }

  .dialog-body{
    padding-top:14px;
    padding-bottom:14px;
  }

  .dialog-actions{
    justify-content:stretch;
    padding-top:10px;
    padding-bottom:max(10px,env(safe-area-inset-bottom));
  }

  .dialog-actions>.button,
  .dialog-actions>button{
    flex:1 1 120px;
  }

  .reader-settings-dialog{
    max-width:100vw;
  }
}

@media(max-width:480px){
  .topbar-tools .user-name{
    display:none;
  }

  .breadcrumb{
    overflow:hidden;
  }

  .breadcrumb strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .content-shell{
    padding-right:12px;
    padding-left:12px;
  }

  .section-block{
    padding:13px;
  }

  .editor-fields,
  .ticket-filter-row{
    grid-template-columns:minmax(0,1fr);
  }

  .ticket-filter-row .search-input{
    grid-column:auto;
  }

  .editor-footer{
    align-items:flex-start;
  }

  .count-pair{
    justify-content:flex-start;
    gap:7px 12px;
  }

  .dialog-actions>.button,
  .dialog-actions>button{
    flex-basis:100%;
  }

  .reader-settings-head{
    gap:9px;
  }

  .reader-settings-body{
    gap:14px;
  }
}

/* 独立阅读页：桌面版使用比编辑器预览更宽的正文列。 */
.reading-page{
  width:100%;
  max-width:1320px;
  min-width:0;
  margin:0 auto;
}

.reading-page-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  width:100%;
  max-width:1240px;
  min-width:0;
  margin:0 auto 18px;
}

.reading-page-head>div{
  min-width:0;
}

.reading-page-head h1{
  margin-bottom:5px;
  overflow-wrap:anywhere;
}

.reading-page-head .muted{
  overflow-wrap:anywhere;
}

.reading-preview{
  width:100%;
  max-width:1240px;
  min-width:0;
  margin:0 auto;
  overflow:hidden;
}

.reading-preview .reader-shell{
  --page-width:min(780px,calc(100vw - 96px));
  --page-height:min(60dvh,740px);
  min-width:0;
  width:100%;
  padding:18px;
}

.reading-preview .reader-paper{
  width:100%;
  max-width:1140px;
  min-width:0;
  margin:0 auto;
  padding:clamp(28px,4vw,54px) clamp(30px,6vw,82px);
}

.reading-preview .reader-flow{
  column-width:var(--page-width);
}

.reading-preview .reader-controls{
  flex-wrap:wrap;
}

.reading-chapter-picker{
  flex:0 1 390px;
  min-width:0;
  max-width:100%;
}

.reading-chapter-picker select,
.reading-chapter-picker .custom-select{
  width:100%;
  min-width:0;
  max-width:100%;
}

.reading-chapter-picker .custom-select-trigger{
  min-height:42px;
}

@media(max-width:680px), (max-width:900px) and (max-height:520px){
  /* 手机与窄高横屏进入沉浸阅读；外层和纸页都扣除安全区。 */
  .reading-page{
    position:fixed;
    inset:0;
    z-index:24;
    display:flex;
    flex-direction:column;
    width:auto;
    max-width:none;
    min-height:0;
    overflow:hidden;
    padding-top:env(safe-area-inset-top);
    background:var(--canvas);
    overscroll-behavior:contain;
  }

  .reading-page-head{
    display:none;
  }

  .reading-preview{
    display:flex;
    flex:1 1 auto;
    flex-direction:column;
    min-height:0;
    max-width:none;
    margin:0;
    border:0;
    border-radius:0;
    background:var(--surface);
    box-shadow:none;
  }

  .reading-preview .preview-head{
    position:relative;
    top:auto;
    z-index:2;
    flex:0 0 auto;
    min-width:0;
    padding-right:max(12px,env(safe-area-inset-right));
    padding-left:max(12px,env(safe-area-inset-left));
    background:var(--surface);
  }

  .reading-preview .preview-head>div:first-child{
    min-width:0;
  }

  .reading-preview .preview-head h3{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .reading-preview .preview-mode-switch{
    display:none;
  }

  .reading-preview .reader-shell{
    --page-height:auto;
    --page-width:calc(100vw - max(20px,env(safe-area-inset-left)) - max(20px,env(safe-area-inset-right)));
    display:flex;
    flex:1 1 auto;
    min-height:0;
    padding:0;
    overflow:hidden;
    background:transparent;
  }

  .reading-preview .reader-paper{
    display:flex;
    flex:1 1 auto;
    flex-direction:column;
    width:100%;
    height:100%;
    min-height:0;
    max-width:none;
    padding:12px max(20px,env(safe-area-inset-right)) 8px max(20px,env(safe-area-inset-left));
    border:0;
    border-radius:0;
    box-shadow:none;
  }

  .reading-preview .reader-title{
    flex:0 0 auto;
    margin:7px auto 12px;
    font-size:22px;
  }

  .reading-preview .reader-pages{
    flex:1 1 auto;
    min-height:0;
    height:auto;
    overflow:hidden;
  }

  .reading-preview .reader-flow{
    height:100%;
    column-width:var(--page-width);
    column-gap:0;
    column-count:auto;
    overflow-x:hidden;
    overflow-y:hidden;
    touch-action:none;
  }

  .reading-preview .reader-controls{
    display:grid;
    flex:0 0 auto;
    grid-template-columns:minmax(0,1fr) auto auto;
    align-items:center;
    gap:8px;
    min-width:0;
    margin:8px 0 0;
    padding:8px max(14px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));
    border-top:1px solid var(--reader-line,rgba(0,0,0,.1));
    background:inherit;
  }

  .reading-chapter-picker{
    grid-column:1;
    min-width:0;
    width:100%;
    flex:none;
  }

  .reading-chapter-picker .custom-select-trigger,
  .reading-chapter-picker select{
    min-height:44px;
  }

  .reading-preview #readerPageLabel{
    grid-column:2;
    white-space:nowrap;
    font-size:10px;
  }

  .reading-preview .reader-arrows{
    display:none!important;
  }

  .reading-preview .reader-controls .reader-settings-open{
    grid-column:3;
    min-width:44px;
    min-height:44px;
    padding:6px 10px;
  }
}

@media(max-height:520px) and (max-width:900px){
  .reading-preview .preview-head{
    padding-top:7px;
    padding-bottom:7px;
  }

  .reading-preview .reader-paper{
    padding-top:6px;
    padding-bottom:4px;
  }

  .reading-preview .reader-title{
    margin-top:2px;
    margin-bottom:5px;
    font-size:18px;
  }

  .reading-preview .reader-controls{
    margin-top:3px;
    padding-top:4px;
  }
}

/* 保持 HTML hidden 状态，不让组件自身的 display 覆盖隐藏语义。 */
[hidden]{
  display:none!important;
}
