
/*
// ------------------------------------------------------------------------------
// Author:  HAKROS INTERACTIVE
// Website: https://www.hakros.com/
// Project: ULTRASEARCH
// Website: https://ultrasearch.hakros.com/
// Created: JUNE 2026
// ------------------------------------------------------------------------------
*/

:root{
    --canvas:#eef0f4;
    --surface:#ffffff;
    --surface-2:#f7f8fa;
    --line:#dde1e8;
    --line-strong:#c6ccd8;
    --ink:#131820;
    --muted:#626c7a;
    --accent:#4436c7;
    --accent-ink:#2b1f9e;
    --accent-soft:#ecebfb;
    --accent-text:#ffffff;
    --accent-hover-text:#ffffff;
    --accent-soft-text:#2b1f9e;
    --hit:#ffd84d;
    --warn:#b4531a;
    --graph-selected:#16c96b;

    /* occurrence kinds — one hue per kind, used for chips, rules and graph */
    --k-def:#5b3ad6;      --k-def-bg:#efeafd;
    --k-new:#0d7f8c;      --k-new-bg:#e2f5f6;
    --k-call:#1f6fd0;     --k-call-bg:#e5eefb;
    --k-ref:#5a6675;      --k-ref-bg:#eef0f3;
    --k-import:#a83a86;   --k-import-bg:#fbe9f4;
    --k-comment:#3f7d4f;  --k-comment-bg:#e8f4ea;
    --k-string:#a26b12;   --k-string-bg:#fbf1de;

    --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
    --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    --r:10px; --r-sm:6px;
    --shadow:0 1px 2px rgba(19,24,32,.05),0 8px 24px -12px rgba(19,24,32,.18);
    --dot:#dfe3ea;
    --row-line:#eceff3;
    --badge-ink:#25292f;
    --scheme:light;
    color-scheme:light;
  }
  /* Dark — based on the brighter Sublime-style navy palette */
  [data-theme="dark"]{
    --canvas:#2b3035; --surface:#343a40; --surface-2:#3d454d; --line:#4d5862; --line-strong:#65727f;
    --ink:#f3f6f8; --muted:#b9c3cc; --graph-selected:#39ff88; --accent:#59b8ff; --accent-ink:#8fd0ff; --accent-soft:#334f65; --hit:#ffe36e; --warn:#ffad72;
    --k-def:#c6a0ff; --k-def-bg:#514364; --k-new:#63dfd3; --k-new-bg:#365c5a; --k-call:#74bbff; --k-call-bg:#38556f;
    --k-ref:#d5dbe0; --k-ref-bg:#50575e; --k-import:#ff91d0; --k-import-bg:#664b60; --k-comment:#85d995; --k-comment-bg:#425e48;
    --k-string:#ffd170; --k-string-bg:#65583b; --shadow:0 1px 2px rgba(0,0,0,.22),0 10px 28px -12px rgba(0,0,0,.42);
    --dot:#4a535c; --row-line:#464e56; --badge-ink:#f7fafc; --scheme:dark; color-scheme:dark;
  }

  [data-theme="light-warm"]{
    --canvas:#f2e3c8;
    --surface:#fff6df;
    --surface-2:#f8e9ca;
    --line:#d8bd91;
    --line-strong:#bd9863;
    --ink:#2b1d0f;
    --muted:#71563c;
    --graph-selected:#00b85a;
    --accent:#e05b1f;
    --accent-ink:#a83a0c;
    --accent-soft:#ffd6ad;
    --hit:#ffd21f;
    --warn:#c74312;
    --k-def:#7845d8; --k-def-bg:#e9dcff;
    --k-new:#008d7c; --k-new-bg:#d1f2e9;
    --k-call:#0b69d1; --k-call-bg:#d8e9ff;
    --k-ref:#4e5966; --k-ref-bg:#e5e8ec;
    --k-import:#c12579; --k-import-bg:#ffd9ec;
    --k-comment:#287d39; --k-comment-bg:#d8f0db;
    --k-string:#a96100; --k-string-bg:#ffe5ad;
    --shadow:0 1px 2px rgba(80,45,10,.10),0 10px 28px -12px rgba(100,55,10,.28);
    --dot:#dbc39d; --row-line:#ead5b2; --badge-ink:#322010; --scheme:light;
    color-scheme:light;
  }

  /* Vibrant dark themes: dark enough for focus, bright enough for strong color separation. */
  [data-theme="vibrant-violet"]{
    --canvas:#252438; --surface:#302e49; --surface-2:#3b3759; --line:#585174; --line-strong:#756c94;
    --ink:#fff9ff; --muted:#cdc5e3; --graph-selected:#57ff8a; --accent:#c17dff; --accent-ink:#e1b6ff; --accent-soft:#563d76; --hit:#ffe44f; --warn:#ff9f66;
    --k-def:#d09cff; --k-def-bg:#5b4078; --k-new:#47ebd6; --k-new-bg:#315e5b; --k-call:#64b9ff; --k-call-bg:#385778;
    --k-ref:#d7d3e4; --k-ref-bg:#514f64; --k-import:#ff67bd; --k-import-bg:#6e3d61; --k-comment:#70e58c; --k-comment-bg:#3d6547;
    --k-string:#ffd15b; --k-string-bg:#695a32; --shadow:0 1px 2px rgba(0,0,0,.25),0 10px 28px -12px rgba(0,0,0,.45);
    --dot:#4a4567; --row-line:#45405f; --badge-ink:#fffaff; --scheme:dark; color-scheme:dark;
  }
  [data-theme="vibrant-green"]{
    --canvas:#20333a; --surface:#29434b; --surface-2:#31525b; --line:#47717a; --line-strong:#60929d;
    --ink:#f4ffff; --muted:#b9d8dc; --graph-selected:#54ff9a; --accent:#27e0e8; --accent-ink:#82f7fb; --accent-soft:#28646b; --hit:#ffe84d; --warn:#ff9a64;
    --k-def:#b891ff; --k-def-bg:#51466d; --k-new:#27efd2; --k-new-bg:#286b62; --k-call:#4eb5ff; --k-call-bg:#315e7a;
    --k-ref:#d0e3e5; --k-ref-bg:#486068; --k-import:#ff67c6; --k-import-bg:#6a425f; --k-comment:#68e795; --k-comment-bg:#376a4c;
    --k-string:#ffd45c; --k-string-bg:#6c5d34; --shadow:0 1px 2px rgba(0,0,0,.24),0 10px 28px -12px rgba(0,0,0,.44);
    --dot:#3d6169; --row-line:#385860; --badge-ink:#f7ffff; --scheme:dark; color-scheme:dark;
  }
  [data-theme="vibrant-red"]{
    --canvas:#352b30; --surface:#46343c; --surface-2:#553d46; --line:#76515f; --line-strong:#986b7a;
    --ink:#fff8f5; --muted:#dec4c6; --graph-selected:#66ff75; --accent:#ff665f; --accent-ink:#ffaaa5; --accent-soft:#713f45; --hit:#ffe14d; --warn:#ffb05e;
    --k-def:#c39cff; --k-def-bg:#60496e; --k-new:#4de2cf; --k-new-bg:#3d665f; --k-call:#67b6ff; --k-call-bg:#405b74;
    --k-ref:#e0d4d7; --k-ref-bg:#62545a; --k-import:#ff69ad; --k-import-bg:#784257; --k-comment:#78df8b; --k-comment-bg:#46654b;
    --k-string:#ffd15a; --k-string-bg:#735c34; --shadow:0 1px 2px rgba(0,0,0,.24),0 10px 28px -12px rgba(0,0,0,.44);
    --dot:#664852; --row-line:#5b4049; --badge-ink:#fff9f7; --scheme:dark; color-scheme:dark;
  }

  [data-theme="contrast"]{
    --canvas:#000000;
    --surface:#050505;
    --surface-2:#111111;
    --line:#707070;
    --line-strong:#d8d8d8;
    --ink:#ffffff;
    --muted:#e0e0e0;
    --graph-selected:#00ff66;
    --accent:#00e5ff;
    --accent-ink:#72f1ff;
    --accent-soft:#003d46;
    --hit:#fff200;
    --warn:#ff9d00;
    --k-def:#d7a8ff; --k-def-bg:#4a006f;
    --k-new:#00fff0; --k-new-bg:#005b55;
    --k-call:#54a8ff; --k-call-bg:#003c78;
    --k-ref:#ffffff; --k-ref-bg:#444444;
    --k-import:#ff55c8; --k-import-bg:#77004e;
    --k-comment:#75ff78; --k-comment-bg:#075d09;
    --k-string:#ffd84a; --k-string-bg:#6a4e00;
    --shadow:0 0 0 1px #ffffff,0 8px 28px rgba(0,0,0,.9);
    --dot:#313131; --row-line:#383838; --badge-ink:#ffffff; --scheme:dark;
    color-scheme:dark;
  }
  [data-theme="contrast"] .tag,
  [data-theme="contrast"] .chip,
  [data-theme="contrast"] .trackbtn{font-weight:750;border-width:2px}
  [data-theme="contrast"] .tag{box-shadow:0 0 0 1px rgba(255,255,255,.7)}
  [data-theme="contrast"] .facet .dot,
  [data-theme="contrast"] .chip .sw,
  [data-theme="contrast"] .tnode .kd{box-shadow:0 0 0 1px #fff}

  *{box-sizing:border-box}
  html,body{height:100%;overflow:hidden}
  body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--sans);
       font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
  button,input,select{font:inherit;color:inherit}
  /* v20: hand cursor for every checkbox */
  input[type="checkbox"]{cursor:pointer}

  select{cursor:pointer}
  ::selection{background:var(--hit)}
  :focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}

  /* ---- scrollbars follow the active theme ----
     Everything is derived from the palette variables, so the seven themes get
     matching scrollbars without a per-theme rule. color-scheme already themes the
     native widget in Firefox and Safari; these give the same result in Chromium. */
  *{scrollbar-width:thin;
    scrollbar-color:color-mix(in srgb, var(--line-strong) 85%, transparent) transparent}
  ::-webkit-scrollbar{width:12px;height:12px;background:transparent}
  ::-webkit-scrollbar-track{background:color-mix(in srgb, var(--surface-2) 70%, transparent)}
  ::-webkit-scrollbar-thumb{
    background:color-mix(in srgb, var(--line-strong) 85%, transparent);
    border:3px solid transparent;background-clip:content-box;border-radius:99px}
  ::-webkit-scrollbar-thumb:hover{
    background:color-mix(in srgb, var(--accent) 55%, var(--line-strong));background-clip:content-box}
  ::-webkit-scrollbar-thumb:active{background:var(--accent);background-clip:content-box}
  ::-webkit-scrollbar-corner{background:transparent}

  /* code and result panes read better with the track fully out of the way */
  .pvlist,.doc .body,.results,.pane,.rail-body,.tree{scrollbar-color:
    color-mix(in srgb, var(--line-strong) 80%, transparent) transparent}
  .pvlist::-webkit-scrollbar-track,.doc .body::-webkit-scrollbar-track,
  .pane::-webkit-scrollbar-track,.tree::-webkit-scrollbar-track{background:transparent}

  /* the high-contrast theme needs a hard edge rather than a blended one */
  [data-theme="contrast"] *{scrollbar-color:#ffffff #000000}
  [data-theme="contrast"] ::-webkit-scrollbar-track,
  [data-theme="contrast"] .pane::-webkit-scrollbar-track,
  [data-theme="contrast"] .tree::-webkit-scrollbar-track{background:#000000}
  [data-theme="contrast"] ::-webkit-scrollbar-thumb{
    background:#ffffff;border:3px solid #000000;background-clip:content-box}
  [data-theme="contrast"] ::-webkit-scrollbar-thumb:hover{
    background:var(--accent);background-clip:content-box}

  .app{display:flex;flex-direction:column;height:100vh;min-width:0;min-height:0}
  .main{display:flex;flex-direction:column;min-width:0;min-height:0;flex:1 1 0;overflow:hidden}

  .topbar{height:52px;flex:none;display:flex;align-items:center;gap:10px;padding:0 18px;
    background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 1px 0 rgba(19,24,32,.02);z-index:20}
  .topbrand{font-weight:800;font-size:15px;letter-spacing:.035em;white-space:nowrap;margin-right:4px}
  .topbrand .hakros{color:var(--accent)}
  .top-actions{display:flex;align-items:center;gap:6px}
  .toolbtn{width:34px;height:34px;padding:0;border:1px solid var(--line-strong);border-radius:var(--r-sm);
    background:var(--surface);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
    transition:background .14s ease,border-color .14s ease,transform .14s ease}
  .toolbtn:hover{background:var(--surface-2);border-color:var(--accent);color:var(--accent)}
  .toolbtn:active{transform:translateY(1px)}
  .toolbtn[disabled]{opacity:.42;cursor:not-allowed;transform:none}
  .toolbtn svg{width:18px;height:18px;display:block}
  .top-status{margin-left:auto;min-width:0;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

  .top-tabs{margin:0 0 0 12px;align-self:stretch;display:flex;align-items:stretch;gap:2px;min-width:0}
  .top-tabs .tab{display:flex;align-items:center;height:100%;padding:0 11px;white-space:nowrap}
  .top-tabs .tab.on{border-bottom-width:2px}
  .top-spacer{flex:1;min-width:12px}
  .top-picker{flex:none;white-space:nowrap}
  .eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
  .options-dlg{width:calc(100vw - 48px);max-width:1600px;max-height:calc(100vh - 48px);display:flex;flex-direction:column}
  .options-scroll{overflow-y:auto;overflow-x:hidden;min-height:0;padding-right:6px}
  .options-grid{display:grid;grid-template-columns:minmax(250px,1.05fr) minmax(260px,.9fr) minmax(460px,1.8fr) minmax(220px,.8fr);gap:30px;align-items:start}
  .options-section{min-width:0}
  .options-section .block{margin-bottom:0}
  .options-section.full{grid-column:auto;border-top:0!important;padding-top:0!important}
  .options-dlg .facets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 14px;max-height:none;overflow:visible}
  .options-dlg .stats{grid-template-columns:1fr 1fr}
  .block{margin-bottom:22px}
  .block > .eyebrow{display:block;margin-bottom:10px}

  .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);
    color:var(--accent-text,#fff);border:1px solid var(--accent);border-radius:var(--r-sm);padding:9px 14px;
    font-weight:550;font-size:13.5px;cursor:pointer;transition:background .14s ease,transform .14s ease}
  .btn:hover{background:var(--accent-ink);color:var(--accent-hover-text,#fff)}
  .btn:active{transform:translateY(1px)}
  .btn.ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
  .btn.ghost:hover{background:var(--surface-2)}
  .btn.wide{width:100%}
  .btn.small{padding:6px 10px;font-size:12.5px}
  .btn[disabled]{opacity:.45;cursor:not-allowed}
  .linkbtn{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font-size:12.5px;
    text-decoration:underline;text-underline-offset:2px}

  .stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);
    border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}
  .stat{background:var(--surface);padding:10px 12px}
  .stat b{display:block;font-family:var(--mono);font-size:16px;font-weight:600;letter-spacing:-.02em}
  .stat span{font-size:11px;color:var(--muted)}
  .tape{display:flex;height:8px;border-radius:99px;overflow:hidden;background:var(--surface-2);
    border:1px solid var(--line);margin-bottom:12px}
  .tape i{display:block;height:100%}

  .facets{display:flex;flex-direction:column;gap:1px;max-height:220px;overflow-y:auto}
  .facet{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:var(--r-sm);cursor:pointer;user-select:none}
  .facet:hover{background:var(--surface-2)}
  .facet input{accent-color:var(--accent);margin:0}
  .facet .dot{width:8px;height:8px;border-radius:2px;flex:none}
  .facet .name{font-family:var(--mono);font-size:12px;flex:1;overflow:hidden;text-overflow:ellipsis}
  .facet .n{font-family:var(--mono);font-size:11px;color:var(--muted)}

  .field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
  .field label{font-size:12.5px;color:var(--muted)}
  .field input[type=number],.field select{background:var(--surface);border:1px solid var(--line-strong);
    border-radius:var(--r-sm);padding:7px 9px;font-family:var(--mono);font-size:12.5px;width:100%}
  .check{display:flex;align-items:center;gap:9px;font-size:13px;margin-bottom:10px;cursor:pointer}
  .check input{accent-color:var(--accent);margin:0}

  /* ---- header ---- */
  .searchbar{background:var(--surface);border-bottom:1px solid var(--line);padding:10px 28px 0;flex:none}
  .searchbar[hidden]{display:none}
  .tabs{display:flex;gap:2px;margin-bottom:6px;align-items:center}
  .tabs .spacer{flex:1}
  .tab .n{font-family:var(--mono);font-size:10.5px;background:var(--accent-soft);color:var(--accent-soft-text,var(--accent-ink));
    border-radius:99px;padding:1px 6px;margin-left:5px}
  .themepick{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
  .themepick select{border:1px solid var(--line);background:var(--surface-2);border-radius:var(--r-sm);
    padding:4px 7px;font-size:12.5px}

  /* ---- tracking ---- */
  .trk-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
  .trk-head h2{margin:0;font-size:15px}
  .trk-head .cnt{font-family:var(--mono);font-size:11.5px;color:var(--muted)}
  .trk-group{margin-bottom:22px}
  .trk-group > .eyebrow{display:block;margin-bottom:8px}
  .trk{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:11px 14px;
    margin-bottom:7px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:start}
  .trk:hover{border-color:var(--line-strong)}
  .trk .ic{min-width:26px;height:26px;padding:0 8px;border-radius:var(--r-sm);display:inline-flex;align-items:center;
    justify-content:center;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.04em;white-space:nowrap;flex:none}
  .trk .ttl{font-size:13.5px;font-weight:600;overflow-wrap:anywhere}
  .trk .sub{font-family:var(--mono);font-size:11.5px;color:var(--muted);overflow-wrap:anywhere;margin-top:2px}
  .trk .when{font-family:var(--mono);font-size:10.5px;color:var(--muted);opacity:.8;margin-top:3px}
  .trk .acts{display:flex;gap:6px;flex:none}
  .trk textarea{grid-column:2/4;order:2;width:100%;border:1px solid var(--line);border-radius:var(--r-sm);
    background:var(--surface-2);padding:7px 9px;font-size:12.5px;font-family:var(--sans);resize:vertical;
    min-height:34px;margin-top:2px}
  .trk textarea::placeholder{color:var(--muted);opacity:.7}
  .iconbtn{background:none;border:1px solid transparent;border-radius:var(--r-sm);padding:3px 7px;
    cursor:pointer;color:var(--muted);font-size:12px}
  .iconbtn:hover{border-color:var(--line-strong);color:var(--ink)}
  .iconbtn.danger:hover{color:#c0392b;border-color:#c0392b}
  .trackbtn{background:none;border:1px solid var(--line);border-radius:99px;padding:2px 9px;font-size:11.5px;
    cursor:pointer;color:var(--muted);flex:none}
  .trackbtn:hover{border-color:var(--accent);color:var(--accent)}
  .trackbtn.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-soft-text,var(--accent-ink))}

  /* ---- user tags ---- */
  .tag{display:inline-flex;align-items:center;gap:5px;border-radius:99px;padding:1px 8px;font-size:11.5px;
    font-weight:600;line-height:1.6;border:1px solid transparent;white-space:nowrap}
  .tag .x{cursor:pointer;opacity:.65;font-weight:700;font-size:12px}
  .tag .x:hover{opacity:1}
  .trk .tags{grid-column:2/4;display:flex;gap:5px;flex-wrap:wrap;margin-top:6px;align-items:center}
  .addtag{border:1px dashed var(--line-strong);background:none;border-radius:99px;padding:1px 9px;
    font-size:11.5px;color:var(--muted);cursor:pointer}
  .addtag:hover{border-color:var(--accent);color:var(--accent)}
  .tagbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
  .tagbar .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
    color:var(--muted);margin-right:2px}
  .tagbar .tag{cursor:pointer}
  .tagbar .tag.off{opacity:.4}
  .taglist{max-height:230px;overflow-y:auto;margin:14px 0 4px}
  .tagrow{display:grid;grid-template-columns:20px minmax(0,1fr) 34px auto;gap:10px;align-items:center;
    padding:5px 4px;border-radius:var(--r-sm)}
  .tagrow:hover{background:var(--surface-2)}
  .tagrow input[type=checkbox]{accent-color:var(--accent);margin:0}
  .tagrow input[type=color]{width:32px;height:24px;padding:0;border:1px solid var(--line);
    border-radius:var(--r-sm);background:none;cursor:pointer}
  .tagnew{display:flex;gap:8px;align-items:center;border-top:1px solid var(--line);padding-top:14px}
  .tagnew input[type=text]{flex:1;border:1px solid var(--line-strong);border-radius:var(--r-sm);
    background:var(--surface);padding:7px 10px;font-size:13px}
  .tagnew input[type=color]{width:38px;height:32px;padding:0;border:1px solid var(--line);
    border-radius:var(--r-sm);background:none;cursor:pointer}
  .swatches{display:flex;gap:5px;margin-top:10px;flex-wrap:wrap}
  .swatches button{width:20px;height:20px;border-radius:6px;border:1px solid rgba(0,0,0,.15);cursor:pointer}

  .banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--accent-soft);
    border:1px solid color-mix(in srgb, var(--accent) 35%, var(--surface));border-radius:var(--r);
    padding:10px 14px;margin-bottom:14px;font-size:13px}
  .banner b{font-weight:600}
  .banner .grow{flex:1}
  .banner.warning{background:color-mix(in srgb,#f97316 14%,var(--surface));border-color:color-mix(in srgb,#f97316 55%,var(--surface));color:color-mix(in srgb,#b42318 88%,var(--ink))}
  .banner .banner-close{margin-left:auto;background:none;border:0;color:inherit;cursor:pointer;font-size:18px;line-height:1;padding:0 2px;opacity:.75}
  .banner .banner-close:hover{opacity:1}
  .graph-warning{display:none;background:crimson;border:1px solid crimson;color:#fff;border-radius:4px;padding:3px 9px;font-size:11.5px;font-weight:600;white-space:nowrap}
  .graph-warning.on{display:inline-flex;align-items:center}
  .gtools .preset-select{max-width:150px}
  .gtools .tool-mini{padding:3px 7px;font-size:11px}
  .gconn{cursor:pointer}
  .gconn:hover{background:var(--surface-2)}
  .gconn.active{background:var(--accent-soft);outline:1px solid var(--accent)}
  .ginfo-callout{margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);font-size:12px;line-height:1.45}
  .ginfo-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
  .ginfo-actions .btn{font-size:11px;padding:4px 8px}
  .ginfo-file-summary{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;font-size:11.5px;margin-top:8px}
  .ginfo-file-summary b{color:var(--muted);font-weight:500}
  .ginfo-file-summary span{text-align:right;font-family:var(--mono);overflow-wrap:anywhere}
  #dlgBack{z-index:20050}
  .stale{opacity:.72}
  .tab{background:none;border:0;border-bottom:2px solid transparent;padding:6px 10px;cursor:pointer;
    font-size:13px;color:var(--muted);font-weight:550}
  .tab.on{color:var(--ink);border-bottom-color:var(--accent)}
  .qwrap{display:flex;align-items:center;gap:12px;padding-bottom:12px}
  .qicon{flex:none;color:var(--muted)}
  #q{flex:1;border:0;background:transparent;font-family:var(--mono);font-size:20px;letter-spacing:-.01em;padding:4px 0}
  #q::placeholder{color:var(--muted);opacity:.7}
  #q:focus{outline:none}
  .kbd{font-family:var(--mono);font-size:11px;color:var(--muted);border:1px solid var(--line-strong);
    border-radius:4px;padding:2px 6px;background:var(--surface-2)}
  .qmeta{display:flex;align-items:center;column-gap:14px;row-gap:5px;padding-bottom:10px;font-family:var(--mono);
    font-size:11.5px;color:var(--muted);flex-wrap:wrap;align-content:flex-start}
  .qmeta .sep{width:1px;height:12px;background:var(--line)}
  .qmeta select{border:1px solid var(--line);background:var(--surface-2);border-radius:4px;
    font-family:var(--mono);font-size:11.5px;padding:2px 4px}
  .qmeta-break{flex-basis:100%;height:0;pointer-events:none}
  .hint code{font-family:var(--mono);background:var(--surface-2);border:1px solid var(--line);
    border-radius:4px;padding:1px 4px;font-size:11px}

  /* kind chips */
  .kinds{display:flex;gap:6px;padding-bottom:12px;flex-wrap:wrap;align-items:center}
  .kinds[hidden]{display:none!important}
  .chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface-2);
    border-radius:99px;padding:3px 10px 3px 8px;font-size:12px;cursor:pointer;user-select:none;
    transition:border-color .12s,background .12s}
  .chip .sw{width:8px;height:8px;border-radius:99px;flex:none}
  .chip .c{font-family:var(--mono);font-size:11px;color:var(--muted)}
  .chip.off{opacity:.42}
  .chip.on{background:var(--surface);border-color:var(--line-strong)}
  .chip:hover{border-color:var(--line-strong)}

  /* ---- results ---- */
  .pane{flex:1;overflow-y:auto;padding:16px 28px 60px;min-height:0}
  .pane[hidden]{display:none}
  .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
    margin-bottom:8px;box-shadow:0 1px 1px rgba(19,24,32,.03);overflow:hidden;
    transition:border-color .12s ease}
  .card:hover{border-color:var(--line-strong)}
  .card.tracked{border-left:4px solid var(--accent)}
  .card.tracked.sel{border-left-color:var(--accent)}
  /* Strong, theme-independent Search selection.
     The accent ring identifies the selection while the outer ink ring guarantees
     contrast even when the current theme background is close to the accent colour. */
  .card.sel{
    border:2px solid var(--accent);
    box-shadow:0 0 0 2px var(--accent),0 0 0 4px var(--ink),0 8px 22px rgba(0,0,0,.18);
    transform:translateZ(0);
  }
  .card.sel > .head{
    background:var(--accent-soft);
    background:color-mix(in srgb,var(--accent) 22%,var(--surface));
  }
  .card.sel h3{font-weight:750}
  .card.sel .path,.card.sel .meta{color:var(--ink)}
  .card > .head{padding:12px 16px 10px;cursor:pointer;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
  .card h3{margin:0;font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px;min-width:0}
  .badge{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;
    border-radius:4px;padding:2px 5px;color:var(--badge-ink);flex:none}
  .path{font-family:var(--mono);font-size:11.5px;color:var(--muted);margin:0;overflow:hidden;
    text-overflow:ellipsis;white-space:nowrap;flex-basis:100%}
  .meta{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--muted);flex:none}

  /* one row per matched line, tagged by occurrence kind */
  .lines{border-top:1px solid var(--line);background:var(--surface-2)}
  .ln{display:grid;grid-template-columns:88px 46px minmax(0,1fr);gap:10px;align-items:start;
    padding:6px 16px;border-bottom:1px solid var(--row-line);cursor:pointer;font-family:var(--mono);font-size:12px}
  .ln:last-child{border-bottom:0}
  .ln:hover{background:var(--surface)}
  .ln .tag{font-size:10px;letter-spacing:.04em;text-transform:uppercase;border-radius:4px;
    padding:1px 6px;text-align:center;font-weight:600;border-left:3px solid currentColor}
  .ln .no{color:var(--muted);text-align:right;font-size:11px;padding-top:1px}
  .ln .code{white-space:pre-wrap;overflow-wrap:anywhere;color:color-mix(in srgb,var(--ink) 85%,var(--surface));opacity:1}
  .ln.k-def .code{color:var(--ink);font-weight:550}
  .more-lines{padding:6px 16px;font-size:11.5px;color:var(--muted);font-family:var(--mono);
    background:var(--surface-2);border-top:1px solid var(--row-line)}
  /* Search result term highlights must remain unmistakable in every theme.
     Use each theme's strong semantic kind colour (not the subtle chip background),
     and let data-auto-contrast choose black/white text from the computed colour. */
  mark{background:var(--hit);color:var(--ink);border-radius:3px;padding:0 2px;font-weight:850;box-decoration-break:clone;-webkit-box-decoration-break:clone}
  mark[data-k]{
    box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 42%,transparent),0 1px 3px rgba(0,0,0,.22);
    text-shadow:none;
  }
  mark[data-k="def"]    {background:var(--k-def)}
  mark[data-k="new"]    {background:var(--k-new)}
  mark[data-k="call"]   {background:var(--k-call)}
  mark[data-k="ref"]    {background:var(--k-ref)}
  mark[data-k="import"] {background:var(--k-import)}
  mark[data-k="comment"]{background:var(--k-comment)}
  mark[data-k="string"] {background:var(--k-string)}
  mark[data-k="def"]{font-weight:800}
  .ln:hover mark[data-k]{box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 55%,transparent),0 1px 4px rgba(0,0,0,.28)}

  .empty{max-width:560px;margin:8vh auto 0;text-align:center;color:var(--muted)}
  .empty h2{color:var(--ink);font-size:16px;margin:0 0 8px}
  .empty p{margin:0 0 6px;font-size:13.5px}

  /* ---- graph pane ---- */
  #graphPane{--graph-tree-width:262px;display:grid;grid-template-columns:var(--graph-tree-width) 7px minmax(0,1fr) 360px 400px;padding:0;overflow:hidden;flex:1 1 0;height:0;min-height:0;min-width:0}
  #graphPane.options-hidden{grid-template-columns:var(--graph-tree-width) 7px minmax(0,1fr) 0 400px}
  #graphPane[hidden],#results[hidden]{display:none}
  .tree{border-right:1px solid var(--line);background:var(--surface);overflow-y:auto;padding:12px 0;min-height:0;min-width:0}
  .graph-tree-resizer{position:relative;z-index:6;min-width:7px;cursor:ew-resize;touch-action:none;background:var(--surface);border-right:1px solid var(--line);border-left:1px solid var(--line)}
  .graph-tree-resizer::after{content:"";position:absolute;top:0;bottom:0;left:2px;width:2px;background:var(--accent);opacity:0;transition:opacity .14s ease}
  .graph-tree-resizer:hover::after,.graph-tree-resizer:focus-visible::after,#graphPane.graph-tree-resizing .graph-tree-resizer::after{opacity:.85}
  #graphPane.graph-tree-resizing,#graphPane.graph-tree-resizing *{cursor:ew-resize!important;user-select:none!important}
  .tree .grp{padding:0 0 6px}
  .tnode{display:flex;align-items:center;gap:7px;padding:4px 14px;cursor:pointer;font-size:12.5px;
    font-family:var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tnode:hover{background:var(--surface-2)}
  .tnode.ns{font-weight:600;color:var(--muted);font-size:11.5px;letter-spacing:.02em}
  .tnode.type{padding-left:26px}
  .tnode.mem{padding-left:44px;color:var(--muted);font-size:12px}
  .tnode .car{width:10px;flex:none;color:var(--muted)}
  .tnode .kd{width:7px;height:7px;border-radius:99px;flex:none}
  
.tree-member-kind{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:42px;max-width:78px;padding:1px 5px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface-2);color:var(--muted);font-size:9.5px;font-weight:600;line-height:1.35;text-transform:uppercase;letter-spacing:.025em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tnode.mem:hover .tree-member-kind,.tnode.mem.active .tree-member-kind{color:inherit;border-color:currentColor}
.tnode.active{background:var(--accent-soft);color:var(--accent-soft-text,var(--accent-ink))}
  .canvasWrap{position:relative;min-width:0;min-height:0;overflow:hidden;background:
     radial-gradient(circle at 1px 1px, var(--dot) 1px, transparent 0) 0 0/22px 22px, var(--surface)}
  #gcanvas{display:block;width:100%;height:100%;cursor:grab}
  #gcanvas.drag{cursor:grabbing}
  .graph-options{min-width:0;min-height:0;border-left:1px solid var(--line);background:var(--surface);overflow:hidden}
  #graphPane.options-hidden .graph-options{border-left:0;visibility:hidden;pointer-events:none}
  .graph-details{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;border-left:1px solid var(--line);background:var(--surface)}
  .graph-details-head{display:flex;align-items:center;justify-content:flex-end;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--surface-2)}
  .graph-options-toggle{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);cursor:pointer;white-space:nowrap}
  .gtools{position:static;display:grid;grid-template-columns:1fr;gap:8px;padding:10px;background:var(--surface);overflow:auto;height:100%;max-height:none}
  .gtool-group{display:flex;flex-direction:column;gap:6px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:8px;background:var(--surface-2)}
  .gtool-group h4{margin:0 0 2px;font-size:10.5px;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
  .gtool-group>label{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:6px;font-size:10.5px;color:var(--muted);min-width:0}
  .gtools select,.gtools input[type="search"]{width:100%;min-width:0;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:5px;font-family:var(--mono);font-size:11px;padding:4px 6px}
  .gtools .gsearch{width:100%;min-width:0}
  .gtools .gcheck{display:inline-flex;grid-template-columns:none;align-items:center;gap:5px;font-size:10.5px;color:var(--muted);white-space:nowrap}
  .gtool-checks,.gtool-actions,.gtool-stats{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
  .gtool-actions .btn{flex:1 1 80px}
  .gtool-reset-row{display:flex;justify-content:flex-end;align-items:center;margin-top:2px}
  .gtools .gtool-reset{flex:none;width:30px;height:27px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1;font-family:inherit;cursor:pointer}
  .gtools .gstat{font-family:var(--mono);font-size:10px;color:var(--muted);padding:2px 6px;border:1px solid var(--line);border-radius:999px;background:var(--surface);white-space:nowrap}
  .gtools .btn.is-on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-soft-text,var(--accent-ink))}
  .glegend{position:absolute;bottom:12px;left:12px;background:var(--surface);opacity:.96;
    border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;font-size:11.5px}
  .glegend div{display:flex;align-items:center;gap:7px;margin-bottom:3px}
  .glegend i{width:9px;height:9px;border-radius:99px;display:block}
  .gtip{position:absolute;pointer-events:none;background:var(--ink);color:var(--canvas);font-family:var(--mono);
    font-size:11.5px;line-height:1.45;padding:6px 8px;border-radius:5px;display:none;max-width:min(360px,calc(100% - 24px));z-index:5;
    white-space:normal;overflow-wrap:anywhere;word-break:break-word}
  .gempty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    color:var(--muted);font-size:13.5px;text-align:center;padding:0 40px}
  .gnodeinfo{min-width:0;min-height:0;overflow:auto;background:var(--surface);padding:14px}
  .gnodeinfo .eyebrow{display:block;margin-bottom:8px}
  .gnodeinfo h3{margin:0 0 4px;font-family:var(--mono);font-size:14px;line-height:1.35;overflow-wrap:anywhere}
  .gnodeinfo .ginfo-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 14px}
  .ginfo-kind{display:inline-flex;align-items:center;gap:6px;margin:4px 0 14px;padding:3px 7px;border:1px solid var(--line);border-radius:999px;font-size:11px;color:var(--muted);background:var(--surface-2)}
  .gnodeinfo .ginfo-kind i{width:8px;height:8px;border-radius:50%;display:block}
  .ginfo-grid{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px 10px;font-size:11.5px;margin-bottom:16px}
  .ginfo-grid dt{color:var(--muted)}
  .ginfo-grid dd{margin:0;font-family:var(--mono);overflow-wrap:anywhere}
  .ginfo-section{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}
  .ginfo-section h4{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
  .gconn{display:flex;align-items:center;gap:7px;padding:5px 0;font-family:var(--mono);font-size:11.5px;border-bottom:1px solid var(--row-line);min-width:0}
  .gconn:last-child{border-bottom:0}
  .gconn i{width:7px;height:7px;border-radius:50%;flex:none}
  .gconn span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .gsel-list{display:flex;flex-direction:column;gap:4px}
  .gsel-item{display:flex;align-items:center;gap:7px;padding:5px 7px;border:1px solid var(--row-line);border-radius:5px;background:var(--surface-2);font-family:var(--mono);font-size:11px;min-width:0}
  .gsel-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .gpin-mark{font-size:10px;color:var(--accent-ink);font-weight:700;margin-left:auto}
  .query-shortcuts{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0;margin-top:-1px}
  .query-shortcut{border:1px solid var(--line);background:var(--surface-2);color:var(--muted);border-radius:5px;padding:3px 7px;font-family:var(--mono);font-size:11px;line-height:1.2;cursor:pointer}
  .query-shortcut:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-soft-text,var(--accent-ink))}
  .query-shortcut:active{transform:translateY(1px)}
  .qfavorite{background:none;border:1px solid var(--line);border-radius:999px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer;font-size:17px;line-height:1}
  .qfavorite:hover{border-color:var(--accent);color:var(--accent)}
  .qfavorite.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-soft-text,var(--accent-ink))}
  #qFavorites{max-width:190px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:4px;font-family:var(--mono);font-size:11.5px;padding:3px 6px}
  .ginfo-empty{color:var(--muted);font-size:12px;line-height:1.5;margin-top:6px}

  /* ---- overlay ---- */
  .overlay{position:fixed;inset:0;background:color-mix(in srgb, var(--canvas) 84%, transparent);backdrop-filter:blur(6px);
    display:none;align-items:center;justify-content:center;z-index:50}
  .overlay.on{display:flex}
  .panel{width:min(520px,92vw);background:var(--surface);border:1px solid var(--line);
    border-radius:14px;box-shadow:var(--shadow);padding:24px}
  .panel h2{margin:6px 0 4px;font-size:16px}
  .panel .sub{margin:0 0 18px;color:var(--muted);font-size:13px}
  .bar{height:8px;background:var(--surface-2);border:1px solid var(--line);border-radius:99px;overflow:hidden}
  .bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .18s ease}
  .bar.indet i{width:32%;animation:slide 1.1s ease-in-out infinite}
  @keyframes slide{0%{margin-left:-32%}100%{margin-left:100%}}
  .plines{display:flex;justify-content:space-between;gap:12px;margin-top:10px;font-family:var(--mono);
    font-size:11.5px;color:var(--muted)}
  .current{font-family:var(--mono);font-size:11.5px;color:var(--muted);margin-top:14px;white-space:nowrap;
    overflow:hidden;text-overflow:ellipsis;direction:rtl;text-align:left}
  .panel .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}

  /* ---- preview ---- */
  .sheet{position:fixed;inset:0;background:rgba(19,24,32,.32);display:none;z-index:60;
    align-items:stretch;justify-content:flex-end}
  .sheet.on{display:flex}
  .sheet .doc{width:min(900px,95vw);background:var(--surface);display:flex;flex-direction:column;
    border-left:1px solid var(--line);box-shadow:-20px 0 50px -30px rgba(19,24,32,.5)}
  .doc header{padding:16px 22px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:14px}
  .doc header h2{margin:0;font-size:15px}
  .doc header .path{white-space:normal}
  .doc .body{flex:1;overflow:auto;padding:16px 0 60px;font-family:var(--mono);font-size:12.5px;line-height:1.65}
  .cl{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;padding:0 22px}
  .cl:hover{background:var(--surface-2)}
  .cl .n{color:var(--muted);opacity:.7;text-align:right;user-select:none;font-size:11px}
  .cl .t{white-space:pre-wrap;overflow-wrap:anywhere}
  /* Theme-aware syntax highlighting for the built-in code viewer. */
  :root{
    --sx-keyword:#6a4bd4; --sx-type:#0d7f8c; --sx-string:#9a6410; --sx-number:#b24a3a;
    --sx-comment:#4f7d58; --sx-tag:#8a3aa4; --sx-attr:#1f6fd0; --sx-property:#1f6fd0;
    --sx-literal:#a83a86; --sx-preproc:#7a5b13; --sx-operator:#5a6675;
  }
  [data-theme="dark"]{
    --sx-keyword:#c6a0ff; --sx-type:#63dfd3; --sx-string:#ffd170; --sx-number:#ffad8a;
    --sx-comment:#85d995; --sx-tag:#ff91d0; --sx-attr:#74bbff; --sx-property:#74bbff;
    --sx-literal:#ff91d0; --sx-preproc:#ffe08a; --sx-operator:#d5dbe0;
  }
  [data-theme="contrast"]{
    --sx-keyword:#e2b7ff; --sx-type:#00fff0; --sx-string:#ffe45e; --sx-number:#ffb17a;
    --sx-comment:#75ff78; --sx-tag:#ff70d0; --sx-attr:#70c4ff; --sx-property:#70c4ff;
    --sx-literal:#ff70d0; --sx-preproc:#fff29a; --sx-operator:#ffffff;
  }
  [data-theme="light-warm"]{
    --sx-keyword:#7040c7; --sx-type:#008d7c; --sx-string:#a96100; --sx-number:#c74312;
    --sx-comment:#287d39; --sx-tag:#b82d7a; --sx-attr:#0b69d1; --sx-property:#0b69d1;
    --sx-literal:#c12579; --sx-preproc:#8b6500; --sx-operator:#4e5966;
  }
  [data-theme="vibrant-violet"]{
    --sx-keyword:#d6a7ff; --sx-type:#47ebd6; --sx-string:#ffd15b; --sx-number:#ff9f7f;
    --sx-comment:#70e58c; --sx-tag:#ff67bd; --sx-attr:#64b9ff; --sx-property:#64b9ff;
    --sx-literal:#ff67bd; --sx-preproc:#ffe18a; --sx-operator:#d7d3e4;
  }
  [data-theme="vibrant-green"]{
    --sx-keyword:#b891ff; --sx-type:#27efd2; --sx-string:#ffd45c; --sx-number:#ff9a7a;
    --sx-comment:#68e795; --sx-tag:#ff67c6; --sx-attr:#4eb5ff; --sx-property:#4eb5ff;
    --sx-literal:#ff67c6; --sx-preproc:#ffe48a; --sx-operator:#d0e3e5;
  }
  [data-theme="vibrant-red"]{
    --sx-keyword:#c39cff; --sx-type:#4de2cf; --sx-string:#ffd15a; --sx-number:#ffb078;
    --sx-comment:#78df8b; --sx-tag:#ff69ad; --sx-attr:#67b6ff; --sx-property:#67b6ff;
    --sx-literal:#ff69ad; --sx-preproc:#ffe18a; --sx-operator:#e0d4d7;
  }
  .sx-keyword{color:var(--sx-keyword);font-weight:600}
  .sx-type{color:var(--sx-type)}
  .sx-string{color:var(--sx-string)}
  .sx-number{color:var(--sx-number)}
  .sx-comment{color:var(--sx-comment);font-style:italic}
  .sx-tag{color:var(--sx-tag);font-weight:600}
  .sx-attr,.sx-property{color:var(--sx-attr)}
  .sx-literal{color:var(--sx-literal);font-weight:550}
  .sx-preproc{color:var(--sx-preproc)}
  .sx-operator{color:var(--sx-operator)}
  .cl.isdef{background:color-mix(in srgb, var(--k-def-bg) 45%, transparent)}
  .cl.cur{background:color-mix(in srgb, var(--hit) 30%, transparent)}
  .doc .nav{display:flex;align-items:center;gap:8px;margin-left:auto;flex:none}
  mark.on,mark[data-k].on{background:#ff9d2e;box-shadow:none}
  #pvOutline{background:var(--surface-2);border-bottom:1px solid var(--line);display:flex;flex-direction:column;flex:1;min-height:0}
  #pvOutline.code-view{flex:0 0 auto}
  #pvOutline.code-view .pvlist{display:none}

  /* ---- modal dialog ---- */
  .dlg-back{position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;
    background:color-mix(in srgb, var(--ink) 34%, transparent);backdrop-filter:blur(3px);padding:20px}
  .dlg-back.on{display:flex}
  .dlg{width:min(460px,100%);background:var(--surface);border:1px solid var(--line);border-radius:14px;
    box-shadow:var(--shadow);padding:22px 24px}

  /* Options overrides must come after the generic .dlg rule. */
  .dlg.options-dlg{
    width:min(1600px,calc(100vw - 48px));
    max-width:calc(100vw - 48px);
    max-height:calc(100vh - 48px);
    display:flex;flex-direction:column;
  }
  .dlg.options-dlg .options-scroll{overflow-y:auto;overflow-x:hidden;min-height:0;width:100%;padding-right:6px}
  .dlg.options-dlg .options-grid{
    display:grid;
    grid-template-columns:minmax(260px,1fr) minmax(300px,1fr) minmax(520px,1.7fr) minmax(240px,.9fr);
    gap:28px;align-items:start;width:100%;
  }
  .dlg.options-dlg .options-section{min-width:0}
  .dlg.options-dlg .options-section.full{grid-column:auto;border-top:0!important;padding-top:0!important}
  .dlg.options-dlg .facets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 14px;max-height:none;overflow:visible}
  .dlg.options-dlg .stats{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}

  @media (max-width:1350px){
    .dlg.options-dlg .options-grid{grid-template-columns:minmax(250px,1fr) minmax(280px,1fr) minmax(420px,1.45fr)}
    .dlg.options-dlg .options-section.full{grid-column:1/-1;border-top:1px solid var(--line)!important;padding-top:16px!important}
    .dlg.options-dlg .facets{grid-template-columns:repeat(2,minmax(0,1fr))}
  }
  @media (max-width:980px){
    .dlg.options-dlg .options-grid{grid-template-columns:1fr 1fr}
    .dlg.options-dlg .options-section.full{grid-column:1/-1}
    .dlg.options-dlg .facets{grid-template-columns:repeat(2,minmax(0,1fr))}
  }
  @media (max-width:680px){
    .dlg.options-dlg{width:calc(100vw - 24px);max-width:calc(100vw - 24px);max-height:calc(100vh - 24px)}
    .dlg.options-dlg .options-grid{grid-template-columns:1fr}
    .dlg.options-dlg .options-section.full{grid-column:auto}
    .dlg.options-dlg .facets{grid-template-columns:repeat(2,minmax(0,1fr))}
  }
  .dlg h2{margin:8px 0 6px;font-size:16px}
  .dlg p{margin:0;color:var(--muted);font-size:13.5px;white-space:pre-line}
  .dlg .row{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}
  .dlg .btn.danger{background:#c0392b;border-color:#c0392b}
  .dlg .btn.danger:hover{background:#a5301f;border-color:#a5301f}

  /* ---- preview symbol tabs ---- */
  .pvtabs{display:flex;gap:4px;align-items:center;flex-wrap:wrap;padding:8px 22px}
  .pvtab{background:none;border:1px solid transparent;border-radius:99px;padding:3px 11px;cursor:pointer;
    font-size:12.5px;color:var(--muted)}
  .pvtab:hover{border-color:var(--line-strong);color:var(--ink)}
  .pvtab.on{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 40%, var(--surface));
    color:var(--accent-soft-text,var(--accent-ink));font-weight:600}
  .pvtab .n{font-family:var(--mono);font-size:10.5px;opacity:.75;margin-left:5px}
  .pvfilter{margin-left:auto;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);
    padding:3px 9px;font-size:12px;width:140px}
  .pvlist{flex:1;min-height:0;max-height:none;overflow-y:auto;padding:8px 22px 10px;border-bottom:0}
  .pvrow{display:grid;grid-template-columns:20px minmax(90px,auto) minmax(0,1fr) 48px auto;gap:10px;
    align-items:center;padding:4px 8px;border-radius:var(--r-sm);cursor:pointer;font-family:var(--mono);font-size:12px}
  .pvrow:hover{background:var(--surface-2)}
  .pvrow .kb{width:18px;height:18px;border-radius:5px;display:flex;align-items:center;justify-content:center;
    font-size:10px;font-weight:700}
  .pvrow .nm{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pvrow .sig{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px}
  .pvrow .no{color:var(--muted);text-align:right;font-size:11px}
  .pvinfo{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 16px;padding:4px 8px;font-size:12.5px}
  .pvinfo dt{color:var(--muted);font-family:var(--mono);font-size:11.5px}
  .pvinfo dd{margin:0;overflow-wrap:anywhere}
  .pvempty{padding:10px 8px;color:var(--muted);font-size:12.5px}

  .note{font-size:12px;color:var(--warn);background:color-mix(in srgb, var(--warn) 12%, var(--surface));border:1px solid color-mix(in srgb, var(--warn) 35%, var(--surface));
    border-radius:var(--r-sm);padding:8px 10px;margin-top:12px}

  @media (max-width:1250px){
    .options-grid{grid-template-columns:minmax(240px,1fr) minmax(250px,1fr) minmax(380px,1.5fr)}
    .options-section.full{grid-column:1/-1;border-top:1px solid var(--line)!important;padding-top:16px!important}
    .options-dlg .facets{grid-template-columns:repeat(2,minmax(0,1fr))}
  }
  @media (max-width:980px){
    .options-grid{grid-template-columns:1fr 1fr}
    .options-section.full{grid-column:1/-1}
    .options-dlg .facets{grid-template-columns:repeat(2,minmax(0,1fr))}
  }
  @media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
  @media (max-width:900px){
    .topbar{padding:0 12px;height:48px;gap:6px;overflow-x:auto;overflow-y:hidden}
    .topbrand{font-size:13px}
    .toolbtn{width:32px;height:32px}
    .top-tabs{margin-left:4px}
    .top-tabs .tab{padding:0 8px;font-size:12px}
    .top-picker{font-size:11px}
    .top-picker select{font-size:11.5px;max-width:122px}
    .top-status{display:none}
    .options-grid{grid-template-columns:1fr}
    .options-section.full{grid-column:auto}
    .options-dlg{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}
    .options-dlg .facets{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;overflow:visible}
    .options-dlg .stats{grid-template-columns:1fr 1fr}
    .searchbar{padding:12px 16px 0}
    .pane{padding:14px 16px 60px}
    #q{font-size:17px}
    #graphPane{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto auto}
    .graph-tree-resizer{display:none}
    .tree{max-height:24vh;border-right:0;border-bottom:1px solid var(--line)}
    .gnodeinfo{max-height:24vh;border-left:0;border-top:1px solid var(--line)}
    .ln{grid-template-columns:80px 38px minmax(0,1fr);gap:8px}
  }

  /* Phase 3: graph analysis */
  .gmetric-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:8px 0 10px}
  .gmetric{border:1px solid var(--line);border-radius:8px;padding:7px 8px;background:var(--surface-2);min-width:0}
  .gmetric b{display:block;font-size:15px;line-height:1.1;color:var(--ink)}
  .gmetric span{display:block;font-size:10.5px;color:var(--muted);margin-top:3px}
  .gscorebar{height:5px;border-radius:999px;background:var(--line);overflow:hidden;margin-top:5px}
  .gscorebar i{display:block;height:100%;background:var(--accent);width:0}
  .gcompare{border:1px solid var(--line);border-radius:9px;padding:9px;margin-top:8px;background:var(--surface-2)}
  .gcompare h5{margin:0 0 6px;font-size:11.5px}
  .gcompare .rowx{display:grid;grid-template-columns:110px 1fr;gap:7px;font-size:11px;margin:3px 0}
  .gbridge-badge{display:inline-flex;align-items:center;border:1px solid var(--line-strong);border-radius:999px;padding:2px 7px;font-size:10px;margin-left:5px}
  .gheat-legend{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted);margin-top:4px}
  .gheat-ramp{width:74px;height:6px;border-radius:999px;background:linear-gradient(90deg,hsl(205 72% 52%),hsl(55 85% 52%),hsl(5 78% 54%))}

  /* Phase 4: advanced analysis */
  .qbuilderbtn{border:1px solid var(--line-strong);background:var(--surface-2);color:var(--ink);border-radius:7px;padding:5px 8px;font-size:11px;cursor:pointer;white-space:nowrap}
  .qbuilderbtn:hover{border-color:var(--accent)}
  .gminimap{position:absolute;right:10px;bottom:10px;width:170px;height:112px;border:1px solid var(--line-strong);border-radius:9px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--shadow);z-index:4;display:none}
  .gminimap.on{display:block}
  .gpath-node{outline:2px solid var(--graph-selected)}
  .ganalysis-list{display:grid;gap:5px;margin-top:7px}
  .ganalysis-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start;border:1px solid var(--line);background:var(--surface-2);border-radius:7px;padding:7px 8px;font-size:11px;cursor:pointer}
  .ganalysis-item:hover{border-color:var(--accent)}
  .ganalysis-main{min-width:0}.ganalysis-name{font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ganalysis-path{margin-top:2px;color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ganalysis-meta{margin-top:3px;color:var(--muted);font-size:9.5px;white-space:normal}.ganalysis-item b{font-size:10px;color:var(--muted);white-space:nowrap}
  .gphase4-badge{display:inline-flex;align-items:center;border:1px solid var(--line-strong);border-radius:999px;padding:2px 7px;font-size:10px;margin-left:5px}
  .qbuilder-back{position:fixed;inset:0;background:rgba(0,0,0,.38);display:none;align-items:center;justify-content:center;z-index:90;padding:24px}
  .qbuilder-back.on{display:flex}
  .qbuilder{width:min(720px,94vw);background:var(--surface);border:1px solid var(--line-strong);border-radius:14px;box-shadow:var(--shadow);padding:18px}
  .qbuilder h2{margin:3px 0 12px;font-size:20px}
  .qbuilder-grid{display:grid;grid-template-columns:170px minmax(0,1fr);gap:10px;align-items:center}
  .qbuilder-grid label{font-size:12px;color:var(--muted)}
  .qbuilder-grid select,.qbuilder-grid input:not([type="checkbox"]){width:100%;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface-2);color:var(--ink);padding:8px 9px}
  .qbuilder-grid .qb-check{display:inline-flex;align-items:center;justify-content:flex-start;gap:7px;width:max-content;color:var(--ink);cursor:pointer}
  .qbuilder-grid .qb-check input[type="checkbox"]{width:auto;height:auto;margin:0;flex:none;cursor:pointer}
  .qb-add-filter{justify-self:start;min-width:120px}
  .qb-query-label{display:block;margin-top:14px;margin-bottom:6px;font-size:12px;color:var(--muted)}
  .qbuilder-preview{display:block;width:100%;min-height:92px;margin-top:0;padding:9px 10px;background:var(--surface-2);color:var(--ink);border:1px solid var(--line-strong);border-radius:8px;font:12px ui-monospace,monospace;line-height:1.5;word-break:break-all;resize:vertical}
  .qbuilder-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;flex-wrap:wrap}


  /* Phase 5 + 6: project intelligence */
  .insights-pane{overflow:auto;padding:14px;background:var(--bg);min-height:0}
  .insights-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
  .insights-head h2{margin:0;font-size:16px}.insights-head .spacer{flex:1}
  .ins-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin-bottom:12px}
  .ins-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:11px;min-width:0}
  .ins-card h3{margin:0 0 7px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
  .ins-big{font-size:25px;font-weight:800;line-height:1.05}.ins-sub{font-size:11px;color:var(--muted);margin-top:4px}
  .ins-section{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin:0 0 12px;overflow:hidden}
  .ins-section>header{display:flex;align-items:center;gap:8px;padding:14px 12px;border-bottom:1px solid var(--line);background:var(--surface-2)}
  .ins-section>header h3{margin:0;font-size:13px}.ins-section>header .spacer{flex:1}.ins-body{padding:10px 12px}
  .ins-list{display:grid;gap:6px}.ins-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:7px 8px;background:var(--surface-2);font-size:11.5px}
  .ins-row.click{cursor:pointer}.ins-row.click:hover{border-color:var(--accent)}.ins-row .muted{color:var(--muted);font-size:10.5px}.ins-row b{font-size:11px;white-space:nowrap}
  .ins-row.ins-risk-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px}
  .ins-row-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:16px;min-width:max-content;margin-left:14px}
  .ins-risk-chip{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:3px 8px;border-radius:999px;font-weight:800;line-height:1.25;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
  .ins-risk-chip--impact{min-width:96px;min-height:34px;padding:7px 16px;font-size:14px;font-weight:850;letter-spacing:.01em;flex:none}
  .ins-pill{display:inline-flex;align-items:center;padding:2px 6px;border:1px solid var(--line-strong);border-radius:999px;font-size:10px;margin:1px 2px 1px 0;background:var(--surface)}
  .ins-risk-low{color:#2f9e63}.ins-risk-medium{color:#b98413}.ins-risk-high{color:#d7672d}.ins-risk-critical{color:#d63f4d;font-weight:800}
  .ins-toolbar{display:flex;gap:6px;flex-wrap:wrap}.ins-toolbar input,.ins-toolbar select{border:1px solid var(--line-strong);border-radius:7px;background:var(--surface);color:var(--ink);padding:6px 8px;font-size:11.5px}
  .ins-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ins-two>div>b{display:block;padding:10px 0 12px}.ins-empty{color:var(--muted);font-size:11.5px;padding:8px 0}
  .git-timeline-wide{width:100%;min-width:0}.git-timeline-wide>b{display:block;padding:10px 0 12px}
  .ins-code{font:11px ui-monospace,monospace;white-space:pre-wrap;word-break:break-word;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:8px}
  @media(max-width:1100px){.ins-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.ins-two{grid-template-columns:1fr}}




/* ---- startup splash -----------------------------------------------------------
   Deliberately simulated so the HAKROS mark remains visible for ~1 second on
   initial load and F5. It does not wait for or alter index restoration. */
.startup-splash{
  position:fixed;
  inset:0;
  width:100vw;
  height:100dvh;
  z-index:2147483647;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  padding:32px;
  background:var(--canvas);
  color:var(--ink);
  text-align:center;
  opacity:1;
  visibility:visible;
  transition:opacity .18s ease,visibility 0s linear .18s;
  pointer-events:all;
  overscroll-behavior:none;
  touch-action:none;
  -webkit-user-select:none;
  user-select:none;
}
.startup-splash.is-hiding{opacity:0;visibility:hidden;pointer-events:none}
.startup-splash__content{
  width:min(520px,92vw);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.startup-splash__logo{
  width:112px;
  height:112px;
  display:block;
  margin:0 0 18px;
  border-radius:18px;
  box-shadow:var(--shadow);
}
.startup-splash__brand{
  margin:0 0 8px;
  color:var(--accent);
  font-family:var(--mono);
  font-size:14px;
  line-height:1;
  font-weight:850;
  letter-spacing:.28em;
  text-indent:.28em;
}
.startup-splash__title{
  margin:0;
  color:var(--ink);
  font-size:clamp(28px,5vw,42px);
  line-height:1.05;
  font-weight:900;
  letter-spacing:.065em;
}
.startup-splash__progress{
  width:min(300px,70vw);
  height:7px;
  margin-top:26px;
  overflow:hidden;
  border:1px solid var(--line-strong);
  border-radius:999px;
  background:var(--surface);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.18);
}
.startup-splash__bar{
  width:0;
  height:100%;
  border-radius:inherit;
  background:var(--accent);
  animation:startupSplashProgress 1s cubic-bezier(.22,.7,.18,1) forwards;
}
@keyframes startupSplashProgress{
  0%{width:0}
  18%{width:14%}
  47%{width:46%}
  72%{width:73%}
  90%{width:91%}
  100%{width:100%}
}
@media (prefers-reduced-motion:reduce){
  .startup-splash{transition:none}
  .startup-splash__bar{animation-timing-function:linear}
}

/* ---- minimum supported viewport -------------------------------------------------
   The editor is intentionally desktop-only below 1300 CSS px. The blocker inherits
   the currently selected theme through the same CSS custom properties as the app. */
.screen-size-blocker{
  position:fixed;
  inset:0;
  width:100vw;
  height:100dvh;
  z-index:2147483647;
  display:none;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  padding:32px;
  background:var(--canvas);
  color:var(--ink);
  text-align:center;
  overscroll-behavior:none;
  touch-action:none;
  -webkit-user-select:none;
  user-select:none;
}
.screen-size-blocker__content{
  width:min(520px,92vw);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.screen-size-blocker__logo{
  width:112px;
  height:112px;
  display:block;
  margin:0 0 18px;
  border-radius:18px;
  box-shadow:var(--shadow);
}
.screen-size-blocker__brand{
  margin:0 0 8px;
  color:var(--accent);
  font-family:var(--mono);
  font-size:14px;
  line-height:1;
  font-weight:850;
  letter-spacing:.28em;
  text-indent:.28em;
}
.screen-size-blocker h1{
  margin:0;
  color:var(--ink);
  font-size:clamp(28px,5vw,42px);
  line-height:1.05;
  font-weight:900;
  letter-spacing:.065em;
}
.screen-size-blocker p{
  max-width:460px;
  margin:18px 0 0;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}
@media (max-width:1299px){
  html,body{overflow:hidden!important;overscroll-behavior:none}
  .screen-size-blocker{display:flex}
}

  .graph-name-dialog{width:min(440px,94vw)}
  .graph-name-dialog .field{display:grid;gap:6px}.graph-name-dialog .field span{font-size:11px;color:var(--muted)}.graph-name-dialog input{width:100%;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:7px;padding:8px 10px}.graph-name-dialog .dlg-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}

/* Language selector */
.language-picker select{min-width:92px}

/* Bottom application status bar + Local Browser Translator API progress status */
.app-statusbar{
  flex:0 0 32px;
  min-height:32px;
  display:flex;
  align-items:stretch;
  gap:10px;
  padding:0 10px;
  border-top:1px solid var(--line);
  background:var(--surface-2);
  color:var(--muted);
  position:relative;
  z-index:12;
  overflow:hidden
}
.app-statusbar__spacer{flex:1 1 auto;min-width:0}
.i18n-auto-status{
  flex:0 1 520px;
  min-width:220px;
  max-width:520px;
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:3px 4px 5px;
  color:var(--ink);
  font-size:10px;
  line-height:1.1;
  min-height:0
}
.i18n-auto-status[hidden]{display:none!important}
.i18n-auto-status__row{display:flex;align-items:center;gap:8px;min-width:0;height:15px}
.i18n-auto-status__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;color:var(--muted)}
.i18n-auto-status__percent{flex:none;font:700 10px var(--mono);color:var(--ink)}
.i18n-auto-status__bar{height:3px;margin-top:2px;border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--line) 70%,transparent)}
.i18n-auto-status__bar i{display:block;width:0;height:100%;border-radius:inherit;background:var(--accent);transition:width .18s ease}


.ins-risk-chip--large{font-size:.62em;min-width:112px;padding:6px 12px;vertical-align:middle}


  /* ---- Additional vibrant / mixed color themes ---- */
  [data-theme="vibrant-blue"]{
    --canvas:#1f2b3e; --surface:#293a54; --surface-2:#334a6b; --line:#486992; --line-strong:#6389b6;
    --ink:#f7fbff; --muted:#bed0e5; --graph-selected:#58ff91; --accent:#4a9fff; --accent-ink:#91c8ff; --accent-soft:#315b86; --hit:#ffe65a; --warn:#ff9c68;
    --k-def:#bd9cff; --k-def-bg:#51486f; --k-new:#50e6d2; --k-new-bg:#35665f; --k-call:#65baff; --k-call-bg:#355e82;
    --k-ref:#d7e2ef; --k-ref-bg:#4a5b70; --k-import:#ff78c5; --k-import-bg:#70445f; --k-comment:#76e796; --k-comment-bg:#3e684c;
    --k-string:#ffd35e; --k-string-bg:#6c5b35; --shadow:0 1px 2px rgba(0,0,0,.24),0 10px 28px -12px rgba(0,0,0,.44);
    --dot:#415a78; --row-line:#394f6a; --badge-ink:#f8fbff; --scheme:dark; color-scheme:dark;
  }
  [data-theme="color-aurora"]{
    --canvas:#132f34; --surface:#183f43; --surface-2:#214f53; --line:#317178; --line-strong:#4f9199;
    --ink:#f7fffd; --muted:#bee2da; --graph-selected:#f7ff54; --accent:#36e0bb; --accent-ink:#91ffe3; --accent-soft:#245f58; --hit:#ffeb55; --warn:#ff7f78;
    --k-def:#b592ff; --k-def-bg:#4e466f; --k-new:#42f0cf; --k-new-bg:#27665e; --k-call:#5db7ff; --k-call-bg:#315d7c; --k-ref:#d7ebe8; --k-ref-bg:#46615f; --k-import:#ff72bd; --k-import-bg:#6c405d; --k-comment:#9af05d; --k-comment-bg:#496535; --k-string:#ffd45e; --k-string-bg:#6d5c34;
    --dot:#2f6064; --row-line:#29565a; --badge-ink:#fff; --scheme:dark; color-scheme:dark;
  }
  [data-theme="color-neon"]{
    --canvas:#24182f; --surface:#321d42; --surface-2:#422455; --line:#6b397a; --line-strong:#9255a2;
    --ink:#fff8ff; --muted:#e0bddf; --graph-selected:#5dff79; --accent:#ff45ba; --accent-ink:#ff9edc; --accent-soft:#68315d; --hit:#faff54; --warn:#ff8f4f;
    --k-def:#c788ff; --k-def-bg:#5d3974; --k-new:#39efd3; --k-new-bg:#2f665f; --k-call:#4dbaff; --k-call-bg:#315e7b; --k-ref:#e7d9e7; --k-ref-bg:#5a4b60; --k-import:#ff4bb5; --k-import-bg:#78345e; --k-comment:#76f07d; --k-comment-bg:#3f6944; --k-string:#ffda4f; --k-string-bg:#705d31;
    --dot:#55305f; --row-line:#4a294f; --badge-ink:#fff; --scheme:dark; color-scheme:dark;
  }
  [data-theme="color-sunset"]{
    --canvas:#33242b; --surface:#452b32; --surface-2:#59343a; --line:#7e4b4e; --line-strong:#a96a62;
    --ink:#fff8f1; --muted:#e5c6b8; --graph-selected:#7cff75; --accent:#ff7a3d; --accent-ink:#ffb082; --accent-soft:#704239; --hit:#ffe052; --warn:#ff5f66;
    --k-def:#b99cff; --k-def-bg:#5a486c; --k-new:#47dfc9; --k-new-bg:#3b625c; --k-call:#65b5ff; --k-call-bg:#405a73; --k-ref:#eadbd4; --k-ref-bg:#62534f; --k-import:#ff6caa; --k-import-bg:#764353; --k-comment:#8add78; --k-comment-bg:#496048; --k-string:#ffd15a; --k-string-bg:#755b32;
    --dot:#67444a; --row-line:#5a3b41; --badge-ink:#fff; --scheme:dark; color-scheme:dark;
  }
  [data-theme="color-ocean"]{
    --canvas:#102d43; --surface:#153b56; --surface-2:#1d4b68; --line:#2c6e88; --line-strong:#4692aa;
    --ink:#f4fcff; --muted:#b7d7e2; --graph-selected:#6dff9a; --accent:#18c7e8; --accent-ink:#7cecff; --accent-soft:#235f75; --hit:#ffe75a; --warn:#ff8a62;
    --k-def:#a98eff; --k-def-bg:#4d466d; --k-new:#35edd1; --k-new-bg:#28675f; --k-call:#52b6ff; --k-call-bg:#315f7d; --k-ref:#d1e6ec; --k-ref-bg:#41616c; --k-import:#fa75c5; --k-import-bg:#68445f; --k-comment:#6be49a; --k-comment-bg:#37684d; --k-string:#ffd65f; --k-string-bg:#6a5d36;
    --dot:#2c5d75; --row-line:#254f64; --badge-ink:#fff; --scheme:dark; color-scheme:dark;
  }
  [data-theme="color-candy"]{
    --canvas:#34283d; --surface:#44324e; --surface-2:#573e61; --line:#76547d; --line-strong:#9a709e;
    --ink:#fff9ff; --muted:#dec8e4; --graph-selected:#5eff91; --accent:#ff79c6; --accent-ink:#ffb2dc; --accent-soft:#6c4467; --hit:#ffe95c; --warn:#ff9a65;
    --k-def:#c99aff; --k-def-bg:#604675; --k-new:#4de9d1; --k-new-bg:#38645f; --k-call:#69b7ff; --k-call-bg:#405b75; --k-ref:#e5dbe7; --k-ref-bg:#625564; --k-import:#ff76bd; --k-import-bg:#7b4564; --k-comment:#83e58e; --k-comment-bg:#47644c; --k-string:#ffd25c; --k-string-bg:#755d35;
    --dot:#654d6d; --row-line:#58425f; --badge-ink:#fff; --scheme:dark; color-scheme:dark;
  }

  /* Compact header pickers: the combobox is self-describing. */
  .compact-picker{display:inline-flex;align-items:center;gap:0}

  /* Options: narrower and taller, arranged vertically in two columns. */
  .dlg.options-dlg{width:min(980px,calc(100vw - 48px));max-width:min(980px,calc(100vw - 48px));max-height:calc(100vh - 36px)}
  .dlg.options-dlg .options-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 28px}
  .dlg.options-dlg .options-section.full{grid-column:auto;border-top:0!important;padding-top:0!important}
  .dlg.options-dlg .facets{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 12px}
  @media (max-width:860px){
    .dlg.options-dlg{width:calc(100vw - 24px);max-width:calc(100vw - 24px);max-height:calc(100vh - 24px)}
    .dlg.options-dlg .options-grid{grid-template-columns:1fr}
    .dlg.options-dlg .facets{grid-template-columns:repeat(2,minmax(0,1fr))}
  }

/* Syntax palette for all newly-added dark color themes. */
[data-theme="vibrant-blue"],
[data-theme="color-aurora"],
[data-theme="color-neon"],
[data-theme="color-sunset"],
[data-theme="color-ocean"],
[data-theme="color-candy"]{
  --sx-keyword:#c9a4ff; --sx-type:#4ce8d4; --sx-string:#ffd261; --sx-number:#ff9c7d;
  --sx-comment:#78e493; --sx-tag:#ff74c2; --sx-attr:#69baff; --sx-property:#69baff;
  --sx-literal:#ff74c2; --sx-preproc:#ffe28b; --sx-operator:#d9e0e8;
}

@media (max-width:1500px){
  .i18n-auto-status{max-width:360px;min-width:180px}
}

/* Code viewer full-window mode */
.sheet.fullscreen{justify-content:stretch}
.sheet.fullscreen .doc{width:100vw;max-width:none;border-left:0;box-shadow:none}
.pv-expand{min-width:34px;font-size:16px;line-height:1}

/* ---- Multicolor themes -----------------------------------------------------
   These palettes deliberately separate major UI regions instead of tinting the
   whole application with one hue. The graph remains calm enough to read while
   navigation, tools and detail panels use stronger contrasting blocks. */
[data-theme="multi-crimson"]{
  --canvas:#173a34; --surface:#262b31; --surface-2:#343a41; --line:#576069; --line-strong:#7a858f;
  --ink:#ffffff; --muted:#c9d0d6; --graph-selected:#7cff9b; --accent:#ff244f; --accent-ink:#ff8398; --accent-soft:#67152b; --hit:#ffe75a; --warn:#ff9b58;
  --k-def:#d39cff; --k-def-bg:#55416b; --k-new:#42e9cf; --k-new-bg:#315f59; --k-call:#69baff; --k-call-bg:#354f69; --k-ref:#e5e8eb; --k-ref-bg:#4b5157; --k-import:#ff6db8; --k-import-bg:#6a3e58; --k-comment:#86e58e; --k-comment-bg:#3e6047; --k-string:#ffd35c; --k-string-bg:#665635;
  --dot:#2b5a52; --row-line:#454c53; --badge-ink:#fff; --scheme:dark; color-scheme:dark;
  --multi-header:#17171E; --multi-tree:#7b1238; --multi-tree-2:#941646; --multi-tools:#791438; --multi-tools-card:#941945; --multi-detail:#41464b; --multi-detail-head:#52585e; --multi-canvas:#173a34;
}
[data-theme="multi-toxic"]{
  --canvas:#101f2b; --surface:#24252b; --surface-2:#32343b; --line:#515660; --line-strong:#777e89;
  --ink:#fbfff5; --muted:#cbd4c4; --graph-selected:#00ff9d; --accent:#b7ff22; --accent-ink:#dcff8a; --accent-soft:#344d13; --hit:#ffdf3d; --warn:#ff6d54;
  --k-def:#c59dff; --k-def-bg:#4e4265; --k-new:#40f0d2; --k-new-bg:#2c6058; --k-call:#63b8ff; --k-call-bg:#334f69; --k-ref:#e5e8e2; --k-ref-bg:#4b504c; --k-import:#ff70c1; --k-import-bg:#663d58; --k-comment:#b7ff68; --k-comment-bg:#425a32; --k-string:#ffd553; --k-string-bg:#665735;
  --dot:#224356; --row-line:#42454c; --badge-ink:#fff; --scheme:dark; color-scheme:dark;
  --multi-header:#15171c; --multi-tree:#2f4f12; --multi-tree-2:#456f18; --multi-tools:#6d1a7c; --multi-tools-card:#842096; --multi-detail:#173b4c; --multi-detail-head:#20546a; --multi-canvas:#101f2b;
}
[data-theme="multi-solar"]{
  --canvas:#22243a; --surface:#302f3d; --surface-2:#3d3b4d; --line:#5f5b70; --line-strong:#847d96;
  --ink:#fffaf2; --muted:#d7cfc4; --graph-selected:#5eff93; --accent:#ff7a18; --accent-ink:#ffb477; --accent-soft:#693818; --hit:#fff04e; --warn:#ff4f67;
  --k-def:#bf9cff; --k-def-bg:#56446b; --k-new:#4ae7cf; --k-new-bg:#36605a; --k-call:#60b7ff; --k-call-bg:#37526c; --k-ref:#e6e0da; --k-ref-bg:#514d52; --k-import:#ff6cad; --k-import-bg:#6b4054; --k-comment:#8de887; --k-comment-bg:#466148; --k-string:#ffe052; --k-string-bg:#6d5b31;
  --dot:#40415d; --row-line:#4a4858; --badge-ink:#fff; --scheme:dark; color-scheme:dark;
  --multi-header:#55211d; --multi-tree:#93400e; --multi-tree-2:#b65310; --multi-tools:#a70f4b; --multi-tools-card:#c31758; --multi-detail:#33305a; --multi-detail-head:#46417a; --multi-canvas:#22243a;
}
[data-theme="multi-arctic"]{
  --canvas:#103243; --surface:#26313a; --surface-2:#34434d; --line:#526773; --line-strong:#78909d;
  --ink:#f8fdff; --muted:#c3d7df; --graph-selected:#6dffb4; --accent:#ff42c8; --accent-ink:#ff9be2; --accent-soft:#662658; --hit:#ffe94f; --warn:#ff8a62;
  --k-def:#caa0ff; --k-def-bg:#54446b; --k-new:#45ead5; --k-new-bg:#315f5a; --k-call:#67bcff; --k-call-bg:#35556f; --k-ref:#dbe9ee; --k-ref-bg:#485861; --k-import:#ff73c8; --k-import-bg:#6e405f; --k-comment:#78e99a; --k-comment-bg:#3c624b; --k-string:#ffd65a; --k-string-bg:#695a35;
  --dot:#25536a; --row-line:#40525c; --badge-ink:#fff; --scheme:dark; color-scheme:dark;
  --multi-header:#112833; --multi-tree:#075d79; --multi-tree-2:#087697; --multi-tools:#8d165f; --multi-tools-card:#a91b72; --multi-detail:#eceff2; --multi-detail-head:#d9dfe4; --multi-detail-ink:#171b20; --multi-detail-muted:#56616b; --multi-canvas:#103243;
}
[data-theme="multi-acid"]{
  --canvas:#1b1b28; --surface:#292936; --surface-2:#373747; --line:#555569; --line-strong:#77778d;
  --ink:#fffdf5; --muted:#d7d0c1; --graph-selected:#60ff87; --accent:#eaff00; --accent-ink:#f5ff91; --accent-soft:#4d5110; --hit:#ffeb3b; --warn:#ff5d5d;
  --k-def:#c49cff; --k-def-bg:#51446a; --k-new:#43ead0; --k-new-bg:#315f59; --k-call:#68b9ff; --k-call-bg:#35516b; --k-ref:#e7e3db; --k-ref-bg:#4f4e54; --k-import:#ff6bbd; --k-import-bg:#6c3e5a; --k-comment:#a4ec70; --k-comment-bg:#4b6039; --k-string:#ffd55a; --k-string-bg:#6a5833;
  --dot:#39394f; --row-line:#454555; --badge-ink:#fff; --scheme:dark; color-scheme:dark;
  --multi-header:#131319; --multi-tree:#4d2a8a; --multi-tree-2:#6435ae; --multi-tools:#8b5d00; --multi-tools-card:#a87100; --multi-detail:#263f31; --multi-detail-head:#335641; --multi-canvas:#1b1b28;
}

/* Strong per-region separation used only by Multicolor themes. */
[data-theme^="multi-"] .topbar{background:var(--multi-header);border-bottom-color:color-mix(in srgb,var(--accent) 45%,#000)}
[data-theme^="multi-"] .tree{background:var(--multi-tree);border-right-color:rgba(255,255,255,.18)}
[data-theme^="multi-"] .tnode:hover,[data-theme^="multi-"] .tnode.active{background:var(--multi-tree-2);color:#fff}
[data-theme^="multi-"] .tree .tnode,[data-theme^="multi-"] .tree .tnode.ns,[data-theme^="multi-"] .tree .tnode.mem,[data-theme^="multi-"] .tree .tnode .car{color:#fff}
[data-theme^="multi-"] .canvasWrap{background:radial-gradient(circle at 1px 1px,var(--dot) 1px,transparent 0) 0 0/22px 22px,var(--multi-canvas)}
[data-theme^="multi-"] .graph-options{background:var(--multi-tree);border-left-color:rgba(255,255,255,.18)}
[data-theme^="multi-"] .gtools{background:var(--multi-tree)}
[data-theme^="multi-"] .gtool-group{background:var(--multi-tree-2);border-color:rgba(255,255,255,.24)}
[data-theme^="multi-"] .gtool-group h4,[data-theme^="multi-"] .gtool-group>label,[data-theme^="multi-"] .gtools .gcheck{color:#fff}
[data-theme^="multi-"] .gtools select,[data-theme^="multi-"] .gtools input[type="search"],[data-theme^="multi-"] .gtools .gstat{background:rgba(0,0,0,.22);border-color:rgba(255,255,255,.28);color:#fff}
[data-theme^="multi-"] .graph-details{background:var(--multi-header);border-left-color:rgba(255,255,255,.18);color:#fff}
[data-theme^="multi-"] .graph-details-head{background:var(--multi-header);border-bottom-color:rgba(255,255,255,.18)}
[data-theme^="multi-"] .gnodeinfo{background:var(--multi-header);color:#fff}
[data-theme^="multi-"] .graph-details .eyebrow,[data-theme^="multi-"] .graph-details .graph-options-toggle,[data-theme^="multi-"] .graph-details .ginfo-grid>div:nth-child(odd){color:color-mix(in srgb,#fff 72%,var(--multi-header))}
[data-theme^="multi-"] .graph-details .btn.ghost{color:#fff;border-color:rgba(255,255,255,.4)}
[data-theme^="multi-"] .graph-details .ginfo-kind{color:#fff;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.28)}
[data-theme^="multi-"] .glegend{background:color-mix(in srgb,var(--multi-header) 92%,transparent);color:#fff;border-color:rgba(255,255,255,.22)}
[data-theme^="multi-"] .searchbar{background:color-mix(in srgb,var(--multi-header) 82%,var(--surface));border-bottom-color:rgba(255,255,255,.12)}
[data-theme^="multi-"] .ins-section:nth-of-type(4n+1)>header{background:var(--multi-tree)}
[data-theme^="multi-"] .ins-section:nth-of-type(4n+2)>header{background:var(--multi-tools)}
[data-theme^="multi-"] .ins-section:nth-of-type(4n+3)>header{background:var(--multi-detail-head)}
[data-theme^="multi-"] .ins-section:nth-of-type(4n)>header{background:var(--multi-tree-2)}
[data-theme^="multi-"] .ins-section>header h3{color:#fff}
[data-theme="multi-arctic"] .ins-section:nth-of-type(4n+3)>header h3{color:#171b20}

/* Syntax palette shared by the new Multicolor themes. */
[data-theme="multi-crimson"],[data-theme="multi-toxic"],[data-theme="multi-solar"],[data-theme="multi-arctic"],[data-theme="multi-acid"]{
  --sx-keyword:#d2a4ff; --sx-type:#52ead4; --sx-string:#ffd463; --sx-number:#ff9d78; --sx-comment:#88e495;
  --sx-tag:#ff76c5; --sx-attr:#70bcff; --sx-property:#70bcff; --sx-literal:#ff76c5; --sx-preproc:#ffe38b; --sx-operator:#e2e5e8;
}

/* Multicolor themes: keep native select dropdowns readable. */
[data-theme^="multi-"] select{
  color-scheme:dark;
}
[data-theme^="multi-"] select option,
[data-theme^="multi-"] select optgroup{
  background:var(--multi-tree-2);
  color:#fff;
}
[data-theme^="multi-"] select option:checked{
  background:var(--accent);
  color:var(--accent-text,#fff);
}
[data-theme^="multi-"] select option:disabled,
[data-theme^="multi-"] select optgroup{
  color:rgba(255,255,255,.72);
}

/* Search & Query System */
.result-minimap{position:absolute;right:4px;top:190px;bottom:8px;width:7px;z-index:8;border-radius:6px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden;cursor:pointer}
.result-minimap i{position:absolute;left:1px;right:1px;min-height:2px;border-radius:2px;background:var(--accent)}
.search-tools-dialog{width:min(760px,92vw);max-height:86vh;overflow:auto}
.search-tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.search-tools-grid section{border:1px solid var(--line);border-radius:9px;background:var(--surface-2);padding:10px;display:flex;flex-direction:column;gap:8px}
.search-tools-grid section.wide{grid-column:1/-1}
.search-tools-grid h3{margin:0 0 2px;font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.search-tools-grid label{display:flex;align-items:center;gap:7px;font-size:12px}
.search-tools-grid label select{margin-left:auto}
.search-tools-grid select,.search-tools-grid input[type="text"]{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:6px;padding:6px 8px;min-width:0}
.tool-row{display:flex;gap:7px;align-items:center}
.tool-row select{flex:1;min-width:0}
.exclusion-list{display:flex;flex-wrap:wrap;gap:5px}
.exclusion-chip{display:inline-flex;gap:5px;align-items:center;border:1px solid var(--line);border-radius:99px;padding:3px 7px;font-size:10px;background:var(--surface)}
.group-head{position:sticky;top:0;z-index:2;padding:5px 8px;margin:4px 0;border-radius:6px;background:var(--surface-2);border:1px solid var(--line);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
#results.density-compact .card>.head{padding:7px 11px 6px}
#results.density-compact .ln{padding-top:3px;padding-bottom:3px}
#results.density-detailed .card>.head{padding:16px 18px 13px}
#results .card{content-visibility:auto;contain-intrinsic-size:180px}

.case-toggle{border:1px solid transparent;border-radius:6px;padding:4px 6px}.case-toggle:has(#caseSens:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-soft-text);font-weight:700}


/* Action history */
.history-pane{display:flex;flex-direction:column;gap:14px}
.history-pane[hidden]{display:none}
.history-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.history-head>div:first-child{display:flex;align-items:baseline;gap:10px;min-width:0}
.history-head h2{margin:0;font-size:16px}
.history-head .spacer{flex:1}
.history-filter-label{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;color:var(--muted)}
.history-filter-label select{min-width:150px}
.history-list{display:grid;gap:8px;align-content:start}
.history-empty{padding:54px 18px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--r-md);background:var(--surface)}
.history-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 11px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);cursor:pointer}
.history-item:hover{border-color:var(--accent);background:var(--surface-2)}
.history-icon{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface-2);font-weight:800;color:var(--accent)}
.history-main{min-width:0}
.history-title{font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.history-sub{margin-top:3px;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.history-side{display:flex;align-items:center;gap:9px}
.history-time{color:var(--muted);font-size:10.5px;white-space:nowrap}
.history-delete{width:28px;height:28px;padding:0;display:grid;place-items:center}
@media (max-width:1450px){.history-item{grid-template-columns:32px minmax(0,1fr) auto}.history-time{display:none}}

/* ---- Code Viewer & Navigation (Group 2) ---- */
.pv-filetabs{display:flex;gap:4px;padding:6px 12px;border-bottom:1px solid var(--line);background:var(--surface-2);overflow-x:auto;flex:none}
.pv-filetab{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:220px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--muted);padding:4px 8px;font-size:11.5px;cursor:pointer}
.pv-filetab.on{border-color:var(--accent);color:var(--ink);background:var(--accent-soft)}
.pv-filetab .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pv-filetab .x{opacity:.65;font-weight:700}.pv-filetab .x:hover{opacity:1}
.pv-breadcrumb{display:flex;align-items:center;gap:6px;min-height:29px;padding:5px 16px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:auto;background:var(--surface)}
.pv-breadcrumb b{color:var(--ink)}.pv-breadcrumb .sep{opacity:.55}
.pv-scopebar{position:relative;z-index:3;padding:5px 16px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 91%,var(--accent) 9%);font-family:var(--mono);font-size:11.5px;color:var(--ink);flex:none}
.pv-code-workspace{--pv-outline-w:210px;--pv-minimap-w:132px;display:grid;grid-template-columns:var(--pv-outline-w) 6px minmax(0,1fr) var(--pv-minimap-w);flex:1;min-height:0;position:relative;background:var(--surface)}
.pv-code-workspace[hidden]{display:none!important}.pv-code-outline{min-width:0;border-right:1px solid var(--line);background:var(--surface-2);display:flex;flex-direction:column;overflow:hidden}
.pv-side-title{padding:9px 10px 5px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.pv-side-filter{margin:0 8px 7px;padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font-size:11px}
.pv-code-outline-list{overflow:auto;min-height:0;padding:0 5px 10px}.pv-outline-item{display:flex;align-items:center;gap:6px;width:100%;border:0;background:none;color:var(--ink);padding:4px 6px;border-radius:5px;text-align:left;font-family:var(--mono);font-size:11px;cursor:pointer}
.pv-outline-item:hover,.pv-outline-item.on{background:var(--accent-soft);color:var(--accent-soft-text,var(--accent-ink))}.pv-outline-item .kind{width:17px;text-transform:uppercase;font-size:9px;color:var(--muted)}.pv-outline-item .line{margin-left:auto;color:var(--muted);font-size:9px}
.pv-code-workspace>.body{min-width:0;min-height:0;padding-bottom:60px}
.pv-outline-resizer{width:6px;min-width:6px;cursor:col-resize;background:transparent;position:relative;z-index:3;touch-action:none}
.pv-outline-resizer::after{content:"";position:absolute;top:0;bottom:0;left:2px;width:1px;background:var(--line)}
.pv-outline-resizer:hover,.pv-outline-resizer.dragging{background:color-mix(in srgb,var(--accent) 18%,transparent)}
.pv-outline-resizer:hover::after,.pv-outline-resizer.dragging::after{background:var(--accent)}
.pv-minimap{position:relative;border-left:1px solid var(--line);background:color-mix(in srgb,var(--surface-2) 94%,var(--accent) 6%);cursor:pointer;overflow:hidden;min-width:112px}
.pv-minimap::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 24%,color-mix(in srgb,var(--line) 35%,transparent) 24% 25%,transparent 25% 49%,color-mix(in srgb,var(--line) 28%,transparent) 49% 50%,transparent 50% 74%,color-mix(in srgb,var(--line) 22%,transparent) 74% 75%,transparent 75%);pointer-events:none;opacity:.55}
.pv-mini-mark{position:absolute;height:2px;border-radius:2px;background:var(--muted);opacity:.5;min-width:5px;max-width:calc(100% - 8px);z-index:1}
.pv-mini-mark.def{height:3px;background:var(--accent);opacity:.95;box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 20%,transparent)}
.pv-mini-viewport{position:absolute;left:2px;right:2px;border:1px solid var(--accent);border-radius:3px;background:color-mix(in srgb,var(--accent) 16%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--surface) 55%,transparent);pointer-events:none;z-index:3}
.pvfold{appearance:none;border:0;background:none;color:var(--muted);width:14px;padding:0;margin-right:2px;cursor:pointer;font-family:var(--mono);font-size:10px}.pvfold:hover{color:var(--accent)}.cl.fold-hidden{display:none}.cl.fold-head{background:color-mix(in srgb,var(--surface-2) 74%,transparent)}
.pv-split-pane{min-width:0;border-left:1px solid var(--line);display:flex;flex-direction:column;background:var(--surface)}.pv-code-workspace.split{grid-template-columns:var(--pv-outline-w) 6px minmax(0,1fr) minmax(0,1fr) var(--pv-minimap-w)}
.pv-code-workspace.minimap-off{grid-template-columns:var(--pv-outline-w) 6px minmax(0,1fr)}
.pv-code-workspace.split.minimap-off{grid-template-columns:var(--pv-outline-w) 6px minmax(0,1fr) minmax(0,1fr)}
.pv-code-workspace.minimap-off .pv-minimap{display:none!important}.pv-split-head{display:flex;gap:6px;padding:6px;border-bottom:1px solid var(--line);background:var(--surface-2)}.pv-split-head select{min-width:0;flex:1}.pv-split-body{min-height:0;overflow:auto;padding:12px 0 50px;font-family:var(--mono);font-size:12px;line-height:1.65}.pv-split-body .cl{grid-template-columns:48px minmax(0,1fr);padding:0 12px}
.pv-action-panel{position:absolute;z-index:8;right:22px;top:86px;width:min(620px,calc(100% - 44px));max-height:70%;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow);overflow:hidden}.pv-action-panel[hidden]{display:none!important}.pv-action-head{display:flex;align-items:center;gap:8px;padding:9px 10px;border-bottom:1px solid var(--line);background:var(--surface-2)}.pv-action-head strong{flex:1}.pv-action-body{padding:8px;overflow:auto;min-height:0}.pv-action-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 8px;border:1px solid var(--line);border-radius:7px;margin-bottom:6px;cursor:pointer}.pv-action-item:hover{border-color:var(--accent);background:var(--accent-soft)}.pv-action-item .sub{font-size:10.5px;color:var(--muted);margin-top:2px}.pv-diff{font-family:var(--mono);font-size:11px;white-space:pre-wrap}.pv-diff-line{padding:2px 5px;border-radius:3px;margin:1px 0}.pv-diff-line.add{background:color-mix(in srgb,#28b463 18%,var(--surface))}.pv-diff-line.del{background:color-mix(in srgb,#e74c3c 18%,var(--surface))}.pv-diff-line.same{color:var(--muted)}
.pv-quickinfo{position:fixed;z-index:100;min-width:min(420px,calc(100vw - 32px));max-width:min(640px,calc(100vw - 32px));padding:10px 12px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);box-shadow:var(--shadow);font-size:11.5px;line-height:1.5;pointer-events:none;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.pv-quickinfo b,.pv-quickinfo div{white-space:normal;overflow-wrap:anywhere;word-break:break-word}.pv-quickinfo[hidden]{display:none!important}.pv-iconbtn{min-width:30px;font-size:15px}.doc .nav{flex-wrap:wrap;justify-content:flex-end}.sheet .doc{position:relative}
@media (max-width:1500px){.pv-code-workspace{--pv-minimap-w:108px}.pv-code-workspace.split{--pv-minimap-w:96px}.doc .nav .btn{padding-left:7px;padding-right:7px;font-size:11px}}


/* Code Viewer: resizable standard-width panel. The original 900px width remains the minimum. */
.sheet:not(.fullscreen) .doc{
  width:var(--pv-doc-width,75vw);
  min-width:min(900px,95vw);
  max-width:calc(100vw - 24px);
}
.pv-resizer{
  position:absolute;
  z-index:20;
  left:-5px;
  top:0;
  bottom:0;
  width:10px;
  cursor:ew-resize;
  touch-action:none;
  background:transparent;
  outline:none;
}
.pv-resizer::after{
  content:"";
  position:absolute;
  left:4px;
  top:0;
  bottom:0;
  width:2px;
  background:var(--accent);
  opacity:0;
  transition:opacity .14s ease;
}
.pv-resizer:hover::after,.pv-resizer:focus-visible::after,.sheet.pv-resizing .pv-resizer::after{opacity:.85}
.sheet.fullscreen .pv-resizer{display:none}
.sheet.pv-resizing,.sheet.pv-resizing *{cursor:ew-resize!important;user-select:none!important}

/* Code Viewer layout/outline selection fixes */
.doc header{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:start;
  gap:10px;
}
.doc header>.nav{
  width:100%;
  margin-left:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
}
.doc header>.nav .btn,
.doc header>.nav .kbd{flex:0 0 auto}
@media (max-width:1500px){
  .doc header{padding:12px 14px}
  .doc header>.nav{gap:5px}
  .doc header>.nav .btn{padding:5px 7px;font-size:10.5px}
  .doc header>.nav .kbd{font-size:10px}
}
.pv-outline-item{position:relative;padding-left:4px}
.pv-outline-item .selmark{
  flex:0 0 10px;
  width:10px;
  opacity:0;
  color:var(--accent);
  font-size:14px;
  font-weight:900;
  line-height:1;
  transform:translateX(-2px);
}
.pv-outline-item.on .selmark{opacity:1}
.pv-outline-item.on{
  box-shadow:inset 3px 0 0 var(--accent);
  font-weight:700;
}

/* Code Viewer: exact symbol highlight when navigating from symbol lists/outline */
.pv-symbol-highlight{background:var(--hit);border-radius:3px;padding:0 1px;box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent);font-weight:700}

/* v14: when Code Viewer is active, the application underneath is completely inert to mouse/pointer input. */
body.code-viewer-open .app{pointer-events:none!important}
body.code-viewer-open .result-minimap{pointer-events:none!important}
\n\n/* ================= v15 UI / Code Viewer changes ================= */
/* Search result dot-strip removed. */
.result-minimap{display:none!important}

/* Code Viewer close control: fixed visual anchor in the upper-right corner. */
.pv-close-x{
  position:absolute;z-index:40;top:9px;right:10px;
  width:30px;height:30px;padding:0;border:1px solid var(--line-strong);border-radius:7px;
  display:grid;place-items:center;background:var(--surface-2);color:var(--ink);
  font:700 22px/1 var(--sans);cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.12)
}
.pv-close-x:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}
.pv-close-x:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.doc header{padding-right:52px!important}

/* Make the symbol-category chip bar clearly distinct from the code area. */
.pvtabs{
  background:color-mix(in srgb,var(--accent) 16%,var(--surface-2));
  border-bottom:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));
  box-shadow:inset 0 1px 0 color-mix(in srgb,var(--accent) 12%,transparent);
}
.pvtab{
  background:color-mix(in srgb,var(--surface) 88%,var(--accent) 12%);
  border-color:color-mix(in srgb,var(--accent) 28%,var(--line));
  color:var(--ink);
}
.pvtab:hover{background:color-mix(in srgb,var(--accent) 20%,var(--surface));border-color:var(--accent)}
.pvtab.on{
  background:var(--accent);border-color:var(--accent);color:var(--accent-text);
  box-shadow:0 1px 5px color-mix(in srgb,var(--accent) 35%,transparent);
}
.pvtab.on .n{color:inherit;opacity:.9}


/* v16 — Search quick extension filter, compact results, project/solution membership */
.quick-ext-filter,.compact-results-toggle{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.quick-ext-filter select{min-width:82px;max-width:140px}
.compact-results-toggle input{margin:0}
.membership-summary{display:inline-flex;align-items:center;gap:5px;min-width:0;flex-wrap:wrap}
.membership-chip{display:inline-flex;align-items:center;width:max-content;max-width:none;flex:0 0 auto;padding:2px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);font:600 11px/1.45 var(--mono);white-space:nowrap;overflow:visible;text-overflow:clip;color:var(--muted)}
.membership-chip.project{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));color:var(--accent-ink)}
.membership-chip.solution{border-color:color-mix(in srgb,var(--k-new) 42%,var(--line));color:var(--k-new)}
.membership-chip.none{opacity:.72}
.membership-details{border:1px solid var(--line-strong);background:var(--surface-2);border-radius:5px;padding:2px 7px;font:600 11px/1.5 var(--sans);cursor:pointer}
.membership-details:hover{border-color:var(--accent);color:var(--accent-ink)}
.membership-back{z-index:12000}
.membership-dialog{width:min(720px,calc(100vw - 48px));max-height:min(76vh,720px);display:flex;flex-direction:column;position:relative}
.membership-dialog .dlg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-right:42px}
.membership-body{overflow:auto;padding:2px 2px 8px}
.membership-section+ .membership-section{margin-top:18px}
.membership-section h3{margin:0 0 8px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.membership-entry{display:flex;flex-direction:column;gap:2px;padding:9px 11px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);margin-bottom:6px}
.membership-entry span{font:12px var(--mono);color:var(--muted);overflow-wrap:anywhere}


/* v22 — split view only occupies space while active; controls live in the main Code Viewer toolbar. */
.pv-split-pane[hidden]{display:none!important}
.pv-toolbar-split-select{max-width:180px;min-width:110px;height:30px;padding:3px 28px 3px 8px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink)}
.pv-toolbar-split-select[hidden]{display:none!important}
#pvSplit.on{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent)}
.pv-split-pane{min-width:0;border-left:1px solid var(--line);display:flex;flex-direction:column;background:var(--surface)}
.pv-split-body{flex:1;min-height:0}

.pv-minimap-toggle{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:11px;color:var(--muted);cursor:pointer;user-select:none}.pv-minimap-toggle input{margin:0;cursor:pointer}.pv-minimap-toggle:hover{color:var(--ink)}

/* ================= v25 Code Viewer corner controls ================= */
/* Keep Minimap + Expand immediately to the left of the anchored Close button. */
.pv-corner-tools{
  position:absolute;
  z-index:39;
  top:9px;
  right:48px;
  height:30px;
  display:flex;
  align-items:center;
  gap:7px;
}
.pv-corner-tools .pv-minimap-toggle{
  height:30px;
  padding:0 8px;
  border:1px solid var(--line-strong);
  border-radius:7px;
  background:var(--surface-2);
}
.pv-corner-tools .pv-expand{
  width:32px;
  height:30px;
  min-width:32px;
  padding:0;
  display:grid;
  place-items:center;
}
/* Reserve the upper-right area so long headers cannot sit underneath these controls. */
.doc header{padding-right:190px!important}


/* v26 — Code Viewer Usings / Includes */
.pv-import-row{display:grid;grid-template-columns:auto minmax(180px,1fr) auto 44px auto auto;gap:8px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--row-line);min-height:46px}
.pv-import-row:hover{background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.pv-import-main{min-width:0;display:flex;flex-direction:column;gap:2px}.pv-import-main .nm{font-weight:700;overflow-wrap:anywhere}.pv-import-main .sig{font-family:var(--mono);font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv-import-status{font-size:11px;font-weight:700;border:1px solid var(--line-strong);border-radius:999px;padding:2px 7px;white-space:nowrap}.pv-import-status.external{color:var(--warn);background:color-mix(in srgb,var(--warn) 10%,var(--surface))}.pv-import-status.internal{color:var(--accent-ink);background:var(--accent-soft)}
.import-kb{display:inline-flex;align-items:center;justify-content:center;min-width:64px;width:auto;max-width:110px;height:22px;padding:0 8px;border-radius:5px;background:color-mix(in srgb,var(--k-import) 18%,var(--surface));color:var(--k-import);font-family:var(--mono);font-size:10px;font-weight:800;letter-spacing:.04em;white-space:nowrap}
.pv-import-row .btn{padding:5px 8px;white-space:nowrap}


/* v27 — richer Choose definition results in Code Viewer */
.pv-definition-item{align-items:center;gap:14px;padding:11px 12px;min-height:76px}
.pv-definition-item .pv-def-main{min-width:0;flex:1}
.pv-def-title{font-weight:800;font-size:13.5px;line-height:1.25;color:var(--ink);margin-bottom:5px;word-break:break-word}
.pv-def-file{display:flex;align-items:center;gap:8px;min-width:0;font-size:12px;line-height:1.3}
.pv-def-file b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.pv-def-file span{flex:none;color:var(--muted);font-family:var(--mono)}
.pv-def-path{margin-top:3px;color:var(--muted);font:11px/1.35 var(--mono);white-space:normal;overflow-wrap:anywhere}
.pv-def-bases{margin-top:4px;color:var(--muted);font-size:11.5px;white-space:normal;overflow-wrap:anywhere}
.pv-def-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}
.pv-def-chip{display:inline-flex;align-items:center;max-width:100%;padding:2px 6px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface-2);color:var(--muted);font:10.5px/1.35 var(--mono);overflow-wrap:anywhere}
.pv-def-chip.kind{color:var(--accent-ink);border-color:var(--accent);background:var(--accent-soft);font-weight:750;text-transform:capitalize}
.pv-def-chip.current{color:var(--ink);font-weight:750}
.pv-def-open{flex:none;font-size:20px;color:var(--accent-ink)}


/* v29 — richer methods/functions list + namespaces */
.pv-call-group{border-bottom:1px solid var(--row-line);background:color-mix(in srgb,var(--surface) 96%,var(--accent))}
.pv-call-group:last-child{border-bottom:0}
.pv-call-head{border-bottom:1px dashed color-mix(in srgb,var(--line) 72%,transparent);background:color-mix(in srgb,var(--accent) 5%,var(--surface));font-weight:650}
.pv-call-subrow{display:grid;grid-template-columns:28px 66px minmax(0,1fr) 52px;gap:8px;align-items:center;padding:5px 12px 5px 42px;min-height:30px;border-top:1px solid color-mix(in srgb,var(--row-line) 65%,transparent);cursor:pointer;font-family:var(--mono);font-size:11.5px}
.pv-call-subrow:hover{background:color-mix(in srgb,var(--accent) 9%,var(--surface))}
.pv-call-subrow.pv-call-none{cursor:default}
.pv-call-subrow.pv-call-none:hover{background:transparent}
.pv-call-tree{color:var(--muted);text-align:right;user-select:none}
.pv-call-badge{display:inline-flex;align-items:center;justify-content:center;justify-self:start;border:1px solid var(--line-strong);border-radius:999px;padding:1px 6px;font-size:9px;font-weight:800;letter-spacing:.04em;line-height:1.5}
.pv-call-badge.def{color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 16%,var(--surface))}
.pv-call-badge.call{color:var(--k-call);background:color-mix(in srgb,var(--k-call) 13%,var(--surface))}
.pv-call-badge.muted{color:var(--muted);background:var(--surface-2)}
.pv-call-code{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.pv-call-subrow .no{color:var(--muted);text-align:right;font-size:10.5px}
.pv-ns-kb{background:color-mix(in srgb,var(--accent) 18%,var(--surface));color:var(--accent-ink)!important;font-weight:800}
.pv-namespace-row .sig{white-space:normal;overflow-wrap:anywhere}


/* v31 — Search membership chips fit their complete labels. */
.card .head{overflow:visible}
.card .head>h3{flex:0 0 auto}


/* v43 — guaranteed readable semantic highlights in every theme.
   JS computes the visible composited background and forces whichever of pure
   black/white has the higher WCAG contrast. Keep glyphs heavy and crisp. */
mark[data-auto-contrast]{font-weight:850!important;text-decoration:none!important;text-shadow:none!important}
mark[data-auto-contrast]::selection{background:currentColor}


/* v49 — optional uniform Search highlight mode.
   When semantic highlighting is disabled every occurrence kind uses the same
   theme-specific --hit background; JS recalculates WCAG black/white foreground. */
html.search-highlight-uniform mark[data-k]{background:var(--hit)!important;}
.highlight-type-toggle{white-space:nowrap;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.highlight-type-toggle input{cursor:pointer}

/* v50 — multi-repository workspace */
.repo-manager-back{position:fixed;inset:0;z-index:9200;background:rgba(0,0,0,.56);display:none;align-items:center;justify-content:center;padding:28px}
.repo-manager-back.on{display:flex}
.repo-manager-dialog{position:relative;width:min(900px,94vw);max-height:86vh;overflow:auto;background:var(--surface);border:1px solid var(--line-strong);border-radius:14px;box-shadow:var(--shadow);padding:20px 20px 20px}
.repo-manager-head,.repo-manager-actions,.repo-row{display:flex;align-items:center;gap:10px}.repo-manager-head{justify-content:space-between;padding-right:44px}.repo-manager-help{color:var(--muted);max-width:760px}
.repo-manager-x{position:absolute!important;top:10px;right:10px;width:38px!important;height:38px!important;min-width:38px!important;padding:0!important;border-radius:9px!important;font-size:24px!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important;z-index:2}
.repo-manager-list{display:grid;gap:10px;margin:16px 0}.repo-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(260px,2fr) 64px auto;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.repo-row input[type="text"]{width:100%;min-width:0}.repo-row .repo-path{overflow-wrap:anywhere;color:var(--muted);font-family:var(--mono);font-size:12px}.repo-row input[type="color"]{width:52px;height:34px;padding:2px;cursor:pointer}.repo-row.invalid{outline:2px solid var(--warn)}
.repo-chip{display:inline-flex;align-items:center;max-width:220px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:400;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid color-mix(in srgb,currentColor 32%,transparent)}
.quick-repo-filter select{min-width:110px;max-width:180px}
.trk .repo-chip,.history-item .repo-chip,.ins-row .repo-chip{margin-left:6px}

/* v51 repository chips and repository manager polish */
.card .head>.repo-chip{margin-left:12px;margin-right:2px}
.pv-title-block{min-width:0}
.pv-title-line{display:flex;align-items:center;gap:12px;min-width:0}
.pv-title-line h2{margin:0;min-width:0}
.pv-repo-chip-slot{display:inline-flex;align-items:center;flex:0 0 auto}
.pv-repo-chip-slot:empty{display:none}
.pv-repo-chip-slot .repo-chip{margin:0}

/* v53 — Git repository chip spacing + grouped History */
.ins-section>header h3>.repo-chip{margin-left:2px;vertical-align:middle}
.history-list{display:grid;gap:14px;align-content:start}
.history-group{display:grid;gap:7px;min-width:0}
.history-group-head{display:flex;align-items:center;gap:8px;padding:2px 3px 4px;border-bottom:1px solid var(--line);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.history-group-count{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:19px;padding:0 6px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);font-size:10px;letter-spacing:0;color:var(--ink)}
.history-group-items{display:grid;gap:8px}
.history-title>.repo-chip{margin-left:10px;vertical-align:middle}

/* v56 — Git chip-only heading: keep a small inset without the old duplicate-title spacing. */
#insGit .ins-section>header h3>.repo-chip{margin-left:2px;margin-right:0}


/* v57 — Connections tree header + modal isolation */
.graph-tree-pane{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--line)}
.graph-tree-pane .tree{flex:1 1 auto;border-right:0;padding-top:6px}
.graph-tree-head{flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title actions" "chips chips";gap:6px 8px;padding:9px 10px 8px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.graph-tree-head-title{grid-area:title;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);align-self:center}
.graph-tree-actions{grid-area:actions;display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.graph-tree-actions .btn{min-width:30px;padding:3px 7px;font-size:11px}
.graph-tree-actions .graph-tree-sort.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-soft-text,var(--accent-ink))}
.graph-tree-chips-toggle{grid-area:chips;display:inline-flex;align-items:center;gap:6px;width:max-content;font-size:11.5px;color:var(--muted);cursor:pointer}
.graph-tree-chips-toggle input{cursor:pointer}
.tree .tnode{display:flex;align-items:center;gap:6px;min-width:0}
.tree .tnode .repo-chip{flex:none;font-weight:400;margin:0 2px 0 0}
.tree .tree-node-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tree .tnode.ns .repo-chip{margin-left:1px;margin-right:4px}

/* All modal backdrops are interaction shields, not decorative layers. */
.dlg-back.on,.qbuilder-back.on,.overlay.on,.sheet.on{pointer-events:auto!important}
body.modal-layer-open .app{pointer-events:none!important;user-select:none}
/* A validation/confirmation dialog opened from the repository manager must sit above it. */
.dlg-back:not(.repo-manager-back){z-index:10050}
.qbuilder-back{z-index:10020}
.overlay{z-index:10010}
.repo-manager-back{z-index:10000}
.sheet{z-index:9000}

/* v61 — graph structure repository-chip level + hierarchical filter */
.graph-tree-head{grid-template-areas:"title actions" "chips chips" "filter filter"}
.graph-tree-chip-level{grid-area:chips;display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-width:0;font-size:11.5px;color:var(--muted)}
.graph-tree-chip-level label{display:inline-flex;align-items:center;gap:5px;cursor:pointer;white-space:nowrap;color:var(--ink)}
.graph-tree-chip-level input[type="checkbox"]{cursor:pointer;margin:0}
.graph-tree-filter-wrap{grid-area:filter;position:relative;min-width:0;width:100%}
.graph-tree-filter{width:100%;height:30px;padding:4px 30px 4px 9px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);outline:none;font-size:12px}
.graph-tree-filter:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent)}
.graph-tree-filter::placeholder{color:var(--muted)}
.graph-tree-filter-clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:23px;height:23px;border:0;background:transparent;color:var(--muted);border-radius:4px;cursor:pointer;font-size:16px;line-height:1}
.graph-tree-filter-clear:hover{background:var(--surface-2);color:var(--ink)}
.graph-tree-filter-clear[hidden]{display:none}

.exact-word-toggle{display:inline-flex;align-items:center;gap:5px;cursor:pointer;white-space:nowrap}

/* v65 — Connections structure filter whole-word toggle */
.graph-tree-whole-word-toggle{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:7px;
  font-size:12px;
  color:var(--muted);
  cursor:pointer;
  user-select:none;
}
.graph-tree-whole-word-toggle input{cursor:pointer;margin:0}


/* v66 — filtered tree member context */
.graph-tree-filter-options{display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-width:0}
.graph-tree-whole-word-toggle,.graph-tree-siblings-toggle{display:inline-flex;align-items:center;gap:5px;cursor:pointer;font-size:11.5px;color:var(--ink);white-space:nowrap}
.graph-tree-whole-word-toggle input,.graph-tree-siblings-toggle input{cursor:pointer;margin:0}

/* v70 — consistent hand cursor for interactive controls.
   Text-entry fields and resize handles intentionally keep their semantic cursors. */
button,
select,
input[type="checkbox"],
input[type="radio"],
input[type="button"],
input[type="submit"],
input[type="reset"],
input[type="color"],
input[type="range"],
input[type="file"],
a[href],
summary,
label[for],
label:has(> input[type="checkbox"]),
label:has(> input[type="radio"]),
label:has(input[type="checkbox"]),
label:has(input[type="radio"]),
[role="button"],
[role="tab"],
[role="menuitem"],
[role="option"],
.clickable,
.chip,
.facet,
.trackbtn,
.tab,
.toolbtn,
.btn {
  cursor: pointer;
}

/* Disabled controls remain visibly non-interactive. */
button:disabled,
select:disabled,
input:disabled,
[aria-disabled="true"] {
  cursor: not-allowed;
}


/* v70 — History groups use a true two-column row-major layout.
   Order is Search | Code view, Graph node | Section. */
#historyBody.history-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-flow:row;
  column-gap:16px;
  row-gap:16px;
  align-items:start;
}
#historyBody .history-group{
  min-width:0;
  align-self:start;
}
#historyBody .history-empty{grid-column:1 / -1}
@media (max-width:1100px){
  #historyBody.history-list{grid-template-columns:1fr}
}

/* v71 — File types moved out of Options + modal backdrops always native 100% scale */
:root{--modal-counter-zoom:1}
/* Root UI zoom must never shrink or crop modal shields. Counter-zoom every modal
   layer so its fixed inset is measured at the native browser viewport scale. */
.dlg-back,.qbuilder-back,.overlay,.sheet{
  zoom:var(--modal-counter-zoom)!important;
}
.filetypes-back{z-index:10060}
.filetypes-dlg{
  width:min(780px,calc(100vw - 48px));
  max-width:min(780px,calc(100vw - 48px));
  max-height:calc(100vh - 48px);
  display:flex;
  flex-direction:column;
  position:relative;
}
.filetypes-dlg .dlg-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:4px}
.filetypes-dlg .dlg-head>div{min-width:0;flex:1}
.filetypes-x{font-size:24px;line-height:1;width:38px;height:38px;flex:none}
.filetypes-help,.options-filetypes-summary{margin:8px 0 14px;color:var(--muted);font-size:13px}
.filetypes-facets{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:4px 14px!important;
  min-height:0;
  max-height:min(58vh,560px)!important;
  overflow:auto!important;
  padding:4px 8px 4px 0;
}
.filetypes-actions{display:flex;align-items:center;gap:10px;margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
@media(max-width:900px){.filetypes-facets{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:560px){.filetypes-facets{grid-template-columns:1fr!important}}


/* v72 — History uses two columns only for All actions.
   Filtering to a specific type gives the visible group the full center width. */
#historyBody.history-list.history-filtered{
  grid-template-columns:minmax(0,1fr);
}
#historyBody.history-list.history-filtered .history-group{
  grid-column:1;
}


/* v73 — inheritance shortcut, hierarchy-aware tree siblings, repository impact chips,
   and full-screen 50/50 structural file comparison. */
.ins-impact-main{display:flex;align-items:flex-start;gap:9px;min-width:0;flex:1}
.ins-impact-copy{min-width:0;overflow-wrap:anywhere}
.ins-similar-row{gap:12px}
.ins-similar-files{min-width:0;overflow-wrap:anywhere}
.file-compare-back{z-index:10120!important;padding:10px!important;align-items:stretch!important;justify-content:stretch!important}
.file-compare-dialog{width:100%;height:100%;min-width:0;min-height:0;background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden;position:relative}
.file-compare-head{height:52px;flex:0 0 52px;display:flex;align-items:center;gap:12px;padding:7px 56px 7px 14px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.file-compare-head h2{font-size:15px;margin:1px 0 0}
.file-compare-score{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--muted)}
.file-compare-close{top:9px!important;right:10px!important}
.file-compare-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);flex:1;min-height:0}
.file-compare-pane{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--canvas)}
.file-compare-pane+ .file-compare-pane{border-left:2px solid var(--line-strong)}
.file-compare-pane>header{display:flex;align-items:center;gap:9px;flex-wrap:wrap;flex:0 0 auto;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--surface)}
.file-compare-name{font-weight:700}
.file-compare-path{width:100%;font:11px var(--mono);color:var(--muted);overflow-wrap:anywhere}
.file-compare-code{flex:1;min-height:0;overflow:auto;font-family:var(--mono);font-size:12px;background:var(--canvas)}
.file-compare-code .cl{display:grid;grid-template-columns:58px minmax(0,1fr);min-height:21px;border-bottom:1px solid color-mix(in srgb,var(--line) 36%,transparent)}
.file-compare-code .cl .n{padding:2px 10px 2px 4px;text-align:right;color:var(--muted);user-select:none}
.file-compare-code .cl .t{padding:2px 10px;white-space:pre;min-width:max-content}
@media(max-width:900px){.file-compare-grid{grid-template-columns:1fr}.file-compare-pane+ .file-compare-pane{border-left:0;border-top:2px solid var(--line-strong)}}

/* v74 — Search result two-file comparison */
.result-compare-btn{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:3px 10px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:500;cursor:pointer;margin-left:4px;white-space:nowrap}
.result-compare-btn:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-soft-text)}
.result-compare-btn.on{background:var(--accent);border-color:var(--accent);color:var(--accent-text);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 28%,transparent)}
.file-compare-dialog{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important}
.file-compare-pane{min-width:0}

/* v76 tracking layout */
.trk-head-title{margin-bottom:6px}.trk-head-actions{margin-bottom:10px;padding-top:8px;border-top:1px solid var(--line)}.trk-head-actions .trk-actions-spacer{flex:1}.trk-entry-row{margin-bottom:14px}
.tracking-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,38%);gap:20px;align-items:start;min-height:0}.tracking-items-column,.tracking-tags-column{min-width:0}
.tracking-tags-column{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;position:sticky;top:0;max-height:calc(100vh - 235px);overflow:auto}
.tracking-tags-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;position:sticky;top:-14px;z-index:8;margin:-14px -14px 10px;padding:14px 14px 10px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 8px 12px -14px rgba(0,0,0,.35)}.tracking-tags-help{font-size:11.5px;margin-top:2px}.tracking-tags-options{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}.tracking-tags-used{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:12px;color:var(--muted);cursor:pointer}.tracking-tags-used input{cursor:pointer}.tracking-tags-showall{white-space:nowrap}.tracking-tags-showall:disabled{opacity:.45;cursor:not-allowed}
.tracking-tags-column .tagbar{display:block;margin:0}.tag-family{margin:0 0 12px}.tag-family:last-child{margin-bottom:0}.tag-family-title{display:flex;align-items:center;justify-content:space-between;gap:8px;font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}.tag-family-description{font-size:11px;line-height:1.35;color:var(--muted);margin:-2px 0 7px;max-width:64ch}.tag-family-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.tag-family .tag{cursor:pointer}.tag-family .tag.off{opacity:.4}.tag-empty{color:var(--muted);font-size:12px;padding:7px 0}.tag{font-weight:600;text-shadow:0 1px 1px rgba(0,0,0,.12)}
@media(max-width:1100px){.tracking-grid{grid-template-columns:1fr}.tracking-tags-column{position:static;max-height:none}}


/* v77 — larger tag manager, similar to File Types */
.tag-manager-back{z-index:10070}
.tag-manager-dlg{
  width:min(820px,calc(100vw - 48px));
  max-width:min(820px,calc(100vw - 48px));
  max-height:calc(100vh - 48px);
  display:flex;
  flex-direction:column;
  position:relative;
}
.tag-manager-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:4px}
.tag-manager-head>div{min-width:0;flex:1}
.tag-manager-x{font-size:24px;line-height:1;width:38px;height:38px;flex:none}
.tag-manager-sub{margin:7px 0 12px;color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.tag-manager-list{max-height:none!important;min-height:220px;flex:1;overflow:auto;margin:0;padding:4px 8px 4px 0}
.tag-manager-create{flex:none;border-top:1px solid var(--line);margin-top:12px;padding-top:12px}
.tag-manager-create .tagnew{border-top:0;padding-top:0}
.tag-manager-actions{display:flex;align-items:center;gap:10px;flex:none;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.tag-manager-actions .grow{flex:1}
@media(max-width:650px){.tag-manager-dlg{width:calc(100vw - 24px);max-width:calc(100vw - 24px)}.tagrow{grid-template-columns:20px minmax(0,1fr) 34px}.tagrow .danger{grid-column:2 / -1;justify-self:end}}


/* v82 — Search result action buttons use the same rectangular style as Details. */
.card .head .trackbtn,
.card .head .result-compare-btn,
.card .head .membership-details{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:24px;margin-left:4px;padding:2px 7px;
  border:1px solid var(--line-strong);border-radius:5px;
  background:var(--surface-2);color:var(--ink);
  font:600 11px/1.5 var(--sans);white-space:nowrap;cursor:pointer;
  box-shadow:none;
}
.card .head .trackbtn:hover,
.card .head .result-compare-btn:hover,
.card .head .membership-details:hover{
  border-color:var(--accent);background:var(--accent-soft);color:var(--accent-soft-text,var(--accent-ink));
}
.card .head .trackbtn.on,
.card .head .result-compare-btn.on{
  background:var(--accent);border-color:var(--accent);color:var(--accent-text);box-shadow:none;
}


/* v84 unified file comparator: visible differences + synchronized scrolling */
.file-compare-controls{display:flex;align-items:center;gap:14px;margin-left:auto;flex-wrap:wrap}
.file-compare-check{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:12px;color:var(--ink);cursor:pointer}
.file-compare-check input{cursor:pointer}
.file-compare-head .file-compare-score{margin-left:0}
.file-compare-code .compare-row{grid-template-columns:52px 20px minmax(0,1fr)}
.file-compare-code .compare-row .diff-gutter{display:flex;align-items:center;justify-content:center;font-weight:800;user-select:none;border-right:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
.file-compare-code .compare-row.show-diff.add{background:color-mix(in srgb,#22c55e 18%,var(--canvas))}
.file-compare-code .compare-row.show-diff.del{background:color-mix(in srgb,#ef4444 18%,var(--canvas))}
.file-compare-code .compare-row.show-diff.mod{background:color-mix(in srgb,#f59e0b 20%,var(--canvas))}
.file-compare-code .compare-row.show-diff.add .diff-gutter{color:#0b7a34;background:color-mix(in srgb,#22c55e 30%,var(--surface))}
.file-compare-code .compare-row.show-diff.del .diff-gutter{color:#b91c1c;background:color-mix(in srgb,#ef4444 30%,var(--surface))}
.file-compare-code .compare-row.show-diff.mod .diff-gutter{color:#9a5a00;background:color-mix(in srgb,#f59e0b 32%,var(--surface))}
.file-compare-code .compare-row.empty-side .t{min-height:21px;display:block;background:color-mix(in srgb,var(--muted) 5%,transparent)}
.file-compare-inline-diff{padding:0 1px;border-radius:2px;background:color-mix(in srgb,#f59e0b 58%,var(--surface));color:inherit;font-weight:800}
.file-compare-back.hide-differences .compare-row{background:transparent!important}
.file-compare-back.hide-differences .diff-gutter{color:transparent!important;background:transparent!important}
@media(max-width:1000px){.file-compare-controls{gap:8px}.file-compare-head{height:auto;min-height:52px}.file-compare-check{font-size:11px}}


/* v86 — Search membership chips are a dedicated row above the file name. */
.membership-chips-toggle{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.membership-chips-toggle input{margin:0}
.card>.head .result-membership-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex-basis:100%;width:100%;min-width:0;margin:0 0 2px}
.card>.head .result-membership-row[hidden]{display:none!important}
.card>.head .result-membership-row .repo-chip,.card>.head .result-membership-row .membership-chip{margin:0}

/* v93 — unified modal backdrops (Code Viewer intentionally keeps its own sheet style) */
.dlg-back,.qbuilder-back,.overlay{
  background:color-mix(in srgb, var(--ink) 34%, transparent);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  padding:20px;
}

/* v95 query builder operator help */
.qb-op-help{font-size:12px;line-height:1.45;color:var(--muted);padding:2px 0 8px;min-height:26px}.qb-negate{display:inline-flex;align-items:center;gap:7px;cursor:pointer}.qb-negate input{cursor:pointer}

/* ================= HELP / USER GUIDE ================= */
.help-pane{padding:0;overflow:hidden;background:var(--canvas)}
.help-layout{height:100%;min-height:0;display:grid;grid-template-columns:270px minmax(0,1fr)}
.help-nav{min-width:0;overflow-y:auto;padding:22px 14px 28px;background:var(--surface);border-right:1px solid var(--line)}
.help-nav-head{padding:0 8px 16px;border-bottom:1px solid var(--line);margin-bottom:10px}
.help-nav-head strong{display:block;margin-top:5px;font-size:18px;line-height:1.25;color:var(--ink)}
.help-nav-head p{margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.help-nav-links{display:flex;flex-direction:column;gap:2px}
.help-nav-link{width:100%;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--ink);padding:8px 10px;text-align:left;font-size:12.5px;line-height:1.25;cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease}
.help-nav-link:hover{background:var(--surface-2);border-color:var(--line)}
.help-nav-link.on{background:var(--accent-soft);border-color:var(--accent);color:var(--ink);font-weight:700}
.help-content{min-width:0;min-height:0;overflow-y:auto;scroll-behavior:smooth;padding:28px clamp(24px,3vw,54px) 80px}
.help-section{max-width:1180px;margin:0 auto 18px;padding:24px 28px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);scroll-margin-top:18px;color:var(--ink)}
.help-hero{padding:30px 32px}
.help-section h2,.help-section h3,.help-section h4{color:var(--ink)}
.help-section h2{margin:6px 0 10px;font-size:27px;letter-spacing:-.025em}
.help-section h3{margin:0 0 12px;font-size:20px;letter-spacing:-.015em;border-bottom:1px solid var(--line);padding-bottom:10px}
.help-section h4{margin:15px 0 7px;font-size:14px}
.help-section p{margin:9px 0;color:var(--ink);line-height:1.68}
.help-section ul,.help-section ol{margin:9px 0 6px;padding-left:22px;color:var(--ink)}
.help-section li{margin:6px 0;line-height:1.58}
.help-steps{counter-reset:help-step;list-style:none!important;padding-left:0!important;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px}
.help-steps li{position:relative;margin:0;padding:10px 12px 10px 42px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);min-height:48px}
.help-steps li::before{counter-increment:help-step;content:counter(help-step);position:absolute;left:11px;top:10px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:var(--accent-text,#fff);font-family:var(--mono);font-weight:800;font-size:11px}
.help-callout,.help-note,.help-warning{margin-top:16px;padding:12px 14px;border:1px solid var(--line-strong);border-left:4px solid var(--accent);border-radius:var(--r-sm);background:var(--accent-soft);color:var(--ink);line-height:1.6}
.help-note{background:var(--surface-2);border-left-color:var(--graph-selected)}
.help-warning{background:var(--surface-2);border-left-color:var(--warn)}
.help-grid{display:grid;gap:12px;margin-top:12px}
.help-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.help-subcard{min-width:0;padding:13px 15px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2)}
.help-subcard h4{margin:0 0 7px;color:var(--ink)}
.help-subcard p{margin:0;color:var(--ink)}
.help-subcard ul{margin:0;padding-left:19px}
.help-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;margin:12px 0 16px}
.help-filter-grid>div{padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2)}
.help-filter-grid h4{margin:0 0 5px}
.help-filter-grid p{margin:0;font-size:12.5px;line-height:1.58}
.help-table-wrap{overflow-x:auto;margin:12px 0}
.help-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--surface)}
.help-table th,.help-table td{padding:9px 11px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);border-right:1px solid var(--line);color:var(--ink);line-height:1.5}
.help-table th{background:var(--surface-2);font-size:12px;font-weight:750}
.help-table td{font-size:12.5px}
.help-table tr:last-child td{border-bottom:0}
.help-table th:last-child,.help-table td:last-child{border-right:0}
.help-code{display:inline-block;padding:2px 6px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface-2);color:var(--ink);font-family:var(--mono);font-size:11.5px;white-space:nowrap}
[data-theme="contrast"] .help-section,[data-theme="contrast"] .help-subcard,[data-theme="contrast"] .help-filter-grid>div,[data-theme="contrast"] .help-table{box-shadow:none}
[data-theme="contrast"] .help-nav-link.on{border-width:2px}
@media(max-width:1450px){.help-layout{grid-template-columns:235px minmax(0,1fr)}.help-content{padding-left:24px;padding-right:24px}.help-section{padding:22px 24px}}


/* ---- first-run welcome / language / EULA ------------------------------------
   Uses only theme palette variables so the legal text and controls remain
   readable across every dark, light, vibrant, colour and high-contrast theme. */
.topbrand-reset{cursor:pointer;border-radius:5px;padding:4px 5px;margin-left:-5px;transition:background .14s ease,color .14s ease}
.topbrand-reset:hover{background:var(--surface-2)}
.topbrand-reset:active{transform:translateY(1px)}
.welcome-gate{
  position:fixed;inset:0;z-index:2147483646;display:none;align-items:center;justify-content:center;
  padding:28px;background:color-mix(in srgb,var(--canvas) 78%,transparent);backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);zoom:var(--modal-counter-zoom,1)!important;overflow:auto;
}
.welcome-gate.on{display:flex}
.welcome-dialog{
  width:min(820px,calc(100vw - 48px));max-height:calc(100vh - 48px);display:flex;flex-direction:column;min-height:0;
  background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:12px;
  box-shadow:0 24px 70px rgba(0,0,0,.30);overflow:hidden;
}
.welcome-head{padding:24px 26px 16px;border-bottom:1px solid var(--line);background:var(--surface)}
.welcome-brand{font-weight:850;font-size:13px;letter-spacing:.06em;margin-bottom:10px}.welcome-brand span{color:var(--accent)}
.welcome-step{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);margin-bottom:4px}
.welcome-head h1{font-size:22px;line-height:1.2;margin:0;color:var(--ink)}
.welcome-head p{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.55}
.welcome-language-row{display:grid;grid-template-columns:160px minmax(0,1fr);align-items:center;gap:16px;padding:15px 26px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.welcome-language-row label{font-weight:650;color:var(--ink)}
.welcome-language-row select{width:100%;min-width:0;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:8px 10px;color:var(--ink)}
.welcome-eula{display:flex;flex-direction:column;min-height:0;padding:18px 26px 0}
.welcome-eula-head{flex:none}.welcome-eula-head h2{font-size:16px;margin:4px 0 4px;color:var(--ink)}
.welcome-eula-head p{font-size:12px;color:var(--muted);margin:0 0 12px}
.welcome-eula-scroll{min-height:160px;max-height:330px;overflow:auto;padding:16px 18px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink);font-size:12.5px;line-height:1.58;overscroll-behavior:contain}
.welcome-eula-scroll p{margin:0 0 14px}.welcome-eula-scroll p:last-child{margin-bottom:0}
.welcome-actions{display:flex;align-items:center;gap:18px;padding:18px 26px 22px;background:var(--surface);border-top:0}
.welcome-accept-check{display:flex;align-items:flex-start;gap:9px;flex:1;min-width:0;cursor:pointer;font-size:12.5px;line-height:1.45;color:var(--ink)}
.welcome-accept-check input{margin-top:2px;flex:none}
.welcome-accept{flex:none;min-width:150px}
body.welcome-open .app{pointer-events:none;user-select:none}
[data-theme="contrast"] .welcome-dialog{box-shadow:0 0 0 2px #fff,0 20px 70px #000}
[data-theme="contrast"] .welcome-eula-scroll{border-width:2px}
@media(max-width:720px){
  .welcome-gate{padding:12px}.welcome-dialog{width:100%;max-height:calc(100vh - 24px)}
  .welcome-head,.welcome-language-row,.welcome-eula,.welcome-actions{padding-left:17px;padding-right:17px}
  .welcome-language-row{grid-template-columns:1fr;gap:6px}.welcome-actions{align-items:stretch;flex-direction:column}.welcome-accept{width:100%}
}
