/* Styles shared by WebAssembly and the MAUI BlazorWebView. */
:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#27282b;background:#f6f5f1;font-synthesis:none}*{box-sizing:border-box}body{margin:0}.topbar{height:70px;background:#fff;border-bottom:1px solid #e8e5dd;display:flex;align-items:center;padding:0 clamp(20px,6vw,92px);gap:42px}.brand{font-weight:750;font-size:19px;color:#242521;text-decoration:none;letter-spacing:-.04em}.brand span{color:#96958e;font-size:13px;font-weight:450;letter-spacing:0}.topbar nav{display:flex;gap:26px;flex:1}.topbar nav a,.back-link{color:#595a54;text-decoration:none;font-size:14px}.topbar nav a:hover,.back-link:hover{color:#bd552f}.account{display:flex;gap:16px;align-items:center;color:#686861;font-size:14px}.page{max-width:1040px;margin:58px auto;padding:0 24px}.page-heading{display:flex;align-items:end;justify-content:space-between}.eyebrow{font-size:10px;letter-spacing:.17em;font-weight:700;color:#b85a37;margin-bottom:10px}.page h1,.login-card h1{font-size:36px;letter-spacing:-.045em;margin:0 0 26px;font-weight:650}.catalog-filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:center;margin:18px 0 20px}.catalog-grid{background:#fff;border:1px solid #ebe8df;border-radius:9px;overflow:hidden}.catalog-grid .mud-table-cell{font-size:14px}.catalog-grid .mud-table-head .mud-table-cell{font-weight:650;color:#55554f}.catalog-grid .mud-button-root{color:#a7472b}.mud-button-filled-primary{background:#a7472b!important}.search-row{display:flex;gap:10px;margin:20px 0 28px;max-width:720px}.search-row input,.login-card input,.panel input,.panel select{width:100%;border:1px solid #dddad1;background:#fff;border-radius:7px;padding:12px 14px;font-size:15px;outline:none}.search-row input:focus,.login-card input:focus,.panel input:focus{border-color:#bb6545;box-shadow:0 0 0 3px #bb65451c}.primary{display:inline-flex;justify-content:center;align-items:center;background:#a7472b;color:#fff;border:0;border-radius:7px;padding:11px 18px;text-decoration:none;font-size:14px;font-weight:600;cursor:pointer}.primary:hover{background:#8d3921;color:#fff}.primary:disabled{opacity:.6}.book-list{display:grid;gap:10px}.book-card{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid #ebe8df;border-radius:9px;padding:15px 17px}.book-mark{height:48px;width:39px;border-radius:4px;background:#f2e4d8;color:#a44a2b;display:grid;place-items:center;font-family:serif;font-size:19px}.book-meta{flex:1}.book-meta h2{font-size:16px;margin:0 0 4px;font-weight:620}.book-meta p,.author{font-size:13px;color:#818078;margin:0}.empty{padding:52px 20px;background:#fff;border:1px solid #ebe8df;border-radius:9px;text-align:center;color:#75746d}.empty h2{font-size:20px;color:#333}.muted,.hint{color:#86857e;font-size:13px}.login-card{max-width:410px;margin:60px auto;background:#fff;padding:32px;border:1px solid #ebe8df;border-radius:10px}.login-card h1{font-size:30px}.login-card form,.panel{display:grid;gap:16px}.login-card label,.panel label{display:grid;gap:7px;font-size:13px;color:#54544d}.full{width:100%;margin-top:5px}.hint{margin:15px 0 0}.alert{background:#fff1ed;color:#9b4025;padding:10px 12px;border-radius:6px;font-size:13px;margin-bottom:15px}.link-button{border:0;background:none;color:#a7472b;cursor:pointer}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel{align-content:start;background:#fff;border:1px solid #ebe8df;border-radius:9px;padding:24px}.panel h2{font-size:18px;margin:0 0 2px}.panel p{color:#75746d;font-size:14px;line-height:1.6}.reader{max-width:740px;margin:24px auto}.reader h1{font-family:Georgia,serif;font-size:38px;line-height:1.18;margin-bottom:9px}.reader-controls{position:sticky;top:0;background:#f6f5f1ee;backdrop-filter:blur(10px);display:flex;align-items:center;gap:10px;padding:13px 0;margin:22px 0;border-bottom:1px solid #e5e2da;color:#666;font-size:13px}.reader-controls button{background:#fff;border:1px solid #dedbd2;border-radius:5px;padding:5px 11px}.reader-controls .muted{margin-left:auto}.book-body{font-family:Georgia,"Times New Roman",serif;line-height:1.82;color:#35352f}.book-body p{margin:0 0 1em;white-space:pre-wrap}.book-body h2,.book-body h3{font-family:Georgia,serif;margin:1.5em 0 .7em;line-height:1.3}.book-body blockquote{margin:1.4em 2em;color:#69665d;font-style:italic}.current-block{scroll-margin-top:85px}.loading{margin:20vh auto;text-align:center;color:#a7472b;font-size:24px;font-weight:700}.loading span{display:block;color:#999;font-size:14px;font-weight:400;margin-top:8px}@media(max-width:700px){.topbar{gap:14px;padding:0 15px;height:60px}.topbar nav{gap:12px}.topbar nav a{font-size:12px}.brand span{display:none}.account{font-size:12px}.page{margin:32px auto;padding:0 16px}.page h1{font-size:30px}.admin-grid{grid-template-columns:1fr}.catalog-filters{grid-template-columns:1fr}.reader{margin-top:20px}.reader h1{font-size:32px}.reader-controls .muted{display:none}}
.reader-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0;padding:12px 0;border-top:1px solid #e5e2da;border-bottom:1px solid #e5e2da;color:#686861;font-size:13px}.reader-pagination button{background:#fff;border:1px solid #dedbd2;border-radius:6px;padding:8px 14px;color:#a7472b;cursor:pointer}.reader-pagination button:disabled{opacity:.45;cursor:default}
.reader-loading{max-width:480px;margin:20vh auto;text-align:center;background:#fff;border:1px solid #ebe8df;border-radius:10px;padding:28px}.reader-loading>p:first-child{font-size:16px;color:#45453f}.reader-loading .mud-progress-linear{margin:18px 0}
.reader-swipe-surface{touch-action:pan-y;overscroll-behavior-x:contain}.reader{padding:20px 28px;border-radius:10px;transition:background-color .18s ease,color .18s ease}.reader-theme-light{--reader-background:#fff;--reader-foreground:#292923;--reader-muted:#77766f;--reader-border:#e5e2da;--reader-accent:#a7472b;background:var(--reader-background);color:var(--reader-foreground);color-scheme:light}.reader-theme-dark{--reader-background:#202124;--reader-foreground:#e4e1da;--reader-muted:#aaa69e;--reader-border:#3a3b3e;--reader-accent:#e39a76;background:var(--reader-background);color:var(--reader-foreground);color-scheme:dark}.reader-theme-sepia{--reader-background:#f2e7ce;--reader-foreground:#493a29;--reader-muted:#817054;--reader-border:#d7c8a9;--reader-accent:#8b5d36;background:var(--reader-background);color:var(--reader-foreground);color-scheme:light}.reader-theme-oled{--reader-background:#000;--reader-foreground:#dedede;--reader-muted:#8d8d8d;--reader-border:#202020;--reader-accent:#d7a07e;background:var(--reader-background);color:var(--reader-foreground);color-scheme:dark}.reader .eyebrow,.reader h1{color:var(--reader-foreground)}.reader .eyebrow{color:var(--reader-accent)}.reader .author,.reader .muted{color:var(--reader-muted)}.reader .reader-controls{background:var(--reader-background);border-color:var(--reader-border);color:var(--reader-muted)}.reader .reader-controls button,.reader .reader-theme-picker select,.reader .reader-pagination button{background:var(--reader-background);border:1px solid var(--reader-border);color:var(--reader-foreground)}.reader .reader-pagination{border-color:var(--reader-border);color:var(--reader-muted)}.reader .reader-pagination button{color:var(--reader-accent)}.reader .book-body{color:var(--reader-foreground)}.reader .book-body blockquote{color:var(--reader-muted)}.reader-theme-picker{display:flex;align-items:center;gap:7px;color:var(--reader-muted)}.reader-theme-picker select{border-radius:5px;padding:6px 8px;font:inherit}.reader-controls{flex-wrap:wrap}html[data-reader-theme="dark"] body{background:#17181a;color:#e4e1da}html[data-reader-theme="dark"] .topbar{background:#202124;border-color:#353639}html[data-reader-theme="dark"] .topbar nav a,html[data-reader-theme="dark"] .brand,html[data-reader-theme="dark"] .account{color:#d5d2cb}html[data-reader-theme="sepia"] body{background:#eadfc8;color:#493a29}html[data-reader-theme="sepia"] .topbar{background:#f2e7ce;border-color:#d7c8a9}html[data-reader-theme="sepia"] .topbar nav a,html[data-reader-theme="sepia"] .brand,html[data-reader-theme="sepia"] .account{color:#493a29}html[data-reader-theme="oled"] body,html[data-reader-theme="oled"] .topbar{background:#000;color:#dedede}html[data-reader-theme="oled"] .topbar{border-color:#171717}html[data-reader-theme="oled"] .topbar nav a,html[data-reader-theme="oled"] .brand,html[data-reader-theme="oled"] .account{color:#dedede}html[data-reader-theme="light"] body{background:#f6f5f1;color:#27282b}@media(max-width:700px){.reader{padding:14px}.reader-controls{gap:8px}.reader-theme-picker{margin-left:auto}}

.catalog-mobile-search,
.catalog-mobile-cards {
    display: none;
}

.site-theme-picker {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #686861;
}

.site-theme-picker select {
    border: 1px solid #dedbd2;
    border-radius: 5px;
    background: transparent;
    color: inherit;
    padding: 5px 7px;
}

.catalog-book-card {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 5px 12px;
    align-items: center;
    padding: 15px;
    border: 1px solid #ebe8df;
    border-radius: 9px;
    background: #fff;
}

.catalog-book-card h2 {
    grid-column: 1;
    margin: 0;
    font-size: 16px;
}

.catalog-book-authors,
.catalog-book-id {
    grid-column: 1;
    margin: 0;
    color: #818078;
    font-size: 12px;
}

.catalog-book-card .primary {
    grid-column: 2;
    grid-row: 1 / span 3;
}

.book-details {
    display: grid;
    grid-template-columns: minmax(190px, 280px) minmax(0, 1fr);
    gap: clamp(24px, 5vw, 64px);
    align-items: start;
    margin-top: 24px;
}

.book-cover-wrap {
    position: sticky;
    top: 24px;
}

.book-cover {
    display: block;
    width: 100%;
    max-height: 420px;
    aspect-ratio: 2 / 3;
    object-fit: contain;
    border-radius: 8px;
    background: #ebe8df;
    box-shadow: 0 12px 30px #2929231a;
}

.book-cover-placeholder {
    display: grid;
    place-items: center;
    color: #a7472b;
    font-family: Georgia, serif;
    font-size: 22px;
}

.book-details-copy h1 {
    margin: 0 0 10px;
    font-family: Georgia, serif;
    font-size: clamp(28px, 4vw, 40px);
    line-height: 1.16;
}

.book-details-copy .author {
    margin-bottom: 15px;
    font-size: 15px;
}

.book-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 14px 0 22px;
}

.book-facts span {
    padding: 5px 9px;
    border-radius: 20px;
    background: #eeeae1;
    color: #686861;
    font-size: 12px;
}

.book-description {
    margin: 0 0 24px;
    color: #55554f;
    line-height: 1.75;
    white-space: pre-line;
}

.detail-loading {
    max-width: 480px;
    margin: 18vh auto;
    padding: 24px;
    border: 1px solid #ebe8df;
    border-radius: 9px;
    background: #fff;
    text-align: center;
}

html[data-app-theme="dark"] body {
    background: #17181a;
    color: #e4e1da;
}

html[data-app-theme="dark"] .topbar,
html[data-app-theme="dark"] .catalog-grid,
html[data-app-theme="dark"] .catalog-book-card,
html[data-app-theme="dark"] .empty,
html[data-app-theme="dark"] .login-card,
html[data-app-theme="dark"] .panel,
html[data-app-theme="dark"] .reader-loading,
html[data-app-theme="dark"] .detail-loading {
    border-color: #353639;
    background: #202124;
    color: #e4e1da;
}

html[data-app-theme="dark"] .book-description,
html[data-app-theme="dark"] .site-theme-picker {
    color: #c1beb6;
}

@media (prefers-color-scheme: dark) {
    html:not([data-app-theme="light"]) body {
        background: #17181a;
        color: #e4e1da;
    }

    html:not([data-app-theme="light"]) .topbar,
    html:not([data-app-theme="light"]) .catalog-grid,
    html:not([data-app-theme="light"]) .catalog-book-card,
    html:not([data-app-theme="light"]) .empty,
    html:not([data-app-theme="light"]) .login-card,
    html:not([data-app-theme="light"]) .panel,
    html:not([data-app-theme="light"]) .reader-loading,
    html:not([data-app-theme="light"]) .detail-loading {
        border-color: #353639;
        background: #202124;
        color: #e4e1da;
    }

    html:not([data-app-theme="light"]) .book-description,
    html:not([data-app-theme="light"]) .site-theme-picker {
        color: #c1beb6;
    }
}

@media (max-width: 700px) {
    .catalog-mobile-search,
    .catalog-mobile-cards {
        display: grid;
        gap: 10px;
    }

    .catalog-grid .mud-table-container,
    .catalog-grid .mud-table-head {
        display: none;
    }

    .catalog-mobile-search {
        margin: 12px 0;
    }

    .book-details {
        grid-template-columns: 100px minmax(0, 1fr);
        gap: 17px;
    }

    .book-cover-wrap {
        position: static;
    }

    .book-cover {
        max-height: 150px;
    }

    .book-details-copy h1 {
        font-size: 24px;
    }

    .book-details-copy .eyebrow {
        font-size: 8px;
    }

    .site-theme-picker span {
        display: none;
    }
}

.apk-link {
    display: inline-flex;
    align-items: center;
    border: 1px solid #a7472b;
    border-radius: 5px;
    padding: 5px 8px;
    color: #a7472b;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.apk-link:hover {
    background: #a7472b;
    color: #fff;
}

.offline-download {
    display: grid;
    justify-items: start;
    gap: 9px;
    margin-bottom: 18px;
}

.offline-download .mud-progress-linear {
    width: min(100%, 360px);
}

@media (max-width: 700px) {
    .apk-link-test {
        display: none;
    }

    .apk-link {
        font-size: 10px;
        padding: 4px 6px;
    }
}

.account-card {
    max-width: 520px;
    margin: 40px auto;
    padding: 28px;
    background: #fff;
    border: 1px solid #d1d9e0;
    border-radius: 8px;
}

.account-card h1 {
    margin: 0 0 10px;
    font-size: 30px;
}

.account-card form {
    display: grid;
    gap: 16px;
    margin-top: 22px;
}

.account-card label {
    display: grid;
    gap: 7px;
    color: #1f2328;
    font-size: 14px;
}

.account-card input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d9e0;
    border-radius: 6px;
    font-size: 15px;
}

.success-message {
    margin-top: 18px;
    padding: 10px 12px;
    color: #116329;
    background: #dafbe1;
    border: 1px solid #aceebb;
    border-radius: 6px;
}
