/* =====================================================================
   Rev. 1.8 — Padronização global da interface
   Campos editáveis em tamanho compacto (small): mesma altura do botão
   "Mais filtros" (.btn-sm = 30 px). Carregado por último para prevalecer.
   ===================================================================== */
:root { --ctl-h: 30px; --ctl-fs: 13px; --ctl-r: 7px; --ctl-px: 10px; }

input:not([type]), input[type=text], input[type=email], input[type=password], input[type=number], input[type=date], input[type=datetime-local],
input[type=search], input[type=time], input[type=tel], input[type=url], input[type=month], input[type=week], select {
  height: var(--ctl-h); min-height: var(--ctl-h); padding: 0 var(--ctl-px); font-size: var(--ctl-fs); border-radius: var(--ctl-r); line-height: calc(var(--ctl-h) - 2px);
}
select { padding-right: 28px; background-position: right 9px center; }
select[multiple] { height: auto; min-height: 120px; padding: 5px; line-height: 1.45; }
textarea { font-size: var(--ctl-fs); border-radius: var(--ctl-r); padding: 7px var(--ctl-px); }
input[type=color] { height: var(--ctl-h); width: 40px; border-radius: var(--ctl-r); }
input[type=checkbox], input[type=radio] { width: 15px; height: 15px; }

/* foco consistente em todos os campos */
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: none; border-color: var(--petrol); box-shadow: 0 0 0 3px color-mix(in srgb, var(--petrol) 18%, transparent); }

/* componentes que tinham alturas próprias (32/34/36 px) */
.side-form select, .side-form input, .composer-foot select, .bulkbar select { height: var(--ctl-h); font-size: var(--ctl-fs); }
.category-create-form input { min-height: var(--ctl-h); }
.sd-search-select .sd-search-input { height: var(--ctl-h) !important; font-size: var(--ctl-fs) !important; border-radius: var(--ctl-r) !important; padding: 0 var(--ctl-px) !important; }
.company-quick-filters .field input, .company-quick-filters .field select,
.company-quick-filters .company-filter-fields > .field > input[type="search"],
.company-quick-filters .company-filter-fields > label.field > input[type="search"] { height: var(--ctl-h) !important; min-height: var(--ctl-h) !important; max-height: var(--ctl-h) !important; line-height: calc(var(--ctl-h) - 2px) !important; }
.company-quick-filters .company-filter-clear { height: var(--ctl-h) !important; }
/* campo + botão lado a lado ficam na mesma altura */
.input-group input, .input-group select, .input-group .btn { height: var(--ctl-h); }
.input-group .btn { font-size: 12.5px; padding: 0 10px; }
/* barra de pesquisa global (ícone dentro do campo) */
.search-global input { height: var(--ctl-h); font-size: var(--ctl-fs); }
.search-global .ic { top: 50%; transform: translateY(-50%); }
.search-global kbd { top: 50% !important; transform: translateY(-50%); }
/* data/hora: ícone do calendário alinhado ao centro */
input[type=date]::-webkit-calendar-picker-indicator, input[type=datetime-local]::-webkit-calendar-picker-indicator, input[type=time]::-webkit-calendar-picker-indicator { margin: 0; padding: 0; opacity: .7; }

/* Rev. 2.8 (Plano 2, item 4): páginas públicas (link externo, verificação) e página de campo seguem o mesmo padrão
   compacto do sistema. Só a fonte cresce no celular (16 px) para o navegador não ampliar a tela ao tocar no campo. */
.field-main .field-pin { height: 56px; font-size: 26px; }

/* ---------- Perfis e permissões (Rev. 1.8) ---------- */
.perm-toolbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 10px 20px; border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); background: var(--hover); position: sticky; top: 56px; z-index: 3; }
.perm-search { position: relative; flex: 1 1 280px; max-width: 420px; }
.perm-search .ic { position: absolute; left: 9px; top: 50%; transform: translateY(-50%); color: var(--ink-3); }
.perm-search input { padding-left: 30px; }
.perm-legend { display: flex; gap: 4px; flex-wrap: wrap; }
.perm-modules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
.perm-module { border: 1px solid var(--line); border-radius: var(--radius-sm); margin: 0; background: var(--panel); }
.perm-module[hidden], .perm-item[hidden] { display: none !important; }
.perm-module-head { display: flex; align-items: center; gap: 8px; padding: 8px 10px 8px 14px; border-bottom: 1px solid var(--line-2); background: var(--hover); border-radius: var(--radius-sm) var(--radius-sm) 0 0; }
.perm-module-head h3 { font-size: 13.5px; margin: 0; }
.perm-count { font-size: 11.5px; color: var(--ink-3); background: var(--panel); border: 1px solid var(--line); border-radius: 99px; padding: 0 8px; }
.perm-count.all { color: var(--leaf); border-color: color-mix(in srgb, var(--leaf) 40%, transparent); }
.perm-list { display: grid; padding: 4px 0; }
.perm-item { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto 16px; align-items: center; gap: 10px; padding: 6px 14px; cursor: pointer; border-left: 3px solid transparent; }
.perm-item:hover { background: var(--hover); }
.perm-item.is-on { border-left-color: var(--leaf); }
.perm-item input { margin: 0; accent-color: var(--leaf); }
.perm-name { font-size: 13px; }
.perm-act { font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; padding: 1px 7px; border-radius: 99px; white-space: nowrap; color: var(--a, var(--ink-3)); background: color-mix(in srgb, var(--a, var(--ink-3)) 12%, transparent); }
.act-view { --a: var(--sky); } .act-create { --a: var(--leaf); } .act-edit { --a: var(--petrol); } .act-delete { --a: var(--coral); }
.act-manage { --a: #7a4fb5; } .act-operate { --a: var(--signal); } .act-export { --a: var(--ink-3); }
.perm-tip { position: relative; color: var(--ink-4); display: grid; place-items: center; }
.perm-tip-body { display: none; position: absolute; right: 0; bottom: calc(100% + 6px); width: 260px; padding: 8px 10px; font-size: 12px; line-height: 1.45; color: var(--ink); background: var(--panel); border: 1px solid var(--line); border-radius: 8px; box-shadow: var(--shadow-pop); z-index: 20; }
.perm-tip:hover .perm-tip-body, .perm-tip:focus .perm-tip-body { display: block; }
@media (max-width: 900px) { .perm-modules { grid-template-columns: minmax(0, 1fr); } .perm-legend { display: none; } .perm-toolbar { top: 0; } }

/* notificação cujo registro foi excluído */
.notif-gone { font-style: normal; font-size: 10.5px; color: var(--ink-3); border: 1px solid var(--line); border-radius: 99px; padding: 0 6px; margin-left: 4px; }

/* Neutraliza regras antigas mais específicas que forçavam 36–40 px (imvictus.css, e-mail, tarefas, estilos inline) */
input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=color]), select { min-height: var(--ctl-h); }
input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=color]):not([type=range]) { height: var(--ctl-h); }
select:not([multiple]) { height: var(--ctl-h); }
.settings-mail-form .settings-mail-grid input, .scheduled-task-form input:not([type="radio"]):not([type="checkbox"]), .scheduled-task-form select:not([multiple]) { height: var(--ctl-h); }
.input-group select, .input-group input { height: var(--ctl-h) !important; }
.field-main .field-pin { height: 56px; }
.company-quick-filters .company-filter-fields > label.field > input[type="search"],
.company-quick-filters .company-filter-fields > label.field > select { height: var(--ctl-h) !important; min-height: var(--ctl-h) !important; max-height: var(--ctl-h) !important; }

/* busca global: o ícone fica dentro do campo sem cobrir o texto */
.search-global input[type=search] { padding-left: 34px; }
/* barra de filtros da lista de chamados: quebra linha quando não cabe (antes estourava a largura em telas de 1400 px com menu lateral) */
@media (min-width: 1050px) { #filter-form > .toolbar, .sd-inventory-toolbar { flex-wrap: wrap !important; } }
/* painel “Envio ao prestador”: link e mensagem longos quebram dentro do painel */
.share-box { grid-template-columns: minmax(0, 1fr); }
.share-msg, .share-url input { overflow-wrap: anywhere; min-width: 0; }
.g-side > aside, .g-side > .stack { min-width: 0; }
/* cabeçalho dos módulos de permissão quebra linha no celular */
.perm-module-head { flex-wrap: wrap; }
@media (max-width: 520px) { .perm-module-head .grow { flex-basis: 100%; height: 0; } }

/* =====================================================================
   Rev. 2.8 — Padrão único de campos (Plano 2, item 4)
   Referência: botão "Mais filtros" da página de Chamados (.btn-sm). Campos de texto, seletores, busca (autocomplete),
   data e hora, números, filtros, formulários, modais, portal, páginas públicas e prestadores: mesma altura, fonte,
   borda e raio. Campos multilinha mantêm a altura livre, com a mesma fonte, borda e raio.
   ===================================================================== */
.btn-sm { height: var(--ctl-h) !important; min-height: var(--ctl-h); font-size: 12.5px; border-radius: var(--ctl-r); }
.btn-sm.btn-icon { width: var(--ctl-h); padding: 0; justify-content: center; }
:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=color]):not([type=range]):not([type=submit]):not([type=button]):not([type=image]), select:not([multiple]), .sd-search-input) {
  height: var(--ctl-h) !important; min-height: var(--ctl-h) !important; font-size: var(--ctl-fs) !important; border-radius: var(--ctl-r);
  line-height: calc(var(--ctl-h) - 2px); box-sizing: border-box;
}
textarea { font-size: var(--ctl-fs) !important; border-radius: var(--ctl-r); }
.portal-search input { padding-left: 34px; }
.portal-search .ic { top: 7px; left: 11px; }
.field-main .field-pin { height: 56px !important; min-height: 56px !important; font-size: 26px !important; line-height: 54px; }
@media (max-width: 600px) {
  .field-main :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]), select, textarea) { font-size: 16px !important; }
}

/* ---------- Rev. 2.8 — campo de data e hora (DD/MM/AAAA HH:mm, 24 h) ---------- */
.sd-dt { position: relative; display: inline-flex; align-items: center; width: 100%; min-width: 0; vertical-align: middle; }
.sd-dt-date { max-width: 100%; }
.sd-dt > .sd-dt-input { width: 100%; padding-right: 30px !important; font-variant-numeric: tabular-nums; }
.toolbar .sd-dt, .row .sd-dt, label.row .sd-dt { width: auto; }
.toolbar .sd-dt-date > .sd-dt-input, label.row .sd-dt-date > .sd-dt-input { width: 124px; }
.toolbar .sd-dt-datetime > .sd-dt-input, label.row .sd-dt-datetime > .sd-dt-input { width: 158px; }
.sd-dt-time > .sd-dt-input { min-width: 84px; }
.sd-dt-btn { position: absolute; right: 3px; top: 50%; transform: translateY(-50%); width: 24px; height: 24px; display: grid; place-items: center; border: 0; background: transparent; color: var(--ink-3); border-radius: 5px; cursor: pointer; padding: 0; }
.sd-dt-btn:hover { background: var(--line-2); color: var(--ink); }
.sd-dt-input:disabled + .sd-dt-btn { opacity: .4; pointer-events: none; }
.sd-dt-pop { position: fixed; z-index: 4000; width: 252px; background: var(--panel); color: var(--ink); border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow-pop, 0 12px 32px rgba(0,0,0,.18)); padding: 10px; font-size: 13px; }
.sd-dt-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.sd-dt-head b { font-size: 13px; font-weight: 600; }
.sd-dt-head button { width: 28px; height: 28px; border: 0; background: transparent; border-radius: 6px; font-size: 18px; line-height: 1; cursor: pointer; color: var(--ink-2); }
.sd-dt-head button:hover { background: var(--line-2); }
.sd-dt-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.sd-dt-grid .dow { font-size: 11px; color: var(--ink-3); font-weight: 600; padding: 2px 0 4px; }
.sd-dt-grid button { height: 30px; border: 0; background: transparent; border-radius: 6px; cursor: pointer; color: var(--ink); font: 500 12.5px var(--font); }
.sd-dt-grid button:hover { background: var(--petrol-50, #eef1ff); }
.sd-dt-grid button.today { box-shadow: inset 0 0 0 1px var(--petrol-400, #405bd8); }
.sd-dt-grid button.sel { background: var(--petrol, #405bd8); color: #fff; }
.sd-dt-time { display: flex; align-items: center; gap: 6px; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line-2); }
.sd-dt-time span { font-size: 12px; color: var(--ink-3); margin-right: auto; }
.sd-dt-time select { width: 62px; }
.sd-dt-time small { color: var(--ink-3); font-size: 11px; }
.sd-dt-foot { display: flex; gap: 6px; margin-top: 8px; }
.sd-dt-foot button { flex: 1; height: 28px; border: 1px solid var(--line); background: var(--panel); border-radius: 6px; cursor: pointer; font: 500 12.5px var(--font); color: var(--ink-2); }
.sd-dt-foot button.ok { background: var(--petrol, #405bd8); color: #fff; border-color: transparent; }
