#library-view{color:#49383f}
.library-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}
.library-eyebrow{font-size:12px;color:#a77188;display:block;margin-bottom:6px}
.library-heading h2{font-size:26px;line-height:1.6;margin:0;letter-spacing:-.7px}
.library-heading p{font-size:12px;color:#987f89;margin:4px 0 0}
.library-heading .button{min-height:46px;white-space:nowrap;font-size:12px}
.library-heading .button>span{font-size:21px;font-weight:400;line-height:1}
.library-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}
.library-stat{background:#fff;border:1px solid #f0e3e9;border-radius:18px;padding:17px 18px;display:grid;grid-template-columns:1fr auto;gap:2px 9px;box-shadow:0 4px 16px #c77d9b05}
.library-stat>span{grid-column:2;grid-row:1/3;width:37px;height:37px;display:grid;place-items:center;border-radius:12px;background:#fff3f7;font-size:18px;align-self:center}
.library-stat>strong{font-size:26px;font-weight:750;line-height:1.4;font-variant-numeric:tabular-nums}
.library-stat>small{font-size:11px;color:#987f89}
.library-goal-card{background:linear-gradient(115deg,#fff9f2,#fff0f5);border:1px solid #f4dce6;border-radius:19px;padding:20px 22px;margin-bottom:27px;position:relative;overflow:hidden}
.library-goal-card::after{content:'✿';position:absolute;inset-inline-end:145px;top:0;font-size:92px;color:#ecc4d233;line-height:1;pointer-events:none;transform:rotate(12deg)}
.library-goal-top{display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative;z-index:1}
.library-goal-card h3{font-size:15px;margin:0 0 4px}
.library-goal-card p{font-size:12px;color:#987f89;margin:0}
.library-goal-card .button{background:#fffafc;min-height:44px;white-space:nowrap;border-color:#eddae2;color:#9e607a;font-size:11px}
.library-goal-bars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px;position:relative;z-index:1}
.library-goal-line{display:grid;grid-template-columns:1fr auto;align-items:center;font-size:11px;gap:7px}
.library-goal-line>span{color:#94717f}
.library-goal-line>strong{font-weight:550;color:#a96a83}
.library-goal-line>.library-progress{grid-column:1/-1}
.library-progress{height:7px;background:#f7eaf0;border-radius:100px;overflow:hidden}
.library-progress>span{display:block;height:100%;background:linear-gradient(90deg,#e8b5c9,#c77d9b);border-radius:100px;transition:width .5s ease}
.library-separate-note{display:block;margin-top:15px;font-size:11px;color:#a1848f;position:relative;z-index:1}
.library-goal-complete{animation:library-bloom .5s ease}
.library-filter{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:20px}
.library-filter>button{border:1px solid transparent;background:transparent;color:#987f89;min-height:44px;font-size:12px;border-radius:12px;padding:8px 14px;display:flex;align-items:center;gap:9px}
.library-filter>button.selected{background:#fce8ef;border-color:#f3d7e2;color:#9b5975;font-weight:600}
.library-filter>button>span{font-size:10px;background:#fff;border-radius:6px;min-width:21px;padding:0 4px;color:#ae8595}
.library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.library-book{min-width:0;padding:21px;background:#fff;border:1px solid #f0e3e9;border-radius:20px;box-shadow:0 5px 24px #bd799608;transition:box-shadow .2s,transform .2s}
.library-book:hover{box-shadow:0 9px 28px #bd799610}
.library-book-top{display:flex;align-items:flex-start;gap:19px;margin-bottom:20px}
.library-book-info{min-width:0;flex:1;padding-top:2px}
.library-book-info h3{font-size:16px;margin:8px 0 2px;font-weight:650;line-height:1.9;overflow-wrap:anywhere}
.library-book-info>p{font-size:11px;color:#a68e97;margin:0 0 7px;overflow-wrap:anywhere}
.library-status{font-size:10px;padding:3px 9px;border-radius:8px;display:inline-block;background:#fff5ee;color:#b5997b}
.library-status-reading{background:#fce8ef;color:#a6647f}
.library-status-finished{background:#f4ebf9;color:#9c78ab}
.library-book-percent{font-size:23px;display:flex;align-items:baseline;gap:6px;line-height:1.4;color:#b26f8d;font-weight:650;font-variant-numeric:tabular-nums}
.library-book-percent>small{font-size:10px;color:#b395a2;font-weight:400}
.library-cover{width:91px;min-width:91px;height:124px;border-radius:5px 12px 12px 5px;background:linear-gradient(145deg,#f7dce5,#f1c8d8);color:#ad768c;display:flex;align-items:center;flex-direction:column;position:relative;overflow:hidden;padding:12px 10px 9px;box-shadow:-5px 4px 0 #f9f1ed,-7px 5px 0 #e9d9d9,inset 5px 0 0 #b76f8d17;border:1px solid #e9bdcd;flex-shrink:0}
.library-cover::after{content:'';position:absolute;inset:8px;border:1px solid currentColor;opacity:.19;border-radius:3px 8px 8px 3px;pointer-events:none}
.library-cover svg{width:34px;height:34px;opacity:.67;margin:0 0 5px}
.library-cover-flower{position:absolute;left:4px;top:-8px;transform:rotate(20deg);font-size:59px;opacity:.16;line-height:1}
.library-cover-label{font-size:10px;line-height:1.7;text-align:center;font-weight:600;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:100%;position:relative}
.library-cover-lines{display:block;width:20px;border-top:1px solid currentColor;opacity:.37;margin-top:auto}
.library-cover-1{background:linear-gradient(145deg,#fff4dd,#f0e4cd);color:#ac936e;border-color:#e6d9bf}
.library-cover-2{background:linear-gradient(145deg,#f4e9ee,#e5cfdd);color:#a27e96;border-color:#d8bdce}
.library-cover-3{background:linear-gradient(145deg,#fae5da,#f1d5c9);color:#b28a7e;border-color:#e7c7b8}
.library-book-pages{display:flex;justify-content:space-between;gap:8px;color:#ad919d;font-size:10px;margin-top:8px}
.library-book-pages>span:first-child{color:#956e7e}
.library-book-note{font-size:11px;line-height:1.95;color:#a4808f;background:#fff9fc;border:1px solid #faedf3;border-radius:12px;min-height:56px;padding:10px 13px;margin:15px 0;overflow-wrap:anywhere}
.library-no-note{color:#ba9fab;border-color:transparent;background:#fffafc}
.library-book-actions{display:flex;gap:9px}
.library-book-actions>.button{flex:1;min-height:44px;padding:9px 12px;font-size:11px;border-radius:10px;white-space:nowrap}
.library-book-actions>.secondary{background:#fff7fa;border-color:#f2e1e8;color:#a17b8b}
.library-finished .library-cover{transform:rotate(-2deg)}
.library-empty{background:#fff;border:1px dashed #edcddc;border-radius:20px;padding:38px 24px;text-align:center}
.library-empty-art{position:relative;margin:0 auto 18px;background:#fff0f5;width:100px;height:100px;display:grid;place-items:center;border-radius:50%;color:#c77d9b}
.library-empty-art>svg{width:51px;height:51px;transform:rotate(-8deg)}
.library-empty-art>span{position:absolute;bottom:-2px;left:-4px;font-size:24px}
.library-empty h3{font-size:16px;font-weight:600;margin:0}
.library-empty p{font-size:12px;color:#ad909d;max-width:360px;margin:9px auto 17px;line-height:2}
.library-empty .button{min-height:44px;font-size:12px}
.library-history{margin-top:26px;border:1px solid #f0e3e9;border-radius:18px;background:#fff;overflow:hidden}
.library-history>summary{cursor:pointer;padding:18px 21px;display:flex;align-items:center;justify-content:space-between;min-height:60px;list-style:none;font-size:13px;font-weight:600}
.library-history>summary::-webkit-details-marker{display:none}
.library-history>summary::after{content:'⌄';font-size:20px;color:#b48b9b;margin-right:12px;font-weight:400;line-height:1}
.library-history[open]>summary::after{transform:rotate(180deg)}
.library-history>summary>small{margin-right:auto;color:#b099a3;font-size:10px;font-weight:400}
.library-history[open]>summary{border-bottom:1px solid #f7edf1}
.library-history>div{padding:0 21px}
.library-log{display:flex;align-items:center;gap:12px;min-height:74px;border-bottom:1px solid #f7edf1;padding:12px 0}
.library-log:last-child{border-bottom:0}
.library-log>div:first-of-type{min-width:0;flex:1}
.library-log strong{font-size:12px;font-weight:550;display:block;overflow-wrap:anywhere}
.library-log small{font-size:10px;color:#b296a2;display:block;margin-top:2px}
.library-log-icon{width:35px;height:35px;display:grid;place-items:center;background:#fff5ee;border-radius:11px;font-size:17px;flex-shrink:0}
.library-log-values{display:flex;align-items:center;gap:8px;font-size:11px;color:#b17c93;white-space:nowrap}
.library-log-values>span{background:#fff6fa;border-radius:7px;padding:4px 7px}
.library-log-delete{width:44px;min-width:44px;height:44px;border:0;border-radius:10px;color:#c19fae;background:transparent;display:grid;place-items:center;padding:11px}
.library-log-delete:hover{background:#fff0f4;color:#b16d88}
.library-log-delete svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.library-history-empty,.library-history-limit{font-size:12px;text-align:center;color:#b292a0;padding:15px 22px;margin:0}
.library-history-more{text-align:center;padding:4px 18px 18px!important}.library-history-more .button{min-height:44px;font-size:11px}
.library-dialog{max-height:calc(100dvh - 42px);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.library-dialog .dialog-heading h2{font-size:21px}
.library-dialog .icon-button{width:44px!important;height:44px!important;font-size:17px}
.library-dialog .form-grid input,.library-dialog .form-grid textarea,.library-dialog .form-grid select{font-size:16px;min-height:46px;color:#70525e;background:#fffbfd;border-color:#eddae3}
.library-dialog .form-grid>label{font-size:12px;color:#957482}
.library-dialog .form-grid small{font-size:11px;color:#ad8d9b}
.library-dialog .form-grid>label>small{margin-top:-3px}
.library-dialog .button{min-height:44px;font-size:12px}
.library-dialog .form-error{font-size:12px;line-height:1.9}
.library-form-hint{font-size:11px;line-height:1.9;color:#b08c9c;background:#fff7fa;padding:10px 12px;border-radius:9px;margin:0}
.library-entry-book{font-size:15px;color:#aa6e88;background:#fff5f9;border:1px solid #f3e1e9;border-radius:11px;padding:12px 15px;margin:-5px 0 20px;overflow-wrap:anywhere}
.library-check{display:flex;align-items:center;gap:10px;font-size:13px;color:#92717f;min-height:44px;margin-bottom:12px}
.library-check>input{width:21px;height:21px;accent-color:#c77d9b;flex-shrink:0}
.library-presets{display:flex;gap:8px;margin-bottom:20px}
.library-presets>button{background:#fff5f9;color:#a16d84;border:1px solid #f0dbe4;border-radius:10px;min-height:44px;font-size:12px;padding:8px 15px}
.library-presets>button:hover{background:#fce8ef}
@keyframes library-bloom{0%{transform:scale(.985)}60%{transform:scale(1.01)}100%{transform:scale(1)}}
@media(max-width:1120px){.library-grid{gap:15px}.library-book{padding:18px}.library-book-top{gap:15px}.library-book-info h3{font-size:14px}.library-book-actions>.button{padding:9px 8px;font-size:10px}.library-stat{padding:15px 14px}.library-stat>small{font-size:10px}}
@media(max-width:760px){.library-grid{grid-template-columns:1fr}.library-book{padding:22px}.library-book-top{gap:22px}.library-book-info h3{font-size:16px}.library-book-actions>.button{font-size:12px}.library-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.library-stat>small{font-size:11px}.library-goal-bars{gap:12px}.library-goal-card{padding:18px}.library-goal-top{gap:10px}.library-goal-card p{font-size:11px}}
@media(max-width:540px){.library-heading{align-items:center;gap:9px;margin-bottom:21px}.library-heading h2{font-size:22px}.library-eyebrow{font-size:10px}.library-heading p{font-size:11px}.library-heading .button{font-size:11px;padding:8px 10px;gap:4px}.library-heading .button>span{font-size:19px}.library-stat{border-radius:15px;padding:14px 13px}.library-stat>span{width:32px;height:32px;font-size:16px}.library-stat>strong{font-size:25px}.library-stat>small{font-size:10px}.library-stats{gap:10px;margin-bottom:17px}.library-goal-card{border-radius:17px;padding:17px;margin-bottom:21px}.library-goal-card h3{font-size:13px}.library-goal-top{align-items:flex-start;gap:10px}.library-goal-card .button{font-size:10px;padding:9px 10px;min-height:44px}.library-goal-card p{font-size:10px;line-height:1.9}.library-goal-bars{grid-template-columns:1fr;gap:14px}.library-separate-note{font-size:10px;line-height:1.9;margin-top:12px}.library-filter{gap:5px;margin-bottom:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.library-filter>button{justify-content:center;font-size:11px;padding:8px 7px}.library-filter>button>span{font-size:10px;min-width:20px}.library-book{padding:19px;border-radius:18px}.library-book-top{gap:20px;margin-bottom:17px}.library-cover{width:83px;min-width:83px;height:116px}.library-book-info h3{font-size:15px;line-height:1.8;margin-top:7px}.library-book-info>p{font-size:11px}.library-status{font-size:10px}.library-book-percent{font-size:23px}.library-book-note{font-size:11px;min-height:53px;padding:10px 12px;margin:14px 0}.library-book-actions{gap:8px}.library-book-actions>.button{font-size:11px;padding:9px 7px;min-height:46px}.library-book-pages{font-size:10px;gap:5px}.library-history{margin-top:21px}.library-history>summary{padding:16px 17px;min-height:58px;font-size:12px}.library-history>div{padding:0 14px}.library-log{gap:8px;flex-wrap:wrap;padding:13px 0;position:relative}.library-log-icon{width:29px;height:29px;border-radius:9px;font-size:15px}.library-log>div:first-of-type{flex:1;padding-inline-end:44px}.library-log strong{font-size:11px}.library-log small{font-size:10px}.library-log-values{margin-inline-start:37px;gap:6px;font-size:10px}.library-log-values>span{padding:3px 6px}.library-log-delete{position:absolute;inset-inline-end:0;top:10px}.library-empty{padding:32px 20px}.library-empty p{font-size:11px}.library-dialog{padding:22px 20px;max-height:calc(100dvh - 30px);border-radius:19px}.library-dialog .dialog-heading{margin-bottom:20px}.library-dialog .dialog-heading h2{font-size:18px}.library-dialog .form-grid{gap:14px 12px}.library-dialog .form-grid>label{font-size:12px}.library-dialog .form-grid small{font-size:10px}.library-dialog .form-grid input,.library-dialog .form-grid textarea,.library-dialog .form-grid select{font-size:16px}.library-form-hint{font-size:11px}.library-check{font-size:12px}.library-presets>button{flex:1;padding:8px 9px}.library-history-limit{font-size:11px}}
@media(prefers-reduced-motion:reduce){.library-goal-complete{animation:none}.library-progress>span{transition:none}.library-book{transition:none}}
