body{
    margin:0;
    padding:0;
    background:#070707;
    color:#fff;
    font-family:Arial, Helvetica, sans-serif;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    box-sizing: border-box;
    overflow-x: hidden;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    margin:0;
    padding:0;
    background:#070707;
    color:#fff;
    font-family:Arial, Helvetica, sans-serif;
    overflow:hidden;
}

input,
select,
textarea,
button{
    font-family:Arial, Helvetica, sans-serif;
}

input,
select,
textarea{
    font-size:15px;
}

input::placeholder,
textarea::placeholder{
    color:#999;
    opacity:1;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button{
    -webkit-appearance:none;
}

button,
input,
select,
textarea{
    outline:none;
}

button{
    border:0;
}

a{
    text-decoration:none;
}

.hidden,
.esconder{
    display:none;
}

.cursor{
    cursor:pointer;
}

.centralizar-input{
    text-align:center;
}

#loading{
    display:none;
    justify-content:center;
    align-items:center;
    position:fixed;
    inset:0;
    z-index:99999;
    background:rgba(0,0,0,.70);
}

#loading img{
    width:60px;
}

.login-page{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
}

.login-card{
    width:100%;
    max-width:380px;
    background:#fff;
    color:#111;
    border-radius:34px;
    padding:28px 24px;
    box-shadow:0 26px 70px rgba(0,0,0,.35);
}

.login-logo{
    text-align:center;
    margin-bottom:22px;
}

.login-logo img{
    width:120px;
}

.login-titulo{
    font-size:12px;
    font-weight:900;
    color:#666;
    text-transform:uppercase;
    text-align:center;
    margin-bottom:8px;
    letter-spacing:.4px;
}

.login-subtitulo{
    font-size:26px;
    font-weight:900;
    text-align:center;
    color:#111;
    margin-bottom:24px;
}

.login-form{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.login-form input{
    width:100%;
    height:58px;
    border:1px solid #e1e1e1;
    background:#f6f6f6;
    border-radius:20px;
    padding:0 16px;
    font-size:17px;
    font-weight:800;
    color:#111;
    text-align:center;
}

.login-form input:focus{
    background:#fff;
    border-color:#111;
}

.login-botao{
    display:flex;
    align-items:center;
    justify-content:center;
}

.login-botao{
    width:100%;
    height:60px;
    margin-top:16px;
    border-radius:22px;
    background:#d7ff3f;
    color:#111;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:15px;
    font-weight:900;
    cursor:pointer;
}

.login-aviso{
    background:#f6f6f6;
    border:1px solid #e1e1e1;
    color:#555;
    border-radius:20px;
    padding:14px 16px;
    text-align:center;
    font-size:13px;
    font-weight:800;
    line-height:1.45;
    margin-bottom:18px;
}

.login-link{
    margin-top:16px;
    text-align:center;
    font-size:13px;
    font-weight:900;
    color:#111;
    cursor:pointer;
}

.login-link span{
    color:#27A844;
}

.caixa-modal[style*="display: block"]{
    display:block !important;
}

.caixa-leitor[style*="display: flex"]{
    display:flex !important;
}

.viva-alerta-area,
#area_alerta{
    position:fixed;
    top:-120px;
    left:0;
    width:100%;
    display:flex;
    justify-content:center;
    padding:14px;
    z-index:999999;
    transition:.28s ease;
    pointer-events:none;
}

.viva-alerta,
#alerta{
    min-width:220px;
    max-width:90%;
    min-height:54px;
    padding:14px 20px;
    border-radius:20px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:#fff;
    font-size:14px;
    font-weight:800;
    backdrop-filter:blur(12px);
    box-shadow:0 15px 45px rgba(0,0,0,.28);
}

.bg-verde{
    background:#27A844;
}

.bg-verde-claro{
    background:#F1FAF3;
    border:1px solid #27A844;
}

.bg-verde-claro2{
    background:#ddf7e2;
}

.bg-vermelho{
    background:#DC3546;
}

.bg-vermelho-claro{
    background:#fceeef;
    border:1px solid #DC3546;
}

.bg-vermelho-claro2{
    background:#f7e3e4;
}

.bg-cinza-claro2{
    background:#ddd;
}

.bg-azul{
    background:#007AFF;
}

.bg-azul-claro{
    background:#e8eff7;
    border:1px solid #007AFF;
}

.bg-laranja{
    background:#FEC107;
}

.bg-laranja-claro{
    background:#FAF4E1;
    border:1px solid #FEC107;
}

.cor-verde{
    color:#27A844;
}

.cor-vermelho{
    color:#DC3546;
}

.cor-cinza{
    color:#999;
}

.cor-azul{
    color:#007AFF;
}

.cor-preto{
    color:#000;
}

.viva-alerta-area{
    position:fixed;
    top:-120px;
    left:0;
    width:100%;
    display:flex;
    justify-content:center;
    padding:14px;
    z-index:999999;
    transition:.28s ease;
    pointer-events:none;
}

.viva-alerta{
    min-width:220px;
    max-width:90%;
    min-height:54px;
    padding:14px 20px;
    border-radius:20px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:#fff;
    font-size:14px;
    font-weight:800;
    backdrop-filter:blur(12px);
    box-shadow:0 15px 45px rgba(0,0,0,.28);
}

.area{
    min-height:100vh;
    padding-bottom:110px;
    background:
        radial-gradient(circle at 90% 5%, rgba(215,255,63,.15), transparent 24%),
        linear-gradient(135deg, #050505, #101010);
}

.content{
    padding:0 16px 30px;
}

.caixa-topo{
    padding:20px 16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.caixa-topo-logo{
    cursor:pointer;
    display:flex;
    align-items:center;
}

.caixa-topo-logo img{
    height:50px;
    width:auto;
    display:block;
}

.caixa-topo-status{
    background:rgba(215,255,63,.12);
    border:1px solid rgba(215,255,63,.25);
    color:#d7ff3f;
    padding:10px 14px;
    border-radius:999px;
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.5px;
}

.caixa-page{
    padding-top:10px;
}

.caixa-card{
    background:#fff;
    color:#111;
    border-radius:34px;
    padding:24px;
    box-shadow:0 26px 70px rgba(0,0,0,.35);
}

.caixa-card-label{
    font-size:12px;
    font-weight:900;
    color:#666;
    text-transform:uppercase;
    margin-bottom:12px;
}

.caixa-valor-box{
    display:flex;
    align-items:center;
    border:2px solid #111;
    background:#f5f5f5;
    border-radius:28px;
    padding:16px 18px;
}

.caixa-valor-prefixo{
    font-size:28px;
    font-weight:900;
    margin-right:10px;
}

.caixa-valor-input{
    width:100%;
    border:0;
    outline:none;
    background:transparent;
    font-size:52px;
    font-weight:900;
    color:#111;
}

.caixa-acoes{
    margin-top:22px;
}

.caixa-btn-principal{
    width:100%;
    height:82px;
    border-radius:24px;
    border:0;
    cursor:pointer;
    font-weight:900;
    font-size:15px;
    display:flex;
    flex-direction:column;
    gap:8px;
    align-items:center;
    justify-content:center;
    transition:.2s;
}

.caixa-btn-principal[data-enabled="1"]{
    background:#d7ff3f;
    color:#111;
}

.caixa-btn-principal[data-enabled="0"]{
    background:#ececec;
    color:#999;
}

.caixa-btn-principal i{
    font-size:26px;
    transition:.2s;
}

.caixa-btn-principal[data-enabled="1"] i{
    color:#111;
}

.caixa-btn-principal[data-enabled="0"] i{
    color:#999;
}

.caixa-btn-principal:active{
    transform:scale(.98);
}

@media (max-width:520px){

    .caixa-valor-input{
        font-size:42px;
    }

}

.caixa-menu{
    position:fixed;
    left:0;
    bottom:0;
    width:100%;
    background:rgba(7,7,7,.92);
    backdrop-filter:blur(16px);
    border-top:1px solid rgba(255,255,255,.08);
    padding:10px 10px 14px;
    z-index:50;
}

.caixa-menu-grid{
    display:grid;
    grid-template-columns:repeat(var(--menu-cols, 5), 1fr);
    gap:8px;
}

.caixa-menu-item{
    min-height:64px;
    border-radius:20px;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.06);
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    cursor:pointer;
    transition:.2s;
}

.caixa-menu-item i{
    font-size:18px;
    margin-bottom:5px;
    color:#ddd;
}

.caixa-menu-item label{
    font-size:10px;
    font-weight:800;
    color:#ddd;
}

.caixa-menu-item[data-enabled="1"]{
    background:rgba(215,255,63,.12);
    border-color:rgba(215,255,63,.22);
}

.caixa-menu-item[data-enabled="1"] i,
.caixa-menu-item[data-enabled="1"] label{
    color:#d7ff3f;
}

.caixa-menu-sair{
    background:rgba(220,53,70,.14);
    border-color:rgba(220,53,70,.22);
}

.caixa-menu-sair i,
.caixa-menu-sair label{
    color:#ff6b7a;
}

.caixa-menu-item[data-enabled="1"]{
    background:rgba(215,255,63,.12);
    border-color:rgba(215,255,63,.22);
}

.caixa-menu-item[data-enabled="1"] i,
.caixa-menu-item[data-enabled="1"] label{
    color:#d7ff3f;
}

.caixa-menu-item[data-enabled="0"] i,
.caixa-menu-item[data-enabled="0"] label{
    color:#8c8c8c;
}

.caixa-leitor{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.88);
    z-index:100;
    display:none;
    align-items:center;
    justify-content:center;
    padding:20px;
}

.caixa-leitor-box{
    width:100%;
    max-width:420px;
}

.caixa-leitor-camera{
    overflow:hidden;
    border-radius:26px;
    background:#111;
}

.caixa-leitor-fechar{
    margin-top:16px;
}

.caixa-leitor-fechar button{
    width:100%;
    height:56px;
    border:0;
    border-radius:18px;
    background:#fff;
    color:#111;
    font-weight:900;
    font-size:15px;
}

.caixa-modal{
    position:fixed;
    inset:0;
    background:#070707;
    z-index:90;
    display:none;
    overflow:auto;
}

.caixa-modal-topo{
    padding:14px 16px 10px;
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.caixa-modal-titulo{
    font-size:18px;
    font-weight:900;
    color:#fff;
    line-height:1;
}

.caixa-modal-fechar{
    width:32px;
    height:32px;
    border-radius:50%;
    background:rgba(255,255,255,.22);
    border:1px solid rgba(255,255,255,.14);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    color:#fff;
    font-size:16px;
    transition:.2s;
    backdrop-filter:blur(10px);
}

.caixa-modal-fechar:hover{
    background:rgba(255,255,255,.30);
}

.caixa-modal-card{
    background:#fff;
    color:#111;
    border-radius:28px;
    padding:22px;
    box-shadow:0 20px 55px rgba(0,0,0,.28);
}

.caixa-form{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.caixa-form-grupo{
    display:flex;
    flex-direction:column;
}

.caixa-form-label{
    font-size:12px;
    font-weight:900;
    color:#555;
    text-transform:uppercase;
    margin-bottom:8px;
    letter-spacing:.3px;
}

.caixa-form input,
.caixa-form select,
.caixa-form textarea{
    width:100%;
    height:52px;
    border:1px solid #e1e1e1;
    background:#f6f6f6;
    border-radius:16px;
    padding:0 14px;
    font-size:15px;
    font-weight:800;
    color:#111;
}

.caixa-form textarea{
    height:110px;
    padding:14px;
    resize:none;
}

.caixa-form input:focus,
.caixa-form select:focus,
.caixa-form textarea:focus{
    border-color:#111;
    background:#fff;
}

.caixa-form input[type="file"]{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:13px 14px 8px 14px;
    line-height:30px;
    font-size:14px;
    font-weight:700;
}

.caixa-form input[type="file"]::file-selector-button{
    height:32px;
    margin-right:12px;
    border:none;
    border-radius:10px;
    padding:0 12px;
    background:#fff;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
}

.caixa-form-limpar{
    margin-top:16px;
    text-align:center;
    font-size:12px;
    font-weight:900;
    color:#777;
    text-transform:uppercase;
    cursor:pointer;
}

.caixa-opcao{
    min-height:108px;
    border-radius:24px;
    background:#f5f5f5;
    border:1px solid #ececec;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    cursor:pointer;
}

.caixa-opcao i{
    font-size:30px;
    margin-bottom:12px;
}

.caixa-opcao-titulo{
    font-size:14px;
    font-weight:900;
    color:#111;
}

.caixa-modal-area{
    padding:0 16px 120px;
}

.caixa-modal-card{
    background:#fff;
    color:#111;
    border-radius:30px;
    padding:22px;
}

.caixa-modal-label{
    font-size:12px;
    font-weight:900;
    color:#666;
    text-transform:uppercase;
    margin-bottom:14px;
}

.caixa-opcoes{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:12px;
}

.caixa-opcao{
    min-height:108px;
    border-radius:24px;
    background:#f5f5f5;
    border:1px solid #eee;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    cursor:pointer;
}

.caixa-opcao i{
    font-size:26px;
    margin-bottom:10px;
}

.modal-confirmacao{
    text-align:center;
}

.modal-confirmacao-icone{
    width:74px;
    height:74px;
    margin:0 auto 18px;
    border-radius:50%;
    background:#fceeef;
    color:#DC3546;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:34px;
}

.modal-confirmacao-titulo{
    font-size:18px;
    font-weight:900;
    color:#111;
    margin-bottom:10px;
}

.modal-confirmacao-texto{
    font-size:14px;
    font-weight:700;
    color:#666;
    line-height:1.45;
    margin-bottom:24px;
}

.modal-confirmacao-botoes{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.dois-botoes {
    display: grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.modal-confirmacao-btn{
    height:54px;
    border-radius:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:14px;
    font-weight:900;
    cursor:pointer;
}

.modal-confirmacao-btn.verde{
    background:#d7ff3f;
    color:#111;
}

.modal-confirmacao-btn.vermelho{
    background:#fceeef;
    color:#DC3546;
    border:1px solid #DC3546;
}

.lista-vip-status{
    display:inline-block;
    margin-top:5px;
    padding:5px 10px;
    border-radius:999px;
    font-size:12px;
    font-weight:900;
}

.lista-vip-status.verde{
    background:#eafff0;
    color:#108b3f;
}

.lista-vip-status.vermelho{
    background:#fff0f1;
    color:#c82333;
}

.lista-vip-status.amarelo{
    background:#fff9df;
    color:#9b7800;
}
.lista-vip-status.azul{
    background:#eef5ff;
    color:#1261b3;
}

.atalhos{
    margin-top:18px;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:10px;
}

.atalho{
    background:#f5f5f5;
    border-radius:20px;
    padding:18px 10px;
    text-align:center;
    font-size:16px;
    font-weight:900;
    color:#111;
    cursor:pointer;
    transition:.2s;
}

.ativo {
    background: rgba(0,122,255,.10);
    border-color: rgba(0,122,255,.18);
}

.atalho:hover{
    background:#d7ff3f;
}

.atalho.ativo{
    background:#d7ff3f;
}

.caixa-opcao-titulo{
    font-size:12px;
    font-weight:900;
}

.caixa-form{
    margin-top:20px;
}

.caixa-form-grupo{
    margin-bottom:14px;
}

.caixa-form-label{
    font-size:12px;
    font-weight:900;
    color:#555;
    text-transform:uppercase;
    margin-bottom:8px;
}

.caixa-form-linha{
    display:flex;
    gap:8px;
}

.caixa-form input{
    width:100%;
    height:56px;
    border:1px solid #ddd;
    background:#f7f7f7;
    border-radius:18px;
    padding:0 16px;
    outline:none;
    font-size:18px;
    font-weight:800;
    color:#111;
}

.caixa-form-icone{
    width:56px;
    min-width:56px;
    height:56px;
    border-radius:18px;
    background:#d7ff3f;
    color:#111;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
}

.caixa-form-botao{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:58px;
    border:0;
    border-radius:20px;
    background:#d7ff3f;
    color:#111;
    font-weight:900;
    font-size:15px;
    cursor:pointer;
}

.caixa-retorno{
    display:none;
    margin-top:14px;
    border-radius:20px;
    padding:16px;
    text-align:center;
    font-weight:900;
}

.caixa-codigo-box{
    display:flex;
    gap:10px;
}

.caixa-codigo-box input{
    width:100%;
    height:62px;
    border:2px solid #111;
    background:#f5f5f5;
    border-radius:22px;
    padding:0 18px;
    font-size:30px;
    font-weight:900;
    text-align:center;
    outline:none;
}

.caixa-codigo-btn{
    width:64px;
    min-width:64px;
    height:62px;
    border:0;
    border-radius:22px;
    background:#d7ff3f;
    color:#111;
    font-size:22px;
    cursor:pointer;
}

.caixa-pagamento-card{
    background:#fff;
    color:#111;
    border-radius:34px;
    padding:22px;
    box-shadow:0 26px 70px rgba(0,0,0,.35);
}

.caixa-pagamento-opcoes{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:12px;
}

.caixa-pagamento-opcao{
    min-height:105px;
    border-radius:24px;
    background:#fff;
    border:2px solid #111;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    cursor:pointer;
    transition:.2s;
}

.caixa-pagamento-opcao i{
    font-size:28px;
    margin-bottom:10px;
}

.caixa-pagamento-opcao-titulo{
    font-size:13px;
    font-weight:900;
}

.caixa-pagamento-qrcode{
    margin-top:14px;
    border-radius:22px;
    padding:18px;
    background:#d7ff3f;
    color:#111;
    font-size:14px;
    font-weight:900;
    text-align:center;
    cursor:pointer;
}

.caixa-pagamento-linha{
    margin-top:14px;
    border-radius:25px;
    padding:10px;
    padding-left: 16px;
    padding-right: 16px;
    background:#f5f5f5;
    border:1px solid #eee;
}

.caixa-pagamento-linha-area{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
}

.caixa-pagamento-forma{
    font-size:13px;
    font-weight:900;
    color:#555;
    text-transform:uppercase;
}

.caixa-pagamento-forma input{
    width:140px;
    height:40px;
    border:0;
    outline:none;
    background:transparent;
    font-size:18px;
    font-weight:900;
    text-align:center;
    color:#111;
}

.caixa-pagamento-valor{
    font-size:22px;
    font-weight:900;
    color:#111;
}

.caixa-pagamento-valor input{
    width:140px;
    height:40px;
    border:0;
    outline:none;
    background:transparent;
    font-size:22px;
    font-weight:900;
    text-align:right;
    color:#111;
}

.caixa-pagamento-total{
    background:#ddf7e2;
    border:1px solid #27A844;
}

.caixa-pagamento-falta{
    background:#fceeef;
    border:1px solid #DC3546;
}

.caixa-menu-finalizar{
    grid-column:span 4;
    min-height:64px;
    border-radius:20px;
    background:rgba(215,255,63,.12);
    border:1px solid rgba(215,255,63,.22);
    color:#d7ff3f;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    cursor:pointer;
    font-size:14px;
    font-weight:900;
}

.caixa-pix-centro{
    text-align:center;
    color:#111;
    border-radius:34px;
    padding:24px 18px;
    min-height:calc(100vh - 80px);

    background:
        radial-gradient(circle at top right, rgba(215,255,63,.18), transparent 22%),
        radial-gradient(circle at bottom left, rgba(215,255,63,.10), transparent 24%),
        linear-gradient(145deg, #ffffff, #f5f5f5);

    border:1px solid rgba(215,255,63,.18);

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.7),
        0 25px 70px rgba(0,0,0,.22);
}

.caixa-pix-titulo{
    font-size:18px;
    font-weight:900;
    line-height:1.35;
    margin-bottom:20px;
    color:#111;
}

.caixa-pix-qrcode-area{
    background:#fff;
    border-radius:30px;
    padding:20px;
    display:inline-block;
    margin-bottom:20px;

    border:1px solid rgba(0,0,0,.06);

    box-shadow:
        0 20px 50px rgba(0,0,0,.12),
        inset 0 1px 0 rgba(255,255,255,.8);
}

.caixa-pix-total{
    font-size:38px;
    font-weight:900;
    color:#111;
    margin-bottom:18px;
    letter-spacing:-1px;
}

.caixa-pix-info{
    font-size:14px;
    font-weight:800;
    color:#222;
    line-height:1.35;
    margin-bottom:16px;
}

.caixa-pix-contador{
    font-size:14px;
    font-weight:900;
    color:#111;
}

.caixa-pix-cancelar{
    margin-top:10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:0 10px;
    border-radius:999px;
    background:rgba(17,17,17,.12);
    border:1px solid rgba(17,17,17,.18);
    color:#111;
    font-size:10px;
    font-weight:900;
    cursor:pointer;
}

.caixa-pix-status-card{
    background:#fff;
    color:#111;
    border-radius:34px;
    padding:38px 22px;
    min-height:calc(100vh - 100px);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    box-shadow:0 26px 70px rgba(0,0,0,.35);
}

.caixa-pix-status-card.sucesso{
    background:
        radial-gradient(circle at top right, rgba(215,255,63,.35), transparent 34%),
        #fff;
}

.caixa-pix-status-card.cancelado{
    background:
        radial-gradient(circle at top right, rgba(255,107,122,.18), transparent 34%),
        #fff;
}

.caixa-pix-icone-status{
    width:96px;
    height:96px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:46px;
    margin-bottom:22px;
}

.caixa-pix-icone-status.sucesso{
    background:#d7ff3f;
    color:#111;
}

.caixa-pix-icone-status.cancelado{
    background:#fceeef;
    color:#DC3546;
}

.caixa-pix-status{
    font-size:23px;
    font-weight:900;
    color:#111;
    margin-bottom:8px;
}

.caixa-pix-status-sub{
    font-size:14px;
    font-weight:700;
    color:#666;
    line-height:1.35;
}

.relatorio-page{
    padding-bottom:120px;
}

.relatorio-card{
    background:#fff;
    color:#111;
    border-radius:30px;
    padding:22px;
    margin-bottom:14px;
    box-shadow:0 20px 55px rgba(0,0,0,.28);
}

.relatorio-topo-card{
    background:#fff;
    color:#111;
    border-radius:18px;
    padding:16px;
    margin-bottom:14px;
    box-shadow:0 14px 35px rgba(0,0,0,.22);
}

.relatorio-titulo{
    font-size:12px;
    font-weight:900;
    color:#666;
    text-transform:uppercase;
    margin-bottom:6px;
    letter-spacing:.3px;
}

.relatorio-quantidade{
    font-size:20px;
    line-height:1;
    font-weight:900;
    color:#111;
    letter-spacing:-.6px;
}

.relatorio-destaque{
    font-size:34px;
    font-weight:900;
    color:#111;
    letter-spacing:-1px;
}

.relatorio-resumos{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    margin-bottom:14px;
}

.relatorio-resumo{
    background:#fff;
    color:#111;
    border-radius:22px;
    padding:15px 16px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    border:1px solid rgba(0,0,0,.06);
    box-shadow:0 12px 35px rgba(0,0,0,.18);
}

.relatorio-resumo.verde{
    background:#f1faf3;
    border-color:#27A844;
}

.relatorio-resumo.azul{
    background:#e8eff7;
    border-color:#007AFF;
}

.relatorio-resumo.vermelho{
    background:#fceeef;
    border-color:#DC3546;
}

.relatorio-resumo{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.relatorio-resumo-label{
    font-size:12px;
    font-weight:900;
    color:#555;
    text-transform:uppercase;
    white-space:nowrap;
}

.relatorio-resumo-valor{
    font-size:17px;
    font-weight:900;
    color:#111;
    white-space:nowrap;
}

.relatorio-filtro{
    background:rgba(215,255,63,.10);
    border:1px solid rgba(215,255,63,.22);
    border-radius:22px;
    padding:14px 16px;
    margin-bottom:14px;
}

.relatorio-filtro-titulo{
    font-size:11px;
    font-weight:900;
    color:#d7ff3f;
    text-transform:uppercase;
    margin-bottom:6px;
}

.relatorio-filtro-texto{
    font-size:13px;
    font-weight:700;
    color:#fff;
    line-height:1.4;
}

.relatorio-lista{
    background:#fff;
    color:#111;
    border-radius:18px;
    padding:8px 16px;
    box-shadow:0 14px 35px rgba(0,0,0,.22);
}

.relatorio-item{
    display:flex;
    justify-content:space-between;
    gap:14px;
    padding:18px 0;
    border-bottom:1px solid #eee;
}

.relatorio-item:last-child{
    border-bottom:0;
}

.relatorio-item-info{
    flex:1;
}

.relatorio-item-titulo{
    font-size:15px;
    font-weight:900;
    margin-bottom:8px;
    color:#111;
}

.relatorio-item-titulo i{
    font-size:13px;
    color:#111;
}

.relatorio-item-detalhes{
    font-size:12px;
    font-weight:700;
    color:#777;
    line-height:1.55;
}

.relatorio-item-valor{
    min-width:95px;
    text-align:right;
    font-size:17px;
    font-weight:900;
    color:#111;
}

.relatorio-vazio{
    padding:18px 10px;
    text-align:center;
    font-size:14px;
    font-weight:800;
    color:#777;
}

.relatorio-carregar,
.relatorio-fim{
    text-align:center;
    padding:18px 0;
}

.relatorio-carregar i{
    font-size:28px;
    color:#111;
    cursor:pointer;
}

.relatorio-fim{
    display:none;
    color:#777;
    font-weight:800;
}

.relatorio-fim i{
    font-size:24px;
    margin-bottom:8px;
    color:#27A844;
}

.relatorio-item-acoes{
    min-width:44px;
    display:flex;
    align-items:center;
    justify-content:flex-end;
}

.relatorio-item-acoes i{
    font-size:18px;
    cursor:pointer;
}

.encerrar-modal{
    display:none;
    position:fixed;
    inset:0;
    z-index:99999999;
    background:rgba(0,0,0,.72);
    align-items:center;
    justify-content:center;
    padding:24px;
}

.encerrar-modal-box{
    width:100%;
    max-width:380px;
    background:#fff;
    border-radius:28px;
    padding:28px 22px 24px;
    text-align:center;
    box-shadow:0 20px 60px rgba(0,0,0,.35);
}

.encerrar-modal-icone{
    width:74px;
    height:74px;
    margin:0 auto 18px;
    border-radius:50%;
    background:#fceeef;
    color:#DC3546;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:34px;
}

.encerrar-modal-titulo{
    font-size:18px;
    font-weight:900;
    color:#111;
    margin-bottom:10px;
}

.encerrar-modal-texto{
    font-size:14px;
    font-weight:700;
    color:#666;
    line-height:1.45;
    margin-bottom:24px;
}

.encerrar-modal-acoes{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.encerrar-modal-btn{
    height:54px;
    border-radius:18px;
    border:0;
    font-size:14px;
    font-weight:900;
    cursor:pointer;
}

.encerrar-modal-btn.confirmar{
    background:#d7ff3f;
    color:#111;
}

.encerrar-modal-btn.cancelar{
    background:#fceeef;
    color:#DC3546;
    border:1px solid #DC3546;
}

.fechamento-grid{
    display:grid;
    gap:10px;
    margin-bottom:18px;
}

.fechamento-card{
    background:#fff;
    color:#111;
    border-radius:18px;
    padding:16px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    border:1px solid rgba(0,0,0,.06);
    box-shadow:0 14px 35px rgba(0,0,0,.22);
}

.fechamento-card.verde{
    background:#f1faf3;
    border-color:#27A844;
}

.fechamento-card.vermelho{
    background:#fceeef;
    border-color:#DC3546;
}

.fechamento-card-titulo{
    font-size:13px;
    font-weight:900;
    color:#555;
    text-transform:uppercase;
}

.fechamento-card-valor{
    font-size:18px;
    font-weight:900;
    color:#111;
}

.fechamento-total{
    margin-top:8px;
    margin-bottom:18px;
    background:
        radial-gradient(circle at top right, rgba(215,255,63,.18), transparent 22%),
        linear-gradient(145deg, #ffffff, #f5f5f5);

    border:1px solid rgba(215,255,63,.25);

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.7),
        0 25px 70px rgba(0,0,0,.18);
}

.fechamento-total .fechamento-card-titulo{
    color:#666;
}

.fechamento-total .fechamento-card-valor{
    color:#111;
    font-size:24px;
    letter-spacing:-.5px;
}

.comprovante-acoes{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(0, 1fr));
    gap:12px;
    margin-bottom:16px;
}

.comprovante-acao{
    min-height:120px;
}

.comprovante-acao{
    min-height:120px;
    border-radius:28px;
    background:#fff;
    color:#111;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    cursor:pointer;
    box-shadow:0 20px 55px rgba(0,0,0,.28);
    transition:.2s;
}

.comprovante-acao i{
    font-size:34px;
    margin-bottom:12px;
}

.comprovante-acao label{
    font-size:13px;
    font-weight:900;
    line-height:1.4;
    cursor:pointer;
}

.comprovante-acao.verde{
    background:
        radial-gradient(circle at top right, rgba(215,255,63,.18), transparent 24%),
        linear-gradient(145deg, #ffffff, #f5f5f5);

    border:1px solid rgba(215,255,63,.24);
}

.comprovante-acao.verde i{
    color:#27A844;
}

.comprovante-acao.vermelho{
    background:#fff;
    border:1px solid rgba(220,53,70,.16);
}

.comprovante-acao.vermelho i{
    color:#DC3546;
}

.comprovante-erro{
    background:#fff;
    color:#111;
    border-radius:22px;
    padding:18px;
    text-align:center;
    font-size:14px;
    font-weight:800;
    box-shadow:0 14px 35px rgba(0,0,0,.22);
}

.box-resumo{
    display:grid;
    gap:10px;
    margin-bottom:14px;
}

.box-resumo-card{
    border-radius:20px;
    padding:16px;
    box-shadow:0 14px 35px rgba(0,0,0,.22);
}

.box-resumo-card.verde{
    background:#f1faf3;
    border:1px solid #27A844;
}

.box-resumo-card.azul{
    background:#e8eff7;
    border:1px solid #007AFF;
}

.box-resumo-texto{
    font-size:14px;
    font-weight:900;
    color:#111;
    line-height:1.4;
}

.produtos-lista{
    display:grid;
    gap:10px;
}

.produto-card{
    background:#fff;
    color:#111;
    border-radius:22px;
    padding:18px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    cursor:pointer;
    box-shadow:0 14px 35px rgba(0,0,0,.22);
    transition:.2s;
}

.produto-card:active{
    transform:scale(.98);
}

.produto-info{
    flex:1;
    min-width:0;
}

.produto-nome{
    font-size:15px;
    font-weight:900;
    color:#111;
    margin-bottom:6px;
    line-height:1.35;
}

.produto-preco{
    font-size:13px;
    font-weight:800;
    color:#666;
}

.produto-add{
    min-width:52px;
    height:52px;
    border-radius:16px;
    background:#d7ff3f;
    color:#111;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:24px;
}

.produtos-vazio{
    background:#fff;
    color:#777;
    border-radius:20px;
    padding:24px 18px;
    text-align:center;
    font-size:14px;
    font-weight:800;
    box-shadow:0 14px 35px rgba(0,0,0,.22);
}

.box-cestinha-badge{
    position:absolute;
    top:8px;
    right:10px;
    min-width:20px;
    height:20px;
    padding:0 6px;
    border-radius:999px;
    background:#d7ff3f;
    color:#111;
    font-size:11px;
    font-weight:900;
    display:flex;
    align-items:center;
    justify-content:center;
}

.caixa-menu-item{
    position:relative;
}

.box-pagamento-confirmado{
    position:fixed;
    inset:0;
    z-index:9999;
    background:
        radial-gradient(circle at top right, rgba(215,255,63,.22), transparent 26%),
        linear-gradient(135deg, #050505, #101010);
    display:none;
    align-items:center;
    justify-content:center;
    padding:24px;
}

.box-pagamento-card{
    width:100%;
    max-width:360px;
    background:#fff;
    color:#111;
    border-radius:34px;
    padding:42px 24px;
    text-align:center;
    box-shadow:0 26px 70px rgba(0,0,0,.35);
}

.box-pagamento-icone{
    width:92px;
    height:92px;
    border-radius:50%;
    background:#d7ff3f;
    color:#111;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:46px;
    margin:0 auto 22px;
}

.box-pagamento-texto{
    font-size:22px;
    font-weight:900;
    color:#111;
}

.cestinha-resumo{
    display:grid;
    gap:10px;
    margin-bottom:14px;
}

.cestinha-total{
    background:#f1faf3;
    border:1px solid #27A844;
    color:#111;
    border-radius:18px;
    padding:16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    box-shadow:0 14px 35px rgba(0,0,0,.22);
}

.cestinha-total-label{
    font-size:12px;
    font-weight:900;
    color:#2c6b3f;
    text-transform:uppercase;
}

.cestinha-total-valor{
    font-size:18px;
    font-weight:900;
    color:#111;
}

.cestinha-aviso{
    display:none;
    background:#fceeef;
    border:1px solid #DC3546;
    color:#111;
    border-radius:18px;
    padding:14px 16px;
    font-size:13px;
    font-weight:900;
    text-align:center;
    box-shadow:0 14px 35px rgba(0,0,0,.22);
}

.cestinha-lista{
    background:#fff;
    color:#111;
    border-radius:18px;
    padding:8px 16px;
    box-shadow:0 14px 35px rgba(0,0,0,.22);
}

.cestinha-item{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:16px 0;
    border-bottom:1px solid #eee;
}

.cestinha-item:last-child{
    border-bottom:0;
}

.cestinha-info{
    flex:1;
    min-width:0;
}

.cestinha-produto{
    font-size:15px;
    font-weight:900;
    color:#111;
    line-height:1.35;
    margin-bottom:6px;
}

.cestinha-numero{
    font-size:11px;
    color:#999;
    font-style:normal;
    margin-right:4px;
}

.cestinha-subtotal{
    font-size:12px;
    font-weight:800;
    color:#777;
    line-height:1.4;
}

.cestinha-remover{
    min-width:46px;
    height:46px;
    border-radius:15px;
    background:#fceeef;
    color:#DC3546;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:18px;
    cursor:pointer;
}

.cestinha-vazia{
    background:#fff;
    color:#777;
    border-radius:18px;
    padding:24px 18px;
    text-align:center;
    font-size:14px;
    font-weight:800;
    box-shadow:0 14px 35px rgba(0,0,0,.22);
}

.menu-app-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:12px;
}

.menu-app-card{
    min-height:160px;
    border-radius:28px;
    background:#fff;
    color:#111;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    cursor:pointer;
    box-shadow:0 20px 55px rgba(0,0,0,.28);
    transition:.2s;
    padding:18px;
}

.menu-app-card:active{
    transform:scale(.98);
}

.menu-app-icone{
    width:72px;
    height:72px;
    margin:0 auto 16px;
    border-radius:24px;

    background:
        radial-gradient(circle at top right, rgba(215,255,63,.22), transparent 24%),
        linear-gradient(145deg, #ffffff, #f5f5f5);

    border:1px solid rgba(215,255,63,.24);

    display:flex;
    align-items:center;
    justify-content:center;

    color:#111;
    font-size:30px;
}

.menu-app-titulo{
    font-size:15px;
    font-weight:900;
    line-height:1.35;
    color:#111;
}

.menu-sair{
    background:rgba(220,53,70,.14);
    border-color:rgba(220,53,70,.22);
}

.menu-sair i,
.menu-sair label{
    color:#ff6b7d;
}

.relatorio-item-acoes .fa-share{
    color:#DC3546;
}

@media (max-width:420px){

    .menu-app-card{
        min-height:140px;
    }

    .menu-app-icone{
        width:64px;
        height:64px;
        font-size:26px;
    }

}

.ranking-posicao{
    min-width:34px;
    height:34px;
    border-radius:12px;
    background:#d7ff3f;
    color:#111;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:13px;
    font-weight:900;
    margin-right:12px;
}

.relatorio-item-com-posicao{
    display:flex;
    align-items:flex-start;
}

.cliente-termos input{
    appearance:none;

    width:20px;
    height:20px;
    min-width:20px;

    border-radius:6px;

    border:2px solid #d7ff3f;

    background:#fff;

    margin-top:1px;

    cursor:pointer;

    position:relative;

    transition:.2s;
}

.cliente-termos input:checked{
    background:#d7ff3f;
    border-color:#d7ff3f;
}

.cliente-termos input:checked::after{
    content:'✓';

    position:absolute;
    top:50%;
    left:50%;

    transform:translate(-50%, -54%);

    font-size:12px;
    font-weight:900;
    color:#111;
}

.cliente-politicas {
    cursor: pointer;
}

.politicas-card{
    background:#fff;
    color:#111;
    border-radius:28px;
    padding:24px 20px;
    box-shadow:0 20px 55px rgba(0,0,0,.28);
}

.politicas-titulo{
    font-size:20px;
    font-weight:900;
    color:#111;
    margin-bottom:18px;
}

.politicas-bloco{
    margin-top:22px;
}

.politicas-bloco:first-child{
    margin-top:0;
}

.politicas-subtitulo{
    font-size:13px;
    font-weight:900;
    color:#111;
    text-transform:uppercase;
    margin-bottom:10px;
    padding-left:10px;
    border-left:4px solid #d7ff3f;
}

.politicas-texto{
    font-size:14px;
    font-weight:700;
    color:#555;
    line-height:1.65;
}

.politicas-lista{
    margin-top:10px;
    display:grid;
    gap:8px;
}

.politicas-lista-item{
    background:#f6f6f6;
    border-radius:14px;
    padding:10px 12px;
    font-size:13px;
    font-weight:900;
    color:#111;
}

.home-cartao{
    position:relative;

    background:
        radial-gradient(circle at top right, rgba(215,255,63,.22), transparent 26%),
        linear-gradient(135deg, #0a0a0a, #171717);

    border-radius:34px;

    padding:24px 22px;

    overflow:hidden;

    border:1px solid rgba(255,255,255,.06);

    box-shadow:0 28px 70px rgba(0,0,0,.38);

    margin-bottom:16px;
}

.home-cartao::before{
    content:'';

    position:absolute;
    top:-60px;
    right:-60px;

    width:180px;
    height:180px;

    border-radius:50%;

    background:rgba(215,255,63,.07);
}

.home-cartao-topo{
    position:relative;
    z-index:2;

    display:flex;
    align-items:center;
    justify-content:space-between;

    margin-bottom:24px;
}

.home-cartao-evento{
    font-size:12px;
    font-weight:900;
    letter-spacing:1.5px;
    text-transform:uppercase;
    color:#d7ff3f;
}

.home-cartao-logo img{
    height:28px;
    opacity:.9;
}

.home-cartao-qrcode{
    position:relative;
    z-index:2;

    background:#fff;

    width:260px;
    max-width:100%;

    margin:0 auto;

    padding:14px;

    border-radius:28px;

    box-shadow:0 16px 40px rgba(0,0,0,.25);
}

.home-cartao-qrcode img{
    width:100%;
    display:block;
    border-radius:18px;
}

.home-cartao-codigo{
    position:relative;
    z-index:2;

    margin-top:18px;

    text-align:center;

    font-size:28px;
    font-weight:900;
    letter-spacing:3px;

    color:#fff;
}

.home-saldo{
    background:#fff;
    border-radius:26px;
    padding:18px 18px;
    display:grid;
    grid-template-columns:1fr 48px;
    align-items:center;
    gap:12px;
    box-shadow:0 18px 50px rgba(0,0,0,.18);
    margin-bottom:16px;
}

.home-saldo-info{
    min-width:0;
}

.home-saldo-label{
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    color:#666;
    margin-bottom:6px;
}

.home-saldo-valor{
    font-size:22px;
    line-height:1.1;
    font-weight:900;
    color:#111;
    letter-spacing:-1px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.home-saldo-icone{
    width:48px;
    height:48px;
    border-radius:17px;
    background:#d7ff3f;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:18px;
    color:#111;
    cursor:pointer;
}

.home-recarregar{
    height:68px;

    border-radius:24px;

    background:#d7ff3f;

    color:#111;

    display:flex;
    align-items:center;
    justify-content:center;

    gap:12px;

    font-size:15px;
    font-weight:900;

    box-shadow:0 18px 40px rgba(215,255,63,.22);

    cursor:pointer;
}

.home-recarregar i{
    font-size:18px;
}

.home-encerrada{
    background:#fff;

    border-radius:34px;

    padding:36px 24px;

    text-align:center;

    box-shadow:0 24px 70px rgba(0,0,0,.18);
}

.home-encerrada-icone{
    width:110px;
    height:110px;

    margin:0 auto 24px;

    border-radius:32px;

    background:#d7ff3f;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:52px;
    color:#111;
}

.home-encerrada-titulo{
    font-size:24px;
    line-height:1.2;
    font-weight:900;
    color:#111;
    margin-bottom:14px;
}

.home-encerrada-texto{
    font-size:14px;
    line-height:1.7;
    font-weight:700;
    color:#666;
}

.home-encerrada-botao{
    margin-top:26px;

    height:58px;

    border-radius:20px;

    background:#111;

    color:#fff;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:14px;
    font-weight:900;

    cursor:pointer;
}

.caixa-recarga-card{
    background:#fff;
    color:#111;
    border-radius:28px;
    padding:22px;
    box-shadow:0 20px 55px rgba(0,0,0,.18);
}

.caixa-recarga-label{
    font-size:12px;
    font-weight:900;
    color:#666;
    text-transform:uppercase;
    margin-bottom:10px;
}

.caixa-recarga-area{
    display:grid;
    grid-template-columns:1fr 70px;
    gap:10px;
}

.caixa-recarga-input input{
    width:100%;
    height:70px;
    border:2px solid #111;
    border-radius:22px;
    background:#f5f5f5;
    color:#111;
    text-align:center;
    font-size:30px;
    font-weight:900;
    outline:none;
}

.caixa-recarga-botao{
    height:70px;
    border-radius:22px;
    background:#ececec;
    color:#999;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:24px;
}

.caixa-recarga-botao[data-enabled="1"]{
    background:#d7ff3f;
    color:#111;
}

.caixa-pix-area{
    margin-top:18px;
}

.caixa-pix-card{
    background:#fff;
    color:#111;
    border-radius:30px;
    padding:28px 22px;
    text-align:center;
    box-shadow:0 20px 55px rgba(0,0,0,.18);
}

.caixa-pix-icone{
    width:88px;
    height:88px;

    margin:0 auto 18px;

    border-radius:28px;

    background:#d7ff3f;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:40px;
    color:#111;
}

.caixa-pix-titulo{
    font-size:24px;
    line-height:1.1;
    font-weight:900;
    color:#111;
    margin-bottom:14px;
}

.caixa-pix-texto{
    font-size:14px;
    line-height:1.7;
    font-weight:700;
    color:#666;
}

.caixa-pix-copiar{
    margin-top:24px;

    height:62px;

    border-radius:22px;

    background:#111;
    color:#fff;

    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;

    font-size:14px;
    font-weight:900;

    cursor:pointer;

    transition:.2s;
}

.caixa-pix-copiar:hover{
    transform:scale(.98);
}

.caixa-form-grupo{
    margin-top:18px;
}

.caixa-form-label{
    font-size:12px;
    font-weight:900;
    color:#666;
    text-transform:uppercase;
    margin-bottom:10px;
}

.caixa-form-grupo input{
    width:100%;
    height:52px;
    border:none;
    outline:none;
    border-radius:22px;
    background:#f5f5f5;
    border:1px solid #e1e1e1;
    padding:0 20px;
    font-size:16px;
    font-weight:800;
    color:#111;
    box-sizing:border-box;
    transition: all ease 0.3s;
}

.caixa-form-grupo input:focus{
    background:#fff;
    border-color:#111;
}

.caixa-form-grupo input::placeholder{
    color:#999;
    font-weight:700;
}

.admin-resumo-status{
    margin-bottom:12px;
    border-radius:18px;
    padding:14px 16px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    font-size:13px;
    font-weight:900;
    text-transform:uppercase;
}

.admin-resumo-status.andamento{
    background:#e8eff7;
    color:#007AFF;
    border:1px solid #007AFF;
}

.admin-resumo-status.encerrada{
    background:#f1faf3;
    color:#27A844;
    border:1px solid #27A844;
}

.admin-resumo-status.cancelada{
    background:#fceeef;
    color:#DC3546;
    border:1px solid #DC3546;
}

.admin-resumo-encerrar{
    margin-bottom:14px;
    height:58px;
    border-radius:20px;
    background:#DC3546;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    font-size:14px;
    font-weight:900;
    cursor:pointer;
    box-shadow:0 18px 40px rgba(220,53,70,.22);
}

.admin-resumo-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:10px;
    margin-bottom:16px;
}

.admin-resumo-card{
    background:#fff;
    color:#111;
    border-radius:20px;
    padding:16px;
    min-height:112px;
    box-shadow:0 14px 35px rgba(0,0,0,.18);
    border:1px solid rgba(0,0,0,.05);
}

.admin-resumo-card-titulo{
    font-size:11px;
    font-weight:900;
    color:#666;
    text-transform:uppercase;
    margin-bottom:10px;
    line-height:1.35;
}

.admin-resumo-card-valor{
    font-size:20px;
    font-weight:900;
    color:#111;
    line-height:1.15;
    letter-spacing:-.4px;
}

.admin-resumo-card-info{
    margin-top:5px;
    font-size:11px;
    font-weight:800;
    color:#777;
    line-height:1.35;
}

.admin-resumo-card.destaque{
    background:
        radial-gradient(circle at top right, rgba(215,255,63,.20), transparent 28%),
        #fff;
    border-color:rgba(215,255,63,.30);
}

.admin-resultado-grid{
    display:grid;
    gap:10px;
    margin-bottom:120px;
}

.admin-resultado-card{
    border-radius:22px;
    padding:18px;
    color:#111;
    background:#fff;
    box-shadow:0 16px 38px rgba(0,0,0,.20);
}

.admin-resultado-card.azul{
    background:#e8eff7;
    border:1px solid #007AFF;
}

.admin-resultado-card.vermelho{
    background:#fceeef;
    border:1px solid #DC3546;
}

.admin-resultado-card.verde{
    background:#f1faf3;
    border:1px solid #27A844;
}

.admin-resultado-card.laranja{
    background:#faf4e1;
    border:1px solid #FEC107;
}

.admin-resultado-titulo{
    font-size:12px;
    font-weight:900;
    color:#555;
    text-transform:uppercase;
    margin-bottom:8px;
}

.admin-resultado-valor{
    font-size:24px;
    font-weight:900;
    color:#111;
    letter-spacing:-.6px;
}

.caixa-confirmacao-botoes{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-top:22px;
}

.caixa-confirmacao-botao{
    height:56px;
    border-radius:18px;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:14px;
    font-weight:900;

    cursor:pointer;

    transition:.2s;
}

.caixa-confirmacao-botao.cancelar{
    background:#f3f3f3;
    color:#666;
}

.caixa-confirmacao-botao.confirmar{
    background:#ff4d4f;
    color:#fff;
}

.modal-remover-texto{
    margin-top:10px;

    font-size:14px;
    line-height:1.6;
    font-weight:700;

    color:#777;
}

.admin-resumo-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:10px;
    margin-bottom:16px;
}

.admin-resumo-card{
    background:#fff;
    color:#111;
    border-radius:18px;
    padding:14px;
    min-height:108px;
    box-shadow:0 14px 35px rgba(0,0,0,.18);
}

.admin-resumo-titulo{
    font-size:11px;
    font-weight:900;
    color:#666;
    text-transform:uppercase;
    line-height:1.25;
    margin-bottom:10px;
}

.admin-resumo-valor{
    font-size:22px;
    font-weight:900;
    color:#111;
    line-height:1.1;
    letter-spacing:-.6px;
}

.admin-resumo-info{
    margin-top:6px;
    font-size:11px;
    font-weight:800;
    color:#777;
    line-height:1.35;
    text-transform:uppercase;
}

.admin-status-card{
    height:54px;
    border-radius:18px;
    margin-bottom:10px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    font-size:13px;
    font-weight:900;
}

.admin-status-card.azul{background:#e8eff7;color:#007AFF;}
.admin-status-card.verde{background:#f1faf3;color:#27A844;}
.admin-status-card.vermelho{background:#fceeef;color:#DC3546;}

.admin-encerrar-card{
    height:56px;
    border-radius:18px;
    margin-bottom:12px;
    background:#fceeef;
    color:#DC3546;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    font-size:13px;
    font-weight:900;
    cursor:pointer;
}

.abc-resumo-card{
    background:#fff;
    border-radius:24px;
    padding:18px;
    margin-bottom:18px;
    box-shadow:0 14px 35px rgba(0,0,0,.16);
}

.abc-resumo-topo{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}

.abc-resumo-item{
    background:#fafafa;
    border-radius:18px;
    padding:14px;
}

.abc-resumo-label{
    font-size:11px;
    font-weight:900;
    color:#777;
    text-transform:uppercase;
    margin-bottom:6px;
}

.abc-resumo-valor{
    font-size:22px;
    font-weight:900;
    color:#111;
    line-height:1.1;
}

.abc-resumo-filtros{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:14px;
}

.abc-resumo-filtros span{
    background:#f3f3f3;
    border-radius:999px;
    padding:8px 12px;
    font-size:11px;
    font-weight:800;
    color:#555;
}

.abc-titulo{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin:22px 0 12px;
    padding:0 4px;
    font-size:17px;
    font-weight:900;
    color:#111;
}

.abc-titulo span{
    font-size:11px;
    font-weight:900;
    padding:6px 10px;
    border-radius:999px;
    background:#f3f3f3;
    color:#555;
}

.abc-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
}

.abc-card{
    background:#fff;
    border-radius:24px;
    padding:18px;
    box-shadow:0 14px 35px rgba(0,0,0,.16);
}

.abc-card.curva-a{
    border-left:5px solid #27A844;
}

.abc-card.curva-b{
    border-left:5px solid #FEC107;
}

.abc-card.curva-c{
    border-left:5px solid #DC3546;
}

.abc-card-topo{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    margin-bottom:14px;
}

.abc-card-nome{
    flex:1;
    font-size:16px;
    font-weight:900;
    color:#111;
    line-height:1.35;
}

.abc-card-badge{
    width:38px;
    height:38px;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:16px;
    font-weight:900;
    color:#fff;
}

.abc-card.curva-a .abc-card-badge{
    background:#27A844;
}

.abc-card.curva-b .abc-card-badge{
    background:#FEC107;
    color:#111;
}

.abc-card.curva-c .abc-card-badge{
    background:#DC3546;
}

.abc-card-valor{
    font-size:28px;
    font-weight:900;
    color:#111;
    letter-spacing:-1px;
    line-height:1;
    margin-bottom:14px;
}

.abc-card-info{
    font-size:13px;
    font-weight:800;
    color:#666;
    line-height:1.5;
}

.abc-card-barra{
    width:100%;
    height:10px;
    background:#ededed;
    border-radius:999px;
    overflow:hidden;
    margin:14px 0 10px;
}

.abc-card-barra-fill{
    height:100%;
    border-radius:999px;
}

.abc-card-barra-fill.curva-a{
    background:#27A844;
}

.abc-card-barra-fill.curva-b{
    background:#FEC107;
}

.abc-card-barra-fill.curva-c{
    background:#DC3546;
}

.abc-card-acumulado{
    font-size:12px;
    font-weight:900;
    color:#444;
}

@media (max-width:420px){

    .abc-resumo-topo{
        grid-template-columns:1fr;
    }

    .abc-card-valor{
        font-size:24px;
    }

}

.lista-checkbox{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.lista-form-checkbox{
    display:flex;
    align-items:center;
    gap:12px;
    padding:14px 16px;
    border-radius:18px;
    background:#111;
    border:1px solid #2a2a2a;
    cursor:pointer;
    transition:all .2s ease;
}

.lista-form-checkbox:hover{
    border-color:#d7ff3f;
    background:#171717;
}

.lista-form-checkbox input[type="checkbox"]{
    appearance:none;
    -webkit-appearance:none;
    width:22px;
    height:22px;
    min-width:22px;
    border-radius:7px;
    border:2px solid #555;
    background:#0f0f0f;
    cursor:pointer;
    position:relative;
    transition:all .2s ease;
}

.lista-form-checkbox input[type="checkbox"]:checked{
    background:#d7ff3f;
    border-color:#d7ff3f;
}

.lista-form-checkbox input[type="checkbox"]:checked::after{
    content:'';
    position:absolute;
    left:6px;
    top:2px;
    width:5px;
    height:10px;
    border:solid #000;
    border-width:0 2px 2px 0;
    transform:rotate(45deg);
}

.lista-form-checkbox-titulo{
    color:#fff;
    font-size:15px;
    font-weight:700;
    line-height:1.3;
}

.modal-form-campo-imagem{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-top:5px;
}

.modal-form-campo-imagem img{
    width:100%;
    max-width:220px;
    aspect-ratio:1/1;
    object-fit:cover;
    border-radius:22px;
    border:2px solid #d7ff3f;
    background:#111;
    padding:4px;
}

.modal-form-campo-imagem-banner{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-top:5px;
}

.modal-form-campo-imagem-banner img{
    width:100%;
    max-width:420px;
    aspect-ratio:12 / 7;
    object-fit:cover;
    border-radius:22px;
    border:2px solid #d7ff3f;
    background:#111;
    padding:4px;
}

.modal-form-btn-remover{
    margin-top:10px;
    padding:7px 12px;
    border:none;
    border-radius:8px;
    background:#f5f5f5;
    color:#666;
    font-size:13px;
    font-weight:600;
    cursor:pointer;
    transition:all .15s ease;
}

.modal-form-btn-remover:hover{
    background:#ffeaea;
    color:#d63c3c;
}

.modal-form-aviso {
    margin-top: 10px;
    margin-bottom: 20px;
}


.venda-rapida-page{
    padding-bottom:95px;
}

.venda-rapida-card{
    margin-top:14px;
    background:#ffffff;
    border-radius:24px;
    padding:22px;
    box-shadow:0 12px 30px rgba(0,0,0,.08);
    border:1px solid #eeeeee;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
}

.venda-rapida-icone{
    width:70px;
    height:70px;
    border-radius:22px;
    background:#151515;
    color:#ffffff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:28px;
    margin:0 auto 16px auto;
}

.venda-rapida-info{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    width:100%;
}

.venda-rapida-label{
    font-size:12px;
    font-weight:950;
    color:#777777;
    text-transform:uppercase;
    letter-spacing:.4px;
    margin-bottom:6px;
    text-align:center;
}

.venda-rapida-produto{
    font-size:22px;
    font-weight:950;
    color:#151515;
    line-height:1.2;
    margin-bottom:10px;
    text-align:center;
}

.venda-rapida-subtotal{
    font-size:15px;
    font-weight:850;
    color:#444444;
    line-height:1.45;
    text-align:center;
}

.venda-rapida-subtotal span{
    color:#168a3a;
    font-weight:950;
}

.venda-rapida-vazia{
    margin-top:14px;
    background:#ffffff;
    border-radius:24px;
    padding:34px 20px;
    box-shadow:0 12px 30px rgba(0,0,0,.08);
    text-align:center;
}

.venda-rapida-vazia-icone{
    width:74px;
    height:74px;
    border-radius:22px;
    background:#f6f6f6;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 14px auto;
    font-size:30px;
    color:#151515;
}

.venda-rapida-vazia-titulo{
    font-size:17px;
    font-weight:950;
    color:#151515;
    margin-bottom:6px;
}

.venda-rapida-vazia-texto{
    font-size:14px;
    font-weight:750;
    color:#666666;
}

.vendas-andamento-lista{
    display:flex;
    flex-direction:column;
    gap:14px;
    margin-top:14px;
}

.venda-andamento-item{
    background:#ffffff;
    border-radius:22px;
    padding:18px;
    display:flex;
    align-items:center;
    gap:16px;
    cursor:pointer;
    box-shadow:0 10px 28px rgba(0,0,0,.07);
    border:1px solid #eeeeee;
}

.venda-andamento-item.verde{
    border-left:6px solid #20b455;
}

.venda-andamento-item.azul{
    border-left:6px solid #2b86ff;
}

.venda-andamento-item.laranja{
    border-left:6px solid #ff8c2f;
}

.venda-andamento-icone{
    width:56px;
    height:56px;
    border-radius:18px;
    background:#f6f6f6;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
    color:#151515;
    flex-shrink:0;
}

.venda-andamento-info{
    flex:1;
    min-width:0;
}

.venda-andamento-topo{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    margin-bottom:4px;
}

.venda-andamento-titulo{
    font-size:16px;
    font-weight:950;
    color:#151515;
}

.venda-andamento-total{
    font-size:16px;
    font-weight:950;
    color:#151515;
    white-space:nowrap;
}

.venda-andamento-status{
    font-size:14px;
    font-weight:800;
    color:#666666;
}

.vendas-andamento-vazio{
    margin-top:14px;
    background:#ffffff;
    border-radius:24px;
    padding:34px 20px;
    text-align:center;
    box-shadow:0 10px 28px rgba(0,0,0,.07);
}

.vendas-andamento-vazio-icone{
    width:72px;
    height:72px;
    border-radius:22px;
    background:#f6f6f6;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 14px auto;
    font-size:30px;
    color:#151515;
}

.vendas-andamento-vazio-titulo{
    font-size:17px;
    font-weight:950;
    color:#151515;
    margin-bottom:6px;
}

.vendas-andamento-vazio-texto{
    font-size:14px;
    font-weight:750;
    color:#666666;
}


/* Agenda - Viva Conecta 2 */
.agenda-page{
    padding-bottom:95px;
}

.agenda{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.agenda-topo-card{
    margin-bottom:0;
}

.agenda-topo{
    background:#ffffff;
    border-radius:22px;
    padding:16px;
    box-shadow:0 12px 30px rgba(0,0,0,.08);
    display:flex;
    flex-direction:column;
    gap:14px;
}

.agenda-acoes-topo{
    display:grid;
    grid-template-columns:48px 1fr 48px;
    gap:10px;
    align-items:center;
}

.agenda-nav-btn{
    width:48px;
    height:48px;
    border-radius:16px;
    background:#151515;
    color:#ffffff;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    font-size:18px;
}

.agenda-periodo{
    min-height:48px;
    border-radius:16px;
    background:#f6f6f6;
    border:1px solid #eeeeee;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:0 12px;
    font-size:15px;
    font-weight:950;
    color:#151515;
}

.agenda-views{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:8px;
}

.agenda-view-btn{
    height:44px;
    border-radius:14px;
    background:#f6f6f6;
    color:#151515;
    border:1px solid #eeeeee;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    font-size:13px;
    font-weight:950;
}

.agenda-view-btn-active{
    background:#151515;
    color:#ffffff;
    border-color:#151515;
}

.agenda-conteudo{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.agenda-calendario-box,
.agenda-painel{
    background:#ffffff;
    border-radius:22px;
    padding:16px;
    box-shadow:0 12px 30px rgba(0,0,0,.08);
    border:1px solid #eeeeee;
}

.agenda-calendario-box-dia{
    margin-bottom:0;
}

.agenda-calendario-topo{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:6px;
    margin-bottom:8px;
}

.agenda-calendario-dia-semana{
    min-height:30px;
    border-radius:10px;
    background:#151515;
    color:#ffffff;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    font-size:11px;
    font-weight:950;
}

.agenda-calendario-grid{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:6px;
}

.agenda-dia{
    min-height:72px;
    border-radius:16px;
    border:1px solid #eeeeee;
    background:#f8f8f8;
    padding:8px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    cursor:pointer;
    position:relative;
}

.agenda-dia-vazio{
    opacity:.35;
    cursor:default;
}

.agenda-dia-hoje{
    border-color:#151515;
    box-shadow:0 0 0 2px rgba(21,21,21,.08) inset;
}

.agenda-dia-com-evento{
    background:#ecfff4;
    border-color:#c7f2d6;
}

.agenda-dia-livre-box{
    background:#f8f8f8;
}

.agenda-dia-numero{
    font-size:14px;
    font-weight:950;
    color:#151515;
}

.agenda-dia-indicador{
    display:flex;
    justify-content:flex-end;
}

.agenda-dia-badge{
    min-width:26px;
    height:26px;
    border-radius:999px;
    background:#151515;
    color:#ffffff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:12px;
    font-weight:950;
}

.agenda-dia-livre{
    font-size:10px;
    font-weight:900;
    color:#777777;
    text-align:right;
}

.agenda-dia-semana{
    min-height:96px;
}

.agenda-painel-titulo{
    font-size:17px;
    font-weight:950;
    color:#151515;
    margin-bottom:4px;
}

.agenda-painel-data{
    font-size:13px;
    font-weight:850;
    color:#777777;
    margin-bottom:14px;
}

.agenda-servico-titulo{
    margin-top:14px;
    margin-bottom:8px;
    font-size:12px;
    font-weight:950;
    color:#151515;
    letter-spacing:.4px;
}

.agenda-lista{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.agenda-card{
    background:#f8f8f8;
    border:1px solid #eeeeee;
    border-radius:18px;
    padding:12px;
    display:grid;
    grid-template-columns:58px 1fr auto;
    gap:10px;
    align-items:center;
    cursor:pointer;
}

.agenda-card-dia{
    grid-template-columns:58px 1fr auto;
}

.agenda-card-hora{
    height:42px;
    border-radius:14px;
    background:#151515;
    color:#ffffff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:13px;
    font-weight:950;
}

.agenda-card-info{
    min-width:0;
}

.agenda-card-nome{
    font-size:14px;
    font-weight:950;
    color:#151515;
    line-height:1.25;
}

.agenda-card-servico{
    margin-top:3px;
    font-size:12px;
    font-weight:800;
    color:#666666;
    line-height:1.25;
}

.agenda-card-status{
    border-radius:999px;
    padding:7px 9px;
    font-size:10px;
    font-weight:950;
    white-space:nowrap;
    color:#151515;
    background:#eeeeee;
}

.agenda-card-status-1,
.agenda-card-status-agendado{
    background:#fff4d8;
    color:#8a5a00;
}

.agenda-card-status-2,
.agenda-card-status-confirmado,
.agenda-card-status-presente{
    background:#dffbe9;
    color:#14763a;
}

.agenda-card-status-cancelado,
.agenda-card-status-faltou{
    background:#ffe3e3;
    color:#a21d1d;
}

.agenda-vazio{
    background:#f8f8f8;
    border:1px dashed #dddddd;
    border-radius:18px;
    padding:20px;
    text-align:center;
    font-size:14px;
    font-weight:850;
    color:#777777;
}

.agenda-lateral{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.agenda-resumo{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.agenda-resumo-item{
    background:#f8f8f8;
    border-radius:16px;
    padding:14px;
    text-align:center;
}

.agenda-resumo-numero{
    font-size:22px;
    font-weight:950;
    color:#151515;
}

.agenda-resumo-label{
    font-size:12px;
    font-weight:850;
    color:#777777;
    margin-top:3px;
}

.agenda-modal-dia-data{
    font-size:15px;
    font-weight:950;
    color:#151515;
    margin-bottom:12px;
}

.agenda-modal-dia-lista{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.agenda-detalhes{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.agenda-detalhes-item{
    background:#f8f8f8;
    border:1px solid #eeeeee;
    border-radius:16px;
    padding:12px;
}

.agenda-detalhes-label{
    font-size:12px;
    font-weight:900;
    color:#777777;
    margin-bottom:4px;
}

.agenda-detalhes-valor{
    font-size:15px;
    font-weight:950;
    color:#151515;
}

.agenda-detalhes-acoes{
    margin-top:14px;
    display:flex;
    flex-direction:column;
    gap:10px;
}

/* Mantém compatibilidade com os modais antigos desta tela */
.agenda-page ~ .modal,
.area .modal{
    display:none;
    position:fixed;
    inset:0;
    z-index:9999;
    background:#f3f3f3;
    overflow:auto;
}

.area .modal .titulo{
    min-height:64px;
    background:#151515;
    color:#ffffff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 18px;
}

.area .modal .titulo-texto{
    font-size:17px;
    font-weight:950;
}

.area .modal .titulo-icone{
    width:42px;
    height:42px;
    border-radius:14px;
    background:rgba(255,255,255,.12);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
}

.area .modal .modal-area{
    padding:16px;
}

.area .modal .modal-form{
    background:#ffffff;
    border-radius:22px;
    padding:16px;
    box-shadow:0 12px 30px rgba(0,0,0,.08);
}

.area .modal .modal-form-campos{
    display:flex;
    gap:10px;
    margin-bottom:12px;
}

.area .modal .modal-form-campo{
    flex:1;
}

.area .modal .modal-form-campo-titulo{
    font-size:13px;
    font-weight:950;
    color:#151515;
    margin-bottom:7px;
}

.area .modal input,
.area .modal select,
.area .modal textarea{
    width:100%;
    min-height:52px;
    border:1px solid #e1e1e1;
    background:#f6f6f6;
    border-radius:16px;
    padding:0 14px;
    font-size:15px;
    font-weight:800;
    color:#151515;
    outline:none;
}

.area .modal textarea{
    min-height:110px;
    padding:14px;
    resize:vertical;
}

.area .modal button{
    width:100%;
    min-height:52px;
    border:0;
    border-radius:16px;
    background:#151515;
    color:#ffffff;
    font-size:14px;
    font-weight:950;
    cursor:pointer;
}

.area .modal-form-filtro-limpar{
    margin-top:12px;
    min-height:48px;
    border-radius:16px;
    background:#fff0f0;
    color:#b32020;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:13px;
    font-weight:950;
    cursor:pointer;
}

.abc-topo-total{
    display:block;
    margin-top:10px;
    font-size:15px;
    font-weight:950;
    color:#151515;
}

.abc-resumo-card{
    background:#ffffff;
    border-radius:22px;
    padding:18px;
    margin-top:14px;
    margin-bottom:18px;
}

.abc-resumo-topo{
    display:none;
}

.abc-resumo-filtros{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.abc-resumo-filtros span{
    background:#f6f6f6;
    border-radius:999px;
    padding:9px 13px;
    font-size:12px;
    font-weight:950;
    color:#555555;
}

.abc-vazio{
    background:#ffffff;
    border-radius:20px;
    padding:22px 16px;
    text-align:center;
    box-shadow:0 8px 24px rgba(0,0,0,.08);
    border:1px solid #eeeeee;
    margin-bottom:14px;
}

.abc-vazio-icone{
    width:54px;
    height:54px;
    border-radius:18px;
    background:#f6f6f6;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 10px auto;
    font-size:22px;
    color:#151515;
}

.abc-vazio-titulo{
    font-size:15px;
    font-weight:950;
    color:#151515;
    margin-bottom:4px;
}

.abc-vazio-texto{
    font-size:13px;
    font-weight:750;
    color:#666666;
}

.lista-secao-titulo{
    display:flex;
    align-items:center;
    gap:12px;
    margin:24px 0 14px 0;
    font-size:20px;
    font-weight:900;
    color:#151515;
    line-height:1.2;
}

.lista-secao-titulo::after{
    content:'';
    flex:1;
    height:1px;
    background:#e8e8e8;
    border-radius:999px;
}

.botao-nfe{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-top:14px;
    padding:10px 14px;
    border-radius:14px;
    background:#f6f6f6;
    border:1px solid #e7e7e7;
    color:#555555;
    font-size:13px;
    font-weight:900;
    cursor:pointer;
    transition:.2s;
    text-decoration:none;
}

.botao-nfe:hover{
    background:#eef7ff;
    border-color:rgba(0,122,255,.18);
    color:#0a63c9;
}

.botao-nfe i{
    font-size:14px;
}

.nfe-emitida,
.nfe-cancelada,
.nfe-correcao,
.nfe-devolucao{
    display:inline-block;
    margin-top:14px;
    padding:12px 14px;
    border-radius:14px;
    font-size:13px;
    font-weight:900;
    line-height:1.5;
}

.nfe-emitida{
    background:#efffed;
    border:1px solid #cfe9d3;
    color:#168a3a;
}

.nfe-cancelada{
    background:#fff0f0;
    border:1px solid #f1caca;
    color:#c53030;
}

.nfe-correcao{
    background:#eef7ff;
    border:1px solid #cfe2ff;
    color:#0a63c9;
}

.nfe-devolucao{
    background:#fff8e8;
    border:1px solid #f0dfb0;
    color:#b7791f;
}

.botao-nfe-acoes{
    display:flex;
    align-items:center;
    min-height:48px;
    padding:12px 16px;
    margin-top:8px;
    border-radius:14px;
    background:#f6f6f6;
    border:1px solid #e7e7e7;
    color:#555555;
    font-size:13px;
    font-weight:900;
    cursor:pointer;
    transition:.2s;
}

.botao-nfe-acoes:hover{
    transform:translateY(-1px);
    background:#eef7ff;
    border-color:#cfe2ff;
    color:#0a63c9;
}

.botao-nfe-acoes.bg-verde{
    background:#efffed;
    border:1px solid #cfe9d3;
    color:#168a3a;
}

.botao-nfe-acoes.bg-verde:hover{
    background:#e4fbe8;
}

.botao-nfe-acoes.bg-vermelho{
    background:#fff0f0;
    border:1px solid #f1caca;
    color:#c53030;
}

.botao-nfe-acoes.bg-vermelho:hover{
    background:#ffe5e5;
}

.botao-nfe-acoes.bg-laranja{
    background:#fff8e8;
    border:1px solid #f0dfb0;
    color:#b7791f;
}

.botao-nfe-acoes.bg-laranja:hover{
    background:#fff2d8;
}

.botao-nfe-acoes.bg-azul{
    background:#eef7ff;
    border:1px solid #cfe2ff;
    color:#0a63c9;
}

.botao-nfe-acoes.bg-azul:hover{
    background:#e3f1ff;
}

.recuperar-modal{
        display:none;
        position:fixed;
        inset:0;
        z-index:999999;
        background:rgba(0,0,0,.72);
        padding:24px;
    }

    .recuperar-modal-card{
        width:100%;
        max-width:420px;
        background:#fff;
        border-radius:28px;
        padding:30px 24px 24px;
        margin:auto;
        position:relative;
        text-align:center;
        box-shadow:0 20px 60px rgba(0,0,0,.25);
    }

    .recuperar-modal-fechar{
        position:absolute;
        top:16px;
        right:16px;
        width:38px;
        height:38px;
        border-radius:50%;
        background:#f5f5f5;
        color:#111;
        display:flex;
        align-items:center;
        justify-content:center;
        cursor:pointer;
        font-size:18px;
    }

    .recuperar-modal-icone{
        width:72px;
        height:72px;
        border-radius:24px;
        background:#d7ff3f;
        color:#111;
        display:flex;
        align-items:center;
        justify-content:center;
        font-size:32px;
        margin:0 auto 18px;
    }

    .recuperar-modal-titulo{
        font-size:22px;
        font-weight:900;
        color:#111;
        margin-bottom:10px;
    }

    .recuperar-modal-texto{
        font-size:14px;
        font-weight:700;
        color:#666;
        line-height:1.45;
        margin-bottom:22px;
    }

    .recuperar-modal-form{
        margin-bottom:16px;
    }

    .recuperar-modal-form input{
        width:100%;
        height:56px;
        border:1px solid #e1e1e1;
        background:#f6f6f6;
        border-radius:18px;
        padding:0 16px;
        font-size:15px;
        font-weight:800;
        color:#111;
        text-align:center;
    }

    .recuperar-modal-btn{
        width:100%;
        height:58px;
        border:0;
        border-radius:20px;
        background:#111;
        color:#d7ff3f;
        font-size:14px;
        font-weight:900;
        cursor:pointer;
    }

    .perfil-card{
    margin-top:16px;
}

.perfil-divisor{
    width:100%;
    height:1px;
    background:#eeeeee;
    margin:18px 0;
}

.perfil-botao-senha{
    width:100%;
    height:54px;
    border:0;
    border-radius:18px;
    background:#111;
    color:#d7ff3f;
    font-size:14px;
    font-weight:900;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
}

.perfil-botao-senha i{
    font-size:15px;
}

.senha-area{
    position:relative;
}

.senha-area input{
    width:100%;
    padding-right:48px;
}

.senha-icone{
    position:absolute;
    right:16px;
    top:50%;
    transform:translateY(-50%);
    font-size:16px;
    color:#777;
    cursor:pointer;
}

.agenda-modal-dia-data{
    font-size:18px;
    font-weight:900;
    color:#151515;
    margin-bottom:18px;
    text-align:center;
    padding-bottom:14px;
    border-bottom:1px solid #ececec;
}

.agenda-modal-dia-grupo{
    margin-bottom:18px;
}

.agenda-modal-dia-grupo:last-child{
    margin-bottom:0;
}

.agenda-modal-dia-titulo-servico{
    font-size:13px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.6px;
    color:#666;
    margin-bottom:10px;
    padding-left:4px;
}

.agenda-modal-dia-card{
    display:flex;
    align-items:center;
    gap:14px;
    padding:16px;
    border:1px solid #ececec;
    border-radius:18px;
    background:#fafafa;
    margin-bottom:10px;
    cursor:pointer;
    transition:.2s;
}

.agenda-modal-dia-card:last-child{
    margin-bottom:0;
}

.agenda-modal-dia-card:hover{
    border-color:#d7ff3f;
    background:#fff;
    transform:translateY(-1px);
}

.agenda-modal-dia-hora{
    min-width:72px;
    height:72px;
    border-radius:18px;
    background:#d7ff3f;
    color:#151515;
    font-size:15px;
    font-weight:900;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    line-height:1.2;
}

.agenda-modal-dia-info{
    flex:1;
}

.agenda-modal-dia-nome{
    font-size:16px;
    font-weight:900;
    color:#151515;
    margin-bottom:4px;
}

.agenda-modal-dia-info .agenda-card-servico{
    font-size:13px;
    font-weight:700;
    color:#666;
}

.agenda-card-status{
    padding:8px 14px;
    border-radius:999px;
    font-size:12px;
    font-weight:900;
    white-space:nowrap;
}

.agenda-card-status-agendado{
    background:#fff4d6;
    color:#a66b00;
}

.agenda-card-status-confirmado,
.agenda-card-status-presente{
    background:#e7f9ec;
    color:#18803a;
}

.agenda-card-status-faltou{
    background:#ffe7e7;
    color:#c62828;
}

.agenda-card-status-cancelado{
    background:#f1f1f1;
    color:#666;
}

#agenda_detalhes_acoes{
    display:flex;
    gap:12px;
    margin-top:18px;
}

.agenda-btn-presenca{
    flex:1;
    border:none;
    border-radius:18px;
    min-height:64px;
    padding:14px 16px;
    font-size:15px;
    font-weight:800;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    transition:all .2s ease;
    box-shadow:0 4px 12px rgba(0,0,0,.08);
}

.agenda-btn-presenca:hover{
    transform:translateY(-1px);
}

.agenda-btn-presente{
    background:linear-gradient(180deg,#e8fff0 0%,#d9f7e5 100%);
    color:#18884a;
    border:1px solid #c7ecd7;
}

.agenda-btn-presente:hover{
    background:linear-gradient(180deg,#dffbe9 0%,#d0f2dd 100%);
}

.agenda-btn-falta{
    background:linear-gradient(180deg,#fff0f0 0%,#ffe3e3 100%);
    color:#d32f2f;
    border:1px solid #ffd0d0;
}

.agenda-btn-falta:hover{
    background:linear-gradient(180deg,#ffe8e8 0%,#ffdada 100%);
}

.agenda-card-status-fixo{
    background:#e6f1ff;
    color:#1d65b7;
    border:1px solid #c8ddff;
}

.portal-home-page{
    padding-bottom:120px;
}

.portal-home-hero{
    background:
        radial-gradient(circle at top right, rgba(215,255,63,.24), transparent 30%),
        linear-gradient(145deg, #ffffff, #f5f5f5);
    color:#111;
    border-radius:32px;
    padding:24px;
    margin-bottom:16px;
    box-shadow:0 22px 60px rgba(0,0,0,.28);
}

.portal-home-label{
    font-size:11px;
    font-weight:700;
    letter-spacing:1.5px;
    text-transform:uppercase;
    color:#666;
    margin-bottom:12px;
}

.portal-home-titulo{
    font-size:18px;
    font-weight:800;
    line-height:1.2;
    margin-bottom:14px;
}

.portal-home-texto{
    font-size:15px;
    line-height:1.6;
    max-width:700px;
    color:#444;
}

.portal-home-emoji{
    margin-left:6px;
}

.portal-home-lista{
    display:grid;
    gap:12px;
}

.portal-empresa-card{
    background:#fff;
    color:#111;
    border-radius:26px;
    padding:18px;
    display:grid;
    grid-template-columns:58px 1fr 34px;
    align-items:center;
    gap:14px;
    cursor:pointer;
    box-shadow:0 18px 48px rgba(0,0,0,.24);
    transition:.2s;
}

.portal-empresa-card:active{
    transform:scale(.98);
}

.portal-empresa-icone{
    width:58px;
    height:58px;
    border-radius:20px;
    background:#d7ff3f;
    color:#111;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:24px;
}

.portal-empresa-info{
    min-width:0;
}

.portal-empresa-nome{
    font-size:17px;
    font-weight:900;
    color:#111;
    margin-bottom:7px;
    line-height:1.25;
}

.portal-empresa-detalhes{
    font-size:12px;
    font-weight:800;
    color:#777;
    line-height:1.45;
}

.portal-empresa-seta{
    width:34px;
    height:34px;
    border-radius:13px;
    background:#f5f5f5;
    color:#111;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:14px;
}

.portal-vazio{
    background:#fff;
    color:#111;
    border-radius:30px;
    padding:34px 22px;
    text-align:center;
    box-shadow:0 18px 48px rgba(0,0,0,.24);
}

.portal-vazio-icone{
    width:82px;
    height:82px;
    border-radius:26px;
    background:#d7ff3f;
    color:#111;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:36px;
    margin:0 auto 18px;
}

.portal-vazio-titulo{
    font-size:20px;
    font-weight:900;
    color:#111;
    margin-bottom:10px;
}

.portal-vazio-texto{
    font-size:14px;
    font-weight:700;
    color:#666;
    line-height:1.5;
}

.portal-modal-centro{
    align-items:center;
    justify-content:center;
    padding:22px;
}

.portal-modal-card{
    width:100%;
    max-width:420px;
    background:#fff;
    color:#111;
    border-radius:32px;
    padding:28px 22px;
    text-align:center;
    box-shadow:0 26px 70px rgba(0,0,0,.35);
}

.portal-modal-icone{
    width:76px;
    height:76px;
    border-radius:24px;
    background:#d7ff3f;
    color:#111;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:32px;
    margin:0 auto 18px;
}

.portal-modal-titulo{
    font-size:22px;
    font-weight:900;
    margin-bottom:10px;
}

.portal-modal-texto{
    font-size:14px;
    font-weight:800;
    color:#666;
    line-height:1.5;
    margin-bottom:18px;
}

.portal-empresa-page{
    padding-bottom:120px;
}

.portal-servicos-lista{
    display:grid;
    gap:12px;
}

.portal-servico-card{
    background:#fff;
    color:#111;
    border-radius:26px;
    padding:18px;
    display:grid;
    grid-template-columns:58px 1fr 34px;
    align-items:center;
    gap:14px;
    cursor:pointer;
    box-shadow:0 18px 48px rgba(0,0,0,.24);
    transition:.2s;
}

.portal-servico-card:active{
    transform:scale(.98);
}

.portal-servico-icone{
    width:58px;
    height:58px;
    border-radius:20px;
    background:#d7ff3f;
    color:#111;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:24px;
}

.portal-servico-info{
    min-width:0;
}

.portal-servico-titulo{
    font-size:17px;
    font-weight:900;
    color:#111;
    margin-bottom:7px;
    line-height:1.25;
}

.portal-servico-texto{
    font-size:12px;
    font-weight:800;
    color:#777;
    line-height:1.45;
}

.portal-servico-seta{
    width:34px;
    height:34px;
    border-radius:13px;
    background:#f5f5f5;
    color:#111;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:14px;
}

.relatorio-item{
    cursor:pointer;
}

.relatorio-lista .relatorio-item:nth-child(odd){
    background:#ffffff;
}

.relatorio-lista .relatorio-item:nth-child(even){
    background:#f7f7f7;
}

.relatorio-item:hover{
    background:#f3f3f3;
}

.relatorio-topo-card{
    position:relative;
    overflow:hidden;
}

.relatorio-topo-card::before{
    content:'';
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:4px;
    background:#d7ff3f;
    border-radius:24px 24px 0 0;
}

.portal-agenda-page .agenda-views{
    display:none;
}

.portal-agenda-page .portal-agenda-dia-disponivel{
    background:#e9faef !important;
    border-color:#bfe8ca !important;
}

.portal-agenda-page .portal-agenda-dia-indisponivel,
.portal-agenda-page .portal-agenda-dia-passado{
    background:#fff1f1 !important;
    border-color:#ffc9c9 !important;
    opacity:.85;
}

.portal-agenda-page .portal-agenda-dia-cliente{
    background:#e7f0ff !important;
    border-color:#b8d0ff !important;
}

.portal-agenda-page .agenda-dia-livre{
    display:none;
}

.portal-agenda-modal-data{
    background:#f6f6f6;
    border:1px solid #e1e1e1;
    border-radius:18px;
    padding:14px 16px;
    margin-bottom:14px;
    font-size:14px;
    font-weight:900;
    color:#111;
    text-align:center;
}

.portal-agenda-horarios{
    display:grid;
    gap:10px;
}

.portal-agenda-horario-item{
    display:flex;
    align-items:center;
    gap:12px;
    background:#f7f7f7;
    border:1px solid #e8e8e8;
    border-radius:18px;
    padding:12px;
    cursor:pointer;
}

.portal-agenda-horario-hora{
    min-width:80px;
    height:52px;
    border-radius:16px;
    background:#d7ff3f;
    color:#111;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:18px;
    font-weight:900;
}

.portal-agenda-horario-info{
    flex:1;
    min-width:0;
}

.portal-agenda-horario-titulo{
    font-size:15px;
    font-weight:900;
    color:#111;
    margin-bottom:4px;
}

.portal-agenda-horario-texto{
    font-size:12px;
    font-weight:800;
    color:#666;
}

.portal-agenda-horario-seta{
    width:34px;
    height:34px;
    border-radius:50%;
    background:#fff;
    border:1px solid #eee;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#111;
}

.portal-agenda-page .portal-agenda-dia-disponivel{
    background:#e9faef !important;
    border-color:#bfe8ca !important;
}

.portal-agenda-page .portal-agenda-dia-indisponivel,
.portal-agenda-page .portal-agenda-dia-passado{
    background:#fff1f1 !important;
    border-color:#ffc9c9 !important;
    opacity:.85;
}

.portal-agenda-page .portal-agenda-dia-bloqueado{
    background:#fff6e6 !important;
    border-color:#ffc96b !important;
}

.portal-agenda-page .portal-agenda-dia-cliente{
    background:#e7f0ff !important;
    border-color:#b8d0ff !important;
}

.portal-agenda-horario-livre .portal-agenda-horario-hora{
    background:#d7ff3f !important;
    color:#111 !important;
}

.portal-agenda-horario-fixo .portal-agenda-horario-hora{
    background:#e7f0ff !important;
    color:#1261b3 !important;
}

.portal-agenda-horario-fixo{
    background:#f5f9ff !important;
    border-color:#b8d0ff !important;
}

.portal-agenda-horario-lotado{
    background:#fff1f1 !important;
    border-color:#ffc9c9 !important;
    cursor:not-allowed !important;
}

.portal-agenda-horario-lotado .portal-agenda-horario-hora{
    background:#ffe5e5 !important;
    color:#b42318 !important;
}

.portal-agenda-horario-vagas{
    margin-top:4px;
    font-size:11px;
    font-weight:900;
    color:#1261b3;
}

.portal-agenda-horario-vagas.lotado{
    color:#b42318;
}

.portal-agenda-horario-fixo .portal-agenda-horario-hora{
    background:#d7ff3f !important;
    color:#111 !important;
}

.portal-agenda-horario-fixo{
    background:#f5f9ff !important;
    border-color:#b8d0ff !important;
}

.portal-agenda-horario-fixo .portal-agenda-horario-vagas{
    color:#1261b3 !important;
}

.portal-agenda-horarios-bloco {
    margin-bottom: 18px;
}

.portal-agenda-horarios-subtitulo {
    font-size: 15px;
    font-weight: 800;
    color: #111;
    margin: 0 0 10px 0;
    padding: 0 2px;
    line-height: 1.2;
}

.portal-agenda-horario-cliente {
    background: #fff;
    border: 1px solid #e5e5e5;
    cursor: default;
}

.portal-agenda-horario-cliente:hover {
    background: #fff;
}

.portal-agenda-horario-cliente .portal-agenda-horario-vagas {
    color: #005fcc;
    font-weight: 800;
}

.portal-agenda-btn-cancelar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 10px;
    padding: 8px 14px;
    border-radius: 14px;
    border: 1px solid #ff4d61;
    background: #fff;
    color: #ff2442;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    width: auto;
    min-width: auto;
    max-width: max-content;
}

.portal-agenda-btn-cancelar:hover {
    background: #fff2f4;
}

.portal-agenda-aviso-cancelamento {
    margin-top: 8px;
    font-size: 12px;
    font-weight: 700;
    color: #666;
    line-height: 1.35;
}

.portal-agenda-horarios-bloco .portal-agenda-horario-item {
    margin-bottom: 10px;
}

.portal-agenda-horarios-bloco .portal-agenda-horario-item:last-child {
    margin-bottom: 0;
}

@media (max-width: 520px) {

    .portal-agenda-page .agenda-calendario-box {
        padding: 12px;
    }

    .portal-agenda-page .agenda-calendario-topo,
    .portal-agenda-page .agenda-calendario-grid {
        gap: 5px;
    }

    .portal-agenda-page .agenda-dia {
        width: 100%;
        min-height: 0;
        aspect-ratio: 1 / 1;
        padding: 6px;
        border-radius: 14px;
    }

    .portal-agenda-page .agenda-dia-numero {
        font-size: 12px;
        line-height: 1;
    }

    .portal-agenda-page .agenda-calendario-dia-semana {
        min-height: 28px;
        font-size: 10px;
        border-radius: 9px;
    }

}