/* ============================================================================
   SOMA · soma-ui.css — UI da Operação Real (Config P1 + base p/ P2–P4). ADITIVO.
   Tokens com fallback; acento teal SOMA. Ícones currentColor.
   ============================================================================ */
:root{
  --soma-accent:#00bfa5; --soma-accent-d:#00897b; --soma-ink:#1d2939; --soma-ink2:#475467;
  --soma-ink3:#667085; --soma-line:#e4e7ec; --soma-line2:#eef0f3; --soma-bg:#f8fafc; --soma-card:#fff;
}
.soma-cfg{ display:flex; flex-direction:column; height:100%; min-height:0; color:var(--soma-ink); font-size:14px; }
.soma-cfg *{ box-sizing:border-box; }
.soma-cfg .soma-cfg-top{ display:flex; align-items:center; gap:14px; padding:14px 20px; border-bottom:1px solid var(--soma-line); flex-wrap:wrap; }
/* eyebrow no MESMO padrão do Documentos (.documents-app .eyebrow): JetBrains Mono 600, .16em, teal, sem ícone */
.soma-cfg-eyebrow{ display:inline-flex; align-items:center; gap:8px; font:600 12px 'JetBrains Mono',ui-monospace,monospace; letter-spacing:.12em; text-transform:uppercase; color:#0E7C82; -webkit-text-fill-color:#0E7C82; }
.soma-cfg-eyebrow svg{ display:none; }
.soma-cfg-search{ display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid var(--soma-line); border-radius:9px; background:var(--soma-bg); flex:1 1 240px; max-width:340px; color:var(--soma-ink3); position:relative; }
.soma-cfg-search:focus-within{ border-color:var(--soma-accent); background:#fff; }
.soma-cfg-search input{ border:0; outline:0; background:transparent; flex:1; font-size:13.5px; color:var(--soma-ink); }
/* busca por conteúdo: dropdown de locais (não filtra o menu superior) */
.soma-cfg-sr-box{ position:absolute; top:calc(100% + 6px); left:0; min-width:320px; max-width:460px; background:#fff; border:1px solid var(--soma-line); border-radius:11px; box-shadow:0 16px 44px rgba(16,36,58,.18); padding:5px; z-index:60; display:none; max-height:380px; overflow:auto; }
.soma-cfg-sr{ display:flex; align-items:center; gap:10px; width:100%; text-align:left; border:0; background:none; padding:8px 10px; border-radius:8px; cursor:pointer; color:var(--soma-ink); }
.soma-cfg-sr:hover,.soma-cfg-sr:focus{ background:var(--soma-bg); outline:none; }
.soma-cfg-sr svg{ width:14px; height:14px; color:var(--soma-accent); flex:none; }
.soma-cfg-sr .sr-main{ font-size:13px; font-weight:600; flex:1; min-width:0; }
.soma-cfg-sr .sr-main i{ font-style:normal; font-weight:400; color:var(--soma-ink3); }
.soma-cfg-sr .sr-grp{ font-size:9.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--soma-ink3); flex:none; }
.soma-cfg-sr-empty{ padding:12px 10px; font-size:12.5px; color:var(--soma-ink3); }
.soma-cfg-hl{ animation:somaCfgHl 1.6s ease; }
@keyframes somaCfgHl{ 0%,100%{ box-shadow:none; } 18%{ box-shadow:0 0 0 3px rgba(0,191,165,.30); } }
.soma-cfg-pvbadge{ display:inline-flex; align-items:center; gap:6px; margin-left:auto; font-size:12px; font-weight:700; color:#b54708; background:#fffaeb; border:1px solid #fedf89; border-radius:8px; padding:6px 11px; text-decoration:none; }

.soma-cfg-body{ display:grid; grid-template-columns:248px 1fr; flex:1; min-height:0; }
.soma-cfg-nav{ border-right:1px solid var(--soma-line); overflow:auto; padding:12px 10px; background:var(--soma-bg); }
.soma-cfg-grp{ margin-bottom:14px; }
.soma-cfg-grp-h{ display:flex; align-items:center; gap:7px; padding:4px 8px; font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--soma-ink3); }
.soma-cfg-grp-h svg{ width:14px; height:14px; }
.soma-cfg-lk{ margin-left:auto; color:#b54708; display:inline-flex; }
.soma-cfg-item{ display:flex; align-items:center; gap:9px; width:100%; text-align:left; border:0; background:transparent; cursor:pointer; font:inherit; color:var(--soma-ink2); padding:8px 10px; border-radius:8px; margin:1px 0; }
.soma-cfg-item svg{ width:16px; height:16px; flex:0 0 auto; opacity:.8; }
.soma-cfg-item:hover{ background:#eef2f1; color:var(--soma-ink); }
.soma-cfg-item.on{ background:color-mix(in srgb, var(--soma-accent) 14%, #fff); color:var(--soma-accent-d); font-weight:700; box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--soma-accent) 28%, transparent); }
.soma-cfg-item.gated{ opacity:.7; }

.soma-cfg-panel{ overflow:auto; padding:22px 26px; min-height:0; }
.soma-cfg-h h2{ margin:0; font-size:20px; font-weight:760; }
.soma-cfg-csub{ margin:4px 0 0; font-size:12px; color:var(--soma-ink3); display:flex; align-items:center; gap:6px; }
.soma-cfg-csub svg{ width:13px; height:13px; opacity:.7; }

.soma-cfg-block{ margin-top:18px; border:1px solid var(--soma-line); border-radius:13px; background:var(--soma-card); padding:16px 18px; }
.soma-cfg-block h3{ margin:0 0 4px; font-size:15px; font-weight:720; }
.soma-help{ margin:0 0 12px; font-size:12.5px; color:var(--soma-ink3); }

.soma-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 16px; }
.soma-f{ display:flex; flex-direction:column; gap:5px; min-width:0; }
.soma-f.wide{ grid-column:1/-1; }
.soma-f label{ font-size:12px; font-weight:650; color:var(--soma-ink2); }
.soma-f label i{ color:#d92d20; font-style:normal; }
.soma-f input[type=text],.soma-f input[type=number],.soma-f textarea,.soma-f select{ width:100%; border:1px solid var(--soma-line); border-radius:8px; padding:9px 11px; font:inherit; font-size:13.5px; color:var(--soma-ink); background:#fff; }
.soma-f input:focus,.soma-f textarea:focus,.soma-f select:focus{ outline:0; border-color:var(--soma-accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--soma-accent) 18%, transparent); }
.soma-f textarea{ resize:vertical; min-height:64px; }
.soma-static{ font-size:13.5px; color:var(--soma-ink2); padding:8px 0; }
.soma-file-has{ font-size:11.5px; color:var(--soma-accent-d); margin-top:3px; }
.soma-multiref{ display:flex; flex-wrap:wrap; gap:6px 14px; padding:4px 0; }
.soma-chk{ display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--soma-ink2); }
.soma-sw{ position:relative; display:inline-block; width:42px; height:24px; }
.soma-sw input{ position:absolute; opacity:0; width:0; height:0; }
.soma-sw span{ position:absolute; inset:0; background:#cfd4dc; border-radius:999px; transition:.16s; }
.soma-sw span:before{ content:''; position:absolute; width:18px; height:18px; left:3px; top:3px; background:#fff; border-radius:50%; transition:.16s; box-shadow:0 1px 2px rgba(16,24,40,.2); }
.soma-sw input:checked+span{ background:var(--soma-accent); }
.soma-sw input:checked+span:before{ transform:translateX(18px); }

.soma-actions{ display:flex; gap:8px; margin-top:14px; }
.soma-btn{ display:inline-flex; align-items:center; gap:7px; font:inherit; font-size:13.5px; font-weight:700; padding:9px 16px; border-radius:9px; border:1px solid var(--soma-line); background:#fff; color:var(--soma-ink); cursor:pointer; transition:.12s; }
.soma-btn:hover{ background:var(--soma-bg); }
.soma-btn.primary{ background:var(--soma-accent); border-color:var(--soma-accent); color:#fff; }
.soma-btn.primary:hover{ filter:brightness(1.05); }

.soma-tbl{ overflow:auto; border:1px solid var(--soma-line); border-radius:10px; }
.soma-tbl table{ width:100%; border-collapse:collapse; font-size:13px; }
.soma-tbl th{ text-align:left; font-size:11px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--soma-ink3); background:var(--soma-bg); padding:9px 12px; border-bottom:1px solid var(--soma-line); }
.soma-tbl td{ padding:9px 12px; border-bottom:1px solid var(--soma-line2); }
.soma-tbl tr:last-child td{ border-bottom:0; }
.soma-rowact{ text-align:right; white-space:nowrap; }
.soma-ic{ border:0; background:transparent; cursor:pointer; color:var(--soma-ink3); padding:4px; border-radius:6px; }
.soma-ic svg{ width:16px; height:16px; }
.soma-ic:hover{ background:var(--soma-bg); color:var(--soma-ink); }
.soma-empty{ text-align:center; color:var(--soma-ink3); padding:18px; font-style:italic; }

/* preview gate */
.soma-cfg-gatewrap{ position:relative; }
.soma-cfg-gc{ filter:grayscale(.4) opacity(.55); pointer-events:none; user-select:none; }
.soma-cfg-gate{ position:absolute; inset:0; display:flex; align-items:flex-start; justify-content:center; padding-top:60px; background:linear-gradient(180deg, rgba(248,250,252,.2), rgba(248,250,252,.85)); }
.soma-cfg-gate-card{ background:#fff; border:1px solid var(--soma-line); border-radius:14px; box-shadow:0 20px 48px -16px rgba(16,24,40,.28); padding:24px 26px; max-width:380px; text-align:center; color:var(--soma-ink); }
.soma-cfg-gate-card>svg{ width:30px; height:30px; color:var(--soma-accent); }
.soma-cfg-gate-card h3{ margin:10px 0 6px; font-size:16px; }
.soma-cfg-gate-card p{ margin:0 0 14px; font-size:13px; color:var(--soma-ink3); }
.soma-cfg-cta{ display:inline-block; background:var(--soma-accent); color:#fff; font-weight:700; font-size:13.5px; padding:9px 18px; border-radius:9px; text-decoration:none; }

/* integrações */
.soma-intgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; }
.soma-int{ display:flex; align-items:flex-start; gap:11px; border:1px solid var(--soma-line); border-radius:11px; padding:13px; }
.soma-int.on{ border-color:color-mix(in srgb,var(--soma-accent) 40%,var(--soma-line)); background:color-mix(in srgb,var(--soma-accent) 4%,#fff); }
.soma-int-i{ color:var(--soma-accent); } .soma-int-i svg{ width:20px; height:20px; }
.soma-int-b{ display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
.soma-int-b b{ font-size:14px; } .soma-int-b span{ font-size:12px; color:var(--soma-ink3); }
.soma-int-st{ font-size:11px !important; font-weight:700; color:var(--soma-ink3); }
.soma-int.on .soma-int-st{ color:var(--soma-accent-d); }
.soma-int-a{ display:flex; flex-direction:column; gap:6px; }
.soma-int-a .soma-btn{ padding:6px 11px; font-size:12px; }

.soma-badge{ font-size:11px; font-weight:700; padding:2px 9px; border-radius:999px; background:var(--soma-bg); border:1px solid var(--soma-line); color:var(--soma-ink3); }
.soma-badge.ok{ background:color-mix(in srgb,var(--soma-accent) 14%,#fff); border-color:color-mix(in srgb,var(--soma-accent) 30%,transparent); color:var(--soma-accent-d); }
.soma-link{ color:var(--soma-accent-d); font-weight:700; text-decoration:none; }

/* toast */
.soma-toast-wrap{ position:fixed; right:18px; bottom:18px; z-index:3000; display:flex; flex-direction:column; gap:8px; }
.soma-toast{ background:var(--soma-ink); color:#fff; font-size:13px; font-weight:600; padding:11px 16px; border-radius:10px; box-shadow:0 10px 30px -8px rgba(16,24,40,.4); animation:somaToastIn .18s ease-out; max-width:320px; }
.soma-toast.warn{ background:#b54708; }
.soma-toast.out{ opacity:0; transform:translateY(6px); transition:.24s; }
@keyframes somaToastIn{ from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:none;} }

@media (max-width:860px){ .soma-cfg-body{ grid-template-columns:1fr; } .soma-cfg-nav{ border-right:0; border-bottom:1px solid var(--soma-line); max-height:200px; } .soma-grid{ grid-template-columns:1fr; } }

/* ============================================================================
   P2 · Agenda dinâmica
   ============================================================================ */
.soma-ag{ padding:16px 18px; color:var(--soma-ink); }
.soma-ag-bar{ display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; margin-bottom:14px; }
.soma-ag-f{ display:flex; flex-direction:column; gap:4px; }
.soma-ag-f label{ font-size:11px; font-weight:700; color:var(--soma-ink3); text-transform:uppercase; letter-spacing:.04em; }
.soma-ag-f input,.soma-ag-f select{ border:1px solid var(--soma-line); border-radius:8px; padding:8px 10px; font:inherit; font-size:13.5px; background:#fff; }
.soma-ag-grid{ display:grid; grid-template-columns:280px 1fr; gap:14px; }
.soma-ag-col{ border:1px solid var(--soma-line); border-radius:12px; overflow:hidden; background:#fff; }
.soma-ag-colh{ padding:10px 13px; background:var(--soma-bg); border-bottom:1px solid var(--soma-line); font-weight:700; font-size:13px; }
.soma-ag-colh span{ font-weight:500; color:var(--soma-ink3); font-size:11.5px; }
.soma-ag-slots{ padding:10px; display:flex; flex-direction:column; gap:6px; max-height:62vh; overflow:auto; }
.soma-slot{ display:flex; align-items:center; justify-content:space-between; border:1px dashed var(--soma-line2); border-radius:8px; background:#fff; padding:9px 12px; font:inherit; font-weight:700; font-size:14px; cursor:pointer; color:var(--soma-ink); }
.soma-slot span{ font-weight:500; font-size:11px; color:var(--soma-accent-d); }
.soma-slot:hover{ border-color:var(--soma-accent); background:color-mix(in srgb,var(--soma-accent) 6%,#fff); }
.soma-slot.over{ border-style:solid; border-color:var(--soma-accent); background:color-mix(in srgb,var(--soma-accent) 13%,#fff); }
.soma-ag-appts{ padding:10px; display:flex; flex-direction:column; gap:8px; max-height:62vh; overflow:auto; }
.soma-appt{ border:1px solid var(--soma-line); border-left:4px solid var(--soma-ink3); border-radius:9px; padding:9px 11px; background:#fff; cursor:grab; }
.soma-appt.st-confirmado{ border-left-color:var(--soma-accent); }
.soma-appt.st-realizado{ border-left-color:#12b76a; }
.soma-appt.st-faltou{ border-left-color:#f79009; opacity:.85; }
.soma-appt.st-cancelado{ border-left-color:#d92d20; opacity:.55; text-decoration:line-through; }
.soma-appt-t{ font-weight:800; font-size:13px; }
.soma-appt-b{ display:flex; flex-direction:column; margin:2px 0 6px; } .soma-appt-b b{ font-size:14px; } .soma-appt-b span{ font-size:12px; color:var(--soma-ink3); }
.soma-appt-st{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.soma-appt-st select{ border:1px solid var(--soma-line); border-radius:7px; padding:4px 7px; font:inherit; font-size:12px; }
.soma-btn.tele{ padding:5px 10px; font-size:12px; background:#eef6ff; border-color:#b2ddff; color:#1849a9; }
.soma-ag-modalov{ position:fixed; inset:0; z-index:1200; background:rgba(16,24,40,.45); display:flex; align-items:center; justify-content:center; padding:20px; }
.soma-ag-modal{ background:#fff; border-radius:14px; padding:20px 22px; width:min(520px,100%); box-shadow:0 24px 64px -12px rgba(16,24,40,.3); }
.soma-ag-modal h3{ margin:0 0 8px; }
@media (max-width:760px){ .soma-ag-grid{ grid-template-columns:1fr; } }

/* ============================================================================
   P3 · Ficha 360
   ============================================================================ */
.soma-ficha-ov{ position:fixed; inset:0; z-index:1400; display:none; background:rgba(16,24,40,.5); backdrop-filter:blur(2px); padding:3vh 3vw; }
.soma-ficha-ov.show{ display:block; }
.soma-ficha{ display:grid; grid-template-columns:230px 1fr; height:94vh; background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 30px 80px -20px rgba(16,24,40,.5); }
.soma-ficha-rail{ background:var(--soma-bg); border-right:1px solid var(--soma-line); padding:16px 12px; overflow:auto; }
.soma-ficha-pt{ display:flex; gap:10px; align-items:center; margin-bottom:16px; }
.soma-ficha-pt b{ font-size:14px; display:block; } .soma-ficha-pt span{ font-size:12px; color:var(--soma-ink3); }
.soma-ficha-av{ width:40px; height:40px; border-radius:50%; background:var(--soma-accent); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:16px; flex:0 0 auto; }
#fichaTabs{ display:flex; flex-direction:column; gap:2px; }
.soma-ficha-tab{ display:flex; align-items:center; gap:9px; border:0; background:transparent; cursor:pointer; font:inherit; color:var(--soma-ink2); padding:9px 11px; border-radius:9px; text-align:left; }
.soma-ficha-tab svg{ width:17px; height:17px; opacity:.8; }
.soma-ficha-tab:hover{ background:#eef2f1; } .soma-ficha-tab.on{ background:color-mix(in srgb,var(--soma-accent) 14%,#fff); color:var(--soma-accent-d); font-weight:700; }
.soma-ficha-main{ display:flex; flex-direction:column; min-width:0; }
.soma-ficha-top{ display:flex; align-items:center; justify-content:space-between; padding:14px 20px; border-bottom:1px solid var(--soma-line); }
.soma-ficha-top b{ font-size:17px; }
.soma-ficha-x{ border:0; background:transparent; cursor:pointer; color:var(--soma-ink3); width:32px; height:32px; border-radius:8px; } .soma-ficha-x:hover{ background:var(--soma-bg); } .soma-ficha-x svg{ width:18px; height:18px; }
.soma-ficha-body{ padding:18px 22px; overflow:auto; flex:1; }
.soma-fl{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; } .soma-fl h3{ margin:0; }
.soma-tl{ list-style:none; margin:0; padding:0; } .soma-tl li{ padding:8px 0; border-bottom:1px solid var(--soma-line2); font-size:13.5px; } .soma-tl li span{ color:var(--soma-ink3); font-size:12px; margin-right:8px; }
.soma-inv{ border:1px solid var(--soma-line); border-left:4px solid var(--soma-ink3); border-radius:11px; padding:12px 14px; margin-bottom:10px; }
.soma-inv.st-pago{ border-left-color:#12b76a; } .soma-inv.st-aberto{ border-left-color:var(--soma-accent); } .soma-inv.st-vencido{ border-left-color:#d92d20; }
.soma-inv-h{ display:flex; align-items:center; justify-content:space-between; } .soma-inv-h b{ font-size:14px; }
.soma-inv-items{ margin:6px 0; font-size:13px; color:var(--soma-ink2); } .soma-inv-items div{ display:flex; justify-content:space-between; } .soma-inv-items em{ font-style:normal; color:var(--soma-ink); }
.soma-inv-tot{ font-size:13.5px; margin:4px 0 8px; } .soma-disc{ color:var(--soma-ink3); margin-right:8px; font-size:12px; }
.soma-iv-line{ display:flex; gap:8px; align-items:center; margin:6px 0; } .soma-iv-line select{ flex:1; border:1px solid var(--soma-line); border-radius:8px; padding:7px 9px; } .soma-iv-line input{ border:1px solid var(--soma-line); border-radius:8px; padding:7px 9px; }
.soma-iv-total{ margin:10px 0; font-size:14px; padding:10px; background:var(--soma-bg); border-radius:9px; }
.soma-receipt{ border:1px dashed var(--soma-line); border-radius:10px; padding:16px; font-size:13.5px; } .soma-receipt hr{ border:0; border-top:1px solid var(--soma-line); margin:8px 0; }
.soma-doc{ white-space:pre-wrap; background:var(--soma-bg); border:1px solid var(--soma-line); border-radius:9px; padding:14px; font-size:13px; max-height:50vh; overflow:auto; }
@media (max-width:760px){ .soma-ficha{ grid-template-columns:1fr; } .soma-ficha-rail{ display:none; } }

/* ============================================================================
   P4 · ⌘K command palette
   ============================================================================ */
.soma-cmdk-ov{ position:fixed; inset:0; z-index:1600; display:none; background:rgba(16,24,40,.4); backdrop-filter:blur(2px); padding-top:12vh; }
.soma-cmdk-ov.show{ display:block; }
.soma-cmdk{ width:min(560px,92%); margin:0 auto; background:#fff; border:1px solid var(--soma-line); border-radius:14px; box-shadow:0 24px 64px -12px rgba(16,24,40,.4); overflow:hidden; }
.soma-cmdk input{ width:100%; border:0; outline:0; padding:16px 18px; font-size:15px; border-bottom:1px solid var(--soma-line); box-sizing:border-box; }
.soma-cmdk-box{ max-height:50vh; overflow:auto; padding:6px; }
.soma-cmdk-item{ padding:11px 14px; border-radius:9px; cursor:pointer; font-size:14px; color:var(--soma-ink); }
.soma-cmdk-item.on,.soma-cmdk-item:hover{ background:color-mix(in srgb,var(--soma-accent) 12%,#fff); color:var(--soma-accent-d); font-weight:600; }

/* ============================================================================
   Meu Perfil [E1·E4] · tipos ricos · validação inline · grupos · hierarquia
   ============================================================================ */
/* erro inline por campo */
.soma-ferr{ font-size:11.5px; color:#d92d20; min-height:0; line-height:1.3; }
.soma-ferr:empty{ display:none; }
.soma-f.err input,.soma-f.err select,.soma-f.err textarea{ border-color:#f97066 !important; background:#fffbfa; }
.soma-f.err input:focus,.soma-f.err select:focus{ box-shadow:0 0 0 3px color-mix(in srgb,#f97066 22%,transparent) !important; }
.soma-loading{ background-image:linear-gradient(90deg,transparent,color-mix(in srgb,var(--soma-accent) 10%,#fff),transparent); background-size:200% 100%; animation:somaShimmer 1s linear infinite; }
@keyframes somaShimmer{ from{ background-position:200% 0; } to{ background-position:-200% 0; } }

/* campo de imagem (foto / carimbo) */
.soma-imgfield{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.soma-imgprev{ width:72px; height:72px; border-radius:10px; border:1px solid var(--soma-line); background:var(--soma-bg); display:flex; align-items:center; justify-content:center; overflow:hidden; flex:0 0 auto; }
.soma-imgprev span{ font-size:10.5px; color:var(--soma-ink3); text-align:center; padding:4px; }
.soma-imgprev.has{ border-style:solid; background:#fff; }
.soma-imgprev img{ width:100%; height:100%; object-fit:contain; }
.soma-imgactions{ display:flex; gap:8px; flex-wrap:wrap; }
.soma-imgactions .soma-btn{ padding:7px 13px; font-size:12.5px; }
.soma-imgpick{ position:relative; }

/* grupos repetíveis (CRMs, especialidades) */
.soma-group-rows{ display:flex; flex-direction:column; gap:8px; }
.soma-group-row{ display:flex; align-items:center; gap:8px; }
.soma-group-cell{ flex:1 1 0; min-width:0; }
.soma-group-cell:has(>select[data-sub="uf"]){ flex:0 0 84px; }
.soma-group-row input,.soma-group-row select{ width:100%; border:1px solid var(--soma-line); border-radius:8px; padding:9px 11px; font:inherit; font-size:13.5px; color:var(--soma-ink); background:#fff; }
.soma-group-row input:focus,.soma-group-row select:focus{ outline:0; border-color:var(--soma-accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--soma-accent) 18%,transparent); }
.soma-group-rm{ flex:0 0 auto; color:var(--soma-ink3); }
.soma-group-rm:hover{ background:#fef3f2; color:#d92d20; }
.soma-group-rm svg{ width:15px; height:15px; }
.soma-group-add{ margin-top:9px; padding:7px 13px; font-size:12.5px; }

/* hierarquia do menu: título de grupo × item clicável */
.soma-cfg-grp{ padding-bottom:6px; }
.soma-cfg-grp + .soma-cfg-grp{ margin-top:10px; border-top:1px solid var(--soma-line2); padding-top:10px; }
.soma-cfg-grp-h{ margin-bottom:3px; opacity:.85; }
.soma-cfg-item{ position:relative; }
.soma-cfg-item.on::before{ content:""; position:absolute; left:0; top:7px; bottom:7px; width:3px; border-radius:0 3px 3px 0; background:var(--soma-accent); }

/* responsivo: nav utilizável e cômodo em telas estreitas */
@media (max-width:860px){
  .soma-cfg-nav{ max-height:42vh; position:sticky; top:0; z-index:2; }
  .soma-cfg-block{ padding:14px; }
  .soma-cfg-panel{ padding:16px 14px; }
  .soma-imgfield{ gap:10px; }
}

/* ============================================================================
   Clínica & Unidades [E1·E2·E4] · mapa · horários · bloco-gated · intro
   ============================================================================ */
.soma-cfg-intro{ margin:8px 0 0; font-size:13px; color:var(--soma-ink2); background:var(--soma-bg); border:1px solid var(--soma-line2); border-radius:9px; padding:9px 12px; }

/* mapa (Google Maps embed) */
.soma-map{ border:1px solid var(--soma-line); border-radius:10px; overflow:hidden; background:var(--soma-bg); min-height:170px; display:flex; }
.soma-map iframe{ width:100%; height:230px; border:0; display:block; }
.soma-map-empty{ margin:auto; color:var(--soma-ink3); font-size:12.5px; padding:20px; text-align:center; }
.soma-map-go{ margin-top:8px; align-self:flex-start; padding:7px 13px; font-size:12.5px; }

/* horário estruturado (dia × blocos) */
.soma-sched-days{ display:flex; flex-direction:column; gap:6px; }
.soma-sched-day{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:7px 9px; border:1px solid var(--soma-line2); border-radius:9px; }
.soma-sched-dn{ flex:0 0 38px; font-size:12px; font-weight:800; color:var(--soma-ink2); text-transform:uppercase; letter-spacing:.03em; }
.soma-sched-blocks{ display:flex; gap:8px; flex-wrap:wrap; flex:1 1 auto; }
.soma-sched-blk{ display:inline-flex; align-items:center; gap:5px; background:#fff; border:1px solid var(--soma-line); border-radius:8px; padding:3px 5px 3px 8px; }
.soma-sched-blk input[type=time]{ border:0 !important; padding:3px 4px !important; font:inherit; font-size:13px; box-shadow:none !important; }
.soma-sched-sep{ color:var(--soma-ink3); }
.soma-sched-rm{ padding:2px; } .soma-sched-rm:hover{ background:#fef3f2; color:#d92d20; } .soma-sched-rm svg{ width:13px; height:13px; }
.soma-sched-add{ padding:5px 11px; font-size:12px; }

/* bloco em PRÉ-VISUALIZAÇÃO (gated por entitlement) — instituição principal segue ativa */
.soma-cfg-blockgate{ position:relative; }
.soma-cfg-blockgate > .soma-cfg-block{ opacity:.72; filter:saturate(.7); }
.soma-cfg-blockgate-cta{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin:-8px 0 0; padding:11px 16px; border:1px dashed color-mix(in srgb,var(--soma-accent) 38%,var(--soma-line)); border-radius:11px; background:color-mix(in srgb,var(--soma-accent) 6%,#fff); font-size:13px; color:var(--soma-ink2); }
.soma-cfg-blockgate-cta svg{ width:14px; height:14px; color:var(--soma-accent-d); flex:0 0 auto; }
.soma-cfg-blockgate-cta b{ color:var(--soma-ink); }
.soma-cfg-blockgate-cta .soma-link{ margin-left:auto; }

/* ============================================================================
   Equipe & Acessos [E1·E2·E4] · council · matriz V/E/X · assentos · ACL
   ============================================================================ */
.soma-form-h{ margin:0 0 10px; font-size:13px; font-weight:800; color:var(--soma-ink); }
.soma-acl-note{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--soma-ink2); background:var(--soma-bg); border:1px dashed var(--soma-line); border-radius:10px; padding:12px 14px; margin-top:8px; }
.soma-acl-note svg{ width:14px; height:14px; color:var(--soma-ink3); flex:0 0 auto; }
.soma-badge.info{ background:#eff8ff; border-color:#b2ddff; color:#1849a9; }
.soma-badge.warn{ background:#fffaeb; border-color:#fedf89; color:#b54708; }

/* registro de conselho (órgão · UF · número · categoria) */
.soma-council-row{ display:grid; grid-template-columns:1.1fr 0.7fr 1.3fr 1.3fr; gap:8px; }
.soma-council-row select,.soma-council-row input{ width:100%; border:1px solid var(--soma-line); border-radius:8px; padding:9px 10px; font:inherit; font-size:13.5px; background:#fff; color:var(--soma-ink); }
.soma-council-row select:focus,.soma-council-row input:focus{ outline:0; border-color:var(--soma-accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--soma-accent) 18%,transparent); }

/* matriz de permissões granular V/E/X */
.soma-mx table{ font-size:12.5px; } .soma-mx th{ text-align:center; } .soma-mx th:first-child{ text-align:left; }
.soma-mx-sub{ display:block; font-size:9px; font-weight:600; color:var(--soma-ink3); letter-spacing:.08em; margin-top:2px; }
.soma-mx th svg{ width:11px; height:11px; vertical-align:-1px; opacity:.55; }
.soma-mx-cell{ text-align:center; white-space:nowrap; }
.soma-mx-chk{ display:inline-flex; flex-direction:column; align-items:center; gap:1px; margin:0 3px; cursor:pointer; }
.soma-mx-chk span{ font-size:9px; font-weight:700; color:var(--soma-ink3); }
.soma-mx-chk input{ accent-color:var(--soma-accent); }
.soma-mx-locked{ background:color-mix(in srgb,var(--soma-accent) 5%,#fff); }
.soma-mx-locked .soma-badge{ margin-left:7px; }

/* assentos (licenças) */
.soma-seatgrid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.soma-seat{ border:1px solid var(--soma-line); border-radius:11px; padding:12px 14px; }
.soma-seat.full{ border-color:#fda29b; background:#fffbfa; }
.soma-seat-h{ display:flex; justify-content:space-between; align-items:baseline; } .soma-seat-h b{ font-size:13px; } .soma-seat-h span{ font-weight:800; font-size:15px; }
.soma-seat-bar{ height:6px; background:var(--soma-line2); border-radius:99px; overflow:hidden; margin:8px 0 4px; }
.soma-seat-bar i{ display:block; height:100%; background:var(--soma-accent); border-radius:99px; }
.soma-seat.full .soma-seat-bar i{ background:#f04438; }
.soma-seat-sub{ font-size:11.5px; color:var(--soma-ink3); } .soma-seat-full{ font-size:11.5px; font-weight:700; color:#b42318; }
.soma-pulse{ animation:somaPulse 1s ease-in-out 2; }
@keyframes somaPulse{ 0%,100%{ box-shadow:0 0 0 0 color-mix(in srgb,var(--soma-accent) 50%,transparent); } 50%{ box-shadow:0 0 0 7px transparent; } }

@media (max-width:860px){ .soma-seatgrid{ grid-template-columns:1fr; } .soma-council-row{ grid-template-columns:1fr 1fr; } }

/* ============================================================================
   IA & Copilot [E1·E2·E4] · guardrails travados · secret-field · prompt-editor · contexto
   ============================================================================ */
.soma-sw.locked input + span{ opacity:.72; cursor:not-allowed; }
.soma-lock-badge{ display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700; color:var(--soma-accent-d); margin-left:8px; }
.soma-lock-badge svg{ width:11px; height:11px; }
.soma-secret{ display:flex; gap:8px; flex-wrap:wrap; }
.soma-secret input{ flex:1 1 240px; border:1px solid var(--soma-line); border-radius:8px; padding:9px 11px; font:inherit; font-size:13.5px; background:#fff; color:var(--soma-ink); }
.soma-secret input:focus{ outline:0; border-color:var(--soma-accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--soma-accent) 18%,transparent); }
.soma-secret-status{ font-size:12px; color:var(--soma-ink3); margin:6px 0 0; }
.soma-secret-status.on{ color:var(--soma-accent-d); font-weight:600; }
.soma-pe-vars{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:6px; }
.soma-pe-chip{ font:inherit; font-size:11.5px; font-family:ui-monospace,Menlo,Consolas,monospace; border:1px solid var(--soma-line); background:var(--soma-bg); color:var(--soma-ink2); border-radius:7px; padding:3px 8px; cursor:pointer; }
.soma-pe-chip:hover{ border-color:var(--soma-accent); color:var(--soma-accent-d); background:color-mix(in srgb,var(--soma-accent) 7%,#fff); }
.soma-pe-ta{ font-family:ui-monospace,Menlo,Consolas,monospace !important; font-size:12.5px !important; line-height:1.5; }
.soma-ctx-list{ display:flex; flex-direction:column; gap:8px; }
.soma-ctx-src{ display:flex; align-items:center; gap:11px; border:1px solid var(--soma-line); border-radius:10px; padding:10px 13px; background:var(--soma-bg); }
.soma-ctx-i{ color:var(--soma-accent); flex:0 0 auto; } .soma-ctx-i svg{ width:18px; height:18px; }
.soma-ctx-b{ flex:1; min-width:0; } .soma-ctx-b b{ font-size:13px; display:block; } .soma-ctx-b span{ font-size:12px; color:var(--soma-ink3); }
.soma-ctx-src .soma-link{ border:0; background:transparent; cursor:pointer; font:inherit; font-size:12.5px; flex:0 0 auto; }
#pgOut{ margin-top:12px; }

/* ===== Segurança · LGPD — barra de auditoria ===== */
.soma-audit-bar{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:12px; }
.soma-audit-bar input,.soma-audit-bar select{ border:1px solid var(--soma-line); border-radius:8px; padding:7px 10px; font:inherit; font-size:13px; background:#fff; color:var(--soma-ink); }
.soma-audit-bar input[type=search]{ flex:1 1 200px; }
.soma-audit-bar input:focus,.soma-audit-bar select:focus{ outline:0; border-color:var(--soma-accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--soma-accent) 16%,transparent); }
.soma-audit-bar .soma-btn{ margin-left:auto; }

/* ===== Conta & Assinatura ===== */
.soma-sub-card{ background:linear-gradient(180deg,color-mix(in srgb,var(--soma-accent) 5%,#fff),#fff); }
.soma-sub-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.soma-sub-plan b{ font-size:18px; } .soma-sub-plan .soma-badge{ vertical-align:2px; }
.soma-sub-val{ font-size:22px; font-weight:800; color:var(--soma-ink); } .soma-sub-val span{ font-size:12px; font-weight:600; color:var(--soma-ink3); }
.soma-sub-extra{ font-size:12.5px; color:var(--soma-ink2); align-self:center; }
.soma-sub-meta{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:14px 0; }
.soma-sub-meta b{ display:block; font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--soma-ink3); }
.soma-sub-meta span{ font-size:14px; color:var(--soma-ink); }
.soma-pmlist{ display:flex; flex-direction:column; gap:8px; }
.soma-pm{ display:flex; align-items:center; gap:11px; border:1px solid var(--soma-line); border-radius:10px; padding:11px 13px; }
.soma-pm-i{ color:var(--soma-accent); flex:0 0 auto; } .soma-pm-i svg{ width:18px; height:18px; }
.soma-pm-b{ flex:1; } .soma-pm-b b{ font-size:13.5px; display:block; } .soma-pm-b span{ font-size:12.5px; color:var(--soma-ink3); font-family:ui-monospace,Menlo,Consolas,monospace; }
.soma-pending{ font-size:11.5px; color:#b54708; font-style:italic; }
@media (max-width:860px){ .soma-sub-meta{ grid-template-columns:1fr; } }

/* ===== Integrações — hub por finalidade, status real ===== */
.soma-int-grp{ font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--soma-ink3); margin:16px 0 8px; }
.soma-int{ flex-direction:column; }
.soma-int-b{ display:flex; flex-direction:column; gap:3px; flex:1; min-width:0; }
.soma-int.st-conectado{ border-color:color-mix(in srgb,var(--soma-accent) 40%,var(--soma-line)); }
.soma-int.st-pendente{ border-color:#b2ddff; background:#f6fbff; }
.soma-int.st-erro,.soma-int.st-expirado{ border-color:#fec84b; background:#fffcf5; }
.soma-int-st{ align-self:flex-start; margin-top:2px; }
.soma-int-hint{ font-size:11.5px; color:#1849a9; margin-top:3px; }
.soma-int-cfg{ display:flex; flex-wrap:wrap; gap:8px; margin-top:11px; align-items:flex-end; }
.soma-int-cfgf{ display:flex; flex-direction:column; gap:3px; font-size:11px; color:var(--soma-ink3); flex:1 1 140px; }
.soma-int-cfgf input,.soma-int-cfgf select{ border:1px solid var(--soma-line); border-radius:7px; padding:6px 8px; font:inherit; font-size:12.5px; background:#fff; color:var(--soma-ink); }
.soma-int-cfgf input:focus,.soma-int-cfgf select:focus{ outline:0; border-color:var(--soma-accent); box-shadow:0 0 0 2px color-mix(in srgb,var(--soma-accent) 16%,transparent); }
.soma-int-cfgsave{ padding:6px 11px !important; font-size:12px !important; }
.soma-int-a{ margin-top:11px; display:flex; gap:8px; flex-wrap:wrap; }

/* ===== Agenda v2 — selo de tipo do item ===== */
.soma-appt-tag{ font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.soma-appt.tp-externo{ opacity:.9; } .soma-appt.tp-externo .soma-appt-b b{ color:var(--soma-ink2); }
.soma-appt.tp-cirurgia{ background:color-mix(in srgb,#d92d20 4%,#fff); } .soma-appt.tp-visita{ background:color-mix(in srgb,#7a5af8 4%,#fff); }

/* ===== Financeiro — construtor de documento (orçamento/fatura) ===== */
.soma-fl-act{ display:flex; gap:8px; flex-wrap:wrap; }
.soma-findoc-ov{ position:fixed; inset:0; z-index:1700; background:rgba(16,24,40,.55); overflow:auto; padding:2vh 0; }
.soma-findoc-wrap{ width:min(820px,94%); margin:0 auto; }
.soma-findoc-bar{ display:flex; gap:8px; justify-content:flex-end; margin-bottom:8px; }
.soma-findoc-page{ background:#fff; border-radius:10px; padding:24px; box-shadow:0 20px 60px -16px rgba(16,24,40,.5); }

/* ===== Contas a receber (resumo) + repasse ===== */
.soma-ar-resumo{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-bottom:14px; }
.soma-ar-k{ border:1px solid var(--soma-line); border-radius:10px; padding:10px 12px; }
.soma-ar-k span{ display:block; font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--soma-ink3); }
.soma-ar-k b{ font-size:18px; }
.soma-ar-k.warn b{ color:#b42318; } .soma-ar-k.ok b{ color:var(--soma-accent-d); }
.soma-inv-repasse{ font-size:12px; color:var(--soma-ink2); margin:4px 0 8px; }
@media (max-width:760px){ .soma-ar-resumo{ grid-template-columns:1fr; } }

/* ===== Documentos — auto-oferta por procedimento + consentimentos ===== */
.soma-doc-sug{ border:1px solid color-mix(in srgb,var(--soma-accent) 35%,var(--soma-line)); background:color-mix(in srgb,var(--soma-accent) 5%,#fff); border-radius:10px; padding:10px 12px; margin:10px 0; }
.soma-doc-sug > b{ display:flex; align-items:center; gap:6px; font-size:12.5px; color:var(--soma-accent-d); margin-bottom:6px; } .soma-doc-sug > b svg{ width:14px; height:14px; }
.soma-doc-sug-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:5px 0; border-top:1px solid var(--soma-line2); font-size:13px; }
.soma-doc-sug-row em{ color:var(--soma-ink3); font-style:normal; font-size:12px; }
.soma-doc-cons{ font-size:12px; color:var(--soma-ink3); margin:8px 0; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }

/* ===== [Conta de acesso] alterar senha + medidor de força (Meu perfil) ===== */
.soma-acct input[readonly]{ opacity:.72; cursor:not-allowed; }
.soma-acct-pwd{ margin-top:14px; padding-top:14px; border-top:1px solid var(--soma-line); }
.soma-acct-pwd h4{ margin:0 0 10px; font-size:13px; font-weight:700; }
.soma-pwd-meter{ height:5px; border-radius:3px; background:var(--soma-line); margin:7px 0 4px; overflow:hidden; }
.soma-pwd-meter i{ display:block; height:100%; width:0; border-radius:3px; transition:width .2s, background .2s; }
.soma-pwd-meter.lv0 i{ width:12%; background:#ef4444; }
.soma-pwd-meter.lv1 i{ width:32%; background:#f59e0b; }
.soma-pwd-meter.lv2 i{ width:56%; background:#eab308; }
.soma-pwd-meter.lv3 i{ width:80%; background:#84cc16; }
.soma-pwd-meter.lv4 i{ width:100%; background:#22c55e; }
.soma-pwd-hint{ font-size:11px; color:var(--soma-ink3); }

/* ===== [Config header v2] rótulo+busca na coluna esquerda · abas em 2 linhas (flex-wrap, SEM rolagem) ===== */
.soma-cfg .soma-cfg-top{ display:flex; align-items:flex-start; flex-wrap:nowrap; gap:14px 28px; padding:16px 22px; position:sticky; top:var(--pl-header-h,64px); z-index:20; background:var(--soma-bg,#f8fafc); }
.soma-cfg-headleft{ display:flex; flex-direction:column; gap:10px; flex:0 0 auto; }
.soma-cfg-headleft .soma-cfg-search{ width:360px; max-width:440px; flex:0 0 auto; margin:0; }
.soma-cfg-body{ display:block; }                                       /* painel ocupa a largura toda, abaixo */
.soma-cfg-nav{
  flex:1 1 auto; min-width:0; width:auto;
  display:grid; grid-template-columns:repeat(5, max-content); grid-auto-rows:auto;
  gap:11px 30px; justify-content:start; align-items:center;          /* gap FIXO uniforme (não escala com a tela como space-between) */
  overflow:visible; max-height:none; position:static;
  border:0; border-left:1px solid var(--soma-line); padding:2px 0 2px 26px;  /* divisor cinza: separa busca × abas */
  background:transparent;
}
.soma-cfg-grp{ display:flex; flex-direction:row; align-items:center; flex-wrap:wrap; gap:5px 6px; margin:0 !important; padding:0 !important; border:0 !important; }
.soma-cfg-grp + .soma-cfg-grp{ margin:0 !important; border-top:0 !important; padding-top:0 !important; }
.soma-cfg-grp + .soma-cfg-grp::before{ content:""; flex:0 0 auto; width:1px; height:18px; background:var(--soma-line); margin:0 4px; align-self:center; }
.soma-cfg-grp-h{ display:none !important; }                            /* esconde NÚCLEO/JORNADA — fica plano (rótulo "Sistema · Configurações" na coluna esquerda) */
.soma-cfg-item{ display:flex; align-items:center; gap:9px; min-width:0; width:auto; margin:0; padding:7px 9px 8px; border-radius:8px; position:relative; }
.soma-cfg-item svg{ width:16px; height:16px; flex:0 0 auto; }
/* os 3 ícones do banco 48×48 (clínica/agenda/IA) têm padding interno → glifo menor; escala óptica p/ casar com os filled, SEM alterar o layout (transform não reflui) */
.soma-cfg-item[data-sec="clinica"] svg, .soma-cfg-item[data-sec="m2_agenda"] svg, .soma-cfg-item[data-sec="ia"] svg{ transform:scale(1.3); }
.soma-cfg-item span{ font-size:13px; font-weight:500; white-space:nowrap; }
.soma-cfg-item.on{ background:transparent; color:var(--soma-accent-d); box-shadow:none; }
.soma-cfg-item.on::before{ content:""; position:absolute; left:8px; right:8px; bottom:0; top:auto; width:auto; height:2px; border-radius:2px 2px 0 0; background:var(--soma-accent); }
@media (max-width:1560px){ .soma-cfg-nav{ grid-template-columns:repeat(4, max-content); justify-content:start; gap:9px 22px; } }
@media (max-width:980px){ .soma-cfg-nav{ grid-template-columns:repeat(3, max-content); } }
@media (max-width:860px){
  .soma-cfg .soma-cfg-top{ flex-direction:column; align-items:stretch; gap:12px; }
  .soma-cfg-headleft .soma-cfg-search{ width:100%; max-width:none; }
  .soma-cfg-nav{ width:100%; grid-template-columns:repeat(3, max-content); justify-content:start; border-left:0; padding-left:0; }
}
@media (max-width:560px){ .soma-cfg-nav{ grid-template-columns:repeat(2, minmax(0,1fr)); } .soma-cfg-item span{ white-space:normal; } }

/* ===== [FIX 3b] jornada-crm — submenu na mesma altura das demais páginas =====
   O conteúdo tinha padding-top:18px acima do submenu sticky (gap 28px vs ~0 das outras).
   Remove o padding extra para o submenu ficar rente ao topbar (como documentos/atendimento). */
.jornada-crm-app.pl-content{ padding-top:0; }
