/* Serviços: tela redesenhada em 31/10/2026 (classes sv-*). Abaixo do bloco novo ficam só as regras antigas ainda usadas por Equipe (professionals.js). */
/* ============================================================
   Serviços redesenhada (31/10/2026). Mesmo padrão de Clientes: cabeçalho, busca + filtro,
   4 blocos-resumo que também filtram, lista agrupada em um cartão, botão cheio fixo no
   celular e painel ao lado no computador. Só tokens; nenhum hex.
   ============================================================ */
.sv { --sv-bar: calc(76px + env(safe-area-inset-bottom, 0px)); padding: var(--sp-2) 0 calc(var(--sv-bar) + 32px); max-width: 760px; margin-inline: 0; color: var(--ink); scroll-padding-bottom: calc(var(--sv-bar) + 16px); }
.sv-head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); margin-bottom: var(--sp-4); }
.sv-head h1 { margin: 0; font-size: 28px; font-weight: 600; letter-spacing: -.03em; line-height: 1.2; }
.sv-head h1:focus { outline: none; }
.sv-head h1:focus-visible { outline: 2px solid var(--brand); outline-offset: 4px; border-radius: 4px; }
.sv-head-actions { display: flex; align-items: center; gap: var(--sp-2); }
.sv-cats-btn { min-height: 44px; }
.sv-new-top { display: none; min-height: 48px; }
.sv-find { display: flex; gap: var(--sp-2); margin-bottom: var(--sp-3); }
.sv-find[hidden], .sv-score[hidden], .sv-cats[hidden] { display: none; }
.sv-search { flex: 1; min-width: 0; display: flex; align-items: center; gap: var(--sp-2); min-height: 48px; padding: 0 var(--sp-3); border: 1.5px solid var(--rule-strong); border-radius: 12px; background: var(--surface); color: var(--ink-mute); }
.sv-search:focus-within, .sv-input:focus-within { outline: 2px solid var(--brand); outline-offset: 2px; }
.sv-search input { flex: 1; min-width: 0; min-height: 44px; border: 0; background: transparent; color: var(--ink); font: inherit; font-size: 16px; outline: 0; -webkit-appearance: none; appearance: none; }
.sv-search input::-webkit-search-cancel-button { display: none; }
.sv-search input::placeholder { color: var(--ink-mute); }
.sv-search-clear { width: 44px; height: 44px; margin-right: -12px; border: 0; background: none; color: var(--ink-2); display: grid; place-items: center; cursor: pointer; }
.sv-search-clear[hidden] { display: none; }
.sv-filter { position: relative; flex: none; width: 48px; height: 48px; display: grid; place-items: center; border: 1.5px solid var(--rule-strong); border-radius: 12px; background: var(--surface); color: var(--ink); cursor: pointer; }
.sv-filter-count { position: absolute; top: -6px; right: -6px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--btn-fill); color: var(--btn-ink); font-size: 13px; font-weight: 700; display: grid; place-items: center; }
.sv-filter-count[hidden] { display: none; }
.sv-score { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-2); margin-bottom: var(--sp-3); }
.sv-block { display: grid; align-content: start; gap: var(--sp-1); min-height: 76px; padding: var(--sp-3); border: 1.5px solid var(--rule-strong); border-radius: 12px; background: var(--surface); color: var(--ink); text-align: left; font: inherit; cursor: pointer; }
.sv-block b { font-size: 22px; line-height: 1; font-weight: 700; font-variant-numeric: tabular-nums; }
.sv-block span { font-size: 13px; line-height: 1.25; color: var(--ink-2); }
.sv-block[data-tone="attn"] b { color: var(--attn); }
.sv-block[data-tone="zero"] b { color: var(--ink-mute); }
.sv-block[aria-pressed="true"] { background: var(--brand-soft); border-color: var(--brand); box-shadow: inset 0 0 0 1px var(--brand); }
.sv-block:disabled { cursor: progress; }
.sv-cats { display: none; flex-wrap: wrap; gap: var(--sp-2); margin-bottom: var(--sp-3); }
.sv-chip { min-height: 44px; padding: 0 var(--sp-4); border: 1.5px solid var(--rule-strong); border-radius: 22px; background: var(--surface); color: var(--ink); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.sv-chip[aria-pressed="true"] { background: var(--brand-soft); border-color: var(--brand); color: var(--brand-text); }
.sv-chip:disabled { opacity: .5; cursor: not-allowed; }
.sv-active { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.sv-active:not(:empty) { margin-bottom: var(--sp-3); }
.sv-active .sv-chip { display: inline-flex; align-items: center; gap: var(--sp-2); background: var(--brand-soft); border-color: var(--brand); color: var(--brand-text); }
.sv-count { min-height: 20px; margin: 0 0 var(--sp-2); color: var(--ink-mute); font-size: 13px; }
#sv-records { scroll-padding-bottom: calc(var(--sv-bar) + 16px); }
#sv-records:focus { outline: none; }
.sv-records { margin: 0; padding: 0; background: var(--surface); border: 1px solid var(--rule-soft); border-radius: 12px; overflow: hidden; }
.sv-group { display: flex; justify-content: space-between; align-items: center; min-height: 36px; padding: 0 var(--sp-4); background: var(--surface-2); color: var(--ink-2); font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.sv-group h2 { margin: 0; font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; }
.sv-group b { font-variant-numeric: tabular-nums; font-weight: 600; }
.sv-ul { list-style: none; margin: 0; padding: 0; }
.sv-row { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(88px, auto) 24px; align-items: start; gap: var(--sp-3); padding: var(--sp-3) var(--sp-4); border-top: 1px solid var(--rule-soft); }
.sv-group + .sv-ul > .sv-row:first-child { border-top: 0; }
.sv-row.is-selected { background: var(--brand-soft); box-shadow: inset 3px 0 0 var(--brand); }
.sv-row:has(.sv-name:focus-visible) { outline: 2px solid var(--brand); outline-offset: -3px; }
.sv-sub { grid-column: 1 / -1; display: grid; gap: 2px; margin-top: calc(var(--sp-1) * -1); }
.sv-flags { display: grid; gap: 2px; }
.sv-body { display: grid; gap: 2px; min-width: 0; }
.sv-name { justify-self: start; max-width: 100%; padding: 0; min-height: 24px; border: 0; background: none; color: var(--ink); font: inherit; font-size: 16px; font-weight: 700; text-align: left; line-height: 1.35; overflow-wrap: anywhere; cursor: pointer; }
.sv-name:focus { outline: none; }
.sv-name::after { content: ""; position: absolute; inset: 0; min-height: 48px; }
.sv-meta { display: block; overflow: hidden; font-size: 14px; line-height: 1.35; color: var(--ink-2); }
/* Separador "·" abre o trecho seguinte e fica fora da caixa quando o trecho quebra para a linha de baixo: nenhuma linha começa nem termina nele. */
.sv-meta-in { display: flex; flex-wrap: wrap; margin-left: -1.2em; }
.sv-part { position: relative; margin-left: 1.2em; white-space: nowrap; }
.sv-part + .sv-part::before { content: "·" / ""; position: absolute; left: -.75em; }
.sv-team { font-size: 13px; line-height: 1.3; color: var(--ink-mute); overflow-wrap: anywhere; }
.sv-hit { font-weight: 800; color: var(--ink); text-decoration: none; }
.sv-flag { display: flex; align-items: flex-start; gap: var(--sp-1); font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--attn); }
.sv-flag svg { flex: none; margin-top: 2px; }
/* sobre a linha selecionada o laranja em texto não chega a 4,5:1 no claro: texto em --ink-2, ícone laranja */
.sv-row.is-selected .sv-flag { color: var(--ink-2); }
.sv-row.is-selected .sv-flag svg { color: var(--attn); }
.sv-price { font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.35; white-space: nowrap; text-align: right; }
.sv-go { align-self: center; color: var(--ink-mute); display: grid; place-items: center; }
.sv-go svg { transform: rotate(-90deg); }
.sv-row.is-off .sv-name, .sv-row.is-off .sv-price { color: var(--ink-2); }
.sv-row.has-react { grid-template-columns: minmax(0, 1fr) minmax(80px, auto) auto; align-items: center; }
.sv-row.has-react .sv-sub { margin-top: 0; }
.sv-react { position: relative; z-index: 1; justify-self: end; min-width: 76px; min-height: 44px; padding: 0; border: 0; background: none; color: var(--brand-text); font: inherit; font-size: 14px; font-weight: 700; text-align: right; text-decoration: underline; cursor: pointer; }
/* estados */
.sv-state { display: grid; justify-items: center; gap: var(--sp-2); padding: var(--sp-6) var(--sp-4); text-align: center; background: var(--surface); border: 1px solid var(--rule-soft); border-radius: 12px; }
.sv-state > svg { color: var(--ink-mute); }
.sv-state h2 { margin: 0; font-size: 18px; font-weight: 700; letter-spacing: -.01em; text-wrap: balance; }
.sv-state p { margin: 0; max-width: 34ch; font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.sv-state .btn { min-height: 48px; margin-top: var(--sp-2); }
/* Foco programático no título do erro (leitor de tela): sem anel, a menos que a pessoa esteja no teclado (data-kb, ligado por keydown e desligado por pointerdown). */
.sv:not([data-kb]) .sv-state h2:focus { outline: none; }
.sv[data-kb] .sv-state h2:focus-visible { outline: 2px solid var(--brand); outline-offset: 4px; border-radius: 4px; }
.sv-state.is-error { background: var(--bad-bg); border-color: transparent; }
.sv-state.is-error > svg, .sv-state.is-error h2 { color: var(--bad); }
.sv-skel { background: var(--surface); border: 1px solid var(--rule-soft); border-radius: 12px; overflow: hidden; }
.sv-skel-row { display: grid; gap: var(--sp-2); padding: var(--sp-3) var(--sp-4); border-top: 1px solid var(--rule-soft); height: 76px; box-sizing: border-box; }
.sv-skel-row:first-child { border-top: 0; }
.sv-skel i { display: block; height: 14px; border-radius: 7px; background: var(--rule-strong); opacity: .55; animation: sv-pulse 1.4s ease-in-out infinite; }
.sv-skel i:nth-child(2) { width: 55%; height: 12px; }
@keyframes sv-pulse { 50% { opacity: .3; } }
.sv-first { display: grid; gap: var(--sp-2); padding: var(--sp-4); background: var(--surface); border: 1.5px solid var(--rule-strong); border-radius: 12px; }
.sv-first h2 { margin: 0; font-size: 20px; font-weight: 700; letter-spacing: -.02em; text-wrap: balance; }
.sv-first > p { margin: 0; font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.sv-first > .btn { min-height: 48px; width: 100%; justify-content: center; }
.sv-first details { margin: 0; font-size: 13px; color: var(--ink-2); }
.sv-first summary { min-height: 44px; display: flex; align-items: center; justify-self: start; color: var(--brand-text); font-size: 14px; font-weight: 700; text-decoration: underline; list-style: none; cursor: pointer; }
.sv-first summary::-webkit-details-marker { display: none; }
.sv-first ul { margin: 0; padding-left: var(--sp-4); display: grid; gap: var(--sp-1); }
.sv-first .sv-link { justify-self: start; margin-top: calc(var(--sp-2) * -1); }
/* Celular: respiro interno menor para o cartão terminar acima da barra fixa na primeira tela (844 px). */
.sv-first.is-mobile { padding-block: var(--sp-3); gap: var(--sp-1); }
.sv-first.is-mobile > .btn { min-height: 44px; }
.sv-first.is-mobile > .btn + .btn { margin-top: var(--sp-1); }
.sv-first.is-mobile .sv-link { margin-top: calc(var(--sp-1) * -1); }
.sv-first-error { margin: 0; color: var(--bad); font-size: 14px; }
.sv-link { justify-self: start; min-height: 44px; padding: 0; border: 0; background: none; color: var(--brand-text); font: inherit; font-size: 14px; font-weight: 700; text-decoration: underline; cursor: pointer; text-align: left; }
.sv-readonly { margin: 0 0 var(--sp-3); padding: var(--sp-3) var(--sp-4); border-radius: 12px; background: var(--surface-2); color: var(--ink-2); font-size: 14px; }
.sv-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; box-sizing: border-box; height: var(--sv-bar); padding: var(--sp-4) var(--sp-4) calc(var(--sp-4) + env(safe-area-inset-bottom, 0px)); background: var(--surface); border-top: 1.5px solid var(--rule-strong); display: flex; }
.sv-bar .btn { width: 100%; min-height: 48px; justify-content: center; }
.sv .btn:disabled, .sv-layer .btn:disabled { opacity: .5; cursor: not-allowed; }
/* foco visível em tudo */
:is(.sv, .sv-layer) :is(button, summary, select, a):focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
:is(.sv, .sv-layer) .sv-name:focus-visible { outline: none; }
:is(.sv, .sv-layer) :is(.sv-check, .sv-opt):has(input:focus-visible) { outline: 2px solid var(--brand); outline-offset: 2px; }
/* camadas: folha de filtro, categorias, editor (celular) e diálogos */
.sv-scrim { position: fixed; inset: 0; z-index: var(--sv-z, 900); background: rgba(0, 0, 0, .45); }
.sv-sheet { position: fixed; left: 0; right: 0; bottom: 0; z-index: calc(var(--sv-z, 900) + 1); max-height: 86dvh; overflow: auto; box-sizing: border-box; padding: var(--sp-4) var(--sp-4) var(--sp-5); background: var(--surface); color: var(--ink); border-radius: 16px 16px 0 0; display: grid; gap: var(--sp-3); align-content: start; border: 1.5px solid var(--rule-strong); border-bottom: 0; box-shadow: 0 12px 40px rgba(0, 0, 0, .35); }
.sv-sheet h2 { margin: 0; font-size: 18px; font-weight: 700; }
.sv-sheet-text { margin: 0; font-size: 14px; color: var(--ink-2); }
.sv-sheet-opts { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-2); margin: 0; padding: 0; border: 0; min-width: 0; }
.sv-opt { position: relative; display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); min-height: 48px; padding: 0 var(--sp-4); border: 1.5px solid var(--rule-strong); border-radius: 12px; background: var(--surface); color: var(--ink); font-size: 16px; font-weight: 600; cursor: pointer; }
.sv-opt input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.sv-opt:has(input:checked) { background: var(--brand-soft); border-color: var(--brand); color: var(--brand-text); }
.sv-opt small { color: var(--ink-mute); font-size: 13px; font-weight: 600; }
.sv-opt-end { display: inline-flex; align-items: center; gap: var(--sp-2); }
.sv-opt-check { width: 16px; height: 16px; display: grid; place-items: center; visibility: hidden; }
.sv-opt:has(input:checked) .sv-opt-check { visibility: visible; }
.sv-sheet .btn { min-height: 48px; width: 100%; justify-content: center; }
.sv-form-sheet { position: fixed; inset: 0; z-index: calc(var(--sv-z, 900) + 1); height: 100dvh; display: flex; flex-direction: column; background: var(--surface); color: var(--ink); }
.sv-dialog { position: fixed; left: var(--sp-4); right: var(--sp-4); top: 50%; transform: translateY(-50%); z-index: calc(var(--sv-z, 900) + 2); box-sizing: border-box; display: grid; gap: var(--sp-3); padding: var(--sp-5); background: var(--surface); color: var(--ink); border-radius: 16px; max-width: 420px; max-height: 90dvh; overflow: auto; margin-inline: auto; border: 1.5px solid var(--rule-strong); box-shadow: 0 12px 40px rgba(0, 0, 0, .35); }
.sv-dialog h2 { margin: 0; font-size: 20px; font-weight: 700; }
.sv-dialog p { margin: 0; font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.sv-dialog .sv-dlg-error, .sv-sheet .sv-dlg-error { color: var(--bad); font-weight: 600; }
.sv-dlg-error { margin: 0; font-size: 14px; }
.sv-dlg-error[hidden] { display: none; }
.sv-dlg-label { font-size: 14px; font-weight: 600; }
.sv-dlg-actions { display: grid; gap: var(--sp-2); }
.sv-dlg-actions .btn { min-height: 48px; width: 100%; justify-content: center; }
.sv-dlg-actions .sv-quiet { justify-self: center; }
.sv-btn-danger { background: var(--bad); border-color: var(--bad); color: var(--surface); box-shadow: none; }
.sv-btn-danger:hover { background: var(--bad); }
.sv-cat-create { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--sp-2); align-items: stretch; }
.sv-cat-create .btn { width: auto; }
.sv-cat-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--sp-3); min-height: 56px; padding: var(--sp-2) var(--sp-4); border-top: 1px solid var(--rule-soft); }
.sv-cat-row:first-child { border-top: 0; }
.sv-cat-row b { font-size: 16px; overflow-wrap: anywhere; }
.sv-cat-row small { display: block; font-size: 13px; color: var(--ink-mute); }
.sv-cat-actions { display: flex; gap: var(--sp-1); align-items: center; }
.sv-icon-btn { width: 44px; height: 44px; border: 0; background: none; color: var(--ink-2); display: grid; place-items: center; border-radius: 10px; cursor: pointer; }
/* formulário do serviço */
.sv-panel { display: none; }
.sv-panel:focus { outline: none; }
.sv-form { display: flex; flex-direction: column; min-height: 0; flex: 1; }
.sv-scroll { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-4); align-content: start; flex: 1; min-height: 0; overflow: auto; padding: var(--sp-4); scroll-padding-bottom: calc(var(--sv-bar) + 16px); overscroll-behavior: contain; }
.sv-form-head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); }
.sv-form-head h2 { margin: 0; font-size: 22px; font-weight: 600; letter-spacing: -.02em; line-height: 1.2; overflow-wrap: anywhere; }
.sv-form-head h2:focus { outline: none; }
.sv-form-head h2:focus-visible { outline: 2px solid var(--brand); outline-offset: 4px; border-radius: 4px; }
.sv-x { flex: none; width: 44px; height: 44px; margin-right: -8px; border: 0; background: none; color: var(--ink); display: grid; place-items: center; cursor: pointer; }
.sv-sec { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-3); padding-top: var(--sp-4); border-top: 1px solid var(--rule-soft); min-width: 0; }
.sv-scroll > .sv-sec:first-of-type { border-top: 0; padding-top: 0; }
.sv-sec h3 { margin: 0; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-2); }
.sv-sec p { margin: 0; font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.sv-fieldset { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-3); margin: 0; padding: 0; border: 0; min-width: 0; }
.sv-fieldset legend { padding: 0; margin-bottom: var(--sp-3); }
.sv-field { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-1); min-width: 0; }
.sv-field > label, .sv-field > .sv-label { font-size: 14px; font-weight: 600; }
.sv-field small { font-size: 13px; color: var(--ink-mute); line-height: 1.4; }
.sv-warn-text { color: var(--attn) !important; font-weight: 600; }
.sv-field-error { color: var(--bad); font-size: 13px; font-weight: 600; }
.sv-input { box-sizing: border-box; position: relative; width: 100%; min-height: 48px; padding: 0 var(--sp-3); border: 1.5px solid var(--rule-strong); border-radius: 12px; background: var(--surface); color: var(--ink); font-size: 16px; display: flex; align-items: center; gap: var(--sp-2); }
.sv-input input, .sv-input select, .sv-input textarea { flex: 1; min-width: 0; min-height: 44px; border: 0; background: transparent; color: inherit; font: inherit; font-size: 16px; outline: 0; padding: 0; }
.sv-input input::placeholder, .sv-input textarea::placeholder { color: var(--ink-mute); }
.sv-input em { font-style: normal; color: var(--ink-mute); }
.sv-input input[aria-invalid="true"] { color: var(--bad); }
.sv-input.is-warn { border-color: var(--attn); box-shadow: inset 0 0 0 1px var(--attn); }
.sv-input.is-select select { -webkit-appearance: none; appearance: none; padding-right: 28px; cursor: pointer; }
.sv-input.is-select > svg { position: absolute; right: var(--sp-3); pointer-events: none; }
/* Botão do menu do app (selectMenu.js) ao lado do <select> escondido: ocupa o campo (o chevron é o svg acima) e usa o foco do contêiner. */
.sv-input.is-select { padding-inline: 0; }
.sv-input.is-select .select-menu-trigger { align-self: stretch; flex: 1; min-width: 0; min-height: 44px; border: 0; border-radius: 10px; background: transparent; color: inherit; font: inherit; font-size: 16px; padding: 0 calc(var(--sp-3) + 24px) 0 var(--sp-3); outline: 0; }
.sv-input.is-select .select-menu-trigger::after { display: none; }
.sv-input.is-select .select-menu-trigger:disabled { cursor: default; opacity: .6; }
.sv-input.is-select select:focus-visible { outline: none; }
.sv-input.is-area { align-items: stretch; padding-block: var(--sp-2); }
.sv-input textarea { min-height: 72px; resize: vertical; line-height: 1.4; }
.sv-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
.sv-days { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.sv-days .sv-chip { padding: 0; min-width: 0; text-align: center; }
.sv-check { position: relative; box-sizing: border-box; width: 100%; color: var(--ink); display: flex; align-items: center; gap: var(--sp-3); min-height: 48px; padding: var(--sp-2) var(--sp-3); border: 1.5px solid var(--rule-strong); border-radius: 12px; background: var(--surface); font-size: 16px; font-weight: 600; cursor: pointer; text-align: left; }
.sv-check > input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.sv-check small { display: block; font-size: 13px; font-weight: 500; color: var(--ink-mute); }
.sv-box { flex: none; width: 24px; height: 24px; border: 2px solid var(--rule-strong); border-radius: 6px; display: grid; place-items: center; color: transparent; }
.sv-check:has(input:checked) { background: var(--brand-soft); border-color: var(--brand); }
.sv-check:has(input:checked) .sv-box { background: var(--btn-fill); border-color: var(--btn-fill); color: var(--btn-ink); }
.sv-check:has(input:disabled) { opacity: .6; }
.sv-team-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-2); }
.sv-team-list .sv-check[hidden] { display: none; }
.sv-team-tools { display: flex; flex-wrap: wrap; gap: var(--sp-3); align-items: center; }
.sv-team-tools .sv-input { flex: 1 1 200px; }
.sv-avatar { flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--brand-soft); color: var(--brand-text); display: grid; place-items: center; font-size: 13px; font-weight: 700; }
.sv-check:has(input:checked) .sv-avatar { background: var(--surface); color: var(--brand-text); box-shadow: inset 0 0 0 2px var(--brand); }
.sv-note { display: flex; gap: var(--sp-2); align-items: flex-start; padding: var(--sp-3); border-radius: 12px; background: var(--attn-bg); color: var(--attn) !important; font-size: 14px; font-weight: 600; line-height: 1.4; }
.sv-note[hidden], .sv-nomatch[hidden] { display: none; }
.sv-newcat { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: var(--sp-2); align-items: center; }
.sv-newcat[hidden] { display: none; }
.sv-more-opts { border-top: 1px solid var(--rule-soft); padding-top: var(--sp-2); }
.sv-more-opts summary { min-height: 44px; display: flex; align-items: center; justify-content: space-between; font-size: 15px; font-weight: 700; color: var(--ink); list-style: none; cursor: pointer; }
.sv-more-opts summary::-webkit-details-marker { display: none; }
.sv-more-opts summary svg { transition: transform .15s; }
.sv-more-opts[open] summary svg { transform: rotate(180deg); }
.sv-more-opts[open] > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-3); padding-top: var(--sp-2); }
.sv-photo-pick { display: inline-flex; align-items: center; gap: var(--sp-2); min-height: 48px; padding: 0 var(--sp-4); border: 1.5px solid var(--rule-strong); border-radius: 12px; background: var(--surface); color: var(--ink); font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; justify-self: start; }
.sv-photo { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: var(--sp-3); align-items: center; padding: var(--sp-3); border: 1.5px solid var(--rule-strong); border-radius: 12px; background: var(--surface); }
.sv-thumb { width: 56px; height: 56px; border-radius: 10px; object-fit: cover; background: var(--brand-soft); }
.sv-photo-info { display: grid; min-width: 0; font-size: 14px; }
.sv-photo-info b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sv-photo-info small { color: var(--ink-mute); font-size: 13px; }
.sv-photo-actions { grid-column: 1 / -1; display: flex; justify-content: space-between; }
.sv-foot-row { display: flex; justify-content: space-between; gap: var(--sp-2); padding: var(--sp-2) 0; border-top: 1px solid var(--rule-soft); }
.sv-quiet, .sv-danger { min-width: 44px; min-height: 44px; padding: 0; border: 0; background: none; font: inherit; font-size: 14px; font-weight: 700; text-decoration: underline; cursor: pointer; }
.sv-quiet { color: var(--ink-2); }
.sv-danger { color: var(--bad); }
.sv-foot { flex: none; box-sizing: border-box; padding: var(--sp-3) var(--sp-4); background: var(--surface); border-top: 1.5px solid var(--rule-strong); }
.sv-foot .btn { min-height: 48px; width: 100%; justify-content: center; }
.sv-sheet.is-filter .sv-x, .sv-sheet.is-cats .sv-x { margin-right: -8px; }
@media (hover: hover) and (pointer: fine) and (not (any-pointer: coarse)) {
  .sv-chip, .sv-search-clear, .sv-x, .sv-icon-btn, .sv-link, .sv-quiet, .sv-danger, .sv-react, .sv-cats-btn { min-height: 40px; }
  .sv-icon-btn, .sv-x { width: 40px; }
  .sv-name:hover { text-decoration: underline; }
}
@media (max-width: 339px) { .sv-days { grid-template-columns: repeat(3, minmax(0, 1fr)); } .sv-two { grid-template-columns: minmax(0, 1fr); } .sv-newcat { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .sv-skel i { animation: none; } .sv-more-opts summary svg { transition: none; } }
@media (max-width: 1279.98px) { .sv-first.is-desktop, .sv-only-desk { display: none; } }
/* computador: lista à esquerda, editor ao lado (mesma divisão de Clientes) */
.sv-layout { display: block; }
@media (min-width: 1024px) {
  .sv { max-width: 1120px; padding-bottom: var(--sp-6); }
  .sv-main { max-width: min(100%, 880px); }
  .sv-new-top { display: inline-flex; }
  .sv-readonly { display: none; }
  .sv-score { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sv-bar, .sv-filter { display: none; }
  .sv-cats { display: flex; }
  .sv-active { display: none; }
  .sv-sheet.is-cats { left: 50%; right: auto; bottom: auto; top: 50%; transform: translate(-50%, -50%); width: 480px; max-width: calc(100vw - 32px); border-radius: 16px; border-bottom: 1.5px solid var(--rule-strong); }
}
/* editor em gaveta à direita entre 768 e 1279 px (o painel ao lado não cabe) */
@media (min-width: 768px) and (max-width: 1279.98px) {
  .sv-form-sheet { inset: 0 0 0 auto; width: min(520px, 100vw); border-left: 1.5px solid var(--rule-strong); box-shadow: -12px 0 40px rgba(0, 0, 0, .25); }
}
/* painel ao lado: lista >= 320 px e painel entre 380 e 460 px */
@media (min-width: 1280px) {
  .sv-main { max-width: none; }
  .sv-layout { display: grid; grid-template-columns: minmax(320px, 1fr) minmax(380px, 460px); gap: var(--sp-5); align-items: start; }
  .sv-layout.is-solo { grid-template-columns: minmax(0, 600px); }
  .sv-panel { display: flex; flex-direction: column; position: sticky; top: var(--sp-4); align-self: start; background: var(--surface); border: 1px solid var(--rule-soft); border-radius: 12px; max-height: calc(100dvh - 32px); overflow: hidden; min-width: 0; }
  .sv-panel:empty { display: none; }
  .sv-panel:has(.sv-form) { height: calc(100dvh - 32px); }
  .sv-panel .sv-form { max-height: calc(100dvh - 32px); }
  .sv-panel .sv-first.is-desktop { margin: 0; padding: var(--sp-5); border: 0; }
  .sv-panel-empty { display: grid; gap: var(--sp-2); padding: var(--sp-5); text-align: center; color: var(--ink-2); font-size: 14px; }
  .sv-panel-empty h2 { margin: 0; font-size: 18px; color: var(--ink); }
  .sv-panel-empty p { margin: 0; }
  .sv-first.is-mobile { display: none; }
}

#svc-photo { display: grid; gap: var(--sp-2); justify-items: start; }
#svc-photo > .sv-photo { justify-self: stretch; }

/* ===== rodada de correção (31/10/2026) ===== */
/* um só indicador de foco: no wrapper; o campo interno não desenha anel nenhum (vence o catalog.css) */
:is(.sv, .sv-layer) :is(.sv-search, .sv-input) :is(input, textarea, select):is(:focus, :focus-visible) { outline: 0 !important; box-shadow: none !important; }
.sv-input.is-warn:focus-within { outline: 0; box-shadow: none; border-color: var(--brand); border-width: 2px; padding-inline: calc(var(--sp-3) - .5px); }
.sv-row.is-selected .sv-name, .sv-row.is-selected .sv-name:hover { text-decoration: none !important; }
.sv .btn:disabled, .sv-layer .btn:disabled { opacity: .5 !important; cursor: not-allowed; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .sv-scrim { background: rgba(0, 0, 0, .72); } }
:root[data-theme="dark"] .sv-scrim { background: rgba(0, 0, 0, .72); }
/* links de texto: caixa de 44 px com respiro lateral visível no foco; o texto continua alinhado à margem */
.sv-link, .sv-quiet, .sv-danger, .sv-react, .sv-first summary { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--sp-3); margin-inline: calc(var(--sp-3) * -1); border-radius: 8px; box-sizing: border-box; }
.sv-newcat .sv-quiet, .sv-cat-actions .sv-quiet, .sv-dlg-actions .sv-quiet { margin-inline: 0; }
.sv-foot-row { gap: var(--sp-3); }
.sv-panel-empty.is-loading { min-height: 126px; align-content: start; padding: var(--sp-5); border: 0; background: none; border-radius: 0; }
.sv-panel-empty.is-loading i { height: 16px; }
.sv-panel-empty.is-loading i:nth-child(1) { width: 60%; height: 20px; }
.sv-panel-empty.is-loading i:nth-child(3) { width: 80%; }
.sv-cats-btn[hidden], .sv-new-top[hidden], .sv-bar[hidden] { display: none; }
.sv :is(.sv-cats-btn, .sv-new-top, #sv-new-bottom)[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.sv .sv-first .sv-link, .sv .sv-first summary { min-height: 44px; }
@media (hover: hover) and (pointer: fine) and (not (any-pointer: coarse)) {
  .sv-link, .sv-quiet, .sv-danger, .sv-react, .sv-first summary { min-height: 40px; }
}
.sv-readonly { background: var(--surface); border: 1px solid var(--rule); }

/* ===== regras antigas compartilhadas com Equipe (service-*, category-*): mantidas inteiras ===== */
/* Serviços: catálogo, editor de serviço e categorias.
   Separado de pages.css (E3-03); carregado logo depois dele, mesma ordem. */
/* ============================================================
   Serviços · catálogo profissional
   ============================================================ */
@keyframes servicesShimmer { to { background-position-x: -240%; } }
/* O "x" nativo do type=search só existe em alguns navegadores e não avisa o
   app quando limpa; este é sempre igual e passa pelo mesmo caminho do filtro. */
.services-status-filter { display: flex; gap: 3px; padding: 3px; background: var(--ui-canvas); border: 1px solid var(--ui-border-soft); border-radius: 11px; }
.services-status-filter button {
  min-height: 34px;
  padding: 0 13px;
  color: var(--ui-text-soft);
  background: transparent;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 650;
}
.services-status-filter button.is-active { color: var(--ui-text-strong); background: var(--ui-surface-raised); box-shadow: var(--ui-shadow-card); }

.services-text-action { padding: 5px; color: var(--ui-text-soft); background: transparent; border: 0; cursor: pointer; font-size: 13px; font-weight: 600; }
.services-text-action:hover { color: var(--ui-primary-hover); }
.services-text-action.is-danger:hover { color: var(--ui-danger); }

/* Editor de serviço */
.modal-container.modal-service-editor { max-width: 920px; max-height: 92vh; }

.category-manager-row.is-bucket { grid-template-columns: 10px 1fr; background: var(--ui-surface-raised); }
.modal-service-editor .form-label { text-transform: none; letter-spacing: 0; font-size: 13px; font-weight: 600; }
.modal-service-editor .modal-header { position: sticky; top: 0; z-index: 8; background: var(--ui-surface); }
.modal-service-editor .modal-body { padding: 0; background: var(--ui-surface); }
.modal-service-editor .modal-footer { position: sticky; bottom: 0; z-index: 8; align-items: center; background: var(--ui-surface); }
.service-editor { display: grid; grid-template-columns: 1fr; }
.service-editor-section { padding: 20px 22px; background: var(--ui-surface); border-bottom: 1px solid var(--ui-border-soft); }
.service-editor-section:nth-of-type(odd) { border-right: 0; }
.service-editor-main { grid-row: span 2; }
.service-editor-section:last-of-type { grid-column: 1 / -1; border-right: 0; }

.service-editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 12px; }

.service-editor-span-2 { grid-column: 1 / -1; }
.service-editor .form-group { min-width: 0; margin: 0; }
.service-editor .field-help { display: block; margin-top: 5px; font-size: 13px; line-height: 1.35; }
.service-category-picker { position: relative; }
.service-category-trigger {
  width: 100%; min-height: 42px; display: flex; align-items: center; justify-content: space-between; padding: 0 12px;
  color: var(--ui-text); background: var(--ui-field); border: 1px solid var(--ui-border); border-radius: 12px; cursor: pointer; font-size: 13px;
}
.service-category-trigger:focus { border-color: var(--ui-primary); box-shadow: var(--focus-ring); }
.service-category-trigger > span, .service-category-menu button > span { display: flex; align-items: center; gap: 8px; }
.service-category-trigger .is-placeholder { color: var(--ui-text-faint); }
.service-category-trigger i, .service-category-menu i { width: 8px; height: 8px; background: var(--category-color); border-radius: 50%; }
.service-category-menu {
  position: absolute; z-index: 20; top: calc(100% + 6px); left: 0; right: 0; max-height: 245px; overflow-y: auto; padding: 5px;
  background: var(--ui-surface-raised); border: 1px solid var(--ui-border); border-radius: 12px; box-shadow: var(--ui-shadow-float);
}
.service-category-menu[hidden] { display: none; }
.service-category-menu button { width: 100%; min-height: 36px; display: flex; align-items: center; justify-content: space-between; padding: 0 9px; color: var(--ui-text); background: transparent; border: 0; border-radius: 8px; cursor: pointer; font-size: 13px; }
.service-category-menu button:hover, .service-category-menu button[aria-selected="true"] { background: var(--ui-primary-soft); }
.service-category-menu .service-category-new-option { justify-content: flex-start; gap: 7px; margin-top: 4px; color: var(--ui-primary-hover); border-top: 1px solid var(--ui-border-soft); border-radius: 0 0 8px 8px; }
.service-category-option { display: flex; align-items: center; gap: 2px; }
.service-category-option [data-pick-category] { flex: 1; width: auto; min-width: 0; }
.service-category-icon {
  width: 28px; min-width: 28px; min-height: 28px; padding: 0;
  display: grid; place-items: center; color: var(--ui-text-faint);
  background: transparent; border: 0; border-radius: 8px; cursor: pointer;
}
.service-category-menu .service-category-icon { width: 28px; }
.service-category-icon:hover { color: var(--ui-text-strong); background: var(--ui-primary-soft); }
.service-category-icon.is-danger:hover { color: var(--ui-danger); }
.service-category-option.is-rename, .service-category-option.is-delete { padding: 4px 6px; gap: 6px; }
.service-category-option.is-delete span { flex: 1; color: var(--ui-text-soft); font-size: 13px; line-height: 1.3; }
.service-category-option.is-delete .service-category-icon { width: auto; min-width: 36px; padding: 0 8px; font-size: 13px; font-weight: 700; }
.service-category-create { display: grid; grid-template-columns: 1fr auto auto; gap: 6px; margin-top: 7px; }
.service-category-create[hidden] { display: none; }
.service-input-prefix, .service-input-suffix { position: relative; }
.service-input-prefix > span, .service-input-suffix > span { position: absolute; top: 50%; z-index: 1; transform: translateY(-50%); color: var(--ui-text-faint); font-size: 13px; pointer-events: none; }
.service-input-prefix > span { left: 11px; }
.service-input-prefix .form-input { padding-left: 31px; }
.service-input-suffix > span { right: 11px; }
.service-input-suffix .form-input { padding-right: 38px; }

.service-team-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 7px; }
.service-team-count { color: var(--ui-text-soft); font-size: 13px; font-weight: 600; }
.service-team-count.is-empty { color: var(--ui-text-faint); font-weight: 500; }
.service-team-actions { display: flex; gap: 2px; }
.service-team-filter {
  min-height: 34px; display: flex; align-items: center; gap: 7px; margin-bottom: 7px; padding: 0 10px;
  color: var(--ui-text-faint); background: var(--ui-field); border: 1px solid var(--ui-border); border-radius: 10px;
}
.service-team-filter:focus-within { border-color: var(--ui-primary); box-shadow: var(--focus-ring); }
.service-team-filter input { width: 100%; color: var(--ui-text); background: transparent; border: 0; outline: 0; font-size: 13px; }
.service-team-filter input::placeholder { color: var(--ui-text-faint); }
.service-team-nomatch { margin: 8px 0 0; color: var(--ui-text-faint); font-size: 13px; }
.service-team-nomatch[hidden] { display: none; }
/* Até 6 pessoas a lista cabe inteira e não rola; acima disso ela rola sozinha
   em vez de esticar o modal (que também rola) até virar uma página só. */
.service-professional-picker { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; max-height: min(32vh, 220px); overflow-y: auto; overscroll-behavior: contain; }
.service-professional-option[hidden] { display: none; }
.service-professional-option { min-width: 0; display: flex; align-items: center; gap: 8px; padding: 6px 4px; background: transparent; border: 0; border-bottom: 1px solid var(--ui-border-soft); border-radius: 0; cursor: pointer; }
.service-professional-option:last-child { border-bottom: 0; }
.service-professional-option:hover { background: var(--ui-surface-raised); }
.service-professional-option input { position: absolute; opacity: 0; }
.service-checkbox { width: 16px; height: 16px; flex: 0 0 16px; display: grid; place-items: center; color: transparent; border: 1px solid var(--ui-border); border-radius: 4px; }
.service-professional-option input:checked + .service-checkbox { color: var(--paper); background: var(--ui-primary); border-color: var(--ui-primary); }

.service-professional-option strong { min-width: 0; overflow: hidden; color: var(--ui-text); font-size: 13px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.service-professional-option small { margin-left: auto; color: var(--ui-text-faint); font-size: 13px; opacity: 0; }
.service-professional-option:hover small { opacity: 1; }
#svc-team-none[hidden] { display: none; }
.service-professional-empty { display: flex; align-items: center; gap: 9px; padding: 12px; color: var(--ui-text-soft); background: var(--ui-canvas); border-radius: 10px; font-size: 13px; }
.service-image-field { display: grid; grid-template-columns: 58px 1fr auto; align-items: center; gap: 10px; }
.service-image-preview { width: 58px; height: 58px; display: grid; place-items: center; overflow: hidden; color: var(--ui-text-faint); background: var(--ui-canvas); border: 1px solid var(--ui-border-soft); border-radius: 12px; }
.service-image-preview img { width: 100%; height: 100%; object-fit: cover; }
.service-image-drop { min-height: 58px; display: flex; align-items: center; gap: 10px; padding: 10px; color: var(--ui-primary-hover); background: var(--ui-field); border: 1px dashed var(--ui-border); border-radius: 12px; cursor: pointer; }
.service-image-drop:hover, .service-image-drop.is-dragging { background: var(--ui-primary-soft); border-color: var(--ui-primary); }
.service-image-drop.is-processing { opacity: .65; pointer-events: none; }
.service-image-drop div { min-width: 0; display: flex; flex-direction: column; }
.service-image-drop strong { color: var(--ui-text); font-size: 13px; }
.service-image-drop span { margin-top: 2px; color: var(--ui-text-faint); font-size: 13px; }
.service-form-error { padding: 10px 12px; color: var(--ui-danger); background: color-mix(in srgb, var(--ui-danger) 10%, transparent); border: 1px solid color-mix(in srgb, var(--ui-danger) 24%, transparent); border-radius: 10px; font-size: 13px; line-height: 1.45; }
.service-form-error[hidden] { display: none; }
.service-editor > .service-form-error { grid-column: 1 / -1; margin: 12px 20px 0; }
.service-editor-save-note { margin-right: auto; color: var(--ui-text-faint); font-size: 13px; }

/* Gestão de categorias */
.modal-container.modal-category-manager { max-width: 620px; max-height: 88vh; }
.modal-category-manager .modal-body { padding: 0; }
.category-manager-intro { padding: 18px 20px; background: var(--ui-canvas); border-bottom: 1px solid var(--ui-border-soft); }
.category-manager-intro > p { margin: 0 0 12px; color: var(--ui-text-soft); font-size: 13px; line-height: 1.55; }
.category-create-form { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.category-manager-intro .service-form-error { margin-top: 9px; }
.category-manager-list { padding: 7px 12px 13px; }
.category-manager-row { position: relative; min-height: 57px; display: grid; grid-template-columns: 10px 1fr 34px 34px; align-items: center; gap: 8px; padding: 9px 8px; border-bottom: 1px solid var(--ui-border-soft); }
.category-manager-row.is-editing { grid-template-columns: 10px 1fr auto auto; }
.category-manager-row.is-unused .category-manager-name small { color: var(--ui-warning); }
.category-manager-color { width: 9px; height: 9px; background: var(--category-color); border-radius: 50%; }
.category-manager-name { min-width: 0; display: flex; flex-direction: column; }
.category-manager-name strong { overflow: hidden; color: var(--ui-text); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.category-manager-name small { margin-top: 2px; color: var(--ui-text-faint); font-size: 13px; }
.category-manager-icon { width: 30px; height: 30px; display: grid; place-items: center; color: var(--ui-text-soft); background: transparent; border: 0; border-radius: 8px; cursor: pointer; }
.category-manager-icon:hover { color: var(--ui-text); background: var(--ui-surface-raised); }
.category-manager-icon.is-danger:hover { color: var(--ui-danger); }
.category-delete-confirm { grid-column: 1 / -1; display: grid; gap: 8px; margin-top: 5px; padding: 12px; color: var(--ui-text-soft); background: color-mix(in srgb, var(--ui-danger) 7%, var(--ui-canvas)); border: 1px solid color-mix(in srgb, var(--ui-danger) 20%, transparent); border-radius: 10px; font-size: 13px; }
.category-delete-confirm strong { color: var(--ui-text-strong); font-size: 13px; }
.category-delete-confirm > div { display: flex; justify-content: flex-end; gap: 7px; }
.service-confirmation { display: flex; align-items: flex-start; gap: 12px; }
.service-confirmation > div:first-child { width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center; color: var(--ui-warning); background: color-mix(in srgb, var(--ui-warning) 12%, transparent); border-radius: 12px; }
.service-confirmation strong { color: var(--ui-text-strong); }
.service-confirmation p { margin: 5px 0 0; color: var(--ui-text-soft); font-size: 13px; line-height: 1.55; }

@media (max-width: 760px) {
  .services-status-filter button { flex: 1; }
  .service-editor { grid-template-columns: 1fr; }
  .service-editor-section:nth-of-type(odd) { border-right: 0; }
  .service-editor-main { grid-row: auto; }

  .modal-container.modal-service-editor { width: 96%; }
}

@media (max-width: 520px) {
  .service-editor-grid { grid-template-columns: 1fr; }
  .service-editor-span-2 { grid-column: auto; }
  .service-professional-picker { grid-template-columns: 1fr; }
  .service-image-field { grid-template-columns: 58px 1fr; }
  .service-image-field > .services-text-action { grid-column: 2; justify-self: start; }
  .service-editor-save-note { display: none; }
}
html[data-page="professionals"] .form-input::placeholder,
html[data-page="professional-detail"] .form-input::placeholder { color: var(--ink-mute); }
html[data-page="professionals"] .modal-overlay,
html[data-page="professional-detail"] .modal-overlay { background: rgba(0, 0, 0, .72); }

@media (max-width: 1100px) {
  .professionals-hero { grid-template-columns: 1fr; }
  .professional-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .professional-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .professionals-command-bar,
  .professionals-team-head { align-items: stretch; flex-direction: column; }
  .professionals-command-bar .btn { width: 100%; }
  .professionals-hero { padding: 18px; }
  .professional-team-grid { grid-template-columns: 1fr; }
  .professionals-team-tools { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.professionals-search { width: 100%; }

  .professional-command-bar { align-items: flex-start; flex-wrap: wrap; }
  .professional-command-actions { width: 100%; margin-left: 48px; }
  .professional-command-actions .btn { flex: 1; }
  /* Coluna, não wrap: com o nome comprido, deixar o botão "encaixar" ao lado
     da primeira linha do <h1> quebrado é o tipo de acidente que só aparece
     no celular de verdade, nunca no preview largo do desktop. */
  .professional-identity { flex-direction: column; align-items: stretch; }
  .professional-identity .prof-avatar { align-self: flex-start; }
  .prof-identidade-acoes { flex-direction: row; width: 100%; }
  .prof-identidade-acoes .btn { flex: 1; }
  .professional-kpis { grid-template-columns: 1fr; }

}

.sv-row.is-read { grid-template-columns: minmax(0, 1fr) minmax(88px, auto); }
.sv-head { flex-wrap: wrap; } .sv-head h1 { white-space: nowrap; }

/* rodada final: cabeçalho fixo do editor, chips sem órfão, placeholder legível */
.sv-form > .sv-form-head { flex: none; padding: var(--sp-3) var(--sp-4); background: var(--surface); border-bottom: 1px solid var(--rule-soft); }
.sv-form > .sv-form-head .sv-x { margin-right: -10px; }
.sv-input input::placeholder, .sv-input textarea::placeholder, .sv-search input::placeholder { opacity: 1; color: var(--ink-mute); }
@media (min-width: 1280px) and (max-width: 1439.98px) {
  .sv-cats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sv-cats .sv-chip { width: 100%; padding: 0 var(--sp-2); }
}
.sv-x { width: 44px; min-height: 44px; }
