/* Identidade visual Ampla Sistemas (manual da marca) */
:root {
  --navy: #0A1A3F; --deep: #050D24; --blue: #1E6BFF; --sky: #4FA3FF;
  --orange: #FF8A00; --amber: #FFB347; --ice: #EEF3FB; --slate: #8A97B1; --ink: #1B2540;
  --grad: linear-gradient(135deg, #050D24 0%, #0A1A3F 55%, #123A8C 100%);
  --grad-o: linear-gradient(90deg, #FF6A00, #FFB347);

  --bs-body-font-family: Inter, system-ui, sans-serif;
  --bs-body-color: var(--ink);
  --bs-body-bg: #F6F8FC;
  --bs-primary: var(--blue);
  --bs-primary-rgb: 30, 107, 255;
  --bs-link-color: var(--blue);
  --bs-link-color-rgb: 30, 107, 255;
  --bs-border-radius: .75rem;
}

body { background: #F6F8FC; }
h1, h2, h3, h4, h5, h6, .mont { font-family: Montserrat, system-ui, sans-serif; letter-spacing: -.02em; }

/* Assinatura (lockup) */
.lockup { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; }
.lockup img { width: 2.2rem; height: 2.2rem; }
.lockup .wm { font-family: Montserrat, system-ui, sans-serif; line-height: .95; }
.lockup .wm b { display: block; font-weight: 800; font-size: 1.4rem; letter-spacing: -.035em; }
.lockup .wm i { display: block; font-style: normal; font-weight: 500; font-size: .5rem; letter-spacing: .62em; margin-top: 3px; padding-left: 2px; }
.lockup.v { flex-direction: column; text-align: center; gap: .8rem; }
.lockup.v img { width: 4.5rem; height: 4.5rem; }
.lockup.v .wm b { font-size: 2.2rem; }
.lockup.v .wm i { font-size: .62rem; padding-left: .62em; }
.lockup.claro { color: #fff; }
.lockup.escuro { color: var(--navy); }

/* Barra superior */
.topo { background: var(--grad); color: #fff; }
.topo a, .topo summary { color: #DCE4F2; }
.topo a:hover { color: var(--amber); }
.topo .text-muted { color: #9AA8C9 !important; }
.topo .btn-outline-secondary { color: #DCE4F2; border-color: rgba(255,255,255,.3); }
.topo .btn-outline-secondary:hover { background: rgba(255,255,255,.1); color: #fff; }
.topo .card a, .topo .card { color: var(--ink); }

/* Telas de acesso (login / instalador) */
.tela-marca { min-height: 100vh; background: var(--grad); position: relative; overflow: hidden; }
.tela-marca:before, .tela-marca:after { content: ""; position: absolute; border-radius: 50%; filter: blur(80px); pointer-events: none; }
.tela-marca:before { width: 520px; height: 520px; background: var(--blue); opacity: .45; top: -160px; left: -120px; }
.tela-marca:after { width: 420px; height: 420px; background: var(--orange); opacity: .3; bottom: -200px; right: -80px; }
.tela-marca > * { position: relative; z-index: 1; }
.tela-marca .sub { color: #B9C6E4; }

/* Componentes */
.card { border: 0; border-radius: 1.25rem; box-shadow: 0 1px 0 rgba(10,26,63,.04), 0 20px 50px -30px rgba(10,26,63,.25); }
.btn { font-weight: 600; border-radius: .7rem; }
.btn-primary { --bs-btn-bg: var(--blue); --bs-btn-border-color: var(--blue); --bs-btn-hover-bg: #1557d6; --bs-btn-hover-border-color: #1557d6; --bs-btn-active-bg: #1249b3; }
.btn-warning, .btn-destaque { background: var(--grad-o); border: 0; color: #fff; }
.btn-warning:hover, .btn-destaque:hover { color: #fff; filter: brightness(1.05); }
.rotulo { font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: var(--slate); font-weight: 600; }
.numero { font-family: Montserrat, system-ui, sans-serif; font-weight: 800; color: var(--navy); }
.form-control:focus { border-color: var(--sky); box-shadow: 0 0 0 .2rem rgba(79,163,255,.25); }
/* Ajuda flutuante */
.ajuda-botao { position: fixed; right: 20px; bottom: 20px; z-index: 1040; width: 52px; height: 52px; border-radius: 50%; border: 0;
  background: var(--grad-o); color: #fff; font: 800 1.5rem Montserrat, sans-serif; box-shadow: 0 10px 25px -8px rgba(255,106,0,.7); }
.ajuda-botao:hover { filter: brightness(1.07); transform: translateY(-1px); }
.ajuda-dialogo { width: min(560px, calc(100vw - 32px)); max-height: 80vh; border: 0; border-radius: 1.25rem; padding: 1.5rem;
  box-shadow: 0 30px 60px -20px rgba(10,26,63,.5); color: var(--ink); }
.ajuda-dialogo::backdrop { background: rgba(5,13,36,.55); }
.ajuda-conteudo h3 { font-size: 1.15rem; margin-bottom: .75rem; }
.ajuda-conteudo h4 { font-size: .95rem; margin: 1rem 0 .3rem; color: var(--navy); }
.ajuda-conteudo p, .ajuda-conteudo li { font-size: .9rem; }

.alert-warning { background: #FFF4E5; border-color: #FFD8A8; color: #7A4100; }

/* Utilitarios (substituem style="" inline, bloqueado pela CSP) */
.larg-420 { max-width: 420px; } .larg-460 { max-width: 460px; } .larg-760 { max-width: 760px; }
.larg-900 { max-width: 900px; } .larg-1000 { max-width: 1000px; } .larg-1100 { max-width: 1100px; }
.min-320 { min-width: 320px; }
.quebra-linhas { white-space: pre-line; }
.sino-resumo { cursor: pointer; list-style: none; }
.sino-painel { width: 340px; z-index: 1000; }

/* Menu do usuario (topo) */
.menu-painel { width: 240px; z-index: 1000; }
.menu-item { display: flex; justify-content: space-between; align-items: center; padding: .45rem .5rem; border-radius: .5rem; text-decoration: none; }
.menu-item:hover { background: #F1F4FA; }
.topo .avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--grad-o); color: #fff; display: inline-flex; align-items: center; justify-content: center; font: 800 .9rem Montserrat, sans-serif; }
.menu-usuario > summary::-webkit-details-marker, .sino-resumo::-webkit-details-marker { display: none; }
