:root{--bg:#f6f5f2;--view:#ecebe6;--card:#fff;--ink:#1c1b19;--ink-2:#5e5d59;--ink-3:#8a8984;--line:#dddcd6;--accent:#1f3f6b;--accent-soft:#e6eef5;--accent-ink:#fff;--gold:#d9a441;--paper:#faf8f1;--cover-1:#5a6b5e;--cover-2:#4a5560;--cover-3:#6a6348;--cover-4:#5c4a42;--cover-5:#4f5a68;--cover-6:#6b6154;--cover-7:#54604f;--cover-8:#615560;--cover-ink:#fff;--warn:#8a5a12;--warn-soft:#f3e8d3;--danger:#a23b2a;--danger-soft:#f6e2dd;--page:#fff;--font-ui:system-ui, -apple-system, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-read:Charter, "Bitstream Charter", "Source Han Serif SC", "Noto Serif SC", "Songti SC", Georgia, serif;--font-mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--fs-11:11px;--fs-13:13px;--fs-15:15px;--fs-17:17px;--fs-22:22px;--fs-28:28px;--lh-ui:1.45;--lh-read:1.65;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--r:8px;--r-sm:6px;--r-pill:999px;--shadow:none;--shadow-pop:0 8px 28px #1c1b191f;--touch:44px;--dur-color:.15s;--dur-panel:.22s;--ease-out:ease-out;--rail-w:64px;--bar-h:52px;--chat-w:340px;--toc-w:280px;--hint-line:var(--ink-3);--pagehint-line:color-mix(in srgb, var(--accent) 40%, var(--ink-3));--pagehint-fill:color-mix(in srgb, var(--accent) 8%, transparent);--chunk-line:var(--accent);--chunk-soft:color-mix(in srgb, var(--accent) 10%, transparent);--wordcard-w:320px}@media (prefers-reduced-motion:reduce){:root{--dur-color:0s;--dur-panel:0s}}*,:before,:after{box-sizing:border-box}:root{font-family:var(--font-ui);font-size:var(--fs-15);line-height:var(--lh-ui);color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%}html,body,#root{height:100%}body{padding-top:env(safe-area-inset-top,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);margin:0}h1,h2,h3,p{margin:0}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-soft)}.app-loading{height:100%;color:var(--ink-3);font-size:var(--fs-13);place-items:center;display:grid}.app-fatal{height:100%;padding:var(--sp-5);place-items:center;display:grid}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.brand-logo{flex:none;place-items:center;display:grid}.brand-mark-img{object-fit:contain;-webkit-user-select:none;user-select:none;display:block}.about-backdrop{z-index:20;padding:var(--sp-5);background:color-mix(in srgb, var(--ink) 28%, transparent);place-items:center;display:grid;position:fixed;inset:0}.about-dialog{width:min(28rem,100%);max-height:min(40rem, calc(100dvh - 2 * var(--sp-5)));padding:var(--sp-6) var(--sp-5) var(--sp-5);border-radius:var(--r);background:var(--card);box-shadow:var(--shadow-pop);text-align:center;position:relative;overflow:auto}.about-close{top:var(--sp-2);right:var(--sp-2);position:absolute}.about-lockup{width:min(200px,64%);height:auto;margin:0 auto var(--sp-5);display:block}.about-quote{font-family:var(--font-read);font-size:var(--fs-17);line-height:var(--lh-read);color:var(--accent);margin:0}.about-cite{margin-top:var(--sp-2);color:var(--ink-3);font-size:var(--fs-13)}.about-vernacular{margin-top:var(--sp-4);color:var(--ink-2);font-size:var(--fs-13);line-height:var(--lh-ui)}.about-affil{margin-top:var(--sp-5);color:var(--ink-3);font-size:var(--fs-11)}.hosted-scroll{flex:1;min-height:0;overflow:auto}.hosted{max-width:48rem;padding:var(--sp-4) var(--sp-5) calc(var(--sp-7) + var(--touch));gap:var(--sp-4);flex-direction:column;margin:0 auto;display:flex}.hosted-head h1{font-size:var(--fs-22);margin:0;font-weight:650}.hosted-sub{color:var(--ink-3);font-size:var(--fs-13);margin:2px 0 0}.hosted-section h2{font-size:var(--fs-15);margin:0 0 var(--sp-2);color:var(--ink-2);font-weight:600}.hosted-row{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.hosted-stack{gap:var(--sp-3);flex-direction:column;display:flex}.hosted-field{gap:var(--sp-1);font-size:var(--fs-14);flex-direction:column;flex:1;min-width:10rem;display:flex}.hosted-field span,.hosted-field>label{color:var(--ink-2)}.hosted-quota-grid{gap:var(--sp-3);grid-template-columns:1fr;display:grid}@media (width>=720px){.hosted-quota-grid{grid-template-columns:1fr 1fr}}.hosted-metric{flex-direction:column;gap:6px;display:flex}.hosted-metric-label{font-size:var(--fs-13);color:var(--ink-2)}.hosted-metric-value{font-size:var(--fs-15);font-weight:600}.hosted-bar{background:var(--line);border-radius:99px;height:6px;overflow:hidden}.hosted-bar>i{background:var(--accent);border-radius:inherit;height:100%;display:block}.hosted-bar.warn>i{background:var(--warn)}.hosted-table-wrap{overflow:auto}.hosted-table{border-collapse:collapse;width:100%;font-size:var(--fs-13)}.hosted-table th,.hosted-table td{text-align:left;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line);vertical-align:middle}.hosted-table th{color:var(--ink-3);font-weight:600}.hosted-login-toggle{gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.hosted-banners{gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) 0;flex-direction:column;display:flex}.hosted-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.hosted-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-13);letter-spacing:.04em}.hosted-login .login-form{gap:var(--sp-3);flex-direction:column;display:flex}.hosted-chip-row{flex-wrap:wrap;gap:8px;display:flex}.hosted-chip{border:1px solid var(--line);font-size:var(--fs-13);border-radius:99px;align-items:center;gap:6px;padding:4px 8px;display:inline-flex}.hosted-chip-x{cursor:pointer;color:var(--ink-3);background:0 0;border:0;font-size:16px;line-height:1}.hosted-check{font-size:var(--fs-14);align-items:center;gap:8px;display:flex}.hosted-text-btn{color:var(--accent);cursor:pointer;font-size:var(--fs-13);text-align:left;background:0 0;border:0;padding:0}.login{justify-content:center;align-items:center;gap:var(--sp-5);min-height:100dvh;padding:var(--sp-5) var(--sp-4);padding-bottom:calc(var(--sp-5) + env(safe-area-inset-bottom));background:var(--view);flex-direction:column;display:flex}.login-brand{align-items:center;gap:var(--sp-3);display:flex}.login-brand h1{font-size:var(--fs-28);letter-spacing:-.01em;font-weight:650}.login-slogan{color:var(--ink-3);font-weight:500}.login-sub{color:var(--ink-3);font-size:var(--fs-13);margin-top:2px}.login-origin{margin-top:calc(-1 * var(--sp-3));color:var(--ink-3);font-size:var(--fs-11)}.login .card{width:100%;max-width:22rem;padding:var(--sp-5)}.login-form{gap:var(--sp-4);flex-direction:column;display:flex}.login-form label{gap:var(--sp-2);font-size:var(--fs-13);color:var(--ink-2);flex-direction:column;display:flex}.shell{background:var(--bg);height:100%;display:flex}.shell-rail{width:var(--rail-w);align-items:center;gap:var(--sp-1);padding:var(--sp-3) var(--sp-1);background:var(--bg);flex-direction:column;flex:none;display:flex}.shell-mark{width:var(--touch);height:var(--touch);margin-bottom:var(--sp-2);border-radius:var(--r);place-items:center;display:grid}.shell-nav{width:52px;min-height:var(--touch);padding:var(--sp-1) 2px;border-radius:var(--r);color:var(--ink-2);font-size:var(--fs-11);transition:background-color var(--dur-color) ease, color var(--dur-color) ease;flex-direction:column;justify-content:center;align-items:center;gap:2px;line-height:1.2;text-decoration:none;display:flex}.shell-nav .icon{flex:none;width:20px;height:20px}.shell-nav:hover{background:color-mix(in srgb, var(--ink) 6%, transparent)}.shell-nav.active{background:var(--accent-soft);color:var(--accent)}.shell-nav.disabled{color:var(--ink-3);opacity:.5;cursor:default}.shell-about{cursor:pointer;background:0 0;border:0;margin-top:auto}.shell-main{background:var(--view);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.shell-tabs{display:none}@media (width<=1024px){.shell-rail{display:none}.shell-tabs{border-top:1px solid var(--line);background:var(--bg);padding:var(--sp-1) var(--sp-2);padding-bottom:calc(var(--sp-1) + env(safe-area-inset-bottom));flex:none;justify-content:space-around;display:flex;overflow-x:auto}.shell-tabs a,.shell-tabs>span,.shell-tabs>button{border-radius:var(--r);min-width:64px;min-height:48px;color:var(--ink-3);font-size:var(--fs-11);flex-direction:column;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.shell-tabs .icon{width:20px;height:20px}.shell-tabs a.active{color:var(--accent)}.shell-tabs>span.disabled{opacity:.5}.shell-tabs>button{cursor:pointer;background:0 0;border:0}}.pwa-offline{z-index:9000;padding:6px var(--sp-3);padding-top:calc(6px + env(safe-area-inset-top,0px));text-align:center;font-size:var(--fs-13);color:var(--ink);background:color-mix(in srgb, var(--warn) 22%, var(--paper));border-bottom:1px solid color-mix(in srgb, var(--warn) 40%, transparent);position:fixed;top:0;left:0;right:0}.pwa-update{left:50%;bottom:calc(var(--sp-4) + env(safe-area-inset-bottom,0px));z-index:9001;align-items:center;gap:var(--sp-2);max-width:min(28rem, calc(100vw - var(--sp-4)));padding:var(--sp-2) var(--sp-3);border-radius:var(--r);background:var(--bg);border:1px solid var(--line);box-shadow:0 8px 28px color-mix(in srgb, var(--ink) 12%, transparent);font-size:var(--fs-14);display:flex;position:fixed;transform:translate(-50%)}.pwa-update-dismiss{color:var(--ink-3);cursor:pointer;padding:0 var(--sp-1);background:0 0;border:0;margin-left:auto;font-size:1.25rem;line-height:1}@media (width<=1024px){.pwa-update{bottom:calc(56px + var(--sp-3) + env(safe-area-inset-bottom,0px))}}
