/* Shared by the app and the static pages (about, terms, privacy, 404): fonts + theme tokens. data-theme is set by theme.js before first paint */
/* IBM Plex (OFL 1.1, /fonts/IBMPlex-OFL.txt): the UI font; Plex Serif Italic only for field notes in the light theme (loads only when one shows). Outfit SemiBold (OFL 1.1, /fonts/Outfit-OFL.txt): only the wordmark */
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url("/fonts/IBMPlexSans-Var.woff2") format("woff2");ascent-override:100%;descent-override:27.8%;line-gap-override:0%}@font-face{font-family:"IBM Plex Sans Condensed";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/IBMPlexSansCondensed-SemiBold.woff2") format("woff2");ascent-override:100%;descent-override:27.8%;line-gap-override:0%}/* Plex Sans: ascent/descent overrides put the line-box centre on the cap-height centre (native 1025/275 sits ~0.026em low); 27.8% rather than 30% keeps every rounded line box at 10-19.5px the same height as before */
@font-face{font-family:"IBM Plex Serif";font-style:italic;font-weight:400;font-display:swap;src:url("/fonts/IBMPlexSerif-Italic.woff2") format("woff2")}
@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/Outfit-SemiBold.woff2") format("woff2"),url("/fonts/Outfit-SemiBold.ttf") format("truetype")}
[hidden]{display:none!important}   /* the hidden attribute always wins over author display rules (one rule for every page and component) */
/* theme tokens: :root = dark glass (today's look); [data-theme=light] = field-guide paper. --grain = the light theme's paper texture on panels (a tiny SVG noise tile, none in dark); --fam-* = the 4 layer-family colours (preset defaults); --accent = the curiosities one (tentative magenta); --route = the route tool (line, active buttons), --route-tx its on-text, --route-ink text on a solid --route button */
:root{--font:"IBM Plex Sans",system-ui,sans-serif;--font-note:var(--font);--font-cond:"IBM Plex Sans Condensed","IBM Plex Sans",system-ui,sans-serif;--compass-ink:#E2E8F0;--compass-disc:rgba(27,34,45,.86);--bg:rgba(27,34,45,.82);--bg-solid:rgba(27,34,45,.95);--bg2:rgba(15,23,42,.38);--field:var(--bg2);--line:rgba(148,163,184,.16);--line2:rgba(148,163,184,.28);--tx0:#f1f5f9;--tx:#e2e8f0;--tx1:#cbd5e1;--tx2:#94a3b8;--tx3:#64748b;--head:#93c5fd;--acc:#7dd3fc;--acc-tx:#e0f2fe;--acc-ink:#0f172a;--accent:#F27AD3;--fam-land:#6EDB8F;--fam-route:#F59266;--fam-camp:#7DD3FC;--fam-curio:var(--accent);--route:#22d3ee;--route-tx:#cffafe;--route-ink:#062a33;--danger:#fca5a5;--danger-c:#f87171;--warn:#fcd34d;--warn2:#fde68a;--warn-c:#fbbf24;--sug:#c4b5fd;--ok:#86efac;--slate:#94a3b8;--inset:#0f172a;--page:#1f2733;--attr-bg:rgba(28,36,48,.6);--attr-tx:#7b8798;--shadow:0 10px 32px rgba(0,0,0,.32);--r:12px;--scheme:dark;--grain:none}
:root[data-theme=light]{--font-note:"IBM Plex Serif",Georgia,serif;--compass-ink:#3B3428;--compass-disc:#FBF8F1;--bg:#FBF8F1;--bg-solid:#FBF8F1;--bg2:#F3EDE1;--field:#FFFDF8;--line:#E4DAC6;--line2:#C9BB9F;--tx0:#1E1B16;--tx:#29251E;--tx1:#3E372C;--tx2:#5E5545;--tx3:#6E6455;--head:#3E372C;--acc:#4F46E5;--acc-tx:#3730A3;--acc-ink:#fff;--accent:#A3367F;--fam-land:#3F7A4A;--fam-route:#B4532A;--fam-camp:#2C6A93;--route:#0891b2;--route-tx:#155e75;--danger:#B42318;--danger-c:#D92D20;--warn:#8A5A00;--warn2:#7A4E00;--warn-c:#D99A1E;--sug:#5B3FB0;--ok:#2B7043;--slate:#8A7A5E;--inset:#D9CFBB;--page:#F3EBDD;--attr-bg:rgba(251,248,241,.85);--attr-tx:#5E5545;--shadow:0 1px 2px rgba(58,44,20,.16),0 8px 24px -6px rgba(58,44,20,.22);--scheme:light;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .27 0 0 0 0 .15 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E")}
/* BM-385 Halloween seasonal theme (Designer, brand-mockups/themes/halloween/tokens.json): only token values; every other rule is the dark theme's */
:root[data-theme=halloween]{--compass-ink:#EEE7F8;--bg:rgba(23,15,34,.88);--bg-solid:rgba(23,15,34,.96);--bg2:rgba(8,5,13,.45);--line:rgba(183,148,246,.16);--line2:rgba(183,148,246,.30);--tx0:#FBF7FF;--tx:#EEE7F8;--tx1:#D7CCE8;--tx2:#AE9FC4;--tx3:#8E80A4;--head:#C9B0FF;--acc:#FF9F43;--acc-tx:#FFC58A;--acc-ink:#1A0E04;--accent:#C99BFF;--fam-land:#7CFFB2;--fam-route:#FF9F43;--fam-camp:#86C5FF;--danger:#FF8A8A;--danger-c:#F25C5C;--warn:#FFD166;--warn2:#FFE29A;--warn-c:#F5B83D;--sug:#C9B0FF;--ok:#7CFFB2;--slate:#AE9FC4;--inset:#08050D;--page:#0A0710;--attr-bg:rgba(20,12,30,.65);--attr-tx:#8E80A4;--shadow:0 10px 32px rgba(0,0,0,.45)}
/* Site-wide scrollbars (Chuck 2026-10-22): every scrollable area (lists, menus, dialogs, Account settings, the quick panel, popups, the public viewer,
   the static pages and the page itself) gets the main panel's thin themed thumb (BM-447: --tx2 at 55%, 80% on hover, rounded, no track) from
   theme tokens, so light, dark and Halloween follow. Mouse and trackpad only: phones keep their native overlay scrolling untouched.
   The side panel keeps its own overlay thumb (.pbody hides the native one). Firefox: scrollbar-width/-color; WebKit/Blink: ::-webkit-scrollbar
   (Chromium ignores those once scrollbar-color is set, so the standard pair is for engines without the WebKit pseudo-elements) */
:root{--sb-thumb:color-mix(in srgb,var(--tx2) 55%,transparent);--sb-thumb-h:color-mix(in srgb,var(--tx2) 80%,transparent)}
@media (hover:hover) and (pointer:fine){
  @supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:var(--sb-thumb) transparent}}
  ::-webkit-scrollbar{width:9px;height:9px;background:transparent}
  ::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}
  ::-webkit-scrollbar-thumb{background:var(--sb-thumb);background-clip:padding-box;border:2px solid transparent;border-radius:6px;min-height:28px}
  ::-webkit-scrollbar-thumb:hover,::-webkit-scrollbar-thumb:active{background:var(--sb-thumb-h);background-clip:padding-box}
  ::-webkit-scrollbar-button{display:none;width:0;height:0}
}
/* t1286u: the pinned popup close × (theme.js): fixed, centred on the card's top-right corner (half outside), clamped on screen; 44px tap target, 30px visible disc in the
   theme's solid panel colour with a hairline and a soft shadow so it reads over the card edge and the backdrop alike. !important beats each dialog's own .x sizing */
.bm-xpin,.bm-xmate.bm-xm-on{position:fixed!important;right:auto!important;bottom:auto!important;z-index:5!important;box-sizing:border-box!important;width:44px!important;height:44px!important;min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;background:transparent!important;box-shadow:none!important;display:grid!important;place-items:center!important;color:var(--tx,currentColor)!important;cursor:pointer;flex:none!important;isolation:isolate;-webkit-tap-highlight-color:transparent;transform:none!important;outline:none}
.bm-xpin::before,.bm-xmate.bm-xm-on::before{content:"";position:absolute;inset:7px;z-index:-1;border-radius:50%;background:var(--bg-solid,var(--bg2,var(--bg,#fff)));border:1px solid var(--line2,var(--line,rgba(127,127,127,.45)));box-shadow:0 2px 8px rgba(0,0,0,.28)}
:root[data-theme=dark] .bm-xpin::before,:root[data-theme=halloween] .bm-xpin::before,:root[data-theme=dark] .bm-xmate.bm-xm-on::before,:root[data-theme=halloween] .bm-xmate.bm-xm-on::before{box-shadow:0 2px 10px rgba(0,0,0,.55)}
.bm-xpin:hover::before,.bm-xmate.bm-xm-on:hover::before{background:color-mix(in srgb,var(--bg-solid,#fff) 82%,var(--tx,#000) 18%)}
.bm-xpin:focus-visible::before,.bm-xmate.bm-xm-on:focus-visible::before{outline:2px solid var(--acc,#0284c7);outline-offset:1px}
.bm-xmate[hidden]{display:none!important}.bm-xmate:not(.bm-xm-on):has(+ .bm-xpin){visibility:hidden}   /* until it rides beside its pinned × (no flash in the toolbar) */
@media (max-width:640px){.dkb.bm-xmate{display:none!important}}   /* Lab docks are desktop only */
.bm-xpin-host{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
/* t1300u: plan pill (account menu next to Membership, Account settings plan line). Pro solid accent, Basic accent tint, Free neutral outline */
.plan-pill{display:inline-block;padding:1px 9px;border-radius:999px;border:1px solid transparent;font:600 11.5px/18px var(--font);letter-spacing:.01em;white-space:nowrap;vertical-align:1px}.plan-pill.pro{background:var(--acc);color:var(--acc-ink);border-color:var(--acc)}.plan-pill.basic{background:color-mix(in srgb,var(--acc) 16%,transparent);color:var(--acc-tx);border-color:color-mix(in srgb,var(--acc) 45%,transparent)}.plan-pill.free{background:transparent;color:var(--tx2);border-color:var(--line2)}
