/* Private reading uses the existing paper, ink and brass palette. */
[data-auth-controls] { display:flex; align-items:center; justify-content:center; flex:0 0 38px; width:38px; height:38px; }
.auth-nav-button { display:inline-flex; align-items:center; justify-content:center; flex:0 0 38px; width:38px; height:38px; padding:0; border:0; border-radius:0; background:transparent; color:var(--ink-muted); font:12px/1.4 var(--ui-sans); text-decoration:none; white-space:nowrap; cursor:pointer; }
.auth-nav-button:hover { color:var(--ink); }
.auth-nav-button:focus-visible { outline:1px solid var(--ink-muted); outline-offset:-4px; }
.auth-button:focus-visible, .auth-secondary-link:focus-visible { outline:2px solid var(--brass); outline-offset:4px; }
.auth-nav-button:disabled, .auth-button:disabled { opacity:.55; cursor:wait; }
.access-badge { display:inline; margin-left:6px; color:var(--ink-muted); font:10px/1.5 var(--ui-sans); letter-spacing:0; white-space:nowrap; vertical-align:middle; }
.field-column-head .access-badge { margin-left:6px; }
.column-name .access-badge { margin-left:8px; }
.issue-meta-line .access-badge { margin-left:4px; }
.auth-access-note { margin-top:20px; color:var(--ink-muted); font:12px/1.7 var(--ui-sans); }
.auth-page { max-width:1000px; margin:0 auto; padding:72px 32px 90px; }
.auth-page-heading { margin-bottom:40px; }
.auth-page-heading h1 { margin:18px 0; font:normal clamp(32px,5vw,48px)/1.3 var(--serif); letter-spacing:.03em; }
.auth-page-heading>p:last-child { color:var(--ink-soft); line-height:1.9; font-size:14px; }
.auth-columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); border-top:1px solid var(--line-strong); border-bottom:1px solid var(--line); }
.auth-login-panel { padding:34px 44px 34px 0; }
.auth-application { padding:34px 0 34px 44px; border-left:1px solid var(--line); scroll-margin-top:130px; }
.auth-application-title, .auth-login-panel h2 { font:normal 23px/1.4 var(--serif); margin-bottom:22px; }
.auth-form label { display:grid; gap:9px; margin-bottom:22px; font:13px/1.5 var(--ui-sans); color:var(--ink-soft); }
.auth-form input { width:100%; min-height:46px; border:1px solid var(--line); border-radius:2px; padding:10px 12px; background:var(--paper-raised); color:var(--ink); font:16px/1.5 var(--ui-sans); }
.auth-form input:focus { outline:2px solid var(--brass); outline-offset:2px; }
.auth-button { display:inline-flex; justify-content:center; align-items:center; min-height:44px; gap:9px; padding:11px 20px; border:1px solid var(--ink); border-radius:2px; background:var(--ink); color:var(--paper); font:13px/1.5 var(--ui-sans); cursor:pointer; text-decoration:none; }
.auth-button:hover { opacity:.85; }
.auth-button-secondary { background:transparent; color:var(--ink-soft); border-color:var(--line-strong); }
.auth-copy, .auth-contact-text { font:14px/1.9 var(--ui-sans); color:var(--ink-soft); white-space:pre-wrap; overflow-wrap:anywhere; }
.auth-contact-text { margin-top:14px; }
.auth-fine-print { margin-top:20px; color:var(--ink-muted); font:12px/1.8 var(--ui-sans); }
.auth-secondary-link { display:inline-block; margin-top:18px; color:var(--brass); text-underline-offset:4px; font:13px/1.6 var(--ui-sans); }
.auth-error { min-height:24px; margin-bottom:12px; color:#a54634; font:13px/1.7 var(--ui-sans); }
[data-theme="dark"] .auth-error { color:#e29679; }
.auth-qr { display:block; margin-top:20px; width:160px; height:160px; object-fit:contain; background:#fff; padding:6px; border:1px solid var(--line); }
.auth-existing { color:var(--ink-soft); line-height:1.9; }
.auth-existing .auth-button { margin-top:20px; }
.auth-return { display:inline-block; margin-top:28px; font:13px/1.8 var(--ui-sans); color:var(--ink-muted); }
.auth-notice { position:fixed; z-index:2000; left:50%; bottom:24px; transform:translateX(-50%); max-width:calc(100vw - 32px); width:max-content; padding:12px 18px; border:1px solid var(--line-strong); box-shadow:0 4px 24px var(--shadow); background:var(--paper-raised); color:var(--ink); font:13px/1.6 var(--ui-sans); }
.auth-notice[hidden], .auth-existing[hidden], .auth-form[hidden], .auth-button[hidden], .auth-secondary-link[hidden] { display:none; }
/* A persistent reader bar keeps login and return navigation available inside handbooks. */
.reader-page { --reader-bar-height:40px; }
.reader-return { position:fixed; inset:0 0 auto; height:var(--reader-bar-height); z-index:80; display:flex; align-items:center; gap:16px; padding:0 18px; border-bottom:1px solid var(--line); background:var(--paper); color:var(--ink-soft); font:12px/1.4 var(--ui-sans); }
.reader-return>a { display:block; flex:none; height:100%; color:var(--brass); line-height:calc(var(--reader-bar-height) - 1px); text-decoration:none; white-space:nowrap; }
.reader-return>a:hover { text-decoration:underline; }
.reader-return>a:focus-visible { outline:2px solid var(--brass); outline-offset:-4px; }
.reader-return-current { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; flex:1; }
.reader-return [data-auth-controls] { flex-basis:32px; width:32px; height:32px; margin-left:auto; }
.reader-return .auth-nav-button { flex-basis:32px; width:32px; height:32px; }
/* style.css 的 .theme-toggle 是给更高的站点页头设计的（66×34）；阅读条只有 40px 高、12px 字号，
   直接放进去会失衡。这里按阅读条的编排比例缩小，且只作用于 .reader-return，其他页面不受影响。 */
.reader-return .theme-toggle { flex:none; width:56px; height:28px; padding:2px; border-radius:14px; }
.reader-return .theme-choice { height:22px; }
.reader-return .theme-choice svg { width:13px; height:13px; }
.reader-page .reader-frame { top:var(--reader-bar-height); height:calc(100% - var(--reader-bar-height)); }
.reader-frame[hidden], .reader-gate[hidden] { display:none; }
.reader-gate { position:fixed; inset:var(--reader-bar-height) 0 0; overflow:auto; background:var(--paper); padding:clamp(36px,8vh,84px) 24px 60px; }
.reader-gate-inner { max-width:560px; margin:0 auto; }
.reader-gate-context { padding-bottom:26px; border-bottom:1px solid var(--line); }
.reader-gate h1 { font:normal 28px/1.5 var(--serif); margin:0 0 16px; overflow-wrap:anywhere; }
.reader-gate-summary { color:var(--ink-soft); font:14px/1.9 var(--ui-sans); }
.reader-gate-message { margin-top:24px; font:13px/1.8 var(--ui-sans); color:var(--ink-muted); }
.reader-gate-message:empty { display:none; }
.reader-gate-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; margin:22px 0 0; }
.reader-gate .auth-button { min-height:42px; padding:10px 18px; }
.reader-gate .auth-details { margin-top:24px; color:var(--ink-muted); font:13px/1.8 var(--ui-sans); }
.reader-gate .auth-details summary { width:fit-content; cursor:pointer; }
.reader-gate .auth-details summary:hover { color:var(--ink); }
.reader-gate .auth-details summary:focus-visible { outline:1px solid var(--ink-muted); outline-offset:4px; }
.reader-gate .auth-application { padding:20px 0 0; border:0; }
.reader-gate .auth-application-title { font-size:16px; margin-bottom:12px; }
.reader-gate .auth-copy { font-size:13px; line-height:1.85; }
.reader-gate .auth-fine-print { margin-top:14px; font-size:12px; }
.reader-gate .auth-return { margin-top:24px; }
.reader-gate .auth-return[hidden] { display:none; }
.reader-gate .auth-details[hidden] { display:none; }
.reader-gated #ai-panel-host, .reader-gated .ai-launcher-btn, .reader-gated .ai-float-btn { display:none!important; }
/* The direct-content login notice shares the same quiet, single-column treatment. */
.auth-standalone .auth-page { width:min(400px,calc(100% - 48px)); max-width:400px; padding:72px 0; }
.auth-standalone .auth-page>.auth-return:first-child { margin:0 0 32px; }
.auth-standalone .auth-page-heading { margin-bottom:26px; }
.auth-standalone .auth-page-heading h1 { font-size:28px; margin:0 0 16px; }
.auth-standalone .auth-page-heading>p:last-child { font-size:14px; }
.auth-standalone .auth-secondary-link { display:block; margin-top:20px; color:var(--ink-muted); }
@media(max-width:900px) and (min-width:721px) { .field-nav { gap:16px; } }
@media(max-width:720px) { .auth-page { padding:42px 24px 64px; } .auth-columns { grid-template-columns:1fr; } .auth-login-panel { padding:28px 0; } .auth-application { padding:28px 0; border-left:0; border-top:1px solid var(--line); } .auth-page-heading { margin-bottom:30px; } .reader-return { gap:12px; padding:0 12px; } .reader-return-current { display:none; } .reader-gate { padding:40px 24px 52px; } .reader-gate h1 { font-size:26px; } .reader-gate .auth-application { padding:20px 0 0; } .auth-standalone .auth-page { padding:48px 0; } }
@media(max-width:420px) { .header-actions { gap:4px; } .reader-return { gap:10px; font-size:11px; } .reader-return>a:first-child { font-size:0; } .reader-return>a:first-child::after { content:"← 首页"; font-size:11px; } #reader-return-column { max-width:36vw; overflow:hidden; text-overflow:ellipsis; } }
