/* Crashlytics-like light theme. Class names are shared with the issue/event/dSYM pages. */
:root { --bg:#f8f9fa; --card:#fff; --line:#e0e0e0; --fg:#202124; --muted:#5f6368; --blue:#1a73e8; --blue-soft:#e8f0fe; --green:#137333; --green-soft:#e6f4ea; --red:#c5221f; --red-soft:#fce8e6; --yellow-soft:#fef7e0; --purple:#7627bb; --purple-soft:#f3e8fd; --shadow:0 1px 2px rgba(60,64,67,.3),0 1px 3px 1px rgba(60,64,67,.15); }
* { box-sizing:border-box; }
html { background:var(--bg); }
body { margin:0; background:var(--bg); color:var(--fg); font:14px/1.5 "Google Sans","Roboto",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
a { color:var(--blue); text-decoration:none; } a:hover { text-decoration:underline; }
h1 { font-size:22px; font-weight:400; margin:8px 0 12px; }
h2 { font-size:18px; font-weight:400; margin:0; }
h3 { font-size:16px; font-weight:500; margin:0 0 10px; }
h4 { font-size:13px; font-weight:500; margin:12px 0 6px; color:var(--muted); }
.muted { color:var(--muted); } .small { font-size:12px; } .ok { color:var(--green); } .bad { color:var(--red); } .warn { color:#b06000; }
.mono, code, pre, .culprit, table.frames { font-family:"Roboto Mono",ui-monospace,SFMono-Regular,Menlo,monospace; }
code { font-size:12px; background:#f1f3f4; padding:1px 4px; border-radius:3px; }
pre { background:#f8f9fa; border:1px solid var(--line); border-radius:8px; padding:12px; overflow:auto; font-size:12px; white-space:pre-wrap; word-break:break-word; margin:6px 0; }
pre.reason { color:#8a2d00; background:#fff8f0; border-color:#f5d0b0; }
pre.raw { max-height:600px; }

/* header */
header.top { display:flex; align-items:center; gap:18px; padding:0 24px; height:56px; background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:5; }
header .brand, header .app-name { font-size:18px; color:var(--fg); }
header .app-switch { font-size:18px; border:none; background:transparent; font-family:inherit; color:var(--fg); padding:4px 0; cursor:pointer; }
header .product { font-size:18px; color:var(--fg); }
header nav { display:flex; gap:4px; margin-left:12px; }
header nav a { padding:6px 12px; border-radius:16px; color:var(--muted); font-weight:500; } header nav a:hover { background:#f1f3f4; text-decoration:none; }
header .logout { margin-left:auto; }
main { max-width:1280px; margin:0 auto; padding:20px 24px 60px; }

/* cards & layout */
.card { background:var(--card); border-radius:12px; box-shadow:var(--shadow); padding:18px 24px; margin:16px 0; }
.card.narrow { max-width:360px; margin:80px auto; }
.cols { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; } .cols .card { margin:0; }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:24px; } .two-col .card { margin:0; }
@media (max-width:900px) { .two-col { grid-template-columns:1fr; } }
.section-head { display:flex; align-items:center; justify-content:space-between; margin:36px 0 12px; }
.banner { background:var(--blue-soft); color:#174ea6; border-radius:8px; padding:12px 18px; margin:16px 0; }
.notice { background:var(--green-soft); color:var(--green); padding:10px 14px; border-radius:8px; }
.error { color:var(--red); }
.warnbox { border-left:4px solid #f9ab00; }

/* toolbar / chips */
.toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.chips { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.chip { display:inline-flex; align-items:center; height:32px; padding:0 14px; border-radius:16px; background:#f1f3f4; color:var(--fg); font-weight:500; font-size:13px; white-space:nowrap; }
.chip:hover { text-decoration:none; background:#e8eaed; }
.chip.on { background:var(--blue); color:#fff; }
.chip.static { background:#f1f3f4; color:var(--muted); }
.range { display:flex; align-items:center; gap:10px; }
.range select { border:none; background:transparent; font:inherit; font-weight:500; cursor:pointer; }

/* release strip */
.card.release { display:flex; align-items:center; gap:18px; padding:14px 24px; }
.release .rocket { font-size:20px; }
.release-users { flex:1; display:flex; align-items:center; gap:12px; }
.release-bar { display:inline-block; width:340px; max-width:40%; height:14px; background:#e8eaed; border-radius:2px; overflow:hidden; }
.release-bar span { display:block; height:100%; background:#0d652d; }
.text-link { font-weight:500; }
.btn, button { font:inherit; font-weight:500; border:1px solid #dadce0; background:#fff; color:var(--blue); border-radius:20px; padding:7px 16px; cursor:pointer; }
.btn:hover, button:hover { background:#f8fbff; text-decoration:none; }
button.text { border:none; background:transparent; padding:6px 10px; } button.text:hover { background:#f1f3f4; }
.btn.outline { border-color:#dadce0; }
button.primary, .btn.primary { background:var(--blue); color:#fff; border-color:var(--blue); }
input, select { font:inherit; border:1px solid #dadce0; border-radius:6px; padding:7px 10px; background:#fff; color:var(--fg); }
label { display:block; margin:10px 0; } label input { display:block; width:100%; margin-top:4px; }
form.inline { display:inline-flex; gap:8px; align-items:center; flex-wrap:wrap; }

/* stability tabs */
.tabs-card { padding:0; overflow:hidden; }
.tabs { display:flex; border-bottom:2px solid var(--line); }
.tab { flex:1; margin:0; padding:18px 24px 14px; cursor:pointer; position:relative; }
.tab input { position:absolute; opacity:0; }
.tab .tab-title { display:block; color:var(--muted); font-size:15px; }
.tab .tab-value { display:block; font-size:26px; font-weight:500; margin-top:4px; }
.tab .tab-value small { font-size:13px; font-weight:500; margin-left:4px; }
.tab:has(input:checked) { background:var(--blue-soft); }
.tab:has(input:checked) .tab-title { color:var(--blue); }
.tab:has(input:checked)::after { content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--blue); }
.tab-panel { padding:16px 24px 8px; }
.chart-title { font-size:16px; font-weight:400; }
svg.chart text.axis { font-size:11px; fill:var(--muted); font-family:inherit; }
.badge { display:inline-block; font-size:10px; font-weight:700; border:1px solid #dadce0; border-radius:10px; padding:0 6px; margin-left:6px; vertical-align:middle; color:var(--muted); }
.trend-legend { display:flex; gap:40px; margin:6px 0 4px; }
.trend-legend .dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--blue); margin-right:6px; }
.trend-n { font-size:22px; font-weight:500; }
.trend-delta { font-size:13px; font-weight:500; }

/* issues table */
.issues-card { padding:0; }
.issues-toolbar { display:flex; align-items:center; gap:16px; padding:14px 18px; flex-wrap:wrap; }
.search { flex:1; display:flex; align-items:center; gap:8px; background:#f1f3f4; border-radius:24px; padding:0 16px; height:44px; min-width:260px; }
.search input { flex:1; border:none; background:transparent; font-size:15px; outline:none; }
.bulk-actions { display:flex; gap:4px; }
table { border-collapse:collapse; width:100%; }
table.issues th { text-align:left; font-weight:500; color:var(--muted); font-size:13px; padding:12px 16px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
table.issues th a { color:var(--muted); }
table.issues td { padding:18px 16px; border-bottom:1px solid var(--line); vertical-align:middle; }
table.issues tbody tr:hover { background:#f8f9fa; }
table.issues .chk { width:36px; padding-right:0; }
table.issues .col-versions { width:160px; color:var(--muted); white-space:nowrap; }
table.issues .col-trend { width:200px; }
table.issues .col-n { width:90px; text-align:center; font-size:15px; }
.issue-cell .meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; color:var(--muted); font-size:13px; margin-bottom:6px; }
.issue-cell .sep { width:1px; height:16px; background:var(--line); }
.issue-cell .title { display:block; color:var(--fg); font-size:15px; font-weight:500; margin:2px 0; }
.issue-cell .subtitle { color:var(--muted); font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:640px; }
.kind { display:inline-flex; align-items:center; gap:6px; }
.kind-icon { width:14px; height:14px; border-radius:50%; border:2px solid currentColor; position:relative; }
.kind-icon::before, .kind-icon::after { content:""; position:absolute; left:2px; top:4px; width:6px; height:2px; background:currentColor; transform:rotate(45deg); }
.kind-icon::after { transform:rotate(-45deg); }
.kind-crash { color:var(--red); } .kind-nonfatal { color:#b06000; } .kind-hang { color:#7627bb; } .kind-termination { color:#1967d2; }
.tag { display:inline-flex; align-items:center; height:24px; padding:0 10px; border-radius:12px; font-size:12px; font-weight:500; background:#f1f3f4; color:var(--fg); }
.tag-fresh { background:var(--green-soft); color:var(--green); }
.tag-regressed { background:var(--red-soft); color:var(--red); }
.tag-early { background:var(--blue-soft); color:#1967d2; }
.tag-repetitive { background:var(--purple-soft); color:var(--purple); }
.tag.crash, .tag.hang, .tag.termination, .tag.nonfatal { text-transform:capitalize; }
.tag.crash { background:var(--red-soft); color:var(--red); } .tag.hang { background:var(--purple-soft); color:var(--purple); } .tag.termination { background:var(--blue-soft); color:#1967d2; } .tag.nonfatal { background:var(--yellow-soft); color:#b06000; }
svg.spark { display:block; }
.empty { text-align:center; color:var(--muted); padding:40px !important; }

/* generic tables (issue / event / dsym pages) */
table.list th, table.list td { text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:top; }
table.list th { color:var(--muted); font-weight:500; font-size:12px; }
table.kv th { text-align:left; color:var(--muted); font-weight:500; padding:6px 12px 6px 0; width:130px; vertical-align:top; }
table.kv td { padding:6px 0; }
.stats { display:flex; flex-wrap:wrap; gap:10px 22px; align-items:center; margin:10px 0 14px; color:var(--muted); }
.stats b { color:var(--fg); }
.culprit { font-size:12px; color:var(--fg); margin-top:2px; } .culprit.big { font-size:14px; }
.crumbs { margin:0 0 6px; font-size:13px; }
.sub { font-size:12px; margin-top:2px; }
table.frames { font-size:12px; width:100%; }
table.frames td { padding:3px 8px 3px 0; vertical-align:top; border-bottom:1px solid #f1f3f4; }
table.frames td.n { color:var(--muted); width:28px; text-align:right; }
table.frames td.img { color:var(--muted); width:200px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:200px; }
table.frames tr.inapp td.fn { color:var(--fg); font-weight:600; }
table.frames tr.inapp td.img { color:var(--blue); }
table.frames .loc { color:var(--green); margin-left:8px; font-weight:400; } table.frames .loc.muted { color:var(--muted); }
details.card summary { cursor:pointer; font-weight:500; }
.card.summary { border-left:4px solid var(--blue); }
.bar { display:flex; justify-content:space-between; padding:4px 0; border-bottom:1px solid var(--line); font-size:12px; }
tr.lvl-error td, tr.lvl-fatal td { color:var(--red); } tr.lvl-warning td { color:#b06000; }
.big-number { font-size:28px; font-weight:500; color:var(--green); } .big-number.bad { color:var(--red); } .big-number.small-number { font-size:20px; margin-top:8px; }
.stability-strip { margin:12px 0; }
.bars { display:flex; align-items:flex-end; gap:3px; height:64px; }
.bar-col { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; min-width:0; }
.bar-fill { width:100%; background:var(--blue); border-radius:2px 2px 0 0; } .bar-fill.bad { background:var(--red); }
.bar-col span { font-size:9px; color:var(--muted); margin-top:3px; white-space:nowrap; overflow:hidden; }
code.key { user-select:all; }

/* issue / event pages */
.issue-header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin:8px 0 16px; }
.issue-header .meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; color:var(--muted); font-size:13px; }
.issue-header .sep { width:1px; height:16px; background:var(--line); }
.issue-title { font-size:22px; font-weight:500; margin:6px 0 2px; word-break:break-word; }
.issue-sub { color:var(--muted); font-size:14px; }
.issue-header .actions { flex-shrink:0; }
.tag.state-open { background:var(--blue-soft); color:#1967d2; } .tag.state-resolved { background:var(--green-soft); color:var(--green); } .tag.state-ignored { background:#f1f3f4; color:var(--muted); }
.stat-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:16px; margin:16px 0; }
.card.stat { margin:0; padding:14px 18px; }
.stat-label { color:var(--muted); font-size:13px; }
.stat-value { font-size:26px; font-weight:500; margin-top:2px; } .stat-value.small { font-size:15px; margin-top:6px; }
.breakdown { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.breakdown h4 { margin-top:4px; }
.bd-row { display:grid; grid-template-columns:1fr 60px 36px; align-items:center; gap:8px; font-size:12px; padding:3px 0; }
.bd-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bd-bar { height:8px; background:#e8eaed; border-radius:2px; overflow:hidden; } .bd-bar span { display:block; height:100%; background:var(--blue); }
.bd-n { text-align:right; color:var(--muted); }
.src { display:inline-flex; align-items:center; height:22px; padding:0 8px; border-radius:11px; font-size:12px; font-weight:500; background:#f1f3f4; color:var(--muted); }
.src-kscrash { background:var(--blue-soft); color:#1967d2; } .src-metrickit { background:#f1f3f4; color:var(--fg); }
table.sessions td { padding:12px 16px; font-size:13px; } table.sessions tr.current td { background:var(--blue-soft); }
.session-details { display:flex; flex-wrap:wrap; gap:14px 32px; padding:14px 24px; }
.sd-label { color:var(--muted); font-size:12px; } .sd { font-size:14px; }
.card.summary { padding:12px 20px; font-size:13px; line-height:1.7; } .card.summary b { margin-right:4px; }
.event-tabs { padding:0; }
.tabbar { display:flex; border-bottom:1px solid var(--line); padding:0 12px; }
.tabbtn { border:none; background:none; border-radius:0; padding:14px 16px; color:var(--muted); font-weight:500; border-bottom:2px solid transparent; margin-bottom:-1px; }
.tabbtn:hover { background:#f8f9fa; } .tabbtn.on { color:var(--blue); border-bottom-color:var(--blue); }
.tabbtn .count { background:#f1f3f4; border-radius:10px; padding:0 6px; font-size:11px; margin-left:4px; }
.tabpane { padding:16px 24px; }
.stack-toolbar { display:flex; align-items:center; gap:16px; margin-bottom:8px; font-size:13px; }
.toggle { display:inline-flex; align-items:center; gap:6px; margin:0; } .toggle input { width:auto; margin:0; }
details.thread { border:1px solid var(--line); border-radius:8px; margin:8px 0; background:#fff; }
details.thread summary { display:flex; justify-content:space-between; padding:10px 14px; cursor:pointer; font-weight:500; list-style:none; }
details.thread summary::-webkit-details-marker { display:none; }
details.thread.crashed summary { background:var(--red-soft); border-radius:8px 8px 0 0; }
details.thread.crashed:not([open]) summary { border-radius:8px; }
details.thread table.frames { margin:0; } details.thread table.frames td { padding:4px 10px; }
.stack.app-only table.frames tr.sys { display:none; }
table.frames tr.inapp td { background:#fffbe6; }
table.logs td { vertical-align:middle; }

/* Crashlytics issue page */
.cl-header { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin-top:6px; }
.cl-header-main { min-width:0; }
.cl-title { font-size:28px; font-weight:400; margin:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:1000px; }
.cl-subtitle { font-size:15px; color:var(--fg); margin-top:6px; }
.cl-chips { display:flex; align-items:center; gap:14px; margin-top:12px; flex-wrap:wrap; }
.chip.outline { background:#fff; border:1px solid #dadce0; color:var(--fg); cursor:pointer; font-weight:400; }
.cl-module { color:var(--muted); }
.cl-header-actions { display:flex; gap:12px; align-items:flex-start; flex-shrink:0; }
.split { display:inline-flex; }
.split .btn.primary { border-radius:24px 0 0 24px; padding:10px 22px; font-size:15px; }
.split .caret { border-radius:0 24px 24px 0; padding:10px 14px; border-left:1px solid rgba(255,255,255,.4); list-style:none; display:inline-block; }
details.menu { position:relative; } details.menu > summary { list-style:none; cursor:pointer; } details.menu > summary::-webkit-details-marker { display:none; }
details.menu .menu-items { position:absolute; right:0; top:110%; background:#fff; border-radius:8px; box-shadow:0 4px 12px rgba(60,64,67,.3); padding:6px; z-index:10; min-width:140px; display:flex; flex-direction:column; }
details.menu .menu-items button.text { text-align:left; color:var(--fg); }
details.notes > summary.btn { border-radius:24px; padding:10px 22px; font-size:15px; }
.notes-panel { width:340px; padding:12px !important; gap:8px; }
.notes-panel textarea { width:100%; font:inherit; border:1px solid #dadce0; border-radius:6px; padding:8px; margin-bottom:8px; }
.note { border-bottom:1px solid var(--line); padding:6px 0; }
.cl-rule { border:none; border-top:1px solid var(--line); margin:18px 0; }
.cl-sentence { font-size:18px; margin:22px 0 14px; color:var(--muted); } .cl-sentence b { color:var(--fg); font-weight:500; }
details.insights { padding:0; } details.insights summary { display:flex; align-items:center; gap:14px; padding:16px 24px; cursor:pointer; font-size:17px; list-style:none; }
details.insights summary::-webkit-details-marker { display:none; }
details.insights .spark-icon { color:#4285f4; font-size:22px; } details.insights .sep { width:1px; height:24px; background:var(--line); }
details.insights .chev { margin-left:auto; color:var(--muted); font-size:20px; }
.insights-body { padding:0 24px 16px 70px; line-height:1.7; }
.cl-chart-row { display:flex; gap:20px; margin-top:24px; }
.cl-legend { min-width:130px; } .cl-legend .dot { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px; }
.cl-chart { flex:1; min-width:0; }
.tabs.three .tab { flex:1; }
.bd-panel { padding:20px 24px; }
.bd-line { margin:0 0 20px; font-size:16px; }
.bd-track { height:5px; background:#e8eaed; margin-top:8px; border-radius:2px; overflow:hidden; } .bd-track span { display:block; height:100%; background:var(--blue); }
.events-card { padding:0; }
.ev-summary { display:flex; align-items:center; gap:36px; padding:18px 24px; border-bottom:1px solid var(--line); font-size:16px; }
.ev-label { font-weight:400; color:var(--fg); }
.ev-nav { margin-left:auto; display:flex; gap:10px; }
.ev-nav .round { width:44px; height:44px; border:1px solid #dadce0; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:22px; color:var(--blue); }
.ev-nav .round.disabled { color:#bdc1c6; pointer-events:none; }
.ev-nav .round:hover { background:#f8fbff; text-decoration:none; }
.events-card .tabbar { padding:0 24px; } .events-card .tabbtn { font-size:16px; padding:16px 14px; }
.events-card .tabpane { padding:20px 24px; }
.stack-tools { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.stack-tools .icon { border:none; background:none; color:var(--blue); font-size:18px; padding:8px 10px; border-radius:6px; font-weight:700; }
.stack-tools .icon.on { background:var(--blue-soft); } .stack-tools .toggle.right { margin-left:auto; font-size:13px; }
details.cl-thread { border:1px solid #dadce0; border-radius:12px; margin:0 0 14px; background:#fff; }
details.cl-thread summary { display:flex; justify-content:space-between; align-items:center; padding:16px 20px; cursor:pointer; list-style:none; }
details.cl-thread summary::-webkit-details-marker { display:none; }
details.cl-thread.crashed summary .cl-thread-name, details.cl-thread.crashed summary .cl-thread-sub { color:var(--blue); }
.cl-thread-name { font-size:17px; font-weight:500; } .cl-thread-sub { font-size:14px; margin-top:2px; }
details.cl-thread summary .chev { color:var(--fg); font-size:18px; }
details.cl-thread[open] > summary { border-bottom:1px solid var(--line); }
table.cl-frames { width:100%; font-family:inherit; font-size:15px; }
table.cl-frames td { padding:14px 12px; border-bottom:1px solid var(--line); vertical-align:top; }
table.cl-frames tr:last-child td { border-bottom:none; }
table.cl-frames td.n { width:56px; color:var(--muted); text-align:left; padding-left:20px; }
table.cl-frames td.img { width:220px; max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--fg); }
table.cl-frames td.fn { word-break:break-word; color:var(--fg); }
table.cl-frames tr.sys td { color:var(--muted); }
table.cl-frames tr.app td.img { font-weight:500; } table.cl-frames tr.app td.fn { color:var(--fg); }
table.cl-frames tr.culprit td { color:var(--blue) !important; font-weight:500; }
table.cl-frames .off { color:var(--muted); font-weight:400; margin-left:6px; }
table.cl-frames tr.cl-hidden-toggle td { padding:4px 12px 4px 20px; display:flex; align-items:center; gap:10px; border-bottom:none; }
.expander { border:none; background:#dfe3e8; color:var(--fg); border-radius:12px; width:40px; height:22px; cursor:pointer; padding:0; font-size:12px; }
.expander.open { transform:rotate(180deg); }
.cl-hidden-toggle .dash { flex:1; border-top:1px dashed #bdc1c6; }
table.cl-frames.inner td { padding:10px 12px; }
#stackList.app-only tr.sys, #stackList.app-only tr.cl-hidden-toggle, #stackList.app-only tr.cl-hidden { display:none; }
details.cl-thread summary .chev { display:inline-block; transition:transform .15s; }
details.cl-thread[open] > summary .chev { transform:rotate(180deg); }
.cl-hidden-toggle .muted { white-space:nowrap; }

/* split "Close ▾" button: one pill, hairline divider, no gap */
.split { display:inline-flex; align-items:stretch; font-size:0; }
.split > .btn.primary { border-radius:24px 0 0 24px; padding:10px 22px; font-size:15px; line-height:20px; margin:0; border-right:none; }
.split details.menu { display:inline-block; margin:0; }
.split details.menu > summary.caret { display:inline-flex; align-items:center; justify-content:center; border-radius:0 24px 24px 0; padding:0 14px; height:100%; min-height:42px; font-size:14px; line-height:1; margin:0; border-left:1px solid rgba(255,255,255,.35); box-shadow:none; }
.split details.menu > summary.caret::after { content:"▾"; }
.split details.menu > summary.caret { color:transparent; }
.split details.menu > summary.caret::after { color:#fff; }

/* setup page */
.setup-status { display:flex; gap:32px; flex-wrap:wrap; }
.st { display:flex; align-items:center; gap:10px; font-size:15px; }
.st-dot { width:14px; height:14px; border-radius:50%; border:2px solid #dadce0; display:inline-block; }
.st-dot.ok { background:var(--green); border-color:var(--green); }
.card.step h3 { display:flex; align-items:center; gap:10px; font-size:17px; }
.card.step .num { display:inline-flex; width:26px; height:26px; border-radius:50%; background:var(--blue); color:#fff; align-items:center; justify-content:center; font-size:14px; }
.card.step pre { font-size:13px; }
.setup-banner { font-size:15px; }

.sdk-config .row { display:grid; grid-template-columns:1fr 160px; align-items:center; gap:12px; max-width:640px; margin:8px 0; }
.sdk-config select, .sdk-config input { width:160px; }
.scanned { display:inline-block; font-size:11px; color:#b06000; background:var(--yellow-soft); border-radius:8px; padding:0 6px; margin-left:8px; font-weight:400; }
