/* AUTO-GENERATED by csp_style_transform.py — CSP style-src unsafe-inline removal.
   Each class below is the exact declaration set that used to live in a
   style="..." attribute; the .X.X repetition adds specificity roughly
   equivalent to what the removed inline style attribute used to have. */
/* Toggleable "hidden" utility (post-hoc fix): elements whose static
   style="display:none" was baked into a csp-s-* class can no longer be
   revealed by clearing an inline style (`el.style.display = ''` is a
   no-op once display:none lives in a stylesheet class, not an inline
   attribute). Those elements now carry this class instead, added/removed
   via classList so JS can still toggle visibility without any inline
   style="..." attribute (which CSP style-src would block anyway). */
/* 2026-09-28 (UI-001): every font-size here was converted from Npx to
   calc(Npx * var(--vv-text-scale, 1)) so the Display > Text Size setting
   also reaches these classes (VanVRApp.html and rbac-dashboard.html define
   the variable in css/tokens.css; login.html and join.html do not, and the
   fallback 1 keeps their sizes unchanged). If csp_style_transform.py is
   ever re-run, apply the same conversion to its output. */
.csp-hide { display: none; }
.csp-s-00a01f06.csp-s-00a01f06 { font-size: calc(12px * var(--vv-text-scale, 1));padding:3px 7px;border-radius:6px;background:var(--accent-dim);color:var(--accent-l);border:1px solid rgba(124,58,237,0.3); }
.csp-s-015a5e7f.csp-s-015a5e7f { display:flex;align-items:center;gap:8px; }
.csp-s-02a2d333.csp-s-02a2d333 { font-weight:500; }
.csp-s-03c4bb6f.csp-s-03c4bb6f { justify-content:center; }
.csp-s-0466783d.csp-s-0466783d { width:100%; }
.csp-s-0561688a.csp-s-0561688a { width:100%;height:72px;border-radius:8px;border:1px solid var(--border);background:var(--surface3);overflow:hidden;display:flex;align-items:center;justify-content:center;font-size: calc(12px * var(--vv-text-scale, 1));color:var(--muted); }
.csp-s-058f865a.csp-s-058f865a { padding:7px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size: calc(13px * var(--vv-text-scale, 1)); }
.csp-s-05d6c790.csp-s-05d6c790 { margin:12px 0 11px; }
.csp-s-07e2c14c.csp-s-07e2c14c { font-weight:500;color:var(--muted); }
.csp-s-080c3f14.csp-s-080c3f14 { font-size: calc(12px * var(--vv-text-scale, 1));font-weight:500;color:var(--muted); }
.csp-s-0b130b29.csp-s-0b130b29 { font-size: calc(12px * var(--vv-text-scale, 1));color:var(--muted);margin-top:4px;line-height:1.4; }
.csp-s-0c7a14e2.csp-s-0c7a14e2 { font-weight:700;font-size: calc(15px * var(--vv-text-scale, 1)); }
.csp-s-0d15e1f0.csp-s-0d15e1f0 { flex:1;accent-color:#38bdf8; }
.csp-s-0d41645a.csp-s-0d41645a { font-size: calc(12px * var(--vv-text-scale, 1));color:var(--muted);margin:10px 0 0; }
.csp-s-0dc3f023.csp-s-0dc3f023 { flex:1;accent-color:#60a5fa; }
.csp-s-0de27b15.csp-s-0de27b15 { display:flex;flex-direction:column;gap:7px;margin-top:8px;font-weight:500;font-size: calc(11px * var(--vv-text-scale, 1));color:#c7cdda; }
.csp-s-0e1a6d01.csp-s-0e1a6d01 { display:flex;align-items:center; }
.csp-s-11696618.csp-s-11696618 { margin:0; }
.csp-s-11c41aec.csp-s-11c41aec { color:#a78bfa;background:rgba(167,139,250,0.12);border-color:rgba(167,139,250,0.45); }
.csp-s-122b073c.csp-s-122b073c { opacity:.4;cursor:not-allowed; }
.csp-s-13d8888d.csp-s-13d8888d { display:flex;justify-content:space-between;align-items:start;gap:12px; }
.csp-s-15278d2d.csp-s-15278d2d { font-size: calc(12px * var(--vv-text-scale, 1));padding:3px 8px; }
.csp-s-15a7a963.csp-s-15a7a963 { font-size: calc(12px * var(--vv-text-scale, 1));margin-top:6px;width:100%; }
.csp-s-15b0527c.csp-s-15b0527c { background:var(--accent-dim);border:1px solid rgba(124,58,237,0.3);border-radius:10px;padding:11px 12px;margin-bottom:8px; }
.csp-s-15d23224.csp-s-15d23224 { margin-top:16px;width:auto;padding:8px 20px; }
.csp-s-165e3c67.csp-s-165e3c67 { font-size: calc(13px * var(--vv-text-scale, 1));font-weight:800;color:var(--accent-l); }
.csp-s-17d902bf.csp-s-17d902bf { font-size: calc(13px * var(--vv-text-scale, 1));color:var(--muted); }
.csp-s-1e2f987e.csp-s-1e2f987e { font-size: calc(13px * var(--vv-text-scale, 1));color:var(--accent-l);margin-top:2px; }
.csp-s-1fd8c813.csp-s-1fd8c813 { font-size: calc(11px * var(--vv-text-scale, 1));color:var(--muted); }
.csp-s-21e3e334.csp-s-21e3e334 { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:0; }
.csp-s-25b52886.csp-s-25b52886 { display:flex;gap:6px;align-items:center; }
.csp-s-266df056.csp-s-266df056 { text-transform:none;letter-spacing:0;color:var(--text); }
.csp-s-26dd574d.csp-s-26dd574d { color:var(--error);flex-shrink:0; }
.csp-s-27203e14.csp-s-27203e14 { font-size: calc(12px * var(--vv-text-scale, 1));color:var(--muted);margin-top:6px;line-height:1.5; }
.csp-s-280ac6e4.csp-s-280ac6e4 { flex:1;accent-color:#a78bfa; }
.csp-s-281cb0bb.csp-s-281cb0bb { padding:5px 9px;font-size: calc(12px * var(--vv-text-scale, 1)); }
.csp-s-28c0f6ec.csp-s-28c0f6ec { width:160px; }
.csp-s-2a1f67ee.csp-s-2a1f67ee { opacity:.7; }
.csp-s-2af378ae.csp-s-2af378ae { font-weight:400;color:var(--muted); }
.csp-s-2cc6475e.csp-s-2cc6475e { flex:1;justify-content:center; }
.csp-s-2d713703.csp-s-2d713703 { color:var(--muted);font-style:italic; }
.csp-s-2e195e75.csp-s-2e195e75 { color:#fbbf24;background:rgba(251,191,36,0.12);border-color:rgba(251,191,36,0.45); }
.csp-s-301a1572.csp-s-301a1572 { font-size: calc(12px * var(--vv-text-scale, 1));padding:5px 10px; }
.csp-s-30639848.csp-s-30639848 { background:var(--surface2);color:var(--text); }
.csp-s-30e60282.csp-s-30e60282 { display:inline-flex;align-items:center;gap:6px;margin-bottom:18px;padding:8px 13px;border-radius:9px;
             background:var(--surface2);border:1px solid var(--border);color:var(--muted);font-size: calc(13px * var(--vv-text-scale, 1));font-weight:600;
             cursor:pointer;font-family:inherit;transition:color .15s,border-color .15s; }
.csp-s-313aee25.csp-s-313aee25 { color:var(--accent2); }
.csp-s-3177aff2.csp-s-3177aff2 { pointer-events:all; }
.csp-s-31a824a2.csp-s-31a824a2 { display:flex;gap:5px; }
.csp-s-336ef7fd.csp-s-336ef7fd { display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;user-select:none; }
.csp-s-341996ed.csp-s-341996ed { color:#7a8099;font-size: calc(11px * var(--vv-text-scale, 1));transition:transform .25s ease; }
.csp-s-359589d7.csp-s-359589d7 { display:flex;flex-direction:column;gap:4px;font-weight:500; }
.csp-s-35de3d50.csp-s-35de3d50 { width:100%;height:100%;object-fit:cover;border-radius:8px; }
.csp-s-3898c319.csp-s-3898c319 { font-size: calc(12px * var(--vv-text-scale, 1));color:var(--error); }
.csp-s-38ea2beb.csp-s-38ea2beb { width:100%;font-size: calc(12px * var(--vv-text-scale, 1));line-height:1.5;padding:7px 9px;border-radius:8px;border:1px solid var(--border);background:var(--surface3,#262b3f);color:var(--text,#e2e6f0);resize:vertical;font-family:inherit; }
.csp-s-3922d326.csp-s-3922d326 { min-width:0; }
.csp-s-3997db7a.csp-s-3997db7a { font-size: calc(10px * var(--vv-text-scale, 1));padding:3px 7px;border-radius:6px;background:var(--accent-dim);color:var(--accent-l);border:1px solid rgba(124,58,237,0.3); }
.csp-s-3a15d290.csp-s-3a15d290 { flex:1;height:1px;background:var(--border); }
.csp-s-3b6a3a65.csp-s-3b6a3a65 { cursor:pointer; }
.csp-s-3fc751c0.csp-s-3fc751c0 { font-size: calc(11px * var(--vv-text-scale, 1));padding:5px 10px;border-radius:7px;border:1px solid var(--border);background:var(--surface2,#1e2230);color:var(--accent-l,#a78bfa);cursor:pointer; }
.csp-s-410efdb2.csp-s-410efdb2 { margin-top:4px;margin-bottom:10px; }
.csp-s-433de30b.csp-s-433de30b { font-size: calc(14px * var(--vv-text-scale, 1)); }
.csp-s-43821b5c.csp-s-43821b5c { font-size: calc(12px * var(--vv-text-scale, 1));padding:5px 10px;flex-shrink:0; }
.csp-s-48eeb683.csp-s-48eeb683 { font-size: calc(9px * var(--vv-text-scale, 1));color:var(--muted);opacity:0.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px; }
.csp-s-49cd0921.csp-s-49cd0921 { display:flex;gap:6px; }
.csp-s-4a3ea282.csp-s-4a3ea282 { position:relative;overflow:hidden;border-radius:6px; }
.csp-s-4c179404.csp-s-4c179404 { font-size: calc(12px * var(--vv-text-scale, 1));font-weight:700;color:var(--muted);margin-bottom:8px; }
.csp-s-4ccfc2c5.csp-s-4ccfc2c5 { font-size: calc(12px * var(--vv-text-scale, 1));padding:5px 12px; }
.csp-s-4e420aff.csp-s-4e420aff { margin-bottom:6px; }
.csp-s-4e73ee2d.csp-s-4e73ee2d { display:none;margin-top:18px; }
.csp-s-4eeec0cb.csp-s-4eeec0cb { color:var(--accent-l); }
.csp-s-4f03f834.csp-s-4f03f834 { color:#a78bfa; }
.csp-s-4f3317d7.csp-s-4f3317d7 { min-height:28px; }
.csp-s-5031c435.csp-s-5031c435 { flex:1;font-size: calc(12px * var(--vv-text-scale, 1));padding:5px 4px;justify-content:center; }
.csp-s-51e2e78b.csp-s-51e2e78b { font-size: calc(12px * var(--vv-text-scale, 1));color:#fca5a5;font-weight:600; }
.csp-s-54258bbc.csp-s-54258bbc { display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;margin-bottom:6px; }
.csp-s-54fb1fe0.csp-s-54fb1fe0 { font-size: calc(20px * var(--vv-text-scale, 1));font-weight:800;color:var(--text,#fff); }
.csp-s-557d84c0.csp-s-557d84c0 { margin:4px 0; }
.csp-s-571a2e0a.csp-s-571a2e0a { display:flex;flex-direction:column;gap:8px;overflow:hidden;transition:max-height .35s ease,opacity .25s ease,margin-top .25s ease; }
.csp-s-57f9e31d.csp-s-57f9e31d { color:var(--muted); }
.csp-s-592ab7ba.csp-s-592ab7ba { display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px; }
.csp-s-59eddc67.csp-s-59eddc67 { flex:1;min-width:0; }
.csp-s-5c511097.csp-s-5c511097 { font-size: calc(12px * var(--vv-text-scale, 1));color:#fbbf24;font-weight:600; }
.csp-s-5d8634de.csp-s-5d8634de { display:flex;align-items:center;gap:5px;padding:5px 11px;border-radius:7px;font-size: calc(12px * var(--vv-text-scale, 1));font-weight:600;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--muted);transition:all 0.15s;font-family:inherit;white-space:nowrap;flex-shrink:0; }
.csp-s-5e0faad2.csp-s-5e0faad2 { font-size: calc(13px * var(--vv-text-scale, 1)); }
.csp-s-6084c0d9.csp-s-6084c0d9 { flex:1;accent-color:#f59e0b; }
.csp-s-619b338a.csp-s-619b338a { flex-direction:column;gap:6px; }
.csp-s-62bf60c0.csp-s-62bf60c0 { width:100%;height:100%;object-fit:cover; }
.csp-s-632120ac.csp-s-632120ac { font-size: calc(12px * var(--vv-text-scale, 1));color:var(--muted);line-height:1.5; }
.csp-s-63679171.csp-s-63679171 { padding:7px 12px; }
.csp-s-65174a39.csp-s-65174a39 { text-align:right;color:var(--muted);font-size: calc(12px * var(--vv-text-scale, 1));white-space:nowrap; }
.csp-s-66c386c2.csp-s-66c386c2 { display:flex;align-items:center;gap:6px;justify-content:space-between; }
.csp-s-69906b7a.csp-s-69906b7a { font-size: calc(12px * var(--vv-text-scale, 1));color:var(--muted);text-align:center;padding:8px; }
.csp-s-69be3752.csp-s-69be3752 { display:flex;align-items:center;justify-content:space-between; }
.csp-s-6a43470f.csp-s-6a43470f { margin:0;flex:1; }
.csp-s-6aa29d5c.csp-s-6aa29d5c { color:var(--accent-l);background:var(--accent-dim); }
.csp-s-6ae05fc8.csp-s-6ae05fc8 { font-weight:600;font-size: calc(14px * var(--vv-text-scale, 1)); }
.csp-s-6b99de8b.csp-s-6b99de8b { display:none; }
.csp-s-6c5fcb88.csp-s-6c5fcb88 { display:flex;gap:8px;margin-top:10px;max-width:380px; }
.csp-s-6cb285c6.csp-s-6cb285c6 { font-size: calc(12px * var(--vv-text-scale, 1)); }
.csp-s-6e5caf21.csp-s-6e5caf21 { background:var(--annot-dim);color:var(--annot);border-radius:8px;padding:1px 6px;font-size: calc(12px * var(--vv-text-scale, 1));font-weight:800; }
.csp-s-71579a33.csp-s-71579a33 { display:none;position:absolute;inset:0;z-index:1;pointer-events:none;background:rgba(0,0,0,0); }
.csp-s-72373b55.csp-s-72373b55 { margin:14px 0; }
.csp-s-761d3add.csp-s-761d3add { margin-bottom:10px; }
.csp-s-76a12f0a.csp-s-76a12f0a { font-size: calc(12px * var(--vv-text-scale, 1));color:var(--muted);margin:-2px 0 6px; }
.csp-s-77d25a8b.csp-s-77d25a8b { display:none;position:absolute;inset:0;width:100%!important;height:100%!important;z-index:0; }
.csp-s-7837a7cb.csp-s-7837a7cb { font-size: calc(12px * var(--vv-text-scale, 1));color:var(--muted);line-height:1.5;margin-bottom:9px; }
.csp-s-7907020d.csp-s-7907020d { margin-top:4px;margin-bottom:9px; }
.csp-s-7ba50297.csp-s-7ba50297 { font-size: calc(11px * var(--vv-text-scale, 1));color:var(--muted);text-align:center;padding:8px; }
.csp-s-7e88880d.csp-s-7e88880d { cursor:pointer;color:var(--error);font-weight:700; }
.csp-s-7fc448e2.csp-s-7fc448e2 { font-size: calc(12px * var(--vv-text-scale, 1));color:var(--muted); }
.csp-s-80d654f9.csp-s-80d654f9 { text-decoration:none; }
.csp-s-822392ce.csp-s-822392ce { flex-wrap:wrap;gap:6px; }
.csp-s-835340e6.csp-s-835340e6 { display:flex;gap:4px;flex-wrap:wrap; }
.csp-s-844356a9.csp-s-844356a9 { color:#f43f5e;background:rgba(244,63,94,0.12);border-color:rgba(244,63,94,0.45); }
.csp-s-851cd6cc.csp-s-851cd6cc { flex:1;color:var(--error); }
.csp-s-868bf6a9.csp-s-868bf6a9 { font-size: calc(12px * var(--vv-text-scale, 1));padding:4px 6px;color:var(--error); }
.csp-s-869e948f.csp-s-869e948f { flex:1;font-size: calc(12px * var(--vv-text-scale, 1));padding:4px 6px;justify-content:center; }
.csp-s-86abdab9.csp-s-86abdab9 { white-space:nowrap; }
.csp-s-8747e038.csp-s-8747e038 { font-size: calc(15px * var(--vv-text-scale, 1));font-weight:800; }
.csp-s-876bd578.csp-s-876bd578 { text-align:center;padding:28px 12px; }
.csp-s-8a054982.csp-s-8a054982 { font-size: calc(11px * var(--vv-text-scale, 1));color:var(--muted);margin-top:3px; }
.csp-s-8a77e5a3.csp-s-8a77e5a3 { margin-top:8px; }
.csp-s-8c9424dc.csp-s-8c9424dc { font-size: calc(13px * var(--vv-text-scale, 1));color:var(--muted,#94a3b8);max-width:430px;line-height:1.6; }
.csp-s-8fb0de73.csp-s-8fb0de73 { padding:6px 9px; }
.csp-s-92cac885.csp-s-92cac885 { font-size: calc(12px * var(--vv-text-scale, 1));color:var(--muted);line-height:1.7;margin:8px 0 18px; }
.csp-s-94573289.csp-s-94573289 { width:100%;padding:13px;background:var(--surface2);border:1px solid var(--border);
               color:var(--text);border-radius:9px;font-size: calc(14px * var(--vv-text-scale, 1));font-weight:600;cursor:pointer;
               font-family:inherit;display:flex;align-items:center;justify-content:center;gap:8px;
               transition:border-color .15s,background .15s; }
.csp-s-9482a00b.csp-s-9482a00b { cursor:pointer;color:#a78bfa;font-size: calc(12px * var(--vv-text-scale, 1));outline:none; }
.csp-s-959d745c.csp-s-959d745c { color:#60a5fa;background:rgba(96,165,250,0.12);border-color:rgba(96,165,250,0.45); }
.csp-s-96ad6099.csp-s-96ad6099 { margin-top:4px; }
.csp-s-97445a8d.csp-s-97445a8d { flex:1; }
.csp-s-9a6ce058.csp-s-9a6ce058 { color:var(--muted);font-size: calc(12px * var(--vv-text-scale, 1));margin-top:8px; }
.csp-s-9cbd0677.csp-s-9cbd0677 { font-size: calc(12px * var(--vv-text-scale, 1));padding:4px 8px; }
.csp-s-9cdedb59.csp-s-9cdedb59 { display:flex;align-items:center;gap:8px;font-weight:500; }
.csp-s-9da64a56.csp-s-9da64a56 { width:100%;justify-content:center;font-size: calc(12px * var(--vv-text-scale, 1));margin-top:5px; }
.csp-s-9e56efd0.csp-s-9e56efd0 { display:flex;align-items:flex-start;gap:8px; }
.csp-s-9fc6f2ba.csp-s-9fc6f2ba { flex:none;background:rgba(255,255,255,.06);color:#e2e6f0;border:1px solid rgba(255,255,255,.15);border-radius:7px;padding:5px 8px;font-size: calc(12px * var(--vv-text-scale, 1));cursor:pointer;line-height:1; }
.csp-s-a2600b0e.csp-s-a2600b0e { font-size: calc(28px * var(--vv-text-scale, 1)); }
.csp-s-a6b9b835.csp-s-a6b9b835 { display:flex;gap:10px;margin-top:8px; }
.csp-s-a76d597a.csp-s-a76d597a { display:flex;gap:8px; }
.csp-s-a7d4afc9.csp-s-a7d4afc9 { display:flex;gap:8px;margin-top:8px; }
.csp-s-ab6fd1c0.csp-s-ab6fd1c0 { display:flex;gap:8px;margin-top:12px; }
.csp-s-ad85d1a7.csp-s-ad85d1a7 { display:flex;align-items:center;gap:10px;margin:4px 0 14px;color:var(--muted);font-size: calc(12px * var(--vv-text-scale, 1)); }
.csp-s-ae1b5c2b.csp-s-ae1b5c2b { font-size: calc(9px * var(--vv-text-scale, 1));color:var(--muted);margin-top:2px;padding-left:2px; }
.csp-s-ae4e7b49.csp-s-ae4e7b49 { margin-left:auto;padding:4px 9px;font-size: calc(12px * var(--vv-text-scale, 1)); }
.csp-s-aef8f147.csp-s-aef8f147 { display:none;flex-direction:column;gap:12px; }
.csp-s-b0a3eba5.csp-s-b0a3eba5 { min-height:80px;max-height:240px; }
.csp-s-b2e6639d.csp-s-b2e6639d { width:118px;padding:5px;font-size: calc(12px * var(--vv-text-scale, 1)); }
.csp-s-b4b1e450.csp-s-b4b1e450 { font-size: calc(12px * var(--vv-text-scale, 1));color:var(--muted);margin-top:2px;padding-left:2px; }
.csp-s-b569cab1.csp-s-b569cab1 { font-size: calc(10px * var(--vv-text-scale, 1));color:var(--muted); }
.csp-s-b756e245.csp-s-b756e245 { margin-top:14px;padding-top:12px;border-top:1px solid var(--border); }
.csp-s-b88d1817.csp-s-b88d1817 { display:flex;align-items:center;gap:6px; }
.csp-s-b978c546.csp-s-b978c546 { font-size: calc(15px * var(--vv-text-scale, 1));font-weight:800;margin-bottom:8px; }
.csp-s-bc63f90c.csp-s-bc63f90c { margin-top:8px;display:none;flex-direction:column;gap:6px; }
.csp-s-be265379.csp-s-be265379 { display:flex;flex-direction:column;gap:8px; }
.csp-s-bf8965d9.csp-s-bf8965d9 { color:var(--muted);font-size: calc(12px * var(--vv-text-scale, 1)); }
.csp-s-c00d3912.csp-s-c00d3912 { margin-top:3px; }
.csp-s-c21c70e3.csp-s-c21c70e3 { display:flex;flex-wrap:wrap;gap:8px; }
.csp-s-c3574e61.csp-s-c3574e61 { flex:1;min-width:160px;padding:7px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size: calc(13px * var(--vv-text-scale, 1)); }
.csp-s-c3b7bffe.csp-s-c3b7bffe { color:#7a8099;font-weight:400;font-size: calc(11px * var(--vv-text-scale, 1));line-height:1.45; }
.csp-s-c3b9bc09.csp-s-c3b9bc09 { background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:14px; }
.csp-s-c3e4e493.csp-s-c3e4e493 { font-size: calc(34px * var(--vv-text-scale, 1));margin-bottom:10px; }
.csp-s-c53fada3.csp-s-c53fada3 { display:inline-flex;align-items:center;gap:6px;background:var(--surface3);border:1px solid var(--border);border-radius:16px;padding:3px 10px;font-size: calc(12px * var(--vv-text-scale, 1));margin:0 6px 6px 0; }
.csp-s-c6c2227f.csp-s-c6c2227f { font-size: calc(12px * var(--vv-text-scale, 1));padding:3px 7px; }
.csp-s-c6d8be56.csp-s-c6d8be56 { padding:7px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size: calc(13px * var(--vv-text-scale, 1)); }
.csp-s-c8412734.csp-s-c8412734 { min-height:70px;max-height:180px; }
.csp-s-c8cf5d5d.csp-s-c8cf5d5d { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:6px; }
.csp-s-c957632a.csp-s-c957632a { flex:1;min-width:0;background:rgba(255,255,255,.06);color:#e2e6f0;border:1px solid rgba(255,255,255,.15);border-radius:7px;padding:5px 7px;font:500 11px -apple-system,BlinkMacSystemFont,sans-serif;outline:none;cursor:pointer; }
.csp-s-cbbaffb4.csp-s-cbbaffb4 { grid-template-columns:1fr 1fr 1fr 1fr auto; }
.csp-s-d2c171b1.csp-s-d2c171b1 { margin-top:10px; }
.csp-s-d4b72d78.csp-s-d4b72d78 { flex:1;accent-color:#4ade80; }
.csp-s-d83872c2.csp-s-d83872c2 { font-size: calc(12px * var(--vv-text-scale, 1));color:var(--muted);margin-top:3px; }
.csp-s-d91e8d68.csp-s-d91e8d68 { display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap; }
.csp-s-d95d4b9b.csp-s-d95d4b9b { display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:9px;margin-bottom:8px; }
.csp-s-db271469.csp-s-db271469 { width:100%;justify-content:center;font-size: calc(12px * var(--vv-text-scale, 1)); }
.csp-s-dbd23333.csp-s-dbd23333 { font-size: calc(12px * var(--vv-text-scale, 1));padding:4px 11px;background:var(--annot);color:#1a1200;border:none; }
.csp-s-df30986e.csp-s-df30986e { display:flex;gap:4px;margin-bottom:8px; }
.csp-s-e1ae85d2.csp-s-e1ae85d2 { margin-top:18px;padding-top:16px;border-top:1px solid var(--border); }
.csp-s-e1b76fad.csp-s-e1b76fad { font-size: calc(12px * var(--vv-text-scale, 1));padding:4px 11px; }
.csp-s-e23ceda5.csp-s-e23ceda5 { background:var(--accent-dim);color:var(--accent-l);border-radius:8px;padding:1px 6px;font-size: calc(12px * var(--vv-text-scale, 1));font-weight:800; }
.csp-s-e3dcc76f.csp-s-e3dcc76f { color:var(--accent-l);text-decoration:none; }
.csp-s-e4f43cb6.csp-s-e4f43cb6 { color:#94a3b8;background:rgba(148,163,184,0.12);border-color:rgba(148,163,184,0.45); }
.csp-s-e58b8101.csp-s-e58b8101 { font-size: calc(48px * var(--vv-text-scale, 1)); }
.csp-s-e81876f5.csp-s-e81876f5 { color:var(--error); }
.csp-s-e8421ba6.csp-s-e8421ba6 { font-size: calc(12px * var(--vv-text-scale, 1));padding:5px 10px;color:var(--error); }
.csp-s-ea38f944.csp-s-ea38f944 { color:#f87171;background:rgba(248,113,113,0.12);border-color:rgba(248,113,113,0.45); }
.csp-s-f15dc7b2.csp-s-f15dc7b2 { display:flex;align-items:center;gap:8px;justify-content:space-between; }
.csp-s-f6280670.csp-s-f6280670 { display:flex;align-items:center;gap:6px;font-weight:500;cursor:pointer; }
.csp-s-f70b1b39.csp-s-f70b1b39 { max-width:100%;border-radius:8px;margin:6px 0; }
.csp-s-f77e8986.csp-s-f77e8986 { font-size: calc(12px * var(--vv-text-scale, 1));color:var(--muted);line-height:1.6;margin-top:14px; }
.csp-s-f7919a21.csp-s-f7919a21 { font-size: calc(13px * var(--vv-text-scale, 1));font-weight:700;color:var(--muted); }
.csp-s-fb75b7c5.csp-s-fb75b7c5 { font-weight:700;font-size: calc(13px * var(--vv-text-scale, 1));overflow:hidden;text-overflow:ellipsis; }
.csp-s-fc331e2a.csp-s-fc331e2a { margin:0;color:var(--muted);font-style:italic; }
.csp-s-ff7831cb.csp-s-ff7831cb { color:var(--muted);font-weight:700; }
