:root{color:#202a30;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--surface:#fff;--text-muted:#606760;--border:#dedcd4;--accent:#a74632;--planned-text:#555e64;--planned-background:#eef0f1;--reading-text:#315f9a;--reading-background:#edf3fa;--finished-text:#356348;--finished-background:#edf5ee;background:#f6f4ef;font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}button:disabled,input:disabled,select:disabled{opacity:.65;cursor:wait}.loading-state{padding:24px}.state-retry{margin-top:16px}.action-error{color:#a12f25;margin-bottom:20px}.dialog-error{margin-top:20px}body{min-width:320px;margin:0}h1,h2,h3,p{margin:0}p{font-size:16px;line-height:1.5}.page{width:min(100%,1184px);margin-inline:auto;padding:40px 32px 48px}.page-header{justify-content:space-between;align-items:center;gap:24px;margin-bottom:32px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{background:var(--accent);border-radius:2px;flex-shrink:0;width:4px;height:28px}h1{letter-spacing:-.8px;font-size:32px;font-weight:650;line-height:1.2}h2{font-size:20px;font-weight:600;line-height:1.4}.subtitle{color:var(--text-muted);margin-top:8px}.demo-note{max-width:290px;color:var(--text-muted);text-align:right;font-size:14px}.header-actions{align-items:center;gap:24px;display:flex}.user-actions{align-items:center;gap:12px;display:flex}.user-email{color:var(--text-muted);overflow-wrap:anywhere;font-size:14px}.library-demo-note{color:var(--text-muted);margin:-16px 0 24px;font-size:14px}.login-page{width:min(100%,520px);margin-inline:auto;padding:48px 24px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:32px}.login-header{border-bottom:1px solid var(--border);margin-bottom:24px;padding-bottom:24px}.login-note{color:var(--text-muted);margin-top:8px;font-size:14px}.login-form{gap:20px;margin-top:24px;display:grid}.demo-credentials{border-top:1px solid var(--border);margin-top:28px;padding-top:24px}.demo-credentials h3{font-size:14px;font-weight:600;line-height:1.5}.demo-credentials dl{gap:12px;margin:16px 0 0;display:grid}.demo-credentials dt{color:var(--text-muted);margin-bottom:4px;font-size:13px}.demo-credentials dd{overflow-wrap:anywhere;margin:0;font-size:14px}.demo-credentials code{font-family:ui-monospace,Cascadia Code,Consolas,monospace}.primary-button{border:1px solid var(--accent);background:var(--accent);color:#fff;min-height:44px;font:inherit;cursor:pointer;white-space:nowrap;border-radius:8px;padding:10px 16px;font-size:16px;font-weight:500}.primary-button:hover{background:#883725;border-color:#883725}button:focus-visible,select:focus-visible{outline:2px solid var(--reading-text);outline-offset:3px}.confirmation{color:var(--finished-text)}.confirmation--visible{margin:-8px 0 16px}.book-status{cursor:pointer;border:1px solid #959b95;width:160px;min-height:44px;font-family:inherit}.book-dialog{border:1px solid var(--border);background:var(--surface);color:#202a30;border-radius:12px;width:min(480px,100% - 32px);max-height:calc(100dvh - 32px);padding:24px;overflow-y:auto}.book-dialog::backdrop{background:#202a3059}.dialog-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.close-button{width:44px;height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-shrink:0;padding:0;font-size:28px;line-height:1}.close-button:hover{background:#f6f4ef}.dialog-fields{gap:20px;display:grid}.dialog-actions{justify-content:flex-end;gap:12px;margin-top:28px;display:flex}.field-error{color:#a12f25;font-size:14px}.field input[aria-invalid=true]{border-color:#a12f25}.empty-add{margin-top:20px}.summary,.library{border:1px solid var(--border);background:var(--surface);border-radius:12px}.summary{margin-bottom:24px;padding:24px 0}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.metric{padding-inline:24px}.metric+.metric{border-left:1px solid var(--border)}.metric dt{color:var(--text-muted);font-size:14px;line-height:1.5}.metric dd{font-variant-numeric:tabular-nums;margin:8px 0 0;font-size:30px;font-weight:600;line-height:1.2}.metric--total dd{color:var(--accent)}.metric--reading dd{color:var(--reading-text)}.metric--finished dd{color:var(--finished-text)}.library-header{justify-content:space-between;align-items:center;gap:16px;padding:24px;display:flex}.library-count{color:var(--text-muted);font-size:14px}.library-toolbar{grid-template-columns:minmax(0,1fr) minmax(200px,240px) auto;align-items:end;gap:16px;padding:0 24px 24px;display:grid}.field{gap:8px;min-width:0;display:grid}.field label{font-size:14px;font-weight:500;line-height:1.5}.field input,.field select,.secondary-button{background:var(--surface);min-height:44px;color:inherit;font:inherit;border:1px solid #959b95;border-radius:8px;font-size:16px}.field input,.field select{width:100%;min-width:0;padding:10px 12px}.field input::placeholder{color:var(--text-muted);opacity:1}.secondary-button{cursor:pointer;padding:10px 16px;font-weight:500}.secondary-button:hover{background:#f6f4ef;border-color:#606760}.field input:focus-visible,.field select:focus-visible,.secondary-button:focus-visible{outline:2px solid var(--reading-text);outline-offset:3px}.empty-results{border-top:1px solid var(--border);padding:32px 24px}.empty-results h3{font-size:18px;font-weight:600;line-height:1.5}.empty-results p{color:var(--text-muted);margin:8px 0 20px}.list-columns,.book-row{grid-template-columns:minmax(0,1fr) minmax(180px,.55fr) 160px;align-items:center;column-gap:24px;display:grid}.list-columns{border-block:1px solid var(--border);color:var(--text-muted);background:#faf9f6;padding:12px 24px;font-size:13px;line-height:1.5}.book-list{margin:0;padding:0;list-style:none}.book-row{min-height:76px;padding:20px 24px}.book-row+.book-row{border-top:1px solid var(--border)}.book-title{overflow-wrap:anywhere;font-size:17px;font-weight:550;line-height:1.5}.book-author{color:var(--text-muted);overflow-wrap:anywhere}.book-status{overflow-wrap:anywhere;border-radius:6px;justify-self:start;max-width:100%;padding:5px 10px;font-size:14px;line-height:1.5}.book-status--planned{color:var(--planned-text);background:var(--planned-background)}.book-status--reading{color:var(--reading-text);background:var(--reading-background)}.book-status--finished{color:var(--finished-text);background:var(--finished-background)}.empty-library{border-top:1px solid var(--border);color:var(--text-muted);padding:24px}@media (width<=760px){.header-actions{flex-wrap:wrap;gap:12px}.library-toolbar{grid-template-columns:minmax(0,1fr) minmax(180px,220px)}.toolbar-reset{justify-self:start}.page-header{flex-direction:column;align-items:flex-start;gap:12px}.demo-note{text-align:left;max-width:none}.list-columns{display:none}.book-row{grid-template-columns:minmax(0,1fr);gap:4px}.book-list{border-top:1px solid var(--border)}.book-status{margin-top:8px}}@media (width<=600px){.login-page{padding:24px 16px}.login-card{padding:24px}.user-actions{flex-wrap:wrap}.library-toolbar{grid-template-columns:minmax(0,1fr);padding:0 16px 20px}.empty-results{padding:24px 16px}.page{padding:24px 16px 32px}.page-header{margin-bottom:24px}h1{font-size:28px}.summary{padding:0}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{padding:16px}.metric:nth-child(3){border-left:0}.metric:nth-child(n+3){border-top:1px solid var(--border)}.metric dt{min-height:42px}.metric dd{font-size:28px}.library-header{flex-direction:column;align-items:flex-start;gap:4px;padding:20px 16px}.book-row,.empty-library{padding:20px 16px}}
