0,7..72,600;1,7..72,400&family=Source+Sans+3:wght@400;600&family=IBM+Plex+Mono:wght@400&display=swap");

/* ---- base ---- */
body { margin: 0; font-family: var(--font-sans); font-size: 14px; line-height: 20px; background: var(--paper); color: var(--ink); -webkit-font-smoothing: antialiased; }
.lv-pad { padding: var(--space-4); }
.lv-row { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; padding: var(--space-4); }
.lv-stack { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4); }
.lv-num { font-variant-numeric: tabular-nums; }
.lv-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.lv-icon { flex: none; display: block; }
:where(.lv-btn, .lv-input, .lv-tab, .lv-tree-row, .lv-card, .lv-cite, .lv-tag-remove, .lv-save-link, .lv-check input):focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-ring); }

/* ---- Button ---- */
.lv-btn { font: inherit; font-size: 14px; line-height: 20px; font-weight: 600; display: inline-flex; align-items: center; gap: var(--space-2); height: var(--control-height); padding: 0 var(--space-3); border-radius: var(--radius-sm); border: 1px solid var(--line-strong); background: var(--surface); color: var(--ink); cursor: pointer; white-space: nowrap; }
.lv-btn:hover { background: var(--surface-sunken); }
.lv-btn:disabled { cursor: not-allowed; color: var(--ink-muted); border-color: var(--line); background: var(--surface-sunken); }
.lv-btn-primary { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.lv-btn-primary:hover { background: var(--accent-strong); border-color: var(--accent-strong); }
.lv-btn-quiet { background: transparent; border-color: transparent; font-weight: 400; }
.lv-btn-quiet:hover { background: var(--selected); }
.lv-btn-danger { background: var(--danger); border-color: var(--danger); color: var(--on-danger); }
.lv-btn-danger:hover { background: var(--danger); filter: brightness(.92); }
.lv-btn-compact { height: 28px; padding: 0 var(--space-2); }
.lv-btn-icononly { width: var(--control-height); padding: 0; justify-content: center; }
.lv-btn-compact.lv-btn-icononly { width: 28px; }

/* ---- TextField ---- */
.lv-field { display: flex; flex-direction: column; gap: var(--space-1); min-width: 220px; }
.lv-field-label { font-weight: 600; }
.lv-input-wrap { position: relative; }
.lv-input { box-sizing: border-box; width: 100%; font: inherit; color: var(--ink); background: var(--surface); height: var(--control-height); padding: 0 var(--space-3); border: 1px solid var(--line-strong); border-radius: var(--radius-sm); }
.lv-input::placeholder { color: var(--ink-muted); }
.lv-input-withicon { padding-left: 32px; }
.lv-input-icon { position: absolute; left: 10px; top: 8px; color: var(--ink-muted); }
.lv-textarea { height: auto; padding: var(--space-2) var(--space-3); resize: vertical; }
.lv-input[aria-invalid="true"] { border-color: var(--danger); border-width: 2px; }
.lv-field-hint, .lv-field-error { margin: 0; font-size: 12px; line-height: 16px; color: var(--ink-muted); display: flex; gap: var(--space-1); align-items: center; }
.lv-field-error { color: var(--danger); }

/* ---- Checkbox ---- */
.lv-check { position: relative; display: inline-grid; grid-template-columns: 16px auto; column-gap: var(--space-2); align-items: center; cursor: pointer; }
.lv-check input { position: absolute; left: 0; top: 2px; width: 16px; height: 16px; margin: 0; opacity: 0; cursor: pointer; border-radius: var(--radius-sm); }
.lv-check-box { width: 16px; height: 16px; box-sizing: border-box; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); background: var(--surface); color: transparent; display: grid; place-items: center; }
.lv-check input:checked + .lv-check-box { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.lv-check input:focus-visible + .lv-check-box { box-shadow: var(--focus-ring); }
.lv-check-hint { grid-column: 2; font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.lv-check.is-disabled { cursor: not-allowed; color: var(--ink-muted); }

/* ---- Tabs ---- */
.lv-tabs { display: inline-flex; gap: 2px; padding: 2px; background: var(--surface-sunken); border: 1px solid var(--line); border-radius: var(--radius-md); }
.lv-tab { font: inherit; display: inline-flex; align-items: center; gap: var(--space-2); height: 28px; padding: 0 var(--space-3); border: 1px solid transparent; border-radius: var(--radius-sm); background: transparent; color: var(--ink-muted); cursor: pointer; }
.lv-tab:hover { color: var(--ink); }
.lv-tab.is-active { background: var(--surface); color: var(--ink); font-weight: 600; border-color: var(--line); }

/* ---- StatusBadge ---- */
.lv-status { display: inline-flex; align-items: center; gap: var(--space-1); font-size: 12px; line-height: 16px; padding: 2px var(--space-2); border-radius: var(--radius-sm); white-space: nowrap; }
.lv-status-planned { color: var(--ink-muted); background: var(--surface-sunken); }
.lv-status-draft { color: var(--ochre); background: var(--ochre-soft); }
.lv-status-review { color: var(--blue); background: var(--blue-soft); }
.lv-status-revised { color: var(--accent); background: var(--accent-soft); }
.lv-status-compact { background: transparent; padding: 0; }

/* ---- Tag ---- */
.lv-tag { display: inline-flex; align-items: center; gap: 2px; font-size: 12px; line-height: 16px; padding: 1px var(--space-2); border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink-muted); background: var(--surface); }
.lv-tag-remove { display: grid; place-items: center; width: 16px; height: 16px; margin-right: -4px; padding: 0; border: 0; border-radius: var(--radius-sm); background: transparent; color: inherit; cursor: pointer; }
.lv-tag-remove:hover { background: var(--selected); color: var(--ink); }

/* ---- SaveIndicator ---- */
.lv-save { display: inline-flex; align-items: center; gap: var(--space-1); font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.lv-save-saved .lv-icon { color: var(--blue); }
.lv-save-dirty, .lv-save-saving { color: var(--ochre); }
.lv-save-error { color: var(--danger); font-weight: 600; }
.lv-save-link { font: inherit; font-weight: 600; color: inherit; background: none; border: 0; padding: 0 2px; text-decoration: underline; cursor: pointer; border-radius: var(--radius-sm); }
@media (prefers-reduced-motion: no-preference) { .lv-pulse { animation: lv-pulse 1.4s ease-in-out infinite; } }
@keyframes lv-pulse { 50% { opacity: .35; } }

/* ---- Notice ---- */
.lv-notice { display: flex; gap: var(--space-3); align-items: flex-start; padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); border: 1px solid var(--line); background: var(--surface); color: var(--ink); }
.lv-notice-icon { margin-top: 2px; }
.lv-notice-body { flex: 1; min-width: 0; }
.lv-notice-title { margin: 0; font-weight: 600; }
.lv-notice-text { margin: 2px 0 0; }
.lv-notice-text p { margin: 0; }
.lv-notice-actions { display: flex; gap: var(--space-2); margin-top: var(--space-3); }
.lv-notice-info { background: var(--blue-soft); border-color: transparent; } .lv-notice-info .lv-notice-icon { color: var(--blue); }
.lv-notice-success { background: var(--blue-soft); border-color: transparent; } .lv-notice-success .lv-notice-icon { color: var(--blue); }
.lv-notice-attention { background: var(--ochre-soft); border-color: transparent; } .lv-notice-attention .lv-notice-icon { color: var(--ochre); }
.lv-notice-danger { background: var(--danger-soft); border-color: var(--danger); } .lv-notice-danger .lv-notice-icon, .lv-notice-danger .lv-notice-title { color: var(--danger); }

/* ---- ManuscriptTree ---- */
.lv-tree { background: var(--surface-sunken); padding: var(--space-2) 0; width: var(--tree-width); box-sizing: border-box; }
.lv-tree-row { display: flex; align-items: center; gap: var(--space-1); height: 28px; padding-right: var(--space-3); cursor: pointer; color: var(--ink); border-radius: var(--radius-sm); margin: 0 var(--space-1); }
.lv-tree-row:hover { background: var(--selected); }
.lv-tree-row.is-selected { background: var(--selected); box-shadow: inset 0 0 0 1px var(--accent); }
.lv-tree-row.is-selected .lv-tree-title { font-weight: 600; }
.lv-tree-twisty { width: 16px; height: 16px; flex: none; color: var(--ink-muted); }
.lv-tree-type { color: var(--ink-muted); }
.lv-tree-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lv-tree-part > .lv-tree-title { font-weight: 600; }
.lv-tree-meta { font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.lv-tree-row.is-excluded .lv-tree-title { color: var(--ink-muted); text-decoration: line-through; text-decoration-thickness: 1px; }

/* ---- SceneCard ---- */
.lv-card { display: flex; flex-direction: column; gap: var(--space-2); width: 240px; box-sizing: border-box; padding: var(--space-3) var(--space-4) var(--space-4); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); cursor: pointer; }
.lv-card:hover { border-color: var(--line-strong); }
.lv-card.is-selected { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.lv-card-head { display: flex; gap: var(--space-2); align-items: baseline; }
.lv-card-index { font-size: 12px; color: var(--ink-muted); }
.lv-card-title { margin: 0; font-size: 16px; line-height: 22px; font-weight: 600; }
.lv-card-synopsis { margin: 0; font-family: var(--font-serif); font-size: 15px; line-height: 22px; color: var(--ink); display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.lv-card-synopsis.is-empty { color: var(--ink-muted); font-style: italic; }
.lv-card-foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1); margin-top: auto; padding-top: var(--space-1); }
.lv-card-words { margin-left: auto; font-size: 12px; line-height: 16px; color: var(--ink-muted); }

/* ---- VersionList ---- */
.lv-versions { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.lv-version { display: flex; gap: var(--space-3); align-items: center; padding: var(--space-3) var(--space-4); }
.lv-version + .lv-version { border-top: 1px solid var(--line); }
.lv-version-icon { color: var(--ink-muted); }
.lv-version.is-current .lv-version-icon { color: var(--accent); }
.lv-version-body { flex: 1; min-width: 0; }
.lv-version-label, .lv-version-meta { margin: 0; }
.lv-version-label { font-weight: 600; }
.lv-version-auto { font-weight: 400; color: var(--ink-muted); }
.lv-version-meta { font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.lv-version-actions { display: flex; gap: var(--space-1); }

/* ---- Citation ---- */
.lv-cite { display: inline-flex; align-items: baseline; gap: 2px; padding: 0 3px; border-radius: var(--radius-sm); color: var(--accent); background: var(--accent-soft); cursor: pointer; font-variant-numeric: lining-nums; }
.lv-cite.is-problem { color: var(--danger); background: var(--danger-soft); text-decoration: underline wavy; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.lv-cite .lv-icon { align-self: center; }

/* ---- Dialog ---- */
.lv-dialog { width: 440px; max-width: 100%; box-sizing: border-box; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.lv-dialog-head { display: flex; align-items: center; justify-content: space-between; padding: var(--space-4) var(--space-4) 0 var(--space-6); }
.lv-dialog-title { margin: 0; font-size: 20px; line-height: 28px; font-weight: 600; }
.lv-dialog-body { padding: var(--space-3) var(--space-6) var(--space-4); }
.lv-dialog-body p { margin: 0 0 var(--space-3); }
.lv-dialog-foot { display: flex; justify-content: flex-end; gap: var(--space-2); padding: var(--space-4) var(--space-6); border-top: 1px solid var(--line); }

/* ---- EmptyState ---- */
.lv-empty { display: flex; flex-direction: column; align-items: center; text-align: center; padding: var(--space-12) var(--space-8); max-width: 440px; margin: 0 auto; }
.lv-empty-icon { color: var(--ink-muted); margin-bottom: var(--space-3); }
.lv-empty-title { margin: 0; font-size: 20px; line-height: 28px; font-weight: 600; }
.lv-empty-text { margin: var(--space-2) 0 0; color: var(--ink-muted); }
.lv-empty-actions { display: flex; gap: var(--space-2); margin-top: var(--space-6); }

/* ---- texto do manuscrito (usado em previews e no editor) ---- */
.lv-prose { font-family: var(--font-serif); font-size: 18px; line-height: 30px; color: var(--ink); max-width: var(--measure); }
.lv-prose p { margin: 0; }
.lv-prose p + p { text-indent: 1.5em; }

/* ======== Parte 2 ======== */
.lv-panel-title { margin: 0 0 var(--space-2); padding: 0; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--ink-muted); }
.lv-path { font-family: var(--font-mono); font-size: 13px; line-height: 20px; color: var(--ink); background: var(--surface-sunken); padding: 0 var(--space-1); border-radius: var(--radius-sm); word-break: break-all; }

/* ---- Select ---- */
.lv-field-inline { min-width: 0; }
.lv-select-wrap { position: relative; }
.lv-select { appearance: none; -webkit-appearance: none; box-sizing: border-box; width: 100%; font: inherit; color: var(--ink); background: var(--surface); height: var(--control-height); padding: 0 32px 0 var(--space-3); border: 1px solid var(--line-strong); border-radius: var(--radius-sm); cursor: pointer; }
.lv-select-compact { height: 28px; padding-left: var(--space-2); }
.lv-select:focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-ring); }
.lv-select-icon { position: absolute; right: 10px; top: 50%; margin-top: -8px; pointer-events: none; color: var(--ink-muted); }

/* ---- ProgressMeter ---- */
.lv-meter { display: flex; flex-direction: column; gap: var(--space-1); min-width: 240px; }
.lv-meter-head { display: flex; justify-content: space-between; gap: var(--space-3); font-size: 12px; line-height: 16px; }
.lv-meter-label { font-weight: 600; white-space: nowrap; }
.lv-meter-value { color: var(--ink-muted); }
.lv-meter-track { height: 6px; background: var(--surface-sunken); border: 1px solid var(--line-strong); border-radius: var(--radius-sm); overflow: hidden; }
.lv-meter-fill { height: 100%; background: var(--accent); }

/* ---- StyleToolbar ---- */
.lv-toolbar { display: flex; align-items: center; gap: 2px; height: var(--toolbar-height); padding: 0 var(--space-2); background: var(--surface); border-bottom: 1px solid var(--line); box-sizing: border-box; flex-wrap: wrap; }
.lv-toolbar-sep { width: 1px; height: 20px; background: var(--line); margin: 0 var(--space-1); }
.lv-toolbar-style { width: 168px; margin-right: var(--space-1); }
.lv-tool { font: inherit; display: inline-flex; align-items: center; gap: var(--space-1); height: 28px; min-width: 28px; justify-content: center; padding: 0 6px; border: 1px solid transparent; border-radius: var(--radius-sm); background: transparent; color: var(--ink); cursor: pointer; }
.lv-tool:hover { background: var(--selected); }
.lv-tool.is-pressed { background: var(--accent-soft); color: var(--accent); border-color: var(--accent); }
.lv-tool:disabled { color: var(--ink-muted); cursor: not-allowed; background: transparent; }
.lv-tool:focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-ring); }

/* ---- OutlineTable ---- */
.lv-outline-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.lv-outline { width: 100%; border-collapse: collapse; }
.lv-outline th, .lv-outline td { text-align: left; padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--line); vertical-align: top; }
.lv-outline thead th { font-size: 12px; line-height: 16px; font-weight: 600; color: var(--ink-muted); background: var(--surface-sunken); position: sticky; top: 0; }
.lv-outline tbody tr:last-child > * { border-bottom: 0; }
.lv-outline tbody tr { cursor: pointer; }
.lv-outline tbody tr:hover { background: var(--paper); }
.lv-outline tbody tr.is-selected { background: var(--selected); box-shadow: inset 2px 0 0 var(--accent); }
.lv-outline tr.is-container { background: var(--surface-sunken); }
.lv-outline-title { font-weight: 400; white-space: nowrap; }
.lv-outline-title > * { vertical-align: middle; }
.lv-outline-title .lv-icon { display: inline-block; color: var(--ink-muted); margin-right: var(--space-2); }
.lv-outline tr.is-container .lv-outline-title { font-weight: 600; }
.lv-outline tr.is-excluded .lv-outline-title span { text-decoration: line-through; color: var(--ink-muted); }
.lv-outline-syn { font-family: var(--font-serif); font-size: 14px; line-height: 20px; max-width: 360px; }
.lv-outline-syn.is-empty { color: var(--ink-muted); }
.lv-col-idx { width: 40px; color: var(--ink-muted); }
.lv-col-num { text-align: right !important; white-space: nowrap; }
.lv-col-inc { width: 64px; text-align: center !important; }

/* ---- EntitySheet ---- */
.lv-entity { width: 320px; box-sizing: border-box; padding: var(--space-4); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); display: flex; flex-direction: column; gap: var(--space-3); }
.lv-entity-head { display: flex; gap: var(--space-3); align-items: center; }
.lv-entity-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: var(--radius-md); background: var(--surface-sunken); color: var(--ink-muted); }
.lv-entity-kind { margin: 0; font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.lv-entity-name { margin: 0; font-size: 16px; line-height: 22px; font-weight: 600; }
.lv-entity-desc { margin: 0; font-family: var(--font-serif); font-size: 15px; line-height: 22px; }
.lv-entity-fields { display: grid; grid-template-columns: max-content 1fr; gap: var(--space-1) var(--space-3); margin: 0; }
.lv-entity-fields dt { color: var(--ink-muted); }
.lv-entity-fields dd { margin: 0; }
.lv-entity-empty { margin: 0; font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.lv-entity-section h4 { margin: 0 0 var(--space-1); font-size: 12px; line-height: 16px; font-weight: 600; color: var(--ink-muted); }
.lv-entity-chips { display: flex; flex-wrap: wrap; gap: var(--space-1); }
.lv-entity-rel { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 2px; }
.lv-entity-rel span { color: var(--ink-muted); }
.lv-entity-rel strong { font-weight: 600; }

/* ---- Timeline ---- */
.lv-timeline { list-style: none; margin: 0; padding: 0; max-width: 560px; }
.lv-event { display: grid; grid-template-columns: 96px 16px 1fr; column-gap: var(--space-3); }
.lv-event-date { text-align: right; font-size: 12px; line-height: 16px; color: var(--ink-muted); padding-top: 3px; }
.lv-event-mark { position: relative; }
.lv-event-mark::before { content: ""; position: absolute; left: 7px; top: 0; bottom: 0; width: 2px; background: var(--line); }
.lv-event:first-child .lv-event-mark::before { top: 8px; }
.lv-event:last-child .lv-event-mark::before { bottom: auto; height: 8px; }
.lv-event-mark::after { content: ""; position: absolute; left: 2px; top: 4px; width: 8px; height: 8px; border-radius: var(--radius-full); background: var(--accent); border: 2px solid var(--paper); }
.lv-event.is-imprecise .lv-event-mark::after { background: var(--paper); border: 2px dashed var(--accent); }
.lv-event-body { padding-bottom: var(--space-4); }
.lv-event-title { margin: 0; font-weight: 600; }
.lv-event-meta { display: flex; flex-wrap: wrap; gap: var(--space-1); align-items: center; margin-top: var(--space-1); }
.lv-event-scene { display: inline-flex; align-items: center; gap: var(--space-1); font-size: 12px; line-height: 16px; color: var(--accent); margin-right: var(--space-1); }
.lv-event-scene.is-none { color: var(--ink-muted); }

/* ---- RelationshipMap ---- */
.lv-relmap { margin: 0; background: var(--surface-sunken); border: 1px solid var(--line); border-radius: var(--radius-md); display: inline-block; }
.lv-relmap svg { display: block; }
.lv-relmap-edge { stroke: var(--line-strong); stroke-width: 1.5; }
.lv-relmap-arrow { fill: var(--line-strong); }
.lv-relmap-labelbg { fill: var(--surface-sunken); }
.lv-relmap-label { font-family: var(--font-sans); font-size: 12px; fill: var(--ink-muted); }
.lv-relmap-node rect { fill: var(--surface); stroke: var(--line-strong); stroke-width: 1; }
.lv-relmap-node.is-selected rect { stroke: var(--accent); stroke-width: 2; }
.lv-relmap-kind { font-family: var(--font-sans); font-size: 10px; fill: var(--ink-muted); }
.lv-relmap-name { font-family: var(--font-sans); font-size: 13px; font-weight: 600; fill: var(--ink); }

/* ---- ReferenceList ---- */
.lv-refs { display: flex; flex-direction: column; gap: var(--space-3); max-width: 720px; }
.lv-refs-head { display: flex; gap: var(--space-3); align-items: flex-end; flex-wrap: wrap; }
.lv-refs-search { flex: 1; }
.lv-refs-list { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.lv-ref { display: flex; gap: var(--space-3); align-items: flex-start; padding: var(--space-3) var(--space-4); }
.lv-ref + .lv-ref { border-top: 1px solid var(--line); }
.lv-ref-icon { color: var(--ink-muted); margin-top: 2px; }
.lv-ref-body { flex: 1; min-width: 0; }
.lv-ref-formatted { margin: 0; font-family: var(--font-serif); font-size: 15px; line-height: 22px; }
.lv-ref-meta { margin: 2px 0 0; display: flex; gap: var(--space-3); font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.lv-ref-problem { margin: var(--space-1) 0 0; display: flex; gap: var(--space-1); align-items: center; font-size: 12px; line-height: 16px; color: var(--danger); font-weight: 600; }
.lv-ref.is-problem { background: var(--danger-soft); }
.lv-ref.is-problem .lv-ref-meta { color: var(--ink); }

/* ---- lista genérica (mestras, ajustes, backups) ---- */
.lv-list { list-style: none; margin: 0; padding: 0; }
.lv-list-boxed { border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.lv-list-row { display: flex; gap: var(--space-3); align-items: center; padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); }
.lv-list-boxed .lv-list-row { border-radius: 0; padding: var(--space-3) var(--space-4); }
.lv-list-boxed .lv-list-row + .lv-list-row { border-top: 1px solid var(--line); }
.lv-list-row.is-selected { background: var(--selected); box-shadow: inset 0 0 0 1px var(--accent); }
.lv-list-row.is-problem .lv-list-icon, .lv-list-icon.is-bad { color: var(--danger); }
.lv-list-row.is-problem .lv-list-meta { color: var(--danger); }
.lv-list-icon { color: var(--ink-muted); }
.lv-list-icon.is-ok { color: var(--blue); }
.lv-list-body { flex: 1; min-width: 0; }
.lv-list-title { margin: 0; font-weight: 600; }
.lv-list-aside { font-weight: 400; color: var(--ink-muted); }
.lv-list-meta { margin: 2px 0 0; font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.lv-list-meta .lv-path { font-size: 12px; line-height: 16px; }
.lv-list-count { font-size: 12px; color: var(--ink-muted); }

/* ---- MasterPageList ---- */
.lv-masters { display: flex; flex-direction: column; gap: var(--space-6); width: 380px; padding: var(--space-4); background: var(--surface-sunken); box-sizing: border-box; }
.lv-master-thumb { position: relative; flex: none; width: 24px; height: 34px; background: var(--sheet); border: 1px solid var(--line-strong); border-radius: 1px; }
.lv-master-h, .lv-master-f { position: absolute; left: 4px; right: 4px; height: 2px; background: var(--guide-margin); }
.lv-master-h { top: 4px; } .lv-master-f { bottom: 4px; left: 9px; right: 9px; }

/* ---- PagePreview ---- */
.lv-pages { display: flex; flex-direction: column; background: var(--surface-sunken); border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; }
.lv-pages-bar { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); padding: var(--space-2) var(--space-4); background: var(--surface); border-bottom: 1px solid var(--line); font-size: 12px; line-height: 16px; }
.lv-pages-info { color: var(--ink-muted); }
.lv-pages-stale { display: inline-flex; gap: var(--space-1); align-items: center; color: var(--ochre); font-weight: 600; }
.lv-pages-ok { display: inline-flex; gap: var(--space-1); align-items: center; color: var(--ink-muted); }
.lv-pages-ok .lv-icon { color: var(--blue); }
.lv-pages-canvas { display: flex; gap: var(--space-8); padding: var(--space-6) var(--space-8); overflow-x: auto; }
.lv-pages-canvas.is-stale .lv-page-sheet { opacity: .55; }
.lv-spread { display: flex; flex: none; }
.lv-page { margin: 0; width: 132px; flex: none; }
.lv-page-blank { visibility: hidden; height: 1px; }
.lv-page-sheet { position: relative; height: 198px; background: var(--sheet); color: var(--sheet-ink); box-shadow: var(--shadow-page); }
.lv-page-verso .lv-page-sheet { border-right: 1px solid var(--sheet-line); }
.lv-page-trim { position: absolute; inset: 5px; border: 1px dashed var(--guide-bleed); pointer-events: none; }
.lv-page-margin { position: absolute; top: 22px; bottom: 26px; left: 20px; right: 20px; border: 1px dashed var(--guide-margin); pointer-events: none; }
.lv-page-verso .lv-page-margin { right: 24px; left: 16px; }
.lv-page-recto .lv-page-margin { left: 24px; right: 16px; }
.lv-page-content { position: absolute; top: 12px; bottom: 10px; left: 20px; right: 20px; display: flex; flex-direction: column; }
.lv-page-verso .lv-page-content { right: 24px; left: 16px; }
.lv-page-recto .lv-page-content { left: 24px; right: 16px; }
.lv-page-header { margin: 0 0 8px; height: 10px; font-family: var(--font-serif); font-size: 7px; line-height: 10px; font-style: italic; text-align: center; }
.lv-page-opening { padding-top: 28px; margin-bottom: 14px; text-align: center; font-family: var(--font-serif); }
.lv-page-chnum { margin: 0; font-size: 8px; line-height: 12px; letter-spacing: .08em; }
.lv-page-chtitle { margin: 2px 0 0; font-size: 12px; line-height: 16px; font-weight: 600; }
.lv-page-lines { display: flex; flex-direction: column; gap: 5px; flex: 1; }
.lv-page-lines span { display: block; height: 3px; background: var(--sheet-line); border-radius: 1px; }
.lv-page-folio { margin: 0; text-align: center; font-family: var(--font-serif); font-size: 8px; line-height: 10px; }
.lv-page-flag { position: absolute; left: 4px; right: 4px; white-space: nowrap; bottom: -10px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; font-size: 11px; line-height: 16px; font-weight: 600; padding: 1px var(--space-1); background: var(--ochre-soft); color: var(--ochre); border: 1px solid var(--ochre); border-radius: var(--radius-sm); }
.lv-page-flag.is-invalid { background: var(--danger-soft); color: var(--danger); border-color: var(--danger); }
.lv-page-cap { margin-top: var(--space-4); font-size: 12px; line-height: 16px; color: var(--ink-muted); text-align: center; }

/* ---- CoverLayout ---- */
.lv-cover { margin: 0; display: inline-flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4); background: var(--surface-sunken); border: 1px solid var(--line); border-radius: var(--radius-md); }
.lv-cover svg { display: block; }
.lv-cover-sheet { fill: var(--sheet); }
.lv-cover-art { fill: var(--sheet-line); }
.lv-cover-title { font-family: var(--font-serif); font-size: 18px; font-weight: 600; fill: var(--sheet-ink); }
.lv-cover-author { font-family: var(--font-serif); font-size: 12px; fill: var(--sheet-ink); }
.lv-cover-spinetext { font-family: var(--font-serif); font-size: 9px; fill: var(--sheet-ink); }
.lv-cover-lines { fill: var(--sheet-line); }
.lv-cover-trim { fill: none; stroke: var(--sheet-ink); stroke-width: 1; }
.lv-cover-fold { stroke: var(--sheet-ink); stroke-width: 1; stroke-dasharray: 2 3; }
.lv-cover-safe { fill: none; stroke: var(--guide-margin); stroke-width: 1; stroke-dasharray: 4 3; }
.lv-cover-cap { font-family: var(--font-sans); font-size: 12px; fill: var(--ink-muted); }
.lv-cover-legend { display: flex; flex-wrap: wrap; gap: var(--space-4); font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.lv-cover-legend span { display: inline-flex; align-items: center; gap: var(--space-1); }
.lv-sw { display: inline-block; width: 16px; height: 0; border-top: 2px solid var(--sheet-ink); }
.lv-sw-trim { border-top: 1px solid var(--ink); }
.lv-sw-bleed { width: 14px; height: 10px; border: 1px solid var(--line-strong); background: var(--sheet); }
.lv-sw-safe { border-top: 2px dashed var(--blue); }
.lv-sw-fold { border-top: 2px dotted var(--ink); }
.lv-cover-notice { max-width: 640px; }

/* ---- ExportPanel ---- */
.lv-export { display: flex; flex-direction: column; gap: var(--space-4); width: 560px; max-width: 100%; box-sizing: border-box; padding: var(--space-6); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.lv-export fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.lv-export-formats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-2); }
.lv-export-formats legend { grid-column: 1 / -1; }
.lv-choice { position: relative; display: flex; flex-direction: column; gap: 2px; padding: var(--space-2) var(--space-3); border: 1px solid var(--line-strong); border-radius: var(--radius-md); cursor: pointer; background: var(--surface); }
.lv-choice input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.lv-choice:hover { background: var(--paper); }
.lv-choice.is-selected { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); background: var(--selected); }
.lv-choice:has(input:focus-visible) { box-shadow: var(--focus-ring); }
.lv-choice-head { display: flex; justify-content: space-between; align-items: center; color: var(--ink); }
.lv-choice.is-selected .lv-choice-head .lv-icon { color: var(--accent); }
.lv-choice-label { font-weight: 600; }
.lv-choice-hint { font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.lv-export-content { display: flex; flex-direction: column; gap: var(--space-2); }
.lv-export-ad { margin: var(--space-1) 0 0; padding-left: 18px; }
.lv-export-dest { display: flex; flex-direction: column; gap: var(--space-1); align-items: flex-start; }
.lv-export-actions { display: flex; justify-content: flex-end; gap: var(--space-2); padding-top: var(--space-4); border-top: 1px solid var(--line); }

/* ---- BackupList ---- */
.lv-backups { display: flex; flex-direction: column; gap: var(--space-3); max-width: 640px; }
.lv-backups-head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-3); }
.lv-backups-head .lv-panel-title { margin: 0; font-size: 16px; line-height: 22px; color: var(--ink); }

/* ======== Parte 3: tarefas ======== */
.lv-swatch { display: inline-block; flex: none; width: 10px; height: 10px; border-radius: 2px; }
.lv-swatch-lg { width: 16px; height: 16px; border-radius: var(--radius-sm); }
.lv-prio { display: inline-flex; align-items: center; gap: var(--space-1); font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.lv-prio rect.is-on { fill: var(--ink); }
.lv-prio rect.is-off { fill: var(--line); }
.lv-prio-none rect { fill: var(--line); }
.lv-tlabel { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; line-height: 16px; padding: 1px 6px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink); background: var(--surface); }
.lv-due { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.lv-due-overdue { color: var(--danger); font-weight: 600; }
.lv-due-today { color: var(--ink); font-weight: 600; }

/* ---- TaskCard ---- */
.lv-task { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-2) var(--space-3) var(--space-3); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); cursor: pointer; }
.lv-task:hover { border-color: var(--line-strong); }
.lv-task:focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-ring); }
.lv-task.is-selected { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.lv-task.is-dragging { box-shadow: var(--shadow-lg); transform: rotate(-1deg); }
.lv-task-head { display: flex; align-items: flex-start; gap: var(--space-1); flex-wrap: wrap; }
.lv-task-grip { color: var(--ink-muted); padding-top: 6px; cursor: grab; }
.lv-task-title { flex: 1; min-width: 0; margin: 0; padding-top: 4px; font-size: 14px; line-height: 20px; font-weight: 600; }
.lv-task.is-done .lv-task-title { color: var(--ink-muted); text-decoration: line-through; text-decoration-thickness: 1px; }
.lv-task-done { flex-basis: 100%; display: inline-flex; align-items: center; gap: 4px; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--blue); }
.lv-tdetail-head .lv-task-done { flex-basis: auto; }
.lv-task-head .lv-task-done { order: 3; }
.lv-task-move { margin: 0 -4px 0 0; }
.lv-task-labels { display: flex; flex-wrap: wrap; gap: var(--space-1); align-items: center; }
.lv-task-links { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-2); }
.lv-task-link { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; line-height: 16px; color: var(--accent); }
.lv-task-link.is-unavailable { color: var(--ink-muted); text-decoration: line-through; text-decoration-thickness: 1px; }
.lv-task-foot { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; }
.lv-task-ck { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; line-height: 16px; color: var(--ink-muted); margin-left: auto; }
.lv-task-ck.is-complete { color: var(--blue); }

/* ---- TaskBoard ---- */
.lv-board-wrap { display: flex; flex-direction: column; gap: var(--space-3); }
.lv-board-note { max-width: 720px; }
.lv-board { display: flex; gap: var(--space-3); align-items: flex-start; overflow-x: auto; padding-bottom: var(--space-2); }
.lv-col { flex: none; width: 256px; display: flex; flex-direction: column; background: var(--surface-sunken); border: 1px solid var(--line); border-radius: var(--radius-md); }
.lv-col-head { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-2) var(--space-2) var(--space-3); }
.lv-col-name { margin: 0; font-size: 14px; line-height: 20px; font-weight: 600; }
.lv-col-count { font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.lv-col-completes { display: inline-flex; align-items: center; gap: 2px; font-size: 12px; line-height: 16px; color: var(--blue); }
.lv-col-menu { margin-left: auto; }
.lv-col-body { display: flex; flex-direction: column; gap: var(--space-2); padding: 0 var(--space-2) var(--space-2); min-height: 40px; }
.lv-col-empty { margin: 0; padding: var(--space-3); text-align: center; font-size: 12px; line-height: 16px; color: var(--ink-muted); border: 1px dashed var(--line-strong); border-radius: var(--radius-md); }
.lv-col-add, .lv-col-new { font: inherit; display: flex; align-items: center; gap: var(--space-1); margin: 0 var(--space-2) var(--space-2); padding: var(--space-1) var(--space-2); height: 28px; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--ink-muted); cursor: pointer; }
.lv-col-add:hover, .lv-col-new:hover { background: var(--selected); color: var(--ink); }
.lv-col-new { flex: none; margin: 0; width: 200px; height: 40px; border: 1px dashed var(--line-strong); border-radius: var(--radius-md); justify-content: center; }
.lv-col-add:focus-visible, .lv-col-new:focus-visible, .lv-fchip:focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-ring); }

/* ---- TaskFilterBar ---- */
.lv-tfilter { display: flex; flex-direction: column; gap: var(--space-2); }
.lv-tfilter-row { display: flex; align-items: flex-end; gap: var(--space-2); flex-wrap: wrap; }
.lv-tfilter-search { width: 260px; min-width: 0; }
.lv-fchip { font: inherit; display: inline-flex; align-items: center; gap: var(--space-1); height: var(--control-height); padding: 0 var(--space-2) 0 var(--space-3); border: 1px solid var(--line-strong); border-radius: var(--radius-sm); background: var(--surface); color: var(--ink); cursor: pointer; }
.lv-fchip:hover { background: var(--surface-sunken); }
.lv-fchip.is-on { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); font-weight: 600; }
.lv-fchip-n { min-width: 16px; padding: 0 4px; border-radius: var(--radius-sm); background: var(--accent); color: var(--on-accent); font-size: 12px; line-height: 16px; text-align: center; }
.lv-tfilter-active { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.lv-tfilter-count { font-size: 12px; line-height: 16px; color: var(--ink-muted); margin-right: var(--space-1); }
.lv-afilter { display: inline-flex; align-items: center; gap: 2px; font-size: 12px; line-height: 16px; padding: 2px 4px 2px var(--space-2); border-radius: var(--radius-sm); background: var(--accent-soft); color: var(--ink); }
.lv-afilter-k { color: var(--ink-muted); }
.lv-tfilter-clear { font-size: 12px; color: var(--accent); }

/* ---- TaskDetail ---- */
.lv-tdetail { display: flex; flex-direction: column; gap: var(--space-4); width: 420px; box-sizing: border-box; padding: var(--space-4) var(--space-6) var(--space-6); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); }
.lv-tdetail-head { display: flex; align-items: center; gap: var(--space-3); margin-right: -8px; }
.lv-tdetail-open { font-size: 12px; line-height: 16px; color: var(--ink-muted); font-weight: 600; }
.lv-tdetail-arch { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.lv-tdetail-sp { flex: 1; }
.lv-tdetail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); }
.lv-tdetail-grid .lv-field { min-width: 0; }
.lv-tdetail-grid > :last-child { grid-column: 1 / -1; }
.lv-tdetail-sec { display: flex; flex-direction: column; gap: var(--space-2); align-items: flex-start; }
.lv-tdetail-sec .lv-panel-title { margin: 0; }
.lv-tdetail-sec .lv-list { align-self: stretch; }
.lv-tdetail-ck { display: flex; flex-direction: column; gap: var(--space-2); }
.lv-tdetail-link { padding-left: 0; padding-right: 0; }
.lv-tdetail-foot { display: flex; align-items: center; gap: var(--space-2); padding-top: var(--space-4); border-top: 1px solid var(--line); }

/* ---- ColumnEditor ---- */
.lv-coled { display: flex; flex-direction: column; gap: var(--space-4); width: 360px; padding: var(--space-4); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); box-sizing: border-box; }
.lv-coled-colors { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.lv-coled-colors legend { margin-bottom: var(--space-2); padding: 0; }
.lv-coled-swatches { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-2); }
.lv-swopt { position: relative; display: flex; align-items: center; gap: var(--space-2); height: var(--control-height); padding: 0 var(--space-2); border: 1px solid var(--line); border-radius: var(--radius-sm); cursor: pointer; }
.lv-swopt input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.lv-swopt.is-selected { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.lv-swopt.is-selected .lv-icon { margin-left: auto; color: var(--accent); }
.lv-swopt:has(input:focus-visible) { box-shadow: var(--focus-ring); }

/* ---- diálogos de coluna e mover ---- */
.lv-coldel-hint { margin: var(--space-1) 0 var(--space-3); }
.lv-dialog-body .lv-field { margin-bottom: 0; }
.lv-move-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); }
.lv-move-grid .lv-field { min-width: 0; }
.lv-move-summary { margin: var(--space-3) 0 !important; }

/* ======== Parte 4: carregamento ======== */
.lv-spinner { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--ink-muted); font-size: 12px; line-height: 16px; }
.lv-spinner-svg { display: block; flex: none; }
.lv-spinner-track { stroke: currentColor; opacity: .25; }
.lv-spinner-arc { stroke: currentColor; transform-origin: 8px 8px; }
.lv-btn .lv-spinner, .lv-lstep .lv-spinner { color: inherit; }
@media (prefers-reduced-motion: no-preference) {
  .lv-spinner-arc { animation: lv-spin .9s linear infinite; }
  .lv-sk { animation: lv-sk-pulse 1.6s ease-in-out infinite; }
  .lv-loading-bar.is-indeterminate span { animation: lv-indet 1.4s ease-in-out infinite; }
}
@keyframes lv-spin { to { transform: rotate(360deg); } }
@keyframes lv-sk-pulse { 50% { opacity: .55; } }
@keyframes lv-indet { 0% { transform: translateX(-100%); } 100% { transform: translateX(250%); } }
.lv-btn.is-loading { cursor: progress; }
.lv-btn-primary.is-loading { background: var(--accent-strong); border-color: var(--accent-strong); }

/* ---- Skeleton ---- */
.lv-skeleton { display: flex; flex-direction: column; gap: var(--space-3); }
.lv-sk { display: block; background: var(--skeleton); border-radius: var(--radius-sm); }
.lv-sk-line { height: 10px; }
.lv-skeleton-text { gap: 20px; max-width: var(--measure); }
.lv-skeleton-text .lv-sk-line { height: 12px; }
.lv-skeleton-tree { gap: 0; padding: var(--space-2) 0; }
.lv-sk-row { display: flex; align-items: center; gap: var(--space-2); height: 28px; padding-right: var(--space-3); }
.lv-sk-icon { width: 14px; height: 14px; flex: none; }
.lv-skeleton-card { flex-direction: row; flex-wrap: wrap; gap: var(--space-3); }
.lv-sk-card { display: flex; flex-direction: column; gap: var(--space-2); width: 240px; box-sizing: border-box; padding: var(--space-4); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); }
.lv-sk-title { height: 14px; width: 60%; margin-bottom: var(--space-1); }
.lv-sk-chip { width: 72px; height: 18px; margin-top: var(--space-2); }
.lv-sk-block { width: 100%; border-radius: var(--radius-md); }

/* ---- LoadingState ---- */
.lv-loading { display: flex; flex-direction: column; gap: var(--space-3); width: 420px; max-width: 100%; box-sizing: border-box; margin: 0 auto; padding: var(--space-8) var(--space-6); }
.lv-loading-inline { margin: 0; padding: var(--space-4); width: auto; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); }
.lv-loading-head { display: flex; align-items: center; gap: var(--space-3); color: var(--accent); }
.lv-loading-title { margin: 0; font-size: 16px; line-height: 22px; font-weight: 600; color: var(--ink); }
.lv-loading-detail { margin: 0; color: var(--ink-muted); }
.lv-loading-bar { position: relative; height: 4px; overflow: hidden; background: var(--skeleton); border-radius: var(--radius-sm); }
.lv-loading-bar span { position: absolute; left: 0; top: 0; bottom: 0; background: var(--accent); border-radius: var(--radius-sm); }
.lv-loading-bar.is-indeterminate span { width: 40%; }
.lv-loading-steps { list-style: none; margin: var(--space-1) 0 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.lv-lstep { display: flex; align-items: center; gap: var(--space-2); color: var(--ink-muted); }
.lv-lstep .lv-icon, .lv-lstep .lv-spinner { width: 12px; flex: none; }
.lv-lstep.is-done { color: var(--ink); }
.lv-lstep.is-done .lv-icon { color: var(--blue); }
.lv-lstep.is-active { color: var(--ink); font-weight: 600; }
.lv-lstep.is-active .lv-spinner { color: var(--accent); }
.lv-lstep-dot { width: 6px; height: 6px; margin: 0 3px; border-radius: var(--radius-full); border: 1px solid var(--line-strong); flex: none; }
.lv-loading-actions { display: flex; align-items: center; gap: var(--space-3); margin-top: var(--space-2); }
.lv-loading-hint { font-size: 12px; line-height: 16px; color: var(--ink-muted); }

/* ======== Parte 5: barra de rolagem ======== */
/* Chromium/Electron. Não defina scrollbar-color/scrollbar-width junto: no Chromium 121+ eles desativam estes pseudo-elementos. */
.lv-scroll, .lv-board, .lv-outline-wrap, .lv-pages-canvas, .lv-tree, .lv-col-body { scrollbar-gutter: stable; }
:is(.lv-scroll, .lv-board, .lv-outline-wrap, .lv-pages-canvas, .lv-tree, .lv-col-body)::-webkit-scrollbar { width: var(--scrollbar-size); height: var(--scrollbar-size); background: transparent; }
:is(.lv-scroll-thin, .lv-board, .lv-tree, .lv-col-body)::-webkit-scrollbar { width: var(--scrollbar-size-thin); height: var(--scrollbar-size-thin); }
:is(.lv-scroll, .lv-board, .lv-outline-wrap, .lv-pages-canvas, .lv-tree, .lv-col-body)::-webkit-scrollbar-track { background: transparent; }
:is(.lv-scroll, .lv-board, .lv-outline-wrap, .lv-pages-canvas, .lv-tree, .lv-col-body)::-webkit-scrollbar-corner { background: transparent; }
:is(.lv-scroll, .lv-board, .lv-outline-wrap, .lv-pages-canvas, .lv-tree, .lv-col-body)::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
:is(.lv-scroll, .lv-board, .lv-outline-wrap, .lv-pages-canvas, .lv-tree, .lv-col-body)::-webkit-scrollbar-thumb { background-color: var(--scrollbar-thumb); background-clip: padding-box; border: 3px solid transparent; border-radius: 6px; min-height: 32px; min-width: 32px; }
:is(.lv-scroll-thin, .lv-board, .lv-tree, .lv-col-body)::-webkit-scrollbar-thumb { border-width: 2px; border-radius: 4px; min-height: 24px; min-width: 24px; }
:is(.lv-scroll, .lv-board, .lv-outline-wrap, .lv-pages-canvas, .lv-tree, .lv-col-body)::-webkit-scrollbar-thumb:hover { background-color: var(--scrollbar-thumb-hover); border-width: 2px; }
:is(.lv-scroll-thin, .lv-board, .lv-tree, .lv-col-body)::-webkit-scrollbar-thumb:hover { border-width: 1px; }
:is(.lv-scroll, .lv-board, .lv-outline-wrap, .lv-pages-canvas, .lv-tree, .lv-col-body)::-webkit-scrollbar-thumb:active { background-color: var(--scrollbar-thumb-active); }
@supports not selector(::-webkit-scrollbar) {
  .lv-scroll, .lv-board, .lv-outline-wrap, .lv-pages-canvas, .lv-tree, .lv-col-body { scrollbar-color: var(--scrollbar-thumb) transparent; }
  .lv-scroll-thin, .lv-board, .lv-tree, .lv-col-body { scrollbar-width: thin; }
}
@media (forced-colors: active) {
  :is(.lv-scroll, .lv-board, .lv-outline-wrap, .lv-pages-canvas, .lv-tree, .lv-col-body)::-webkit-scrollbar-thumb { background-color: CanvasText; }
  :is(.lv-scroll, .lv-board, .lv-outline-wrap, .lv-pages-canvas, .lv-tree, .lv-col-body)::-webkit-scrollbar-thumb:hover,
  :is(.lv-scroll, .lv-board, .lv-outline-wrap, .lv-pages-canvas, .lv-tree, .lv-col-body)::-webkit-scrollbar-thumb:active { background-color: Highlight; }
}

/* ---- ScrollArea ---- */
.lv-scroll { overflow: auto; overscroll-behavior: contain; position: relative; }
.lv-scroll-x { overflow-y: hidden; overflow-x: auto; }
.lv-scroll-y { overflow-x: hidden; overflow-y: auto; }
.lv-scroll:focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-ring); }
.lv-scroll-frame { position: relative; display: flex; flex-direction: column; min-height: 0; }
.lv-scroll-frame::before, .lv-scroll-frame::after { content: ""; position: absolute; left: 0; right: 0; height: 1px; background: var(--line-strong); opacity: 0; pointer-events: none; z-index: 1; }
.lv-scroll-frame::before { top: 0; }
.lv-scroll-frame::after { bottom: 0; }
.lv-scroll-frame.has-above::before, .lv-scroll-frame.has-below::after { opacity: 1; }
.lv-scroll-frame.is-x::before, .lv-scroll-frame.is-x::after { top: 0; bottom: 0; width: 1px; height: auto; left: auto; right: auto; }
.lv-scroll-frame.is-x::before { left: 0; }
.lv-scroll-frame.is-x::after { right: 0; }
