/* Marktcheck im Orçamento-Editor (offer-market.js) */
:root { --omc-ok: #7fd3a4; --omc-low: #f5b862; --omc-high: #ff8a8a; --omc-line: var(--border-subtle, #3a3a3a); --omc-muted: var(--text-muted, #bfbfbf); }
.omc-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--text-soft, #8a8a8a); flex: 0 0 auto; }
.is-ok > .omc-dot, .omc-hint.is-ok > .omc-dot, .omc-verdict.is-ok .omc-dot { background: var(--omc-ok); }
.is-low > .omc-dot, .is-far-low > .omc-dot, .omc-verdict.is-low .omc-dot, .omc-verdict.is-far-low .omc-dot { background: var(--omc-low); }
.is-high > .omc-dot, .is-far-high > .omc-dot, .omc-verdict.is-high .omc-dot, .omc-verdict.is-far-high .omc-dot { background: var(--omc-high); }
.is-suggest > .omc-dot, .omc-verdict.is-suggest .omc-dot { background: transparent; border: 1.5px dashed var(--omc-muted); width: 9px; height: 9px; box-sizing: border-box; }
.omc-muted { color: var(--omc-muted); }

/* Chip unter dem Einzelpreis */
.omc-cell { margin-top: 5px; }
.omc-chip { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; padding: 3px 9px 3px 7px; border-radius: 999px; border: 1px solid var(--omc-line);
  background: rgba(255, 255, 255, 0.03); color: var(--text-main, #fff); font: inherit; font-size: 11.5px; line-height: 1.35; cursor: pointer; white-space: nowrap; font-variant-numeric: tabular-nums; }
.omc-chip b { font-weight: 600; }
.omc-chip-k { color: var(--omc-muted); }
.omc-chip:hover { border-color: var(--accent, #da3a3d); }
.omc-chip:focus-visible, .omc-add:focus-visible, .omc-sum:focus-visible { outline: 2px solid var(--accent, #da3a3d); outline-offset: 2px; }
.omc-chip.is-ok { border-color: rgba(127, 211, 164, 0.45); }
.omc-chip.is-low, .omc-chip.is-far-low { border-color: rgba(245, 184, 98, 0.5); }
.omc-chip.is-high, .omc-chip.is-far-high { border-color: rgba(255, 138, 138, 0.55); }
.omc-chip.is-suggest { border-style: dashed; color: var(--omc-muted); }
.omc-add { border: 1px dashed var(--omc-line); background: none; color: var(--text-soft, #8a8a8a); border-radius: 999px; width: 26px; height: 22px; padding: 0; font-size: 10.5px; cursor: pointer; opacity: 0.55; }
#offer-items-body tr:hover .omc-add, .omc-add:focus-visible { opacity: 1; color: var(--text-main, #fff); border-color: var(--accent, #da3a3d); }
@media (hover: none) { .omc-add { opacity: 0.8; } }
#offer-items-body tr.omc-flash td { animation: omc-flash 1.5s ease-out; }
@keyframes omc-flash { 0%, 35% { background: var(--accent-soft, rgba(218, 58, 61, 0.25)); } 100% { background: transparent; } }

/* Zusammenfassung über der Positionstabelle */
.omc-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin: 0 0 10px; padding: 8px 12px; border: 1px solid var(--omc-line); border-radius: 12px; background: rgba(255, 255, 255, 0.02); font-size: 12.5px; }
.omc-summary[hidden] { display: none; }
.omc-summary > .fa-tags { color: var(--accent, #da3a3d); }
.omc-sum-k { font-weight: 600; margin-right: 4px; }
.omc-sum { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 999px; border: 1px solid var(--omc-line); background: var(--bg-elevated, #262626); color: var(--text-main, #fff); font: inherit; font-size: 12px; cursor: pointer; }
.omc-sum:hover { border-color: var(--accent, #da3a3d); }
.omc-sum span { color: var(--omc-muted); }
.omc-summary > .omc-muted { margin-left: auto; font-size: 11.5px; }

/* Hinweis im Positionsformular */
.omc-hint { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 9px 12px; border-radius: 12px; border: 1px solid var(--omc-line);
  background: rgba(255, 255, 255, 0.025); font-size: 13px; line-height: 1.45; }
.omc-hint[hidden] { display: none; }
.omc-hint.is-ok { border-color: rgba(127, 211, 164, 0.4); }
.omc-hint.is-low, .omc-hint.is-far-low { border-color: rgba(245, 184, 98, 0.45); }
.omc-hint.is-high, .omc-hint.is-far-high { border-color: rgba(255, 138, 138, 0.5); }
.omc-hint.is-suggest { border-style: dashed; }
.omc-hint > .fa-tags { color: var(--accent, #da3a3d); }
.omc-hint-k { font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--omc-muted); }
.omc-hint-main { font-variant-numeric: tabular-nums; min-width: 0; overflow-wrap: anywhere; }
.omc-hint-state { color: var(--omc-muted); font-size: 12px; }
.omc-hint.is-ok .omc-hint-state { color: var(--omc-ok); }
.omc-hint.is-low .omc-hint-state, .omc-hint.is-far-low .omc-hint-state { color: var(--omc-low); }
.omc-hint.is-high .omc-hint-state, .omc-hint.is-far-high .omc-hint-state { color: var(--omc-high); }
.omc-hint-acts { display: inline-flex; gap: 6px; margin-left: auto; flex-wrap: wrap; }
.omc-hint-acts .btn, .omc-acts .btn { min-height: 34px; padding: 6px 12px; font-size: 12.5px; }

/* Detailfenster */
.omc-pop { position: fixed; z-index: 4000; max-height: min(78vh, 640px); overflow: auto; overscroll-behavior: contain; padding: 12px 14px 14px; border-radius: 14px;
  border: 1px solid var(--omc-line); background: var(--bg-elevated, #262626); color: var(--text-main, #fff); box-shadow: var(--shadow-soft, 0 20px 44px rgba(2, 12, 22, 0.45)); font-size: 13px; }
.omc-pop.is-sheet { left: 0; right: 0; bottom: 0; top: auto; width: auto; max-height: 82vh; border-radius: 16px 16px 0 0; padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
.omc-pop-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--omc-muted); margin-bottom: 6px; }
.omc-x { background: none; border: 0; color: var(--omc-muted); width: 32px; height: 32px; border-radius: 8px; cursor: pointer; font-size: 15px; }
.omc-x:hover { color: var(--text-main, #fff); background: rgba(255, 255, 255, 0.06); }
.omc-pop-name { display: flex; flex-direction: column; gap: 2px; margin-bottom: 8px; }
.omc-pop-name b { font-size: 14.5px; }
.omc-pop-name small { font-size: 11.5px; color: var(--omc-muted); }
.omc-verdict { display: flex; gap: 8px; align-items: baseline; margin: 6px 0 10px; padding: 8px 10px; border-radius: 10px; background: rgba(255, 255, 255, 0.04); line-height: 1.5; }
.omc-verdict .omc-dot { transform: translateY(-1px); }
.omc-verdict small { display: block; color: var(--omc-muted); font-size: 11.5px; }
.omc-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin: 0 0 8px; }
.omc-facts div { border: 1px solid var(--omc-line); border-radius: 9px; padding: 6px 9px; display: flex; flex-direction: column; gap: 1px; }
.omc-facts span { font-size: 10.5px; color: var(--omc-muted); }
.omc-facts b { font-size: 13px; font-variant-numeric: tabular-nums; }
.omc-facts small { font-size: 11px; color: var(--omc-muted); }
.omc-note { margin: 0 0 8px; font-size: 12.5px; line-height: 1.5; color: var(--text-main, #fff); }
.omc-src { margin: 0 0 10px; font-size: 11.5px; color: var(--omc-muted); line-height: 1.6; }
.omc-src a { color: var(--text-main, #fff); text-decoration: underline; text-decoration-color: var(--accent, #da3a3d); text-underline-offset: 2px; }
.omc-acts { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 0; }
.omc-picker { margin-top: 10px; }
.omc-picker[hidden] { display: none; }
.omc-search { position: relative; }
.omc-search i { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: var(--omc-muted); font-size: 12px; }
.omc-search input { width: 100%; box-sizing: border-box; padding: 9px 10px 9px 32px; font-size: 16px; border-radius: 10px; }
.omc-results { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 4px; max-height: 260px; overflow: auto; }
.omc-results li.omc-muted { padding: 6px 2px; font-size: 12px; }
.omc-results button { width: 100%; display: flex; justify-content: space-between; gap: 10px; align-items: baseline; text-align: left; padding: 8px 10px; border-radius: 9px;
  border: 1px solid var(--omc-line); background: rgba(255, 255, 255, 0.02); color: var(--text-main, #fff); font: inherit; font-size: 12.5px; cursor: pointer; }
.omc-results button:hover, .omc-results button:focus-visible { border-color: var(--accent, #da3a3d); outline: none; }
.omc-results button.is-current { border-color: var(--accent, #da3a3d); background: var(--accent-soft, rgba(218, 58, 61, 0.25)); }
.omc-results button b { font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--omc-muted); }
@media (max-width: 700px) { .omc-hint-acts { margin-left: 0; width: 100%; } .omc-hint-acts .btn { flex: 1 1 auto; } }
@media (prefers-reduced-motion: reduce) { #offer-items-body tr.omc-flash td { animation: none; background: var(--accent-soft, rgba(218, 58, 61, 0.25)); } }
