/* Auto-generated utility classes — CSP Phase 3A Task 6
 * Silver-Shield T1-07 Phase 3A, 2026-04-23
 * Do not edit by hand. Regenerate via DASHBOARD/scripts/extract_inline_styles.py
 */

.u-s1 { align-items:center; justify-content:space-between; gap:8px; }  /* 1x */
.u-s2 { background:#00A8FF; }  /* 1x */
.u-s3 { background:#FF006E; }  /* 1x */
.u-s4 { background:var(--bg-medium); border:1px solid var(--border-dark); border-radius:var(--radius-lg); padding:24px; width:360px; }  /* 1x */
.u-s5 { background:var(--bg-medium); border:1px solid var(--border-dark); border-radius:var(--radius-lg); padding:24px; width:460px; }  /* 2x */
.u-s6-error { background:var(--error); color:#fff; }  /* 1x — display:none split out 2026-04-24 sweep 2; class renamed u-s6 -> u-s6-error */
.u-s7 { border-left:1px solid var(--border-dark); }  /* 2x */
.u-s8 { border-right:1px solid var(--border-dark); }  /* 2x */
.u-s9 { color:#fca5a5; }  /* 1x */
.u-s10 { color:var(--brand-blue); border-bottom:2px solid var(--brand-blue); padding-bottom:6px; }  /* 6x */
.u-s11 { color:var(--brand-blue); font-weight:600; }  /* 1x */
.u-s12 { color:var(--brand-blue); font-weight:600; border-bottom:2px solid var(--brand-blue); padding-bottom:4px; }  /* 2x */
.u-s13 { color:var(--error); }  /* 7x */
.u-s14 { color:var(--success,#22c55e); }  /* 1x */
.u-s15 { color:var(--text-muted); }  /* 1x */
.u-s16 { color:var(--text-muted); font-size:.66rem; }  /* 1x */
.u-s17 { color:var(--text-muted); font-size:.72rem; }  /* 1x */
.u-s18 { color:var(--text-muted); font-size:0.75rem; }  /* 2x */
.u-s19 { color:var(--text-primary); }  /* 3x */
.u-s20 { color:var(--text-secondary); font-size:0.68rem; display:block; margin-bottom:4px; }  /* 1x */
.u-s21 { color:var(--text-secondary); text-decoration:none; }  /* 46x */
.u-s22 { color:var(--text-secondary); text-decoration:none; }  /* 25x — display:none split out 2026-04-24 sweep 2 */
.u-s23 { display:flex; align-items:center; gap:4px; font-size:0.8rem; color:var(--text-secondary); white-space:nowrap; }  /* 1x */
.u-s24 { display:flex; align-items:center; gap:6px; font-size:.8rem; color:var(--text-secondary); cursor:pointer; }  /* 2x */
.u-s25 { display:flex; align-items:center; gap:8px; margin-top:10px; }  /* 1x */
.u-s26 { display:flex; align-items:center; justify-content:space-between; }  /* 1x */
.u-s27 { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }  /* 1x */
.u-s28 { display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--space-lg); }  /* 3x */
.u-s29 { display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--space-md); }  /* 1x */
.u-s30 { display:flex; gap:12px; margin-top:4px; }  /* 1x */
.u-s31 { display:flex; gap:20px; border-bottom:1px solid var(--border-dark); padding-bottom:8px; margin-bottom:var(--space-lg); }  /* 6x */
.u-s32 { display:flex; gap:20px; padding:6px 16px; border-bottom:1px solid var(--border-dark); background:var(--bg-elevated); font-size:0.85rem; }  /* 2x */
.u-s33 { display:flex; gap:4px; }  /* 3x */
.u-s34 { display:flex; gap:4px; margin-bottom:6px; }  /* 1x */
.u-s35 { display:flex; gap:6px; margin-bottom:6px; }  /* 1x */
.u-s36 { display:flex; gap:8px; }  /* 8x */
.u-s37 { display:flex; gap:8px; align-items:center; }  /* 1x */
.u-s38 { display:flex; gap:8px; justify-content:flex-end; }  /* 1x */
.u-s39 { display:flex; gap:8px; margin-top:16px; justify-content:flex-end; }  /* 3x */
.u-s40 { display:flex; justify-content:flex-end; margin-bottom:var(--space-md); }  /* 1x */
.u-s41 { display:flex; justify-content:space-between; align-items:center; }  /* 2x */
.u-s42 { display:flex; justify-content:space-between; align-items:center; margin-bottom:var(--space-lg); }  /* 1x */
.u-s43 { display:flex; justify-content:space-between; align-items:center; margin-bottom:var(--space-md); }  /* 2x */
.u-s44 { display:flex; justify-content:space-between; align-items:center; margin-bottom:var(--space-sm); }  /* 1x */
.u-s45 { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }  /* 1x */
.u-s46 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }  /* 4x */
.u-s47 { display:inline; margin:0; }  /* 2x */
.u-s48 { display:none; }  /* 36x */
.u-s49-emerald { background:#064e3b; color:#6ee7b7; border-color:#065f46; }  /* 1x — display:none split out 2026-04-24 sweep 2; class renamed u-s49 -> u-s49-emerald */
.u-s50 { display:none; background:var(--bg-dark); border:1px solid var(--border-dark); border-radius:var(--radius-md); margin-top:4px; max-height:160px; overflow-y:auto; }  /* 2x */
.u-s51 { display:none; margin-top:12px; }  /* 1x */
.u-s52 { display:none; margin-top:8px; max-height:300px; overflow-y:auto; }  /* 1x */
.u-s53 { display:none; position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:300; align-items:center; justify-content:center; }  /* 2x */
.u-s54 { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.7); z-index:var(--z-modal); align-items:center; justify-content:center; }  /* 3x */
.u-s55 { flex-wrap:wrap; }  /* 1x */
.u-s56 { flex:1; }  /* 5x */
.u-s57 { flex:1; font-size:.8rem; }  /* 1x */
.u-s58 { flex:1; min-width:220px; }  /* 2x */
.u-s59 { font-family:monospace; user-select:all; word-break:break-all; }  /* 1x */
.u-s60 { font-size:.62rem; color:var(--text-muted); }  /* 4x */
.u-s61 { font-size:.62rem; padding:1px 5px; }  /* 1x */
.u-s62 { font-size:.62rem; padding:2px 6px; }  /* 3x */
.u-s63 { font-size:.64rem; padding:2px 8px; background:#1a1a1a; color:var(--text-primary); border:1px solid var(--border-dark); border-radius:3px; cursor:pointer; }  /* 1x */
.u-s64 { font-size:.65rem; }  /* 2x */
.u-s65 { font-size:.66rem; padding:2px 8px; }  /* 1x */
.u-s66 { font-size:.72rem; }  /* 3x */
.u-s67 { font-size:.75rem; padding:4px 8px; }  /* 1x */
.u-s68 { font-size:.75rem; padding:5px 12px; }  /* 2x */
.u-s69 { font-size:.7rem; }  /* 4x */
.u-s70 { font-size:.82rem; display:flex; align-items:center; gap:5px; color:var(--text-secondary); }  /* 1x */
.u-s71 { font-size:0.72rem; color:var(--text-muted); margin-top:4px; }  /* 1x */
.u-s72 { font-size:0.72rem; color:var(--text-muted); margin:0 0 14px; word-break:break-all; }  /* 1x */
.u-s73 { font-size:0.72rem; padding:2px 10px; }  /* 1x */
.u-s74 { font-size:0.82rem; }  /* 1x */
.u-s75 { font-size:0.82rem; color:var(--text-secondary); cursor:pointer; }  /* 1x */
.u-s76 { font-size:0.85rem; font-weight:700; margin-bottom:8px; }  /* 2x */
.u-s77 { font-size:1.1rem; }  /* 1x */
.u-s78 { font-size:1.4rem; margin:0; }  /* 1x */
.u-s79 { font-weight:600; margin-bottom:6px; color:var(--text-primary); }  /* 1x */
.u-s80 { height:4px; background:#4f8ef7; border-radius:2px; width:0%; transition:width 0.2s; }  /* 1x */
.u-s81 { height:4px; background:var(--bg-elevated,#1e1e28); border-radius:2px; overflow:hidden; }  /* 1x */
.u-s82 { justify-content:center; }  /* 4x */
.u-s83 { letter-spacing:.2em; font-size:1.2rem; text-align:center; }  /* 2x */
.u-s84 { margin-bottom:10px; }  /* 1x */
.u-s85 { margin-bottom:12px; }  /* 3x */
.u-s86 { margin-bottom:20px; }  /* 1x */
.u-s87 { margin-bottom:6px; }  /* 2x */
.u-s88 { margin-bottom:var(--space-sm); }  /* 12x */
.u-s89 { margin-left:10px; font-size:.82rem; color:var(--text-secondary); }  /* 1x */
.u-s90 { margin-top:10px; }  /* 1x */
.u-s91 { margin-top:12px; }  /* 4x */
.u-s92 { margin-top:12px; display:flex; gap:8px; align-items:center; }  /* 1x */
.u-s93 { margin-top:12px; padding-top:10px; border-top:1px solid var(--border-dark); }  /* 2x */
.u-s94 { margin-top:12px; padding:8px 10px; background:var(--bg-elevated,#1a1a24); border:1px solid var(--border-dark); border-radius:var(--radius-md); font-size:0.72rem; color:var(--text-muted); font-family:monospace; word-break:break-all; display:none; }  /* 1x */
.u-s95 { margin-top:4px; }  /* 3x */
.u-s96 { margin-top:6px; }  /* 1x */
.u-s97 { margin-top:6px; font-size:.62rem; word-break:break-all; }  /* 1x */
.u-s98 { margin-top:8px; border:1px solid var(--border-dark); border-radius:var(--radius-md); max-height:300px; overflow-y:auto; background:var(--bg-dark,#0d0d14); }  /* 1x */
.u-s99 { margin-top:8px; font-size:.75rem; }  /* 1x */
.u-s100 { margin-top:8px; font-size:.78rem; color:var(--text-muted); }  /* 1x */
.u-s101 { margin:0 0 16px; font-size:1rem; }  /* 2x */
.u-s102 { margin:0 0 4px; font-size:1rem; }  /* 1x */
.u-s103 { margin:0; }  /* 1x */
.u-s104 { margin:4px 0 0; }  /* 1x */
.u-s105 { margin:6px 0 12px; font-size:.78rem; color:var(--text-secondary); }  /* 1x */
.u-s106 { margin:8px 0 14px; }  /* 1x */
.u-s107 { max-height:65vh; overflow-y:auto; }  /* 1x */
.u-s108 { max-width:1100px; margin:0 auto; }  /* 4x */
.u-s109 { max-width:560px; }  /* 1x */
.u-s110 { max-width:580px; }  /* 1x */
.u-s111 { max-width:600px; }  /* 2x */
.u-s112 { max-width:600px; margin:60px auto; padding:0 16px; }  /* 1x */
.u-s113 { max-width:640px; }  /* 1x */
.u-s114 { max-width:800px; margin:0 auto; }  /* 1x */
.u-s115 { max-width:900px; margin:0 auto; }  /* 2x */
.u-s116 { max-width:960px; margin:0 auto; }  /* 3x */
.u-s117 { max-width:none; padding:0 var(--space-lg); }  /* 1x */
.u-s118 { min-width:90px; }  /* 1x */
.u-s119 { overflow-x:auto; scrollbar-width:thin; scrollbar-color:var(--border-medium) transparent; }  /* 2x */
.u-s120 { padding:0; }  /* 1x */
.u-s121 { padding:10px; color:var(--text-muted); font-size:.78rem; }  /* 2x */
.u-s122 { padding:16px; text-align:center; }  /* 1x */
.u-s123 { padding:6px 8px; border-bottom:1px solid var(--border-dark); }  /* 1x */
.u-s124 { padding:6px; }  /* 2x */
.u-s125 { padding:8px 10px; border-bottom:1px solid var(--border-dark); }  /* 2x */
.u-s126 { padding:var(--space-xl) var(--space-lg); }  /* 1x */
.u-s127 { position:relative; }  /* 5x */
.u-s128 { resize:vertical; }  /* 1x */
.u-s129 { text-align:center; padding:20px; }  /* 2x */
.u-s130 { text-align:center; padding:60px; color:var(--text-muted); }  /* 2x */
.u-s131 { width:100%; }  /* 3x */
.u-s132 { width:100%; font-size:.68rem; padding:2px 4px; background:var(--bg-secondary); border:1px solid var(--border-dark); border-radius:4px; color:var(--text-primary); }  /* 2x */
.u-s133 { width:100%; font-size:.68rem; padding:4px 0; background:var(--brand-blue,#3b82f6); color:#fff; border:none; border-radius:4px; cursor:pointer; }  /* 1x */
.u-s134 { width:100%; font-size:.72rem; }  /* 1x */
.u-s135 { width:100%; font-size:.72rem; padding:3px 6px; background:var(--bg-secondary); border:1px solid var(--border-dark); border-radius:4px; color:var(--text-primary); }  /* 1x */
.u-s136 { width:100%; font-size:0.8rem; padding:4px 8px; }  /* 1x */
.u-s137 { width:100%; margin-top:8px; font-size:.72rem; padding:4px; }  /* 1x */
.u-s138 { width:140px; font-size:0.8rem; }  /* 1x */
.u-s139 { width:160px; height:160px; }  /* 1x */
.u-s140 { width:1px; height:20px; background:var(--border-dark); margin:0 4px; }  /* 4x */
.u-s141 { width:200px; }  /* 1x */
.u-s142 { width:220px; }  /* 1x */
.u-s143 { width:260px; }  /* 1x */
.u-s144 { width:40px; height:36px; padding:2px; border:1px solid var(--border-dark); background:var(--bg-input); border-radius:var(--radius-sm); cursor:pointer; }  /* 1x */
.u-s145 { width:48px; }  /* 1x */
.u-s146 { width:500px; max-width:95vw; }  /* 1x */
.u-s147 { width:640px; max-width:95vw; max-height:90vh; overflow-y:auto; }  /* 1x */
.u-s148 { width:auto; }  /* 1x */
.u-s149 { width:auto; font-size:.75rem; }  /* 2x */
.u-s150 { width:auto; font-size:.78rem; }  /* 2x */
.u-s151 { width:auto; font-size:.8rem; }  /* 3x */

/* ----------------------------------------------------------------
 * Phase 3A-bis atomic utilities — hand-authored 2026-04-23
 * Purpose: cover runtime-emitted inline-style sites (innerHTML /
 *          insertAdjacentHTML / outerHTML / template-literal)
 *          with CSP-compatible external-CSS class names.
 * Contract: atomic (single property) where possible; composites
 *           only where a composite atomically matches a highly
 *           recurring inline-style pair (see .u-flex-center).
 * DO NOT re-run extract_inline_styles.py to regenerate this
 *        section — it lives OUTSIDE the fingerprint generator's
 *        ownership boundary. Re-run the generator only if the
 *        author-layer inline-style inventory changes.
 * ---------------------------------------------------------------- */

/* Color */
.u-text-muted     { color: var(--text-muted); }
.u-text-error     { color: var(--error); }
.u-text-secondary { color: var(--text-secondary); }
.u-text-primary   { color: var(--text-primary); }

/* Display */
.u-flex { display: flex; }
.u-grid { display: grid; }
/* (display:none — reuse existing .u-s48) */

/* Flex atomics */
.u-items-center     { align-items: center; }
.u-justify-between  { justify-content: space-between; }
.u-flex-1           { flex: 1; }
.u-flex-shrink-0    { flex-shrink: 0; }

/* Flex composite (required by design: covers 132+88 combined pattern) */
.u-flex-center { display: flex; align-items: center; }

/* Padding */
.u-pad-6-8  { padding: 6px 8px; }
.u-pad-4-8  { padding: 4px 8px; }
.u-pad-10-8 { padding: 10px 8px; }
.u-pad-4-0  { padding: 4px 0; }

/* Margin-bottom */
.u-mb-14 { margin-bottom: 14px; }
.u-mb-8  { margin-bottom: 8px; }
.u-mb-lg { margin-bottom: var(--space-lg); }
.u-mb-12 { margin-bottom: 12px; }
.u-mb-10 { margin-bottom: 10px; }

/* Margin-top */
.u-mt-8 { margin-top: 8px; }

/* Gap */
.u-gap-8  { gap: 8px; }
.u-gap-6  { gap: 6px; }
.u-gap-12 { gap: 12px; }

/* Font-size */
.u-fs-72 { font-size: 0.72rem; }
.u-fs-82 { font-size: 0.82rem; }
.u-fs-78 { font-size: 0.78rem; }
.u-fs-7  { font-size: 0.7rem; }
.u-fs-75 { font-size: 0.75rem; }
.u-fs-68 { font-size: 0.68rem; }

/* Text / cursor / font-weight / border-bottom */
.u-cursor-pointer { cursor: pointer; }
.u-bb-dark        { border-bottom: 1px solid var(--border-dark); }
.u-text-center    { text-align: center; }
.u-fw-600         { font-weight: 600; }
.u-nowrap         { white-space: nowrap; }
.u-uppercase      { text-transform: uppercase; }

/* Overflow */
.u-overflow-y-auto { overflow-y: auto; }
.u-overflow-hidden { overflow: hidden; }

/* Border-radius */
.u-radius-sm { border-radius: var(--radius-sm); }

/* Width */
.u-w-full { width: 100%; }

/* Grid */
.u-grid-span-full { grid-column: 1 / -1; }
