/*
 * iCom — complementos do padrão visual Innersoft (padrao.css).
 * Regras: só tokens do tema (nada de hex fixo em componente), sem degradês, dados em mono e maiúsculas.
 */

/* Marca iCom. O topo é escuro em todos os temas → sempre a versão para fundo escuro.
   Fora do topo, .ic-so-claro / .ic-so-escuro escolhem a versão pelo tema (Terracotta e Dark VS são escuros). */
.ic-logo { display: inline-flex; align-items: center; height: 100%; padding: 0 4px; text-decoration: none; }
.ic-logo img { height: 26px; width: auto; display: block; }
.ic-so-escuro { display: none !important; }
:is(html[data-theme="terracotta-dark"], html[data-theme="dark-visual-studio"]) .ic-so-claro { display: none !important; }
:is(html[data-theme="terracotta-dark"], html[data-theme="dark-visual-studio"]) .ic-so-escuro { display: block !important; }
.ic-user { display: inline-flex; align-items: center; gap: 8px; color: #fff; }
.ic-user__txt { display: flex; flex-direction: column; line-height: 1.1; }
.ic-user__txt b { font-size: 12px; } .ic-user__txt small { font-size: 10px; opacity: .8; letter-spacing: .06em; }
.ui-avatar--sm { width: 30px; height: 30px; flex: 0 0 30px; font-size: .72rem; }
.ui-topbar__right form { margin: 0; }
@media (max-width: 1100px) { .ic-user__txt { display: none; } }
body.ic-sidebar-off .ui-sidebar { display: none; }
body.ic-sidebar-off .ui-main { margin-left: 0; }

/* Página que não rola: a área principal tem a altura da janela; o quadro .ic-fill ocupa o que sobra
   e a tabela rola dentro dele (cabeçalho fixo). Vale para listas e para o PDV. */
.ic-main { padding-bottom: 12px; }
.ui-main:has(.ic-fill), .ui-main:has(.ic-pdv) { height: calc(100vh - var(--ui-topbar-h)); min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.ui-main:has(.ic-fill) > *, .ui-main:has(.ic-pdv) > * { flex-shrink: 0; }
.ui-main:has(.ic-fill) .ui-footer, .ui-main:has(.ic-pdv) .ui-footer { margin-top: 10px; padding-top: 8px; }
.ui-main > .ic-fill { flex: 1 1 auto; flex-shrink: 1; min-height: 220px; display: flex; flex-direction: column; }
.ic-fill > .ui-card__body--flush, .ic-fill > .ui-table-wrap { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.ic-fill .ui-table-wrap { flex: 1 1 auto; min-height: 0; max-height: none; }
.ic-cols-2 > .ui-card, .ic-cols-side > .ui-card, .ic-cols-side > .ui-stack > .ui-card, .ic-cols-2 > .ui-card + .ui-card { margin-top: 0; }
.ui-filters { padding: 12px 20px; }
.ui-filters .ui-field--grow { flex: 1 1 220px; }
.ui-filters .ui-field--sm { flex: 0 0 auto; width: 150px; }
.ui-filters .ui-w-data { width: 150px; }
.ui-table tbody tr[data-href] { cursor: pointer; }
.ui-table td.ui-livre, .ui-table .ui-livre { text-transform: none; }
.ic-nowrap { white-space: nowrap; }
.ic-small { font-size: 11px; color: var(--ui-text-muted); font-weight: 600; }
.ic-num { text-align: right; font-family: var(--font-data); white-space: nowrap; }
.ic-strong { color: var(--ui-text-strong, var(--ui-text)); font-weight: 700; }
.ui-money--neg, .ic-neg { color: var(--ui-danger-text, var(--ui-danger)); }
.ic-pos { color: var(--ui-success-text, var(--ui-success)); }
.ui-table td .ui-sub { display: block; font-size: 11px; font-weight: 500; color: var(--ui-text-muted); }
.ic-pagehead { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ic-pagehead .ui-page-title { margin-bottom: 0; }
.ic-totais { display: flex; gap: 22px; flex-wrap: wrap; align-items: center; }
.ic-totais div { display: flex; flex-direction: column; align-items: flex-end; }
.ic-totais small { font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ui-text-muted); }
.ic-totais b { font: 700 14px var(--font-data); color: var(--ui-text); }
.ui-input.ui-money, .ui-input.ic-num { text-align: right; }
.ic-w-qtd { max-width: 110px; } .ic-w-money { max-width: 150px; }
.ic-cols-2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.ic-cols-side { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 16px; align-items: start; }
@media (max-width: 1100px) { .ic-cols-2, .ic-cols-side { grid-template-columns: 1fr; } }
.ic-dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; margin: 0; font-size: 13px; }
.ic-dl dt { color: var(--ui-text-muted); font-weight: 600; font-size: 12px; }
.ic-dl dd { margin: 0; font: 600 13px var(--font-data); color: var(--ui-text); text-transform: uppercase; }
.ic-dl dd.ui-livre { text-transform: none; }
.ic-dl dd.ui-money { text-align: left; }
.ic-hint-key { display: inline-block; min-width: 22px; padding: 0 5px; border: 1px solid var(--ui-border); border-bottom-width: 2px; border-radius: 4px;
    font: 700 10px/16px var(--font-data); text-align: center; color: var(--ui-text-muted); background: var(--ui-surface); }
.ic-grade-table td .ui-input { height: 32px; }

/* ===================== PDV ===================== */
.ic-pdv { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 16px; flex: 1 1 auto; flex-shrink: 1; min-height: 0; }
.ui-main:has(.ic-pdv) .ui-page-title { font-size: 1.35rem; }
.ic-pdv__left, .ic-pdv__right { display: flex; flex-direction: column; min-height: 0; gap: 12px; }
.ic-pdv__busca { position: relative; }
.ic-pdv__busca .ui-input { height: 52px; font-size: 18px; padding-left: 46px; }
.ic-pdv__busca > i { position: absolute; left: 15px; top: 14px; font-size: 22px; color: var(--ui-text-muted); }
.ic-pdv__sugestoes { position: absolute; z-index: 30; left: 0; right: 0; top: 56px; max-height: 360px; overflow: auto; background: var(--ui-surface);
    border: 1px solid var(--ui-border); border-radius: var(--ui-radius-md); box-shadow: 0 8px 24px rgba(0,0,0,.18); }
.ic-sug { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; padding: 9px 14px; border-bottom: 1px solid var(--ui-border); cursor: pointer; }
.ic-sug:last-child { border-bottom: 0; }
.ic-sug:hover, .ic-sug.is-active { background: var(--ui-surface-soft); }
.ic-sug b { font: 700 13px var(--font-data); color: var(--ui-text); display: block; }
.ic-sug small { font: 500 11px var(--font-data); color: var(--ui-text-muted); }
.ic-sug .ic-num { font-weight: 700; color: var(--ui-text); }
.ic-pdv__itens { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.ic-pdv__itens .ui-table-wrap { flex: 1; max-height: none; }
.ic-pdv__total { background: var(--ui-primary-hover); color: #fff; border-radius: var(--ui-radius-lg); padding: 14px 18px; }
.ic-pdv__total small { display: block; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; opacity: .85; font-weight: 700; }
.ic-pdv__total b { display: block; font: 700 40px/1.1 var(--font-data); text-align: right; }
.ic-pdv__linha { display: flex; justify-content: space-between; font: 600 13px var(--font-data); padding: 3px 0; color: var(--ui-text); }
.ic-pdv__linha span:first-child { font-family: var(--font-base); color: var(--ui-text-muted); }
.ic-pdv__atalhos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ic-pdv__atalhos .ui-btn { justify-content: flex-start; height: 42px; }
.ic-pdv__cliente { padding: 12px 14px; }
.ic-pdv__cliente b { font: 700 13px var(--font-data); display: block; }
.ic-pdv__vazio { margin: auto; text-align: center; color: var(--ui-text-muted); padding: 30px; }
.ic-pdv__vazio i { font-size: 54px; opacity: .35; display: block; }
.ic-pdv .ui-table td { padding: 8px 10px; }
.ic-qtd-btn { width: 26px; height: 26px; padding: 0; justify-content: center; }
.ic-pag-linha { display: grid; grid-template-columns: 1fr 150px 90px 34px; gap: 8px; align-items: center; margin-bottom: 8px; }
.ic-formas { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.ic-formas .ui-btn { height: auto; min-height: 46px; justify-content: flex-start; white-space: normal; text-align: left; line-height: 1.15; font-size: 12px; padding: 6px 10px; }
.ic-falta { font: 700 22px var(--font-data); }
@media (max-width: 1000px) { .ic-pdv { grid-template-columns: 1fr; height: auto; } }

/* ===================== Cupom (80 mm) ===================== */
.ic-cupom-body { background: var(--ui-page-bg); }
.ic-cupom { width: 300px; margin: 24px auto; padding: 14px 14px 20px; background: #fff; color: #000; font: 12px/1.35 var(--font-data); text-transform: uppercase; box-shadow: 0 1px 6px rgba(0,0,0,.2); }
.ic-cupom h1 { font-size: 14px; text-align: center; margin: 0; }
.ic-cupom .c { text-align: center; } .ic-cupom .r { text-align: right; }
.ic-cupom hr { border: 0; border-top: 1px dashed #000; margin: 8px 0; }
.ic-cupom table { width: 100%; border-collapse: collapse; }
.ic-cupom td { padding: 1px 0; vertical-align: top; }
.ic-cupom .tot { font-size: 15px; font-weight: 700; }
.ic-cupom-acoes { text-align: center; margin: 12px; }
@media print { .ic-cupom-acoes { display: none; } .ic-cupom { box-shadow: none; margin: 0; width: 72mm; } body { background: #fff; } }

/* Dashboard */
.ic-rank { display: grid; grid-template-columns: 22px 1fr auto; gap: 8px; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--ui-border); font-size: 13px; }
.ic-rank:last-child { border-bottom: 0; }
.ic-rank__n { font: 700 12px var(--font-data); color: var(--ui-text-muted); }
.ic-rank__nome { font: 600 12px var(--font-data); color: var(--ui-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ic-rank__v { font: 700 12px var(--font-data); color: var(--ui-text); text-align: right; }
.ic-rank__v small { display: block; font-weight: 500; color: var(--ui-text-muted); font-size: 10px; }
.ui-card__header .ic-totais small, .ui-card__header .ic-totais b { color: inherit; }
.ui-card__header:not(.ui-card__header--plain) .ic-totais small { opacity: .8; }

/* Painel do dono compacto (cabe na tela de 1080p) */
.ic-dash .ui-hero { padding: .6rem 1.25rem; }
.ic-dash .ui-kpi__hint { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ic-dash .ui-chart-card__sub { margin-bottom: 4px; }
.ic-dash .ui-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.ic-dash .ui-kpi { padding: .7rem 1rem .6rem; }
.ic-dash .ui-kpi__value { font-size: 1.45rem; margin: .3rem 0 .1rem; }
.ic-dash .ui-kpi__value.ui-money { font-size: 1.25rem; }
.ic-dash .ui-kpi__icon { display: none; }
.ic-dash a.ui-kpi { text-decoration: none; }
.ic-dash .ui-kpi--danger .ui-kpi__value { color: var(--ui-danger-text, var(--ui-danger)); }
.ic-dash .ui-chart-card { padding: 12px 16px; }
.ic-dash-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 12px; }
.ic-dash-grid .ic-rank { padding: 3px 0; }
.ic-dash .ui-stat { margin: 6px 0; }
@media (max-width: 1100px) { .ic-dash .ui-kpis, .ic-dash-grid { grid-template-columns: 1fr 1fr; } }


/* Login com a marca */
.ic-login-logo { width: min(360px, 80%); height: auto; display: block; margin-bottom: 28px; }
.ic-login-marca { display: block; height: 46px; width: auto; margin: 0 auto 6px; }
/* No computador a marca já está grande à esquerda; no celular (sem a coluna) ela aparece no cartão */
@media (min-width: 901px) { html body .ui-login .ic-login-marca--mobile { display: none !important; } }
.ic-login-autor { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--ui-border); font-size: 11px; color: var(--ui-text-muted); }
.ic-login-autor img { height: 18px; width: auto; }

/* Marca discreta no PDV vazio */
.ic-pdv__vazio img { width: 64px; height: 64px; display: block; margin: 0 auto 10px; opacity: .18; filter: grayscale(1); }

/* Diálogo próprio (ICOM.dialogo): substitui SweetAlert e, na venda, os toasts */
.ic-dlg { z-index: 130; }
.ic-dlg .ui-modal { border-top: 4px solid var(--ic-dlg-cor, var(--ui-primary)); animation: ic-dlg-in .14s ease-out; }
@keyframes ic-dlg-in { from { transform: translateY(8px); opacity: 0; } to { transform: none; opacity: 1; } }
.ic-dlg--info { --ic-dlg-cor: var(--ui-info); --ic-dlg-fundo: var(--ui-info-soft); }
.ic-dlg--question { --ic-dlg-cor: var(--ui-primary); --ic-dlg-fundo: var(--ui-surface-soft); }
.ic-dlg--success { --ic-dlg-cor: var(--ui-success); --ic-dlg-fundo: var(--ui-success-soft); }
.ic-dlg--warn { --ic-dlg-cor: var(--ui-warn); --ic-dlg-fundo: var(--ui-warn-soft); }
.ic-dlg--danger { --ic-dlg-cor: var(--ui-danger); --ic-dlg-fundo: var(--ui-danger-soft); }
.ic-dlg__corpo { display: flex; gap: 16px; padding: 22px 22px 18px; background: var(--ui-surface); }
.ic-dlg__icone { flex: 0 0 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; font-size: 26px; color: var(--ic-dlg-cor); background: var(--ic-dlg-fundo); }
.ic-dlg__txt { flex: 1; min-width: 0; }
.ic-dlg__titulo { font-size: 16px; font-weight: 700; color: var(--ui-text-strong); margin: 4px 0 6px; }
.ic-dlg__msg { font-size: 14px; line-height: 1.45; color: var(--ui-text); }
.ic-dlg__destaque { display: block; margin-top: 10px; font: 700 26px/1.2 var(--font-data); color: var(--ui-text-strong); }
.ic-dlg__input { margin-top: 12px; width: 100%; }
.ic-dlg__erro:empty { display: none; }
.ic-dlg__rodape { align-items: center; }
.ic-dlg__marca { width: 22px; height: 22px; margin-right: auto; opacity: .55; }
