@charset "UTF-8";.no-transitions *{transition:none!important}:root{--bg: #1e1e2e;--card: #181825;--nav-bg: #11111b;--surface: #313244;--surface-2: #45475a;--border: #585b70;--text: #cdd6f4;--muted: #a6adc8;--accent: #b4befe;--accent-2: #cba6f7;--primary: #cba6f7;--on-accent: #11111b;--success: #a6e3a1;--success-bg: rgba(166,227,161,.12);--success-border: rgba(166,227,161,.35);--success-text: #a6e3a1;--warning: #f9e2af;--warning-bg: rgba(249,226,175,.12);--warning-border: rgba(249,226,175,.35);--warning-text: #f9e2af;--error: #f38ba8;--danger: #f38ba8;--badge-wishlist: #b4befe;--badge-reading: #89b4fa;--badge-read: #a6e3a1;--badge-dropped: #f38ba8;--nav-h: 56px;--nav-border: #585b70;--nav-link: #bac2de;--nav-link-hover: #cdd6f4;--shadow: rgba(17,17,27,.5)}:root[data-theme=dark]{--bg: #1e1e2e;--card: #181825;--nav-bg: #11111b;--surface: #313244;--surface-2: #45475a;--border: #585b70;--text: #cdd6f4;--muted: #a6adc8;--accent: #b4befe;--accent-2: #cba6f7;--primary: #cba6f7;--on-accent: #11111b;--success: #a6e3a1;--success-bg: rgba(166,227,161,.12);--success-border: rgba(166,227,161,.35);--success-text: #a6e3a1;--warning: #f9e2af;--warning-bg: rgba(249,226,175,.12);--warning-border: rgba(249,226,175,.35);--warning-text: #f9e2af;--error: #f38ba8;--danger: #f38ba8;--badge-wishlist: #b4befe;--badge-reading: #89b4fa;--badge-read: #a6e3a1;--badge-dropped: #f38ba8;--nav-h: 56px;--nav-border: #585b70;--nav-link: #bac2de;--nav-link-hover: #cdd6f4;--shadow: rgba(17,17,27,.5)}:root[data-theme=light]{--bg: #eff1f5;--card: #e6e9ef;--nav-bg: #dce0e8;--surface: #e6e9ef;--surface-2: #dce0e8;--border: #bcc0cc;--text: #4c4f69;--muted: #6c6f85;--accent: #dc8a78;--accent-2: #dd7878;--primary: #dc8a78;--on-accent: #eff1f5;--success: #40a02b;--success-bg: rgba(64,160,43,.1);--success-border: rgba(64,160,43,.3);--success-text: #40a02b;--warning: #df8e1d;--warning-bg: rgba(223,142,29,.1);--warning-border: rgba(223,142,29,.3);--warning-text: #df8e1d;--error: #d20f39;--danger: #d20f39;--badge-wishlist: #7287fd;--badge-reading: #1e66f5;--badge-read: #40a02b;--badge-dropped: #d20f39;--nav-h: 56px;--nav-border: #bcc0cc;--nav-link: #6c6f85;--nav-link-hover: #4c4f69;--shadow: rgba(220,224,232,.8)}.theme-toggle{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:.5rem;padding:.3rem .6rem;font-size:1rem;cursor:pointer;line-height:1;transition:background-color .15s ease,border-color .15s ease}.theme-toggle:hover{background:var(--surface-2);border-color:var(--accent)}.btn,.btn-outline,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;padding:.55rem .9rem;border-radius:.75rem;font-weight:600;line-height:1;cursor:pointer;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn{background:var(--primary);border:1px solid transparent;color:var(--on-accent);transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,transform .15s ease}.btn:hover,.btn:focus-visible{background:var(--accent-2);color:var(--on-accent)}.btn:hover{transform:translateY(-1px)}.btn-outline{background:transparent;border:1px solid var(--primary);color:var(--text);transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,transform .15s ease}.btn-outline:hover,.btn-outline:focus-visible{background-color:color-mix(in srgb,var(--primary),transparent 85%);border-color:color-mix(in srgb,var(--primary),transparent 30%);color:var(--text);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary),transparent 80%)}.card,.stat-card{background:var(--surface);border:1px solid var(--border);color:var(--text)}.muted{color:var(--muted)}a{color:var(--accent)}a:hover,a:focus{color:var(--accent-2)}.input::-moz-placeholder,textarea::-moz-placeholder{color:color-mix(in srgb,var(--muted),transparent 25%)}.input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--muted),transparent 25%)}:where(a,button,.btn,.btn-outline,.btn-secondary,.btn-icon,select,.input,textarea):focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent),transparent 75%)}.alert{border:1px solid var(--border)}.alert-success{background:color-mix(in srgb,var(--success),transparent 86%);color:var(--success)}.alert-warning{background:color-mix(in srgb,var(--warning),transparent 86%);color:var(--warning-text)}.alert-danger{background:color-mix(in srgb,var(--danger),transparent 86%);color:var(--danger)}::-moz-selection{background:var(--accent);color:var(--on-accent)}::selection{background:var(--accent);color:var(--on-accent)}input[type=checkbox],input[type=radio],progress{accent-color:var(--accent)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--accent),transparent 70%);border-radius:999px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-track{background:color-mix(in srgb,var(--surface),transparent 60%)}mark{background:color-mix(in srgb,var(--accent),transparent 80%);color:var(--text)}hr{border-color:var(--border)}html,body{background:var(--bg);color:var(--text)}*{box-sizing:border-box}html,body{height:100%}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Helvetica Neue,Arial,"Apple Color Emoji","Segoe UI Emoji"}main{padding-top:clamp(1em,2vh,1.5rem)}.container{max-width:1100px;margin:0 auto;padding:1.25rem}h1,h2,h3{margin:.25rem 0 1rem;letter-spacing:.2px}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.125rem}.card{background:var(--card);border:1px solid var(--border);border-radius:.9rem;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}.card-thumb{position:relative}.card-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;transition:transform .3s ease}.card-thumb:hover img{transform:scale(1.03)}.thumb-placeholder{display:grid;place-items:center;height:100%;color:var(--muted);font-size:.9rem}.card-body{padding:.9rem .9rem 1rem}.title{margin:0 0 .25rem}.meta{margin:.35rem 0;font-size:.95rem}.label{display:block;font-weight:600;margin-bottom:.25rem}.form-row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:not-allowed}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.text-sm{font-size:.875rem}.block{display:block}.overflow-hidden{overflow:hidden}.text-error{color:var(--error);font-size:.875rem;margin-top:.25rem}.alert{padding:.8rem 1rem;border-radius:.7rem;border:1px solid var(--border)}.alert-success{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}.alert-warning{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}.form-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.stars{position:relative;display:inline-block;font-size:1.5rem;line-height:1}.stars__display,.stars__fill{letter-spacing:2px}.stars__display{color:var(--surface-2)}.stars__fill{position:absolute;top:0;right:0;bottom:0;left:0;width:var(--p, 0%);color:#f5c518;overflow:hidden;pointer-events:none}.stars__hit{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(10,1fr)}.stars__hit button{background:transparent;border:0;padding:0;cursor:pointer}.stars__feedback{margin-left:.5rem;font-size:.85rem;font-weight:600}.stars__feedback--ok{color:var(--success)}.stars__feedback--err{color:var(--error)}.status-select--saved{outline:2px solid var(--success);outline-offset:2px}.status-select--err{outline:2px solid var(--error);outline-offset:2px}.pagination{display:flex;gap:.4rem;align-items:center;margin-top:1rem}.pagination a,.pagination span{padding:.35rem .6rem;border-radius:.5rem;border:1px solid var(--border);background:var(--card);color:var(--text)}.pagination .active span{background:var(--primary);border-color:var(--primary);color:var(--on-accent)}.aspect-\[3\/4\]{aspect-ratio:3/4}.aspect-\[2\/3\]{aspect-ratio:2/3}.bg-gray-100{background:var(--card)}.line-clamp-1{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:1rem}.results-grid .card-thumb{aspect-ratio:3/4}.logs-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:640px){.logs-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.logs-grid{grid-template-columns:repeat(3,1fr)}}.logs-grid .card-thumb{aspect-ratio:3/4;overflow:hidden}.review-snippet{margin-top:.25rem;font-size:.95rem;line-height:1.35}.review-form{margin-top:.5rem;padding:.75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card)}.review-form__label{display:block;font-weight:600;margin-bottom:.35rem}.review-form__textarea{width:100%;display:block;padding:.5rem .6rem;border:1px solid var(--border);border-radius:.5rem;resize:vertical;min-height:120px;font-family:inherit;font-size:1rem;background:var(--bg);color:var(--text)}.review-form__actions{display:flex;gap:.75rem;align-items:center;margin-top:.5rem}.btn.btn-link.danger{color:var(--error);background:transparent;border:none;padding:0}.thumb-actions{position:absolute;top:.5rem;right:.5rem;opacity:0;transform:translateY(-4px);transition:opacity .15s ease,transform .15s ease;z-index:2}.card:hover .thumb-actions,.card:focus-within .thumb-actions{opacity:1;transform:translateY(0)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--bg),transparent 25%);color:var(--text);font-size:20px;line-height:1;cursor:pointer;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.btn-icon:hover{filter:brightness(1.1)}.btn-icon:focus-visible{filter:brightness(1.1);border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent),transparent 75%)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.8rem}.stat-label{color:var(--muted);font-size:.9rem}.stat-value{font-size:1.4rem;font-weight:700;margin-top:.2rem}.recent-meta{margin-left:.4rem;font-size:.95rem}.site-nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);background:var(--nav-bg);border-bottom:1px solid var(--nav-border);z-index:1000}.nav{height:100%;max-width:1200px;margin:0 auto;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.nav__brand{text-decoration:none;display:flex;align-items:center}.logo{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;line-height:1}.logo--sm{gap:.35rem}.logo--lg{gap:.75rem}.logo--xl{gap:.9rem}.logo__icon{display:flex;align-items:center;flex-shrink:0}.logo__wordmark{display:flex;align-items:baseline;gap:0;line-height:1.1}.logo__read{font-weight:300;color:var(--muted);letter-spacing:.01em}.logo__on{font-weight:700;color:var(--accent);letter-spacing:.01em}.nav__toggle{display:none;height:36px;padding:0 10px;border:1px solid var(--nav-border);background:transparent;color:var(--nav-link);border-radius:8px;cursor:pointer}.nav__links{display:flex;align-items:center;gap:8px}.nav__link{display:inline-flex;align-items:center;height:36px;padding:0 12px;border-radius:8px;text-decoration:none;color:var(--nav-link);border:1px solid transparent;transition:border-color .15s ease,background-color .15s ease,color .15s ease}.nav__link:hover,.nav__link:focus{color:var(--nav-link-hover);border-color:var(--nav-border);outline:none}.nav__logout-form{display:inline-flex}.nav__logout{background:transparent;border:1px solid transparent;cursor:pointer;font:inherit}.nav__link.is-active{color:var(--nav-link-hover);box-shadow:inset 0 -2px 0 var(--accent)}body{padding-top:calc(var(--nav-h) + 5px)}@media(max-width:768px){.nav{gap:6px}.nav__toggle{display:inline-flex;align-items:center;justify-content:center}.nav__links{position:absolute;top:var(--nav-h);left:0;right:0;background:var(--nav-bg);border-bottom:1px solid var(--nav-border);padding:8px;display:none;flex-direction:column;align-items:stretch;gap:6px}.nav__links[data-open="1"]{display:flex}.nav__link{height:40px;padding:0 14px}}.badge{display:inline-block;padding:.2rem .5rem;border-radius:.5rem;font-size:.75rem;font-weight:600;letter-spacing:.2px;line-height:1;border:1px solid var(--border);-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;transition:color .15s ease,background-color .15s ease,border-color .15s ease,transform .15s ease}.badge--light{font-size:.68rem;padding:.16rem .42rem;font-weight:600;letter-spacing:.15px}.badge--wishlist{color:var(--badge-wishlist);background-color:color-mix(in srgb,var(--badge-wishlist),transparent 88%);border-color:color-mix(in srgb,var(--badge-wishlist),transparent 70%)}.badge--reading{color:var(--badge-reading);background-color:color-mix(in srgb,var(--badge-reading),transparent 88%);border-color:color-mix(in srgb,var(--badge-reading),transparent 70%)}.badge--read{color:var(--badge-read);background-color:color-mix(in srgb,var(--badge-read),transparent 88%);border-color:color-mix(in srgb,var(--badge-read),transparent 70%)}.badge--dropped{color:var(--badge-dropped);background-color:color-mix(in srgb,var(--badge-dropped),transparent 88%);border-color:color-mix(in srgb,var(--badge-dropped),transparent 70%)}.badge--light.badge--wishlist,.badge--light.badge--reading,.badge--light.badge--read,.badge--light.badge--dropped{background-color:color-mix(in srgb,currentColor,transparent 92%);border-color:color-mix(in srgb,currentColor,transparent 80%)}.badge:hover,.badge:focus{transform:translateY(-1px)}.empty-state{text-align:center;padding:3rem 1rem;border:1px dashed color-mix(in srgb,var(--accent),transparent 70%);border-radius:1rem;background:color-mix(in srgb,var(--surface),var(--accent) 5%);max-width:640px;margin:2rem auto}.empty-state__icon{font-size:2.25rem;line-height:1;margin-bottom:.5rem;opacity:.9;color:var(--accent)}.empty-state__title{font-size:1.25rem;margin:.25rem 0 .5rem;font-weight:700;color:var(--text)}.empty-state__text{color:var(--muted);margin:0 0 1rem}.empty-state__cta{margin-top:.25rem}*,*:before,*:after{transition:color .15s ease,background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}.btn{transition:all .2s ease}.btn:hover,.btn:focus{transform:translateY(-1px);box-shadow:0 2px 6px #00000040}.card{transition:all .2s ease}.card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000040}select option[value=wishlist]{color:var(--badge-wishlist)}select option[value=reading]{color:var(--badge-reading)}select option[value=read]{color:var(--badge-read)}select option[value=dropped]{color:var(--badge-dropped)}select option:checked{font-weight:600}.stat-card{position:relative;background:var(--surface);border:1px solid var(--border);color:var(--text);overflow:hidden;padding:.9rem;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.stat-card:before{content:"";position:absolute;inset-inline:0;top:0;height:3px;background:var(--accent);opacity:.9}.stat-card:hover{box-shadow:0 6px 18px color-mix(in srgb,var(--accent),transparent 82%);transform:translateY(-1px)}.btn-danger{background:var(--danger);color:var(--on-accent);border:1px solid transparent}.btn-danger:hover,.btn-danger:focus{filter:brightness(.95)}.pagination{display:flex;gap:.25rem;align-items:center}.page-link{display:inline-block;padding:.4rem .7rem;border:1px solid var(--border);border-radius:.5rem;background:var(--surface);color:var(--text);text-decoration:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.page-link:hover{border-color:var(--accent)}.page-item.active .page-link{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}:where(input,select,textarea):disabled{opacity:.65;cursor:not-allowed}:where(input,select,textarea)[readonly]{background:color-mix(in srgb,var(--surface-2),transparent 10%)}.btn-secondary,.review-toggle{background:color-mix(in srgb,var(--accent),transparent 85%);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent),transparent 70%);transition:background-color .15s ease,color .15s ease,border-color .15s ease}.btn-secondary:hover,.btn-secondary:focus,.review-toggle:hover,.review-toggle:focus{background:var(--accent);color:var(--on-accent);border-color:var(--accent-2)}.input,select,textarea{background:color-mix(in srgb,var(--surface-2),var(--accent) 6%);border:1px solid color-mix(in srgb,var(--accent),transparent 70%);color:var(--text);transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent),transparent 70%);background:color-mix(in srgb,var(--surface-2),var(--accent) 12%)}.recent-list{background:color-mix(in srgb,var(--surface-2),var(--accent) 5%);border:1px solid color-mix(in srgb,var(--accent),transparent 80%);border-radius:.75rem;padding:1rem 1.25rem}.recent-item{padding:.4rem 0;border-bottom:1px solid color-mix(in srgb,var(--accent),transparent 85%);transition:background-color .15s ease}.recent-item:last-child{border-bottom:none}.recent-item:hover{background:color-mix(in srgb,var(--accent),transparent 92%)}.recent-title{color:var(--accent);font-weight:600}.recent-item__link{color:var(--accent);font-weight:600;text-decoration:none}.recent-item__link:hover{text-decoration:underline}.review-form__inner{border:1px solid color-mix(in srgb,var(--accent),transparent 70%);border-radius:.5rem;background:color-mix(in srgb,var(--surface-2),var(--accent) 8%);padding:.75rem 1rem}.review-form__actions .btn-link.danger{color:var(--danger)}.review-form__actions .btn-link.danger:hover{color:color-mix(in srgb,var(--danger),transparent 30%)}.empty-state__cta{background:var(--accent);border:none;color:var(--on-accent)}.empty-state__cta:hover{background:var(--accent-2)}hr{border-color:color-mix(in srgb,var(--accent),transparent 80%)}.label{color:color-mix(in srgb,var(--accent),transparent 25%);font-weight:600}.title{color:color-mix(in srgb,var(--accent),var(--text) 25%);font-weight:600;transition:color .15s ease}.title.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}a:hover .title,a:focus .title{color:var(--accent)}.muted.line-clamp-1{color:color-mix(in srgb,var(--accent),var(--muted) 70%);font-weight:500;transition:color .15s ease,opacity .15s ease}.card:hover .muted.line-clamp-1{color:color-mix(in srgb,var(--accent),var(--muted) 50%);opacity:.95}body.landing{background:radial-gradient(900px 520px at 50% 55%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 60%),linear-gradient(180deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 90%,var(--surface)) 100%);color:var(--text)}body.landing main.container{min-height:calc(100vh - 120px);display:flex;align-items:center;justify-content:center;max-width:1400px}body.landing .landing-frame--full{width:100%;max-width:1400px;margin:0 auto;padding:3.25rem;border:1px solid var(--border);border-radius:20px;background:color-mix(in srgb,var(--surface) 70%,transparent)}body.landing .landing-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:3rem;padding-top:.75rem}body.landing .landing-topbar__actions{display:flex;align-items:center;gap:.75rem}body.landing .landing-login{font-size:.9rem;color:var(--accent);text-decoration:none}body.landing .landing-login:hover{text-decoration:underline}body.landing .landing-login-btn{padding:.55rem .9rem;font-size:.9rem}body.landing .landing-hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:3.25rem;align-items:center}body.landing .landing-hero__content{max-width:560px}body.landing .landing-hero__content h1{margin:0 0 .9rem;font-size:3.2rem;line-height:1.1;font-weight:700;color:var(--text)}body.landing .landing-hero__content h1 span{color:var(--accent)}body.landing .landing-hero__content p{margin:0;max-width:52ch;color:var(--muted);line-height:1.6}body.landing .actions{margin-top:1.8rem;display:flex;gap:1rem;flex-wrap:wrap}body.landing .btn,body.landing .btn:hover{text-decoration:none}body.landing .landing-hero__visual{height:460px;border-radius:16px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 55%,transparent);overflow:hidden;display:flex;align-items:flex-end}.landing-bookshelf{width:100%;height:100%;display:block}@media(max-width:860px){body.landing .landing-frame--full{padding:1.5rem}body.landing .landing-topbar{margin-bottom:2rem}body.landing .landing-hero{grid-template-columns:1fr;gap:2rem}body.landing .landing-hero__visual{height:240px}body.landing .landing-hero__content h1{font-size:2.2rem}}.auth-page{padding:2.5rem 1rem;display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 120px)}.auth-frame{width:100%;max-width:1100px;padding:2.75rem;border-radius:20px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 70%,transparent)}.auth-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:3rem;align-items:center}.auth-content h1{margin:0 0 1rem}.auth-field{margin-bottom:1rem}.auth-field label{display:block;margin-bottom:.4rem;color:var(--muted);font-size:.95rem}.auth-field .input{width:100%;padding:.7rem .9rem;font-size:1rem}.auth-actions{margin-top:1.25rem;display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.auth-errors{border:1px solid color-mix(in srgb,var(--danger) 45%,var(--border));background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--text);padding:.75rem;border-radius:10px;margin-bottom:1rem}.auth-visual{height:420px;border-radius:16px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 55%,transparent);overflow:hidden;display:flex;align-items:flex-end}.auth-page .btn,.auth-page .btn:hover{text-decoration:none}@media(max-width:860px){.auth-frame{padding:1.5rem}.auth-grid{grid-template-columns:1fr;gap:2rem}.auth-visual{height:240px}}.book-search__row{position:relative}.book-search .input{width:100%;padding:.85rem 7rem .85rem 1rem;font-size:1.1rem}.book-search .input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}.book-search .btn{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);white-space:nowrap;padding:.45rem 1.1rem}.search-empty{padding:4rem 1rem;text-align:center}.search-empty__title{font-size:1.15rem;font-weight:600;color:var(--text);margin:0 0 .35rem}.search-empty__sub{font-size:.9rem;color:var(--muted);margin:0 0 1.5rem}.search-chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.search-chip{padding:.35rem .85rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.875rem;cursor:pointer;transition:border-color .15s,color .15s}.search-chip:hover{border-color:var(--accent);color:var(--accent)}.back-link{font-size:.875rem;color:var(--accent);text-decoration:none}.back-link:hover{text-decoration:underline}.book-detail-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:1rem}@media(min-width:768px){.book-detail-grid{grid-template-columns:240px 1fr}}.card-thumb--contain{max-width:420px;max-height:630px}.card-thumb--contain img{-o-object-fit:contain;object-fit:contain}.book-prose{font-size:.95rem;line-height:1.65;color:var(--text)}.book-prose a{color:var(--accent)}.book-prose strong{color:var(--text);font-weight:600}.book-prose em{font-style:italic}.book-prose p{margin:0 0 .75rem}.book-prose p:last-child{margin-bottom:0}.page-title{font-size:2rem;font-weight:700;margin:.25rem 0 1rem}.logged-info{font-size:.9rem;color:var(--muted)}.site-footer{margin-top:3rem;padding:1.25rem;text-align:center;font-size:.875rem;color:var(--muted);border-top:1px solid var(--border)}
