:root{color-scheme:light;--cream:#f4f0e6;--paper:#fbf8f0;--paper-2:#e7e0d2;--ink:#242820;--muted:#62675c;--quiet:#7c806f;--forest:#315844;--forest-dark:#244437;--forest-pale:#dce7da;--rule:#d8d0c0;--rust:#9c5d42;--ochre:#c49a54;--sage:#71886a;--mauve:#816a75;--danger:#8a3e36;--shadow:0 14px 36px rgba(53,48,38,.12),0 2px 5px rgba(53,48,38,.08);--serif:Georgia,"Times New Roman",serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--cream)}body{margin:0;background:var(--cream);color:var(--ink);font:15px/1.5 var(--sans);min-width:320px}button,input,select,textarea{font:inherit;color:inherit}button,a,select,input,textarea{outline:none}button{cursor:pointer}img{max-width:100%}::selection{background:var(--forest);color:var(--paper)}:focus-visible{outline:3px solid var(--forest);outline-offset:3px;box-shadow:0 0 0 2px var(--cream)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--paper-2)}::-webkit-scrollbar-thumb{background:#a8a795;border:3px solid var(--paper-2);border-radius:999px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;top:8px;left:8px;padding:10px 14px;background:var(--paper);color:var(--forest);transform:translateY(-150%)}.skip-link:focus{transform:none}.site-header{position:sticky;z-index:20;top:0;background:var(--forest);color:#fff;box-shadow:0 7px 22px rgba(36,68,55,.18)}.header-inner{max-width:1440px;min-height:74px;margin:auto;padding:0 28px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:34px}.wordmark{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font:700 24px/1 var(--serif);letter-spacing:-.02em}.wordmark svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.primary-nav{display:flex;align-self:stretch;gap:4px}.primary-nav a{position:relative;display:flex;align-items:center;padding:0 16px;color:#e8eee8;text-decoration:none;font-size:14px;font-weight:650}.primary-nav a::after{content:"";position:absolute;height:2px;left:16px;right:16px;bottom:0;background:#fff;transform:scaleX(0);transition:transform .18s ease-out}.primary-nav a:hover,.primary-nav a[aria-current="page"]{color:#fff}.primary-nav a[aria-current="page"]::after{transform:scaleX(1)}.header-actions{display:flex;align-items:center;gap:9px}.profile-picker select{height:44px;max-width:180px;border:1px solid rgba(255,255,255,.3);border-radius:6px;background:#294c3b;color:#fff;padding:0 34px 0 12px}.icon-button,.button{min-height:44px;border-radius:6px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;text-decoration:none}.icon-button{width:44px;padding:0;background:transparent;color:currentColor}.icon-button:hover{background:rgba(255,255,255,.1)}.icon-button svg,.button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.button{padding:0 16px;background:var(--forest);color:#fff}.button:hover{background:var(--forest-dark)}.button-light{background:var(--paper);color:var(--forest)}.button-light:hover{background:#fff}.button-secondary{border-color:var(--rule);background:transparent;color:var(--ink)}.button-secondary:hover{background:var(--paper-2)}.button-quiet{background:transparent;color:var(--forest)}.button-quiet:hover{background:var(--forest-pale)}.button-danger{background:var(--danger)}.button:disabled,.icon-button:disabled{opacity:.48;cursor:not-allowed}.page{max-width:1440px;margin:auto;padding:56px 48px 80px}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:34px}.page-heading h1{max-width:820px;margin:0;font:700 clamp(34px,4vw,56px)/1.04 var(--serif);letter-spacing:-.03em;text-wrap:balance}.page-heading p{max-width:52ch;margin:10px 0 0;color:var(--muted);font-size:16px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin:0 0 18px}.section-heading h2{margin:0;font:700 clamp(25px,2.5vw,34px)/1.15 var(--serif);letter-spacing:-.02em}.section-heading p{margin:4px 0 0;color:var(--muted)}.text-link{color:var(--forest);font-weight:700;text-decoration-thickness:1px;text-underline-offset:4px}.reading-desk{margin-bottom:52px}.book-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.reading-card{position:relative;min-width:0;display:grid;grid-template-columns:92px minmax(0,1fr);gap:17px;padding:18px;background:var(--paper);border-radius:12px;box-shadow:0 10px 26px rgba(53,48,38,.1),0 2px 4px rgba(53,48,38,.06);overflow:hidden}.reading-card::after{content:"";position:absolute;inset:auto 0 0;height:3px;background:var(--forest)}.cover{position:relative;display:block;aspect-ratio:2/3;background:var(--paper-2);border-radius:3px 6px 6px 3px;overflow:hidden;box-shadow:3px 7px 12px rgba(42,38,31,.16)}.cover img{width:100%;height:100%;object-fit:cover;display:block}.cover-fallback{width:100%;height:100%;padding:12px 8px;display:flex;align-items:center;justify-content:center;text-align:center;color:#f8f3e8;background:var(--forest);font:700 13px/1.25 var(--serif);overflow-wrap:anywhere}.reading-card h3,.shelf-card h3,.library-card h2{margin:0;font:700 18px/1.15 var(--serif);letter-spacing:-.012em}.reading-card h3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.author{margin:6px 0;color:var(--muted);font-size:13px}.progress-copy{display:flex;justify-content:space-between;gap:8px;margin:16px 0 7px;font-size:12px;font-weight:750;color:var(--forest);font-variant-numeric:tabular-nums}.progress-track{height:5px;border-radius:5px;background:var(--paper-2);overflow:hidden}.progress-track span{display:block;height:100%;background:var(--forest)}.reading-card .button{width:100%;margin-top:14px}.desk-empty{padding:38px;background:var(--paper);border:1px dashed #b7ad99;border-radius:12px;text-align:center}.dashboard-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);gap:46px;align-items:start}.ledger{border-top:2px solid var(--ink);border-bottom:1px solid var(--ink)}.ledger-row{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--rule)}.ledger-row:last-child{border:0}.ledger-label{color:var(--muted)}.ledger-value{font:700 30px/1 var(--serif);font-variant-numeric:tabular-nums}.finished-shelf{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.shelf-card{min-width:0;background:transparent;border:0;padding:0;text-align:left}.shelf-card .cover{margin-bottom:12px;transition:transform .18s ease-out,box-shadow .18s ease-out}.shelf-card:hover .cover{transform:translateY(-4px);box-shadow:4px 13px 18px rgba(42,38,31,.2)}.shelf-card h3{font-size:15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.shelf-card .author{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loading-page{min-height:60vh;display:grid;place-content:center;text-align:center;color:var(--muted)}.spinner{display:block;width:30px;height:30px;margin:auto;border:3px solid var(--rule);border-top-color:var(--forest);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;z-index:80;right:22px;bottom:22px;max-width:380px;padding:12px 16px;background:var(--ink);color:#fff;border-radius:6px;box-shadow:var(--shadow);transform:translateY(140%);transition:transform .24s ease-out}.toast.show{transform:none}.toast.error{background:var(--danger)}dialog{padding:0;border:0;border-radius:12px;background:var(--paper);color:var(--ink);box-shadow:0 24px 80px rgba(20,24,18,.32)}dialog::backdrop{background:rgba(25,30,23,.55);backdrop-filter:blur(2px)}.sheet-dialog{width:min(760px,calc(100% - 30px));max-height:min(860px,calc(100dvh - 30px));overflow:auto}.small-dialog{width:min(470px,calc(100% - 30px))}.dialog-header{position:sticky;z-index:2;top:0;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 26px 18px;background:rgba(251,248,240,.97);border-bottom:1px solid var(--rule)}.dialog-header h2{margin:0;font:700 28px/1.1 var(--serif)}.dialog-body{padding:26px}.dialog-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;padding:18px 26px;background:rgba(251,248,240,.97);border-top:1px solid var(--rule)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label,.field legend{font-size:13px;font-weight:750}.field input,.field select,.field textarea,.search-box input,.toolbar select{width:100%;min-height:44px;border:1px solid #bcb4a5;border-radius:6px;background:#fffdf7;padding:9px 11px}.field textarea{min-height:110px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.search-box input:focus,.toolbar select:focus{border-color:var(--forest);box-shadow:0 0 0 3px rgba(49,88,68,.14)}.help{margin:0;color:var(--muted);font-size:12px}.error-copy{color:var(--danger);font-weight:650}.rating-options{display:flex;flex-wrap:wrap;gap:7px}.rating-options label{position:relative}.rating-options input{position:absolute;opacity:0}.rating-options span{min-width:44px;height:44px;border:1px solid var(--rule);border-radius:6px;display:grid;place-items:center;background:#fffdf7;color:var(--quiet);font-size:20px}.rating-options input:checked+span{background:var(--forest);border-color:var(--forest);color:#fff}.rating-options input:focus-visible+span{outline:3px solid var(--forest);outline-offset:2px}.empty-state{padding:48px 22px;text-align:center;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.empty-state h2,.error-panel h2{margin:0 0 8px;font:700 26px/1.2 var(--serif)}.empty-state p,.error-panel p{max-width:55ch;margin:0 auto 18px;color:var(--muted)}.error-panel{max-width:620px;margin:70px auto;padding:30px;background:var(--paper);border-radius:12px;box-shadow:var(--shadow);text-align:center}
@media(max-width:1050px){.header-inner{grid-template-columns:auto 1fr;gap:14px}.primary-nav{grid-row:2;grid-column:1/-1;order:3;justify-content:center;min-height:47px;border-top:1px solid rgba(255,255,255,.18)}.header-actions{justify-self:end}.book-row{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.finished-shelf{grid-template-columns:repeat(5,minmax(110px,1fr))}}@media(max-width:720px){.header-inner{padding:10px 16px 0}.wordmark{font-size:21px}.profile-picker{display:none}.button-light{width:44px;padding:0;font-size:0}.button-light svg{margin:0}.primary-nav a{flex:1;justify-content:center;padding:0 8px}.primary-nav a::after{left:8px;right:8px}.page{padding:34px 18px 68px}.page-heading{align-items:start;flex-direction:column;margin-bottom:28px}.page-heading h1{font-size:38px}.section-heading{align-items:start}.book-row{display:flex;overflow:auto;gap:14px;padding:2px 18px 22px;margin:0 -18px;scroll-snap-type:x mandatory}.reading-card{flex:0 0 min(320px,86vw);scroll-snap-align:start}.finished-shelf{display:flex;overflow:auto;padding:2px 18px 20px;margin:0 -18px;scroll-snap-type:x mandatory}.shelf-card{flex:0 0 126px;scroll-snap-align:start}.dashboard-grid{gap:36px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.dialog-header{padding:20px}.dialog-body{padding:20px}.dialog-actions{padding:15px 20px;flex-wrap:wrap}.dialog-actions .button{flex:1}.toast{left:14px;right:14px;bottom:14px;max-width:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Library */
.library-toolbar{display:grid;grid-template-columns:minmax(260px,540px) 210px;gap:12px;justify-content:space-between;padding-bottom:18px;border-bottom:1px solid var(--rule)}.search-box{position:relative;display:flex;align-items:center}.search-box svg{position:absolute;left:13px;width:20px;height:20px;fill:none;stroke:var(--muted);stroke-width:1.7;pointer-events:none}.search-box input{padding-left:43px}.library-toolbar select{width:100%;min-height:46px;border:1px solid #bcb4a5;border-radius:6px;background:#fffdf7;padding:0 12px}.status-tabs{display:flex;gap:8px;overflow:auto;padding:14px 0 5px}.status-tabs button{min-height:42px;white-space:nowrap;border:1px solid var(--rule);border-radius:999px;padding:0 13px;background:transparent;color:var(--muted);font-weight:700}.status-tabs button span{display:inline-grid;place-items:center;min-width:24px;margin-left:5px;padding:1px 6px;border-radius:999px;background:var(--paper-2);color:var(--ink);font-size:11px}.status-tabs button:hover{border-color:var(--forest);color:var(--forest)}.status-tabs button[aria-pressed=true]{background:var(--forest);border-color:var(--forest);color:#fff}.status-tabs button[aria-pressed=true] span{background:rgba(255,255,255,.18);color:#fff}.results-line{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:27px 0 18px;color:var(--muted)}.text-button{min-height:44px;border:0;background:transparent;color:var(--forest);font-weight:700;text-decoration:underline;text-underline-offset:4px}.library-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:34px 20px}.library-card{position:relative;min-width:0;border:0;background:transparent;padding:0;text-align:left;color:var(--ink)}.library-card .cover{width:100%;margin-bottom:14px;transition:transform .18s ease-out,box-shadow .18s ease-out}.library-card:hover .cover{transform:translateY(-5px);box-shadow:4px 15px 20px rgba(42,38,31,.2)}.library-card h2{font-size:17px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.library-card .author{margin:6px 0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-chip{display:inline-flex;align-items:center;min-height:24px;margin-bottom:9px;border-radius:999px;padding:2px 8px;background:var(--paper-2);color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.status-reading{background:var(--forest-pale);color:var(--forest)}.status-finished{background:#e9dfc5;color:#735526}.status-abandoned{background:#eadbd6;color:#7c4337}.card-progress,.card-rating{display:block;color:var(--muted);font-size:12px;font-weight:700}.card-rating{color:var(--ochre);letter-spacing:.06em}.card-rating span{margin-left:6px;color:var(--muted);letter-spacing:0}.pagination{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:52px}.pagination span{color:var(--muted);font-variant-numeric:tabular-nums}.cover .cover-fallback{position:absolute;z-index:0;inset:0}.cover img{position:relative;z-index:1}

/* Statistics */
.stats-heading{align-items:start}.stats-controls{display:flex;gap:10px}.stats-controls label{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:750}.stats-controls select{min-width:132px;min-height:44px;border:1px solid #bcb4a5;border-radius:6px;background:var(--paper);padding:0 32px 0 11px}.source-note{display:flex;gap:16px;margin:-8px 0 38px;padding:15px 18px;background:var(--forest-pale);color:var(--forest);border-radius:6px}.source-note strong{white-space:nowrap}.source-note span{color:#3e5947}.stat-feature{display:grid;grid-template-columns:240px 1fr;gap:38px;align-items:end;padding:32px 0 38px;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule)}.stat-intro{align-self:start}.stat-intro h2{margin:0;font:700 40px/1.05 var(--serif);letter-spacing:-.025em}.stat-intro p,.panel-heading p{margin:8px 0 0;color:var(--muted)}.bar-chart{height:248px;display:grid;grid-template-columns:repeat(12,1fr);gap:8px;align-items:end;padding:20px 0 0}.bar-column{height:100%;display:grid;grid-template-rows:20px 1fr 25px;align-items:end;text-align:center}.bar-value{font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}.bar{display:block;width:min(34px,70%);min-height:1px;margin:0 auto;background:var(--forest);border-radius:3px 3px 0 0}.bar-label{padding-top:7px;color:var(--muted);font-size:11px}.stat-pair{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr);gap:48px;margin-top:48px}.stat-panel{min-width:0}.panel-heading{padding-bottom:16px;border-bottom:1px solid var(--rule)}.panel-heading h2{margin:0;font:700 30px/1.15 var(--serif)}.rating-layout{display:grid;grid-template-columns:200px 1fr;gap:28px;align-items:center;padding:28px 0 18px}.donut{position:relative}.donut svg{display:block;width:100%;transform:rotate(-90deg)}.donut span{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:var(--muted);font-size:11px}.donut strong{display:block;color:var(--ink);font:700 32px/1 var(--serif)}.rating-legend{list-style:none;margin:0;padding:0}.rating-legend li{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:9px;min-height:34px;border-bottom:1px solid var(--rule)}.rating-legend i{width:10px;height:10px;border-radius:50%}.rating-legend strong{font-variant-numeric:tabular-nums}.chart-note{margin:0 0 16px;color:var(--muted);font-size:13px}.line-chart{padding-top:20px}.line-chart svg{display:block;width:100%;overflow:visible}.chart-grid line{stroke:var(--rule);stroke-width:1}.chart-grid text,.x-labels text{fill:var(--muted);font:11px var(--sans)}.area-line{fill:none;stroke:var(--forest);stroke-width:3;stroke-linejoin:round}.line-dots circle{fill:var(--paper);stroke:var(--forest);stroke-width:2}.chart-empty{min-height:230px;display:grid;place-content:center;color:var(--muted);text-align:center}.data-details{margin-top:14px;border-top:1px solid var(--rule);font-size:13px}.data-details summary{min-height:44px;display:flex;align-items:center;color:var(--forest);font-weight:750;cursor:pointer}.table-scroll{overflow:auto}.data-details table{width:100%;border-collapse:collapse;background:var(--paper)}.data-details caption{padding:8px;text-align:left;font-weight:800}.data-details th,.data-details td{border:1px solid var(--rule);padding:7px 9px;text-align:right;white-space:nowrap}.data-details th{background:var(--paper-2)}

/* Dialog workflows */
.dialog-header p{margin:3px 0 0;color:var(--muted);white-space:nowrap;max-width:52ch;overflow:hidden;text-overflow:ellipsis}.dialog-header .icon-button{color:var(--ink);flex:0 0 auto}.book-detail-head{display:grid;grid-template-columns:94px 1fr;gap:20px;align-items:center;padding:24px 26px;background:var(--paper-2)}.book-detail-head h3{margin:2px 0 4px;font:700 24px/1.15 var(--serif)}.book-detail-head p{margin:0;color:var(--muted)}.book-detail-head .cover{width:94px}.detail-rating{margin-top:8px!important;color:#735526!important;font-weight:750}.rating-field{border:0;padding:0;margin:0}.rating-options button{min-width:44px;height:44px;border:1px solid var(--rule);border-radius:6px;background:#fffdf7;color:var(--quiet)}.rating-options button span{font-size:18px}.rating-options button small{margin-left:2px}.rating-options button[aria-checked=true]{background:var(--forest);border-color:var(--forest);color:#fff}.rating-options .clear-rating{width:auto;padding:0 11px;color:var(--muted);font-size:12px}.finish-check{display:flex;align-items:center;gap:10px;min-height:44px;margin-top:18px;font-weight:750}.finish-check input{width:20px;height:20px;accent-color:var(--forest)}.candidate-summary{display:grid;grid-template-columns:64px 1fr;gap:15px;align-items:center;padding:18px 26px;background:var(--paper-2)}.candidate-summary .cover{width:64px}.candidate-summary div{display:grid}.candidate-summary strong{font:700 18px/1.2 var(--serif)}.candidate-summary span,.candidate-summary small{color:var(--muted)}.lookup-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.lookup-status{min-height:46px;padding:17px 0;color:var(--muted)}.spinner.small{display:inline-block;width:18px;height:18px;margin:0 8px -4px 0;border-width:2px}.lookup-results{display:grid;border-top:1px solid var(--rule)}.lookup-result{display:grid;grid-template-columns:44px 1fr 20px;gap:13px;align-items:center;min-height:78px;border:0;border-bottom:1px solid var(--rule);background:transparent;padding:10px 4px;text-align:left}.lookup-result:hover{background:var(--paper-2)}.lookup-result .cover{width:44px}.lookup-result>span{display:grid;min-width:0}.lookup-result strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lookup-result small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lookup-result>svg{width:20px;fill:none;stroke:var(--muted);stroke-width:1.8}.manual-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--quiet);font-size:12px}.manual-divider::before,.manual-divider::after{content:"";height:1px;flex:1;background:var(--rule)}.utility-sections{display:grid;gap:30px}.utility-sections section{padding-bottom:28px;border-bottom:1px solid var(--rule)}.utility-sections section:last-child{border:0}.utility-sections h3{margin:0;font:700 22px/1.2 var(--serif)}.utility-sections p{margin:7px 0 15px;color:var(--muted)}#import-form,.inline-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.file-field{min-height:48px;display:grid;gap:5px;font-weight:750}.file-field input{border:1px solid var(--rule);border-radius:6px;background:#fffdf7;padding:8px}.import-list{list-style:none;margin:0;padding:0}.import-list li{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--rule)}.import-list span{color:var(--muted)}.view-enter{animation:view-in .38s cubic-bezier(.22,1,.36,1)}@keyframes view-in{from{opacity:.6;transform:translateY(6px)}to{opacity:1;transform:none}}

@media(max-width:1180px){.library-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.stat-pair{gap:30px}.rating-layout{grid-template-columns:160px 1fr}}@media(max-width:900px){.library-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-feature{grid-template-columns:1fr}.stat-pair{grid-template-columns:1fr}.rating-layout{grid-template-columns:190px 1fr}.source-note{display:grid;gap:4px}}@media(max-width:620px){.library-toolbar{grid-template-columns:1fr}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}.status-tabs{margin-right:-18px}.stats-controls{width:100%;display:grid;grid-template-columns:1fr 1fr}.stats-controls select{width:100%;min-width:0}.source-note{margin-top:0}.stat-intro h2{font-size:34px}.bar-chart{height:210px;gap:3px}.bar-label{font-size:9px;transform:rotate(-45deg);transform-origin:center top}.stat-pair{margin-top:38px}.rating-layout{grid-template-columns:130px 1fr;gap:18px}.lookup-form,#import-form,.inline-form{grid-template-columns:1fr}.book-detail-head{grid-template-columns:74px 1fr;padding:18px 20px}.book-detail-head .cover{width:74px}.dialog-header p{max-width:26ch}.import-list li{display:grid;gap:3px}.pagination{gap:10px}.pagination .button{padding:0 12px}}

/* Review corrections */
.page,.page>*,.dashboard-grid,.dashboard-grid>*,.dashboard-grid section,.reading-desk,.section-heading,.section-heading>*,.book-row,.finished-shelf{min-width:0;max-width:100%}.book-row,.finished-shelf{overscroll-behavior-inline:contain}.text-link{display:inline-flex;align-items:center;min-height:44px}.status-tabs{flex-wrap:wrap;overflow:visible}.status-tabs button{min-height:44px}.status-unread{color:#4c5048}.toast{visibility:hidden;opacity:0;pointer-events:none;transition:transform .24s ease-out,opacity .18s ease-out,visibility 0s linear .24s}.toast.show{visibility:visible;opacity:1;pointer-events:none;transition-delay:0s}.cover.cover-loaded .cover-fallback{visibility:hidden}.dialog-header>div{min-width:0;max-width:calc(100% - 64px)}dialog>div,.utility-sections,.utility-sections section,#import-form,.inline-form,.file-field,.import-list,.import-list li,.import-list strong,.import-list span{min-width:0;max-width:100%}.file-field input{width:100%;min-width:0}.utility-sections p,.import-list strong,.import-list span{overflow-wrap:anywhere}.field select{min-width:0}.form-error:not([hidden]){display:block;margin:12px 0 0}.field [aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px rgba(138,62,54,.14)}
@media(max-width:720px){.section-heading{flex-wrap:wrap}.book-row,.finished-shelf{width:calc(100% + 36px);max-width:calc(100% + 36px)}.status-tabs{margin-right:0}.utility-sections{overflow:visible}.utility-sections .button{max-width:100%;white-space:normal}.dialog-header p{max-width:100%;white-space:normal;overflow-wrap:anywhere}}
 .project-return{padding:0 18px 28px;max-width:1440px;margin:0 auto}.project-return a{min-height:44px}

/* Wishlist and collections */
.library-modes{display:inline-flex;gap:3px;margin-bottom:22px;padding:3px;background:var(--paper-2);border-radius:8px}.library-modes button{min-width:118px;min-height:44px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-weight:750}.library-modes button[aria-pressed=true]{background:var(--paper);color:var(--forest);box-shadow:0 3px 9px rgba(53,48,38,.11)}
.status-wishlist{background:#e5dce4;color:#664f62}.collections-toolbar{grid-template-columns:minmax(260px,620px);border-bottom:0}.collections-view{display:grid;gap:50px}.collection-create{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(360px,1.2fr);gap:34px;align-items:end;padding:24px 26px;background:var(--paper);border-radius:12px;box-shadow:var(--shadow)}.collection-create h2{margin:0;font:700 25px/1.15 var(--serif)}.collection-create p{margin:7px 0 0;color:var(--muted)}.collection-section{min-width:0}.collection-band{padding:22px 0;border-top:1px solid var(--rule)}.collection-band:last-child{border-bottom:1px solid var(--rule)}.collection-band>header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:15px}.collection-band h3{margin:0;font:700 23px/1.2 var(--serif)}.collection-band header p{margin:3px 0 0;color:var(--muted)}.collection-actions{display:flex;gap:5px}.collection-actions .button{padding:0 10px}.danger-link{color:var(--danger)}.collection-books{display:flex;gap:12px;overflow:auto;padding:2px 2px 12px;overscroll-behavior-inline:contain;scroll-snap-type:x proximity}.collection-book{flex:0 0 210px;display:grid;grid-template-columns:48px 1fr;gap:11px;align-items:center;min-height:84px;border:0;border-radius:6px;background:var(--paper);padding:9px;text-align:left;scroll-snap-align:start}.collection-book:hover{background:var(--forest-pale)}.collection-book .cover{width:48px}.collection-book>span{display:grid;min-width:0}.collection-book strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--serif)}.collection-book small{color:var(--muted)}.collection-empty{padding:18px;background:var(--paper);color:var(--muted);border-radius:6px}.collection-rename-form{flex:1;grid-template-columns:minmax(220px,1fr) auto auto}.compact-empty{padding:30px 20px}.compact-empty h3{margin:0 0 7px;font:700 22px/1.2 var(--serif)}

/* Reading details and line chart */
.monthly-path{fill:none;stroke:var(--forest);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.line-dots .point-value{fill:var(--ink);font:700 11px var(--sans);font-variant-numeric:tabular-nums}.monthly-line{min-width:0}.detail-fields{margin:0;padding:17px;border:1px solid var(--rule);border-radius:8px}.detail-fields legend{padding:0 6px}.split-fields{display:grid;grid-template-columns:2fr 1fr;gap:12px}.collection-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.collection-checks label{display:flex;align-items:center;gap:9px;min-height:44px;padding:7px 10px;background:var(--paper-2);border-radius:6px}.collection-checks input{width:18px;height:18px;min-height:0;accent-color:var(--forest)}.reading-history{margin-top:32px;padding-top:28px;border-top:2px solid var(--ink)}.reading-history>h3,.reading-history-head h3{margin:0;font:700 25px/1.2 var(--serif)}.reading-history-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.reading-history-head p{margin:4px 0 0;color:var(--muted)}.reread-count{font:700 31px/1 var(--serif);color:var(--forest);font-variant-numeric:tabular-nums}.read-list{list-style:none;margin:18px 0 22px;padding:0;border-top:1px solid var(--rule)}.read-list li{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;border-bottom:1px solid var(--rule)}.read-list li>span{display:grid}.read-list small{color:var(--muted)}.reread-form{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:10px;align-items:end}.reread-form .form-error{grid-column:1/-1}
@media(max-width:720px){.collection-create{grid-template-columns:1fr;padding:20px}.collection-rename-form{grid-template-columns:1fr}.collection-band>header{align-items:flex-start;flex-direction:column}.collection-actions{width:100%;justify-content:flex-start}.collection-book{flex-basis:190px}.split-fields,.collection-checks,.reread-form{grid-template-columns:1fr}.reading-history-head{align-items:flex-start}.monthly-line{overflow-x:auto}.monthly-line svg{min-width:570px}}
.reading-history{margin:0 0 32px;padding:0 0 28px;border-top:0;border-bottom:2px solid var(--ink)}

/* Combined review corrections */
.library-page{width:100%;max-width:1440px;margin-inline:auto}.library-modes button{color:#50554c}.stats-page,.stat-feature,.stat-feature>*,.stat-feature .data-details,.stat-feature .table-scroll{min-width:0;max-width:100%}.stat-feature .data-details{width:100%}.stat-feature .table-scroll{overflow-x:auto;overscroll-behavior-inline:contain}.stat-feature .data-details table{min-width:620px}.sheet-dialog{scroll-padding-block:82px 150px}#book-dialog .dialog-body{padding-bottom:110px}#book-dialog :is(input,select,textarea,button){scroll-margin-block:82px 150px}
@media(max-width:720px){#book-dialog .dialog-body{padding-bottom:180px}.sheet-dialog{scroll-padding-bottom:210px}#book-dialog :is(input,select,textarea,button){scroll-margin-bottom:210px}.primary-nav a{min-width:0;text-align:center;overflow-wrap:anywhere}.library-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.library-modes button{min-width:0;white-space:normal;overflow-wrap:anywhere}}

/* Text enlargement reflow */
@media(max-width:720px){.header-inner{grid-template-columns:minmax(0,1fr) auto}.wordmark{min-width:0}.wordmark span,.page-heading h1,.dialog-header h2,.dialog-header p,.book-detail-head h3,.book-detail-head p,.collection-band h3,.reading-history-head h3{overflow-wrap:anywhere}.page-heading>*,.collection-create>*,.collection-band>header>*,.inline-form>*,.book-detail-head>div,.reading-history-head>div,.form-grid>*,.reread-form>*{min-width:0;max-width:100%}.primary-nav{width:100%;min-width:0}.page-heading>div{width:100%}.results-line{flex-wrap:wrap}.results-line>*,.text-button{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}.collection-actions{flex-wrap:wrap}.collection-actions .button{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}.collection-book strong{white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.book-detail-head{grid-template-columns:74px minmax(0,1fr)}.reading-history-head{flex-direction:column}.read-list li{flex-wrap:wrap}.read-list .button{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}.form-grid{grid-template-columns:minmax(0,1fr)}.dialog-header>div{min-width:0}.dialog-actions .button,.reread-form .button{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}}
@media(max-width:720px){.field>*,.field input,.field select,.field textarea,.detail-fields>*,.split-fields>*,.collection-checks>*{min-width:0;max-width:100%}.split-fields,.collection-checks{width:100%;grid-template-columns:minmax(0,1fr)}.collection-checks label,.collection-checks span{min-width:0;max-width:100%;overflow-wrap:anywhere}}
