.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:14px;font-weight:600;border:none;transition:background .15s,opacity .15s,transform .1s;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:active{transform:scale(.97)}.btn--primary{background:var(--primary);color:var(--bg)}.btn--primary:hover:not(:disabled){background:var(--primary-hover)}.btn--ghost{background:var(--bg-02);color:var(--text-primary);border:1px solid var(--border-glass)}.btn--ghost:hover:not(:disabled){background:var(--bg-03)}.btn--danger{background:#ffb4ab1a;color:var(--error);border:1px solid rgba(255,180,171,.2)}.btn--danger:hover:not(:disabled){background:#ffb4ab26}.btn--sm{padding:var(--space-1) var(--space-3);font-size:12px}.btn--lg{padding:var(--space-3) var(--space-5);font-size:16px;width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--loading{opacity:.7;cursor:wait}.form-group{display:flex;flex-direction:column;gap:var(--space-1)}.form-label{font-size:13px;font-weight:500;color:var(--text-muted)}.form-input{background:var(--bg-02);border:1px solid var(--border-glass);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--text-primary);font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s;width:100%}.form-input::placeholder{color:var(--text-faint)}.form-input:focus{border-color:rgba(var(--primary-rgb),.4);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1)}.form-input--error{border-color:#ffb4ab66}.form-error{font-size:12px;color:var(--error);margin-top:2px}.card{background:var(--surface-container);border:1px solid var(--border-glass);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-card)}.card--hover:hover{border-color:rgba(var(--primary-rgb),.2);box-shadow:0 0 0 1px rgba(var(--primary-rgb),.1),var(--shadow-card)}.progress-bar{height:6px;background:var(--bg-03);border-radius:var(--radius-full);overflow:hidden}.progress-bar__fill{height:100%;background:var(--primary);border-radius:var(--radius-full);transition:width .3s ease}.star-rating{display:flex;gap:2px}.star-rating__star{font-size:18px;cursor:pointer;transition:color .1s,transform .1s;-webkit-user-select:none;user-select:none}.star-rating__star--filled{color:var(--star)}.star-rating__star--empty{color:var(--text-faint)}.star-rating__star:hover{transform:scale(1.2)}.badge{display:inline-flex;align-items:center;padding:2px var(--space-2);border-radius:var(--radius-full);font-size:11px;font-weight:600;letter-spacing:.03em}.badge--reading{background:rgba(var(--primary-rgb),.12);color:var(--primary)}.badge--read{background:#6ee7b71f;color:var(--success)}.badge--want{background:#60a5fa1f;color:var(--info)}@keyframes skeleton-pulse{0%,to{opacity:.6}50%{opacity:.3}}.skeleton{background:var(--bg-03);border-radius:var(--radius-md);animation:skeleton-pulse 1.5s ease-in-out infinite}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:14px}.alert--error{background:#ffb4ab1a;color:var(--error);border:1px solid rgba(255,180,171,.2)}.alert--success{background:#6ee7b71a;color:var(--success);border:1px solid rgba(110,231,183,.2)}.book-profile-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:100dvh}.bp-spinner-text{font-size:14px;color:var(--text-muted);letter-spacing:.02em}.bp-spinner{font-size:48px;color:var(--primary);animation:bp-spin 1s linear infinite;display:block}@keyframes bp-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.book-profile-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:100dvh;padding:24px}.bp-empty-icon{font-size:48px;color:var(--text-muted);opacity:.5}.bp-empty-text{font-size:15px;color:var(--text-muted)}.bp-reload-btn{display:flex;align-items:center;gap:6px;margin-top:4px}.bp-back-btn{display:flex;align-items:center;gap:4px;font-size:13px;margin-top:8px}.book-profile-page{display:grid;gap:14px}.book-profile-back-wrap{margin-bottom:4px;display:flex;align-items:center;justify-content:space-between}.book-profile-back-btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-size:12px;font-weight:600;color:var(--text-primary);background:#ffffff0a;border:1px solid var(--border-glass);border-radius:999px;padding:6px 12px 6px 8px;transition:background .15s,border-color .15s,transform .12s}.book-profile-back-btn:hover{background:rgba(var(--primary-rgb),.12);border-color:rgba(var(--primary-rgb),.32)}.book-profile-back-btn:active{transform:translateY(1px)}.book-profile-back-btn__icon{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:16px;color:var(--primary);background:rgba(var(--primary-rgb),.16);border:1px solid rgba(var(--primary-rgb),.24)}.book-profile-layout{display:grid;gap:14px}.book-profile-hero{display:flex;flex-direction:column;gap:0;padding:0!important;border:none!important;background:transparent!important;box-shadow:none!important;overflow:visible}.hero-cover-col,.hero-main-col,.hero-rating-col{min-width:0}.hero-cover-col{order:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:32px 16px 16px;background:radial-gradient(ellipse 60% 72% at 50% 42%,rgba(78,115,207,.2) 0%,transparent 68%);border-radius:16px 16px 0 0}.hero-main-col{order:1;height:auto;min-height:0;max-height:none;padding:12px 20px 0;display:flex;flex-direction:column;align-items:center}.hero-rating-col{order:2;min-width:0;margin:16px 16px 0;padding:14px 16px 12px;background:#1e1f25b3;border:1px solid rgba(255,255,255,.09);border-bottom:none;border-radius:12px 12px 0 0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.book-profile-hero-progress{order:3}.hero-meta-col{order:4}.book-profile-hero-description-mobile{order:5}.book-profile-cover{width:var(--book-cover-w);max-width:100%;aspect-ratio:2 / 3;border-radius:8px;position:relative;background:#111;border:1px solid var(--border-glass)}.book-profile-cover-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;border-radius:8px}.book-meta-panel{margin-top:6px;border:1px solid var(--border-glass);border-radius:8px;background:var(--bg-02);padding:10px 12px;display:grid;gap:8px}.meta-row{display:flex;justify-content:space-between;gap:10px}.meta-label{font-size:12px;line-height:16px;color:var(--text-muted)}.meta-value{font-size:13px;line-height:18px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:11px;line-height:14px;font-weight:700;text-transform:capitalize}.status-read{background:#6ee7b729;color:#6ee7b7}.status-reading{background:rgba(var(--primary-rgb),.16);color:var(--primary)}.status-want{background:#fbbf2429;color:#fbbf24}.book-profile-main{display:grid;gap:14px}.book-profile-head-main{min-width:0;height:100%;display:flex;flex-direction:column;overflow:visible}.book-profile-edit-mode-col{width:100%;height:100%;min-width:0;display:flex;flex-direction:column;gap:12px}.book-profile-edit-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}.book-profile-edit-actions .btn-secondary,.book-profile-edit-actions .btn-primary{min-height:36px;padding:8px 14px;font-size:12px;line-height:1}.book-profile-danger-btn{color:#ffb4ab;background:#ffb4ab14;border-color:#ffb4ab47}.book-profile-danger-btn:hover:not(:disabled){color:#ffd6d1;background:#ffb4ab24;border-color:#ffb4ab6b}.book-profile-danger-btn--solid{background:#ffb4ab29;border-color:#ffb4ab73}.book-profile-edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.book-profile-edit-row-three{display:flex;gap:8px;grid-column:1 / -1}.book-profile-edit-row-three .btn-secondary{background:#0003!important;border-color:rgba(var(--primary-rgb),.12)!important;color:var(--text-primary)!important}.book-profile-edit-row-three .btn-secondary:hover{background:#00000040!important;border-color:rgba(var(--primary-rgb),.25)!important}.book-profile-genre-wrap .btn-secondary{background:#0003!important;border-color:rgba(var(--primary-rgb),.12)!important;color:var(--text-primary)!important}.book-profile-genre-wrap .btn-secondary:hover{background:#00000040!important;border-color:rgba(var(--primary-rgb),.25)!important}.book-profile-input-compact{min-height:42px}.book-profile-date-input{background:#0003;border:1px solid rgba(var(--primary-rgb),.2);border-radius:6px;padding:4px 8px;font-size:13px;font-weight:600;color:#e8e4f5;font-family:Inter,sans-serif;outline:none;color-scheme:dark;width:148px;transition:border-color .15s,box-shadow .15s}.book-profile-date-input:focus{border-color:rgba(var(--primary-rgb),.45);box-shadow:0 0 0 2px rgba(var(--primary-rgb),.14)}.book-profile-dates-section{display:flex;flex-direction:column;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid rgba(var(--primary-rgb),.08)}.book-profile-date-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(var(--primary-rgb),.07);font-size:13px}.book-profile-date-row:last-child{border-bottom:none}.book-profile-date-row>span{color:#e8e4f573;font-weight:400}.book-profile-edit-description-wrap{flex:1;min-height:120px}.book-profile-edit-description-input{min-height:100%;resize:none}.book-profile-title{font-size:clamp(22px,2.2vw,30px);line-height:1.2;font-weight:700;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.book-profile-author{margin-top:8px;font-size:15px;line-height:22px;color:var(--text-secondary);white-space:normal;overflow-wrap:anywhere;word-break:break-word}.book-profile-author-extra{margin-top:2px;font-size:12.5px;line-height:18px;color:var(--text-faint);white-space:normal;overflow-wrap:anywhere;word-break:break-word}.genres-row{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.book-profile-series{margin-top:6px;height:28px;padding:0 10px;border-radius:999px;border:1px solid rgba(251,191,36,.25);background:#fbbf241a;color:#fbbf24;font-size:12px;line-height:16px;font-weight:500;display:inline-flex;align-items:center;white-space:nowrap}.genre-chip{max-width:220px;height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--border-glass);background:#ffffff0a;font-size:12px;line-height:16px;display:inline-flex;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-profile-hero-description{margin-top:10px;border:1px solid var(--border-glass);border-radius:8px;padding:8px 10px;background:var(--bg-02);flex:1;display:flex;flex-direction:column;justify-content:flex-start;min-height:120px;overflow:hidden}.book-profile-hero-description-label{display:block;font-size:11px;line-height:14px;color:var(--text-faint);margin-bottom:4px}.book-profile-hero-description p{margin:0;font-size:12px;line-height:17px;color:var(--text-secondary);white-space:pre-wrap;overflow:auto}.book-profile-hero-description-mobile{display:none}.book-profile-progress-wrap{margin-top:0}.book-profile-progress-track{height:6px}.book-profile-progress-label{margin-top:6px;font-size:12px;color:var(--text-secondary)}.book-profile-kpi-strip{margin-top:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.book-profile-hero-progress{grid-area:progress}.book-profile-rating-card{border:1px solid var(--border-glass);border-radius:8px;background:var(--bg-02);padding:8px 10px;display:grid;gap:6px;width:330px;max-width:100%;flex-shrink:0}.book-profile-rating-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.book-profile-rating-title{margin:0;font-size:14px;line-height:18px;font-weight:700}.book-profile-dnf-btn{display:inline-flex;align-items:center;gap:5px;font-size:12px;opacity:.72;margin-top:10px;align-self:center;padding:5px 12px;transition:opacity .15s}.book-profile-dnf-btn:hover{opacity:1}@keyframes dnf-confirm-flash{0%{transform:scale(1);background:transparent}25%{transform:scale(.91);background:#fb923c38;border-color:#fb923c99;color:#fb923c}65%{transform:scale(1.03);background:#fb923c1a}to{transform:scale(1);background:transparent}}.dnf-confirm{animation:dnf-confirm-flash .38s cubic-bezier(.34,1.56,.64,1) both;pointer-events:none}@keyframes resume-reading-in{0%{opacity:0;transform:scale(.88) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}.btn-resume-reading{animation:resume-reading-in .32s cubic-bezier(.34,1.56,.64,1) both}.book-profile-rating-stars{display:inline-flex;gap:2px}.book-profile-rating-star-btn{width:30px;height:30px;border:0;background:transparent;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center}.book-profile-rating-star-btn:focus-visible{outline:2px solid rgba(var(--primary-rgb),.65);outline-offset:2px;border-radius:3px}.book-profile-rating-star-icon{font-size:28px;color:var(--star);line-height:1}.book-profile-rating-star-icon.is-filled{font-variation-settings:"FILL" 1,"wght" 500,"GRAD" 0,"opsz" 24}.book-profile-rating-star-icon.is-empty{color:rgba(var(--primary-rgb),.38);font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 24}.book-profile-rating-half.active+.book-profile-rating-half.right,.book-profile-rating-half.active.left{box-shadow:none}.book-profile-rating-value{font-size:13px;line-height:18px;font-weight:600;color:var(--text-primary)}.book-profile-rating-help{margin:0;font-size:11px;line-height:12px;color:var(--text-muted);min-height:12px}.book-profile-rating-card[data-disabled=true]{opacity:.7}.book-profile-rating-card[data-disabled=true] .book-profile-rating-star-btn{cursor:not-allowed}.book-profile-kpi-cell{border:1px solid var(--border-glass);border-radius:8px;padding:8px 10px;background:var(--bg-02);display:grid;gap:3px}.book-profile-kpi-cell span{font-size:11px;color:var(--text-faint)}.book-profile-kpi-label{display:inline-flex;align-items:center;gap:6px}.book-profile-kpi-icon{font-size:14px;color:rgba(var(--primary-rgb),.9)}.book-profile-kpi-cell strong{font-size:13px;color:var(--text-primary)}.book-profile-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:2px}.book-profile-tabs::-webkit-scrollbar{display:none;width:0;height:0}.book-profile-tab{white-space:nowrap;text-transform:none!important;letter-spacing:0!important}.book-profile-tab-label-mobile{display:none}.book-profile-tab.active{opacity:1}.book-profile-panel{display:grid;gap:10px}.book-profile-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.book-profile-panel-title{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:800;letter-spacing:-.01em;color:var(--text-primary)}.book-profile-panel-title .material-symbols-outlined{font-size:18px;color:var(--primary);flex-shrink:0}.book-profile-table-wrap{overflow-x:auto}.book-profile-table{width:100%;border-collapse:collapse;font-size:13px}.book-profile-table th,.book-profile-table td{padding:8px 6px;border-bottom:1px solid var(--border-glass)}.book-profile-table th{text-align:left;color:var(--text-faint);font-size:12px;font-weight:600}.book-profile-table .num{text-align:right}.book-profile-notes{width:100%;min-height:160px;resize:vertical;border-radius:8px;border:1px solid var(--border-glass);background:var(--bg-02);color:var(--text-primary);padding:10px;box-sizing:border-box;font:inherit}.book-profile-note-preview-text{margin:0;color:var(--text-primary);line-height:1.6;white-space:pre-wrap;word-break:break-word}.book-profile-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.book-profile-meta-grid div{border:1px solid var(--border-glass);border-radius:8px;padding:8px 10px;background:var(--bg-02);display:grid;gap:3px}.book-profile-meta-grid span{font-size:11px;color:var(--text-faint)}.book-profile-meta-grid strong{font-size:13px;color:var(--text-primary);font-weight:600}.book-profile-links{display:flex;gap:12px}.book-profile-links a{color:rgba(var(--primary-rgb),.95);text-decoration:none;font-size:13px}.book-profile-description summary{cursor:pointer;font-size:13px;color:var(--text-secondary)}.book-profile-description p{margin:8px 0 0;color:var(--text-secondary);line-height:1.5;font-size:13px}.hero-cover-col{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:32px 16px 16px;background:radial-gradient(ellipse 60% 72% at 50% 42%,rgba(78,115,207,.2) 0%,transparent 68%);border-radius:16px 16px 0 0}.book-profile-cover{width:220px;max-width:none;height:auto;aspect-ratio:2 / 3;border-radius:6px;position:relative;background:#ffffff0d;box-shadow:0 14px 48px #000000bf,0 4px 16px #00000073}.book-profile-cover-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;border-radius:6px;z-index:2}.book-profile-cover-ambilight{position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;width:160%;height:160%;object-fit:cover;filter:blur(50px) saturate(1.5) brightness(1.1);opacity:0;z-index:1;pointer-events:none;transition:opacity .6s ease}.hero-main-col{height:auto;min-height:0;max-height:none;padding:12px 20px 0;display:flex;flex-direction:column;align-items:center}.book-profile-head-main{height:auto;display:flex;flex-direction:column;align-items:center;width:100%}.book-profile-title{font-size:22px;font-weight:700;text-align:center;-webkit-line-clamp:3;line-height:1.25}.book-profile-author{margin-top:5px;font-size:14px;text-align:center;color:var(--text-muted)}.genres-row{justify-content:center;margin-top:10px;gap:6px}.book-profile-hero .genre-chip{height:22px;font-size:10px;padding:0 9px;letter-spacing:.05em;text-transform:uppercase}.book-profile-edit-trigger-xs{display:flex!important;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:50%;flex-shrink:0}.book-profile-edit-trigger-xs>span:last-child{display:none}.book-profile-edit-trigger-xs .material-symbols-outlined{font-size:18px}.book-profile-edit-trigger-mobile{display:none!important}.book-profile-head-main .book-profile-hero-description-desktop{display:none}.hero-rating-col{min-width:0;margin:16px 16px 0;padding:14px 16px 12px;background:#1e1f25b3;border:1px solid rgba(255,255,255,.09);border-bottom:none;border-radius:12px 12px 0 0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.book-profile-rating-wrap{height:auto!important;max-height:none!important}.book-profile-rating-card.book-profile-rating-shell{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;width:100%;min-width:0;height:auto!important;max-height:none!important;border:none!important;background:transparent!important;box-shadow:none!important;padding:0;gap:8px}.book-profile-rating-head-wrap{display:none!important}.book-profile-rating-pill,.book-profile-rating-help{display:none}.book-profile-rating-stars-row{display:flex!important;flex:none;justify-content:flex-start;align-items:center;gap:1px;margin-top:0}.book-profile-rating-star-btn{height:44px}.book-profile-rating-star-icon-lg{font-size:26px}.book-profile-status-badge-xs{display:inline-flex!important;align-items:center;padding:6px 14px;border:1px solid var(--border-glass);border-radius:20px;font-size:12px;font-weight:500;color:var(--text-primary);background:var(--bg-02);white-space:nowrap;flex-shrink:0}.book-profile-status-badge-xs--read{background:#6ee7b724;border-color:#6ee7b759;color:#6ee7b7}.book-profile-status-badge-xs--reading{background:rgba(var(--primary-rgb),.14);border-color:rgba(var(--primary-rgb),.35);color:var(--primary)}.book-profile-status-badge-xs--want_to_read{background:#fbbf2424;border-color:#fbbf2459;color:#fbbf24}.book-profile-status-badge-xs--dnf{background:#e8e4f512;border-color:#e8e4f52e;color:#e8e4f573}.book-profile-hero-progress{display:flex;flex-direction:column;margin:0 16px 14px;padding:14px 16px 16px;background:#1e1f25b3;border:1px solid rgba(255,255,255,.09);border-top:none;border-radius:0 0 12px 12px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.book-profile-kpi-strip{order:-1;margin-top:0;margin-bottom:18px;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.book-profile-kpi-cell{border:none;background:transparent;border-radius:0;display:flex;flex-direction:column-reverse;align-items:center;text-align:center;padding:0 4px;gap:2px;min-width:0}.book-profile-kpi-cell+.book-profile-kpi-cell{border-left:1px solid var(--border-glass)}.book-profile-kpi-cell strong{font-size:15px;font-weight:700;color:var(--text-primary);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.book-profile-kpi-label{font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);justify-content:center;gap:0;white-space:nowrap}.book-profile-hero-progress .book-profile-kpi-icon{display:none}.book-profile-start-reading-desktop{display:none!important}.book-profile-start-reading-xs{display:flex!important;justify-content:center;width:100%;margin-top:16px}.hero-meta-col.book-meta-panel{display:flex!important;flex-direction:row;flex-wrap:nowrap;align-items:stretch;margin:0 16px 14px;padding:10px 12px;gap:0}.hero-meta-col .meta-row{flex:1;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:2px;padding:0 6px;border-right:1px solid var(--border-glass)}.hero-meta-col .meta-row:last-child{border-right:none}.hero-meta-col .meta-label{font-size:10px;line-height:14px;text-transform:uppercase;letter-spacing:.05em}.hero-meta-col .meta-value{font-size:12px;line-height:16px;text-align:center}.book-profile-hero-description-mobile{display:flex;grid-area:desc;margin:0 16px 16px;min-height:0}.book-profile-hero-description.book-profile-hero-description-mobile{background:transparent;border:none;border-left:2px solid rgba(var(--primary-rgb),.5);border-radius:0;padding:4px 0 4px 16px;margin:0 20px 16px;min-height:0;flex-direction:column}.book-profile-hero-description.book-profile-hero-description-mobile .book-profile-hero-description-label{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(var(--primary-rgb),.55);margin-bottom:6px}.book-profile-hero-description.book-profile-hero-description-mobile p{font-size:13px;line-height:1.65;color:var(--text-secondary)}.book-profile-desc-collapsed{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.book-profile-desc-read-more{display:flex;align-items:center;justify-content:flex-start;gap:2px;margin-top:8px;background:none;border:none;padding:0;font-size:12px;font-weight:500;color:var(--primary);cursor:pointer;opacity:.85;font-family:inherit;width:100%}.book-profile-desc-read-more:hover{opacity:1}.book-profile-desc-read-more .material-symbols-outlined{font-size:15px}.book-profile-edit-description-wrap{flex:none}.book-profile-edit-description-input{min-height:200px;max-height:400px;resize:vertical}.book-profile-edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.book-profile-edit-actions .btn-secondary,.book-profile-edit-actions .btn-primary{width:100%;justify-content:center}.book-profile-edit-actions .book-profile-danger-btn{display:none}@media (max-width: 1023px){.book-profile-edit-trigger-mobile{margin-bottom:4px!important}.book-profile-edit-trigger-mobile .btn-secondary{min-height:30px;padding:5px 10px;font-size:12px;gap:4px;border-radius:10px}.book-profile-edit-trigger-mobile .btn-secondary .material-symbols-outlined{font-size:16px}.book-profile-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;overflow-x:visible;padding-bottom:0}.book-profile-tab{min-width:0;width:100%;height:34px;padding:0 6px!important;border-radius:999px;font-size:11px!important;line-height:1.1;font-weight:600;text-align:center;white-space:normal;letter-spacing:0!important}.book-profile-tab-label-full{display:none}.book-profile-tab-label-mobile{display:inline}.book-profile-edit-actions{justify-content:stretch}.book-profile-edit-actions .btn-secondary,.book-profile-edit-actions .btn-primary{flex:1 1 0;min-width:0}.book-profile-edit-grid{grid-template-columns:1fr}.book-profile-main>.book-profile-tabs{display:flex;overflow-x:auto;scrollbar-width:none;gap:8px;margin-bottom:12px}.book-profile-main>.book-profile-tabs::-webkit-scrollbar{display:none}.hero-tabs{display:none}}@media (min-width: 768px) and (max-width: 1023px){.book-profile-cover{width:330px}.book-profile-cover-ambilight{filter:blur(75px) saturate(1.5) brightness(1.1)}}.book-profile-cover-edit-wrap{display:flex;flex-direction:column;gap:10px;margin-top:10px}@media (max-width: 900px){.hero-cover-col .book-profile-cover-edit-wrap{align-items:center;margin-top:12px;gap:8px}.hero-cover-col .book-profile-cover-edit-wrap .btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:5px 12px;font-size:12px}.hero-cover-col .book-profile-cover-edit-wrap .book-profile-input-compact{width:min(100%,320px)}}.book-profile-delete-header-xs{display:none}.book-profile-dnf-btn{font-size:14px;padding:8px 18px;gap:6px;margin-top:14px}.book-profile-dnf-btn .material-symbols-outlined{font-size:16px}.book-profile-delete-header-xs{display:flex!important;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:50%;flex-shrink:0;color:var(--error);border-color:#ffb4ab4d}.book-profile-delete-header-xs .material-symbols-outlined{font-size:18px}.hero-cover-col .book-profile-cover-edit-wrap{margin-top:12px;align-items:center;gap:6px}.hero-cover-col .book-profile-cover-edit-wrap .btn-secondary{padding:6px 16px;font-size:12px;gap:4px}.hero-cover-col .book-profile-cover-edit-wrap .material-symbols-outlined{font-size:15px}@media (min-width: 1024px){.book-profile-hero{display:grid!important;grid-template-columns:260px 2fr 2fr;grid-template-rows:auto auto auto auto;gap:0 10px;width:100%;margin:0}.hero-cover-col,.hero-main-col,.hero-rating-col,.hero-meta-col,.book-profile-hero-progress,.book-profile-hero-description-mobile{order:unset}.hero-cover-col{grid-column:1;grid-row:1 / 4;align-self:end;padding:0;background:none;border-radius:0;justify-content:flex-end;align-items:flex-start}.book-profile-cover{width:100%;max-width:none;box-shadow:0 8px 32px #0000008c,0 2px 8px #0000004d;border-radius:8px}.hero-cover-col .book-profile-cover-edit-wrap{align-items:center;width:100%}.hero-meta-col{grid-column:1;grid-row:4;align-self:start;margin:10px 0 0!important;padding:8px 10px}.hero-meta-col .meta-row{flex:1 1 0;min-width:0;overflow:hidden;flex-direction:column;align-items:flex-start;gap:1px;padding:0 6px}.hero-meta-col .meta-row:first-child{border-right:1px solid var(--border-glass)}.hero-meta-col .meta-label{font-size:9px;text-transform:uppercase;letter-spacing:.05em}.hero-meta-col .meta-value{max-width:100%;font-size:12px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-tabs{grid-column:2 / 4;grid-row:4;align-self:start;display:flex;gap:8px;flex-wrap:nowrap;align-items:center;margin:10px 0 0!important;padding:0}.hero-tabs .book-profile-tab{font-size:13px;padding:10px 20px;min-height:40px;flex-shrink:0}.book-profile-main>.book-profile-tabs{display:none}.hero-main-col{grid-column:2;grid-row:1;align-self:start;padding:0 0 10px;align-items:flex-start}.book-profile-head-main{align-items:flex-start}.book-profile-title{font-size:21px;text-align:left}.book-profile-author{text-align:left}.book-profile-series{margin-left:0}.book-profile-hero .genres-row{justify-content:flex-start}.hero-rating-col{grid-column:2;grid-row:2;margin:0!important;border-radius:12px 12px 0 0;border-bottom:none;padding:10px 12px}.book-profile-hero-progress{grid-column:2;grid-row:3;margin:0!important;border-top:none;border-radius:0 0 12px 12px;padding:10px 12px 14px}.book-profile-hero-progress .book-profile-kpi-cell strong{font-size:16px}.book-profile-hero-progress .book-profile-kpi-label{font-size:11px}.book-profile-hero-description-mobile{grid-column:3;grid-row:1 / 4;align-self:end;max-height:300px;margin:0!important}.book-profile-hero-description.book-profile-hero-description-mobile{border:none;border-bottom:2px solid rgba(var(--primary-rgb),.3);border-radius:0;background:transparent;padding:0 0 16px;margin:0!important;text-align:left;align-items:flex-start;min-height:0;max-height:300px;overflow-y:auto;overflow-x:hidden}.book-profile-hero-description.book-profile-hero-description-mobile .book-profile-hero-description-label{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);margin-bottom:12px;padding-bottom:4px;border-bottom:1px solid rgba(var(--primary-rgb),.4);display:inline-block}.book-profile-hero-description.book-profile-edit-inline{border:1px solid rgba(var(--primary-rgb),.25);border-radius:8px;background:rgba(var(--primary-rgb),.05);padding:12px}.book-profile-edit-mode-col .book-profile-edit-description-wrap{display:none}.book-profile-edit-inline-textarea{min-height:180px;max-height:300px;width:100%;background:#0003;border:1px solid rgba(var(--primary-rgb),.3);border-radius:6px;resize:vertical}.book-profile-hero-description.book-profile-hero-description-mobile p{text-align:left;font-size:12px;line-height:1.65;color:var(--text-secondary)}.book-profile-hero-description-mobile .book-profile-desc-collapsed{display:block;overflow:visible;-webkit-line-clamp:unset;-webkit-box-orient:unset}.book-profile-hero-description-mobile .book-profile-desc-read-more{display:none!important}}.upgrade-wrap{max-width:900px;margin:0 auto;padding:32px 16px 80px}.upgrade-hero{text-align:center;margin-bottom:40px}.upgrade-hero-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--primary-10);border:1.5px solid var(--border-soft);margin-bottom:16px}.upgrade-hero h1{font-size:26px;font-weight:800;color:var(--text-primary);margin:0 0 10px;letter-spacing:-.4px}.upgrade-hero p{font-size:15px;color:var(--text-secondary);line-height:1.6;max-width:420px;margin:0 auto}.upgrade-plans{display:flex;flex-direction:column;gap:12px;margin-bottom:32px}.upgrade-plan-card{position:relative;padding:18px 16px;border-radius:var(--radius-lg);border:1.5px solid var(--border-glass);background:var(--card-bg);cursor:pointer;text-align:left;transition:border-color .15s,background .15s;width:100%}.upgrade-plan-card.selected{border-color:var(--primary);background:var(--primary-10)}.upgrade-plan-card-inner{display:flex;align-items:center;justify-content:space-between;gap:12px}.upgrade-plan-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px}.upgrade-plan-price{font-size:24px;font-weight:800;color:var(--text-primary);line-height:1}.upgrade-plan-sub{font-size:12px;color:var(--text-muted);margin-top:2px}.upgrade-plan-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.upgrade-plan-equiv{font-size:12px;color:var(--primary);font-weight:600}.upgrade-plan-save{display:inline-block;background:#6ee7b71f;color:#6ee7b7;font-size:11px;font-weight:700;padding:2px 8px;border-radius:var(--radius-full)}.upgrade-plan-badge{position:absolute;top:-10px;left:50%;transform:translate(-50%);background:var(--primary);color:var(--bg);font-size:10px;font-weight:700;padding:2px 10px;border-radius:var(--radius-full);letter-spacing:.05em;white-space:nowrap}.upgrade-cta{text-align:center;margin-bottom:0;position:relative}.upgrade-cta-btn{padding:14px 40px;font-size:15px;border-radius:var(--radius-lg);width:100%;max-width:360px}.upgrade-cta-hint{font-size:12px;color:var(--text-faint);margin-top:12px}.upgrade-coming-soon-tip{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--card-bg);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:8px 14px;font-size:13px;color:var(--text-secondary);white-space:nowrap;box-shadow:var(--shadow-glass);z-index:10}.upgrade-features{display:flex;flex-direction:column;gap:16px;margin-bottom:48px}.upgrade-features-col{background:var(--card-bg);border:1px solid var(--border-glass);border-radius:var(--radius-lg);padding:20px 16px}.upgrade-features-col.premium{background:var(--primary-10);border-color:var(--border-soft)}.upgrade-features-col-title{font-size:10px;font-weight:700;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;gap:6px}.upgrade-features-col.premium .upgrade-features-col-title{color:var(--primary)}.upgrade-feature-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.upgrade-feature-item{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text-secondary)}.upgrade-features-col.premium .upgrade-feature-item{color:var(--text-primary)}.upgrade-feature-icon{font-size:17px;color:var(--text-muted);flex-shrink:0}.upgrade-features-col.premium .upgrade-feature-icon{color:var(--primary)}.upgrade-faq{max-width:560px;margin:0 auto}.upgrade-faq h2{font-size:17px;font-weight:700;color:var(--text-primary);margin-bottom:18px;text-align:center}.upgrade-faq-item{border-bottom:1px solid var(--border-glass);padding:14px 0}.upgrade-faq-q{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:5px}.upgrade-faq-a{font-size:13px;color:var(--text-muted);line-height:1.6}.upgrade-back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:13px;margin-bottom:28px;padding:0}.upgrade-previews{margin-bottom:40px;margin-top:24px;display:flex;flex-direction:column;gap:12px}.upgrade-previews-grid{display:flex;flex-direction:column;gap:12px}.upgrade-preview-card{background:var(--card-bg);border:1px solid var(--border-glass);border-radius:var(--radius-lg);padding:18px 16px}.upgrade-preview-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.upgrade-preview-card-title{font-size:14px;font-weight:700;color:var(--text-primary);margin-bottom:2px}.upgrade-preview-card-sub{font-size:11px;color:var(--text-muted)}@media (min-width: 640px){.upgrade-wrap{padding:48px 24px 80px}.upgrade-hero h1{font-size:32px}.upgrade-previews-grid{flex-direction:row;gap:16px}.upgrade-previews-grid>*{flex:1}.upgrade-plans{flex-direction:row;justify-content:center;gap:16px}.upgrade-plan-card{flex:1 1 200px;max-width:240px}.upgrade-plan-card-inner{flex-direction:column;align-items:flex-start;gap:4px}.upgrade-plan-right{align-items:flex-start}.upgrade-plan-price{font-size:28px}.upgrade-features{flex-direction:row;gap:24px}.upgrade-features-col{flex:1;padding:24px 20px}.upgrade-cta-btn{width:auto}}@keyframes intro-float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes intro-ring-spin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes intro-ring-pulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.55}50%{transform:translate(-50%,-50%) scale(1.08);opacity:1}}@keyframes intro-fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes intro-fade-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes intro-slide-right{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes intro-glow-pulse{0%,to{box-shadow:0 0 10px var(--primary-glow)}50%{box-shadow:0 0 28px var(--primary-glow),0 0 48px var(--primary-glow)}}@keyframes intro-cursor-blink{0%,to{opacity:1}50%{opacity:0}}
