/* Biblioteca Digital 1.1.0 — visual refresh. Keeps 1.0 layout hooks for backwards compatibility. */
:root {
  --ink-soft: #58677d;
  --line-subtle: #e6eaf2;
  --menu-muted: #8190a5;
  --primary-tint: color-mix(in srgb, var(--primary) 9%, var(--surface));
  --primary-light: color-mix(in srgb, var(--primary) 5%, var(--surface));
  --secondary-tint: color-mix(in srgb, var(--secondary) 12%, var(--surface));
  --shadow-card: 0 2px 4px rgba(23,35,61,.02),0 12px 38px rgba(23,35,61,.035);
  --shadow-float: 0 26px 70px rgba(21,37,71,.18);
}
* { -webkit-tap-highlight-color: transparent; }
html { min-height: 100%; }
body {
  min-height:100vh;
  color:var(--text);
  background:var(--bg);
  font-kerning:normal;
  font-feature-settings:'ss01' on;
  -webkit-font-smoothing:antialiased;
}
::selection { background:color-mix(in srgb,var(--primary) 22%,transparent); }
a { transition:color .16s,background .16s,opacity .16s,transform .16s; }
a:hover { opacity:1; }
.ui-icon { width:19px;height:19px; flex:0 0 auto; vertical-align:middle; display:inline-block; }
.btn .ui-icon,.reader-btn .ui-icon,.backlink .ui-icon { width:17px;height:17px; }
:where(a,button,input,select,textarea):focus-visible {
  outline:3px solid color-mix(in srgb,var(--primary) 48%,transparent);
  outline-offset:3px;
}
h1,h2,h3,h4 { color:var(--text); letter-spacing:-.042em; }
h1 { font-size:clamp(1.7rem,2.5vw,2.45rem); font-weight:800; line-height:1.18; }
h2 { font-size:1.12rem; font-weight:800; letter-spacing:-.03em; }
h3 { font-weight:750; }
.eyebrow { font-size:.68rem;letter-spacing:.14em;font-weight:800;color:var(--primary);margin-bottom:10px; }
.muted,small { color:var(--muted); }
.shell { min-height:100vh;align-items:stretch; }
.sidebar {
  width:278px; flex:0 0 278px; height:100dvh;z-index:30;
  padding:21px 14px 14px;
  background:var(--surface);border-right:1px solid var(--border);
  box-shadow:6px 0 30px rgba(15,23,42,.012);
}
.side-brand-row { display:flex;align-items:center;justify-content:space-between;padding:0 8px; }
.brand { min-width:0; gap:12px; padding:8px 2px 22px; min-height:72px; }
.brand:hover { color:var(--text); }
.brand-emblem {
  width:47px; height:47px; border-radius:15px;display:grid;place-items:center;
  background:var(--primary-tint);border:1px solid color-mix(in srgb,var(--primary) 13%,var(--border)); flex:0 0 auto;
}
.brand-logo { width:33px;height:33px;object-fit:contain; }
.brand-text { font-weight:800;font-size:1.03rem;line-height:1.35;letter-spacing:-.03em; }
.brand-text small { font-size:.68rem;margin-top:4px;letter-spacing:0;font-weight:600; }
.side-workspace {
  display:flex;align-items:center;gap:11px;
  background:var(--bg);border:1px solid var(--border);
  padding:12px 11px;border-radius:13px;margin:2px 3px 14px;
}
.workspace-icon {display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:var(--surface);color:var(--primary);box-shadow:0 1px 4px #1827460d}
.workspace-copy {display:flex;flex-direction:column;min-width:0;flex:1;}
.workspace-copy strong {font-size:.78rem;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.workspace-copy small {font-size:.67rem;margin-top:3px;}
.workspace-chevron {width:15px;height:15px;color:var(--muted)}
.menu {padding:2px 0 12px;scrollbar-color:var(--border) transparent;scrollbar-width:thin;}
.menu-label {margin:25px 13px 11px;color:var(--menu-muted);font-size:.62rem;letter-spacing:.15em;font-weight:800;}
.menu-label:first-child {margin-top:12px;}
.nav-link {
  display:flex;align-items:center;gap:11px;position:relative;min-height:45px;
  padding:10px 12px;margin:4px 3px;border-radius:11px;
  font-size:.84rem;font-weight:650;color:var(--ink-soft);
}
.nav-link:hover { background:var(--primary-light);color:var(--primary); }
.nav-link.on { background:var(--primary-tint); color:var(--primary);font-weight:800; }
.nav-symbol { display:grid;place-items:center;width:23px;height:23px;flex:0 0 23px; }
.nav-symbol .ui-icon {width:19px;height:19px;}
.nav-text { flex:1;min-width:0; }
.nav-active-dot {display:block;width:6px;height:6px;border-radius:50%;background:var(--primary);flex:0 0 auto}
.side-bottom { padding:15px 4px 1px;margin:0 3px;gap:10px;border-top:1px solid var(--border); }
.side-bottom .avatar,.header-avatar { display:grid;place-items:center;flex:0 0 auto;width:39px;height:39px;border-radius:12px;color:var(--primary);background:var(--primary-tint);font-weight:800;font-size:.87rem; }
.side-user {flex:1;min-width:0;}
.side-user b {font-size:.79rem;font-weight:800;}
.side-user small {margin-top:2px;font-size:.7rem;}
.side-exit {padding:9px;border-radius:10px;color:var(--muted);display:grid;place-items:center;}
.side-exit:hover { background:var(--primary-tint);color:var(--primary); }
.side-exit .ui-icon {width:17px;height:17px;}
.main-area { flex:1; min-width:0; }
.topbar {
  height:82px;position:sticky;top:0;z-index:20;flex-shrink:0;
  padding:0 clamp(22px,3.4vw,54px);gap:20px;
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  border-bottom:1px solid var(--border);backdrop-filter:blur(16px);
}
.top-left {display:flex;align-items:center;gap:13px;min-width:0;}
.top-titles {display:flex;flex-direction:column;gap:2px;min-width:0;}
.top-kicker {font-size:.69rem;color:var(--muted);font-weight:650;}
.top-title { font-size:.98rem;color:var(--text);font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.top-actions {gap:15px;}
.top-search {
  width:clamp(175px,19vw,260px);height:40px;padding:0 12px;display:flex;align-items:center;gap:9px;
  background:var(--bg);border:1px solid var(--border);border-radius:10px;color:var(--muted);
  font-size:.77rem;white-space:nowrap;
}
.top-search:hover { color:var(--primary);border-color:color-mix(in srgb,var(--primary) 30%,var(--border)); }
.top-search .ui-icon {width:17px;height:17px;}
.top-search span {flex:1;}
kbd {font:600 .7rem 'DM Sans',sans-serif;padding:1px 6px;border:1px solid var(--border);background:var(--surface);border-radius:5px;color:var(--muted)}
.top-separator { width:1px;height:29px;background:var(--border); }
.header-avatar {border-radius:50%;height:36px;width:36px;}
.user-hello {font-weight:750;color:var(--text);font-size:.8rem;max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.icon-button {border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;width:39px;height:39px;display:grid;place-items:center;padding:0;}
.icon-button:hover {color:var(--primary);background:var(--primary-tint);}
.mobile-menu,.mobile-close,.sidebar-backdrop {display:none;}
.content { width:100%;max-width:1620px;margin:0 auto;padding:38px clamp(22px,3.4vw,54px) 56px; }
.footer { padding:18px 15px 25px;font-size:.71rem;color:var(--menu-muted); }
.footer-dot {padding:0 7px;}
.page-heading {margin-bottom:27px;align-items:flex-end;}
.page-heading .eyebrow {margin-bottom:8px;}
.page-heading h1 {margin-bottom:7px;}
.page-heading p:last-child { margin:0;max-width:660px;font-size:.87rem;line-height:1.7; }
.btn { border-radius:11px;padding:11px 17px;font-weight:800;font-size:.81rem;min-height:43px;letter-spacing:.004em;}
.btn-primary { background:var(--primary);border-color:var(--primary);color:white;box-shadow:0 5px 15px color-mix(in srgb,var(--primary) 20%,transparent); }
.btn-primary:hover {filter:brightness(1.09);box-shadow:0 8px 20px color-mix(in srgb,var(--primary) 24%,transparent);}
.btn-soft {background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:0 1px 3px #12244a06;}
.btn-soft:hover {background:var(--primary-tint);color:var(--primary);}
.btn-white {background:#fff;color:var(--primary);border-color:#ffffff35;box-shadow:0 6px 18px #00000016;}
.btn-white:hover {background:#f2f3ff;}
.btn.small { min-height:35px; }
.hero {
  min-height:216px;padding:38px clamp(24px,3.4vw,46px);gap:25px;border:0;
  border-radius:calc(var(--radius) + 7px);
  background:linear-gradient(110deg,color-mix(in srgb,var(--primary) 84%,#0d2547),var(--primary) 75%,color-mix(in srgb,var(--secondary) 35%,var(--primary)));
  box-shadow:0 18px 40px color-mix(in srgb,var(--primary) 18%,transparent);
}
.hero:after {width:360px;height:360px;right:-70px;top:-207px;border:64px solid #ffffff0b;}
.hero:before {content:'';position:absolute;width:190px;height:190px;border:1px solid #ffffff25;border-radius:38px;right:14%;bottom:-139px;transform:rotate(30deg);pointer-events:none;}
.hero h1 {color:#fff;font-size:clamp(1.67rem,2.8vw,2.35rem);}
.hero p {font-size:.88rem;line-height:1.75;max-width:560px;}
.hero .eyebrow {font-size:.67rem;color:#d7fdff;}
.hero .btn { flex:0 0 auto; }
.stats {gap:17px;margin-bottom:23px;}
.stat {
  padding:22px 23px;min-height:145px;position:relative;
  border-radius:calc(var(--radius) + 1px);border:1px solid var(--border);
  box-shadow:var(--shadow-card);transition:transform .18s,box-shadow .18s;
}
.stat:hover {transform:translateY(-2px);box-shadow:0 14px 35px #14284b12;}
.stat-icon {display:grid;place-items:center;width:42px;height:42px;margin-bottom:17px;border-radius:13px;background:var(--primary-tint);color:var(--primary);}
.stat-icon .ui-icon {height:21px;width:21px;}
.stat small {font-size:.76rem;color:var(--muted);font-weight:650;margin:0 0 5px;line-height:1.5;}
.stat strong {font-size:1.76rem;color:var(--text);font-weight:800;letter-spacing:-.055em;}
.panel,.table-panel {background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 2px);box-shadow:var(--shadow-card);padding:26px;}
.panel h2 {margin-bottom:18px;}
.panel-head {margin-bottom:19px;}
.panel-head h2 {margin:0;}
.panel-head a {display:inline-flex;align-items:center;gap:5px;color:var(--primary);font-size:.78rem;}
.panel-head a .ui-icon {width:15px;height:15px;}
.two-col {gap:20px;margin-top:21px;}
.quick-grid {gap:12px;}
.quick-grid a {min-height:115px;border:1px solid var(--border);border-radius:12px;padding:15px 16px;color:var(--primary);font-size:0;background:var(--surface);}
.quick-grid a .ui-icon {width:21px;height:21px;}
.quick-grid a:hover {background:var(--primary-light);border-color:color-mix(in srgb,var(--primary) 20%,var(--border));transform:translateY(-1px);}
.quick-grid b {margin-top:10px;font-size:.82rem;letter-spacing:-.01em;}
.quick-grid span {font-size:.72rem;}
.list-line {padding:13px 2px;border-color:var(--border);border-radius:7px;}
.list-line:hover {background:var(--primary-light);}
.mini-icon {width:39px;height:39px;display:grid;place-items:center;padding:0;border-radius:11px;color:var(--primary);background:var(--primary-tint);}
.mini-icon .ui-icon {width:19px;height:19px;}
.list-line b {font-size:.83rem;}
.list-line small {margin-top:4px;}
.arrow {margin-left:auto;color:var(--menu-muted);}
.arrow .ui-icon {width:17px;height:17px;}
.empty {padding:50px 17px;}
.empty-icon {width:67px;height:67px;margin:0 auto;display:grid;place-items:center;border-radius:19px;background:var(--primary-tint);color:var(--primary);opacity:1;}
.empty-icon .ui-icon {width:32px;height:32px;}
.empty h3 {font-size:1.05rem;}
.empty p {line-height:1.7;}
.filters {padding:15px;gap:11px;border-radius:calc(var(--radius) + 1px);box-shadow:var(--shadow-card);}
.filters .search-input {min-height:46px;}
.search-input {gap:4px;background:var(--field);border-radius:10px;padding-left:13px;}
.search-input .ui-icon {width:18px;height:18px;flex:0 0 auto;}
.search-input input {height:44px;font-size:.85rem;}
.filters select {max-width:240px;}
input,select,textarea {min-height:44px;border-radius:10px;border-color:var(--border);background:var(--field);font-size:.86rem;}
input:hover,select:hover,textarea:hover {border-color:color-mix(in srgb,var(--primary) 26%,var(--border));}
input:focus,select:focus,textarea:focus {border-color:var(--primary);}
input[type=checkbox] {min-height:0;}
input[type=file] {min-height:44px;}
input[type=color] {cursor:pointer;min-height:48px;}
.results {font-size:.77rem;letter-spacing:.01em;margin-bottom:16px;}
.book-grid {gap:19px;}
.book-card {border-radius:calc(var(--radius) + 1px);border:1px solid var(--border);box-shadow:var(--shadow-card);overflow:hidden;}
.book-card:hover {transform:translateY(-5px);box-shadow:0 20px 36px rgba(22,39,80,.12);}
.book-cover {height:260px;background:linear-gradient(145deg,#e9edfa,#e1e7f2);overflow:hidden;padding:11px;}
.book-cover img {max-width:100%;max-height:100%;object-fit:contain;border-radius:3px;filter:drop-shadow(0 7px 7px #182a5028);}
.cover-placeholder {width:82%;height:92%;max-width:190px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:4px 13px 13px 4px;background:linear-gradient(140deg,color-mix(in srgb,var(--primary) 72%,#142849),color-mix(in srgb,var(--primary) 87%,#101e35));box-shadow:6px 8px 19px #15284a25;color:#ffffffdc;font-size:0;}
.cover-placeholder:before {content:'';position:absolute;left:10px;top:0;bottom:0;width:2px;background:#ffffff23;box-shadow:4px 0 #00000010;}
.cover-placeholder:after {content:'';position:absolute;border:1px solid #ffffff32;border-radius:50%;width:170px;height:170px;right:-75px;top:-75px;}
.cover-art {position:relative;display:grid;place-items:center;width:70px;height:70px;border:1px solid #ffffff50;border-radius:50%;}
.cover-art .ui-icon {width:34px;height:34px;}
.cover-deco {position:absolute;bottom:29px;height:2px;width:30%;background:#ffffff57;}
.cover-badge {bottom:17px;left:16px;font-size:.67rem;font-weight:800;color:var(--primary);border-radius:7px;padding:5px 10px;box-shadow:0 3px 10px #00000015;}
.book-info {padding:18px 16px 20px;min-height:117px;}
.book-info h3 {font-size:.88rem;margin:0 0 8px;line-height:1.38;}
.book-info p,.book-info small {font-size:.75rem;line-height:1.5;}
.book-info p {margin-bottom:4px;}
.book-info small {color:var(--menu-muted);}
.pagination a {border-radius:10px;background:var(--surface);box-shadow:0 1px 3px #0000000c;border:1px solid var(--border);}
.pagination .on {background:var(--primary);color:white;border-color:var(--primary);}
.backlink {display:inline-flex;align-items:center;gap:9px;color:var(--ink-soft);font-size:.8rem;font-weight:750;margin-bottom:26px;}
.backlink:hover {color:var(--primary);}
.book-detail {gap:32px;}
.book-detail-cover {border-radius:calc(var(--radius) + 3px);background:color-mix(in srgb,var(--primary) 5%,var(--surface));}
.book-detail-content h1 {margin-top:4px;}
.book-detail-content .eyebrow {line-height:1.6;}
.subtitle {font-size:1.03rem;}
.book-meta {font-size:.79rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:18px 0;line-height:1.65;}
.actions {gap:12px;}
.book-record {gap:18px;}
.book-record .panel h2 {font-size:1rem;}
.catalog-card {border-radius:10px;border:1px solid var(--border);background:var(--bg);}
.reference-text {color:var(--text);}
.responsive-table {border-radius:10px;}
table {font-size:.82rem;}
th {background:var(--bg);font-size:.66rem;letter-spacing:.085em;}
th,td {padding:16px 15px;}
tbody tr:hover {background:color-mix(in srgb,var(--primary) 2.5%,var(--surface));}
td b {font-size:.83rem;}
td small {font-size:.72rem;}
.table-actions a:hover,.table-actions button:hover {text-decoration:underline;}
.pill {letter-spacing:.005em;font-size:.68rem;}
.admin-form {gap:17px;}
.admin-form .panel h2 {padding-bottom:14px;border-bottom:1px solid var(--border);margin-bottom:17px;}
.form-grid {gap:17px 20px;}
label {font-size:.8rem;font-weight:750;gap:8px;}
label small {font-size:.71rem;}
.check-grid {gap:10px;}
.check-item {border-radius:10px;transition:background .15s,border-color .15s;}
.check-item:hover {border-color:color-mix(in srgb,var(--primary) 28%,var(--border));}
.check-item:has(input:checked) {background:var(--primary-tint);border-color:color-mix(in srgb,var(--primary) 24%,var(--border));}
.form-footer {padding:7px 0 0;}
.alert {display:flex;align-items:center;gap:10px;border-radius:11px;font-weight:600;line-height:1.6;}
.alert .ui-icon {flex:0 0 auto;width:19px;height:19px;}
.alert-ok {background:#ebfaf3;color:#12694a;border-color:#bfe8d5;}
.alert-error {background:#fff0f1;color:#a92c3d;border-color:#f4ccd2;}
.alert.neutral {display:block;line-height:1.75;}
.security-line {display:flex;align-items:center;gap:10px;color:var(--text);}
.security-line .ui-icon {color:var(--secondary);width:17px;height:17px;}
.reader-header {margin-bottom:21px;}
.reader-lock {display:inline-flex;align-items:center;gap:7px;font-size:.7rem;background:var(--secondary-tint);color:var(--secondary);border-color:color-mix(in srgb,var(--secondary) 20%,var(--border));}
.reader-lock .ui-icon {height:17px;width:17px;}
.reader-app {border-radius:calc(var(--radius) + 3px);box-shadow:var(--shadow-card);}
.reader-toolbar {padding:15px 12px;gap:10px;background:var(--surface);}
.reader-btn {display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:10px;padding:9px 12px;background:var(--bg);color:var(--text);}
.reader-btn:hover {color:var(--primary);border-color:color-mix(in srgb,var(--primary) 28%,var(--border));}
.reader-canvas-wrap {background:color-mix(in srgb,var(--bg) 79%,#bac7dc);}
.reader-footer {line-height:1.6;}
.auth-page {min-height:100dvh;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);background:var(--surface);}
.auth-aside {background:linear-gradient(142deg,#112c4d 0%,color-mix(in srgb,var(--primary) 88%,#103b5a) 75%,color-mix(in srgb,var(--secondary) 35%,var(--primary)) 100%);}
.auth-aside-inner {max-width:470px;}
.auth-aside h1 {font-size:clamp(2.2rem,3.3vw,3.6rem);line-height:1.19;margin-bottom:18px;color:#fff;}
.auth-aside p {font-size:.94rem;line-height:1.85;max-width:430px;}
.auth-aside .eyebrow {font-size:.7rem;color:#baf7ed;}
.auth-symbol {font-size:0;border-radius:17px;padding:0;width:66px;height:66px;align-items:center;justify-content:center;margin-bottom:60px;background:#ffffff1f;border:1px solid #ffffff30;}
.auth-symbol .ui-icon {width:33px;height:33px;}
.auth-main {padding:40px clamp(27px,4.5vw,72px);}
.auth-card {max-width:410px;}
.auth-brand {margin-bottom:63px;}
.auth-brand img {height:46px;width:46px;background:var(--primary-tint);border:1px solid var(--border);padding:7px;border-radius:13px;}
.auth-brand strong {font-size:1.07rem;letter-spacing:-.03em;}
.auth-brand small {font-size:.73rem;}
.auth-card h2 {font-size:1.85rem;margin-bottom:10px;}
.auth-card .muted {font-size:.85rem;line-height:1.7;}
.auth-card label {font-size:.8rem;}
.auth-card .btn {margin-top:7px;}
.auth-note {font-size:.73rem!important;line-height:1.6;}
.setup-page {padding:36px 15px;}
.setup-card {max-width:780px;box-shadow:var(--shadow-float);}
.setup-icon {border-radius:16px;background:var(--primary);}
.setup-icon svg {width:32px;height:32px;}
.setup-heading h1 {font-size:2rem;}
.setup-heading p {font-size:.84rem;}

/* DARK MODE. The values are scoped to body to respect the administrator's setting. */
body.theme-dark {
  --bg:#101827;--surface:#182338;--text:#edf2fa;--muted:#a3b0c7;
  --ink-soft:#c5cee0;--menu-muted:#92a2bd;--border:#303f59;--field:#131e30;
  --shadow-card:0 5px 22px #030b172d;
}
body.theme-dark .topbar {background:color-mix(in srgb,var(--surface) 94%,transparent);}
body.theme-dark .book-cover {background:linear-gradient(145deg,#1e324b,#26354d);}
body.theme-dark .cover-placeholder {box-shadow:6px 8px 19px #0005;}
body.theme-dark .hero {color:white;}
body.theme-dark .auth-aside h1,body.theme-dark .hero h1 {color:white;}
body.theme-dark .btn-white {color:#233052;background:#fff;}
body.theme-dark .alert-ok {background:#10382e;color:#96f2c7;border-color:#1b6b57;}
body.theme-dark .alert-error {background:#431f2a;color:#ffc5ce;border-color:#753444;}
body.theme-dark .pill.green {background:#16483b;color:#8ce8c8;}
body.theme-dark .pill.gray {background:#26374e;color:#b8c7e1;}

@media (max-width:1240px) {
  .sidebar {width:250px;flex-basis:250px;}
  .content {padding:30px 24px 48px;}
  .topbar {padding:0 24px;}
  .stats {gap:12px;}
  .stat {padding:19px;}
  .book-cover {height:230px;}
}
@media (max-width:980px) {
  .sidebar {position:fixed;top:0;bottom:0;left:0;height:100dvh;width:min(310px,calc(100vw - 54px));padding:19px 14px 15px;transform:translateX(-104%);transition:transform .23s ease;box-shadow:var(--shadow-float);visibility:hidden;}
  body.sidebar-open .sidebar {transform:translateX(0);visibility:visible;}
  .sidebar-backdrop {position:fixed;inset:0;z-index:29;background:#09183091;opacity:0;transition:opacity .23s;pointer-events:none;display:block;}
  body.sidebar-open .sidebar-backdrop {opacity:1;pointer-events:auto;}
  .side-brand-row {padding:0 5px;}
  .brand-text,.menu-label,.side-bottom div {display:block;}
  .side-bottom {justify-content:flex-start;}
  .side-user {display:block!important;}
  .nav-link {font-size:.84rem;justify-content:flex-start;padding:10px 12px;}
  .nav-symbol {width:23px;flex:0 0 23px;}
  .nav-link .nav-text {display:inline;}
  .nav-link .nav-active-dot {display:block;}
  .menu {display:block;width:100%;overflow-y:auto;overflow-x:hidden;}
  .menu-label {display:block;}
  .brand {justify-content:flex-start;}
  .sidebar .brand-logo {width:32px;height:32px;}
  .mobile-menu,.mobile-close {display:grid;}
  .topbar {height:72px;}
  .two-col,.cols-2-1,.book-record {grid-template-columns:1fr;}
  .book-grid {grid-template-columns:repeat(3,minmax(0,1fr));}
  .stats {grid-template-columns:repeat(2,minmax(0,1fr));}
  .book-detail {grid-template-columns:190px minmax(0,1fr);}
  .book-cover {height:240px;}
  .auth-brand {margin-bottom:32px;}
  .auth-aside {padding:38px;}
}
@media (max-width:650px) {
  .sidebar {top:0;bottom:0;width:min(310px,calc(100vw - 45px));height:100dvh;flex-direction:column;padding:19px 14px;}
  .sidebar .brand,.sidebar .menu-label,.sidebar .side-bottom {display:flex;}
  .sidebar .menu-label {display:block;}
  .menu {display:block;width:100%;}
  .nav-link {min-width:0;min-height:45px;margin:4px 3px;font-size:.84rem;}
  .nav-symbol .ui-icon {width:19px;height:19px;}
  .main-area {padding-bottom:0;}
  .topbar {height:64px;padding:0 15px;gap:10px;}
  .top-title {display:block;font-size:.84rem;}
  .top-kicker {font-size:.62rem;}
  .top-left {gap:10px;}
  .top-search {width:39px;height:39px;justify-content:center;padding:0;}
  .top-search span,.top-search kbd {display:none;}
  .top-separator,.user-hello {display:none;}
  .top-actions {gap:9px;}
  .header-avatar {width:34px;height:34px;}
  .content {padding:22px 15px 40px;}
  .hero {padding:29px 24px;min-height:0;}
  .hero h1 {font-size:1.67rem;}
  .hero p {font-size:.84rem;}
  .hero .btn {margin-top:23px;}
  .page-heading {margin-bottom:22px;gap:12px;}
  .stats {gap:11px;}
  .stat {min-height:131px;padding:15px;}
  .stat strong {font-size:1.55rem;}
  .stat-icon {width:38px;height:38px;margin-bottom:13px;}
  .stat-icon .ui-icon {width:20px;height:20px;}
  .panel {padding:18px;}
  .book-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .book-cover {height:205px;padding:8px;}
  .book-info {padding:13px 12px 15px;min-height:105px;}
  .book-info h3 {font-size:.8rem;}
  .cover-art {width:57px;height:57px;}
  .cover-art .ui-icon {width:26px;height:26px;}
  .cover-badge {left:10px;bottom:11px;font-size:.62rem;}
  .book-detail {grid-template-columns:1fr;}
  .book-detail-cover {max-width:210px;height:285px;}
  .form-grid {grid-template-columns:1fr;}
  .check-grid {grid-template-columns:1fr;}
  .quick-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .quick-grid a {min-height:110px;padding:13px;}
  .quick-grid b {font-size:.76rem;}
  .filters {flex-direction:column;padding:12px;}
  .filters select {max-width:100%;}
  .actions .btn {white-space:normal;}
  .reader-lock {display:inline-flex;}
  .reader-header {align-items:flex-start;}
  .reader-toolbar {gap:6px;}
  .reader-btn {padding:8px;}
  .reader-canvas-wrap {padding:12px 5px;}
  .auth-page {display:flex;flex-direction:column;}
  .auth-aside {display:none;}
  .auth-main {min-height:100dvh;place-items:center;padding:30px 25px;}
  .auth-brand {margin-bottom:47px;}
  .auth-card h2 {font-size:1.75rem;}
  .setup-card {padding:23px 18px;}
}
@media (max-width:370px) {
  .book-grid {gap:9px;}
  .book-cover {height:172px;}
  .top-title {max-width:133px;}
  .stat strong {font-size:1.4rem;}
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after {animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
}
@media print {
  .reader-app,.reader-canvas-wrap,.canvas-holder {display:none!important;}
  body:has(.reader-app):before {content:'Esta leitura está disponível somente no portal.';display:block;padding:3rem;font:700 18px system-ui;}
}

/* v1.2.3 · Filtros multi-categoria em listagem compacta */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.catalog-filters{display:flex;flex-wrap:wrap;gap:14px;align-items:stretch;padding:16px}
.catalog-search-bar{display:flex;flex:1 1 100%;gap:10px;align-items:center;flex-wrap:wrap}
.catalog-filters .search-input{flex:1 1 360px}
.catalog-filter-actions{display:flex;gap:8px;flex-wrap:wrap}
.category-filters{flex:1 0 100%;min-width:0;border:1px solid var(--border,#e1e5ee);border-radius:14px;padding:14px;background:var(--surface,#fff)}
.category-filter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}
.category-filter-title h2{margin:0 0 4px;font-size:1rem}
.category-filter-title .eyebrow{margin-bottom:4px;font-size:.62rem}
.category-filter-title p{margin:0;max-width:760px;line-height:1.5;font-size:.8rem}
.category-filter-summary{color:var(--muted,#718096)}
.category-filter-tools{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.category-filter-tools .btn.small{min-height:34px;padding:8px 12px;font-size:.75rem;border-radius:9px}
.category-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.category-filter-item{position:relative;display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--border,#e1e5ee);border-radius:8px;cursor:pointer;background:var(--surface,#fff);min-height:44px;transition:border-color .14s,background .14s;min-width:0}
.category-filter-item:hover{border-color:color-mix(in srgb,var(--primary,#4753c6) 16%,var(--border,#e1e5ee));background:color-mix(in srgb,var(--primary,#4753c6) 2%,var(--surface,#fff))}
.category-filter-item:has(input:checked){border-color:color-mix(in srgb,var(--primary,#4753c6) 30%,var(--border,#e1e5ee));background:color-mix(in srgb,var(--primary,#4753c6) 5%,var(--surface,#fff))}
.category-filter-item:has(input:focus-visible){outline:2px solid color-mix(in srgb,var(--primary,#4753c6) 32%,transparent);outline-offset:2px}
.category-filter-checkbox{appearance:none;-webkit-appearance:none;flex:0 0 15px;width:15px;height:15px;min-height:15px;border-radius:4px;border:1.5px solid color-mix(in srgb,var(--primary,#4753c6) 22%,var(--border,#e1e5ee));background:var(--surface,#fff);display:grid;place-items:center;cursor:pointer;transition:border-color .14s,background .14s;margin:0}
.category-filter-checkbox::after{content:'';width:7px;height:4px;border-left:2px solid transparent;border-bottom:2px solid transparent;transform:rotate(-45deg) scale(.7);margin-top:-1px;opacity:0;transition:opacity .14s,border-color .14s,transform .14s}
.category-filter-checkbox:checked{background:var(--primary,#4753c6);border-color:var(--primary,#4753c6)}
.category-filter-checkbox:checked::after{opacity:1;border-color:#fff;transform:rotate(-45deg) scale(1)}
.category-filter-copy{display:flex;flex-direction:column;min-width:0;flex:1}
.category-filter-copy strong{font-size:.82rem;line-height:1.2;color:var(--text,#17223d);font-weight:700}
.category-filter-copy small{margin-top:0;font-size:.66rem;color:var(--muted,#718096);line-height:1.2}
.category-filter-tail{display:none}
.category-filter-foot{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--border,#e1e5ee)}
.category-filter-foot p{margin:0;max-width:850px;font-size:.74rem;line-height:1.5}
.category-filter-count{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;border:1px solid var(--border,#e1e5ee);border-radius:999px;padding:5px 10px;background:var(--bg,#f5f7fb);font-size:.75rem;font-weight:700;color:var(--ink-soft,#4e5d78)}
.category-filter-count b{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--primary-tint);color:var(--primary,#4753c6);font-size:.72rem}
.category-filter-empty{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px dashed var(--border,#d7dee9);border-radius:10px;background:var(--surface,#fff)}
.category-filter-empty b{display:block;margin-bottom:4px}
.cover-auto-preview{display:flex;gap:16px;align-items:center;padding:14px;border:1px dashed var(--border,#d7dee9);border-radius:var(--radius,14px)}
.cover-auto-thumbnail{display:grid;place-items:center;flex:0 0 82px;width:82px;height:110px;border-radius:7px;background:var(--surface,#f5f7fb);overflow:hidden;box-shadow:0 4px 14px #0001}
.cover-auto-thumbnail img{width:100%;height:100%;object-fit:contain}
.cover-auto-thumbnail svg{width:38px;height:38px;opacity:.45}
.cover-auto-preview p{margin:.3rem 0 0}
@media(max-width:980px){.category-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.category-filter-head,.category-filter-foot{flex-direction:column;align-items:stretch}.category-filter-tools,.catalog-filter-actions{width:100%}.category-filter-tools .btn,.catalog-filter-actions .btn{flex:1 1 auto;justify-content:center}.category-filter-count{align-self:flex-start}}
@media(max-width:680px){.catalog-filters{padding:12px}.catalog-filters .search-input{flex-basis:100%}.catalog-filter-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.category-filters{padding:12px}.category-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-filter-item{padding:6px 8px;min-height:40px}.category-filter-copy strong{font-size:.8rem}.category-filter-copy small{font-size:.64rem}}
@media(max-width:480px){.catalog-filter-actions{grid-template-columns:1fr}.category-filter-tools{display:grid;grid-template-columns:1fr 1fr}.category-filter-grid{grid-template-columns:1fr}.category-filter-title p{font-size:.76rem}.category-filter-foot p{font-size:.7rem}.category-filter-count{width:100%;justify-content:center}}

/* 1.2.6 — Vinculação explícita de múltiplas categorias no cadastro do título */
.title-category-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.title-category-header h2{margin:0 0 8px!important;padding:0 0 10px;border-bottom:1px solid var(--border)}
.title-category-header p{margin:0;line-height:1.6;max-width:760px}
.title-category-counter{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;flex:0 0 auto;padding:7px 12px;border:1px solid color-mix(in srgb,var(--primary) 23%,var(--border));border-radius:9px;background:var(--primary-tint);color:var(--primary);font-size:.77rem;font-weight:800}
.title-category-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.title-category-actions .btn.small{min-height:32px;padding:7px 10px}
.title-category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}
.title-category-option{display:flex;flex-direction:row;align-items:center;gap:8px;min-width:0;min-height:37px;padding:7px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface);font-size:.78rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s}
.title-category-option:hover{background:var(--primary-light)}
.title-category-option:has(input:checked){background:var(--primary-tint);border-color:color-mix(in srgb,var(--primary) 28%,var(--border))}
.title-category-option:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}
.title-category-option input{appearance:auto;-webkit-appearance:checkbox;flex:0 0 auto;margin:0;width:15px;height:15px;min-height:15px;accent-color:var(--primary)}
.title-category-option span{min-width:0;overflow-wrap:anywhere;line-height:1.3}
.title-category-note{padding:10px 0;margin:0 0 13px!important;border-bottom:1px solid var(--border);line-height:1.65}
.title-category-tags{display:flex;flex-wrap:wrap;gap:5px;min-width:190px;max-width:480px}
.title-category-tag{font-size:.7rem;color:var(--ink-soft);font-weight:700;background:var(--primary-light);border:1px solid var(--border);border-radius:7px;padding:4px 7px}
@media(max-width:1240px){.title-category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.title-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.title-category-header{flex-direction:column}.title-category-grid{grid-template-columns:1fr 1fr}.title-category-option{font-size:.72rem;padding:6px;gap:6px}.title-category-actions{display:grid;grid-template-columns:1fr 1fr}.title-category-actions .btn{font-size:.71rem;justify-content:center}}
@media(max-width:360px){.title-category-grid{grid-template-columns:1fr}}
