.auth-wrap{max-width:420px;padding-top:var(--sp-12);margin:0 auto}.auth-hero{text-align:center;margin-bottom:var(--sp-6)}.auth-hero__mark{border-radius:9px;width:36px;height:36px;font-size:22px}.auth-hero .h1{margin-top:var(--sp-3)}.auth-hero__desc{margin-top:4px}.auth-card__hd{padding:0 16px}.auth-card__hd .tabs{border-bottom:0;width:100%}.auth-card__hd .tabs a{text-decoration:none}.auth-card__hd .tabs a[aria-current=page]{color:var(--ink-900);border-bottom-color:var(--brand-600);font-weight:600}.auth-foot{text-align:center;margin-top:var(--sp-4)}.account-layout{gap:var(--sp-6);grid-template-columns:200px minmax(0,1fr);align-items:start;display:grid}.account-side{padding:8px}.side-nav a{border-radius:var(--r-sm);color:var(--ink-700);justify-content:space-between;padding:7px 10px;font-size:13px;display:flex}.side-nav a:hover{background:var(--surface-2);text-decoration:none}.side-nav a[aria-current=page]{background:var(--brand-50);color:var(--brand-700);font-weight:500}.account-grid-2{gap:var(--sp-4);grid-template-columns:1fr 1fr;display:grid}@media (width<=760px){.account-layout{grid-template-columns:1fr}.account-side{display:none}.account-grid-2{grid-template-columns:1fr}}.art-row{gap:var(--sp-3);padding:13px var(--sp-4);border-bottom:1px solid var(--rule);grid-template-columns:34px minmax(0,1fr) auto;align-items:center;display:grid}.art-row:last-child{border-bottom:0}.art-row:hover{background:#fafcfc}.art-row__mark{border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--brand-50);width:34px;height:44px;font-family:var(--font-read);color:var(--brand-700);place-items:center;font-size:15px;display:grid}.art-row__title{font-family:var(--font-read);color:var(--ink-900);font-size:15px;line-height:22px}.art-row__act{flex-direction:column;align-items:flex-end;gap:5px;display:flex}.art-row__sub{align-items:center;gap:var(--sp-2);margin:0;display:flex}.step{align-items:flex-start;gap:10px;display:flex}.step+.step{margin-top:var(--sp-3)}.step__no{border:1px solid var(--brand-300);background:var(--surface);width:20px;height:20px;color:var(--brand-700);border-radius:50%;flex:none;place-items:center;margin-top:1px;font-size:11px;font-weight:600;display:grid}.step__no.is-on{background:var(--brand-600);border-color:var(--brand-600);color:#fff}.article-src{white-space:pre-wrap;overflow-wrap:break-word;font-family:var(--font-read);color:var(--ink-800);font-size:15px;line-height:28px}.rights-statement{font-size:var(--t-sm);color:var(--ink-600);line-height:22px}.parse-stats{gap:var(--sp-2) var(--sp-5);flex-wrap:wrap;display:flex}.parse-stats__item{font-size:var(--t-xs);color:var(--ink-600);font-variant-numeric:tabular-nums}@media (width<=760px){.art-row{grid-template-columns:34px minmax(0,1fr)}.art-row .art-row__act{display:none}}.share-row{gap:var(--sp-2);padding:13px var(--sp-4);border-bottom:1px solid var(--rule);flex-direction:column;display:flex}.share-row:last-child{border-bottom:0}.share-row:hover{background:#fafcfc}.share-editor{padding:var(--sp-3);background:var(--surface-2);border-radius:var(--r-md)}.share-created{margin-bottom:var(--sp-4)}.share-created .input-group{flex-wrap:wrap}a.list__row{color:inherit;text-decoration:none}.page-pick__row{align-items:center;gap:var(--sp-3);padding:11px var(--sp-4);border-bottom:1px solid var(--rule);cursor:pointer;display:flex}.page-pick__row:last-child{border-bottom:0}.page-pick__row:hover{background:#fafcfc}.page-pick__no{border-radius:var(--r-sm);background:var(--surface-2);width:26px;height:20px;color:var(--ink-600);font-variant-numeric:tabular-nums;flex:none;place-items:center;font-size:11px;display:grid}.confirm-block{margin-top:var(--sp-4);gap:var(--sp-3);flex-direction:column;display:flex}.card__bd>.confirm-block{margin-top:0}.confirm-block__balance{font-size:var(--t-sm);color:var(--ink-600);font-variant-numeric:tabular-nums;margin:0}.confirm-block__actions{align-items:center;gap:var(--sp-2);display:flex}.confirm-block__lack{border-radius:var(--r-md);padding:10px var(--sp-4);background:#fffaf2;border:1px solid #f0dfc4;flex-direction:column;gap:6px;display:flex}.confirm-block__lack .sm{color:var(--amber-700)}@media (width<=760px){.confirm-block__actions{flex-wrap:wrap}}.lib-grid{gap:var(--sp-6);grid-template-columns:212px minmax(0,1fr);align-items:start;display:grid}.lib-side{top:calc(var(--topbar-h) + var(--sp-5));position:sticky}@media (width<=760px){.lib-grid{grid-template-columns:minmax(0,1fr)}.lib-side{position:static}}.side-nav{flex-direction:column;gap:1px;display:flex}.side-nav__row{border-radius:var(--r-sm);color:var(--ink-700);align-items:center;gap:4px;padding:7px 10px;font-size:13px;display:flex}.side-nav__select{justify-content:space-between;gap:var(--sp-2);border-radius:var(--r-sm);min-width:0;color:var(--ink-700);cursor:pointer;text-align:left;background:0 0;border:0;flex:auto;padding:7px 10px;font-size:13px;display:flex}.side-nav__select:hover{background:var(--surface-2)}.side-nav__select[aria-current=page]{background:var(--brand-50);color:var(--brand-700);font-weight:500}.side-nav__select span{color:var(--ink-400);font-variant-numeric:tabular-nums}.side-nav__act{border-radius:var(--r-sm);color:var(--ink-400);cursor:pointer;background:0 0;border:0;flex:none;padding:2px 4px;font-size:11.5px}.side-nav__act:hover{background:var(--surface-2);color:var(--ink-700)}.side-nav__act--danger:hover{color:var(--rose-700)}.side-nav__form{gap:6px;padding:4px 6px 8px;display:flex}.side-nav__form .input{flex:auto;min-width:0;height:30px;font-size:13px}.cat-checks{gap:var(--sp-3);flex-direction:column;display:flex}.lib-word__title{font-family:var(--font-read);color:var(--ink-900);font-size:16px}.lib-word__ipa{font-family:var(--font-ipa);color:var(--ink-500);font-size:12.5px}.cmp-table{border-collapse:collapse;width:100%;font-size:var(--t-sm)}.cmp-table th,.cmp-table td{padding:9px var(--sp-3);border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;color:var(--ink-800)}.cmp-table tbody tr:last-child td{border-bottom:0}.cmp-table thead th{color:var(--ink-500);font-size:11.5px;font-weight:600}@media (width<=760px){.cmp-table th:first-child,.cmp-table td:first-child{display:none}}.ra-reader .ra-seg{white-space:pre-wrap;font-family:var(--font-read);font-size:var(--read-en);line-height:var(--read-en-lh);color:var(--ink-900)}.ra-reader .ra-nl{display:none}.ra-reader button.w__ipa,.ra-reader button.w__en,.ra-reader button.phrase__gloss{appearance:none;cursor:pointer;background:0 0;border:0;margin:0;padding:0 2px}.ra-reader .ra-ipa-none{letter-spacing:0}.ra-reader :focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}.ra-reader .ra-phrase .phrase__words{flex-wrap:wrap;row-gap:12px}@media (pointer:coarse){.ra-reader .w__en,.ra-reader .w__ipa,.ra-reader .phrase__gloss{padding-block:3px}}.ra-reader.ra-immersive .reader-aside{top:64px;right:var(--sp-6);width:var(--panel-w);z-index:60;opacity:0;pointer-events:none;max-height:calc(100vh - 88px);transition:opacity var(--dur-2) var(--ease), transform var(--dur-2) var(--ease);display:block;position:fixed;overflow:auto;transform:translate(10px)}.ra-reader.ra-immersive .reader-aside.is-open{opacity:1;pointer-events:auto;transform:none}.ra-reader.ra-immersive .imm-bar{display:flex}.ra-reader.ra-narrow .reader-aside.ra-sheet{z-index:60;background:var(--surface);border-top:1px solid var(--rule);max-height:min(72vh,560px);padding:var(--sp-2) var(--sp-2) var(--sp-5);transition:transform var(--dur-2) var(--ease);pointer-events:none;border-radius:14px 14px 0 0;display:block;position:fixed;bottom:0;left:0;right:0;overflow:auto;transform:translateY(100%);box-shadow:0 -8px 24px #15242b1a}.ra-reader.ra-narrow .reader-aside.ra-sheet.is-open{pointer-events:auto;transform:none}.ra-reader.ra-narrow .ra-sheet .panel{border:0;border-radius:0}.ra-reader .panel__word{overflow-wrap:anywhere}.ra-reader .panel__list li{gap:8px}.ra-reader .ra-panel-ext{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--rule)}@media (prefers-reduced-motion:reduce){.ra-reader *,.ra-reader :before,.ra-reader :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.reader-host .rh-notes{gap:var(--sp-3);margin-bottom:var(--sp-4)}body.immersive .reader-host .rh-hd{display:none}.rh-notes .note p{margin:0 0 var(--sp-2)}.rh-notes .note p:last-child{margin-bottom:0}.lex{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px dashed var(--rule)}.ra-panel-ext .lex{border-top:none;margin-top:0;padding-top:0}.lex__hd{margin:0 0 var(--sp-2)}.lex__info .panel__sec:first-child{margin-top:0}.lex__entry{margin-top:var(--sp-3)}.lex__form{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--rule)}.lex__hint{font-size:var(--t-xs);color:var(--ink-500);margin:0;line-height:18px}.lex .note{margin:0}.shared-host .shared-snapshot-note{margin-bottom:var(--sp-4)}.shared-host .legal{margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--rule);color:var(--ink-500);font-size:12px;line-height:20px}.shared-host .legal p{margin:0}.shared-host .legal p+p{margin-top:4px}.shared-host .legal b{color:var(--ink-700)}.shared-host .shared-cta,.shared-cta{margin-top:var(--sp-5);align-items:center;gap:var(--sp-2);text-align:center;flex-direction:column;display:flex}.shared-cta .row--center{justify-content:center}.shared-cta .xs{max-width:560px}.stat{gap:var(--sp-6);padding:var(--sp-4);flex-wrap:wrap;display:flex}.stat__item{min-width:96px}.stat__k{color:var(--ink-500);margin:0 0 6px;font-size:11.5px}.stat__v{font-variant-numeric:tabular-nums;margin:0;font-size:24px;font-weight:600;line-height:32px}.stat__v small{color:var(--ink-500);margin-left:3px;font-size:12px;font-weight:400}.stat__redeem{align-self:center;margin-left:auto}.ledger-desc{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}@media (width<=760px){.stat{gap:var(--sp-4)}.stat__redeem{margin-left:0}}.admin-page .admin{min-height:auto}.admin-table-wrap{overflow-x:auto}.admin-table-wrap .table{min-width:640px}.admin-code{border:1px dashed var(--rule-strong);border-radius:var(--r-md);background:var(--surface-2);font-family:var(--font-mono);word-break:break-all;-webkit-user-select:all;user-select:all;padding:12px 14px;font-size:14px;line-height:22px;display:block}.admin-reason{min-height:72px}.admin-json{border:1px solid var(--rule);border-radius:var(--r-md);background:var(--surface-2);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;max-height:320px;margin:0;padding:10px 12px;font-size:12px;line-height:18px;overflow:auto}.admin-empty{padding:var(--sp-12) var(--sp-6)}.pill--used{background:var(--surface-3);color:var(--ink-600)}.admin-rail-status{font-size:var(--t-xs);color:var(--ink-400);padding:6px 9px}@media (width>=1081px){.admin__rail>nav+nav{margin-top:var(--sp-4)}}.admin-login{max-width:420px;margin:var(--sp-8) auto 0}.admin-toolbar{margin-bottom:var(--sp-4);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-toolbar .input{flex:0 auto;width:auto;min-width:180px}.admin-pager{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-top:var(--sp-4);display:flex}.admin-pager__btns{gap:8px;display:flex}.admin-kv{grid-template-columns:96px minmax(0,1fr);gap:6px 12px;margin:0;display:grid}.admin-kv dt{font-size:var(--t-xs);color:var(--ink-400);padding-top:2px}.admin-kv dd{font-size:var(--t-sm);word-break:break-all;min-width:0;margin:0}.admin-mono{font-family:var(--font-mono);font-size:12.5px}.admin-home-row{justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-3) 0;border-bottom:1px solid var(--rule);display:flex}.admin-home-row .h3{font-size:14px}.admin-details summary{cursor:pointer;font-size:var(--t-sm);color:var(--brand-600)}.admin-details .stack{min-width:320px;margin-top:8px}.admin-check{font-size:var(--t-sm);color:var(--ink-700);align-items:center;gap:6px;margin-top:6px;display:flex}.admin-grid-2{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 16px;display:grid}.admin-row-actions{flex-wrap:wrap;gap:6px;display:flex}.admin-dialog{flex-direction:column;max-height:min(92vh,860px);display:flex}.admin-dialog .dialog__bd{min-height:0;overflow-y:auto}@media (prefers-reduced-motion:reduce){:root{--dur-1:0s;--dur-2:0s}}:root{--font-ui:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans SC", sans-serif;--font-read:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Songti SC", "Times New Roman", serif;--font-ipa:"Charis SIL", "Gentium Plus", "Doulos SIL", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--ink-900:#15242b;--ink-800:#20343b;--ink-700:#3c5158;--ink-600:#55696f;--ink-500:#64767c;--ink-400:#93a2a7;--ink-300:#b3bfc2;--paper:#f4f7f6;--surface:#fff;--surface-2:#eef3f2;--surface-3:#e4ebe9;--rule:#dde6e4;--rule-strong:#c3d1ce;--brand-700:#0e666f;--brand-600:#137580;--brand-500:#1b8a96;--brand-300:#7fbcc1;--brand-100:#ddedee;--brand-50:#eff7f7;--green-700:#1d6b4f;--green-100:#e3f0e9;--amber-700:#8a5a16;--amber-500:#b07c28;--amber-100:#f7ebd6;--rose-700:#9b3a2e;--rose-100:#f8e7e3;--focus:#137580;--text-ipa:#62777d;--text-gloss:#5a6f74;--text-phrase:#0f6672;--rule-phrase:#3c8f98;--t-h1:26px;--t-h1-lh:36px;--t-h2:18px;--t-h2-lh:28px;--t-h3:14px;--t-h3-lh:22px;--t-body:14px;--t-body-lh:23px;--t-sm:13px;--t-sm-lh:21px;--t-xs:12px;--t-xs-lh:19px;--read-en:21px;--read-en-lh:30px;--read-ipa:12.5px;--read-ipa-lh:18px;--read-gloss:12.5px;--read-gloss-lh:19px;--read-measure:720px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-14:56px;--sp-18:72px;--r-xs:3px;--r-sm:4px;--r-md:6px;--r-lg:10px;--r-xl:14px;--r-pill:999px;--shadow-1:0 1px 2px #15242b0f;--shadow-2:0 2px 10px #15242b14;--shadow-3:0 16px 40px #15242b24, 0 2px 8px #15242b0f;--topbar-h:60px;--control-h:36px;--container:1120px;--panel-w:356px;--ease:cubic-bezier(.2, .7, .3, 1);--dur-1:.12s;--dur-2:.22s}@media (prefers-reduced-motion:reduce){:root{--dur-1:0s;--dur-2:0s}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink-900);font-family:var(--font-ui);font-size:var(--t-body);line-height:var(--t-body-lh);letter-spacing:0;-webkit-font-smoothing:antialiased;margin:0}body.is-locked{overflow:hidden}a{color:var(--brand-600);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-xs)}img,svg{vertical-align:middle}button{font:inherit}.h1{font-size:var(--t-h1);line-height:var(--t-h1-lh);margin:0;font-weight:600}.h2{font-size:var(--t-h2);line-height:var(--t-h2-lh);margin:0;font-weight:600}.h3{font-size:var(--t-h3);line-height:var(--t-h3-lh);margin:0;font-weight:600}.p{font-size:var(--t-body);line-height:var(--t-body-lh);margin:0}.sm{font-size:var(--t-sm);line-height:var(--t-sm-lh);margin:0}.xs{font-size:var(--t-xs);line-height:var(--t-xs-lh);margin:0}.muted{color:var(--ink-500)}.sub{color:var(--ink-600)}.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-size:12px}.read{font-family:var(--font-read)}.topbar{z-index:40;align-items:center;gap:var(--sp-6);height:var(--topbar-h);padding:0 var(--sp-8);-webkit-backdrop-filter:blur(10px)saturate(1.1);backdrop-filter:blur(10px)saturate(1.1);border-bottom:1px solid var(--rule);background:#fffffff0;display:flex;position:sticky;top:0}.brand{color:var(--ink-900);align-items:center;gap:9px;display:inline-flex}.brand:hover{text-decoration:none}.brand__mark{border:1px solid var(--brand-300);background:var(--brand-50);width:26px;height:26px;font-family:var(--font-read);color:var(--brand-600);border-radius:7px;flex:none;place-items:center;padding-bottom:2px;font-size:17px;font-weight:600;line-height:1;display:grid}.brand__name{font-family:var(--font-read);font-size:17px;font-weight:600}.nav{align-items:stretch;gap:2px;height:100%;display:flex}.nav a{padding:0 var(--sp-3);height:100%;color:var(--ink-600);align-items:center;font-size:13.5px;display:inline-flex;position:relative}.nav a:hover{color:var(--ink-900);background:var(--surface-2);text-decoration:none}.nav a[aria-current=page]{color:var(--ink-900);font-weight:600}.nav a[aria-current=page]:after{content:"";left:var(--sp-3);right:var(--sp-3);background:var(--brand-600);height:2px;position:absolute;bottom:-1px}.topbar__end{align-items:center;gap:var(--sp-4);margin-left:auto;display:flex}.container{width:100%;max-width:var(--container);padding:0 var(--sp-8);margin:0 auto}.page{padding:var(--sp-6) 0 var(--sp-14)}.crumb{gap:var(--sp-2);font-size:var(--t-xs);color:var(--ink-500);margin:0 0 var(--sp-4);align-items:center;display:flex}.crumb a{color:var(--ink-500)}.crumb a:hover{color:var(--brand-600)}.page-hd{align-items:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-6);display:flex}.page-hd__txt{min-width:0}.page-hd__desc{font-size:var(--t-sm);color:var(--ink-500);margin:6px 0 0}.page-hd__act{gap:var(--sp-2);align-items:center;margin-left:auto;display:flex}.grid-side{gap:var(--sp-6);grid-template-columns:minmax(0,1fr) 336px;align-items:start;display:grid}.stack>*+*{margin-top:var(--sp-4)}.row{align-items:center;gap:var(--sp-2);display:flex}.row--between{justify-content:space-between}.spacer{flex:auto}.btn{--h:var(--control-h);height:var(--h);border-radius:var(--r-md);color:var(--ink-800);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:13.5px;font-weight:500;line-height:1;display:inline-flex}.btn svg{flex:none}.btn--primary{background:var(--brand-600);border-color:var(--brand-600);color:#fff}.btn--primary:hover{background:var(--brand-700);border-color:var(--brand-700);text-decoration:none}.btn--primary:active{background:#0a5760}.btn--secondary{background:var(--surface);border-color:var(--rule-strong);color:var(--ink-800)}.btn--secondary:hover{background:var(--surface-2);border-color:var(--ink-300);text-decoration:none}.btn--ghost{color:var(--ink-700)}.btn--ghost:hover{background:var(--surface-2);color:var(--ink-900);text-decoration:none}.btn--quiet{color:var(--brand-600);padding:0 8px}.btn--quiet:hover{background:var(--brand-50);text-decoration:none}.btn--danger{color:var(--rose-700)}.btn--danger:hover{background:var(--rose-100);text-decoration:none}.btn--sm{--h:30px;padding:0 10px;font-size:12.5px}.btn--lg{--h:42px;padding:0 20px;font-size:14px}.btn--block{width:100%}.btn[disabled],.btn.is-disabled{background:var(--surface-2);border-color:var(--surface-2);color:var(--ink-400);cursor:not-allowed}.btn.is-loading{color:#0000;position:relative}.btn.is-loading:after{content:"";border:1.5px solid #ffffff73;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin;position:absolute}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{border-radius:var(--r-md);width:32px;height:32px;color:var(--ink-600);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface-2);color:var(--ink-900)}.icon-btn[aria-pressed=true]{background:var(--brand-100);color:var(--brand-700);border-color:var(--brand-100)}.field{flex-direction:column;gap:6px;display:flex}.label{color:var(--ink-700);font-size:12.5px;font-weight:600}.label__opt{color:var(--ink-400);margin-left:4px;font-weight:400}.input,.textarea,.select{border:1px solid var(--rule-strong);border-radius:var(--r-md);background:var(--surface);width:100%;color:var(--ink-900);transition:border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);padding:8px 11px;font-family:inherit;font-size:14px;line-height:22px}.input{height:38px}.textarea{resize:vertical;min-height:96px}.input::placeholder,.textarea::placeholder{color:var(--ink-400)}.input:focus,.textarea:focus,.select:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100);outline:none}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--rose-700);box-shadow:0 0 0 3px var(--rose-100)}.input[disabled]{background:var(--surface-2);color:var(--ink-400);cursor:not-allowed}.hint{font-size:var(--t-xs);line-height:var(--t-xs-lh);color:var(--ink-500)}.err{font-size:var(--t-xs);line-height:var(--t-xs-lh);color:var(--rose-700)}.input-group{gap:var(--sp-2);display:flex}.input-group .input{flex:auto}.check{font-size:var(--t-sm);color:var(--ink-700);cursor:pointer;align-items:flex-start;gap:9px;display:flex}.check input{appearance:none;border:1px solid var(--rule-strong);border-radius:var(--r-xs);background:var(--surface);cursor:pointer;flex:none;width:16px;height:16px;margin:3px 0 0;position:relative}.check input:checked{background:var(--brand-600);border-color:var(--brand-600)}.check input:checked:after{content:"";border:1.6px solid #fff;border-width:0 1.6px 1.6px 0;width:5px;height:9px;position:absolute;top:1px;left:4px;transform:rotate(40deg)}.check input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.switch{font-size:var(--t-sm);color:var(--ink-700);cursor:pointer;align-items:center;gap:10px;display:inline-flex}.switch input{appearance:none;border-radius:var(--r-pill);background:var(--surface-3);cursor:pointer;width:36px;height:20px;transition:background var(--dur-1);margin:0;position:relative}.switch input:after{content:"";width:16px;height:16px;box-shadow:var(--shadow-1);transition:transform var(--dur-1) var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.switch input:checked{background:var(--brand-600)}.switch input:checked:after{transform:translate(16px)}.pill{border-radius:var(--r-pill);background:var(--surface-2);height:22px;color:var(--ink-700);white-space:nowrap;align-items:center;gap:5px;padding:0 8px;font-size:12px;font-weight:500;display:inline-flex}.pill--ok{background:var(--green-100);color:var(--green-700)}.pill--run{background:var(--brand-100);color:var(--brand-700)}.pill--warn{background:var(--amber-100);color:var(--amber-700)}.pill--err{background:var(--rose-100);color:var(--rose-700)}.pill--outline{border:1px solid var(--rule-strong);color:var(--ink-600);background:0 0}.dot{background:currentColor;border-radius:50%;flex:none;width:5px;height:5px}.dot--pulse{animation:pulse 1.4s var(--ease) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.tag{border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--surface);height:20px;color:var(--ink-600);align-items:center;gap:4px;padding:0 7px;font-size:11.5px;display:inline-flex}.tag--unverified{border-color:var(--amber-100);background:var(--amber-100);color:var(--amber-700);border-color:#0000}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg)}.card__hd{align-items:center;gap:var(--sp-3);padding:12px var(--sp-4);border-bottom:1px solid var(--rule);display:flex}.card__title{font-size:var(--t-h3);font-weight:600}.card__bd{padding:var(--sp-4)}.card__bd--tight{padding:var(--sp-3) var(--sp-4)}.card__ft{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--rule);border-radius:0 0 var(--r-lg) var(--r-lg);background:#fbfdfc}.card--flush{overflow:hidden}.note{border-radius:var(--r-md);font-size:var(--t-sm);background:var(--brand-50);color:var(--brand-700);border:1px solid var(--brand-100);gap:10px;padding:11px 13px;line-height:20px;display:flex}.note--warn{background:var(--amber-100);color:var(--amber-700);border-color:#f0dfc4}.note--err{background:var(--rose-100);color:var(--rose-700);border-color:#f1d6d0}.note--quiet{background:var(--surface-2);border-color:var(--rule);color:var(--ink-600)}.note svg{flex:none;margin-top:2px}.kv{gap:10px var(--sp-4);grid-template-columns:1fr auto;align-items:baseline;display:grid}.kv dt{font-size:var(--t-sm);color:var(--ink-500)}.kv dd{font-size:var(--t-sm);color:var(--ink-900);font-variant-numeric:tabular-nums;margin:0}.kv--total{padding-top:var(--sp-3);border-top:1px solid var(--rule)}.kv--total dt{font-size:var(--t-body);color:var(--ink-900);font-weight:600}.kv--total dd{font-size:24px;font-weight:600;line-height:1}.list{flex-direction:column;display:flex}.list__row{gap:var(--sp-3);padding:13px var(--sp-4);border-bottom:1px solid var(--rule);grid-template-columns:46px minmax(0,1fr) auto;align-items:center;display:grid}.list__row:last-child{border-bottom:0}.list__row:hover{background:#fafcfc}.list__no{border-radius:var(--r-sm);background:var(--surface-2);width:32px;height:26px;font-family:var(--font-mono);color:var(--ink-600);place-items:center;font-size:11.5px;display:grid}.list__no--ok{background:var(--green-100);color:var(--green-700)}.list__no--run{background:var(--brand-100);color:var(--brand-700)}.list__no--err{background:var(--rose-100);color:var(--rose-700)}.list__main{min-width:0}.list__title{font-size:var(--t-sm);color:var(--ink-900);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.list__meta{font-size:var(--t-xs);color:var(--ink-500);margin-top:2px}.list__act{align-items:center;gap:var(--sp-2);display:flex}.list__expand{grid-column:2/-1;margin-top:2px}.table{border-collapse:collapse;width:100%;font-size:var(--t-sm)}.table th{padding:8px var(--sp-3);text-align:left;font-size:var(--t-xs);color:var(--ink-500);background:var(--surface-2);border-bottom:1px solid var(--rule);white-space:nowrap;font-weight:600}.table td{padding:11px var(--sp-3);border-bottom:1px solid var(--rule);color:var(--ink-800);vertical-align:middle}.table tbody tr:hover td{background:#fafcfc}.table tbody tr:last-child td{border-bottom:0}.table .num{text-align:right}.table__strong{color:var(--ink-900);font-weight:500}.tabs{gap:var(--sp-5);border-bottom:1px solid var(--rule);display:flex}.tab{color:var(--ink-600);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 0;font-size:13.5px}.tab:hover{color:var(--ink-900)}.tab[aria-selected=true]{color:var(--ink-900);border-bottom-color:var(--brand-600);font-weight:600}.tab__count{color:var(--ink-400);margin-left:4px;font-weight:400}.segmented{background:var(--surface-2);border-radius:var(--r-md);padding:2px;display:inline-flex}.segmented button{border-radius:var(--r-sm);height:28px;color:var(--ink-600);cursor:pointer;background:0 0;border:0;padding:0 11px;font-size:12.5px}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink-900);box-shadow:var(--shadow-1);font-weight:500}.reader-shell{grid-template-columns:minmax(0, 1fr) var(--panel-w);gap:var(--sp-8);align-items:start;display:grid}.reader-main{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);min-width:0;padding:var(--sp-8) var(--sp-10) 0}.art-hd{padding-bottom:var(--sp-5);border-bottom:1px solid var(--rule);margin-bottom:var(--sp-6)}.art-hd__ipa{font-family:var(--font-ipa);color:var(--text-ipa);letter-spacing:0;flex-wrap:wrap;gap:.6em;margin:0 0 6px;font-size:13px;display:flex}.art-hd__title{font-family:var(--font-read);margin:0;font-size:30px;font-weight:600;line-height:40px}.art-hd__zh{color:var(--ink-600);margin:5px 0 0;font-size:15px;line-height:24px}.art-hd__meta{margin-top:var(--sp-4);gap:var(--sp-3);font-size:var(--t-xs);color:var(--ink-500);flex-wrap:wrap;align-items:center;display:flex}.rbody{max-width:var(--read-measure)}.rline{flex-wrap:wrap;align-items:flex-start;gap:12px 0;margin:0 0 14px;display:flex}.rline--para{margin-bottom:26px}.w{border-radius:var(--r-sm);cursor:pointer;transition:background-color var(--dur-1) var(--ease);background:0 0;flex-direction:column;align-items:center;padding:0 3px;display:inline-flex}.w__ipa{height:var(--read-ipa-lh);line-height:var(--read-ipa-lh);font-family:var(--font-ipa);font-size:var(--read-ipa);color:var(--text-ipa);white-space:nowrap;font-variant-ligatures:none}.w__en{height:var(--read-en-lh);line-height:var(--read-en-lh);font-family:var(--font-read);font-size:var(--read-en);color:var(--ink-900);white-space:nowrap}.w__zh{height:var(--read-gloss-lh);line-height:var(--read-gloss-lh);font-size:var(--read-gloss);color:var(--text-gloss);white-space:nowrap}.w:hover{background:var(--surface-2)}.w:hover .w__en{color:var(--brand-700)}.w.is-active{background:var(--brand-100)}.w.is-quiet .w__zh{color:var(--ink-300)}.phrase{border-radius:var(--r-sm);cursor:pointer;transition:background-color var(--dur-1) var(--ease);flex-direction:column;align-items:center;display:inline-flex}.phrase__words{align-items:flex-start;display:inline-flex}.phrase__words .w{cursor:pointer}.phrase__words .w__zh{display:none}.phrase__gloss{height:var(--read-gloss-lh);line-height:var(--read-gloss-lh);font-size:var(--read-gloss);color:var(--text-phrase);white-space:nowrap;font-weight:500}.phrase .w__en{-webkit-text-decoration:underline dashed;text-decoration:underline dashed;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--rule-phrase);text-decoration-color:var(--rule-phrase);text-underline-offset:5px}.phrase:hover{background:var(--brand-50)}.phrase:hover .w__en{color:var(--brand-700)}.phrase.is-active{background:var(--brand-100)}.phrase__words .w:hover{background:0 0}.reader-note{gap:var(--sp-2);margin:0 0 var(--sp-5);font-size:var(--t-xs);color:var(--ink-500);flex-wrap:wrap;align-items:center;display:flex}.pagebar{z-index:10;align-items:center;gap:var(--sp-3);margin:var(--sp-8) calc(-1 * var(--sp-10)) 0;padding:10px var(--sp-10);border-top:1px solid var(--rule);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:0 0 var(--r-lg) var(--r-lg);background:#fffffff2;display:flex;position:sticky;bottom:0}.pagebar__pos{font-size:var(--t-sm);color:var(--ink-600);font-variant-numeric:tabular-nums}.pagebar__pos b{color:var(--ink-900);font-weight:600}.pagebar__nav{align-items:center;gap:2px;display:flex}.panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);flex-direction:column;width:100%;display:flex}.rpage[hidden]{display:none}.panel__members{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.panel__members .tag{font-family:var(--font-read);height:22px;padding:0 8px;font-size:12.5px}.reader-aside{top:calc(var(--topbar-h) + var(--sp-5));position:sticky}.panel__hd{align-items:center;gap:var(--sp-2);padding:12px var(--sp-4);border-bottom:1px solid var(--rule);display:flex}.panel__kind{font-size:var(--t-xs);color:var(--brand-600);font-weight:600}.panel__body{padding:var(--sp-4)}.panel__word{font-family:var(--font-read);margin:0;font-size:26px;font-weight:600;line-height:34px}.panel__ipa{align-items:center;gap:var(--sp-3);font-family:var(--font-ipa);color:var(--text-ipa);margin-top:4px;font-size:14px;display:flex}.panel__sec{margin-top:var(--sp-4)}.panel__sec+.panel__sec{padding-top:var(--sp-4);border-top:1px solid var(--rule)}.panel__label{color:var(--ink-500);margin:0 0 5px;font-size:11.5px;font-weight:600}.panel__text{font-size:var(--t-sm);color:var(--ink-800);margin:0;line-height:22px}.panel__list{font-size:var(--t-sm);color:var(--ink-700);margin:0;padding:0;line-height:22px;list-style:none}.panel__list li{gap:6px;display:flex}.panel__list b{font-family:var(--font-read);color:var(--ink-900);font-weight:600}.panel__ft{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--rule);gap:var(--sp-2);border-radius:0 0 var(--r-lg) var(--r-lg);background:#fbfdfc;align-items:center;display:flex}.play{border:1px solid var(--rule-strong);border-radius:var(--r-pill);background:var(--surface);height:26px;color:var(--brand-700);cursor:pointer;align-items:center;gap:5px;padding:0 9px;font-size:12px;display:inline-flex}.play:hover{background:var(--brand-50);border-color:var(--brand-300)}.play[data-playing=true]{background:var(--brand-600);border-color:var(--brand-600);color:#fff}body.immersive .topbar{display:none}body.immersive .page{padding-top:var(--sp-8)}body.immersive .crumb,body.immersive .reader-note{display:none}body.immersive .imm-bar{display:flex}body.immersive .reader-main{box-shadow:none;border-color:#0000}body.immersive .reader-shell{grid-template-columns:minmax(0,1fr);max-width:860px;margin:0 auto}body.immersive .reader-aside{top:64px;right:var(--sp-6);width:var(--panel-w);z-index:60;opacity:0;pointer-events:none;max-height:calc(100vh - 88px);transition:opacity var(--dur-2) var(--ease), transform var(--dur-2) var(--ease);display:block;position:fixed;overflow:auto;transform:translate(10px)}body.immersive .reader-aside.is-open{opacity:1;pointer-events:auto;transform:none}body.immersive .reader-aside .panel{box-shadow:var(--shadow-3);border-color:#0000}.imm-bar{z-index:70;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--rule);border-radius:var(--r-pill);box-shadow:var(--shadow-2);background:#ffffffe6;align-items:center;gap:2px;padding:3px;display:none;position:fixed;top:12px;right:12px}.imm-bar__page{color:var(--ink-600);font-variant-numeric:tabular-nums;padding:0 8px;font-size:12px}.scrim{z-index:50;padding:var(--sp-6);background:#15242b5c;place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:var(--r-xl);width:100%;max-width:452px;box-shadow:var(--shadow-3);overflow:hidden}.dialog__hd{padding:var(--sp-5) var(--sp-5) var(--sp-3)}.dialog__bd{padding:0 var(--sp-5) var(--sp-5)}.dialog__ft{justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--rule);background:#fbfdfc;display:flex}.toast{z-index:90;border-radius:var(--r-pill);background:var(--ink-900);color:#fff;box-shadow:var(--shadow-3);opacity:0;transition:opacity var(--dur-2) var(--ease);align-items:center;gap:8px;padding:9px 15px;font-size:13px;display:inline-flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.toast.is-on{opacity:1}.empty{text-align:center;padding:var(--sp-12) var(--sp-6);flex-direction:column;align-items:center;display:flex}.empty__icon{background:var(--surface-2);width:40px;height:40px;color:var(--ink-400);margin-bottom:var(--sp-3);border-radius:50%;place-items:center;display:grid}.empty__title{font-size:var(--t-sm);color:var(--ink-700);font-weight:600}.empty__desc{font-size:var(--t-xs);color:var(--ink-500);margin:4px 0 var(--sp-4);max-width:320px}.sk{background:linear-gradient(90deg, var(--surface-2) 0%, #f6f9f8 50%, var(--surface-2) 100%);border-radius:var(--r-sm);background-size:200% 100%;height:12px;animation:1.4s linear infinite sk}@keyframes sk{to{background-position:-200% 0}}.admin{min-height:calc(100vh - var(--topbar-h));grid-template-columns:212px minmax(0,1fr);display:grid}.admin__rail{border-right:1px solid var(--rule);background:var(--surface);padding:var(--sp-4) var(--sp-3)}.admin__group{color:var(--ink-400);margin:var(--sp-4) 0 6px;padding:0 9px;font-size:11px;font-weight:600}.admin__group:first-child{margin-top:0}.admin__item{border-radius:var(--r-sm);height:32px;color:var(--ink-700);align-items:center;gap:8px;padding:0 9px;font-size:13px;display:flex}.admin__item:hover{background:var(--surface-2);text-decoration:none}.admin__item[aria-current=page]{background:var(--brand-50);color:var(--brand-700);font-weight:500}.admin__main{padding:var(--sp-5) var(--sp-6) var(--sp-12);min-width:0}.toolbar{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.toolbar .input{width:220px;height:34px;font-size:13px}.docbar{align-items:center;gap:var(--sp-4);padding:10px var(--sp-8);background:var(--ink-900);color:#cfdbdc;flex-wrap:wrap;font-size:12.5px;display:flex}.docbar a{color:#fff}.docbar__sep{color:#4a5f66}.stage{margin:0 0 var(--sp-14)}.stage__cap{padding:var(--sp-6) 0 10px;align-items:baseline;gap:10px;display:flex}.stage__no{font-family:var(--font-mono);color:var(--brand-600);font-size:11px}.stage__name{font-size:15px;font-weight:600}.stage__meta{font-size:var(--t-xs);color:var(--ink-500);margin-left:auto}.stage__note{font-size:var(--t-xs);color:var(--ink-500);max-width:620px;margin:-4px 0 12px}.stage__frame{border:1px solid var(--rule);border-radius:var(--r-lg);background:var(--paper);overflow:hidden}.stage__frame>.topbar{position:static}.phone{border:1px solid var(--rule-strong);background:var(--paper);width:375px;box-shadow:var(--shadow-2);border-radius:28px;overflow:hidden}.phone__status{height:30px;color:var(--ink-500);background:var(--surface);justify-content:space-between;align-items:center;padding:0 14px;font-size:11px;display:flex}.phone__screen{height:700px;overflow:hidden}.phone-row{gap:var(--sp-6);flex-wrap:wrap;align-items:flex-start;display:flex}.phone .topbar{height:52px;padding:0 16px}.phone .nav{display:none}.phone .container{padding:0 16px}.sheet{background:var(--surface);border-top:1px solid var(--rule);padding:var(--sp-3) var(--sp-4) var(--sp-5);border-radius:14px 14px 0 0;box-shadow:0 -8px 24px #15242b1a}@media (width<=1080px){.grid-side,.reader-shell{grid-template-columns:minmax(0,1fr)}.reader-aside{position:static}.admin{grid-template-columns:1fr}.admin__rail{border-right:0;border-bottom:1px solid var(--rule);padding:var(--sp-2) var(--sp-3);gap:4px;display:flex;overflow-x:auto}.admin__group{display:none}.admin__item{white-space:nowrap}}@media (width<=760px){.topbar{padding:0 var(--sp-4);gap:var(--sp-3)}.nav{display:none}.container{padding:0 var(--sp-4)}.reader-main{padding:var(--sp-5) var(--sp-4) 0}.pagebar{margin-left:calc(-1 * var(--sp-4));margin-right:calc(-1 * var(--sp-4));padding:10px var(--sp-4)}.page-hd{flex-direction:column;align-items:flex-start}.page-hd__act{margin-left:0}.btn,.icon-btn,.play,.tab{min-height:44px}.icon-btn{width:44px;height:44px}:root{--read-en:19px;--read-en-lh:28px}}@media print{.topbar,.pagebar,.reader-aside,.docbar{display:none}}.app-shell{flex-direction:column;min-height:100vh;display:flex}
