@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0..1,0&display=swap";:root{color-scheme:light;--bg:#fff;--fg:#111;--muted:#666;--line:#ddd;--fill:#f3f3f3;--fill-high:#e8e8e8;--error:#b00020;--success:#1b7f3b;--info:var(--muted);--scrim:#00000080;--focus:var(--fg);--primary:var(--fg);--on-primary:var(--bg);--radius:12px;--radius-sm:8px;--radius-full:999px;--tap:48px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-size:15px;--font-size-input:16px;--transition:.15s ease;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--border:var(--line);--surface:#fafafa;--subtle:var(--muted);--danger-fg:var(--error)}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:var(--font-size);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0;padding:0;line-height:1.5}img,svg,video{max-width:100%;display:block}a{color:inherit;text-decoration:underline}h1,h2,h3,h4,h5,h6,p{margin:0}h1{font-size:22px;font-weight:600}h2{font-size:18px;font-weight:600}h3{font-size:16px;font-weight:600}h1,h2,h3,.page-title,.section-title,.content-title{text-transform:uppercase;letter-spacing:.02em}:focus{outline:none}:focus-visible{outline:2px solid var(--fg);outline-offset:2px}body{flex-direction:column;min-height:100dvh;display:flex}body>main,#app{flex:1;min-height:0;overflow-y:auto}i{white-space:nowrap;font-feature-settings:"liga";font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;user-select:none;vertical-align:middle;font-family:Material Symbols Outlined;font-size:24px;font-style:normal;font-weight:400;line-height:1;display:inline-block}input,textarea,select{width:100%;min-height:var(--tap);font:inherit;font-size:var(--font-size-input);color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);transition:border-color var(--transition);padding:12px 14px;display:block}input:focus,textarea:focus,select:focus,input:focus-visible,textarea:focus-visible,select:focus-visible{box-shadow:none;border-color:var(--focus);outline:none}input:disabled,textarea:disabled,select:disabled{opacity:.5;background:var(--fill)}input[readonly]{background:var(--fill)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.7}textarea{resize:vertical}.field{flex-direction:column;gap:6px;display:flex}.field>label{font-size:13px;font-weight:500}.field>.hint{color:var(--muted);font-size:12px}.field.invalid input,.field.invalid textarea,.field.invalid select{border-color:var(--error);box-shadow:0 0 0 1px var(--error)}.field.invalid>.hint{color:var(--error)}.input-otp{letter-spacing:8px;text-align:center;font-size:22px;font-weight:600}button{font:inherit;cursor:pointer;font-size:14px}button:disabled{cursor:not-allowed}.btn{min-height:var(--tap);border:1px solid var(--primary);border-radius:var(--radius-full);background:var(--primary);color:var(--on-primary);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:10px 24px;font-weight:500;display:inline-flex}.btn:active:not(:disabled){opacity:.8}.btn:disabled{opacity:.4}.btn.block{width:100%;display:flex}.btn i{font-size:20px}.btn-secondary,.btn-tertiary,.btn-tonal{min-height:var(--tap);background:var(--fill-high);border-radius:var(--radius-full);color:var(--fg);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 16px;display:inline-flex}.btn-outline{min-height:var(--tap);border:1px solid var(--line);border-radius:var(--radius-full);color:var(--fg);background:0 0;justify-content:center;align-items:center;gap:8px;padding:10px 16px;display:inline-flex}.btn-ghost{min-height:var(--tap);border-radius:var(--radius-full);color:var(--fg);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 12px;display:inline-flex}.btn-ghost i{font-size:22px}.btn-danger{min-height:var(--tap);background:var(--error);border:1px solid var(--error);border-radius:var(--radius-full);color:var(--bg);justify-content:center;align-items:center;gap:8px;padding:10px 16px;display:inline-flex}.btn-icon{width:var(--tap);height:var(--tap);min-height:var(--tap);color:var(--fg);background:0 0;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon i{font-size:22px}.btn-round{width:var(--tap);padding:0}.fab{border-radius:var(--radius);background:var(--primary);width:56px;height:56px;color:var(--on-primary);border:none;justify-content:center;align-items:center;display:inline-flex}.fab:disabled{opacity:.4}.fab.floating{right:16px;bottom:calc(16px + var(--safe-bottom));z-index:20;position:fixed}.chip{border:1px solid var(--line);border-radius:var(--radius-full);min-height:36px;color:var(--fg);background:0 0;align-items:center;gap:6px;padding:0 14px;font-size:13px;display:inline-flex}.chip[aria-pressed=true],.chip.active{background:var(--fg);color:var(--bg);border-color:var(--fg)}.chip i{font-size:18px}.chip-row{scrollbar-width:none;gap:8px;display:flex;overflow-x:auto}.chip-row::-webkit-scrollbar{display:none}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);padding:16px}.card.elevated,.card.filled{background:var(--fill);border:none}.list{flex-direction:column;display:flex}.list-item{min-height:56px;color:var(--fg);text-align:left;background:0 0;border:none;align-items:center;gap:16px;width:100%;padding:8px 16px;display:flex}.list-item:active{background:var(--fill)}.list-item .grow{flex:1;min-width:0}.list-item .sub{color:var(--muted);font-size:13px}.app-bar{z-index:15;min-height:56px;padding:var(--safe-top) 4px 0;background:var(--bg);border-bottom:1px solid var(--line);align-items:center;gap:4px;display:flex;position:sticky;top:0}.app-bar .title{flex:1;min-width:0;padding:0 8px;font-size:18px;font-weight:600}.nav-bar{padding-bottom:var(--safe-bottom);background:var(--bg);border-top:1px solid var(--line);display:flex}.nav-item{min-height:60px;color:var(--muted);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 0 12px;font-size:12px;display:flex}.nav-item.active{color:var(--fg);font-weight:600}.scrim{z-index:30;background:var(--scrim);align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-height:85dvh;padding:20px 16px calc(20px + var(--safe-bottom));background:var(--bg);border-radius:24px 24px 0 0;overflow-y:auto}.snackbar{left:12px;right:12px;bottom:calc(12px + var(--safe-bottom));z-index:40;border-radius:var(--radius-sm);background:var(--fg);color:var(--bg);align-items:center;gap:12px;padding:14px 16px;font-size:14px;display:flex;position:fixed}.snackbar .action{color:inherit;background:0 0;border:none;margin-left:auto;font-weight:600}.badge{border-radius:var(--radius-full);background:var(--fill-high);height:22px;color:var(--fg);align-items:center;padding:0 8px;font-size:12px;font-weight:500;display:inline-flex}.badge.error{background:var(--error);color:var(--bg)}.divider{background:var(--line);border:none;height:1px;margin:8px 0}.status{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--fill);padding:12px 14px;font-size:13px}.status.error{color:var(--error);border-color:var(--error)}.status.success{color:var(--success);border-color:var(--success)}.status.info{color:var(--info)}.empty-state{text-align:center;padding:64px 20px}.empty-state h3{margin:0 0 6px;font-size:16px}.spinner{border:2px solid;border-top-color:#0000;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.65s linear infinite spin;display:inline-block}.spinner-lg{border-width:3px;width:28px;height:28px}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:var(--fill-high);border-radius:var(--radius-sm);animation:1.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.5}}.muted,.subtle{color:var(--muted)}.small{font-size:13px}.bold{font-weight:600}.center{text-align:center}.row-center{justify-content:center;align-items:center;display:flex}.stack{flex-direction:column;gap:14px;display:flex}.row{align-items:center;gap:12px;display:flex}.truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}[hidden]{display:none!important}.auth-page{min-height:100dvh;padding:calc(24px + var(--safe-top)) 24px calc(24px + var(--safe-bottom));justify-content:center;align-items:center;display:flex}.auth-card{flex-direction:column;gap:20px;width:100%;max-width:360px;display:flex}.auth-header{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.auth-header img{object-fit:contain;border-radius:14px;width:64px;height:64px}.home-page{max-width:1100px;padding:calc(12px + var(--safe-top)) 16px calc(48px + var(--safe-bottom));margin:0 auto}.home-topbar{align-items:center;gap:8px;margin-bottom:16px;padding:4px 0;display:flex}.home-topbar .logo{border-radius:var(--radius-sm);object-fit:contain;flex-shrink:0;width:44px;height:44px}.home-topbar .actions{align-items:center;gap:2px;margin-left:auto;display:flex}.home-topbar .search-input{min-width:0;height:var(--tap);font-family:inherit;font-size:var(--font-size-input);color:var(--fg);box-shadow:none;background:0 0;border:none;outline:none;flex:1;padding:0 4px;line-height:1.4}.book-grid{grid-template-columns:repeat(2,1fr);gap:16px 12px;display:grid}.book-card{text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;display:block}.book-card .cover{aspect-ratio:2/3;background:var(--fill-high);border-radius:var(--radius-sm);color:var(--muted);justify-content:center;align-items:center;margin-bottom:8px;display:flex;position:relative;overflow:hidden}.book-card .cover i{font-size:40px}.book-card .cover img{object-fit:cover;width:100%;height:100%}.book-card:active .cover{opacity:.8}.book-card .title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.book-card .season-badge{border-radius:var(--radius-full);color:#fff;z-index:1;background:#000000bf;align-items:center;gap:3px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex;position:absolute;bottom:6px;right:6px}.season-row{border:none;border-bottom:1px solid var(--line);width:100%;color:var(--fg);text-align:left;background:0 0;align-items:center;gap:14px;padding:14px 4px;display:flex}.season-row:last-of-type{border-bottom:none}.season-row:active{background:var(--fill)}.season-row .num{background:var(--fill-high);width:36px;height:36px;color:var(--fg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex}.season-row .grow{flex:1;min-width:0}.season-row .name{font-size:14px;font-weight:600;display:block}.season-row .price{color:var(--muted);margin-top:2px;font-size:13px;display:block}.season-row>i{color:var(--muted)}.reader-page{flex-direction:column;height:100dvh;display:flex;position:relative;overflow:hidden}.reader-header{min-height:56px;padding:var(--safe-top) 4px 0;border-bottom:1px solid var(--line);background:var(--bg);flex:none;align-items:center;gap:4px;display:flex}.reader-head-mid{flex:1;min-width:0}.reader-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.reader-progress{color:var(--muted);min-height:16px;font-size:12px}.reader-stage{min-height:0;padding-bottom:var(--safe-bottom);flex:auto;position:relative;overflow:hidden}#viewer{position:absolute;inset:0}.reader-loading{pointer-events:none;background:color-mix(in srgb, var(--bg) 60%, transparent);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.gate-overlay{z-index:10;background:var(--scrim);justify-content:center;align-items:center;padding:20px;display:flex;position:absolute;inset:0}.gate-card{background:var(--bg);text-align:center;border-radius:24px;width:100%;max-width:360px;padding:28px 22px 18px}.gate-icon{background:var(--fill-high);width:56px;height:56px;color:var(--fg);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.gate-title{margin-bottom:8px;font-size:18px;font-weight:600}.gate-body{color:var(--muted);margin-bottom:20px;font-size:14px}.notfound-page{justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}@media (width>=600px){.home-page{padding-inline:24px}.book-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:24px 16px}.scrim{justify-content:center;align-items:center}.sheet{border-radius:24px;max-width:480px}.snackbar{width:400px;left:50%;right:auto;transform:translate(-50%)}}@media (hover:hover){.btn:hover:not(:disabled){opacity:.88}.list-item:hover,.season-row:hover,.btn-ghost:hover:not(:disabled),.btn-outline:hover:not(:disabled){background:var(--fill)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
