/* ============================= */
/* RESET E TIPOGRAFIA            */
/* ============================= */
*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:"Segoe UI", Arial, sans-serif;
}

body{
background:#eef1f5;
color:#2c3e50;
padding-bottom:40px;
}

hr{
border:none;
border-top:1px solid #dce1e7;
margin:25px auto;
max-width:1100px;
}

h2,h3{
text-align:center;
margin:20px 0;
font-weight:600;
color:#2c3e50;
}

/* ============================= */
/* MENU                           */
/* ============================= */
.menu{
display:flex;
flex-wrap:wrap;
gap:10px;
padding:15px;
background:#ffffff;
border-bottom:1px solid #dce1e7;
justify-content:center;
box-shadow:0 1px 2px rgba(0,0,0,0.05);
}

.menu button{
border:none;
padding:10px 18px;
border-radius:4px;
font-size:14px;
font-weight:600;
cursor:pointer;
transition:all .2s;
}

.menu button:hover{
opacity:.9;
}

/* CORES MENU */
.prestador{background:#5cb85c;color:#fff;}
.usuario{background:#1a8fff;color:#fff;}
.logout{background:#d9534f;color:#fff;}

/* ============================= */
/* FORMULÁRIO                     */
/* ============================= */
.form-container{
background:#ffffff;
max-width:1100px;
margin:auto;
padding:25px;
border-radius:6px;
border:1px solid #dce1e7;
box-shadow:0 2px 4px rgba(0,0,0,0.05);
}

.form-row{
display:flex;
flex-wrap:wrap;
gap:15px;
margin-bottom:15px;
}

.form-group{
flex:1;
min-width:200px;
display:flex;
flex-direction:column;
}

label{
font-size:13px;
margin-bottom:5px;
color:#6c757d;
font-weight:600;
}

input,select,textarea{
padding:10px;
border-radius:4px;
border:1px solid #dce1e7;
font-size:14px;
transition:.2s;
background:#fff;
}

input:focus,
select:focus,
textarea:focus{
outline:none;
border-color:#1a8fff;
box-shadow:0 0 0 2px rgba(26,143,255,0.15);
}

textarea{resize:vertical;}

form button[type="submit"]{
background:#1a8fff;
color:#fff;
border:none;
padding:12px 20px;
font-size:14px;
border-radius:4px;
cursor:pointer;
margin-top:10px;
font-weight:600;
}

form button[type="submit"]:hover{
background:#0d6efd;
}

/* ============================= */
/* ALERTAS                        */
/* ============================= */
#msg-alerta{
position:fixed;
top:20px;
left:50%;
transform:translateX(-50%);
padding:18px 35px;
border-radius:6px;
box-shadow:0 4px 12px rgba(0,0,0,0.15);
font-size:15px;
font-weight:600;
color:#fff;
z-index:9999;
max-width:90%;
text-align:center;
}

#msg-alerta.sucesso{background:#5cb85c;}
#msg-alerta.erro{background:#d9534f;}

.alertaemitirnfse{
max-width:50%;
width:100%;
padding:14px;
border-radius:6px;
margin:20px auto;
font-size:14px;
border:1px solid transparent;
box-shadow:0 2px 6px rgba(0,0,0,0.08);
}

.alertaemitirnfse.success{
background:#e9f7ef;
color:#3c763d;
border-color:#c3e6cb;
}

.alertaemitirnfse.danger{
background:#fdecea;
color:#a94442;
border-color:#f5c6cb;
}

/* ============================= */
/* PAGINAÇÃO                      */
/* ============================= */
.paginacao{
text-align:center;
margin:20px 0;
}

.paginacao a{
display:inline-block;
padding:8px 12px;
margin:3px;
background:#fff;
border:1px solid #dce1e7;
border-radius:4px;
text-decoration:none;
color:#2c3e50;
font-weight:600;
}

.paginacao a:hover{
background:#1a8fff;
color:#fff;
border-color:#1a8fff;
}

.paginacao .ativo{
background:#1a8fff;
color:#fff;
border-color:#1a8fff;
}

/* ============================= */
/* TITULO NFS-e                  */
/* ============================= */
.emitirnfse-titulo-container{
display:flex;
align-items:center;
justify-content:center;
gap:20px;
width:100%;
margin:20px auto;
flex-wrap:nowrap;
text-align:center;
}

.emitirnfse-titulo-container h1{
margin:0;
font-size:24px;
}

.emitirnfse-numero-dps{
font-size:18px;
font-weight:600;
}

/* BOTÕES ALTERAR NÚMERO */

.emitirnfse-btn-alterar{
padding:6px 12px;
border:none;
background:#1a8fff;
color:#fff;
border-radius:4px;
cursor:pointer;
font-size:13px;
}

.emitirnfse-btn-alterar:hover{
background:#0d6efd;
}

/* EDITAR NÚMERO */

.emitirnfse-editar-box{
display:flex;
align-items:center;
gap:10px;
}

.emitirnfse-input-numero{
width:120px;
padding:8px;
border:1px solid #dce1e7;
border-radius:4px;
margin-top:10px;
}

.emitirnfse-btn-salvar{
background:#5cb85c;
color:#fff;
border:none;
padding:8px 14px;
border-radius:4px;
cursor:pointer;
}

.emitirnfse-btn-salvar:hover{
background:#4cae4c;
}

/* ============================= */
/* MODAL                         */
/* ============================= */

.emitirnfse-modal{
display:none;
position:fixed;
z-index:9999;
left:0;
top:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.5);
justify-content:center;
align-items:center;
}

.emitirnfse-modal-box{
background:#fff;
padding:25px;
border-radius:6px;
border:1px solid #dce1e7;
box-shadow:0 6px 20px rgba(0,0,0,0.15);
text-align:center;
min-width:260px;
}

.emitirnfse-modal-botoes{
margin-top:15px;
display:flex;
justify-content:center;
gap:10px;
}

.emitirnfse-btn-cancelar{
background:#d9534f;
color:#fff;
border:none;
padding:8px 14px;
border-radius:4px;
cursor:pointer;
}

/* ============================= */
/* BOTÕES FILTROS                */
/* ============================= */

.nfse_button_filtros{
display:inline-flex;
align-items:center;
justify-content:center;
height:34px;
padding:0 14px;
border-radius:4px;
font-size:12px;
color:#fff;
border:none;
cursor:pointer;
font-weight:600;
margin-top: auto;
}

/* BUSCAR */

.nfse_button_filtros.buscar{
background:#1a8fff;
margin-top: auto;
}

.nfse_button_filtros.buscar:hover{
background:#0d6efd;
}

/* LIMPAR */

.nfse_button_filtros.limpar{
background:#6c757d;
}

.nfse_button_filtros.limpar:hover{
background:#5a6268;
}

/* ============================= */
/* FORM FILTRO                   */
/* ============================= */

.emitirnfse-filtro-form{
display:flex;
align-items:center;
gap:10px;
flex-wrap:wrap;
justify-content:center;
}

.emitirnfse-input,
.emitirnfse-select{
padding:8px 10px;
border:1px solid #dce1e7;
border-radius:4px;
font-size:14px;
min-width:220px;
}

/* ============================= */
/* TABELA NFS-e                  */
/* ============================= */

.tablelistarnfse{
width:80%;
border-collapse:collapse;
margin:20px auto;
font-size:14px;
background:#fff;
border:1px solid #dce1e7;
}

.tablelistarnfse th,
.tablelistarnfse td{
padding:10px 12px;
border-bottom:1px solid #eef1f5;
}

.tablelistarnfse th{
background:#1a8fff;
color:#fff;
font-weight:600;
text-align:left;
}

.tablelistarnfse tr:nth-child(even){
background:#f8f9fb;
}

.tablelistarnfse tr:hover{
background:#eef5ff;
}

/* STATUS */

.status_emitida{
background:#5cb85c;
color:#fff;
padding:3px 8px;
border-radius:4px;
font-size:12px;
}

.status_cancelada{
background:#d9534f;
color:#fff;
padding:3px 8px;
border-radius:4px;
font-size:12px;
}

.status_erro{
background:#f0ad4e;
color:#fff;
padding:3px 8px;
border-radius:4px;
font-size:12px;
}

/* BOTOES TABELA */

.tablelistarnfse .btn{
display:inline-block;
padding:4px 10px;
margin:1px 3px 3px 0;
border-radius:4px;
font-size:12px;
text-decoration:none;
cursor:pointer;
color:#fff;
}

.tablelistarnfse .btn.pdf{background:#1a8fff;}
.tablelistarnfse .btn.xml{background:#6c757d;}
.tablelistarnfse .btn.cancel{background:#d9534f;}

#msg-sucesso{
    position:fixed;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    background-color:#4CAF50;
    color:white;
    padding:20px 35px;
    border-radius:8px;
    box-shadow:0 4px 8px rgba(0,0,0,0.3);
    font-weight:bold;
    z-index:9999;
    opacity:0;
    animation:fadeinout 0.5s ease forwards, fadeout 0.5s ease 4s forwards;
}

@keyframes fadeinout{
    from{opacity:0;}
    to{opacity:1;}
}

@keyframes fadeout{
    to{opacity:0;visibility:hidden;}
}
/* ============================= */
/* Login                         */
/* ============================= */

.login-container {
    background:#ffffff;
    padding:30px;
    border-radius:10px;
    box-shadow:0 8px 20px rgba(0,0,0,0.2);
    width:100%;
    max-width:400px;
    text-align:center;

    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
}

h2 i { margin-right:8px; color:#007bff; }

.input-group {
    transition:all .2s ease;
    display:flex;
    align-items:center;
    margin-bottom:15px;
    border:1px solid #ccc;
    border-radius:5px;
    padding:8px 10px;
    background:#ffffff;
}

.input-group input::placeholder{
    color:#6c757d;
}

.input-group i {
    margin-right:8px;
    color:#666;
}

.input-group input {
    border:none;
    outline:none;
    flex:1;
    font-size:14px;
    background:transparent;
    color:#333;
}

.input-group:focus-within{
    border-color:#3498db;
    box-shadow:0 0 0 2px rgba(52,152,219,0.25);
}

.input-group:focus-within i{
    color:#3498db;
}

.button-nfse-login {
    background:#2980b9;
    color:#fff;
    border:none;
    padding:10px 15px;
    border-radius:5px;
    cursor:pointer;
    font-size:15px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    width:200px;
    margin:15px auto;
}

.button-nfse-login:hover{
    background:#1f6693;
}

.button-nfse-login i{
    margin-right:5px;
}

.g-recaptcha{
    width:200px;
    display:block;
    margin-left:auto;
    margin-right:auto;
    margin-top:10px;
}

.erro {
    background:#f8d7da;
    color:#721c24;
    padding:10px;
    border-radius:5px;
    margin-bottom:15px;
    text-align:center;
    border:1px solid #f5c2c7;
}

/* ============================= */
/* RESPONSIVO MOBILE             */
/* ============================= */

@media screen and (max-width:768px){

.tablelistarnfse{
display:block;
width:calc(100% - 20px);
margin:0 auto;
}

.tablelistarnfse thead{display:none;}

.tablelistarnfse tbody,
.tablelistarnfse tr,
.tablelistarnfse td{
display:block;
width:100%;
}

.tablelistarnfse tr{
border:1px solid #dce1e7;
border-radius:6px;
margin-bottom:15px;
padding:10px;
background:#fff;
}

.tablelistarnfse td{
padding:6px 0;
border-bottom:1px solid #eef1f5;
font-size:13px;
display:flex;
justify-content:space-between;
}

.tablelistarnfse td:last-child{border-bottom:none;}

.tablelistarnfse td::before{
content:attr(data-label);
font-weight:600;
flex:1;
color:#6c757d;
margin-right:10px;
}

.tablelistarnfse .btn{
margin:4px 4px 0 0;
padding:4px 8px;
font-size:12px;
}

.emitirnfse-filtro-form{
flex-direction:column;
align-items:stretch;
}

.emitirnfse-input,
.emitirnfse-select{
width:100%;
}

}