:root{--red:#b8323c;--red-dark:#952731;--tint:#f9ecec;--bg:#f6f6f7;--surface:#fff;--text:#28292d;--muted:#85858c;--line:#e9e9ed;--green:#5d8473;--shadow:0 8px 30px #25252a08;color-scheme:light}*{box-sizing:border-box}body{margin:0;font:14px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--text);background:var(--bg)}body[data-theme=dark]{--red:#e66f78;--red-dark:#f38f97;--tint:#3b252a;--bg:#191a1e;--surface:#24252a;--text:#f2f1f3;--muted:#a5a5af;--line:#36373e;--green:#8ebaa5;color-scheme:dark}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid var(--red);outline-offset:3px}button{color:inherit}h1,h2,h3,p{margin-top:0}h1{font-size:34px;letter-spacing:-1.3px;line-height:1.2;margin-bottom:10px}h2{font-size:19px;letter-spacing:-.4px;margin-bottom:4px}h3{font-size:15px;line-height:1.4;margin-bottom:5px}.sidebar{position:fixed;width:244px;inset:0 auto 0 0;background:var(--surface);border-right:1px solid var(--line);padding:34px 22px 20px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:12px;align-items:center;font-size:19px;font-weight:750;letter-spacing:-.7px;margin-bottom:46px}.brand-icon{display:grid;place-items:center;width:39px;height:43px;background:var(--red);color:white;border-radius:10px;font-size:29px}.brand small{display:block;font-size:8px;letter-spacing:1.7px;font-weight:600;color:var(--muted);margin-top:3px}.nav-caption{font-size:9px;letter-spacing:1.6px;font-weight:750;color:var(--muted);margin-bottom:12px;padding-left:12px}.sidebar nav a,.side-list{display:flex;align-items:center;gap:12px;padding:12px;border-radius:8px;margin-bottom:5px;color:var(--muted);font-weight:550}.sidebar nav a span{width:21px;font-size:22px;line-height:1}.sidebar nav a.active{color:var(--red);background:var(--tint)}.sidebar nav b{margin-left:auto;font-size:10px;background:var(--red);color:#fff;min-width:21px;text-align:center;border-radius:5px;padding:1px 5px}.list-caption{margin-top:33px;display:flex;justify-content:space-between;align-items:center}.list-caption button{background:none;border:0;font-size:21px;color:var(--muted)}.side-list{font-weight:400;padding:7px 12px;font-size:12px}.side-list i{width:7px;height:7px;background:var(--red);border-radius:2px;opacity:.6}.side-list b{margin-left:auto;font-size:10px;font-weight:400}.sidebar-bottom{margin-top:auto;padding-top:30px}.sidebar-bottom p{font-size:14px;font-weight:650;line-height:1.8;padding:0 12px 25px}.sidebar-bottom p span{font-size:11px;color:var(--muted);font-weight:400}.sidebar-bottom>button{width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--line);padding:18px 12px 0;color:var(--muted);font-size:12px}.app{margin-left:244px}.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;background:var(--surface)}.breadcrumbs{font-size:11px;color:var(--muted)}.breadcrumbs span{padding:0 12px;color:#ccc}.breadcrumbs strong{font-weight:500;color:var(--text)}.top-actions{display:flex;align-items:center;gap:16px}.top-actions button{border:0;background:none;font-size:20px;color:var(--muted)}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:10px;color:var(--red);background:var(--tint);font-weight:700}main{max-width:1320px;margin:auto;padding:38px 42px 50px;min-height:calc(100vh - 140px)}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--red);font-weight:750;margin-bottom:10px}.subtitle{color:var(--muted);font-size:12px;margin-bottom:0}.heading-actions{display:flex;gap:10px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:7px;padding:11px 15px;background:var(--surface);font-size:12px;font-weight:600;white-space:nowrap;min-height:40px}.button.primary{background:var(--red);border-color:var(--red);color:#fff}.button.primary:hover{background:var(--red-dark)}.button.secondary{background:transparent}.button.danger{color:var(--red)}.button.small{padding:7px 11px;min-height:32px;font-size:11px}.section-head{display:flex;justify-content:space-between;align-items:center;margin:28px 0 17px;gap:10px}.section-head small{color:var(--muted);font-size:11px}.text-link{background:none;border:0;color:var(--red);font-size:11px;padding:5px}.hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,1fr);gap:22px}.reading-feature{position:relative;overflow:hidden;background:#303239;color:#fff;border-radius:12px;padding:27px;min-height:218px;display:flex;gap:23px;align-items:center}.reading-feature:after{content:'';position:absolute;width:260px;height:260px;border:1px solid #ffffff08;border-radius:50%;right:-100px;top:-130px;box-shadow:0 0 0 34px #ffffff03,0 0 0 68px #ffffff02;pointer-events:none}.reading-feature .eyebrow{color:#e9b4b8}.reading-feature h2{font-size:23px;line-height:1.3;margin:6px 0}.reading-feature .muted{color:#b9bac0}.reading-feature .cover{width:90px;height:138px;box-shadow:0 10px 20px #0004;flex-shrink:0}.reading-feature .button{margin-top:14px}.reading-feature>div{position:relative;z-index:1}.goal-card,.panel,.stat-tile{background:var(--surface);border:1px solid var(--line);border-radius:12px}.goal-card{padding:22px 24px;display:flex;flex-direction:column}.card-kicker{font-size:9px;font-weight:700;letter-spacing:1.5px;color:var(--muted)}.goal-content{display:flex;align-items:center;gap:22px;margin:17px 0 8px}.goal-ring{width:91px;height:91px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:conic-gradient(var(--red) var(--progress,0%),var(--line) 0);position:relative}.goal-ring:before{content:'';position:absolute;inset:6px;border-radius:50%;background:var(--surface)}.goal-ring strong{position:relative;font-size:25px;letter-spacing:-1px}.goal-ring strong small{font-size:12px;color:var(--muted);font-weight:400}.goal-caption{font-size:11px;color:var(--muted)}.goal-content p{margin:4px 0;font-size:12px}.goal-card .text-link{margin-top:auto;text-align:left;padding-left:0}.quick-lists{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.list-tile{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:17px;display:flex;align-items:center;text-align:left;gap:12px}.list-icon{width:36px;height:39px;border-radius:8px;background:var(--tint);color:var(--red);display:grid;place-items:center;font-size:20px}.list-tile:nth-child(2) .list-icon{background:#eaf0ec;color:#62816a}.list-tile:nth-child(3) .list-icon{background:#f6efdf;color:#ae8a3f}.list-tile:nth-child(4) .list-icon{background:#eeebf4;color:#8c79a5}.list-tile strong{display:block;font-size:12px;font-weight:600}.list-tile small{color:var(--muted);font-size:10px}.list-tile .chevron{margin-left:auto;color:var(--muted)}.shelf{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:21px}.book-card{min-width:0;position:relative}.book-open{display:block;width:100%;background:none;border:0;padding:0;text-align:left}.cover-wrap{height:180px;background:color-mix(in srgb,var(--line) 45%,var(--surface));border-radius:8px;display:flex;align-items:center;justify-content:center;padding:14px;position:relative;overflow:hidden;margin-bottom:12px}.cover{height:100%;max-width:100%;object-fit:contain;border-radius:2px;box-shadow:3px 5px 10px #0002}.cover-placeholder{background:linear-gradient(135deg,#7e8792,#424752);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:14px;font-family:Georgia,serif;font-size:15px;line-height:1.3;overflow:hidden;text-align:center;min-width:75px;width:100%;height:100%}.cover-placeholder small{font:9px sans-serif;opacity:.7;margin-top:12px}.book-card h3{font-size:12px;margin-bottom:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-author{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rating{color:#bc944b;font-size:11px;letter-spacing:1px;margin:5px 0}.status-dot{font-size:9px;color:var(--muted);display:flex;align-items:center;gap:5px;margin-top:7px}.status-dot:before{content:'';width:5px;height:5px;background:var(--green);border-radius:50%}.favorite-badge{position:absolute;right:8px;top:8px;background:var(--surface);color:var(--red);border-radius:50%;height:24px;width:24px;display:grid;place-items:center;font-size:12px}.dashboard-bottom{display:grid;grid-template-columns:1.3fr 1fr;gap:22px;margin-top:32px}.panel{padding:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.panel-head h2{font-size:16px}.activity-row{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0}.activity-row:last-child{border-bottom:0}.activity-dot{background:var(--tint);color:var(--red);width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.activity-row strong{display:block;font-size:11px}.activity-row p{color:var(--muted);font-size:10px;margin:3px 0 0}.activity-row time{font-size:9px;color:var(--muted);margin-left:auto;white-space:nowrap}.mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:18px}.mini-stats strong{font-size:26px;font-weight:650;letter-spacing:-1px;display:block}.mini-stats span{font-size:10px;color:var(--muted)}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px}.search{position:relative;flex:1}.search span{position:absolute;left:13px;top:8px;color:var(--muted);font-size:19px}.search input{padding-left:37px}.toolbar input,.toolbar select{height:42px}.view-buttons{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}.view-buttons button{border:0;background:var(--surface);padding:9px 12px;font-size:18px;color:var(--muted)}.view-buttons button.active{background:var(--tint);color:var(--red)}.filters{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:22px}.chip{border:1px solid var(--line);border-radius:6px;background:var(--surface);padding:7px 11px;font-size:11px;color:var(--muted)}.chip.active{border-color:var(--red);background:var(--tint);color:var(--red)}.book-list{display:grid;gap:10px}.book-list .book-open{display:grid;grid-template-columns:60px 1fr;gap:18px;align-items:center;background:var(--surface);border:1px solid var(--line);padding:14px;border-radius:9px}.book-list .cover-wrap{height:85px;padding:0;background:none;margin:0;grid-row:1/6}.book-list h3{font-size:15px}.book-list .book-author{font-size:12px}.book-list .rating{margin:1px 0}.book-list .book-card .favorite-badge{right:20px;top:18px}.empty{padding:42px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px;background:var(--surface)}.empty strong{display:block;color:var(--text);font-size:16px;margin-bottom:8px}.empty .button{margin-top:12px}.muted{color:var(--muted)}.tiny{font-size:11px}.app-footer{border-top:1px solid var(--line);padding:18px 42px;font-size:8px;letter-spacing:1.5px;color:var(--muted);display:flex;justify-content:space-between}.app-footer span{letter-spacing:0;font-size:10px}.mobile-nav{display:none}input,textarea,select{border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);padding:10px 12px;width:100%;min-width:0}input:focus,textarea:focus,select:focus{outline:2px solid color-mix(in srgb,var(--red) 35%,transparent);outline-offset:1px}textarea{resize:vertical;min-height:100px}input[type=checkbox]{width:auto;accent-color:var(--red)}label{font-size:11px;color:var(--muted);display:block;margin-bottom:6px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid .wide{grid-column:1/-1}.form-grid .field{margin-bottom:0}.field{margin-bottom:17px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px;flex-wrap:wrap}.backdrop{position:fixed;inset:0;background:#15151b88;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:100}.dialog{width:100%;max-width:660px;max-height:90dvh;overflow:auto;background:var(--surface);border-radius:15px;padding:28px;box-shadow:0 30px 90px #0004;position:relative}.dialog h2{font-size:23px;margin-bottom:22px}.dialog-close{position:absolute;right:18px;top:17px;border:0;background:var(--bg);border-radius:50%;width:29px;height:29px;font-size:21px;color:var(--muted);z-index:2}.dialog.login{max-width:390px;text-align:center;padding:38px}.login .brand-icon{margin:0 auto 22px;width:48px;height:53px}.login h2{margin-bottom:8px}.login .button{width:100%}.login label{display:flex;gap:8px;justify-content:center;margin:16px 0}.error{color:var(--red);font-size:12px;min-height:18px;margin-top:10px}.detail-head{display:flex;gap:24px;padding-right:15px;margin-bottom:23px}.detail-head>.cover,.detail-head>.cover-placeholder{width:105px;height:156px;flex-shrink:0}.detail-head h2{margin:8px 0;font-size:24px}.detail-head .book-author{font-size:13px;white-space:normal}.detail-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:11px;margin-top:12px}.detail-tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin:0 0 22px}.detail-tabs button{background:none;border:0;padding:12px 0;color:var(--muted);font-size:12px;border-bottom:2px solid transparent}.detail-tabs button.active{color:var(--red);border-bottom-color:var(--red)}.stars{display:flex;gap:5px;align-items:center}.stars button{border:0;background:none;padding:3px;color:#c3c3ca;font-size:28px;min-width:35px}.stars button.selected{color:#bc944b}.stars .clear-rating{font-size:10px;color:var(--muted);width:auto;margin-left:8px}.progress-bar{height:5px;background:var(--line);border-radius:9px;overflow:hidden;margin:10px 0}.progress-bar i{height:100%;background:var(--red);display:block;border-radius:9px}.detail-row{display:flex;gap:9px;align-items:center}.detail-row input{max-width:120px}.description{line-height:1.8;font-size:13px;white-space:pre-line}.note-item{border-bottom:1px solid var(--line);padding:15px 0}.note-item p{font-size:12px;white-space:pre-wrap;margin:7px 0 0}.note-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.journal-list{display:grid;gap:14px}.journal-entry{display:flex;gap:20px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:20px}.journal-date{min-width:45px;text-align:center;color:var(--red)}.journal-date strong{display:block;font-size:26px;line-height:1}.journal-date span{font-size:9px;text-transform:uppercase;letter-spacing:1px}.journal-entry p{white-space:pre-wrap;font-size:12px;color:var(--muted);margin:7px 0}.journal-entry h3{margin:0}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:25px}.stat-tile{padding:22px}.stat-tile strong{display:block;font-size:32px;letter-spacing:-1px;margin-top:10px}.stat-tile span{font-size:11px;color:var(--muted)}.chart{display:flex;align-items:flex-end;gap:12px;height:185px;padding-top:20px;margin:16px 0 8px}.bar-column{flex:1;height:100%;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;gap:6px}.bar-column i{width:70%;max-width:30px;min-height:2px;background:var(--red);border-radius:4px 4px 0 0}.bar-column small{color:var(--muted);font-size:9px}.bar-column b{font-size:10px;color:var(--muted)}.inline-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px}.inline-title select{width:100px}.list-manage{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.list-manage span{flex:1}.inline-input{display:flex;gap:9px}.tag-checkboxes{display:flex;gap:10px;flex-wrap:wrap}.tag-checkboxes label{display:flex;align-items:center;gap:5px;background:var(--bg);border-radius:5px;padding:6px 9px;margin:0}#toast{position:fixed;bottom:28px;left:calc(50% + 122px);transform:translateX(-50%);background:var(--text);color:var(--surface);border-radius:8px;padding:12px 20px;font-size:12px;z-index:200;max-width:90%;display:none}#toast.show{display:block}#scannerVideo{width:100%;min-height:200px;background:#15151b;position:relative;overflow:hidden}#scannerVideo video{width:100%}#scannerVideo canvas{position:absolute;inset:0;width:100%}.settings-section{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.cover-error{display:none}.page-tools{display:flex;gap:10px;margin-bottom:20px}.section-lead{color:var(--muted);font-size:11px;margin:5px 0 0}.stat-note{font-size:11px;color:var(--muted);margin-top:15px;line-height:1.8}.goal-mini-title{font-size:17px;font-weight:650}.shelf .button{width:100%}@media(min-width:1600px){.cover-wrap{height:215px}}@media(max-width:1250px){.sidebar{width:215px;padding:30px 16px}.app{margin-left:215px}.brand{font-size:17px}.topbar{padding:0 28px}main{padding:30px 28px}.shelf{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.shelf .book-card:nth-child(n+5){display:none}.library-shelf .book-card:nth-child(n+5){display:block}.quick-lists{gap:10px}.list-tile{padding:13px;gap:8px}.list-icon{width:27px}.list-tile strong{font-size:11px}.hero{grid-template-columns:1.3fr 1fr}.reading-feature{padding:22px;gap:16px}.reading-feature h2{font-size:20px}#toast{left:calc(50% + 107px)}}@media(max-width:960px){.sidebar{width:190px;padding:28px 12px}.app{margin-left:190px}.brand{font-size:15px;gap:8px}.brand small{font-size:7px;letter-spacing:1px}.brand-icon{width:32px;height:36px;font-size:23px}.sidebar nav a{font-size:12px}.hero{grid-template-columns:1fr}.goal-card{display:none}.goal-card.full{display:flex}.quick-lists{grid-template-columns:repeat(2,1fr)}.page-heading{align-items:flex-start}h1{font-size:29px}.heading-actions{flex-direction:column}.dashboard-bottom{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}#toast{left:calc(50% + 95px)}}@media(max-width:700px){.sidebar{display:none}.app{margin:0}.topbar{height:56px;padding:0 20px}.breadcrumbs{font-size:10px}.top-actions{gap:12px}.avatar{width:27px;height:27px;font-size:8px}.top-actions button{font-size:19px}main{padding:26px 20px 90px;min-height:calc(100vh - 56px)}.page-heading{margin-bottom:23px;gap:10px}.eyebrow{font-size:8px;letter-spacing:1.4px;margin-bottom:8px}h1{font-size:28px;letter-spacing:-1px}.subtitle{font-size:11px;max-width:230px}.heading-actions{gap:8px}.heading-actions .button{padding:8px 10px;min-height:36px;font-size:10px}.heading-actions .secondary{border:0;padding:2px;color:var(--muted)}.hero{gap:15px}.reading-feature{min-height:200px;padding:23px 20px}.reading-feature .cover{width:81px;height:124px}.reading-feature h2{font-size:20px}.goal-card{display:flex;padding:18px;min-height:100px}.goal-content{margin:8px 0;gap:18px}.goal-ring{width:64px;height:64px}.goal-ring strong{font-size:20px}.goal-card .text-link{position:absolute;right:18px;bottom:20px}.goal-card{position:relative}.goal-card .card-kicker{font-size:8px}.quick-lists{gap:9px}.list-tile{padding:13px;gap:9px}.list-tile strong{font-size:11px}.list-tile small{font-size:9px}.section-head{margin:25px 0 14px}h2{font-size:17px}.shelf{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 12px}.shelf .book-card:nth-child(n+4){display:none}.library-shelf .book-card:nth-child(n+4){display:block}.cover-wrap{height:151px;padding:10px;margin-bottom:9px}.book-card h3{font-size:11px}.book-author{font-size:9px}.status-dot{font-size:8px}.rating{font-size:10px}.dashboard-bottom{gap:15px;margin-top:26px}.panel{padding:19px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-around;background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:8px 6px calc(8px + env(safe-area-inset-bottom));z-index:50}.mobile-nav a{font-size:9px;text-align:center;min-width:49px;color:var(--muted);padding:2px 6px}.mobile-nav a span{display:block;font-size:22px;height:28px;line-height:1.2}.mobile-nav a.active{color:var(--red)}.mobile-nav button{background:var(--red);color:#fff;border:0;width:44px;height:44px;border-radius:13px;font-size:28px;box-shadow:0 4px 10px #b8323c30}.app-footer{display:none}.toolbar{flex-wrap:wrap;gap:8px}.toolbar .search{flex-basis:100%}.toolbar select{flex:1;width:auto;font-size:11px}.filters{flex-wrap:nowrap;overflow:auto;padding-bottom:7px;margin-bottom:15px}.chip{white-space:nowrap;font-size:10px}.backdrop{padding:0;align-items:flex-end}.dialog{max-height:94dvh;border-radius:18px 18px 0 0;padding:27px 21px max(25px,env(safe-area-inset-bottom));width:100%}.dialog.login{max-width:none;border-radius:18px 18px 0 0;padding:35px 30px}.dialog h2{font-size:21px}.form-grid{gap:12px}.detail-head{gap:19px}.detail-head>.cover,.detail-head>.cover-placeholder{width:88px;height:135px}.detail-head h2{font-size:22px}.detail-head .book-author{font-size:12px}.detail-tabs{gap:22px}.detail-tabs button{font-size:11px}.detail-row{flex-wrap:wrap}.stat-grid{gap:10px}.stat-tile{padding:16px}.stat-tile strong{font-size:28px}.chart{gap:5px;height:160px}.bar-column small{font-size:8px}.journal-entry{gap:14px;padding:16px}.journal-entry h3{font-size:13px}#toast{left:50%;bottom:86px;width:max-content;max-width:90vw}.topbar .breadcrumbs span{padding:0 6px}.page-tools{flex-wrap:wrap}.section-head .text-link{white-space:nowrap}.note-meta{gap:10px}.book-list .book-open{grid-template-columns:52px 1fr;gap:13px}.book-list .cover-wrap{height:76px}.book-list h3{font-size:13px}.book-list .book-author{font-size:11px}}
