/* Run Builder styles. App-owned file. */
.rb { --navy:#0B1F3A; --gold:#FFD700; --ink:#1a1a2e; --muted:#5b6475; --line:#e0e4ea; --bg:#f4f5f7; --ok:#15803d; --warn:#b45309; --bad:#b91c1c;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif; color:var(--ink); background:var(--bg); padding:20px 14px 60px; min-height:70vh; }
.rb *, .rb *::before, .rb *::after { box-sizing:border-box; }
.rb-wrap { max-width:860px; margin:0 auto; }
.rb-top { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.rb-top h1 { margin:0; font-size:1.35em; color:var(--navy); }
.rb-steps { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:16px; padding:0; list-style:none; }
.rb-steps li { flex:1 1 90px; }
.rb-steps button { width:100%; border:1px solid var(--line); background:#fff; color:var(--muted); border-radius:8px; padding:8px 6px; font-size:.82em; font-weight:600; cursor:pointer; }
.rb-steps button[aria-current="step"] { background:var(--navy); color:#fff; border-color:var(--navy); }
.rb-steps button.done { color:var(--navy); border-color:var(--navy); }
.rb-steps button:disabled { opacity:.45; cursor:default; }
.rb-card { background:#fff; border:1px solid var(--line); border-radius:12px; padding:20px 20px 16px; }
.rb-card h2 { margin:0 0 4px; font-size:1.2em; color:var(--navy); }
.rb-lead { margin:0 0 16px; color:var(--muted); font-size:.95em; }
.rb-field { margin-bottom:14px; }
.rb-field label, .rb-label { display:block; font-weight:600; font-size:.9em; margin-bottom:5px; }
.rb-hint { font-weight:400; color:var(--muted); font-size:.85em; }
.rb input[type=text], .rb input[type=url], .rb input[type=date], .rb input[type=number], .rb select, .rb textarea {
  width:100%; padding:9px 10px; border:1px solid #c9ced8; border-radius:8px; font:inherit; background:#fff; color:var(--ink); }
.rb textarea { min-height:110px; resize:vertical; }
.rb textarea.rb-mono, .rb .rb-mono { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.85em; }
.rb input[type=number] { width:90px; }
.rb-row { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; }
.rb-row > .rb-field { flex:1 1 200px; margin-bottom:10px; }
.rb-btn { border:1px solid var(--navy); background:#fff; color:var(--navy); border-radius:8px; padding:9px 14px; font-weight:600; font-size:.92em; cursor:pointer; }
.rb-btn:hover { background:#eef2f8; }
.rb-btn.primary { background:var(--navy); color:#fff; }
.rb-btn.primary:hover { background:#14305a; }
.rb-btn.gold { background:var(--gold); border-color:var(--gold); color:var(--navy); }
.rb-btn.small { padding:5px 10px; font-size:.82em; }
.rb-btn:disabled { opacity:.5; cursor:default; }
.rb-nav { display:flex; justify-content:space-between; gap:10px; margin-top:18px; flex-wrap:wrap; }
.rb-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; }
.rb-pick { display:flex; flex-direction:column; justify-content:flex-start; text-align:left; border:2px solid var(--line); background:#fff; border-radius:12px; padding:14px; cursor:pointer; font:inherit; color:var(--ink); }
.rb-pick:hover { border-color:var(--navy); }
.rb-pick[aria-pressed="true"] { border-color:var(--navy); background:#eef2f8; }
.rb-pick strong { display:block; color:var(--navy); margin-bottom:4px; }
.rb-pick span { font-size:.88em; color:var(--muted); }
.rb-msg { border-radius:8px; padding:10px 12px; font-size:.9em; margin:10px 0; border:1px solid; }
.rb-msg.err { background:#fef2f2; color:var(--bad); border-color:#fecaca; }
.rb-msg.ok { background:#f0fdf4; color:var(--ok); border-color:#bbf7d0; }
.rb-msg.info { background:#eff6ff; color:#1e40af; border-color:#bfdbfe; }
.rb-msg.warn { background:#fffbeb; color:var(--warn); border-color:#fde68a; }
.rb-table { width:100%; border-collapse:collapse; font-size:.88em; }
.rb-table th, .rb-table td { text-align:left; padding:6px 8px; border-bottom:1px solid var(--line); vertical-align:middle; }
.rb-table th { color:var(--muted); font-weight:600; font-size:.82em; }
.rb-table td.num, .rb-table th.num { text-align:right; }
.rb-scroll { overflow-x:auto; }
.rb-badge { display:inline-block; padding:1px 8px; border-radius:99px; font-size:.78em; font-weight:700; }
.rb-badge.low { background:#dcfce7; color:#166534; }
.rb-badge.med { background:#fef3c7; color:#92400e; }
.rb-badge.high { background:#fee2e2; color:#991b1b; }
.rb-badge.na { background:#e5e7eb; color:#4b5563; }
.rb-tier { margin:14px 0 4px; font-weight:700; color:var(--navy); font-size:.92em; }
.rb-chips { display:flex; gap:8px; flex-wrap:wrap; margin:6px 0 12px; }
.rb-presets { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.rb-presets .rb-btn[aria-pressed="true"] { background:var(--navy); color:#fff; }
.rb-brief { min-height:360px; }
.rb-sub { margin-top:16px; padding-top:12px; border-top:1px dashed var(--line); }
.rb-sub summary { cursor:pointer; font-weight:600; color:var(--navy); }
.rb-check { display:flex; align-items:center; gap:8px; }
.rb-check input { width:18px; height:18px; }
@media (max-width:560px) { .rb-card { padding:16px 14px 12px; } .rb input[type=number] { width:70px; } }

.rb-drop { border:2px dashed #c9ced8; border-radius:12px; padding:18px; text-align:center; background:#fafbfc; margin:10px 0; }
.rb-drop.over { border-color:var(--navy); background:#eef2f8; }
.rb-drop p { margin:4px 0; }
.rb-drop label.rb-btn { display:inline-block; }
.rb-h3 { margin:0 0 4px; font-size:1.05em; color:var(--navy); }

.rb-sec { margin-top:16px; padding-top:12px; border-top:1px dashed var(--line); }
.rb-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; margin-top:10px; }
.rb-slot { border:1px solid var(--line); border-radius:10px; padding:8px; background:#fff; font-size:.85em; }
.rb-thumb { aspect-ratio:4/3; background:#eef0f4; border-radius:6px; display:flex; align-items:center; justify-content:center; overflow:hidden; margin-bottom:6px; }
.rb-thumb img, .rb-thumb video { width:100%; height:100%; object-fit:contain; }
.rb-code { font-weight:700; color:var(--navy); margin-bottom:2px; }
.rb-slot select { margin-top:6px; font-size:.85em; padding:5px 6px; }
.rb-slot .rb-hint { min-height:2.4em; }

.rb-cands { display:flex; gap:6px; flex-wrap:wrap; margin-top:6px; }
.rb-cand { padding:0; border:2px solid var(--line); border-radius:6px; background:#fff; cursor:pointer; width:52px; height:52px; overflow:hidden; }
.rb-cand img { width:100%; height:100%; object-fit:cover; display:block; }
.rb-cand.on { border-color:var(--navy); box-shadow:0 0 0 2px var(--gold); }

/* v1.0.1: version tag, utility buttons, uniform button size */
.rb-ver { font-size:.5em; font-weight:600; color:#6b7280; margin-left:8px; vertical-align:middle; }
.rb-btn { min-height:38px; box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; }
.rb-btn.small { padding:9px 14px; font-size:.92em; }
.rb-table .rb-btn.small, .rb-sub .rb-row .rb-btn.small { min-height:32px; padding:5px 10px; font-size:.82em; }
.rb-top .rb-btn.small { width:150px; padding:9px 14px; font-size:.92em; background:#e5e7eb; border-color:#c4c9d1; color:#1f2937; }
.rb-top .rb-btn.small:hover { background:#d6dae1; }
/* v1.0.1: equal heights for top buttons and step tabs */
.rb-btn, .rb-steps button { font-family:inherit; line-height:1.2; }
.rb-top .rb-btn.small { height:40px; min-height:40px; padding:0 14px; margin:0; }
.rb-top .rb-row { align-items:center; gap:8px; }
.rb-steps { align-items:stretch; }
.rb-steps li { flex:1 1 auto; display:flex; }
.rb-steps button { white-space:nowrap; height:40px; padding:0 10px; }
