:root{color:#e2e8f0;font-synthesis:none;background:#07111f;font-family:Inter,Noto Sans TC,PingFang TC,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}a{color:#67e8f9}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}.app-shell{min-height:100vh;padding:max(20px, env(safe-area-inset-top)) 18px max(20px, env(safe-area-inset-bottom));background:radial-gradient(circle at top,#173a5e 0,#0f2035 38%,#07111f 100%);place-items:center;display:grid}.app-shell.has-open-tabs{padding-top:calc(max(20px, env(safe-area-inset-top)) + 58px)}.home-card,.success-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#132338e8;border:1px solid #ffffff1f;border-radius:28px;width:min(100%,560px);padding:clamp(24px,5vw,40px);box-shadow:0 26px 70px #02061780}.brand-row{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.brand-actions{gap:8px;display:flex}.eyebrow{color:#67e8f9;letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.82rem;font-weight:800}h1{margin:8px 0 12px;font-size:clamp(2rem,8vw,3.5rem);line-height:1.05}.lead{color:#b8c7da;margin:0 0 30px;font-size:1.05rem;line-height:1.7}.access-usage{background:#0b2438;border:1px solid #67e8f94d;border-radius:13px;justify-content:space-between;align-items:center;gap:14px;margin:14px 0 18px;padding:12px 14px;display:flex}.access-usage strong{color:#67e8f9;font-size:1.25rem}.access-usage span{color:#cbd5e1;text-align:right;font-size:.82rem}.primary-button,.secondary-button,.text-button{border:0;border-radius:15px;width:100%;min-height:52px;font-weight:800}.primary-button{color:#042f2e;background:linear-gradient(135deg,#67e8f9,#2dd4bf);box-shadow:0 12px 30px #2dd4bf2e}.secondary-button{color:#dbeafe;background:#1c3655;border:1px solid #52749b;margin-top:12px}.text-button{color:#bae6fd;background:0 0;margin-top:10px}.icon-button{color:#cbd5e1;background:#ffffff0d;border:1px solid #ffffff24;border-radius:11px;min-height:38px;padding:8px 12px}.divider{color:#7f95af;align-items:center;gap:12px;margin:28px 0 20px;font-size:.88rem;display:flex}.divider:before,.divider:after{content:"";background:#ffffff1c;flex:1;height:1px}.manual-form label{color:#cbd5e1;margin-bottom:9px;font-weight:700;display:block}.input-row{grid-template-columns:1fr auto;gap:9px;display:grid}.input-row input{color:#f8fafc;background:#091728;border:1px solid #526a87;border-radius:13px;outline:none;min-width:0;padding:14px}.input-row input:focus{border-color:#67e8f9;box-shadow:0 0 0 3px #67e8f924}.input-row button{color:#082f49;background:#bae6fd;border:0;border-radius:13px;padding:0 18px;font-weight:800}.status-message{color:#fef08a;text-align:center;min-height:24px;margin:20px 0 0}.search-results{gap:9px;max-height:260px;margin-top:16px;display:grid;overflow-y:auto}.search-results button{overflow-wrap:anywhere;color:#dbeafe;text-align:left;background:#1c3655;border:1px solid #52749b;border-radius:12px;min-height:46px;padding:10px 14px}.search-results p{color:#fef08a;text-align:center;margin:4px 0 0;font-size:.85rem;line-height:1.5}.privacy-note{color:#91a4ba;text-align:center;margin:12px 0 0;font-size:.83rem;line-height:1.5}.legal-shell{min-height:100vh;padding:max(28px, env(safe-area-inset-top)) 18px max(32px, env(safe-area-inset-bottom));color:#0f172a;background:#f1f5f9}.legal-card{background:#fff;border:1px solid #cbd5e1;border-radius:24px;width:min(100%,820px);margin:0 auto;padding:clamp(24px,5vw,52px);box-shadow:0 20px 60px #0f172a14}.legal-card h1{margin-bottom:8px;font-size:clamp(2rem,7vw,3.2rem)}.legal-card h2{margin:32px 0 10px;font-size:1.25rem}.legal-card section p{color:#334155;margin:8px 0;line-height:1.75}.legal-updated{color:#64748b;margin:0 0 28px}.legal-links{border-top:1px solid #e2e8f0;flex-wrap:wrap;gap:10px 18px;margin-top:38px;padding-top:20px;display:flex}.legal-links a{color:#0369a1;font-weight:700}.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}.scanner-screen{color:#fff;background:#020617;grid-template-rows:auto 1fr auto auto;min-height:100vh;display:grid}.scanner-header{padding:max(14px, env(safe-area-inset-top)) 16px 14px;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;display:grid}.scanner-header button{justify-self:start}.camera-stage{background:#000;min-height:360px;position:relative;overflow:hidden}.camera-video{object-fit:cover;width:100%;height:100%}.scan-frame{aspect-ratio:2.8;border:3px solid #67e8f9;border-radius:18px;width:min(82vw,620px);position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 0 0 999px #0206177d}.scan-frame span{background:#fef08a;height:2px;animation:1.8s ease-in-out infinite alternate scan;position:absolute;top:50%;left:8%;right:8%;box-shadow:0 0 14px #fef08a}@keyframes scan{0%{transform:translateY(-34px)}to{transform:translateY(34px)}}.scanner-message{color:#dbeafe;text-align:center;min-height:48px;margin:0;padding:14px 20px}.camera-actions{padding:0 18px max(18px, env(safe-area-inset-bottom));justify-content:center;gap:12px;display:flex}.camera-actions button{color:#fff;background:#1e293b;border:1px solid #475569;border-radius:13px;min-height:44px;padding:0 18px}.success-card{text-align:center}.missing-book-images{gap:10px;margin-top:16px;display:grid}.missing-book-images .secondary-button{cursor:pointer;place-items:center;display:grid}.success-card h1{overflow-wrap:anywhere;font-size:clamp(1.55rem,7vw,2.8rem)}.success-icon{color:#042f2e;background:#5eead4;border-radius:50%;place-items:center;width:72px;height:72px;margin:0 auto 20px;font-size:2.5rem;font-weight:900;display:grid}.muted{color:#94a3b8}.reader-workspace{background:#07111f;min-height:100vh}.reader-screen{color:#e2e8f0;background:#07111f;grid-template-rows:auto auto auto 1fr;min-height:calc(100vh - 52px);display:grid}.pdf-tabs{scrollbar-width:thin;background:#091728;border-bottom:1px solid #ffffff1f;gap:5px;width:100%;min-height:52px;padding:6px;display:flex;overflow-x:auto}.app-shell>.pdf-tabs{z-index:20;padding-top:max(6px, env(safe-area-inset-top));position:fixed;top:0;left:0}.pdf-tab{background:#132338;border:1px solid #3d5674;border-radius:10px;flex:190px;min-width:82px;max-width:260px;display:flex;overflow:hidden}.pdf-tab.active{background:#1c3655;border-color:#67e8f9;box-shadow:inset 0 -2px #2dd4bf}.pdf-tab button{color:#dbeafe;background:0 0;border:0;min-width:0;min-height:38px}.pdf-tab-select{flex:auto;padding:6px 4px 6px 10px;overflow:hidden}.pdf-tab-select span{white-space:nowrap;text-align:left;text-overflow:ellipsis;direction:rtl;unicode-bidi:plaintext;display:block;overflow:hidden}.pdf-tab-close{padding:0;font-size:1.1rem;color:#94a3b8!important}.pdf-tab-close:hover{background:#ef444433;color:#fff!important}.pdf-tab-move,.pdf-tab-close{flex:0 0 28px;padding:0}.pdf-tab-move:disabled{color:#52647a}.pdf-tab-move:not(:disabled):hover{background:#67e8f922}.pwa-update-prompt{z-index:100;right:14px;bottom:max(14px, env(safe-area-inset-bottom));color:#e2e8f0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0b1c30f5;border:1px solid #67e8f966;border-radius:16px;grid-template-columns:1fr auto auto;align-items:center;gap:10px;width:min(100% - 28px,680px);margin-inline:auto;padding:14px;display:grid;position:fixed;left:14px;box-shadow:0 18px 48px #020617b3}.pwa-update-prompt strong,.pwa-update-prompt span{display:block}.pwa-update-prompt strong{color:#67e8f9}.pwa-update-prompt span{color:#b8c7da;margin-top:3px;font-size:.83rem}.pwa-update-prompt button{color:#042f2e;background:#5eead4;border:0;border-radius:11px;min-height:42px;padding:0 14px;font-weight:800}.pwa-update-prompt .pwa-update-dismiss{color:#cbd5e1;background:0 0}@media (width<=520px){.pwa-update-prompt{grid-template-columns:1fr auto}.pwa-update-prompt div{grid-column:1/-1}}.account-shell{padding-top:max(28px, env(safe-area-inset-top));align-items:flex-start}.account-card{max-width:520px}.account-mode{background:#07111f;border-radius:12px;grid-template-columns:1fr 1fr;gap:6px;margin:22px 0;padding:5px;display:grid}.account-mode button{color:#94a3b8;background:0 0;border:0}.account-mode button[aria-selected=true]{color:#062133;background:#67e8f9}.register-tab-group{grid-template-columns:1fr auto;align-items:center;display:grid}.account-mode .register-tab{color:#eef6ff;width:100%}.account-mode .invitation-info-button{color:#eef6ff;width:38px;min-height:38px;padding:0;font-size:1.1rem}.invitation-info{background:#0b1c30;border:1px solid #67e8f94d;border-radius:12px;margin:-10px 0 18px;padding:14px 16px}.invitation-info p{color:#eef6ff;margin:0;line-height:1.65}.invitation-info .text-button{min-height:38px;margin-top:8px}.account-form{text-align:left;gap:10px;display:grid}.account-form input{color:#eef6ff;background:#0b1c30;border:1px solid #4b6380;border-radius:10px;width:100%;min-height:48px;padding:10px 12px}.account-form .primary-button{margin-top:8px}.account-signed-in{margin-top:24px}.account-email{overflow-wrap:anywhere;color:#67e8f9;font-weight:700}.subscription-status{color:#fef08a;margin:14px 0 0;font-weight:700}.invitation-links{text-align:left;gap:14px;margin-top:22px;display:grid}.invitation-links h2,.invitation-links p{margin:0}.invitation-link{background:#07111f66;border:1px solid #ffffff1f;border-radius:14px;padding:14px}.invitation-link span{margin-bottom:8px;font-weight:700;display:block}.invitation-link input{box-sizing:border-box;color:#cbd5e1;background:#0b1c30;border:1px solid #4b6380;border-radius:9px;width:100%;min-height:44px;padding:9px 11px;font-size:.8rem}.billing-options{background:#07111f66;border:1px solid #ffffff1f;border-radius:14px;margin:22px 0;padding:18px}.billing-options h2{margin:0 0 14px;font-size:1.05rem}.billing-options .muted{margin:12px 0 0;font-size:.83rem;line-height:1.5}.account-help{width:100%;margin-top:14px}.reader-header{padding:max(12px, env(safe-area-inset-top)) 14px 12px;background:#0f2035;border-bottom:1px solid #ffffff1f;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;display:grid}.reader-header div{min-width:0}.reader-header strong,.reader-header small{display:block}.reader-header small{color:#94a3b8;overflow-wrap:anywhere;margin-top:3px}.demo-badge{color:#422006;background:#fde68a;border-radius:999px;padding:5px 9px;font-size:.75rem;font-weight:900}.reader-notice{color:#fef3c7;text-align:center;background:#78350f;margin:0;padding:10px 16px;font-size:.85rem}.reader-toolbar{background:#132338;border-bottom:1px solid #ffffff1f;justify-content:center;align-items:center;gap:8px;padding:9px 12px;display:flex}.reader-toolbar button{color:#dbeafe;background:#1c3655;border:1px solid #52749b;border-radius:9px;min-height:36px;padding:6px 11px}.reader-toolbar span{color:#cbd5e1;text-align:center;min-width:48px;font-size:.86rem}.pdf-canvas-stage{text-align:center;-webkit-user-select:none;user-select:none;background:#334155;min-height:70vh;padding:18px;position:relative;overflow:auto}.pdf-canvas-stage.continuous{height:calc(100vh - 190px);min-height:420px;text-align:initial;align-content:start;justify-items:center;gap:18px;display:grid}.continuous-pdf-page{background:#fff;flex:none;max-width:none;position:relative;box-shadow:0 8px 24px #02061766}.continuous-pdf-page .pdf-page-canvas{display:block}.continuous-page-number{color:#fff;text-align:center;background:#0f172acc;border-radius:999px;min-width:28px;padding:3px 6px;font-size:.72rem;position:absolute;bottom:8px;right:8px}.pdf-page-canvas{background:#fff;max-width:none;margin:0 auto;display:block;box-shadow:0 8px 32px #02061799}.reader-loading{color:#cbd5e1;text-align:center;align-self:center}@media print{body:before{content:"此答案不提供列印功能";color:#000;text-align:center;padding:40px;font-size:20px;display:block}.reader-screen{display:none!important}}@media (orientation:landscape) and (height<=600px){.scanner-screen{grid-template-rows:auto 1fr auto;grid-template-columns:1fr minmax(280px,36%)}.scanner-header{grid-column:1/-1}.camera-stage{grid-row:2/4;min-height:0}.scanner-message,.camera-actions{align-self:center}}@media (prefers-reduced-motion:reduce){.scan-frame span{animation:none}}
