*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f8f6f0;color:#343e34;font-family:Arial,Helvetica,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.55}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,Times New Roman,serif;font-weight:400}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b8834d;outline-offset:3px}input,textarea,select{color:#343e34;border:1px solid #d6d9cd;border-radius:7px;background:#fffefa}textarea{resize:vertical}small{font-size:11px;color:#7b8374;line-height:1.6}.primary{border:0;background:#465f43;color:#fffdf4;padding:14px 20px;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:22px;font-size:13px}.primary:hover:enabled{background:#354b32}.outline{border:1px solid #a7b39b;border-radius:7px;background:#fffdf6;padding:11px 14px;font-size:12px}.text-button{background:none;border:0;padding:5px 0;color:#69775e;font-size:12px;text-decoration:underline;text-underline-offset:4px}.eyebrow{font-size:10px;letter-spacing:1.7px;color:#8b937e;margin-bottom:10px}.error{font-size:12px;color:#a14631;min-height:18px;line-height:1.6;margin-top:12px}.welcome{min-height:100dvh;display:grid;place-items:center;padding:35px 24px;background:radial-gradient(ellipse at 50% 5%,#f5eacb 0,transparent 55%),#f8f6f0}.welcome-card{width:100%;max-width:490px;text-align:center}.sun{display:block;font-size:50px;color:#bd9750;margin-bottom:28px}.welcome h1{font-size:clamp(35px,6vw,49px);line-height:1.2;letter-spacing:-1.5px}.welcome-description{max-width:380px;margin:20px auto 35px;color:#7f8677;line-height:1.8;font-size:15px}.welcome form{max-width:360px;margin:auto;text-align:left}.welcome form label{display:block;font-size:12px;margin-bottom:10px}.welcome input{width:100%;padding:15px 16px;font-size:15px}.password-hint{margin-top:10px;font-size:12px;color:#8d947f;line-height:1.6}.welcome .primary{width:100%;margin-top:25px;min-height:50px}.app-header{display:flex;align-items:center;justify-content:space-between;padding:22px 3%;border-bottom:1px solid #e0e2d7;background:#fffdf8}.wordmark{font:24px Georgia,serif;display:flex;align-items:center;gap:12px}.wordmark span{font:27px Arial,sans-serif;color:#bd9750}.table-page{padding:0 3%;max-width:1900px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:32px 0 24px}.page-heading h1{font-size:37px;letter-spacing:-1px}.page-heading>div>p:last-child{margin-top:12px;color:#7d8573;font-size:13px;line-height:1.7}.book-total{display:flex;align-items:center;gap:12px;color:#818a74;flex-shrink:0}.book-total strong{font:38px Georgia,serif;color:#7d8d64}.book-total span{font-size:11px;max-width:65px;line-height:1.5}.choose-panel{border:1px solid #dfe3d4;background:#edf0e5;border-radius:12px;padding:24px;margin-bottom:28px}.choose-heading{display:flex;align-items:center;gap:28px;margin-bottom:20px}.choose-heading h2{font-size:29px}.choose-heading .eyebrow{font-size:9px;margin-bottom:6px}.choose-heading>p{font-size:12px;line-height:1.7;color:#7e8872}.choose-controls{display:flex;gap:14px;align-items:flex-end}.choose-controls label{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#707d63;flex:1;max-width:290px}.choose-controls select{width:100%;padding:12px;font-size:12px;min-height:42px}.choose-controls .primary{min-height:42px;margin-left:auto;min-width:200px}.choose-foot{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:10px}.choose-foot small,.choose-foot .text-button{font-size:10px}.chosen-book{margin-top:20px;padding-top:19px;border-top:1px solid #d5ddc8;display:flex;align-items:center;justify-content:space-between;gap:25px}.chosen-label{font-size:9px;letter-spacing:1.5px;color:#8b937c}.chosen-book h3{font-size:24px;margin:7px 0}.chosen-book p{color:#7e8872;font-size:11px}.chosen-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.status-pill{font-size:10px;padding:6px 9px;border-radius:20px;background:#e2e7d6;color:#6c7d56}.status-pill.reading{background:#d9e4ce;color:#486a39}.status-pill.read{background:#e9decb;color:#956b3f}.choose-empty{color:#89937c;font-size:12px;padding-top:18px}.notice{display:flex;justify-content:space-between;gap:20px;line-height:1.6;padding:13px 17px;border-radius:8px;margin:12px 0;font-size:12px}.error-notice{background:#f5e3db;color:#a14631}.success-notice{background:#e6eddc;color:#526a40}.catalog-tools{display:flex;align-items:center;justify-content:space-between;gap:20px}.status-tabs{display:flex;gap:7px;flex-wrap:wrap}.status-tabs button{border:1px solid #e0e2d5;border-radius:7px;background:#fffefa;padding:11px 13px;font-size:12px}.status-tabs button.active{color:#fff;background:#465f43;border-color:#465f43}.status-tabs button span{font-size:10px;margin-left:6px;opacity:.7}.catalog-search{padding:12px 14px;min-width:260px;font-size:12px}.table-description{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 0 12px;font-size:11px;color:#8b927f}.table-description>span{font-size:10px}.unsaved-notice{background:#f5ecd4;color:#97763c;font-size:12px;padding:11px 14px;margin-bottom:12px;border-radius:7px;line-height:1.6}.table-scroll{overflow:auto;border:1px solid #dfe2d4;border-radius:10px;background:#fffefa;max-height:75vh}.books-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:1480px;font-size:12px}.books-table th,.books-table td{text-align:left;vertical-align:top;border-bottom:1px solid #e7e9df;padding:14px 10px}.books-table thead{position:sticky;top:0;z-index:2}.books-table thead th{background:#edf0e5;font-size:11px;font-weight:600;padding:16px 10px;color:#68755b;vertical-align:middle;border-bottom:1px solid #cfd7c2}.books-table thead th:nth-child(1){width:44px}.books-table thead th:nth-child(2){width:240px}.books-table thead th:nth-child(3){width:58px}.books-table thead th:nth-child(4){width:78px}.books-table thead th:nth-child(5){width:176px}.books-table thead th:nth-child(6),.books-table thead th:nth-child(8){width:95px}.books-table thead th:nth-child(7),.books-table thead th:nth-child(9){width:235px}.books-table thead th:nth-child(10){width:115px}.group-row th{padding:10px 14px;background:#f4f2e8;color:#848d73;font-size:10px;letter-spacing:.8px;font-weight:600;border-bottom:1px solid #e1e4d5}.book-row:hover>td,.book-row:hover>.book-cell{background:#fcfbf6}.book-row.dirty>td,.book-row.dirty>.book-cell{background:#fffaf0}.number-cell{color:#a1a68f;font-size:10px}.book-cell{font-weight:400}.book-name{border:0;background:none;padding:0;text-align:left;font:17px/1.3 Georgia,serif;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;width:100%}.book-name>span{font:16px Arial;color:#8c967a}.book-cell p{font-size:11px;color:#7e8773;margin-top:7px;line-height:1.5}.book-cell small{display:block;font-size:9px;color:#a1a58f;margin-top:4px}.status-select{padding:9px 7px;width:100%;font-size:11px;color:#7c8b68;background:#f6f8f0}.status-select.reading{background:#e9f0df;color:#4b6a3b}.status-select.read{background:#f4ecde;color:#956b3f}.rating-cell select{font-size:11px;padding:9px 6px;width:100%;background:#fffefa}.review-cell textarea{display:block;width:100%;min-height:68px;padding:9px 10px;font-size:11px;line-height:1.6;background:#fffefa;resize:vertical}.review-cell textarea::placeholder{color:#b1b5a4}.save-cell{text-align:center!important}.save-button{padding:10px 8px;font-size:11px;background:#465f43;color:#fffdf6;border:0;border-radius:6px;width:100%}.saved-label{border:0;background:none;font-size:10px;color:#a2a88f;padding:10px 0}.saved-label:disabled{opacity:1}.save-cell small{display:block;font-size:9px;margin-top:6px;line-height:1.5}.book-details td{background:#f4f5eb;padding:16px 24px}.book-details>td>div{max-width:1200px;line-height:1.9;color:#7e8871;font-size:11px}.book-details strong{color:#5e6f50;font-weight:500}.empty-table{padding:45px;text-align:center;color:#909780;font-size:13px;line-height:1.8}.empty-table h3{font-size:26px;color:#6a7e56;margin-bottom:10px}.app-footer{display:flex;align-items:center;justify-content:space-between;padding:25px 0 35px;gap:20px;color:#8c947d;font-size:11px}.app-footer>div{display:flex;gap:25px}.app-footer button{font-size:11px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(min-width:1600px){.books-table thead th:nth-child(7),.books-table thead th:nth-child(9){width:auto}.books-table thead th:nth-child(2){width:280px}}@media(max-width:1000px){.catalog-tools{align-items:stretch;flex-direction:column;gap:12px}.catalog-search{width:100%}.choose-controls{flex-wrap:wrap}.choose-controls label{min-width:180px}.choose-controls .primary{margin-left:0}.chosen-book{align-items:flex-start}.chosen-actions{justify-content:flex-end;max-width:330px}.table-description>span{display:none}}@media(max-width:600px){.app-header{padding:18px 5%}.table-page{padding:0 5%}.wordmark{font-size:22px}.page-heading{padding:27px 0 22px;align-items:flex-start}.page-heading h1{font-size:28px}.page-heading .eyebrow{font-size:8px;letter-spacing:1px}.page-heading>div>p:last-child{font-size:12px;max-width:240px}.book-total{display:none}.choose-panel{padding:20px 17px}.choose-heading{display:block}.choose-heading>p{margin-top:12px}.choose-heading h2{font-size:29px}.choose-controls{gap:12px}.choose-controls label{min-width:0;flex:1 1 calc(50% - 12px)}.choose-controls label:first-child{max-width:none}.choose-controls .primary{width:100%;justify-content:space-between}.choose-controls select{font-size:11px;padding:12px 7px}.choose-foot small{font-size:9px}.choose-foot{align-items:flex-start}.chosen-book{display:block}.chosen-book h3{font-size:25px}.chosen-actions{justify-content:flex-start;margin-top:17px;max-width:none;gap:12px}.status-tabs{gap:6px}.status-tabs button{font-size:10px;padding:10px 8px}.status-tabs button span{font-size:9px;margin-left:3px}.table-description{font-size:10px;padding-top:15px}.books-table{min-width:1460px}.table-scroll{max-height:70vh;margin:0 -2px}.app-footer{align-items:flex-start;flex-direction:column;gap:15px}.app-footer>div{flex-wrap:wrap;gap:20px}.welcome-card h1{font-size:38px}.welcome-description{font-size:14px;max-width:310px}.welcome form{max-width:330px}.sun{margin-bottom:22px}.notice{align-items:flex-start}.unsaved-notice{font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
