:root{color:#1e293b;color-scheme:light;background:#f6f8f8;font-family:system-ui,-apple-system,Noto Sans TC,sans-serif;font-size:16px;line-height:1.7}*{box-sizing:border-box}body{flex-direction:column;min-height:100vh;margin:0;display:flex}a{color:#08786e;text-underline-offset:.2em}a:hover{color:#075e57}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #0d9488}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}h1{letter-spacing:-.04em;margin:.5rem 0 1rem;font-size:clamp(1.9rem,4vw,2.6rem);line-height:1.3}h2{font-size:1.4rem;line-height:1.4}.site-header{background:#fff;border-bottom:1px solid #dde7e5;justify-content:space-between;align-items:center;gap:1rem;min-height:84px;padding:1rem max(5vw,1rem);display:flex}.brand{align-items:baseline;gap:.55rem;display:flex}.brand a{text-decoration:none}.brand-home{color:#1e293b;font-size:1.35rem;font-weight:750}.brand-home:hover{color:#075e57}.brand-separator{color:#9aa9a6;font-size:1rem}.brand-reader{color:#526763;font-size:.9rem;font-weight:500}.brand-reader:hover{color:#075e57}nav{align-items:center;gap:1.5rem;display:flex}nav a,.text-button{font-size:.95rem}.text-button{color:#08786e;background:0 0;border:0;padding:0;text-decoration:underline}.account-menu{line-height:1.4;position:relative}.account-menu-trigger{color:#334b47;background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;display:grid}.account-menu-trigger:hover{color:#075e57;background:#edf5f3;border-color:#c8d7d4}.account-menu-trigger[aria-expanded=true]{color:#075e57;background:#e4f1ee;border-color:#9ebbb5}.account-menu-trigger svg{fill:currentColor}.account-menu-panel{z-index:1100;background:#fff;border:1px solid #d7e2df;border-radius:10px;width:min(19rem,100vw - 2rem);position:absolute;top:calc(100% + .55rem);right:0;overflow:hidden;box-shadow:0 16px 40px #1e293b24}.account-menu-panel[hidden]{display:none}.account-identity{gap:.2rem;padding:1rem 1.15rem;display:grid}.account-identity strong{color:#1e293b;font-size:1rem}.account-identity span{color:#526763;overflow-wrap:anywhere;font-size:.85rem}.account-menu-actions{border-top:1px solid #e1e9e7;flex-direction:column;align-items:stretch;gap:0;display:flex}.account-menu-link{color:#29413d;align-items:center;min-height:46px;padding:.7rem 1.15rem;text-decoration:none;display:flex}.account-menu-link:hover{color:#075e57;background:#edf5f3}.account-menu-logout{border-top:1px solid #e1e9e7}.account-menu-logout button{color:#7b3024;text-align:center;background:#fff;border:0;width:100%;min-height:46px;padding:.7rem 1.15rem}.account-menu-logout button:hover{color:#67251b;background:#fff3ef}main{flex:1;width:100%}footer{color:#526763;flex-wrap:wrap;justify-content:center;gap:1rem;padding:2rem 1rem;font-size:.8rem;display:flex}.auth-card{background:#fff;border:1px solid #dde7e5;border-radius:16px;max-width:480px;margin:clamp(2rem,6vh,5rem) auto;padding:2.5rem;box-shadow:0 12px 35px #1e293b06}.eyebrow{color:#08786e;letter-spacing:.12em;font-size:.78rem;font-weight:650}.muted{color:#526763}.auth-form{gap:1.15rem;margin:1.6rem 0 1rem;display:grid}label{gap:.35rem;font-size:.9rem;font-weight:600;display:grid}input:not([type=hidden]){color:#1e293b;background:#fff;border:1px solid #b9c9c6;border-radius:7px;width:100%;min-height:46px;padding:.7rem .8rem}.button{color:#fff;text-align:center;background:#08786e;border:1px solid #08786e;border-radius:7px;width:100%;padding:.7rem 1rem;font-weight:650;text-decoration:none;display:block}.button:hover{color:#fff;background:#07675e}.secondary{color:#1e293b;background:#fff;border-color:#b9c9c6}.secondary:hover{color:#1e293b;background:#edf5f3}.field-help{color:#526763;margin:0;font-size:.8rem}.auth-links{justify-content:space-between;gap:1rem;margin-top:1.5rem;font-size:.9rem;display:flex}.divider{text-align:center;color:#526763;margin:1rem}.alert{background:#edf7f3;border-left:3px solid #08786e;border-radius:4px;padding:.8rem 1rem;font-size:.9rem}.error{color:#8c311d;background:#fff1ed;border-color:#b94327}.library{max-width:1080px;margin:2.75rem auto;padding:0 1.5rem}.library-heading{border-bottom:1px solid #d7e2df;justify-content:space-between;align-items:baseline;gap:1.5rem;padding-bottom:1rem;display:flex}.library-heading h1{margin:0}.book-list{border-top:1px solid #d7e2df;margin-top:1.25rem}.book-row{background:#fff;border-bottom:1px solid #d7e2df;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:1.35rem;padding:1rem .5rem;display:grid}.book-row:hover{background:#fafdfc}.book-cover-link{border-radius:3px;align-self:start;display:block}.book-cover{aspect-ratio:2/3;object-fit:contain;background:#143f3e;border:1px solid #d7e2df;border-radius:3px;width:92px;display:flex;box-shadow:0 3px 10px #1e293b18}.book-cover-fallback{color:#eef6ef;flex-direction:column;justify-content:space-between;padding:.6rem;overflow:hidden}.book-cover-fallback small{letter-spacing:.08em;font-size:.62rem}.book-cover-fallback strong{font-size:.85rem;line-height:1.3}.book-info{min-width:0;padding:0}.book-info h2{margin:0 0 .35rem;font-size:1.25rem}.book-info h2 a{color:#1e293b;text-decoration:none}.book-info h2 a:hover{text-decoration:underline 1px}.book-meta{color:#526763;margin:0;font-size:.92rem}.book-progress{color:#145f59;margin:.35rem 0 0;font-size:.86rem;font-weight:600}.book-dates{color:#8c3b2c;margin:.3rem 0 0;font-size:.82rem;line-height:1.5}.book-dates time{font-variant-numeric:tabular-nums}.book-actions{justify-items:stretch;gap:.5rem;min-width:8.5rem;display:grid}.book-action{white-space:nowrap;place-items:center;width:100%;min-height:44px;padding:.55rem 1rem;font-size:.95rem;display:grid}.book-start-over{color:#334b47}.book-download-version{text-align:center;color:#526763;font-size:.75rem;line-height:1.35}.empty{background:#fff;border:1px dashed #adc3bd;border-radius:12px;margin:2.5rem 0;padding:3rem 2rem}.empty p{color:#526763}.skip{position:absolute;top:-100px}.skip:focus{z-index:10;background:#fff;padding:1rem;top:0;left:1rem}@media (width<=640px){.auth-card{margin:1.5rem 1rem;padding:1.5rem}.brand{gap:.4rem}.brand-home{font-size:1.2rem}.brand-reader{font-size:.82rem}.site-header{padding:1rem}nav{gap:1rem}.library{margin-top:1.75rem;padding:0 1rem}.library-heading{display:block}.library-heading h1{font-size:2rem}.book-row{grid-template-columns:72px minmax(0,1fr);align-items:start;gap:1rem;padding:1rem 0}.book-cover{width:72px}.book-info h2{font-size:1.05rem}.book-meta{font-size:.82rem;line-height:1.55}.book-dates{font-size:.78rem}.book-date-divider{display:none}.book-dates span:not(.book-date-divider){display:block}.book-actions{grid-column:1/-1;justify-items:stretch;min-width:0}.empty{padding:1.5rem}}.checkout-shell{max-width:1050px;margin:3.5rem auto;padding:0 1.5rem}.checkout-grid{grid-template-columns:minmax(0,1fr) minmax(320px,.85fr);align-items:start;gap:2rem;display:grid}.order-card,.consent-card{background:#fff;border:1px solid #dde7e5;border-radius:12px;padding:2rem}.order-card h2,.consent-card h2{margin-top:0}.order-summary{margin:1.5rem 0}.order-summary div{border-bottom:1px solid #edf2f1;justify-content:space-between;gap:2rem;padding:.65rem 0;display:flex}.order-summary dt{color:#526763}.order-summary dd{text-align:right;margin:0;font-weight:600}.order-summary .total{border-bottom:0;padding-top:1rem;font-size:1.2rem}.consent-card{gap:1rem;display:grid}.consent-card .alert{margin:.5rem 0}.order-card .button{margin-top:1.25rem}@media (width<=760px){.checkout-grid{grid-template-columns:1fr}.checkout-shell{margin-top:2rem}.order-card,.consent-card{padding:1.5rem}}.checkout-product{grid-template-columns:112px minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.checkout-cover{aspect-ratio:2/3;object-fit:contain;background:#143f3e;border:1px solid #d7e2df;border-radius:4px;width:112px;display:block;box-shadow:0 4px 14px #1e293b1f}.checkout-product-details{min-width:0}.checkout-product-details h2{margin-bottom:.75rem}.checkout-product-details .order-summary{margin:0}.checkout-agreement{color:#405551;margin:0;font-size:.9rem;line-height:1.7}@media (width<=760px){.checkout-product{grid-template-columns:84px minmax(0,1fr);gap:1rem}.checkout-cover{width:84px}.checkout-product-details h2{font-size:1.15rem}}.book-rating-form{margin-top:.55rem}.book-rating-form fieldset{border:0;align-items:center;gap:.65rem;margin:0;padding:0;display:flex}.book-rating-form legend{float:left;color:#526763;margin:0;font-size:.82rem}.book-rating-stars{gap:.1rem;display:flex}.book-rating-star{color:#a9b8b5;background:0 0;border:0;min-width:32px;min-height:32px;padding:0;font-size:1.35rem;line-height:1}.book-rating-star:hover,.book-rating-star:focus-visible,.book-rating-star.selected{color:#d4860b}.account-avatar,.account-avatar-fallback{object-fit:cover;color:#145f59;letter-spacing:.02em;background:#dcece8;border-radius:50%;place-items:center;width:38px;height:38px;font-size:.8rem;font-weight:750;display:grid}.account-panel-avatar{object-fit:cover;color:#145f59;background:#dcece8;border-radius:50%;flex:none;place-items:center;width:48px;height:48px;font-size:.88rem;font-weight:750;display:grid}.account-identity{align-items:center;gap:.75rem;display:flex}.account-identity>div{gap:.2rem;min-width:0;display:grid}.profile-page{max-width:680px;margin:clamp(2rem,6vh,4rem) auto;padding:0 1.5rem}.account-page-back{align-items:center;min-height:44px;margin-bottom:.75rem;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-flex}.profile-card{background:#fff;border:1px solid #dde7e5;border-radius:12px;padding:2.5rem}.profile-card>.muted{margin-bottom:1.5rem}.profile-avatar-section{background:#fafdfc;border:1px solid #e1e9e7;border-radius:12px;align-items:center;gap:1rem;margin:1.5rem 0;padding:1.25rem;display:flex}.profile-avatar{object-fit:cover;color:#145f59;background:#dcece8;border-radius:50%;flex:none;place-items:center;width:96px;height:96px;font-size:1.4rem;font-weight:750;display:grid}.profile-identity{gap:.2rem;min-width:0;display:grid}.profile-identity strong{font-size:1.1rem}.profile-identity span{color:#526763;overflow-wrap:anywhere;font-size:.9rem}.avatar-form{gap:.85rem;margin-top:1.5rem;display:grid}.avatar-form input[type=file]{background:#fff;padding:.55rem}.avatar-form .button{margin-top:.35rem}.avatar-upload-status:empty{display:none}.avatar-upload-error{color:#8c311d}.avatar-delete-form{margin-top:.75rem}.danger-button{color:#7b3024}.danger-button:hover{color:#67251b;background:#fff3ef;border-color:#d6aaa1}@media (width<=640px){.profile-page{margin:1.5rem auto;padding:0 1rem}.profile-card{padding:1.5rem}.profile-avatar{width:76px;height:76px}}
