*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#ffffff;           /* pure white body */
  --card:#fff;
  --border:rgba(0,0,0,.08);
  --border-strong:rgba(0,0,0,.15);
  --text:#1e1e1e;         /* lighter black — not midnight */
  --muted:#777;
  --ink:#ec058c;          /* hot pink — replaces navy */
  --pink:#ec058c;         /* hot pink */
  --yellow:#f5c518;       /* brand yellow */
  --blue:#f5c518;         /* unused; alias to yellow */
  --amber:#f5c518;        /* yellow for hover/active accents */
  --black:#1e1e1e;        /* lighter black for surfaces */
  --row-hover:rgba(236,5,140,.05);  /* pink tint on hover */
  --dark:#0d0f14;         /* terminal near-black — dark chrome surfaces */
  --dark2:#151a22;        /* console input surface, one step up from --dark */
  --dark-line:#242b38;    /* hairline borders on dark surfaces */
  --mono:'JetBrains Mono','Fira Code',Consolas,monospace;
}
body{font-family:var(--mono);background:var(--bg);color:var(--text);font-size:14px;min-height:100vh;overflow-y:auto;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased}
[data-theme="dark"] body{background:#1c1f26}

/* ── HEADER ── */
.header{background:var(--dark);color:#fff;padding:20px 30px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;min-height:104px;flex-shrink:0;position:sticky;top:0;z-index:100;border-bottom:1px solid var(--yellow)}
.header-glow{position:absolute;inset:-20px 0 auto 0;height:140px;width:420px;background:radial-gradient(ellipse 340px 100px at 170px 46px,rgba(245,197,24,.10),transparent 70%);pointer-events:none;z-index:0}
.raven{height:68px;width:auto;cursor:pointer;flex-shrink:0;filter:invert(1);transition:transform .12s ease;user-select:none;-webkit-user-drag:none}
.raven:hover{transform:scale(1.08)}
.raven:active{transform:scale(.94)}
.hdr-brand-stack{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0}
.brand{font-family:'Jim Nightshade',cursive;font-weight:400;font-size:52px;line-height:.85;letter-spacing:2px;color:var(--yellow);text-transform:uppercase;white-space:nowrap;flex-shrink:0;position:relative;z-index:1}
.brand-sub{font-family:var(--mono);font-size:13px;font-weight:500;color:rgba(245,197,24,.7);letter-spacing:.3px;white-space:nowrap;flex-shrink:0;position:relative;z-index:1;margin-top:2px}
.sep{color:rgba(255,255,255,.2);flex-shrink:0}

/* search controls */
.search-row{display:flex;align-items:center;gap:10px;flex:1;min-width:0;flex-wrap:wrap;padding:12px 0}
.q-wrap{flex:0 1 440px;min-width:220px;position:relative}
.q-wrap input{width:100%;padding:11px 74px 11px 40px;border:1.5px solid rgba(255,255,255,.15);border-radius:9px;background:rgba(255,255,255,.08);color:#fff;font-size:15px;font-family:var(--mono);outline:none;box-sizing:border-box}
.q-prompt{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--yellow);font-family:var(--mono);font-size:15px;font-weight:700;pointer-events:none;z-index:1}
.q-caret{position:absolute;left:28px;top:50%;transform:translateY(-50%);width:7px;height:17px;background:var(--yellow);pointer-events:none;z-index:1;animation:qblink 1.1s steps(1) infinite}
@keyframes qblink{0%,49%{opacity:1}50%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.q-caret{animation:none}}
.q-wrap:has(input:not(:placeholder-shown)) .q-caret{display:none}
#advSearchWrap.adv-search-wrap-inner{position:absolute;right:8px;top:50%;transform:translateY(-50%)}
.q-clear-btn{display:none;position:absolute;right:40px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;border:none;background:transparent;color:rgba(255,255,255,.5);font-size:13px;cursor:pointer;align-items:center;justify-content:center;padding:0;transition:all .12s;z-index:2}
.q-clear-btn.visible{display:flex}
.q-clear-btn:hover{background:rgba(255,255,255,.12);color:#fff}
.q-clear-btn:focus{outline:none;box-shadow:inset 0 0 0 2px var(--amber)}
[data-theme="light"] .q-clear-btn{color:rgba(30,30,30,.4)}
[data-theme="light"] .q-clear-btn:hover{background:rgba(30,30,30,.08);color:var(--ink)}
.adv-search-btn{width:28px;height:28px;border-radius:7px;border:none;background:rgba(255,255,255,.12);color:#fff;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .12s;box-shadow:0 2px 6px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.14);position:relative}
/* Default browser focus outlines draw outside the element's own box and
   ignore the search bar's rounded clipping, so a keyboard/click focus ring
   here visibly pokes out past its right edge — use an inset ring instead,
   which can never extend beyond the button. */
.adv-search-btn:focus{outline:none;box-shadow:inset 0 0 0 2px var(--amber)}
.adv-search-btn:focus:not(:focus-visible){box-shadow:0 2px 6px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.14)}
.adv-search-btn:hover{border-color:var(--amber);color:var(--amber)}
/* Sits fully inside the button's own box (no negative offset) — nothing ties
   this dot to the search bar's rounded clipping, so any part of it hanging
   past the button's own edge visibly pokes out past the search bar too. */
.adv-search-btn.active::after{content:"";position:absolute;top:2px;right:2px;width:6px;height:6px;border-radius:50%;background:var(--pink)}
.q-wrap input::placeholder{color:rgba(255,255,255,.35)}
.q-wrap input:focus{border-color:var(--amber);background:rgba(255,255,255,.12)}
.hdr-select{padding:9px 13px;border:1.5px solid rgba(255,255,255,.15);border-radius:9px;background:rgba(255,255,255,.08);color:#fff;font-size:14px;font-family:var(--mono);cursor:pointer;outline:none}
.hdr-select:focus{border-color:var(--amber)}
.hdr-select option{background:var(--dark);color:#fff}
.date-input{padding:9px 11px;border:1.5px solid rgba(255,255,255,.15);border-radius:9px;background:rgba(255,255,255,.08);color:#fff;font-size:14px;font-family:var(--mono);outline:none;width:126px}
.date-input:focus{border-color:var(--amber)}
.date-input::-webkit-calendar-picker-indicator{filter:invert(1) opacity(.5)}
.date-label{font-size:13px;color:#fff;white-space:nowrap}

/* ex10 toggle pill */
.toggle-pill{display:inline-flex;align-items:center;gap:7px;cursor:pointer;user-select:none;padding:7px 13px;border:1.5px solid rgba(255,255,255,.15);border-radius:20px;font-size:13px;color:#fff;white-space:nowrap;transition:all .15s}
.toggle-pill input{display:none}
.toggle-pill.active{border-color:var(--pink);color:var(--yellow);background:rgba(236,5,140,.18)}
.toggle-dot{width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.6}

.btn-search{height:40px;padding:0 24px;border-radius:9px;border:none;background:var(--yellow);color:#1e1e1e;font-weight:700;font-size:15px;font-family:var(--mono);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:opacity .15s;display:inline-flex;align-items:center;justify-content:center}
.adv-search-submit{width:100%;margin-top:10px}
.btn-search:hover{opacity:.85}
.btn-search:disabled{opacity:.5;cursor:not-allowed}

/* status bar */
.status-bar{background:var(--dark);color:#fff;font-size:11px;padding:5px 18px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.08)}
.status-dot{width:9px;height:9px;border-radius:50%;background:rgba(245,197,24,.4);flex-shrink:0}
.status-text-inline{font-size:13px;color:#fff;white-space:nowrap}
.hdr-spacer{flex:1;min-width:8px}
.status-dot.live{background:#2ecc71}
.status-dot.dead{background:var(--pink)}

/* ── LAYOUT ── */
.workspace{display:flex;flex:1;min-height:0;overflow:hidden}
/* The reader (split-view) pane's document iframe needs a bounded height to
   flex against — giving this row its own min-height rather than forcing the
   whole body to a fixed, clipped viewport (like before) means the iframe
   still renders correctly, but the page can still scroll past this row to
   reach the footer instead of trapping you at exactly one screen. */
.workspace.reader-open{min-height:100vh}
.results-col{flex:1;min-width:0;overflow-y:auto;padding:0 18px;display:flex;flex-direction:column}
.reader-col{width:0;overflow:hidden;transition:width .2s ease;border-left:2px solid var(--border);background:#fff;display:flex;flex-direction:column}
.reader-col.open{width:50%}
.split-handle{flex:0 0 7px;cursor:col-resize;background:var(--border);display:none}
.workspace.reader-open .split-handle{display:block}
.split-handle:hover,.split-handle.dragging{background:var(--ink)}

/* ── EMPTY / HINT STATE ── */
.hint{flex:1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;color:var(--muted)}
.poe-quote{max-width:1180px;width:100%;margin:0 auto 22px;position:relative;cursor:pointer;transition:transform .12s ease}
.poe-quote:hover{transform:scale(1.02)}
.poe-quote:active{transform:scale(.99)}
.poe-quote-text{
  display:block;
  font-family:'UnifrakturMaguntia',cursive;
  font-size:46px;
  line-height:1.08;
  color:#1e1e1e;
  white-space:pre-wrap;
  text-shadow:1px 1px 0 rgba(255,255,255,.6);
}
.poe-quote-text.poe-quote-fake{
  font-family:'Beth Ellen',cursive;
  font-weight:400;
  font-size:24px;
  line-height:1.45;
  text-shadow:none;
}
.poe-quote-attr{
  display:block;
  margin-top:14px;
  font-family:'Beth Ellen',cursive;
  font-size:16px;
  color:#555;
  letter-spacing:.5px;
}
[data-theme="dark"] .poe-quote-text{color:#f5f2ea}
[data-theme="dark"] .poe-quote-attr{color:#9a978d}
.hint-sub{font-size:12px;color:rgba(0,0,0,.3);line-height:1.6;max-width:360px;margin:0 auto}
.hint-sub code{background:rgba(0,0,0,.07);padding:1px 5px;border-radius:4px;font-size:11px}

/* ── QUERY TRANSLATION HINT ── */
/* Absolutely positioned (q-wrap is its positioning parent) so it drops below
   the input without adding to q-wrap's own height — as a normal-flow element
   it was growing the whole search row, shifting how Documents/Language,
   Search, and the status dot vertically align whenever it appeared. */
#queryTranslationHint{display:none;position:absolute;top:100%;left:2px;right:0;z-index:5;font-size:11px;color:var(--muted);padding:3px 2px 0;line-height:1.5}
#queryTranslationHint .qt-label{color:var(--yellow);font-style:italic}
#queryTranslationHint .qt-query{font-family:'Consolas','Menlo',monospace;font-size:11px;color:#1e1e1e;background:var(--yellow);padding:1px 5px;border-radius:3px}
#queryTranslationHint .qt-source{font-size:10px;color:var(--yellow);margin-left:4px}

/* ── RESULTS ── */
.results-meta{font-size:12px;color:var(--muted);margin-bottom:10px;display:flex;align-items:center;gap:12px}
.results-meta b{color:var(--text)}
[data-theme="dark"] .results-meta,[data-theme="dark"] .results-meta b,[data-theme="dark"] .ctrl-group{color:#fff}
.results-wrap{background:#fff;border-radius:8px}
.results-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px}
.results-table th:nth-child(2),.results-table td:nth-child(2){width:24%}
.results-table th:nth-child(3),.results-table td:nth-child(3){width:30%}
.results-table th:nth-child(4),.results-table td:nth-child(4){width:20%}
.results-table th:nth-child(5),.results-table td:nth-child(5){width:88px}
.results-table th:nth-child(6),.results-table td:nth-child(6){width:112px}
.results-table th{background:#f3f0ea;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:8px 10px;text-align:left;color:var(--muted);border-bottom:2px solid var(--border);white-space:nowrap;position:sticky;top:0;z-index:2}
.results-table td{padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:middle}
.results-table tbody tr{cursor:pointer}
.results-table tbody tr:hover td{background:var(--row-hover)}
.results-table tbody tr.active td{background:rgba(245,197,24,.15)}
.entity-name{color:var(--ink);text-decoration:underline;text-decoration-color:rgba(236,5,140,.25);text-underline-offset:2px}
.results-table tbody tr:hover .entity-name{text-decoration-color:var(--ink)}

.tag{display:inline-block;padding:2px 7px;border-radius:10px;font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;white-space:nowrap}
.tag-ex{background:rgba(236,5,140,.10);color:var(--ink)}
.tag-form{background:rgba(236,5,140,.08);color:var(--ink)}

.entity-name{font-weight:600;color:var(--text);line-height:1.3;overflow-wrap:break-word}
.doc-desc{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.3;overflow-wrap:break-word}
.cell-title{font-size:12px;color:var(--text);font-weight:500;line-height:1.35;overflow-wrap:break-word}
.cell-industry{font-size:11px;color:var(--muted);overflow-wrap:break-word}
.cell-loading{color:var(--border-strong);font-style:italic}

.btn-sm{padding:4px 10px;border-radius:6px;font-size:11px;font-weight:600;font-family:var(--mono);cursor:pointer;border:1.5px solid;transition:all .12s;white-space:nowrap}
.btn-edgar{border-color:rgba(236,5,140,.30);color:var(--ink);background:rgba(236,5,140,.06)}
.btn-edgar:hover{background:rgba(236,5,140,.14);border-color:var(--ink)}

/* ── DOWNLOAD BUTTON ── */
.btn-download-wrap{position:relative;display:inline-block}
.btn-download{border-color:rgba(245,197,24,.5);color:var(--ink);background:rgba(245,197,24,.10);font-size:13px;padding:3px 9px}
.btn-download:hover{background:rgba(245,197,24,.25);border-color:var(--amber)}

/* ── RAVEN SPEECH BUBBLE ── */
.raven-wrap{position:relative;display:inline-flex;align-items:center;flex-shrink:0}
.raven-says{
  position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%) scale(.8);
  background:var(--yellow);color:#000;
  font-family:'Jim Nightshade',cursive;font-size:22px;letter-spacing:.5px;
  padding:5px 14px;border-radius:14px;white-space:nowrap;
  opacity:0;pointer-events:none;
  transition:opacity .2s, transform .2s;
  transform-origin:left center;
  z-index:200;
}
.raven-says::before{
  content:'';position:absolute;right:100%;top:50%;transform:translateY(-50%);
  border:7px solid transparent;border-right-color:var(--yellow);
}
.raven-says.visible{opacity:1;transform:translateY(-50%) scale(1)}
.btn-pull{border-color:rgba(245,197,24,.55);color:var(--ink);background:rgba(245,197,24,.12)}
.btn-pull:hover{background:rgba(245,197,24,.22);border-color:var(--amber)}
.btn-pull.loading{opacity:.6;cursor:wait}
.btn-pull.done{border-color:rgba(245,197,24,.5);color:#1e1e1e;background:rgba(245,197,24,.12)}
.actions-cell{display:flex;flex-wrap:wrap;gap:5px;align-items:center}

.load-more{display:block;margin:16px auto 0;padding:8px 28px;border-radius:8px;border:1.5px solid var(--border-strong);background:#fff;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;font-family:var(--mono)}
.load-more:hover{background:var(--row-hover);border-color:var(--amber)}

/* ── READER ── */
.reader-header{padding:12px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;flex-shrink:0;background:#fafafa}
.reader-title{flex:1;font-weight:600;font-size:12px;color:var(--text);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}
.reader-find-wrap{display:flex;align-items:center;gap:5px}
.reader-find{padding:4px 8px;border:1.5px solid var(--border);border-radius:6px;font-size:12px;font-family:var(--mono);outline:none;width:160px}
.reader-find:focus{border-color:var(--amber)}
.reader-find-count{font-size:11px;color:var(--muted);white-space:nowrap}
.btn-close-reader{padding:4px 8px;border-radius:6px;border:1.5px solid var(--border);background:transparent;cursor:pointer;font-size:12px;color:var(--muted);font-family:var(--mono)}
.btn-close-reader:hover{border-color:var(--pink);color:var(--pink)}

.reader-frame{flex:1;width:100%;border:none;background:#fff}

/* ── MODE TOGGLE (in header) ── */
.mode-toggle{display:inline-flex;border:none;border-radius:9px;overflow:hidden;flex-shrink:0;background:rgba(255,255,255,.12);box-shadow:0 3px 8px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.14)}
.mode-btn{height:40px;padding:0 18px;font-size:14px;font-weight:600;font-family:var(--mono);border:none;background:transparent;color:#fff;cursor:pointer;transition:all .12s;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center}
.mode-btn.active{background:var(--yellow);color:#1e1e1e;font-weight:700}
.mode-btn:not(.active):hover{background:rgba(255,255,255,.1);color:var(--amber)}

/* ── LANGUAGE PANEL (in results col) ── */
.language-panel{display:none;padding:14px 18px}
.lang-header{font-size:12px;color:var(--muted);margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lang-clause{font-weight:600;color:var(--text);font-size:12px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lang-progress{font-size:11px;color:var(--muted);white-space:nowrap;flex-shrink:0}
.snippet-card{background:#fff;border:1px solid var(--border);border-left:3px solid transparent;border-radius:6px;margin-bottom:10px;overflow:hidden;transition:border-color .15s, border-left-color .15s;animation:fadeUp .18s ease;cursor:pointer}
.snippet-card:hover{border-color:rgba(0,0,0,.15);border-left-color:var(--amber);box-shadow:0 1px 6px rgba(0,0,0,.05)}
.snippet-meta{padding:8px 14px 2px;font-size:11px;color:var(--muted);line-height:1.4}
.snippet-meta strong{color:var(--text);font-weight:600}
.snippet-body{padding:6px 14px 10px;font-size:13px;line-height:1.45;color:#1e1e1e;font-family:Calibri,'Helvetica Neue',Arial,sans-serif;white-space:pre-line}
.snippet-body b.match{font-weight:700;color:var(--text)}
.snippet-actions{padding:8px 14px;border-top:1px solid var(--border);display:flex;align-items:center;gap:8px;background:#fafafa}
.snippet-action-btn{padding:4px 12px;border-radius:5px;border:1.5px solid var(--border-strong);background:#fff;font-size:11px;font-weight:600;font-family:var(--mono);cursor:pointer;color:var(--text);transition:all .12s}
.snippet-action-btn:hover{background:var(--row-hover);border-color:var(--amber)}
.snippet-icon-btn{padding:4px 8px;border-radius:5px;border:1.5px solid var(--border);background:transparent;font-size:13px;cursor:pointer;color:var(--muted);transition:all .12s;line-height:1}
.snippet-icon-btn:hover{border-color:var(--amber);color:var(--amber)}
.snippet-icon-btn.copied{color:var(--pink);border-color:var(--pink)}
@keyframes fadeUp{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.lang-empty{text-align:center;padding:40px 20px;color:var(--muted);font-size:13px}

/* ── LOADING ── */
.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(0,0,0,.15);border-top-color:var(--amber);border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle;margin-right:5px}
@keyframes spin{to{transform:rotate(360deg)}}
.lang-loading{text-align:center;padding:64px 20px 56px;animation:fadeUp .15s ease}
.lang-loading-spinner{display:inline-block;width:34px;height:34px;border:4px solid rgba(236,5,140,.15);
  border-top-color:var(--pink);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}
.lang-loading-text{font-size:15px;font-weight:600;color:var(--text)}
.lang-loading-count{font-size:13px;color:var(--muted);margin-top:6px}
.lang-loading-bar-wrap{width:220px;height:5px;border-radius:3px;background:var(--border-strong);margin:16px auto 0;overflow:hidden}
.lang-loading-bar{height:100%;background:var(--pink);border-radius:3px;transition:width .2s ease;width:0%}
/* .lang-header/.lang-clause/.lang-progress/.lang-empty/.lang-loading-* sit
   directly on the page body, not a white card, so the light-theme (near-
   black) text/border colors above are nearly invisible on the dark theme's
   dark-navy page background — the actual root cause of Language mode
   looking blank/unresponsive in dark mode. */
[data-theme="dark"] .lang-header{border-bottom-color:rgba(255,255,255,.12)}
[data-theme="dark"] .lang-clause{color:#fff}
[data-theme="dark"] .lang-progress{color:rgba(255,255,255,.55)}
[data-theme="dark"] .lang-empty{color:rgba(255,255,255,.55)}
[data-theme="dark"] .lang-hidden-bar{color:rgba(255,255,255,.55);background:rgba(255,255,255,.06)}
[data-theme="dark"] .lang-loading-text{color:#fff}
[data-theme="dark"] .lang-loading-count{color:rgba(255,255,255,.55)}
[data-theme="dark"] .lang-loading-bar-wrap{background:rgba(255,255,255,.12)}

/* ── SERVER NAG ── */
.server-nag{background:linear-gradient(90deg,rgba(245,197,24,.18),rgba(245,197,24,.06));border:1.5px solid rgba(245,197,24,.55);border-radius:10px;padding:14px 18px;margin:20px;font-size:13px;line-height:1.6}
.server-nag b{color:var(--ink)}
.server-nag code{background:rgba(0,0,0,.07);padding:2px 6px;border-radius:4px;font-size:12px}

/* ── RESULTS CONTROLS BAR (sort / per-page) ── */
.results-controls{display:none;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 2px 12px;margin-bottom:6px;border-bottom:1px solid var(--border)}
.results-controls .results-meta{margin:0}
.ctrl-spacer{flex:1}
.ctrl-group{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.ctrl-select{padding:4px 8px;border:1.5px solid var(--border-strong);border-radius:6px;background:#fff;color:var(--text);font-size:12px;font-family:var(--mono);cursor:pointer;outline:none;text-transform:none;letter-spacing:0}
.ctrl-select:focus{border-color:var(--amber)}

/* ── REMEMBER (multi-select) ── */
.remember-cell{width:34px;text-align:center}
.remember-box{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:1.5px solid var(--border-strong);border-radius:5px;cursor:pointer;position:relative;background:#fff;vertical-align:middle;transition:all .12s}
.remember-box:hover{border-color:var(--amber)}
.remember-box:checked{background:var(--amber);border-color:var(--amber)}
.remember-box:checked::after{content:'✓';position:absolute;top:50%;left:50%;transform:translate(-50%,-52%);color:#fff;font-size:12px;font-weight:700;line-height:1}
.results-table tbody tr.remembered td{background:rgba(245,197,24,.08)}
.snippet-remember{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:5px;border:1.5px solid var(--border-strong);background:#fff;font-size:11px;font-weight:600;font-family:var(--mono);cursor:pointer;color:var(--text);transition:all .12s}
.snippet-remember:hover{border-color:var(--amber)}
.snippet-remember.on{background:rgba(245,197,24,.18);border-color:var(--amber);color:var(--ink)}
/* Helpful (★) vote with shared count */
.snippet-helpful{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:5px;border:1.5px solid var(--border-strong);background:#fff;font-size:11px;font-weight:600;font-family:var(--mono);cursor:pointer;color:var(--text);transition:all .12s}
.snippet-helpful:hover{border-color:var(--ink);color:var(--ink)}
.snippet-helpful.on{background:rgba(236,5,140,.10);border-color:var(--ink);color:var(--ink)}
.snippet-helpful .hcount{font-weight:700}
/* Hide / dismiss */
.snippet-hide{margin-left:auto;padding:4px 9px;border-radius:5px;border:1.5px solid transparent;background:transparent;font-size:11px;font-weight:600;font-family:var(--mono);cursor:pointer;color:var(--muted);transition:all .12s}
.snippet-hide:hover{border-color:var(--pink);color:var(--pink)}
.lang-hidden-bar{font-size:11px;color:var(--muted);margin:0 0 14px;padding:6px 10px;background:rgba(0,0,0,.03);border-radius:6px;display:inline-block}
.lang-hidden-bar a{color:var(--ink);cursor:pointer;text-decoration:underline;font-weight:600}

/* ── THEME GROUPS (thematic Language view) ── */
.theme-group{margin-bottom:26px}
.theme-head{display:flex;align-items:baseline;gap:10px;margin:0 0 10px;padding-bottom:6px;border-bottom:2px solid var(--ink)}
.theme-name{font-family:'Londrina Solid',serif;font-weight:900;font-size:19px;letter-spacing:1px;color:var(--ink);text-transform:uppercase}
.theme-count{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.snippet-heading{font-weight:700;color:var(--ink);font-size:12px;padding:8px 14px 0;letter-spacing:.2px}

/* ── REMEMBER TRAY ── */
.tray{position:fixed;bottom:18px;left:50%;transform:translateX(-50%) translateY(200px);background:var(--dark);color:#fff;border:1.5px solid var(--amber);border-radius:12px;padding:10px 16px;display:flex;align-items:center;gap:12px;z-index:300;box-shadow:0 8px 30px rgba(0,0,0,.3);transition:transform .22s ease,visibility 0s .22s;font-size:13px;visibility:hidden}
.tray.show{transform:translateX(-50%) translateY(0);visibility:visible;transition:transform .22s ease}
.tray-count{font-weight:600;white-space:nowrap}
.tray-count b{color:var(--yellow)}
.tray-btn{padding:6px 14px;border-radius:7px;border:none;font-size:12px;font-weight:700;font-family:var(--mono);cursor:pointer;background:var(--yellow);color:#000;white-space:nowrap}
.tray-btn:hover{background:var(--amber);color:#fff}
.tray-btn.ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.2)}
.tray-btn.ghost:hover{color:#fff;border-color:#fff;background:transparent}

/* ── LANDING PAGE — "The Split" ── */
.landing-page{position:fixed;inset:0;z-index:900;display:flex;flex-direction:column;overflow-y:auto}
.landing-page.hidden{display:none}

.landing-split-view{display:flex;flex:1;min-height:560px}
.ls-dark{flex:1;min-width:0;background:#0d0f14;color:#f5f2ea;display:flex;flex-direction:column;justify-content:center;padding:70px 64px}
.ls-brand-row{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:44px}
.ls-raven-wrap{position:relative;display:inline-flex}
.ls-raven{width:84px;height:auto;flex-shrink:0;filter:invert(1);cursor:pointer;user-select:none;-webkit-user-drag:none;transition:transform .2s ease}
.ls-raven:hover{transform:translateY(-5px) rotate(-5deg)}
.ls-raven:active{transform:translateY(-1px) rotate(3deg) scale(.96)}
.ls-raven-says{
  position:absolute;left:calc(100% + 14px);top:50%;transform:translateY(-50%) scale(.8);
  background:var(--yellow);color:#000;
  font-family:'Jim Nightshade',cursive;font-size:22px;letter-spacing:.5px;
  padding:5px 14px;border-radius:14px;white-space:nowrap;
  opacity:0;pointer-events:none;
  transition:opacity .2s, transform .2s;
  transform-origin:left center;
  z-index:200;
}
.ls-raven-says::before{
  content:'';position:absolute;right:100%;top:50%;transform:translateY(-50%);
  border:7px solid transparent;border-right-color:var(--yellow);
}
.ls-raven-says.visible{opacity:1;transform:translateY(-50%) scale(1)}
.ls-brand{font-family:'Jim Nightshade',cursive;font-weight:400;font-size:clamp(72px,9vw,116px);color:var(--yellow);line-height:1}
.ls-statement{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:clamp(46px,6vw,88px);line-height:.98;letter-spacing:.01em;margin:0;text-wrap:balance}
.ls-statement span{color:var(--pink)}
.ls-light{flex:1;min-width:0;background:#f5f2ea;color:#171512;display:flex;flex-direction:column;justify-content:center;padding:70px 64px}
.ls-list{list-style:none;margin:0 0 40px;padding:0;display:flex;flex-direction:column;gap:28px}
.ls-list li{display:flex;gap:18px;align-items:baseline}
.ls-list .num{font-family:'Archivo Black',sans-serif;font-size:26px;color:var(--pink);flex-shrink:0;width:42px}
.ls-list .txt{display:block}
.ls-list .txt b{display:block;font-size:16px;color:#171512;margin-bottom:4px}
.ls-list .txt span{font-size:13.5px;color:#5c574c;line-height:1.5}

.landing-enter{padding:12px 32px;border-radius:10px;border:none;background:var(--yellow);color:#1e1e1e;font-weight:700;font-size:16px;font-family:var(--mono);cursor:pointer;transition:transform .15s ease,opacity .15s;width:max-content}
.landing-enter:hover{transform:scale(1.04)}
.landing-foot-bar{background:#0d0f14;padding:16px 24px;text-align:center;flex-shrink:0;border-top:2px solid var(--yellow)}
.landing-footnote{font-size:11px;color:#fff;margin:0}
.landing-footnote a{color:#fff;text-decoration:underline;cursor:pointer}
.landing-footnote a:hover{color:var(--pink)}

@media (max-width:820px){
  .landing-split-view{flex-direction:column}
  .ls-dark,.ls-light{padding:48px 32px}
}

/* ── LEGAL / ABOUT OVERLAY ── */
.legal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(2px);z-index:950;display:none;align-items:center;justify-content:center}
.legal-overlay.open{display:flex}
.legal-modal{background:var(--bg);color:var(--ink);width:640px;max-width:92vw;max-height:86vh;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.4);display:flex;flex-direction:column;overflow:hidden}
.legal-modal.wide{width:1000px}
.legal-bar{background:var(--dark);color:#fff;padding:12px 18px;display:flex;align-items:center;gap:12px;flex-shrink:0;border-bottom:2px solid var(--amber)}
.legal-title{font-family:'Jim Nightshade',cursive;font-weight:400;letter-spacing:.5px;color:var(--yellow);font-size:24px}
.legal-close{margin-left:auto;padding:6px 12px;border-radius:7px;border:1.5px solid rgba(255,255,255,.25);background:transparent;color:#fff;cursor:pointer;font-size:13px;font-family:var(--mono)}
.legal-close:hover{border-color:var(--pink);color:var(--pink)}
.legal-body{flex:1;overflow-y:auto;padding:20px 26px;font-size:13.5px;line-height:1.65;font-family:'Inter',system-ui,sans-serif;color:var(--text)}
.legal-body b{color:var(--text)}
.legal-body h3{font-size:13px;font-weight:700;margin:16px 0 4px;color:var(--ink)}
.legal-body h3:first-child{margin-top:0}
.legal-body p{margin:0 0 10px}
.legal-body ul{margin:0 0 12px;padding-left:20px}
.legal-body li{margin-bottom:7px}
.legal-body li:last-child{margin-bottom:0}
.legal-body .legal-note{background:rgba(236,5,140,.06);border:1px solid rgba(236,5,140,.2);border-radius:8px;padding:12px 14px;margin:0 0 14px;font-size:13px}
.legal-body .legal-note b{color:var(--ink)}
.legal-body .legal-meta{font-size:11px;color:var(--muted);margin-bottom:14px}
.app-footer a{color:inherit;text-decoration:underline}
.app-footer a:hover{color:var(--pink)}
.legal-body a{color:var(--ink);text-decoration:underline}
.legal-body a:hover{color:var(--pink)}

/* ── COMPARE OVERLAY ── */
.compare-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(2px);z-index:400;display:none;flex-direction:column}
.compare-overlay.open{display:flex}
.compare-bar{background:var(--dark);color:#fff;padding:12px 18px;display:flex;align-items:center;gap:12px;flex-shrink:0;border-bottom:2px solid var(--amber)}
.compare-title{font-family:'Jim Nightshade',cursive;font-weight:400;letter-spacing:.5px;color:var(--yellow);font-size:26px}
.compare-sub{font-size:12px;color:#fff}
.compare-close{margin-left:auto;padding:6px 12px;border-radius:7px;border:1.5px solid rgba(255,255,255,.25);background:transparent;color:#fff;cursor:pointer;font-size:13px;font-family:var(--mono)}
.compare-close:hover{border-color:var(--pink);color:var(--pink)}
.compare-cols{flex:1;display:flex;gap:0;overflow-x:auto;overflow-y:hidden;background:var(--bg)}
.compare-col{flex:0 0 380px;display:flex;flex-direction:column;border-right:1px solid var(--border);background:#fff;overflow-y:auto}
.compare-col-head{position:sticky;top:0;background:#f3f0ea;padding:10px 14px;border-bottom:2px solid var(--border);z-index:1}
.compare-col-entity{font-weight:700;font-size:13px;color:var(--text);line-height:1.3}
.compare-col-meta{font-size:11px;color:var(--muted);margin-top:2px}
.compare-col-actions{display:flex;gap:6px;padding:8px 14px;border-bottom:1px solid var(--border);background:#fafafa}
.compare-col-actions button{padding:3px 9px;border-radius:5px;border:1.5px solid var(--border-strong);background:#fff;font-size:11px;font-weight:600;font-family:var(--mono);cursor:pointer;color:var(--text);transition:all .12s}
.compare-col-actions button:hover{border-color:var(--amber)}
.compare-clause{padding:10px 14px;border-bottom:1px solid var(--border);font-size:12.5px;line-height:1.45;color:#1e1e1e;font-family:Calibri,'Helvetica Neue',Arial,sans-serif;white-space:pre-line}
.compare-back{padding:6px 12px;border-radius:7px;border:1.5px solid var(--amber);background:transparent;color:var(--yellow);cursor:pointer;font-size:13px;font-weight:700;font-family:var(--mono)}
.compare-back:hover{background:var(--yellow);color:#000}

/* ── STATUS-BAR BUTTONS (radio / folio) ── */
.status-bar{position:relative}
.status-btn{padding:8px 16px;border-radius:10px;border:none;background:rgba(255,255,255,.12);color:#fff;font-size:13px;font-weight:600;font-family:var(--mono);cursor:pointer;transition:all .15s ease;white-space:nowrap;box-shadow:0 3px 8px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.14)}
.status-btn:hover{background:rgba(255,255,255,.18);color:var(--amber);transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.5),0 0 0 1px var(--amber)}
.status-btn:active{transform:translateY(0)}
.status-btn.on{color:var(--amber);background:rgba(245,197,24,.16);box-shadow:0 2px 6px rgba(0,0,0,.35),0 0 0 1.5px var(--amber)}
#radioBtn{max-width:200px;overflow:hidden;text-overflow:ellipsis;display:inline-block;vertical-align:middle}
.brain-dropdown-wrap{position:relative;flex-shrink:0}
.brain-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--dark);border:1px solid var(--yellow);border-radius:10px;min-width:230px;z-index:500;padding:6px;display:none;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.brain-dropdown.open{display:block}
.adv-search-dropdown{left:0;right:auto;min-width:300px;padding:14px;display:none;flex-direction:column;gap:12px}
.adv-search-dropdown.open{display:flex}
.adv-field-label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#fff;font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.adv-field-label .hdr-select{width:100%}
.adv-date-row{display:flex;align-items:center;gap:8px;font-weight:400;text-transform:none;letter-spacing:0;font-size:13px;color:#fff}
.adv-date-row .date-input{flex:1}
.brain-dd-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:7px;text-decoration:none;color:#fff;transition:background .12s}
.brain-dd-item:hover{background:rgba(245,197,24,.12)}
.brain-dd-item strong{display:block;font-size:13px;font-weight:700;color:var(--yellow)}
.brain-dd-item small{display:block;font-size:11px;color:#fff;margin-top:1px}
.brain-dd-icon{font-size:20px;flex-shrink:0}

/* reader: add-to-notebook */
.btn-add-nb{padding:4px 9px;border-radius:6px;border:1.5px solid var(--border-strong);background:#fff;font-size:11px;font-weight:600;font-family:var(--mono);cursor:pointer;color:var(--text);white-space:nowrap;transition:all .12s}
.btn-add-nb:hover{border-color:var(--amber);color:var(--ink)}
.btn-helpful-reader{padding:4px 9px;border-radius:6px;border:1.5px solid rgba(232,160,48,.5);background:#fff;font-size:11px;font-weight:600;font-family:var(--mono);cursor:pointer;color:var(--amber);white-space:nowrap;transition:all .12s}
.btn-helpful-reader:hover{background:rgba(232,160,48,.15);border-color:var(--amber)}
.btn-helpful-reader.saved{color:#27ae60;border-color:#27ae60;background:rgba(39,174,96,.1)}
.btn-jump{padding:4px 10px;border-radius:6px;border:1.5px solid var(--ink);background:rgba(236,5,140,.06);font-size:11px;font-weight:700;font-family:var(--mono);cursor:pointer;color:var(--ink);white-space:nowrap;transition:all .12s}
.btn-jump:hover{background:var(--ink);color:#fff}
.jump-count{font-weight:600;opacity:.8;font-size:10px}

/* ── MY FOLIO DRAWER ── */
.folio-scrim{position:fixed;inset:0;background:rgba(0,0,0,.38);z-index:340;display:none}
.folio-scrim.open{display:block}
.folio{position:fixed;top:0;right:0;height:100vh;width:460px;max-width:92vw;background:var(--bg);z-index:360;display:flex;flex-direction:column;transform:translateX(105%);transition:transform .22s ease,width .18s ease;box-shadow:-8px 0 30px rgba(0,0,0,.22)}
.folio.open{transform:translateX(0)}
.folio.fullscreen{width:100vw;max-width:100vw;right:0;left:0}
/* Pop-out mode: folio fills the whole popup window, no slide animation */
body.popout-mode .folio{position:fixed;inset:0;width:100%;height:100%;transform:none;box-shadow:none;transition:none}
.folio-fs-btn{padding:4px 8px;border-radius:6px;border:1.5px solid rgba(255,255,255,.2);background:transparent;color:#fff;cursor:pointer;font-size:13px;flex-shrink:0}
.folio-fs-btn:hover{border-color:var(--amber);color:var(--amber)}
.folio-popout-btn{color:var(--amber);border-color:var(--amber)}

/* ── NOTEBOOK (Projects + Rich Text) ── */
.nb-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border);background:#fafafa;flex-shrink:0;flex-wrap:wrap}
.nb-bar-title{flex:1;font-weight:700;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.nb-btn{padding:4px 11px;border-radius:6px;border:1.5px solid var(--border-strong);background:#fff;font-size:11px;font-weight:600;font-family:var(--mono);cursor:pointer;color:var(--text);white-space:nowrap;transition:all .12s}
.nb-btn:hover{border-color:var(--amber);color:var(--ink)}
.nb-back{border-color:var(--border);color:var(--muted)}
.nb-back:hover{border-color:var(--ink);color:var(--ink)}
.nb-fmt-bar{display:flex;gap:3px;align-items:center}
.nb-fmt{width:26px;height:24px;border-radius:4px;border:1.5px solid var(--border);background:#fff;cursor:pointer;font-size:12px;font-family:'Georgia',serif;transition:all .1s;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nb-fmt:hover{background:rgba(236,5,140,.06);border-color:var(--ink)}
.nb-fmt:active{background:var(--ink);color:#fff;border-color:var(--ink)}
.nb-fmt.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.nb-divider{width:1px;height:18px;background:var(--border);margin:0 3px;flex-shrink:0}
.nb-project-card{padding:11px 14px;border:1.5px solid var(--border);border-radius:9px;margin-bottom:8px;cursor:pointer;display:flex;align-items:center;gap:10px;background:#fff;transition:all .12s}
.nb-project-card:hover{border-color:var(--amber);background:rgba(232,160,48,.04);transform:translateX(2px)}
.nb-proj-name{flex:1;font-weight:600;font-size:13px;color:var(--text)}
.nb-proj-meta{font-size:11px;color:var(--muted);white-space:nowrap}
.nb-proj-del{padding:2px 7px;border-radius:5px;border:1.5px solid transparent;background:transparent;font-size:12px;color:var(--muted);cursor:pointer;flex-shrink:0}
.nb-proj-del:hover{border-color:var(--pink);color:var(--pink)}
.nb-entry-card{border:1.5px solid var(--border);border-radius:8px;margin-bottom:10px;background:#fff;overflow:hidden;transition:border-color .12s}
.nb-entry-card:focus-within{border-color:var(--amber)}
.nb-entry-src{padding:6px 12px;background:#fafafa;border-bottom:1px solid var(--border);font-size:11px;color:var(--muted);line-height:1.4}
.nb-entry-src strong{color:var(--text)}
.nb-entry-body{padding:10px 12px;font-family:Calibri,'Helvetica Neue',Arial,sans-serif;font-size:13px;line-height:1.75;color:#1e1e1e;outline:none;min-height:80px;cursor:text}
.nb-entry-body:focus{background:rgba(245,197,24,.02)}
.nb-entry-footer{padding:6px 12px;border-top:1px solid var(--border);background:#fafafa;display:flex;gap:6px;justify-content:flex-end}
.nb-entry-del{padding:3px 8px;border-radius:5px;border:1.5px solid var(--border);background:transparent;font-size:11px;color:var(--muted);cursor:pointer;font-family:var(--mono)}
.nb-entry-del:hover{border-color:var(--pink);color:var(--pink)}
.nb-empty{text-align:center;padding:40px 16px;color:var(--muted);font-size:13px;font-style:italic}

/* Notebook save button (whole document) */
.btn-notebook-save{border-color:rgba(232,160,48,.4);color:var(--amber);background:transparent;font-size:13px;padding:3px 9px}
.btn-notebook-save:hover{background:rgba(232,160,48,.15);border-color:var(--amber)}
.btn-notebook-save.saved{color:#27ae60;border-color:#27ae60;background:rgba(39,174,96,.1)}

/* Helpful contract cards */
.hp-contract-card{background:#fff;border:1.5px solid var(--border);border-radius:9px;margin-bottom:8px;padding:12px 14px;transition:border-color .12s}
.hp-contract-card:hover{border-color:rgba(0,0,0,.18)}
.hp-contract-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:6px}
.hp-contract-entity{flex:1;font-weight:600;font-size:13px;color:var(--text);line-height:1.3}
.hp-contract-meta{font-size:11px;color:var(--muted);margin-bottom:8px;line-height:1.4}
.hp-contract-desc{font-size:12px;color:#555;margin-bottom:8px;font-style:italic;line-height:1.4;font-family:Calibri,'Helvetica Neue',Arial,sans-serif}
.hp-contract-actions{display:flex;gap:6px}
.hp-contract-actions button{padding:4px 11px;border-radius:6px;border:1.5px solid var(--border-strong);background:#fff;font-size:11px;font-weight:600;font-family:var(--mono);cursor:pointer;color:var(--text);transition:all .12s}
.hp-contract-actions button:hover{border-color:var(--amber);color:#a06010}
.hp-contract-actions .hp-del{border-color:var(--border);color:var(--muted)}
.hp-contract-actions .hp-del:hover{border-color:#e74c3c;color:#e74c3c}

/* Notebook view toggle */
.nb-view-toggle{display:inline-flex;border:1.5px solid var(--border);border-radius:6px;overflow:hidden;flex-shrink:0}
.nb-view-btn{padding:3px 10px;font-size:11px;font-weight:600;font-family:var(--mono);border:none;background:transparent;color:var(--muted);cursor:pointer;transition:all .1s;white-space:nowrap}
.nb-view-btn.active{background:var(--ink);color:#fff}
.nb-view-btn:not(.active):hover{background:rgba(236,5,140,.06);color:var(--ink)}

/* Table view */
.nb-table{width:100%;border-collapse:collapse;font-size:12.5px}
.nb-table th{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);padding:7px 10px;border-bottom:2px solid var(--border);text-align:left;white-space:nowrap;background:#fafafa;position:sticky;top:0;z-index:1}
.nb-table td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top;font-family:Calibri,'Helvetica Neue',Arial,sans-serif}
.nb-table tr:hover td{background:var(--row-hover)}
.nb-table .td-source{font-size:11px;color:var(--muted);white-space:nowrap}
.nb-table .td-source strong{color:var(--text);font-weight:600}
.nb-table .td-text{max-width:340px;color:#1e1e1e;line-height:1.45;cursor:text;outline:none}
.nb-table .td-text:focus{background:rgba(245,197,24,.04)}
.nb-table .td-del{white-space:nowrap}
.nb-table .td-del button{padding:2px 8px;border-radius:4px;border:1.5px solid var(--border);background:transparent;font-size:11px;color:var(--muted);cursor:pointer}
.nb-table .td-del button:hover{border-color:var(--pink);color:var(--pink)}

/* Cards view */
.nb-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.nb-card{background:#fff;border:1.5px solid var(--border);border-radius:9px;padding:12px;cursor:default;transition:border-color .12s}
.nb-card:hover{border-color:var(--amber)}
.nb-card-src{font-size:10px;color:var(--muted);margin-bottom:6px;line-height:1.3}
.nb-card-src strong{color:var(--text)}
.nb-card-body{font-size:12px;line-height:1.6;color:#1e1e1e;font-family:Calibri,'Helvetica Neue',Arial,sans-serif;max-height:120px;overflow:hidden;outline:none;cursor:text}
.nb-card-body:focus{max-height:none;border-top:1px solid var(--border);padding-top:6px;margin-top:4px}
.nb-card-del{margin-top:8px;text-align:right}
.nb-card-del button{padding:2px 8px;border-radius:4px;border:1.5px solid var(--border);background:transparent;font-size:10px;color:var(--muted);cursor:pointer}
.nb-card-del button:hover{border-color:var(--pink);color:var(--pink)}
.folio-head{background:var(--dark);color:#fff;padding:10px 14px 0;display:flex;flex-direction:column;gap:0;flex-shrink:0;border-bottom:2px solid var(--amber)}
.folio-head-row1{display:flex;align-items:center;gap:8px;padding-bottom:8px}
.folio-head-row2{display:flex;gap:0;overflow-x:auto;scrollbar-width:none}
.folio-head-row2::-webkit-scrollbar{display:none}
.folio-title{font-family:'Jim Nightshade',cursive;font-weight:400;letter-spacing:.5px;color:var(--yellow);font-size:28px}
.folio-tabs{display:inline-flex;border:1.5px solid rgba(255,255,255,.2);border-radius:8px;overflow:hidden}
.folio-tab{padding:5px 12px;font-size:12px;font-weight:600;font-family:var(--mono);border:none;background:transparent;color:#fff;cursor:pointer}
.folio-tab.active{background:var(--yellow);color:#000;font-weight:700}
.folio-close{margin-left:auto;padding:4px 9px;border-radius:6px;border:1.5px solid rgba(255,255,255,.25);background:transparent;color:#fff;cursor:pointer;font-size:13px}
.folio-close:hover{border-color:var(--pink);color:var(--pink)}
.folio-body{flex:1;overflow:hidden;display:flex;flex-direction:column}
.folio-pane{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column}
.folio-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.folio-toolbar .status-btn{color:var(--text);border-color:var(--border-strong)}
.folio-toolbar .status-btn:hover{border-color:var(--amber);color:var(--ink)}
.folio-hint{font-size:11px;color:var(--muted)}
.notebook-text{flex:1;min-height:300px;width:100%;resize:none;border:1.5px solid var(--border-strong);border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.55;font-family:Calibri,'Helvetica Neue',Arial,sans-serif;color:#1e1e1e;background:#fff;outline:none;white-space:pre-wrap}
.notebook-text:focus{border-color:var(--amber)}
.folio-empty{color:var(--muted);font-size:13px;text-align:center;padding:40px 16px;font-style:italic}
.folio-item{background:#fff;border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:10px}
.folio-item-meta{font-size:11px;color:var(--muted);margin-bottom:5px}
.folio-item-meta strong{color:var(--text)}
.folio-item-body{font-size:12.5px;line-height:1.45;color:#1e1e1e;font-family:Calibri,'Helvetica Neue',Arial,sans-serif;white-space:pre-line;max-height:140px;overflow:hidden}
.folio-item-actions{display:flex;gap:6px;margin-top:8px}
.folio-item-actions button{padding:3px 10px;border-radius:5px;border:1.5px solid var(--border-strong);background:#fff;font-size:11px;font-weight:600;font-family:var(--mono);cursor:pointer;color:var(--text)}
.folio-item-actions button:hover{border-color:var(--amber)}

/* ── TOAST ── */
.toast{position:fixed;bottom:70px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--dark);color:var(--yellow);border:1.5px solid var(--amber);padding:8px 18px;border-radius:10px;font-size:12px;font-weight:600;z-index:500;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── PROJECT PICKER (add to notebook) ── */
.nb-picker-scrim{position:fixed;inset:0;z-index:480;background:rgba(0,0,0,.35);display:none}
.nb-picker-scrim.open{display:block}
.nb-picker{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:490;
  background:var(--dark);border:1.5px solid var(--yellow);border-radius:14px;
  padding:0;width:320px;max-width:92vw;box-shadow:0 16px 48px rgba(0,0,0,.5);overflow:hidden}
.nb-picker-head{background:var(--dark);padding:13px 16px;display:flex;align-items:center;gap:10px}
.nb-picker-title{font-family:'Jim Nightshade',cursive;font-weight:400;letter-spacing:.5px;
  color:var(--yellow);font-size:24px;flex:1}
.nb-picker-close{background:transparent;border:none;color:#fff;font-size:16px;cursor:pointer;padding:0 2px}
.nb-picker-close:hover{color:var(--pink)}
.nb-picker-list{padding:8px}
.nb-picker-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;
  cursor:pointer;color:#fff;font-size:13px;font-weight:500;transition:background .1s;border:none;
  background:transparent;width:100%;text-align:left;font-family:var(--mono)}
.nb-picker-item:hover{background:rgba(245,197,24,.1)}
.nb-picker-item .nb-pi-icon{font-size:16px;flex-shrink:0}
.nb-picker-item.new-project{color:var(--yellow);border-top:1px solid rgba(255,255,255,.1);margin-top:4px}
.nb-picker-item.new-project:hover{background:rgba(245,197,24,.12)}

/* ── LANGUAGE FILTER INTERSTITIAL ── */
.filter-scrim{position:fixed;inset:0;z-index:480;background:rgba(0,0,0,.35);display:none}
.filter-scrim.open{display:block}
.filter-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:490;
  background:var(--dark);border:1.5px solid var(--yellow);border-radius:14px;
  padding:0;width:680px;max-width:92vw;max-height:86vh;overflow-y:auto;box-shadow:0 16px 48px rgba(0,0,0,.5)}
.filter-modal-head{background:var(--dark);padding:13px 16px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0}
.filter-modal-title{font-family:'Jim Nightshade',cursive;font-weight:400;letter-spacing:.5px;color:var(--yellow);font-size:22px}
.filter-modal-close{background:transparent;border:none;color:#fff;font-size:16px;cursor:pointer;padding:0 2px}
.filter-modal-close:hover{color:var(--pink)}
.filter-modal-sub{padding:0 16px 8px;font-size:12px;color:rgba(255,255,255,.55)}
.filter-section{padding:12px 16px 4px}
.filter-section-label{font-size:11px;letter-spacing:.04em;color:rgba(255,255,255,.4);margin-bottom:8px;text-transform:uppercase}
.filter-chip-row{display:flex;flex-wrap:wrap;gap:7px}
.filter-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;
  border:1.5px solid rgba(255,255,255,.18);background:rgba(255,255,255,.04);color:#fff;
  font-size:12.5px;font-family:var(--mono);cursor:pointer;transition:all .12s;user-select:none}
.filter-chip:hover{border-color:rgba(245,197,24,.5)}
.filter-chip.on{border-color:var(--pink);background:rgba(236,5,140,.16);color:#fff}
.filter-chip .n{color:rgba(255,255,255,.4)}
.filter-chip.on .n{color:rgba(255,255,255,.7)}
.filter-toggle-row{padding:14px 16px 2px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.filter-toggle-label{font-size:13px;color:#fff}
.filter-toggle-hint{font-size:11.5px;color:rgba(255,255,255,.4);margin-top:2px}
.filter-switch{position:relative;width:34px;height:19px;border-radius:20px;background:rgba(255,255,255,.15);
  border:1px solid rgba(255,255,255,.2);cursor:pointer;flex-shrink:0;transition:background .15s}
.filter-switch::after{content:'';position:absolute;top:1px;left:1px;width:15px;height:15px;border-radius:50%;
  background:#cfcdc4;transition:transform .15s,background .15s}
.filter-switch.on{background:rgba(245,197,24,.35);border-color:var(--yellow)}
.filter-switch.on::after{transform:translateX(15px);background:var(--yellow)}
.filter-country-row{padding:2px 16px 14px;display:flex;justify-content:flex-end}
.filter-country-select{padding:7px 10px;border:1.5px solid rgba(255,255,255,.18);border-radius:8px;
  background:rgba(255,255,255,.04);color:#fff;font-size:12.5px;font-family:var(--mono);outline:none;
  max-width:220px;cursor:pointer}
.filter-country-select:focus{border-color:var(--yellow)}
.filter-country-select option{background:var(--dark);color:#fff}
.filter-modal-actions{display:flex;align-items:center;justify-content:space-between;padding:16px}
.filter-skip{font-size:12.5px;color:rgba(255,255,255,.5);cursor:pointer;text-decoration:underline}
.filter-skip:hover{color:#fff}
.filter-show-btn{background:var(--yellow);color:#3a2c02;font-size:13px;font-weight:700;padding:9px 18px;
  border-radius:8px;cursor:pointer;font-family:var(--mono);border:none}
.filter-show-btn:hover{background:#ffd94a}

/* ── FLYING RAVEN (quote click) ── */
.raven-fly{position:fixed;top:36%;left:-180px;z-index:600;pointer-events:none;
  width:160px;height:160px;animation:ravenPath 2.4s ease-in-out forwards}
.raven-fly img{position:absolute;top:0;left:0;width:160px;height:auto}
[data-theme="dark"] .raven-fly img{filter:invert(1)}
.raven-fly .rf1{animation:ravenAlt1 .12s step-start infinite}
.raven-fly .rf2{animation:ravenAlt2 .12s step-start infinite}
@keyframes ravenAlt1{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes ravenAlt2{0%,49%{opacity:0}50%,100%{opacity:1}}
@keyframes ravenPath{
  0%  {left:-180px;transform:translateY(30px) rotate(-6deg)}
  20% {transform:translateY(-40px) rotate(5deg)}
  45% {transform:translateY(24px) rotate(-5deg)}
  70% {transform:translateY(-28px) rotate(6deg)}
  100%{left:calc(100% + 400px);transform:translateY(-10px) rotate(3deg)}
}

/* ── WALKING RAVEN (occasional screensaver moment) ──
   Rendered as a flat-color mask (not a filtered <img>) so the silhouette is a
   crisp true black / true white with no anti-aliased grey halo showing the
   page behind it. Lives as a DOM child of .app-footer, positioned off its top
   edge (bottom:100%) — always exactly on the footer's line, no matter the
   footer's actual rendered height (which varies as its columns wrap), with
   no JS measurement needed. */
.raven-walk{position:absolute;bottom:calc(100% + 6px);left:-140px;z-index:970;pointer-events:none;width:100px;animation:ravenBob .5s ease-in-out infinite}
.raven-walk .rw-bird{
  width:100%;aspect-ratio:1;display:block;transform-origin:50% 100%;
  background-color:#000;
  -webkit-mask-image:url('../assets/poe-raven.png');
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-position:center;
  -webkit-mask-size:contain;
  mask-image:url('../assets/poe-raven.png');
  mask-repeat:no-repeat;
  mask-position:center;
  mask-size:contain;
}
[data-theme="dark"] .raven-walk .rw-bird{background-color:#fff}
@keyframes ravenBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.raven-walk.turned .rw-bird{transform:scaleX(-1)}
.raven-walk .rw-wave{animation:ravenWave .3s ease-in-out 2}
@keyframes ravenWave{0%,100%{transform:scaleX(-1) rotate(0deg)}50%{transform:scaleX(-1) rotate(-12deg)}}
.raven-walk .rw-blink{animation:ravenBlink .28s ease-in-out}
@keyframes ravenBlink{0%,100%{transform:scaleX(-1) scaleY(1)}50%{transform:scaleX(-1) scaleY(.85)}}

/* ── SCRATCH PAD ── */
.scratch-wrap{display:flex;flex-direction:column;height:100%;overflow:hidden}
.scratch-toolbar{display:flex;align-items:center;gap:4px;padding:6px 14px;border-bottom:1px solid var(--border);background:#fafafa;flex-shrink:0;flex-wrap:wrap}
.scratch-toolbar .nb-bar-title{flex:1;font-size:13px;font-weight:700;color:var(--text)}
.scratch-body{flex:1;overflow-y:auto;padding:20px 22px;font-family:Calibri,'Helvetica Neue',Arial,sans-serif;font-size:13.5px;line-height:1.8;color:#1e1e1e;outline:none;min-height:100%}
.scratch-body:empty::before{content:attr(data-placeholder);color:var(--muted);pointer-events:none;font-style:italic}
.scratch-body h1,.scratch-body h2,.scratch-body h3{font-family:var(--mono);color:var(--ink);margin:12px 0 6px}
.scratch-body ul,.scratch-body ol{margin-left:20px;margin-bottom:8px}
.scratch-body blockquote{border-left:3px solid var(--amber);padding-left:12px;color:var(--muted);margin:8px 0}

/* ── APP FOOTER ── */
.app-footer{background:var(--dark);color:var(--yellow);border-top:2px solid var(--yellow);flex-shrink:0;padding:36px 40px;position:relative}
.footer-inner{max-width:1100px;margin:0 auto;display:flex;flex-wrap:wrap;gap:36px 56px}
.footer-brand{margin-right:auto}
.footer-brand-name{font-family:'Jim Nightshade',cursive;font-weight:400;font-size:26px;letter-spacing:1px;color:var(--yellow)}
.footer-brand-tag{font-family:var(--mono);font-size:12px;color:rgba(245,197,24,.7);margin-top:2px}
.footer-motto{font-size:14px;color:#fff;margin-top:14px;max-width:220px;line-height:1.4;font-weight:600}
.footer-copyright{font-size:11.5px;color:#fff;margin-top:14px;max-width:220px;line-height:1.5}
.footer-col{display:flex;flex-direction:column;gap:9px;min-width:130px}
.footer-col-head{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(245,197,24,.7);margin-bottom:2px}
.footer-col a{font-size:13px;color:#fff;text-decoration:none}
.footer-col a:hover{color:var(--pink);text-decoration:underline}
.footer-plain{font-size:12.5px;color:#fff;line-height:1.55}


@media (max-width:820px){
  .footer-brand{margin-right:0;width:100%}
}
.compare-clause .ch{font-weight:700;color:var(--ink);display:block;margin-bottom:3px;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.3px}
.compare-clause b.match{font-weight:700;color:var(--text)}
.compare-empty{padding:14px;color:var(--muted);font-size:12px;font-style:italic}

/* ══════════════════════════════════════════════════════════
   LIGHT THEME
   Same structure, iconography, font, and layout as dark
   (Terminal Gothic) — only the palette changes: the near-black
   chrome background flips to a light surface, white text flips
   to ink, and bare yellow-as-text/border swaps to pink (yellow
   fills like the gradient search button need no change, since
   dark text on a yellow fill reads fine regardless of page bg).
   ══════════════════════════════════════════════════════════ */
.hdr-masthead,.hdr-dateline{display:contents}
.hdr-nav{display:flex;flex-direction:column;gap:8px;align-items:flex-end;margin-left:auto}
.hdr-nav-row{display:flex;align-items:center;gap:10px}
.row-break{display:none}

:root[data-theme="light"]{
  --dark:#ffffff;   /* chrome surfaces flip from near-black to white */
}

[data-theme="light"] .header{color:var(--text);border-bottom-color:var(--pink)}
[data-theme="light"] .header-glow{display:none}
[data-theme="light"] .raven{filter:none}
[data-theme="light"] .brand{color:var(--pink)}
[data-theme="light"] .brand-sub{color:var(--text)}
[data-theme="light"] .sep{color:rgba(30,30,30,.35)}

[data-theme="light"] .q-wrap input{border-color:rgba(30,30,30,.2);background:rgba(30,30,30,.05);color:var(--text)}
[data-theme="light"] .q-wrap input::placeholder{color:rgba(30,30,30,.4)}
[data-theme="light"] .q-wrap input:focus{background:rgba(30,30,30,.08)}
[data-theme="light"] .q-prompt{color:var(--pink)}
[data-theme="light"] .q-caret{background:var(--pink)}
[data-theme="light"] .adv-search-btn{background:rgba(30,30,30,.06);color:var(--text);box-shadow:0 2px 6px rgba(30,30,30,.12),0 0 0 1px rgba(30,30,30,.14)}
[data-theme="light"] .hdr-select,[data-theme="light"] .date-input{border-color:rgba(30,30,30,.2);background:rgba(30,30,30,.05);color:var(--text)}
[data-theme="light"] .hdr-select option{color:var(--text)}
[data-theme="light"] .date-input::-webkit-calendar-picker-indicator{filter:none;opacity:.6}
[data-theme="light"] .date-label{color:var(--text)}
[data-theme="light"] .toggle-pill{border-color:rgba(30,30,30,.2);color:var(--text)}
[data-theme="light"] .toggle-pill.active{color:var(--ink)}

[data-theme="light"] .mode-toggle{background:rgba(30,30,30,.06);box-shadow:0 2px 6px rgba(30,30,30,.12),0 0 0 1px rgba(30,30,30,.14)}
[data-theme="light"] .mode-btn{color:var(--text)}
[data-theme="light"] .mode-btn:not(.active):hover{background:rgba(30,30,30,.05);color:var(--ink)}

[data-theme="light"] .status-text-inline{color:var(--text)}
[data-theme="light"] .status-dot{background:rgba(30,30,30,.25)}
[data-theme="light"] .status-dot.live{background:#2ecc71}
[data-theme="light"] .status-dot.dead{background:var(--pink)}
[data-theme="light"] .status-btn{color:var(--text);background:rgba(30,30,30,.04);box-shadow:0 2px 6px rgba(30,30,30,.12),0 0 0 1px rgba(30,30,30,.12)}
[data-theme="light"] .status-btn:hover{color:var(--ink);background:rgba(236,5,140,.06);box-shadow:0 5px 14px rgba(30,30,30,.16),0 0 0 1px var(--ink)}
[data-theme="light"] .status-btn.on{color:var(--ink);background:rgba(236,5,140,.1);box-shadow:0 2px 6px rgba(30,30,30,.12),0 0 0 1.5px var(--ink)}
[data-theme="light"] .brain-dropdown{border-color:var(--pink)}
[data-theme="light"] .adv-field-label{color:var(--text)}
[data-theme="light"] .adv-date-row{color:var(--text)}
[data-theme="light"] .brain-dd-item{color:var(--text)}
[data-theme="light"] .brain-dd-item strong{color:var(--ink)}
[data-theme="light"] .brain-dd-item small{color:var(--text)}
[data-theme="light"] #queryTranslationHint .qt-label{color:var(--ink)}
[data-theme="light"] #queryTranslationHint .qt-source{color:var(--ink)}

[data-theme="light"] .tray{color:var(--text);border-color:var(--pink)}
[data-theme="light"] .tray-count b{color:var(--ink)}
[data-theme="light"] .tray-btn.ghost{color:var(--text);border-color:rgba(30,30,30,.2)}
[data-theme="light"] .tray-btn.ghost:hover{color:var(--text);border-color:rgba(30,30,30,.4)}

[data-theme="light"] .folio-head{color:var(--text);border-bottom-color:var(--pink)}
[data-theme="light"] .folio-title{color:var(--pink)}
[data-theme="light"] .folio-tab{color:var(--text)}
[data-theme="light"] .folio-close{border-color:rgba(30,30,30,.25);color:var(--text)}
[data-theme="light"] .folio-fs-btn{border-color:rgba(30,30,30,.2);color:var(--text)}
[data-theme="light"] .folio-fs-btn:hover{border-color:var(--ink);color:var(--ink)}
[data-theme="light"] .folio-popout-btn{color:var(--ink);border-color:var(--ink)}

[data-theme="light"] .legal-bar,[data-theme="light"] .compare-bar{color:var(--text);border-bottom-color:var(--pink)}
[data-theme="light"] .legal-title,[data-theme="light"] .compare-title{color:var(--pink)}
[data-theme="light"] .compare-sub{color:var(--text)}
[data-theme="light"] .legal-close,[data-theme="light"] .compare-close{border-color:rgba(30,30,30,.25);color:var(--text)}
[data-theme="light"] .compare-back{border-color:var(--ink);color:var(--ink)}

[data-theme="light"] .nb-picker{border-color:var(--pink)}
[data-theme="light"] .nb-picker-head{border-bottom:1px solid var(--pink)}
[data-theme="light"] .nb-picker-title{color:var(--pink)}
[data-theme="light"] .nb-picker-close{color:var(--text)}
[data-theme="light"] .nb-picker-item{color:var(--text)}
[data-theme="light"] .nb-picker-item.new-project{color:var(--ink);border-top-color:rgba(30,30,30,.15)}
[data-theme="light"] .filter-modal{border-color:var(--pink)}
[data-theme="light"] .filter-modal-title{color:var(--pink)}
[data-theme="light"] .filter-modal-close{color:var(--text)}
[data-theme="light"] .filter-modal-sub{color:var(--muted)}
[data-theme="light"] .filter-section-label{color:var(--muted)}
[data-theme="light"] .filter-chip{color:var(--text);border-color:var(--border-strong)}
[data-theme="light"] .filter-toggle-label{color:var(--text)}
[data-theme="light"] .filter-toggle-hint{color:var(--muted)}
[data-theme="light"] .filter-country-select{color:var(--text);border-color:var(--border-strong);background:#fff}
[data-theme="light"] .filter-country-select option{background:#fff;color:var(--text)}

[data-theme="light"] .toast{color:var(--ink);border-color:var(--pink)}

[data-theme="light"] .app-footer{color:var(--ink);border-top:2px solid var(--pink)}
[data-theme="light"] .footer-brand-name{color:var(--pink)}
[data-theme="light"] .footer-brand-tag{color:var(--text)}
[data-theme="light"] .footer-motto{color:var(--text)}
[data-theme="light"] .footer-copyright{color:var(--text)}
[data-theme="light"] .footer-col-head{color:var(--ink)}
[data-theme="light"] .footer-col a{color:var(--text)}
[data-theme="light"] .footer-plain{color:var(--text)}

/* Landing page ("The Split") is deliberately fixed dark/light regardless of
   the app-wide theme toggle — the split IS both tones at once, so there's
   nothing for the toggle to flip. No light-theme overrides needed here. */
