/* Generated from the inline style= attributes that used to live in index.html.
 *
 * Why: `style-src 'unsafe-inline'` in the Content-Security-Policy exists only because the
 * markup carried them. An injected style cannot read the session token or call an
 * endpoint, so this is a smaller prize than the script work in entry 86 — but it is the
 * last thing holding that allowance open.
 *
 * One class per DISTINCT declaration, so the 33 elements that only said `flex:1` share a
 * rule instead of generating 33 identical ones.
 *
 * NOTE ON SPECIFICITY, which is the whole risk here: an inline style beats essentially
 * any selector, and a single class (0,1,0) does not. Where an existing rule in app.css is
 * more specific, moving a declaration out would silently change the layout. The class is
 * therefore repeated three times (0,3,0) to sit above ordinary component selectors, and
 * every element was compared before and after by COMPUTED value in a real browser rather
 * than by reading the diff.
 */
.s0.s0.s0 { display:none; }
.s1.s1.s1 { border-radius:50%; margin-bottom:4px; display:block; }
.s2.s2.s2 { animation:spin 1s linear infinite; }
.s3.s3.s3 { font-size:0.625rem; color:rgba(var(--accent-rgb),0.3); text-align:center; margin-top:4px; }
.s4.s4.s4 { font-size:0.6875rem; font-weight:500; color:var(--c1); letter-spacing:.14em; }
.s5.s5.s5 { width:60px; }
.s6.s6.s6 { background:rgba(62,201,138,.12); }
.s7.s7.s7 { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px; }
.s8.s8.s8 { background:rgba(var(--accent-rgb),0.08); }
.s9.s9.s9 { display:flex; gap:8px; align-items:center; font-size:0.75rem; color:rgba(255,255,255,.85); }
.s10.s10.s10 { margin-top:8px; }
.s11.s11.s11 { flex:1; }
.s12.s12.s12 { flex:.8; }
.s13.s13.s13 { flex:2; }
.s14.s14.s14 { display:flex; gap:6px; flex-wrap:wrap; margin-top:6px; align-items:center; }
.s15.s15.s15 { font-size:0.625rem; color:rgba(255,255,255,.55); display:flex; gap:5px; align-items:center; }
.s16.s16.s16 { flex:1.2; }
.s17.s17.s17 { flex:1.6; }
.s18.s18.s18 { flex:.9; }
.s19.s19.s19 { flex:.6; }
.s20.s20.s20 { display:flex; gap:6px; flex-wrap:wrap; margin-top:6px; }
.s21.s21.s21 { margin-top:12px; }
.s22.s22.s22 { margin-bottom:7px; }
.s23.s23.s23 { height:24px; background:linear-gradient(135deg,rgba(58,155,220,.28),rgba(150,175,200,.14)); border-radius:3px; }
.s24.s24.s24 { margin-top:16px; }
.s25.s25.s25 { margin-bottom:10px; }
.s26.s26.s26 { display:flex; gap:8px; flex-wrap:wrap; }
.s27.s27.s27 { width:36px; height:36px; border-radius:10px; background:#05070f; border:2px solid var(--accent); cursor:pointer; }
.s28.s28.s28 { width:36px; height:36px; border-radius:10px; background:#0a0f1e; border:1px solid rgba(255,255,255,0.15); cursor:pointer; }
.s29.s29.s29 { width:36px; height:36px; border-radius:10px; background:#0f0a00; border:1px solid rgba(255,255,255,0.15); cursor:pointer; }
.s30.s30.s30 { width:36px; height:36px; border-radius:10px; background:#0a0a14; border:1px solid rgba(255,255,255,0.15); cursor:pointer; }
.s31.s31.s31 { width:36px; height:36px; border-radius:10px; background:#0a1409; border:1px solid rgba(255,255,255,0.15); cursor:pointer; }
.s32.s32.s32 { width:36px; height:36px; border-radius:10px; background:#f0f4f8; border:1px solid rgba(0,0,0,0.1); cursor:pointer; }
.s33.s33.s33 { margin-top:14px; }
.s34.s34.s34 { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.s35.s35.s35 { width:28px; height:28px; border-radius:50%; background:#00b4ff; border:2px solid white; cursor:pointer; }
.s36.s36.s36 { width:28px; height:28px; border-radius:50%; background:#7c3aed; border:2px solid transparent; cursor:pointer; }
.s37.s37.s37 { width:28px; height:28px; border-radius:50%; background:#00c896; border:2px solid transparent; cursor:pointer; }
.s38.s38.s38 { width:28px; height:28px; border-radius:50%; background:#f59e0b; border:2px solid transparent; cursor:pointer; }
.s39.s39.s39 { width:28px; height:28px; border-radius:50%; background:#ef4444; border:2px solid transparent; cursor:pointer; }
.s40.s40.s40 { width:28px; height:28px; border-radius:50%; background:#ec4899; border:2px solid transparent; cursor:pointer; }
.s41.s41.s41 { display:flex; align-items:center; gap:6px; margin-left:4px; }
.s42.s42.s42 { width:28px; height:28px; border-radius:50%; border:2px solid rgba(255,255,255,0.2); cursor:pointer; padding:0; background:none; overflow:hidden; }
.s43.s43.s43 { font-size:0.625rem; color:rgba(255,255,255,0.35); letter-spacing:.08em; }
.s44.s44.s44 { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.s45.s45.s45 { padding:4px 12px; border-radius:6px; border:1px solid rgba(var(--accent-rgb),0.3); background:rgba(var(--accent-rgb),0.07); font-size:0.6875rem; color:rgba(var(--accent-rgb),0.8); cursor:pointer; font-weight:600; }
.s46.s46.s46 { padding:4px 12px; border-radius:6px; border:1px solid rgba(var(--accent-rgb),0.3); background:rgba(var(--accent-rgb),0.07); font-size:0.6875rem; color:rgba(var(--accent-rgb),0.8); cursor:pointer; }
.s47.s47.s47 { padding:4px 12px; border-radius:6px; border:1px solid rgba(var(--accent-rgb),0.3); background:rgba(var(--accent-rgb),0.07); font-size:0.8125rem; color:rgba(var(--accent-rgb),0.8); cursor:pointer; font-weight:600; }
.s48.s48.s48 { font-size:0.625rem; color:rgba(var(--accent-rgb),0.5); letter-spacing:.07em; }
.s49.s49.s49 { background:rgba(109,92,224,0.1); }
.s50.s50.s50 { font-size:0.625rem; margin-left:4px; }
.s51.s51.s51 { display:flex; gap:4px; }
.s52.s52.s52 { padding:3px 7px; border-radius:4px; border:1px solid rgba(var(--accent-rgb),.3); background:transparent; font-size:0.625rem; color:var(--accent); cursor:pointer; white-space:nowrap; }
.s53.s53.s53 { background:rgba(62,201,138,0.08); }
.s54.s54.s54 { margin-bottom:5px; }
.s55.s55.s55 { flex:1; min-width:220px; }
.s56.s56.s56 { display:flex; gap:4px; margin-bottom:5px; }
.s57.s57.s57 { padding:4px 10px; border-radius:5px; border:1px solid rgba(var(--accent-rgb),.3); background:rgba(var(--accent-rgb),.07); font-size:0.625rem; color:var(--accent); cursor:pointer; white-space:nowrap; letter-spacing:.05em; }
.s58.s58.s58 { font-size:0.625rem; color:rgba(var(--accent-rgb),.5); align-self:center; }
.s59.s59.s59 { width:100%; margin-bottom:5px; display:none; }
.s60.s60.s60 { display:none; margin-bottom:5px; }
.s61.s61.s61 { margin-bottom:3px; font-size:0.5625rem; opacity:.6; }
.s62.s62.s62 { display:flex; gap:6px; margin-top:6px; flex-wrap:wrap; }
.s63.s63.s63 { display:none; padding:8px 0; }
.s64.s64.s64 { font-size:0.625rem; color:rgba(var(--accent-rgb),.5); }
.s65.s65.s65 { flex:1; margin-top:8px; }
.s66.s66.s66 { width:100%; }
.s67.s67.s67 { margin-left:auto; font-size:0.625rem; padding:3px 9px; }
.s68.s68.s68 { display:flex; flex-direction:column; gap:6px; }
.s69.s69.s69 { background:rgba(66,133,244,0.1); }
.s70.s70.s70 { margin-left:auto; }
.s71.s71.s71 { margin-top:0; }
.s72.s72.s72 { font-size:.625rem; padding:2px 8px; margin-left:6px; }
.s73.s73.s73 { margin-top:10px; }
.s74.s74.s74 { cursor:pointer; user-select:none; }
.s75.s75.s75 { width:100%; margin:10px 0; }
.s76.s76.s76 { display:flex; align-items:center; gap:8px; }
.s77.s77.s77 { height:65px; resize:vertical; }
.s78.s78.s78 { margin-top:4px; }
.s79.s79.s79 { display:flex; gap:7px; margin-top:9px; }
.s80.s80.s80 { background:rgba(255,255,255,0.04); }
.s81.s81.s81 { margin-top:9px; }
.s82.s82.s82 { background:rgba(0,136,204,0.12); }
.s83.s83.s83 { background:rgba(255,100,50,0.1); }
.s84.s84.s84 { background:rgba(224,160,58,0.12); }
.s85.s85.s85 { display:flex; flex-direction:column; gap:5px; max-height:160px; overflow-y:auto; margin-bottom:9px; }
.s86.s86.s86 { display:flex; gap:7px; flex-wrap:wrap; }
.s87.s87.s87 { border-color:rgba(226,104,95,.35); color:var(--bad); }
.s88.s88.s88 { background:rgba(0,180,100,0.1); }
.s89.s89.s89 { display:flex; flex-direction:column; gap:5px; margin-bottom:10px; }
.s90.s90.s90 { background:rgba(0,0,0,0.3); border:1px solid rgba(var(--accent-rgb),0.1); border-radius:7px; padding:11px; }
.s91.s91.s91 { font-size:0.625rem; color:rgba(var(--accent-rgb),0.4); letter-spacing:.1em; margin-bottom:7px; }
.s92.s92.s92 { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.s93.s93.s93 { cursor:pointer; flex-shrink:0; }
.s94.s94.s94 { cursor:pointer; width:34px; height:34px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(var(--accent-rgb),0.13); border-radius:8px; font-size:0.8125rem; color:rgba(var(--accent-rgb),0.5); transition:all .2s; flex-shrink:0; }
.s95.s95.s95 { display:flex; gap:8px; align-items:center; position:relative; }
.s96.s96.s96 { color:var(--bad); }
.s97.s97.s97 { display:flex; gap:8px; align-items:center; }
.s98.s98.s98 { font-size:0.625rem; color:rgba(var(--accent-rgb),0.5); }
.s99.s99.s99 { padding:3px 8px; border-radius:5px; border:1px solid rgba(var(--accent-rgb),0.2); background:transparent; font-size:0.625rem; color:rgba(var(--accent-rgb),0.6); cursor:pointer; letter-spacing:.05em; }
.s100.s100.s100 { cursor:pointer; color:rgba(255,255,255,0.4); font-size:1rem; line-height:1; padding:0 2px; }
.s101.s101.s101 { height:1px; background:linear-gradient(90deg,transparent,rgba(var(--accent-rgb),0.1),transparent); margin:2px 0; }
.s102.s102.s102 { display:flex; justify-content:space-between; align-items:center; }
.s103.s103.s103 { font-weight:600; letter-spacing:0; color:rgba(var(--accent-rgb),0.6); }
.s104.s104.s104 { font-size:0.625rem; color:rgba(160,210,240,0.6); }
.s105.s105.s105 { width:100%; height:100%; }
.s106.s106.s106 { display:flex; align-items:center; gap:16px; width:100%; justify-content:center; flex-wrap:wrap; }
.s107.s107.s107 { display:none; width:6px; height:6px; border-radius:50%; background:rgba(var(--accent-rgb),0.55); margin-right:6px; vertical-align:middle; }
.s108.s108.s108 { position:relative; -webkit-tap-highlight-color:transparent; touch-action:manipulation; gap:4px; }
.s109.s109.s109 { display:none; position:absolute; inset:-6px; border-radius:18px; border:2px solid var(--c3); animation:vp .9s ease-in-out infinite; }
.s110.s110.s110 { display:none; position:absolute; top:-9px; right:-9px; align-items:center; gap:3px; padding:2px 5px; border-radius:8px; background:rgba(255,40,60,0.16); border:1px solid rgba(255,60,80,0.6); font-size:0.625rem; font-weight:700; letter-spacing:.06em; color:#ff5066; white-space:nowrap; z-index:2; pointer-events:none; }
.s111.s111.s111 { width:6px; height:6px; border-radius:50%; background:#ff3b4e; box-shadow:0 0 6px #ff3b4e; animation:vp .9s ease-in-out infinite; }
.s112.s112.s112 { -webkit-tap-highlight-color:transparent; touch-action:manipulation; gap:4px; }
.s113.s113.s113 { gap:2px; }
.s114.s114.s114 { font-size:0.6875rem; font-weight:600; color:rgba(255,255,255,0.85); letter-spacing:.06em; }
.s115.s115.s115 { display:flex; gap:6px; align-items:center; }
.s116.s116.s116 { padding:4px 10px; border-radius:8px; border:0.5px solid rgba(var(--accent-rgb),0.3); background:rgba(var(--accent-rgb),0.08); font-size:0.625rem; color:var(--accent); cursor:pointer; letter-spacing:.06em; }
.s117.s117.s117 { cursor:pointer; font-size:1rem; color:rgba(255,255,255,0.4); padding:0 4px; line-height:1; }
.s118.s118.s118 { padding:8px; border-bottom:1px solid rgba(var(--accent-rgb),0.08); }
.s119.s119.s119 { width:100%; background:rgba(255,255,255,0.05); border:0.5px solid rgba(var(--accent-rgb),0.15); border-radius:8px; padding:6px 10px; font-size:0.625rem; color:rgba(255,255,255,0.7); outline:none; }
.s120.s120.s120 { flex:1; overflow-y:auto; padding:6px 0; }
.s121.s121.s121 { display:none; width:28px; height:28px; border-radius:8px; border:0.5px solid rgba(var(--accent-rgb),0.2); background:rgba(var(--accent-rgb),0.06); align-items:center; justify-content:center; cursor:pointer; color:rgba(var(--accent-rgb),0.7); font-size:1rem; line-height:1; }
.s122.s122.s122 { display:none; position:fixed; bottom:80px; right:16px; z-index:500; width:52px; height:52px; border-radius:50%; background:var(--accent); color:#000; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 4px 20px rgba(var(--accent-rgb),0.5); -webkit-tap-highlight-color:transparent; touch-action:manipulation; transition:transform .2s; }
.s123.s123.s123 { border-right:none; flex:1; display:flex; align-items:center; justify-content:center; }

/* The model picker's drawn caret. Moved by hand: the declaration spans a newline
 * and contains a full <svg> inside the attribute value, so the tag-level transform
 * could not match it. &quot; in the attribute becomes a real quote in CSS. */
.s-select.s-select.s-select { background:rgba(255,255,255,0.04) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.45)' stroke-width='3' stroke-linecap='round'><path d='M6 9l6 6 6-6'/></svg>") no-repeat right 9px center;border:1px solid rgba(var(--accent-rgb),0.2);border-radius:7px;padding:3px 26px 3px 11px;font-size:0.625rem;color:var(--text-dim);outline:none;cursor:pointer;-webkit-appearance:none;appearance:none;letter-spacing:.03em;max-width:124px;height:34px; }

/* From markup app.js generates at runtime. Same reasoning as above; the triple
 * class keeps these above ordinary component selectors. */
.g0.g0.g0 { padding:20px 12px; font-size:0.625rem; color:rgba(var(--accent-rgb),0.3); text-align:center; }
.g1.g1.g1 { color:var(--bad); }
.g2.g2.g2 { color:var(--warn); }
.g3.g3.g3 { color:rgba(255,255,255,0.95); }
.g4.g4.g4 { background:rgba(var(--accent-rgb),0.15); padding:1px 5px; border-radius:4px; font-size:0.625rem; font-family:monospace; }
.g5.g5.g5 { color:rgba(var(--accent-rgb),0.7); font-weight:600; }
.g6.g6.g6 { border-right:none; cursor:pointer; flex:1; display:flex; align-items:center; justify-content:center; gap:12px; flex-wrap:wrap; }
.g7.g7.g7 { font-size:0.625rem; letter-spacing:.12em; }
.g8.g8.g8 { font-size:0.6875rem; color:var(--accent); }
.g9.g9.g9 { opacity:.45; }
.g10.g10.g10 { border-right:none; }
.g11.g11.g11 { font-size:0.625rem; }
.g12.g12.g12 { color:var(--text-faint); }
.g13.g13.g13 { border:1px dashed var(--line); margin-top:6px; }
.g14.g14.g14 { font-size:0.6875rem; color:rgba(255,255,255,.4); padding:8px; }
.g15.g15.g15 { flex:1; min-width:0; }
.g16.g16.g16 { border-color:rgba(226,104,95,.3); color:var(--bad); }
.g17.g17.g17 { font-size:0.625rem; color:rgba(58,155,220,.3); padding:5px; }
.g18.g18.g18 { padding:4px 7px; background:#020810; border-radius:5px; border:1px solid rgba(58,155,220,.08); font-size:0.625rem; color:#80c8e8; margin-top:3px; }
.g19.g19.g19 { font-size:0.625rem; color:rgba(58,155,220,.35); }
.g20.g20.g20 { padding:3px 9px; border-radius:5px; border:1px solid rgba(62,201,138,.35); background:rgba(62,201,138,.07); font-size:0.625rem; color:var(--good); cursor:pointer; white-space:nowrap; }
.g21.g21.g21 { font-size:0.625rem; color:rgba(255,255,255,.25); }
.g22.g22.g22 { font-size:0.625rem; color:rgba(58,155,220,.7); flex:1; }
.g23.g23.g23 { font-size:0.625rem; color:rgba(58,155,220,.3); padding:7px; }
.g24.g24.g24 { background:rgba(58,155,220,.04); border:1px solid rgba(58,155,220,.1); border-radius:5px; padding:7px; font-size:0.625rem; color:#80c8e8; margin-bottom:5px; }
.g25.g25.g25 { color:var(--accent); }
.g26.g26.g26 { background:#020810; border:1px solid rgba(58,155,220,.08); border-radius:5px; padding:6px 8px; font-size:0.625rem; color:#80c8e8; }
.g27.g27.g27 { font-size:0.5625rem; color:rgba(58,155,220,.3); }
.g28.g28.g28 { background:#020810; border:1px solid rgba(58,155,220,.08); border-radius:6px; padding:7px 11px; display:flex; align-items:center; justify-content:space-between; }
.g29.g29.g29 { font-size:0.6875rem; color:#80c8e8; }
.g30.g30.g30 { font-size:0.625rem; color:rgba(58,155,220,.35); margin-left:7px; }
.g31.g31.g31 { padding:3px 7px; border-radius:4px; border:1px solid rgba(226,104,95,.3); background:transparent; font-size:0.625rem; color:var(--bad); cursor:pointer; }
.g32.g32.g32 { color:var(--text-faint); font-size:.75rem; }
.g33.g33.g33 { font-size:0.6875rem; color:rgba(255,255,255,.4); padding:8px 0; }
.g34.g34.g34 { background:rgba(var(--accent-rgb),.10); color:var(--accent); }
.g35.g35.g35 { color:var(--warn,#e0a03a); font-size:.6875rem; }

/* A binary colour choice is two classes rather than a computed style string. */
.ok-good.ok-good { color: var(--good); }
.ok-bad.ok-bad { color: var(--bad); }
