.tabs { display:flex; gap:8px; padding:7px; background:#e9eee3; border:1px solid #d6ddcf; border-radius:14px; margin:0 0 20px; }
.tabs button { flex:1; padding:12px; border:0; border-radius:9px; background:transparent; color:#4b5f4e; font:inherit; font-size:13px; font-weight:650; line-height:1.4; text-align:left; }
.tabs button[aria-selected="true"] { background:#fffefa; color:#163c30; box-shadow:0 2px 6px #163c3010; }
.tabs button:focus-visible, button:focus-visible, summary:focus-visible { outline:3px solid #5780f1; outline-offset:3px; }
.constraint-controls { padding:16px 21px; border-bottom:1px solid #dedfd7; display:flex; flex-wrap:wrap; gap:14px 24px; align-items:center; }
.constraint-controls > label { font-size:11px; font-weight:700; display:flex; align-items:center; gap:10px; }
.micro { color:#636961; font-size:12px; line-height:1.55; margin:6px 0 0; }
.constraint-controls > .micro { flex-basis:100%; }
.venue-grid { flex-basis:100%; display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:12px; }
.venue-grid label { display:flex; flex-direction:column; gap:6px; color:#526453; font-size:11px; }
.venue-grid input { width:100%; min-width:0; border:1px solid #d8ddd4; border-radius:8px; padding:9px; background:#fbfbf7; color:#1d201c; font:inherit; }
.form-bottom { flex-wrap:wrap; }
.agent-select { display:flex; align-items:center; gap:10px; font-size:11px; margin-top:12px; }
.running-note { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 18px; margin:16px 0; border:1px solid #bdcdb4; border-radius:12px; background:#eef5e8; }
.running-note strong { font-size:13px; color:#163c30; }
.running-note p { font-size:12px; color:#636961; margin:4px 0 0; }
.agent-timeline { margin:22px 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.round-card { border:1px solid #d2ddca; background:#fffefa; border-radius:12px; padding:16px; min-width:0; }
.round-card h3 { font-size:14px; margin:0 0 9px; }
.round-card p { font-size:12px; color:#526453; margin:0 0 8px; }
.round-card ul { margin:6px 0 12px; padding-left:17px; font-size:12px; }
.round-card .badge { max-width:100%; overflow-wrap:anywhere; }
.batch-input { padding:8px 18px 18px; }
.batch-input .panel-head { padding-left:0; }
.batch-input h3 { font:600 29px/1.15 Georgia,serif; letter-spacing:-.025em; }
.batch-input p.subtle { margin-top:10px; max-width:700px; }
.batch-actions { display:flex; flex-wrap:wrap; gap:10px; margin:16px 0; }
.batch-input details { margin:14px 0; font-size:13px; color:#526453; }
.batch-input summary { cursor:pointer; padding:7px 0; }
#batchJSON { margin-top:8px; min-height:230px; font:12px/1.6 ui-monospace,monospace; }
.report-source { margin:24px 0 16px; display:flex; align-items:center; gap:12px; justify-content:space-between; flex-wrap:wrap; padding:18px; border-radius:14px; background:#163c30; color:white; }
.report-source h3 { margin:0 0 3px; font-size:17px; }
.report-source p { margin:0; color:#d0deca; font-size:12px; }
.report-source.demo { background:#744521; }
.metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.metric { border:1px solid #dedfd7; border-radius:12px; background:#fffefa; padding:20px; min-width:0; }
.metric span { display:block; font-size:12px; color:#636961; }
.metric b { display:block; color:#163c30; font:600 40px/1.25 Georgia,serif; margin:8px 0; letter-spacing:-.04em; }
.metric p { font-size:11px; line-height:1.5; color:#636961; margin:0; }
.report-context { display:flex; flex-wrap:wrap; gap:10px 22px; margin:16px 0; font-size:12px; color:#526453; }
.report-table { overflow-x:auto; max-width:100%; border:1px solid #dedfd7; border-radius:12px; background:#fffefa; }
.report-table table { width:100%; border-collapse:collapse; font-size:12px; }
.report-table th { text-align:left; background:#eef2e8; padding:12px; font-weight:700; color:#435b46; }
.report-table td { padding:12px; border-top:1px solid #e9ece4; vertical-align:top; }
.report-table td details { min-width:180px; }
.report-table td p { margin:5px 0; color:#636961; }
.report-table td summary { cursor:pointer; font-weight:650; }
.report-limits { color:#636961; font-size:12px; margin-top:18px; }
.report-limits li { margin-bottom:6px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.hero-action { margin:20px 0 8px; }
.place-image { display:block; width:100%; max-width:290px; height:132px; object-fit:cover; border-radius:9px; margin:10px 0; background:#e9eee3; }
.place-address { color:#304e3b !important; font-weight:600; }
.contribution { color:#163c30 !important; padding:7px 9px; background:#edf3e7; border-radius:7px; margin:8px 0 !important; }
.status-line.shared_taste { background:#d5a32c; }
.repair-actions { display:flex; flex-direction:column; gap:7px; flex-shrink:0; }
.receipt-preview { margin:16px 0; padding:18px; background:#fffefa; border:1px dashed #9fb18c; border-radius:9px; }
.receipt-caption { letter-spacing:.08em; font-size:10px !important; }
.receipt-pick { padding:12px 0; border-bottom:1px dashed #c5d3bb; }
.receipt-pick:last-child { border:0; }
.receipt-pick h4 { margin:0 0 8px; color:#163c30; }
.profile-bars { padding:20px; margin:16px 0; background:#fffefa; border:1px solid #dedfd7; border-radius:12px; }
.profile-bars h3 { margin-top:0; font-size:15px; }
.profile-bar { display:grid; grid-template-columns:minmax(95px,1fr) 3fr; align-items:center; gap:12px; margin:10px 0; font-size:11px; overflow-wrap:anywhere; }
.bar-track { display:flex; height:24px; overflow:hidden; border-radius:5px; background:#e5e7e0; }
.bar-track span { display:flex; align-items:center; justify-content:center; color:white; font-size:11px; }
.bar-supported { background:#398855; }
.bar-generic,.bar-shared_taste { background:#b48c20; }
.bar-mismatch { background:#c74c45; }
.bar-unverified,.bar-ineligible { background:#7c8479; }
@media(max-width:800px) {
  .venue-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .agent-timeline { grid-template-columns:1fr; }
}
@media(max-width:580px) {
  .tabs { gap:3px; }
  .tabs button { font-size:11px; padding:10px 6px; overflow-wrap:anywhere; }
  .batch-input { padding:8px 12px 14px; }
  .metric { padding:14px; }
  .metric b { font-size:32px; }
  .report-table th,.report-table td { padding:10px; }
  .agent-select { flex-wrap:wrap; }
  .running-note { gap:10px; }
  .running-note .button { width:auto; }
}
