/* ControlPDV Customer Portal — shell administrativo estável e isolado do PDV */
html,body{width:100%;min-width:0;min-height:100%;margin:0;overflow-x:hidden}
body{min-height:100dvh}
#app{width:100%;min-width:0;min-height:100dvh}

.portal{width:100%;min-width:0;min-height:100dvh;display:grid!important;grid-template-columns:248px minmax(0,1fr)!important;align-items:stretch!important;background:linear-gradient(145deg,#06151e 0%,#07131c 52%,#061018 100%)}
.portal>.sidebar{position:sticky!important;top:0!important;align-self:start!important;width:248px!important;min-width:248px!important;height:100dvh!important;overflow-y:auto!important;padding:20px 14px!important;background:linear-gradient(180deg,#06131c,#071822 58%,#06121a)!important;border-right:1px solid #14384a!important;box-shadow:8px 0 32px rgba(0,0,0,.13)!important}
.portal>.main{width:100%!important;min-width:0!important;max-width:none!important;padding:26px clamp(24px,2.6vw,46px) 54px!important}
.portal .topbar,.portal .content,.portal .banner{width:100%!important;max-width:none!important}
.portal .topbar{position:relative!important;top:auto!important;min-height:92px!important;margin:0 0 22px!important;padding:0 0 18px!important;border-bottom:1px solid #163b4d!important;background:transparent!important;box-shadow:none!important}
.portal .content{display:block!important;min-width:0!important;margin:0!important;padding:0!important;overflow:visible!important}
.portal .content::before{display:none!important}
.portal .form-card,.portal .section.card{width:100%!important;max-width:none!important}
.portal .brandline{padding:3px 7px 15px!important}
.portal .brandline img{width:36px!important;height:36px!important;object-fit:contain}
.portal .pdv-launch-side{margin:2px 0 18px!important}
.portal .nav{display:grid!important;grid-template-columns:1fr!important;gap:4px!important}
.portal .nav button{width:100%;min-height:39px}
.portal .sidebar-footer{padding-top:16px;margin-top:auto}
.portal .user-mini{overflow:hidden}
.portal .user-mini strong,.portal .user-mini span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.portal .card{min-width:0}
.portal .section-head{align-items:flex-start}
.portal .section-head>div{min-width:0}
.portal .section-head p{margin:5px 0 0}
.portal .table-wrap{width:100%;max-width:100%;overflow:auto}
.portal .table{width:100%;min-width:720px}
.portal .table td>small{display:block;margin-top:4px;color:var(--muted)}
.portal .actions-cell{white-space:nowrap}

.dashboard-grid,.billing-kpis{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px;width:100%}
.overview-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(340px,.9fr);gap:16px;margin-top:16px}
.hero-card,.environment-card{min-height:232px;padding:22px!important}
.hero-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:radial-gradient(circle at 100% 0,rgba(94,234,212,.14),transparent 48%),linear-gradient(145deg,#0d3040,#092332)!important}
.hero-card h2{font-size:25px;margin-bottom:8px}
.hero-card .primary{margin-top:7px}
.metric-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.metric-list>div{min-width:0;padding:13px;border:1px solid #193f51;border-radius:12px;background:#071c27}
.metric-list span,.public-status-grid span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:900}
.metric-list strong,.public-status-grid strong{display:block;margin-top:5px;overflow-wrap:anywhere}
.quick-section{margin-top:16px;padding:18px!important}
.quick-actions{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important;gap:10px!important;width:100%}

.company-layout{display:grid;grid-template-columns:minmax(360px,.92fr) minmax(500px,1.08fr);gap:16px;align-items:start;width:100%}
.company-registry-console,.company-form-card{padding:20px!important;min-width:0}
.registry-search{display:grid;grid-template-columns:150px minmax(170px,1fr) auto;gap:9px;align-items:center;margin:16px 0 10px}
.registry-search select,.registry-search input,.ie-search input{width:100%;border:1px solid #2b5266;border-radius:10px;padding:11px 12px;background:#eaf2f6;color:#102631;outline:0}
.registry-search input:focus,.registry-search select:focus,.ie-search input:focus{border-color:#22b7ce;box-shadow:0 0 0 3px rgba(34,211,238,.13)}
.ie-search{display:grid;grid-template-columns:80px minmax(0,1fr);gap:9px;margin-bottom:14px}
.registry-empty{min-height:250px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;text-align:center;padding:26px;border:1px dashed #275269;border-radius:14px;color:var(--muted);background:#071b26}
.registry-mirror{margin-top:14px;border:1px solid #28556a;border-radius:15px;background:linear-gradient(145deg,#081f2b,#071923);overflow:hidden}
.registry-head{display:flex;justify-content:space-between;gap:18px;padding:18px;border-bottom:1px solid #214a5d;background:linear-gradient(120deg,#0b2b3a,#0d3546)}
.registry-head>div{min-width:0}.registry-head span{font-size:9px;font-weight:900;letter-spacing:.12em;color:#68dce2}.registry-head h3{margin:6px 0 3px;font-size:20px}.registry-head p{margin:0;color:#9ab6c4;font-size:12px}
.registry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#214353}
.registry-item{padding:13px 14px;background:#071b26;min-width:0}
.registry-item.wide{grid-column:1/-1}
.registry-item span{display:block;color:#789aaa;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;margin-bottom:5px}
.registry-item strong{display:block;color:#e9f7fc;font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.registry-mirror details{border-top:1px solid #214353}.registry-mirror summary{cursor:pointer;padding:12px 14px;color:#b8d5df;font-weight:800;font-size:11px}
.registry-list{display:grid;gap:7px;padding:0 14px 14px}
.registry-list>div,.registry-ie-option{display:grid;grid-template-columns:minmax(120px,.45fr) minmax(0,1fr);gap:10px;align-items:center;padding:10px 11px;border:1px solid #1d4355;border-radius:10px;background:#061821;color:#c8dce4;text-align:left}
.registry-list code{color:#7be4e4}.registry-list span{color:#91aebb;font-size:11px}
.registry-source{padding:11px 14px;border-top:1px solid #214353;color:#799caa;font-size:10px}
.registry-actions{display:flex;justify-content:flex-end;padding:13px 14px;border-top:1px solid #214353}
.public-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:16px;padding-top:16px;border-top:1px solid #17394b}
.public-status-grid>div{padding:11px;border:1px solid #193f51;border-radius:10px;background:#071c27}

.team-card{padding:20px!important}
.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:14px 0 18px}
.permission-option{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid #234a5d;border-radius:11px;background:#08202b;cursor:pointer;min-width:0}
.permission-option:hover{border-color:#347288;background:#0a2835}
.permission-option input{margin-top:3px;flex:0 0 auto}.permission-option span{display:grid;gap:3px;min-width:0}.permission-option strong{font-size:12px}.permission-option small{color:var(--muted);font-size:10px;line-height:1.35}
.permission-chip{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;border:1px solid #28576d;background:#0c2634;color:#bce6ec;font-size:9px;font-weight:900;white-space:nowrap}
.permission-readonly{padding:12px 14px;border-radius:11px;border:1px solid #2d5365;background:#0c2532;color:#a9c3cf;margin-bottom:14px}
.modal-wide{width:min(960px,100%)!important}

.stores-layout,.billing-layout,.security-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:100%}
.stores-layout>.card,.billing-layout>.card,.security-layout>.card{padding:20px!important;min-width:0}
.billing-layout{margin-top:16px}
.history-card{margin-top:16px;padding:20px!important}
.security-layout{align-items:start}.security-note{margin-top:16px!important}.security-status{display:grid;gap:14px;margin-top:20px}.status-line{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid #21495c;border-radius:12px;background:#071c27}.status-line>div{display:grid;gap:3px}.status-line span{color:var(--muted);font-size:11px}

.activation-progress{display:grid;grid-template-columns:28px 1fr 28px 1fr 28px;align-items:center;margin:0 0 22px}.activation-progress span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;border:1px solid #bfd5df;background:#edf4f7;color:#72909e;font-size:11px;font-weight:900}.activation-progress span.on{background:linear-gradient(135deg,#168ca5,#35b9ae);border-color:#35b9ae;color:#fff}.activation-progress i{height:2px;background:#d5e3e9}.activation-registry{display:grid;gap:3px;padding:13px 14px;margin-bottom:14px;border:1px solid #c6dfe6;border-radius:11px;background:#eff9fb}.activation-registry strong{color:#17394a}.activation-registry span,.activation-registry small{color:#6c8593}

@media(max-width:1320px){
  .portal{grid-template-columns:228px minmax(0,1fr)!important}.portal>.sidebar{width:228px!important;min-width:228px!important}.portal>.main{padding-inline:26px!important}
  .dashboard-grid,.billing-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .company-layout{grid-template-columns:1fr}.overview-layout{grid-template-columns:1fr 1fr}
  .public-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:980px){
  .portal{display:block!important}.portal>.sidebar{position:relative!important;width:100%!important;min-width:0!important;height:auto!important;overflow:visible!important}.portal>.main{padding:20px!important}
  .portal .nav{grid-template-columns:repeat(2,minmax(0,1fr))!important}.portal .sidebar-footer{margin-top:14px}
  .overview-layout,.stores-layout,.billing-layout,.security-layout{grid-template-columns:1fr}
}
@media(max-width:720px){
  .dashboard-grid,.billing-kpis,.metric-list,.permission-grid,.public-status-grid,.row2,.row3{grid-template-columns:1fr!important}
  .portal .nav{grid-template-columns:1fr!important}.registry-search{grid-template-columns:1fr}.ie-search{grid-template-columns:1fr}.registry-grid{grid-template-columns:1fr}.registry-item.wide{grid-column:auto}.registry-list>div{grid-template-columns:1fr}
  .portal .topbar{display:block!important}.portal .top-actions{margin-top:12px;justify-content:flex-start!important}.company-registry-console,.company-form-card,.team-card,.stores-layout>.card,.billing-layout>.card,.security-layout>.card,.history-card{padding:16px!important}
}


/* Navegação do Portal: área clicável/touch sempre acima do conteúdo dinâmico. */
.portal .sidebar{position:relative;z-index:20}
.portal .nav{position:relative;z-index:21;pointer-events:auto!important}
.portal .nav button{
  position:relative;
  z-index:1;
  pointer-events:auto!important;
  touch-action:manipulation;
  cursor:pointer;
  -webkit-tap-highlight-color:rgba(34,211,238,.12);
}
.portal .nav button>*{pointer-events:none}

/* PC022_LAYOUT_STORES_TERMINALS — tabelas de estrutura precisam da largura útil inteira. */
.portal .stores-layout{grid-template-columns:minmax(0,1fr)!important}
.portal .stores-layout>.card{width:100%;min-width:0}
.portal .stores-layout .table-wrap{max-width:100%;overflow-x:auto}

/* PC022_PARAMETER_HELP_VISUAL — ajuda contextual visível pelo asset canônico já publicado. */
.portal .cp-param-info024{
  display:inline-grid;
  place-items:center;
  width:17px;
  height:17px;
  margin-left:5px;
  padding:0;
  border:1px solid rgba(125,160,173,.58);
  border-radius:50%;
  background:rgba(34,211,238,.035);
  color:#7da5b4;
  font-size:0;
  line-height:1;
  vertical-align:middle;
  cursor:help;
  opacity:.66;
  transform:translateY(-1px);
  transition:opacity .16s ease,border-color .16s ease,background-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease;
}
.portal .cp-param-info024::before{content:"?";display:block;font:900 10px/1 Arial,sans-serif}
.portal .cp-param-info024:hover,.portal .cp-param-info024:focus-visible,.portal .cp-param-info024[aria-expanded="true"]{border-color:#27b6c9;background:rgba(34,211,238,.14);color:#b8f4f7;opacity:1;outline:none;transform:translateY(-1px) scale(1.06);box-shadow:0 0 0 3px rgba(34,211,238,.08)}
.portal .cp-param-tooltip024{padding:12px 13px;border-radius:12px;background:linear-gradient(180deg,#0d2b38,#0a222d);box-shadow:0 16px 42px rgba(0,0,0,.38);line-height:1.48}
.portal .cp-param-tooltip024 strong{margin-bottom:5px}
@media(max-width:680px){.portal .cp-param-info024{width:18px;height:18px;opacity:.76}}
@media(prefers-reduced-motion:reduce){.portal .cp-param-info024{transition:none}}
