:root {
  --lsw-ink: #18201d;
  --lsw-muted: #65716c;
  --lsw-paper: #f7f5ef;
  --lsw-card: #fff;
  --lsw-line: #dfe4e0;
  --lsw-green: #176b52;
  --lsw-green-dark: #0e4c3a;
  --lsw-coral: #e66a4e;
  --lsw-gold: #e8ac38;
  --lsw-radius: 18px;
  --lsw-shadow: 0 14px 36px rgba(27, 51, 42, .09);
}

.lsw-app, .lsw-book { color: var(--lsw-ink); font-size: 16px; line-height: 1.6; max-width: 1180px; margin: 0 auto; }
.single-lsw_book .entry-title, .single-lsw_book .wp-block-post-title { display: none; }
.lsw-app *, .lsw-book * { box-sizing: border-box; }
.lsw-app h1, .lsw-app h2, .lsw-app h3, .lsw-book h1, .lsw-book h2, .lsw-book h3 { color: var(--lsw-ink); line-height: 1.16; margin-top: 0; }
.lsw-app a, .lsw-book a { color: var(--lsw-green); }
.lsw-eyebrow { color: var(--lsw-coral) !important; font-size: .76rem; font-weight: 800; letter-spacing: .13em; margin: 0 0 8px !important; text-transform: uppercase; }

.lsw-button, .lsw-app .login-submit input, .lsw-search-field button, .lsw-catalog-search-fields button { align-items: center; background: var(--lsw-green); border: 0; border-radius: 10px; color: #fff !important; cursor: pointer; display: inline-flex; font: inherit; font-weight: 750; justify-content: center; min-height: 44px; padding: 10px 18px; text-decoration: none !important; transition: .18s ease; }
.lsw-button:hover, .lsw-app .login-submit input:hover, .lsw-search-field button:hover, .lsw-catalog-search-fields button:hover { background: var(--lsw-green-dark); color: #fff; transform: translateY(-1px); }
.lsw-button:disabled { cursor: wait; opacity: .65; transform: none; }
.lsw-button.ghost { background: transparent; border: 1px solid var(--lsw-green); color: var(--lsw-green) !important; }
.lsw-button.ghost:hover { background: #eaf4ef; }

.lsw-page-hero { align-items: center; background: linear-gradient(130deg, #e8f2ec 0%, #faf6e9 65%, #fbe8df 100%); border: 1px solid #dae6de; border-radius: 24px; display: flex; gap: 28px; justify-content: space-between; margin: 0 0 28px; min-height: 210px; overflow: hidden; padding: 38px 42px; position: relative; }
.lsw-page-hero::after { background: rgba(255,255,255,.36); border-radius: 50%; content: ''; height: 220px; position: absolute; right: -70px; top: -95px; width: 220px; }
.lsw-page-hero > * { position: relative; z-index: 1; }
.lsw-page-hero h1 { font-size: clamp(2rem, 5vw, 3.4rem); margin-bottom: 8px; }
.lsw-page-hero p:last-child { color: var(--lsw-muted); margin: 0; }
.lsw-page-hero.compact { min-height: 165px; }
.lsw-page-hero.compact h1 { font-size: clamp(1.9rem, 4vw, 2.8rem); }

.lsw-catalog-tools { align-items: center; display: flex; gap: 14px; justify-content: space-between; margin: 0 0 26px; }
.lsw-catalog-search-fields { align-items: end; display: grid; flex: 1; gap: 10px; grid-template-columns: minmax(170px, 1fr) minmax(170px, 1fr) auto; }
.lsw-catalog-search-fields label, .lsw-combined-fields label { display: grid; gap: 5px; }
.lsw-catalog-search-fields label > span, .lsw-combined-fields label > span { color: var(--lsw-muted); font-size: .72rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.lsw-catalog-search-fields input { background: #fff; border: 1px solid var(--lsw-line); border-radius: 10px; color: var(--lsw-ink); font: inherit; min-height: 46px; padding: 10px 13px; width: 100%; }
.lsw-search-field { display: flex; flex: 1; max-width: 640px; }
.lsw-search-field input, .lsw-catalog-tools select, .lsw-actions select, .lsw-review-form input, .lsw-review-form textarea, .lsw-external-search input, .lsw-register-form input, .lsw-access-card input[type=text], .lsw-access-card input[type=password] { background: #fff; border: 1px solid var(--lsw-line); border-radius: 10px; color: var(--lsw-ink); font: inherit; min-height: 46px; padding: 10px 13px; width: 100%; }
.lsw-search-field input { border-radius: 10px 0 0 10px; }
.lsw-search-field button { border-radius: 0 10px 10px 0; }
.lsw-catalog-tools select { max-width: 230px; }

.lsw-book-grid { display: grid; gap: 26px 20px; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.lsw-book-card { background: transparent; min-width: 0; }
.lsw-card-cover { aspect-ratio: 2/3; background: #dce5df; border-radius: 11px; box-shadow: 0 10px 24px rgba(20, 45, 36, .12); display: flex; overflow: hidden; position: relative; text-decoration: none; transition: .2s ease; }
.lsw-card-cover:hover { box-shadow: 0 15px 32px rgba(20, 45, 36, .19); transform: translateY(-4px); }
.lsw-card-cover img { height: 100%; object-fit: cover; width: 100%; }
.lsw-card-cover > span { align-items: center; display: flex; font-size: 3rem; justify-content: center; width: 100%; }
.lsw-card-cover em { background: var(--lsw-green); border-radius: 7px; bottom: 8px; color: #fff; font-size: .66rem; font-style: normal; font-weight: 800; left: 8px; padding: 4px 7px; position: absolute; }
.lsw-card-body { padding: 13px 2px 0; }
.lsw-card-body h2 { display: -webkit-box; font-size: 1rem; margin: 0 0 4px; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.lsw-card-body h2 a { color: var(--lsw-ink); text-decoration: none; }
.lsw-card-body > p { color: var(--lsw-muted); font-size: .82rem; margin: 0 0 7px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lsw-card-score { align-items: baseline; display: flex; gap: 2px; }
.lsw-card-score strong { color: var(--lsw-coral); font-size: 1.08rem; }
.lsw-card-score span { color: var(--lsw-muted); font-size: .74rem; }
.lsw-card-score small { color: var(--lsw-muted); font-size: .7rem; margin-left: 6px; }

.lsw-book-hero { background: var(--lsw-paper); border-radius: 24px; display: grid; gap: 38px; grid-template-columns: minmax(190px, 270px) 1fr; margin-bottom: 28px; padding: 40px; }
.lsw-cover-wrap { min-width: 0; }
.lsw-cover { aspect-ratio: 2/3; background: #dce5df; border-radius: 12px; box-shadow: 0 18px 34px rgba(17, 37, 30, .18); display: flex; height: auto; object-fit: cover; overflow: hidden; width: 100%; }
.lsw-cover-placeholder { align-items: center; flex-direction: column; gap: 8px; justify-content: center; }
.lsw-cover-placeholder span { font-size: 4rem; }
.lsw-cover-search-button { background: transparent; border: 0; color: var(--lsw-green); cursor: pointer; display: block; font: inherit; font-size: .8rem; font-weight: 750; margin: 13px auto 0; padding: 5px; text-align: center; }
.lsw-cover-search-button:hover { text-decoration: underline; }
.lsw-cover-dialog { background: #fff; border: 0; border-radius: 18px; box-shadow: 0 25px 80px rgba(10,30,22,.28); color: var(--lsw-ink); max-height: 86vh; max-width: 950px; padding: 28px; width: calc(100% - 32px); }
.lsw-cover-dialog::backdrop { background: rgba(11,24,19,.64); backdrop-filter: blur(3px); }
.lsw-cover-dialog-head { align-items: flex-start; display: flex; gap: 20px; justify-content: space-between; }
.lsw-cover-dialog-head h2 { font-size: 1.8rem; margin-bottom: 4px; }
.lsw-dialog-close { background: #eff2f0; border: 0; border-radius: 50%; color: var(--lsw-ink); cursor: pointer; flex: 0 0 auto; font-size: 1.6rem; height: 38px; line-height: 1; padding: 0; width: 38px; }
.lsw-cover-status { color: var(--lsw-muted); font-size: .88rem; margin: 14px 0; }
.lsw-cover-hint { background: #fff6df; border-radius: 8px; color: #74510b; font-size: .8rem; padding: 9px 11px; }
.lsw-cover-grid { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lsw-cover-candidate { border: 1px solid var(--lsw-line); border-radius: 12px; display: grid; gap: 12px; grid-template-columns: 82px 1fr; min-width: 0; padding: 11px; }
.lsw-cover-candidate > img { background: #edf1ee; border-radius: 6px; height: 123px; object-fit: cover; width: 82px; }
.lsw-cover-candidate.has-image-error > img { opacity: .12; }
.lsw-cover-candidate > div { display: flex; flex-direction: column; min-width: 0; }
.lsw-cover-candidate strong { color: var(--lsw-coral); font-size: .72rem; text-transform: uppercase; }
.lsw-cover-candidate small { color: var(--lsw-muted); display: -webkit-box; font-size: .73rem; margin: 4px 0 10px; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.lsw-cover-candidate .lsw-button { font-size: .73rem; margin-top: auto; min-height: 34px; padding: 6px 8px; }
.lsw-manual-cover { border-top: 1px solid var(--lsw-line); margin-top: 20px; padding-top: 15px; }
.lsw-manual-cover summary { color: var(--lsw-green); cursor: pointer; font-weight: 750; }
.lsw-manual-cover > p { color: var(--lsw-muted); font-size: .84rem; margin: 10px 0; }
.lsw-manual-cover > small { color: var(--lsw-muted); display: block; font-size: .72rem; margin-top: 8px; }
.lsw-cover-upload-block, .lsw-cover-url-block { background: var(--lsw-paper); border-radius: 11px; margin-top: 14px; padding: 16px; }
.lsw-cover-upload-block h3, .lsw-cover-url-block h3 { font-size: 1rem; margin: 0 0 4px; }
.lsw-cover-upload-block > p, .lsw-cover-url-block > p { color: var(--lsw-muted); font-size: .82rem; margin: 0 0 11px; }
.lsw-cover-upload-block > small, .lsw-cover-url-block > small { color: var(--lsw-muted); display: block; font-size: .72rem; margin-top: 8px; }
.lsw-cover-upload-form { align-items: stretch; display: flex; gap: 10px; }
.lsw-cover-file-drop { align-items: center; background: #fff; border: 1px dashed #aebcb4; border-radius: 9px; cursor: pointer; display: flex; flex: 1; gap: 12px; min-height: 62px; overflow: hidden; padding: 8px 12px; position: relative; }
.lsw-cover-file-drop:hover { border-color: var(--lsw-green); }
.lsw-cover-file-drop input { cursor: pointer; height: 100%; inset: 0; opacity: 0; position: absolute; width: 100%; }
.lsw-cover-file-drop:focus-within { border-color: var(--lsw-green); box-shadow: 0 0 0 2px rgba(23,107,82,.18); }
.lsw-cover-file-drop span { color: var(--lsw-green); font-size: .82rem; font-weight: 750; }
.lsw-cover-upload-preview { border-radius: 5px; height: 70px; object-fit: cover; order: -1; width: 48px; }
.lsw-cover-upload-preview[hidden] { display: none; }
.lsw-cover-upload-form .lsw-button { flex: 0 0 auto; }
.lsw-cover-url-form { display: flex; gap: 8px; }
.lsw-cover-url-form input { border: 1px solid var(--lsw-line); border-radius: 9px; font: inherit; min-height: 42px; padding: 8px 11px; width: 100%; }
.lsw-cover-url-form .lsw-button { flex: 0 0 auto; min-height: 42px; }
.lsw-book-main h1 { font-size: clamp(2rem, 5vw, 3.5rem); margin-bottom: 10px; }
.lsw-byline { color: var(--lsw-muted); font-size: 1.15rem; margin: 0 0 22px; }
.lsw-score { align-items: baseline; display: flex; gap: 4px; margin: 0 0 25px; }
.lsw-score strong { color: var(--lsw-coral); font-size: 3rem; line-height: 1; }
.lsw-score span { color: var(--lsw-muted); }
.lsw-score small { color: var(--lsw-muted); margin-left: 9px; }
.lsw-meta { display: flex; flex-wrap: wrap; gap: 12px 22px; margin-bottom: 26px; }
.lsw-meta span { color: var(--lsw-muted); display: flex; flex-direction: column; font-size: .88rem; }
.lsw-meta b { color: var(--lsw-ink); font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.lsw-actions { background: #fff; border: 1px solid var(--lsw-line); border-radius: 14px; display: grid; gap: 15px; padding: 18px; }
.lsw-action-block > label { display: block; font-size: .8rem; font-weight: 800; margin-bottom: 7px; text-transform: uppercase; }
.lsw-rating-picker { display: flex; flex-wrap: wrap; gap: 5px; }
.lsw-rating-picker button { background: #f2f4f1; border: 1px solid transparent; border-radius: 7px; color: var(--lsw-ink); cursor: pointer; font-weight: 750; height: 34px; padding: 0; width: 34px; }
.lsw-rating-picker button:hover, .lsw-rating-picker button.is-active { background: var(--lsw-coral); color: #fff; }
.lsw-action-message, .lsw-form-message { font-size: .83rem; margin: 0; min-height: 1em; }
.is-success { color: var(--lsw-green); }.is-error { color: #b32323; }

.lsw-panel { background: #fff; border: 1px solid var(--lsw-line); border-radius: var(--lsw-radius); margin-bottom: 26px; padding: 30px; }
.lsw-panel h2 { font-size: 1.65rem; margin-bottom: 18px; }
.lsw-section-title { align-items: center; display: flex; justify-content: space-between; }
.lsw-count-badge { align-items: center; background: #eaf4ef; border-radius: 50%; color: var(--lsw-green); display: flex; font-weight: 800; height: 42px; justify-content: center; width: 42px; }
.lsw-review-form { background: var(--lsw-paper); border-radius: 13px; display: grid; gap: 13px; margin: 0 0 24px; padding: 22px; }
.lsw-review-form > label, .lsw-register-form label { color: var(--lsw-ink); display: grid; font-size: .85rem; font-weight: 750; gap: 5px; }
.lsw-form-row { align-items: center; display: flex; justify-content: space-between; }
.lsw-check { align-items: center !important; display: flex !important; font-weight: 500 !important; }
.lsw-check input { min-height: auto; width: auto; }
.lsw-review { border-top: 1px solid var(--lsw-line); padding: 22px 0; }
.lsw-review header { align-items: center; display: flex; gap: 10px; }
.lsw-review header img { border-radius: 50%; }
.lsw-review header div { display: flex; flex-direction: column; }
.lsw-review header small { color: var(--lsw-muted); }
.lsw-review-score { background: #fff2de; border-radius: 8px; color: #9d5a00; font-weight: 800; margin-left: auto; padding: 5px 9px; }
.lsw-review h3 { font-size: 1.1rem; margin: 14px 0 5px; }
.lsw-review-body { color: #39433f; }
.lsw-review.is-spoiler .lsw-review-body { filter: blur(7px); pointer-events: none; user-select: none; }
.lsw-review.is-spoiler.is-revealed .lsw-review-body { filter: none; pointer-events: auto; user-select: auto; }
.lsw-spoiler-toggle { background: #fff2de; border: 0; border-radius: 7px; color: #744400; cursor: pointer; margin: 12px 0 0; padding: 8px 11px; }

.lsw-search-panel { background: #fff; border: 1px solid var(--lsw-line); border-radius: var(--lsw-radius); box-shadow: var(--lsw-shadow); padding: 26px; }
.lsw-external-search > .lsw-combined-fields { display: grid; gap: 12px; grid-template-columns: 1.35fr 1fr .75fr; }
.lsw-external-search .lsw-search-submit { margin-top: 16px; min-width: 180px; }
.lsw-search-help, .lsw-search-status { color: var(--lsw-muted); font-size: .84rem; margin: 10px 0 0; }
.lsw-external-results { margin-top: 24px; }
.lsw-result-grid { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lsw-result-card { background: #fff; border: 1px solid var(--lsw-line); border-radius: 14px; display: grid; gap: 16px; grid-template-columns: 105px 1fr; min-width: 0; padding: 15px; }
.lsw-result-cover { align-items: center; aspect-ratio: 2/3; background: #e7ece8; border-radius: 7px; display: flex; justify-content: center; overflow: hidden; }
.lsw-result-cover img { height: 100%; object-fit: cover; width: 100%; }
.lsw-result-cover span { font-size: 2.4rem; }
.lsw-result-body { min-width: 0; }
.lsw-result-body h2 { font-size: 1.1rem; margin: 4px 0; }
.lsw-source { color: var(--lsw-coral); font-size: .67rem; font-weight: 800; text-transform: uppercase; }
.lsw-result-authors { color: var(--lsw-muted); margin: 0 0 5px; }
.lsw-result-details { color: var(--lsw-muted); font-size: .75rem; margin: 0 0 12px; }
.lsw-result-body .lsw-button { min-height: 38px; padding: 7px 12px; }

.lsw-tabs { border-bottom: 1px solid var(--lsw-line); display: flex; gap: 5px; margin: 0 0 25px; overflow-x: auto; }
.lsw-tabs a { border-bottom: 3px solid transparent; color: var(--lsw-muted); flex: 0 0 auto; font-size: .87rem; font-weight: 750; padding: 10px 13px; text-decoration: none; }
.lsw-tabs a.is-active { border-color: var(--lsw-coral); color: var(--lsw-ink); }
.lsw-profile-head { align-items: center; background: var(--lsw-paper); border-radius: 20px; display: flex; gap: 22px; padding: 30px; }
.lsw-profile-head img { border-radius: 50%; }
.lsw-profile-head h1 { margin-bottom: 5px; }
.lsw-profile-head p:last-child { color: var(--lsw-muted); margin: 0; }
.lsw-stats { display: grid; gap: 12px; grid-template-columns: repeat(4, 1fr); margin: 18px 0 30px; }
.lsw-stats > div { background: #fff; border: 1px solid var(--lsw-line); border-radius: 12px; display: flex; flex-direction: column; padding: 18px; }
.lsw-stats strong { color: var(--lsw-green); font-size: 1.7rem; }
.lsw-stats span { color: var(--lsw-muted); font-size: .8rem; }
.lsw-profile .lsw-library .lsw-page-hero { display: none; }

.lsw-access-grid { display: grid; gap: 22px; grid-template-columns: 1fr 1fr; }
.lsw-access-card { background: #fff; border: 1px solid var(--lsw-line); border-radius: var(--lsw-radius); box-shadow: var(--lsw-shadow); padding: 30px; }
.lsw-access-card form { display: grid; gap: 13px; }
.lsw-access-card label { display: grid; font-size: .85rem; font-weight: 750; gap: 5px; }
.lsw-access-card .login-remember label { align-items: center; display: flex; font-weight: 500; }
.lsw-access-card .login-remember input { min-height: auto; width: auto; }
.lsw-notice { border-radius: 8px; margin-bottom: 14px; padding: 10px 12px; }.lsw-notice.error { background: #fdeaea; color: #9b2020; }.lsw-notice.success { background: #e8f4ed; color: var(--lsw-green); }
.lsw-hp { height: 1px !important; left: -10000px !important; overflow: hidden !important; position: absolute !important; width: 1px !important; }

.lsw-empty { align-items: center; background: var(--lsw-paper); border: 1px dashed #cbd5ce; border-radius: var(--lsw-radius); display: flex; flex-direction: column; justify-content: center; min-height: 240px; padding: 35px; text-align: center; }
.lsw-empty > span { font-size: 2.8rem; }.lsw-empty h1, .lsw-empty h2 { margin: 8px 0; }.lsw-empty p { color: var(--lsw-muted); max-width: 520px; }
.lsw-pagination ul { display: flex; gap: 5px; justify-content: center; list-style: none; margin: 30px 0 0; padding: 0; }.lsw-pagination a, .lsw-pagination span { align-items: center; border: 1px solid var(--lsw-line); border-radius: 7px; display: flex; height: 38px; justify-content: center; min-width: 38px; padding: 0 8px; text-decoration: none; }.lsw-pagination .current { background: var(--lsw-green); color: #fff; }

@media (max-width: 980px) { .lsw-book-grid { grid-template-columns: repeat(4, 1fr); }.lsw-result-grid { grid-template-columns: 1fr; } }
@media (max-width: 720px) {
  .lsw-page-hero { align-items: flex-start; flex-direction: column; min-height: 0; padding: 28px 24px; }
  .lsw-catalog-tools { align-items: stretch; flex-direction: column; }.lsw-catalog-tools select { max-width: none; }
  .lsw-catalog-search-fields, .lsw-external-search > .lsw-combined-fields { grid-template-columns: 1fr; }
  .lsw-search-field button { border-radius: 0 10px 10px 0; }
  .lsw-book-grid { gap: 22px 14px; grid-template-columns: repeat(3, 1fr); }
  .lsw-book-hero { gap: 25px; grid-template-columns: 130px 1fr; padding: 24px; }.lsw-book-main h1 { font-size: 1.85rem; }
  .lsw-meta { display: grid; grid-template-columns: 1fr 1fr; }.lsw-actions { grid-column: 1/-1; }
  .lsw-stats { grid-template-columns: 1fr 1fr; }.lsw-access-grid { grid-template-columns: 1fr; }
  .lsw-cover-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .lsw-book-grid { grid-template-columns: repeat(2, 1fr); }.lsw-book-hero { display: block; }.lsw-cover-wrap { margin: 0 auto 25px; max-width: 180px; }
  .lsw-panel { padding: 21px 18px; }.lsw-result-card { grid-template-columns: 82px 1fr; }.lsw-form-row { align-items: flex-start; flex-direction: column; gap: 12px; }
  .lsw-cover-dialog { padding: 20px 15px; }.lsw-cover-grid { grid-template-columns: 1fr; }
  .lsw-cover-url-form, .lsw-cover-upload-form { flex-direction: column; }
}

/* Visual refresh 1.4 — richer editorial surfaces without depending on the active theme. */
.lsw-app, .lsw-book {
  --lsw-ink: #17221e;
  --lsw-muted: #64726d;
  --lsw-paper: #f6f3ec;
  --lsw-line: #dce3de;
  --lsw-green: #126247;
  --lsw-green-dark: #093d2c;
  --lsw-coral: #db654b;
  --lsw-gold: #e6b557;
  --lsw-radius: 22px;
  --lsw-shadow: 0 18px 50px rgba(17, 45, 36, .11);
}
.lsw-app h1, .lsw-app h2, .lsw-app h3, .lsw-book h1, .lsw-book h2, .lsw-book h3 {
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: -.025em;
}
.lsw-button, .lsw-app .login-submit input, .lsw-search-field button, .lsw-catalog-search-fields button {
  border-radius: 999px;
  box-shadow: 0 7px 18px rgba(18, 98, 71, .18);
  letter-spacing: .01em;
  padding-inline: 22px;
}
.lsw-button:focus-visible, .lsw-app button:focus-visible, .lsw-app input:focus-visible, .lsw-app select:focus-visible,
.lsw-book button:focus-visible, .lsw-book textarea:focus-visible, .lsw-book select:focus-visible {
  outline: 3px solid rgba(230, 181, 87, .55);
  outline-offset: 2px;
}
.lsw-page-hero {
  background:
    radial-gradient(circle at 88% 22%, rgba(230,181,87,.25) 0 9%, transparent 9.5%),
    radial-gradient(circle at 78% 95%, rgba(219,101,75,.16) 0 18%, transparent 18.5%),
    linear-gradient(128deg, #0d3f30 0%, #17664d 55%, #275b4c 100%);
  border: 0;
  box-shadow: 0 22px 55px rgba(11, 54, 40, .2);
  color: #fff;
  min-height: 225px;
  padding: 44px 48px;
}
.lsw-page-hero::after {
  border: 1px solid rgba(255,255,255,.14);
  height: 270px;
  right: -60px;
  top: -120px;
  width: 270px;
}
.lsw-page-hero h1 { color: #fff; text-shadow: 0 2px 18px rgba(0,0,0,.14); }
.lsw-page-hero .lsw-eyebrow { color: #f3c979 !important; }
.lsw-page-hero p:last-child { color: rgba(255,255,255,.76); max-width: 650px; }
.lsw-page-hero .lsw-button { background: #fff; box-shadow: 0 10px 30px rgba(0,0,0,.16); color: var(--lsw-green-dark) !important; }
.lsw-page-hero .lsw-button:hover { background: #fff8e9; color: var(--lsw-green-dark); }

.lsw-catalog-tools {
  background: #fff;
  border: 1px solid rgba(18, 98, 71, .11);
  border-radius: 18px;
  box-shadow: 0 12px 34px rgba(23, 50, 41, .07);
  padding: 16px;
}
.lsw-catalog-search-fields input, .lsw-catalog-tools select, .lsw-external-search input {
  border-color: #d5ddd8;
  border-radius: 12px;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.lsw-catalog-search-fields input:hover, .lsw-catalog-tools select:hover, .lsw-external-search input:hover { background: #fdfcf9; border-color: #b9c8c0; }
.lsw-book-grid { gap: 24px; }
.lsw-book-card {
  background: #fff;
  border: 1px solid rgba(20, 69, 53, .09);
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(20, 45, 36, .07);
  padding: 10px 10px 14px;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.lsw-book-card:hover {
  border-color: rgba(18, 98, 71, .2);
  box-shadow: 0 20px 40px rgba(20, 45, 36, .13);
  transform: translateY(-4px);
}
.lsw-card-cover { border-radius: 12px; box-shadow: 0 9px 22px rgba(20, 45, 36, .14); }
.lsw-card-cover:hover { box-shadow: 0 9px 22px rgba(20, 45, 36, .14); transform: none; }
.lsw-card-body { padding: 14px 5px 0; }
.lsw-card-body h2 { font-size: 1.04rem; line-height: 1.23; }
.lsw-card-score { border-top: 1px solid #edf0ed; margin-top: 10px; padding-top: 9px; }
.lsw-card-score strong { color: var(--lsw-green); font-size: 1.22rem; }

.lsw-search-panel {
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(120deg, rgba(18,98,71,.45), rgba(230,181,87,.52), rgba(219,101,75,.38)) border-box;
  border: 1px solid transparent;
  box-shadow: 0 20px 55px rgba(18, 53, 42, .12);
  padding: 30px;
}
.lsw-result-grid { gap: 20px; }
.lsw-result-card {
  border: 1px solid rgba(18,98,71,.12);
  border-radius: 19px;
  box-shadow: 0 12px 34px rgba(20,45,36,.07);
  gap: 19px;
  grid-template-columns: 118px 1fr;
  padding: 18px;
  transition: transform .2s ease, box-shadow .2s ease;
}
.lsw-result-card:hover { box-shadow: 0 20px 45px rgba(20,45,36,.12); transform: translateY(-3px); }
.lsw-result-cover { border-radius: 10px; box-shadow: 0 8px 20px rgba(20,45,36,.14); }
.lsw-source { background: #edf6f1; border-radius: 999px; color: var(--lsw-green); display: inline-flex; padding: 3px 9px; }
.lsw-result-body h2 { font-size: 1.28rem; margin: 8px 0 3px; }
.lsw-result-details { border-bottom: 1px solid #edf0ed; padding-bottom: 10px; }
.lsw-result-synopsis {
  color: #4f5d58;
  display: -webkit-box;
  font-size: .82rem;
  line-height: 1.55;
  margin: 0 0 13px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.lsw-result-synopsis.is-missing { color: #8a6b2f; font-style: italic; }

.lsw-book-hero {
  background:
    radial-gradient(circle at 93% 8%, rgba(230,181,87,.17), transparent 27%),
    linear-gradient(132deg, #0c3529 0%, #154d3b 72%, #205743 100%);
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 25px 65px rgba(11, 49, 38, .23);
  color: #fff;
  gap: 46px;
  padding: 44px;
}
.lsw-book-main h1 { color: #fff; text-shadow: 0 3px 22px rgba(0,0,0,.17); }
.lsw-book-main .lsw-eyebrow { color: #f2c979 !important; }
.lsw-byline, .lsw-score span, .lsw-score small { color: rgba(255,255,255,.7); }
.lsw-score strong { color: #f3c979; }
.lsw-meta { border-block: 1px solid rgba(255,255,255,.12); padding: 17px 0; }
.lsw-meta span { color: rgba(255,255,255,.78); }
.lsw-meta b { color: #fff; }
.lsw-actions {
  background: rgba(255,255,255,.095);
  border-color: rgba(255,255,255,.14);
  backdrop-filter: blur(6px);
}
.lsw-action-block > label { color: #fff; }
.lsw-actions select { background: rgba(255,255,255,.95); }
.lsw-rating-picker button { background: rgba(255,255,255,.9); }
.lsw-rating-picker button:hover, .lsw-rating-picker button.is-active { background: var(--lsw-gold); color: #173126; }
.lsw-cover { border: 1px solid rgba(255,255,255,.2); box-shadow: 0 25px 55px rgba(0,0,0,.3); }
.lsw-cover-search-button { color: #f3d18e; }

.lsw-panel {
  border-color: rgba(18, 98, 71, .1);
  box-shadow: 0 14px 42px rgba(20, 45, 36, .07);
  padding: 34px;
}
.lsw-synopsis { overflow: hidden; position: relative; }
.lsw-synopsis::before {
  background: linear-gradient(var(--lsw-gold), var(--lsw-coral));
  content: "";
  inset: 0 auto 0 0;
  position: absolute;
  width: 5px;
}
.lsw-synopsis-copy { color: #3d4945; font-family: Georgia, "Times New Roman", serif; font-size: 1.06rem; line-height: 1.85; max-width: 900px; }
.lsw-synopsis-copy > :first-child { margin-top: 0; }
.lsw-synopsis-copy > :last-child { margin-bottom: 0; }
.lsw-synopsis.is-empty { background: linear-gradient(120deg, #fffaf0, #fff); }
.lsw-synopsis-edit-button {
  background: #edf5f1;
  border: 1px solid #d4e5dc;
  border-radius: 999px;
  color: var(--lsw-green);
  cursor: pointer;
  font: inherit;
  font-size: .78rem;
  font-weight: 800;
  padding: 8px 13px;
}
.lsw-data-source { color: #8a948f; font-size: .7rem; margin: 18px 0 0; }
.lsw-section-title h2 { margin-bottom: 0; }

.lsw-cover-dialog, .lsw-synopsis-dialog {
  background: #fff;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 24px;
  box-shadow: 0 35px 100px rgba(6,25,19,.38);
  color: var(--lsw-ink);
  max-height: 88vh;
  max-width: 900px;
  padding: 32px;
  width: calc(100% - 32px);
}
.lsw-synopsis-dialog::backdrop { background: rgba(7,25,19,.7); backdrop-filter: blur(5px); }
.lsw-synopsis-auto {
  align-items: center;
  background: linear-gradient(120deg, #edf6f1, #fff9ec);
  border: 1px solid #dce8e1;
  border-radius: 16px;
  display: flex;
  gap: 20px;
  justify-content: space-between;
  margin: 22px 0;
  padding: 18px;
}
.lsw-synopsis-auto div { display: grid; gap: 2px; }
.lsw-synopsis-auto small { color: var(--lsw-muted); }
.lsw-synopsis-form { display: grid; gap: 9px; }
.lsw-synopsis-form > label { font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.lsw-synopsis-form textarea {
  border: 1px solid #ccd8d1;
  border-radius: 14px;
  color: var(--lsw-ink);
  font: inherit;
  line-height: 1.6;
  min-height: 220px;
  padding: 15px;
  resize: vertical;
  width: 100%;
}
.lsw-synopsis-form-footer { align-items: center; display: flex; justify-content: space-between; }
.lsw-synopsis-counter, .lsw-synopsis-status { color: var(--lsw-muted); font-size: .78rem; }
.lsw-synopsis-status { min-height: 1.3em; }

.lsw-review-form { background: linear-gradient(135deg, #f5f3ed, #fafbf9); border: 1px solid #e6e5df; padding: 25px; }
.lsw-review { padding: 26px 0; }
.lsw-profile-head { background: linear-gradient(135deg, #0e4131, #1b634c); box-shadow: var(--lsw-shadow); color: #fff; }
.lsw-profile-head h1 { color: #fff; }
.lsw-profile-head .lsw-eyebrow { color: #f3c979 !important; }
.lsw-profile-head p:last-child { color: rgba(255,255,255,.72); }
.lsw-stats > div { box-shadow: 0 9px 25px rgba(20,45,36,.06); }
.lsw-access-card { border-color: rgba(18,98,71,.1); box-shadow: 0 18px 50px rgba(20,45,36,.09); }

@media (max-width: 720px) {
  .lsw-page-hero { padding: 32px 26px; }
  .lsw-book-hero { gap: 28px; padding: 28px; }
  .lsw-result-card { grid-template-columns: 96px 1fr; }
  .lsw-synopsis-auto { align-items: stretch; flex-direction: column; }
}
@media (max-width: 520px) {
  .lsw-book-card { padding: 7px 7px 11px; }
  .lsw-card-body { padding-inline: 3px; }
  .lsw-result-card { grid-template-columns: 78px 1fr; padding: 12px; }
  .lsw-result-synopsis { display: none; }
  .lsw-synopsis-dialog { padding: 22px 17px; }
  .lsw-synopsis-form-footer { align-items: stretch; flex-direction: column; gap: 10px; }
}

/* Alta visual por fotografía */
.lsw-photo-mode{border:0;display:flex;flex-wrap:wrap;gap:10px 18px;margin:0 0 16px;padding:0}.lsw-photo-mode legend{font-weight:700;margin-bottom:8px}.lsw-photo-mode label{align-items:center;background:#f5f7f5;border:1px solid #dce5df;border-radius:10px;cursor:pointer;display:flex;gap:7px;padding:9px 12px}.lsw-photo-mode small{color:var(--lsw-muted);font-size:.78rem}
.lsw-photo-search{align-items:center;background:linear-gradient(135deg,#f8f3e8,#fff);border:1px solid rgba(108,82,43,.16);border-radius:24px;box-shadow:0 14px 40px rgba(55,42,22,.07);display:grid;gap:24px;grid-template-columns:minmax(250px,1fr) minmax(280px,.9fr);margin:22px 0;padding:28px}
.lsw-photo-intro{align-items:flex-start;display:flex;gap:16px}.lsw-photo-intro h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(24px,3vw,34px);line-height:1.1;margin:3px 0 9px}.lsw-photo-intro>div>p:last-child{color:#5e625e;margin:0;max-width:560px}.lsw-photo-icon{align-items:center;background:#164f40;border-radius:15px;color:#fff;display:flex;font-size:26px;height:54px;justify-content:center;line-height:1;width:54px}
.lsw-photo-form{align-items:center;display:flex;gap:12px}.lsw-photo-picker{background:#fff;border:1.5px dashed #b6ad9b;border-radius:16px;cursor:pointer;display:grid;flex:1;min-height:112px;padding:18px;place-items:center;text-align:center}.lsw-photo-picker:hover{background:#fbfdfc;border-color:#176b52}.lsw-photo-picker input{height:1px;opacity:0;position:absolute;width:1px}.lsw-photo-picker span{color:#164f40;font-weight:750}.lsw-photo-picker small{color:#747872;margin-top:3px}.lsw-photo-preview{border-radius:9px;height:78px;margin-top:10px;object-fit:cover;width:110px}.lsw-photo-status{grid-column:1/-1;margin:-8px 0 0;padding-left:70px}.lsw-photo-status.is-error{color:#a12727}.lsw-photo-status.is-success{color:#176b52}.lsw-photo-guide{border-top:1px solid rgba(108,82,43,.14);grid-column:1/-1;padding-top:16px}.lsw-photo-guide summary{color:#164f40;cursor:pointer;font-weight:750}.lsw-photo-guide ol{display:grid;gap:8px;margin:16px 0 8px;padding-left:22px}.lsw-photo-guide p{color:#676b66;font-size:.9em;margin:8px 0 0}
@media(max-width:760px){.lsw-photo-search{grid-template-columns:1fr;padding:22px}.lsw-photo-form{align-items:stretch;flex-direction:column}.lsw-photo-status{padding-left:0}.lsw-photo-intro{gap:11px}.lsw-photo-icon{height:44px;width:44px}}

/* Escaneo masivo de estanterías */
.lsw-shelf-scanner .lsw-page-hero{background:radial-gradient(circle at 82% 20%,rgba(232,172,56,.28),transparent 25%),linear-gradient(125deg,#0d3e30,#176b52 58%,#2c8066);border:0;color:#fff;box-shadow:0 22px 55px rgba(11,58,44,.2)}
.lsw-shelf-scanner .lsw-page-hero h1{color:#fff}.lsw-shelf-scanner .lsw-page-hero .lsw-eyebrow{color:#f3cf88!important}.lsw-shelf-scanner .lsw-page-hero p:last-child{color:rgba(255,255,255,.78)}
.lsw-scan-privacy{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2);border-radius:999px;color:#fff;font-size:.78rem;font-weight:750;padding:9px 14px;white-space:nowrap}
.lsw-scan-workspace{display:grid;gap:22px;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);margin-bottom:28px}
.lsw-scan-upload-card,.lsw-scan-guide,.lsw-shelf-review{background:#fff;border:1px solid rgba(18,98,71,.1);border-radius:22px;box-shadow:0 16px 45px rgba(20,45,36,.08);padding:28px}
.lsw-scan-heading{align-items:flex-start;display:flex;gap:13px;margin-bottom:20px}.lsw-scan-heading h2{font-family:Georgia,"Times New Roman",serif;font-size:1.65rem;margin:0 0 4px}.lsw-scan-heading p{color:var(--lsw-muted);margin:0}
.lsw-step-badge{align-items:center;background:var(--lsw-coral);border-radius:50%;color:#fff;display:flex;flex:0 0 auto;font-weight:850;height:36px;justify-content:center;width:36px}
.lsw-shelf-scan-form{display:grid;gap:14px}.lsw-shelf-photo-picker{align-items:center;background:linear-gradient(145deg,#f4f8f5,#fffaf0);border:2px dashed #aebfb5;border-radius:18px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;min-height:260px;overflow:hidden;padding:24px;position:relative;text-align:center}
.lsw-shelf-photo-picker:hover{border-color:var(--lsw-green)}.lsw-shelf-photo-picker input{height:100%;inset:0;opacity:0;position:absolute;width:100%;z-index:2}.lsw-shelf-camera{align-items:center;background:#e4f0ea;border-radius:16px;color:var(--lsw-green);display:flex;font-size:28px;height:60px;justify-content:center;margin-bottom:12px;width:60px}.lsw-shelf-photo-picker strong{color:var(--lsw-green);font-size:1.05rem}.lsw-shelf-photo-picker small{color:var(--lsw-muted)}
.lsw-shelf-photo-preview{border-radius:12px;inset:12px;max-height:235px;object-fit:contain;position:absolute;width:calc(100% - 24px);z-index:1}.lsw-shelf-photo-preview[hidden]{display:none}.lsw-shelf-photo-preview:not([hidden])~*{opacity:0}
.lsw-shelf-analyze{justify-self:start;min-width:205px}.lsw-shelf-scan-status{font-size:.85rem;margin:10px 0 0;min-height:1.4em}
.lsw-scan-guide{background:linear-gradient(150deg,#fbf7ed,#fff)}.lsw-scan-guide h2{font-size:1.15rem;margin-bottom:18px}.lsw-scan-guide ol{display:grid;gap:15px;list-style:none;margin:0;padding:0}.lsw-scan-guide li{align-items:flex-start;display:flex;gap:11px}.lsw-scan-guide li>span{align-items:center;background:#e7f1ec;border-radius:50%;color:var(--lsw-green);display:flex;flex:0 0 auto;font-size:.75rem;font-weight:850;height:28px;justify-content:center;width:28px}.lsw-scan-guide li div{display:grid}.lsw-scan-guide li b{font-size:.87rem}.lsw-scan-guide li small{color:var(--lsw-muted);font-size:.76rem;line-height:1.4}.lsw-scan-warning{background:#fff2dd;border-left:4px solid var(--lsw-gold);border-radius:8px;color:#61481c;font-size:.78rem;margin:22px 0 0;padding:11px 13px}
.lsw-shelf-review[hidden],.lsw-shelf-import-progress[hidden]{display:none}.lsw-shelf-review-toolbar{align-items:center;background:var(--lsw-paper);border-radius:13px;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px;padding:13px 16px}.lsw-shelf-review-toolbar label{align-items:center;display:flex;font-size:.82rem;font-weight:750;gap:9px}.lsw-shelf-review-toolbar select{background:#fff;border:1px solid var(--lsw-line);border-radius:8px;color:var(--lsw-ink);font:inherit;padding:7px 10px}.lsw-shelf-selection-count{color:var(--lsw-green);font-size:.82rem;font-weight:850}
.lsw-shelf-candidates{display:grid;gap:14px}.lsw-shelf-candidate{border:1px solid var(--lsw-line);border-radius:16px;box-shadow:0 7px 22px rgba(20,45,36,.04);padding:16px}.lsw-candidate-head{align-items:center;border-bottom:1px solid #edf0ed;display:flex;justify-content:space-between;margin-bottom:14px;padding-bottom:11px}.lsw-candidate-select{align-items:center;display:flex;font-size:.82rem;font-weight:850;gap:8px}.lsw-candidate-select input{accent-color:var(--lsw-green);height:18px;width:18px}.lsw-confidence{background:#fff1dc;border-radius:999px;color:#8a5706;font-size:.68rem;font-weight:850;padding:4px 8px}.lsw-confidence.is-high{background:#e6f3ec;color:var(--lsw-green)}
.lsw-candidate-body{display:grid;gap:15px;grid-template-columns:72px 1fr}.lsw-candidate-cover{align-items:center;background:#e8ede9;border-radius:7px;display:flex;height:108px;justify-content:center;overflow:hidden;width:72px}.lsw-candidate-cover img{height:100%;object-fit:cover;width:100%}.lsw-candidate-cover span{font-size:1.9rem}.lsw-candidate-fields{display:grid;gap:8px;grid-template-columns:1.2fr .8fr}.lsw-candidate-fields label,.lsw-candidate-match-area label{display:grid;gap:4px}.lsw-candidate-fields label span,.lsw-candidate-match-area label span{color:var(--lsw-muted);font-size:.65rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.lsw-candidate-fields input,.lsw-candidate-match{background:#fff;border:1px solid var(--lsw-line);border-radius:8px;color:var(--lsw-ink);font:inherit;min-height:40px;padding:7px 10px;width:100%}.lsw-candidate-raw{color:var(--lsw-muted);font-size:.7rem;grid-column:1/-1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lsw-candidate-match-area{align-items:end;display:grid;gap:9px;grid-template-columns:1fr auto;margin-top:13px}.lsw-candidate-rematch{background:#eef5f1;border:1px solid #d6e6de;border-radius:8px;color:var(--lsw-green);cursor:pointer;font:inherit;font-size:.75rem;font-weight:800;min-height:40px;padding:7px 11px}.lsw-candidate-match-status{font-size:.72rem;grid-column:1/-1;margin:0;min-height:1em}
.lsw-shelf-import-bar{align-items:center;background:linear-gradient(120deg,#0e4938,#176b52);border-radius:15px;color:#fff;display:flex;gap:20px;justify-content:space-between;margin-top:20px;padding:18px 20px}.lsw-shelf-import-bar p{display:grid;margin:0}.lsw-shelf-import-bar small{color:rgba(255,255,255,.7)}.lsw-shelf-import-bar .lsw-button{background:var(--lsw-gold);color:#183c30!important;flex:0 0 auto}.lsw-shelf-import-bar .lsw-button:disabled{background:#8aa197;color:#e8efec!important}
.lsw-shelf-import-progress{margin-top:18px}.lsw-shelf-progress-track{background:#e5ebe7;border-radius:99px;height:10px;overflow:hidden}.lsw-shelf-progress-track span{background:linear-gradient(90deg,var(--lsw-green),var(--lsw-gold));display:block;height:100%;transition:width .25s;width:0}.lsw-shelf-progress-label{font-size:.78rem;font-weight:750}.lsw-shelf-import-results{display:grid;gap:5px}.lsw-shelf-result{background:#f5f7f5;border-radius:7px;font-size:.76rem;margin:0;padding:7px 9px}
@media(max-width:820px){.lsw-scan-workspace{grid-template-columns:1fr}.lsw-shelf-scanner .lsw-page-hero{align-items:flex-start;flex-direction:column}.lsw-candidate-fields{grid-template-columns:1fr}.lsw-candidate-raw{grid-column:auto}.lsw-shelf-review-toolbar{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.lsw-scan-upload-card,.lsw-scan-guide,.lsw-shelf-review{padding:19px}.lsw-shelf-photo-picker{min-height:220px}.lsw-shelf-analyze{justify-self:stretch}.lsw-candidate-body{grid-template-columns:58px 1fr}.lsw-candidate-cover{height:87px;width:58px}.lsw-candidate-match-area{grid-template-columns:1fr}.lsw-candidate-rematch{width:100%}.lsw-shelf-import-bar{align-items:stretch;flex-direction:column}.lsw-shelf-import-bar .lsw-button{width:100%}}
