/* =====================================================================
   Marujo Admin — identidade visual
   Paleta náutica vintage, extraída do emblema da marca:
     tinta   #14273a  (azul-marinho profundo)
     mar     #1d3a56  (marinho médio)
     latão   #c9a15a  (dourado)
     areia   #f5f1e8  (creme)
     névoa   #f2f4f7  (fundo do conteúdo)
   Carregado DEPOIS do app.min.css — tudo aqui é override do tema.
   ===================================================================== */

:root {
    --mj-tinta: #14273a;
    --mj-mar: #1d3a56;
    --mj-latao: #c9a15a;
    --mj-latao-escuro: #b08a45;
    --mj-areia: #f5f1e8;
    --mj-nevoa: #f2f4f7;
    --mj-texto: #2b3a4a;
    --mj-borda: #e6eaf0;
}

body {
    background: var(--mj-nevoa) !important;
    color: var(--mj-texto);
}

/* ---------------------------------------------------------------
   Sidebar — casco escuro, wordmark no topo, âncora dourada no ativo
   --------------------------------------------------------------- */
#wrapper .leftside-menu {
    background: linear-gradient(180deg, var(--mj-tinta) 0%, #0e1d2c 100%) !important;
    box-shadow: 2px 0 14px rgba(10, 22, 34, .25);

    /* A topbar do tema (sticky, z-index maior) cobre os primeiros 70px da
       sidebar — sem este respiro, o topo da logo fica escondido atrás dela. */
    padding-top: var(--ct-topbar-height, 70px) !important;
}

.mj-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px 14px 12px;
}

/* Chip creme: a arte preta da logo aparece em qualquer fundo de tema. */
.mj-brand .mj-brand-chip {
    background: var(--mj-areia);
    border-radius: 14px;
    padding: 12px 16px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .25);
    max-width: 100%;
}

/* O emblema Marujo é vertical (922×1024): precisa de altura, não de largura. */
.mj-brand img {
    width: 110px;
    max-width: 100%;
    max-height: 128px;
    object-fit: contain;
    display: block;
}

/* -------------------------------------------------------------------
   Hambúrguer: menu abre ou fecha POR INTEIRO.

   O modo "condensed" do tema (régua só de ícones) cortava a logo e
   escondia os textos — em vez de remendar, ele foi transformado em
   "fechado": a sidebar sai da tela e o conteúdo ocupa tudo.

   Em janelas ≤ 1140px o JS do tema muda sozinho para o modo "full":
   menu escondido que abre por cima do conteúdo, completo e com
   backdrop — esse fica como está, é o comportamento mobile correto.
   ------------------------------------------------------------------- */
html[data-sidenav-size="condensed"]:not([data-layout="topnav"]) #wrapper .leftside-menu {
    width: var(--ct-leftbar-width);
    min-width: var(--ct-leftbar-width);
    transform: translateX(-110%);
    transition: transform .25s ease-in-out;
}

html[data-sidenav-size="condensed"] .content-page,
html[data-sidenav-size="condensed"] .navbar-custom {
    margin-left: 0 !important;
}

/* No modo "full" (mobile) a sidebar aberta fica ACIMA da topbar
   (z-index 1055 do tema) — o respiro do topo não é necessário e viraria
   uma faixa vazia; a logo volta para o topo absoluto. */
html[data-sidenav-size="full"] #wrapper .leftside-menu {
    padding-top: 0 !important;
}

.mj-brand-sub {
    display: block;
    text-align: center;
    color: rgba(245, 241, 232, .45);
    font-size: 10px;
    letter-spacing: 3px;
    text-transform: uppercase;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(245, 241, 232, .08);
    margin: 0 18px 8px;
}

.side-nav .side-nav-title {
    color: var(--mj-latao) !important;
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    opacity: .9;
    padding: 16px 24px 6px;
}

.side-nav .side-nav-link {
    color: #b8c4d0 !important;
    padding: 9px 18px;
    margin: 2px 10px;
    border-radius: 8px;
    font-size: 14px;
    transition: background .15s, color .15s;
}

.side-nav .side-nav-link i {
    color: inherit;
    font-size: 16px;
}

.side-nav .side-nav-link:hover {
    color: #fff !important;
    background: rgba(255, 255, 255, .06);
}

.side-nav .side-nav-item .side-nav-link.active {
    color: #fff !important;
    background: rgba(201, 161, 90, .16);
    box-shadow: inset 3px 0 0 var(--mj-latao);
}

/* ---------------------------------------------------------------
   Topbar — convés claro
   --------------------------------------------------------------- */
.navbar-custom {
    background: #fff !important;
    border-bottom: 1px solid var(--mj-borda);
    box-shadow: 0 1px 4px rgba(20, 39, 58, .05);
}

.navbar-custom .button-toggle-menu { color: var(--mj-tinta); }

.mj-user {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

.mj-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--mj-tinta);
    color: var(--mj-latao);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 14px;
    letter-spacing: .5px;
}

.mj-user-nome { font-weight: 600; color: var(--mj-tinta); font-size: 14px; }
.mj-user-cargo { font-size: 11px; color: #8795a5; display: block; line-height: 1; }

/* ---------------------------------------------------------------
   Botões
   --------------------------------------------------------------- */
.btn-primary {
    background: var(--mj-tinta) !important;
    border-color: var(--mj-tinta) !important;
}

.btn-primary:hover, .btn-primary:focus {
    background: var(--mj-mar) !important;
    border-color: var(--mj-mar) !important;
}

.btn-gold {
    background: var(--mj-latao) !important;
    border-color: var(--mj-latao) !important;
    color: #fff !important;
    font-weight: 600;
}

.btn-gold:hover, .btn-gold:focus {
    background: var(--mj-latao-escuro) !important;
    border-color: var(--mj-latao-escuro) !important;
    color: #fff !important;
}

.text-primary, a { color: var(--mj-mar); }
a:hover { color: var(--mj-tinta); }

/* ---------------------------------------------------------------
   Cards e páginas
   --------------------------------------------------------------- */
.card {
    border: 1px solid var(--mj-borda);
    border-radius: 14px;
    box-shadow: 0 2px 10px rgba(20, 39, 58, .05);
    margin-bottom: 24px;
}

.card .header-title {
    color: var(--mj-tinta);
    font-weight: 700;
}

.page-title-box .page-title {
    color: var(--mj-tinta) !important;
    font-weight: 700;
    font-size: 22px;
}

/* ---------------------------------------------------------------
   Painel — saudação e indicadores
   --------------------------------------------------------------- */
.mj-hero {
    background: linear-gradient(120deg, var(--mj-tinta) 0%, var(--mj-mar) 70%);
    border-radius: 16px;
    color: #fff;
    padding: 26px 30px;
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    box-shadow: 0 8px 22px rgba(20, 39, 58, .22);
}

.mj-hero h3 { color: #fff; margin: 0 0 4px; font-weight: 700; }

.mj-hero .mj-hero-data {
    color: var(--mj-latao);
    font-size: 13px;
    letter-spacing: .5px;
    display: inline-block;
}

/* "domingo, 12 de julho" com só a primeira letra maiúscula — capitalize
   em tudo deixava o "De Julho De" errado em português. */
.mj-hero .mj-hero-data::first-letter { text-transform: uppercase; }

.mj-stat {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 6px 4px;
}

.mj-stat-icone {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    flex-shrink: 0;
}

.mj-stat-icone.tinta  { background: rgba(29, 58, 86, .12);  color: var(--mj-mar); }
.mj-stat-icone.latao  { background: rgba(201, 161, 90, .18); color: var(--mj-latao-escuro); }
.mj-stat-icone.alerta { background: rgba(241, 180, 76, .18); color: #d29b2f; }
.mj-stat-icone.verde  { background: rgba(46, 160, 122, .14); color: #2ea07a; }

.mj-stat-numero { font-size: 28px; font-weight: 800; color: var(--mj-tinta); line-height: 1.1; }
.mj-stat-label  { font-size: 12px; color: #8795a5; text-transform: uppercase; letter-spacing: .6px; }

/* ---------------------------------------------------------------
   Tabelas
   --------------------------------------------------------------- */
.table thead th {
    background: #f8fafc;
    color: #6b7a8c;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .8px;
    border-bottom: 1px solid var(--mj-borda) !important;
}

.table-hover tbody tr:hover { background: rgba(201, 161, 90, .05); }

.mj-inicial {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--mj-areia);
    color: var(--mj-tinta);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 13px;
    margin-right: 10px;
    flex-shrink: 0;
}

.badge { font-weight: 600; letter-spacing: .3px; }

/* ---------------------------------------------------------------
   Formulários
   --------------------------------------------------------------- */
.form-control, .form-select {
    border-color: #d8dfe7;
    border-radius: 8px;
}

.form-control:focus, .form-select:focus {
    border-color: var(--mj-latao);
    box-shadow: 0 0 0 3px rgba(201, 161, 90, .15);
}

.form-label { font-weight: 600; color: var(--mj-tinta); font-size: 13px; }

.campo-obrigatorio::after { content: " *"; color: #d2543f; }

/* ---------------------------------------------------------------
   Avulsos usados pelas telas
   --------------------------------------------------------------- */
.tabela-vazia { padding: 36px; text-align: center; color: #8795a5; }

.placeholder-chip {
    display: inline-block;
    margin: 2px;
    padding: 3px 9px;
    border-radius: 12px;
    background: rgba(29, 58, 86, .08);
    color: var(--mj-mar);
    font-family: monospace;
    font-size: 12px;
    cursor: pointer;
    border: 0;
}

.placeholder-chip:hover { background: rgba(201, 161, 90, .25); color: var(--mj-tinta); }

.footer {
    border-top: 1px solid var(--mj-borda);
    color: #8795a5;
}

/* ---------------------------------------------------------------
   Login — noite em alto mar
   --------------------------------------------------------------- */
.mj-login-bg {
    min-height: 100vh;
    background:
        radial-gradient(1100px 500px at 80% -10%, rgba(201, 161, 90, .12), transparent 60%),
        linear-gradient(160deg, var(--mj-tinta) 0%, #0c1926 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.mj-login-card {
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .35);
    padding: 40px 38px 34px;
    width: 100%;
    max-width: 400px;
    text-align: center;
}

.mj-login-card img.emblema { width: 170px; margin-bottom: 6px; }

.mj-login-card h5 {
    color: #8795a5;
    font-size: 12px;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin: 10px 0 24px;
}

.mj-login-card .form-control { text-align: left; padding: 11px 14px; }
.mj-login-card .form-label { text-align: left; display: block; }

.mj-login-rodape { color: rgba(245, 241, 232, .4); font-size: 12px; text-align: center; margin-top: 18px; }
