.catalog-reference { display: grid; gap: 5px; min-width: 210px; max-width: 340px; margin-top: 8px; font-weight: 400; overflow-wrap: anywhere; }
.catalog-reference > button { justify-self: start; padding: 5px 9px; min-height: 32px; font-size: .8rem; }
.catalog-reference small { line-height: 1.4; }
.catalog-picker { width: min(560px, calc(100vw - 24px)); max-height: min(740px, calc(100dvh - 32px)); padding: 0; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); color: var(--ink); box-shadow: var(--shadow); }
.catalog-picker::backdrop { background: #10261f55; }
.catalog-picker > header { display: flex; align-items: start; justify-content: space-between; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--line); }
.catalog-picker h2 { margin: 0; font-size: 1.12rem; }
.catalog-picker header p { margin: 5px 0 0; font-size: .85rem; color: var(--muted); overflow-wrap: anywhere; }
.catalog-picker header button { flex: 0 0 auto; }
.catalog-picker-content { padding: 16px 18px 0; display: grid; gap: 12px; }
.catalog-picker label { display: grid; gap: 5px; font-size: .85rem; font-weight: 600; }
.catalog-picker input { width: 100%; min-width: 0; box-sizing: border-box; background: var(--bg-control); color: var(--ink); }
.catalog-picker-current { padding: 10px; border-radius: 8px; background: var(--bg-section-alt); font-size: .85rem; overflow-wrap: anywhere; }
.catalog-picker-current p { margin: 5px 0; }
.catalog-picker small, .catalog-picker-note, .catalog-picker-technical { color: var(--muted); font-size: .8rem; line-height: 1.45; }
.catalog-picker-results { display: grid; grid-auto-rows: max-content; align-content: start; gap: 6px; max-height: 245px; overflow-y: auto; }
.catalog-picker-choice { display: grid; justify-items: start; gap: 3px; height: auto; text-align: left; width: 100%; min-width: 0; white-space: normal; padding: 10px 12px; background: var(--bg-control); color: var(--ink); border: 1px solid var(--line); overflow-wrap: anywhere; }
.catalog-picker-choice:hover { background: var(--bg-control-hover); }
.catalog-picker-choice span { font-size: .87rem; font-weight: 400; }
.catalog-picker-pagination { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: .8rem; }
.catalog-picker-add { justify-self: start; }
.catalog-picker-status { padding: 10px 18px 14px; margin: 0; min-height: 2em; font-size: .85rem; }
.catalog-picker-form { display: grid; gap: 10px; }
.catalog-picker-form p { margin: 0; }
.catalog-picker-form footer { display: flex; justify-content: space-between; gap: 8px; padding-top: 4px; }
.catalog-picker :focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
@media (max-width: 600px) {
  .catalog-picker > header, .catalog-picker-content { padding: 12px; }
  .catalog-picker-results { max-height: 210px; }
  .catalog-picker-form footer { flex-wrap: wrap; }
  .catalog-picker button { min-height: 40px; }
}
@media print { .catalog-picker, .catalog-reference button { display: none !important; } }

/* Personal tariff controls share the selector, without changing project prices. */
.catalog-picker select { width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; background: var(--bg-control); color: var(--ink); }
.catalog-picker-card { display: grid; gap: 4px; min-width: 0; padding-bottom: 6px; }
.catalog-picker-card > button[data-catalog-tariff] { justify-self: start; font-size: .8rem; padding: 5px 9px; }
.catalog-picker-recommendation { display: grid; gap: 6px; min-width: 0; }
.catalog-picker-recommendation:empty { display: none; }
.catalog-picker label.catalog-picker-check { display: flex; align-items: center; gap: 8px; }
.catalog-picker-check input { width: auto; flex: 0 0 auto; }
.catalog-picker input[hidden] { display: none; }
.catalog-picker input[readonly] { background: var(--bg-section-alt); }
.catalog-picker-form footer { flex-wrap: wrap; }
.catalog-picker-form button { white-space: normal; }

.catalog-picker-search { display: flex; gap: 8px; align-items: end; min-width: 0; }
.catalog-picker-search label { flex: 1; min-width: 0; }
.catalog-picker-search-button { flex: 0 0 42px; min-height: 42px; font-size: 1.5rem; }
.catalog-picker-more { justify-self: center; }
