:root { --page-bg:#f5f5f7; --surface-bg:rgba(255,255,255,.78); --elevated-bg:#fff; --border-color:rgba(0,0,0,.1); --text-color:#1d1d1f; --secondary-text:#6e6e73; --accent:#0071e3; --login-wash:rgba(173,216,255,.36); color:var(--text-color); background:var(--page-bg); font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",sans-serif; }
[data-theme="dark"] { --page-bg:#000; --surface-bg:rgba(28,28,30,.82); --elevated-bg:#1c1c1e; --border-color:rgba(255,255,255,.14); --text-color:#f5f5f7; --secondary-text:#a1a1a6; --accent:#2997ff; --login-wash:rgba(41,151,255,.2); color-scheme:dark; }
*{box-sizing:border-box} html,body{background:var(--page-bg)} body{margin:0;min-width:320px} a{color:inherit}.loading-screen,.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% -10%,var(--login-wash),transparent 42%),var(--page-bg)}
.login-card{width:min(100%,390px);padding:18px 14px 12px;border-radius:24px!important;border:1px solid var(--border-color)!important;background:var(--surface-bg)!important;box-shadow:0 18px 48px rgba(0,0,0,.12);backdrop-filter:blur(24px)}.login-card h1{margin:0 0 4px!important;font-size:40px!important;letter-spacing:-1.6px}.login-card .ant-typography-secondary,.ant-typography-secondary{color:var(--secondary-text)!important}.form-alert{margin-bottom:16px;border-radius:12px}
.app-shell{min-height:100vh;background:var(--page-bg)!important}.app-header{position:sticky;top:0;z-index:20;height:54px!important;padding:0 max(20px,calc((100vw - 1320px)/2))!important;display:grid!important;grid-template-columns:auto 1fr auto;gap:28px;background:color-mix(in srgb,var(--page-bg) 78%,transparent)!important;border-bottom:1px solid color-mix(in srgb,var(--border-color) 70%,transparent)!important;backdrop-filter:saturate(180%) blur(20px)}.brand{font-size:20px;letter-spacing:-.55px}.brand .ant-typography{color:var(--text-color)}.brand-mark{color:var(--accent);font-size:18px;display:inline-grid;place-items:center}.desktop-nav{min-width:0;border-bottom:0!important;background:transparent!important}.desktop-nav.ant-menu-horizontal::after{display:none}.desktop-nav .ant-menu-item{color:var(--secondary-text)!important;font-size:14px;padding-inline:0!important;margin-inline:0 22px!important}.desktop-nav .ant-menu-item::after{border-bottom-width:2px!important;border-color:var(--accent)!important}.desktop-nav .ant-menu-item-selected{color:var(--text-color)!important;font-weight:600}.user-menu{justify-content:flex-end;gap:8px!important}.username{color:var(--secondary-text);font-size:13px}.header-icon-button{min-width:34px;padding-inline:9px!important;border:0!important;background:transparent!important;box-shadow:none!important;color:var(--text-color)!important}.header-icon-button:hover{color:var(--accent)!important;background:rgba(128,128,128,.1)!important}.logout-button:hover{color:#ff453a!important}
.app-content{width:min(100%,1320px);margin:0 auto;padding:54px 28px 88px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:26px}.page-heading h2{margin:0 0 5px!important;color:var(--text-color)!important;font-size:clamp(34px,5vw,48px)!important;letter-spacing:-1.8px;line-height:1.06}.ant-btn{border-radius:980px!important;font-weight:500;box-shadow:none!important}.ant-btn-primary{background:var(--accent)!important;border-color:var(--accent)!important}.ant-input,.ant-input-affix-wrapper{border-radius:12px!important}.ant-input-affix-wrapper{background:var(--elevated-bg);border-color:transparent!important;box-shadow:inset 0 0 0 1px var(--border-color)!important}.ant-input-affix-wrapper-focused{box-shadow:inset 0 0 0 2px var(--accent)!important}
.books-search{max-width:860px;height:50px;margin-bottom:40px;font-size:17px}.books-search .ant-input{font-size:17px;background:transparent}.books-search .ant-input-suffix{margin-inline-start:12px}.books-search .ant-btn{height:34px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 20px}.section-heading .ant-space{gap:9px!important;color:var(--accent)}.section-heading h3{margin:0!important;color:var(--text-color)!important;font-size:23px!important;letter-spacing:-.5px}
.library-cover-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:34px 22px;align-items:start}.library-grid-placeholder{padding:30px 0;color:var(--secondary-text)}.library-book{min-width:0}.library-book-link{display:block;min-width:0;text-decoration:none}.library-cover{width:100%;aspect-ratio:.655/1;display:grid;place-items:center;overflow:hidden;border-radius:7px;background:linear-gradient(145deg,#d8dce3,#f5f5f7);color:rgba(0,0,0,.56);box-shadow:0 10px 22px rgba(0,0,0,.18),0 1px 2px rgba(0,0,0,.12);transition:transform .25s ease,box-shadow .25s ease}.library-book-link:hover .library-cover{transform:translateY(-5px) scale(1.012);box-shadow:0 18px 30px rgba(0,0,0,.22),0 2px 5px rgba(0,0,0,.12)}.library-cover img{width:100%;height:100%;object-fit:cover}.library-cover span{padding:16px;text-align:center;font-family:Georgia,serif;font-size:18px;font-weight:700;line-height:1.18;overflow-wrap:anywhere}.library-book h3{margin:12px 0 3px!important;color:var(--text-color)!important;font-size:15px!important;font-weight:600!important;letter-spacing:-.15px;line-height:1.24!important;overflow-wrap:anywhere}.library-author,.library-added-by{display:block;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-author{color:var(--secondary-text);font-size:14px}.library-added-by{display:none}.library-book-actions{margin-top:9px;opacity:.66;transition:opacity .2s ease}.library-book:hover .library-book-actions{opacity:1}.library-book-actions .ant-btn{width:31px;height:31px;padding:0;border-color:transparent;background:rgba(128,128,128,.1)}.library-book-actions .ant-btn-dangerous{color:#ff453a}.mam-heading{margin-top:0}
.desktop-table{display:none}.mobile-list .ant-list-item{padding:0 0 14px;border:0}.book-card{width:100%;border:1px solid var(--border-color)!important;border-radius:18px!important;background:var(--surface-bg)!important;box-shadow:none!important}.search-form{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:22px}.search-form .ant-form-item{margin:0}.search-input{width:100%}
.detail-top{width:100%}.detail-descriptions{overflow:hidden;margin-bottom:22px;border-radius:18px;background:var(--surface-bg)!important}.detail-actions,.job-panel{margin-top:20px}.cover-panel{display:grid;grid-template-columns:150px 1fr;gap:24px;align-items:center;margin:24px 0;padding:22px;border:1px solid var(--border-color);border-radius:20px;background:var(--surface-bg)}.cover-preview{width:150px;aspect-ratio:.655/1;display:grid;place-items:center;overflow:hidden;border-radius:8px;background:#d8dce3;color:var(--secondary-text);box-shadow:0 10px 24px rgba(0,0,0,.2);font-size:14px}.cover-preview img{width:100%;height:100%;object-fit:cover}.cover-input{display:none}.cover-candidate-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.cover-candidate{display:block;padding:0;overflow:hidden;border:1px solid var(--border-color);border-radius:12px;background:var(--surface-bg);color:var(--text-color);text-align:left;cursor:pointer}.cover-candidate:disabled{cursor:wait;opacity:.68}.cover-candidate img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover}.cover-candidate span{display:block;padding:8px;font-size:13px;line-height:1.2}.job-panel{padding:20px;border:1px solid var(--border-color);border-radius:18px;background:var(--surface-bg)}.job-panel h3{margin-top:0}.kobo-send-help{width:100%}
.kobo-page{min-height:100vh;width:min(100%,560px);margin:0 auto;padding:36px 20px;color:var(--text-color);background:var(--page-bg)}.kobo-page h1,.kobo-page h2{margin-bottom:10px}.kobo-code{display:grid;place-items:center;min-height:120px;margin:22px 0;border:1px solid var(--border-color);border-radius:20px;background:var(--surface-bg);font-size:54px;font-weight:800}.kobo-help{margin-top:-8px}.kobo-downloads .ant-list-item{border:0;padding:8px 0}.plain-text-book-page{min-height:100vh;padding:38px 18px 72px;background:#f2f0ec;color:#211f1b}.plain-text-book-header,.plain-text-book-meta,.plain-text-book-text{width:min(100%,860px);margin-inline:auto}.plain-text-book-header{display:flex;justify-content:space-between;gap:22px;align-items:flex-start;margin-bottom:18px}.plain-text-book-header h1{margin:0 0 4px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(34px,8vw,58px);font-weight:700;line-height:1}.plain-text-book-header p{margin:0;color:#5d574d}.plain-text-book-kicker{margin-bottom:10px!important;font-size:13px;font-weight:700;text-transform:uppercase}.plain-text-book-meta{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:20px;padding-top:14px;border-top:1px solid #d8d1c4;color:#615a50;font-size:14px}.plain-text-book-text{padding:34px clamp(18px,4vw,48px);border:1px solid #ded7cc;border-radius:16px;background:#fffdf8;box-shadow:0 16px 45px rgba(53,42,25,.12);font-family:Georgia,"Times New Roman",serif;font-size:19px;line-height:1.72;white-space:pre-wrap}.plain-text-book-state{min-height:260px;display:grid;place-items:center}
@media(max-width:1100px){.library-cover-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:800px){.app-content{padding:38px 20px 88px}.library-cover-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 16px}.header-button-label{display:none}.header-icon-button{padding-inline:7px!important}}@media(max-width:700px){.app-header{grid-template-columns:1fr auto;gap:12px;padding-inline:16px!important}.desktop-nav{display:none}.username{display:none}.mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:10;justify-content:center;border-top:1px solid var(--border-color)!important;background:color-mix(in srgb,var(--surface-bg) 85%,transparent)!important;backdrop-filter:blur(20px)}.mobile-nav .ant-menu-item{margin-inline:12px!important}.page-heading{align-items:flex-start;margin-bottom:22px}.page-heading h2{font-size:36px!important}.page-heading .ant-space{gap:4px!important}.page-heading .ant-btn{padding-inline:11px}.books-search{margin-bottom:30px;height:48px}.books-search .ant-input-suffix .ant-btn{padding-inline:11px}.library-cover-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px 12px}.library-book h3{font-size:14px!important;margin-top:9px!important}.library-author{font-size:13px}.library-book-actions{display:none}.cover-panel{grid-template-columns:104px 1fr;gap:17px;padding:15px}.cover-preview{width:104px}.cover-candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.plain-text-book-header{display:block}.plain-text-book-header .ant-btn{margin-top:18px}.plain-text-book-text{font-size:17px;line-height:1.65}}@media(min-width:701px){.mobile-list,.mobile-nav{display:none}.search-form{grid-template-columns:minmax(280px,560px) auto;align-items:start}}
