*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Segoe UI',Arial,sans-serif;
}

/* LOGIN E CADASTRO */
body{
    min-height:100vh;
    overflow:hidden;
    background:#eef6ff;
    position:relative;
}

.page-bg{
    position:fixed;
    inset:0;
    z-index:-10;
    background:linear-gradient(180deg,#f8fbff 0%,#eef6ff 55%,#ffffff 100%);
}

.page-bg::before{
    content:"";
    position:fixed;
    top:-220px;
    left:-250px;
    width:620px;
    height:420px;
    background:#0a7bcb;
    border-radius:50%;
    box-shadow:180px 50px 0 #dcebff;
}

.page-bg::after{
    content:"";
    position:fixed;
    left:-5%;
    bottom:-70px;
    width:110%;
    height:140px;
    background:#0074e8;
    border-radius:60% 60% 0 0;
    z-index:-4;
}

body::before{
    content:"";
    position:fixed;
    left:-120px;
    bottom:-5px;
    width:330px;
    height:170px;
    background:#20a83f;
    border-radius:70% 70% 0 0;
    z-index:-5;
}

body::after{
    content:"";
    position:fixed;
    right:-150px;
    top:-90px;
    width:310px;
    height:310px;
    background:#ffc400;
    border-radius:50%;
    z-index:-4;
}

.login-wrapper{
    width:100%;
    height:100vh;
    display:flex;
    flex-direction:column;
    align-items:center;
    padding-top:5px;
}

.login-wrapper::before{
    content:"";
    position:fixed;
    left:10px;
    top:250px;
    width:120px;
    height:100px;
    background-image:radial-gradient(#b7d8f8 6px, transparent 7px);
    background-size:42px 42px;
}

.brand{
    margin-bottom:2px;
}

.brand img{
    width:115px;
    filter:drop-shadow(0 5px 8px rgba(0,0,0,.15));
}

.login-card{
    width:100%;
    max-width:390px;
    background:#fff;
    border-radius:22px;
    padding:18px 24px 20px;
    box-shadow:0 14px 30px rgba(0,0,0,.10);
}

.login-card h1{
    text-align:center;
    font-size:22px;
    color:#0d6efd;
    font-weight:900;
    margin-bottom:2px;
}

.login-card p{
    text-align:center;
    font-size:13px;
    color:#444;
    margin-bottom:16px;
}

.input-box{
    width:100%;
    height:44px;
    display:flex;
    align-items:center;
    border:2px solid #dce5f2;
    border-radius:13px;
    margin-bottom:11px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 4px 10px rgba(0,0,0,.04);
}

.input-box span{
    width:46px;
    height:100%;
    background:#0d6efd;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:15px;
}

.input-box input,
.input-box select{
    flex:1;
    height:100%;
    border:none;
    outline:none;
    padding:0 13px;
    font-size:14px;
    color:#444;
    background:#fff;
}

.eye{
    color:#2d3646;
    font-size:15px;
    margin-right:12px;
}

.login-options{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin:2px 0 14px;
    font-size:11px;
}

.login-options label{
    display:flex;
    align-items:center;
    gap:5px;
    color:#222;
}

.login-options input{
    width:14px;
    height:14px;
    accent-color:#0d6efd;
}

.login-options a{
    color:#0d6efd;
    text-decoration:none;
    font-weight:700;
}

.btn-enter{
    width:100%;
    height:46px;
    border:none;
    border-radius:13px;
    background:linear-gradient(90deg,#0d6efd,#005adc);
    color:#fff;
    font-size:19px;
    font-weight:900;
    cursor:pointer;
    box-shadow:0 8px 15px rgba(13,110,253,.25);
}

.btn-enter i{
    margin-right:8px;
}

.divider{
    display:flex;
    align-items:center;
    margin:14px 0;
    color:#777;
    font-size:13px;
    font-weight:800;
}

.divider::before,
.divider::after{
    content:"";
    flex:1;
    height:2px;
    background:#d8dfeb;
}

.divider span{
    padding:0 12px;
}

.btn-register{
    height:44px;
    border:2px solid #0d6efd;
    border-radius:13px;
    color:#0d6efd;
    background:#fff;
    text-decoration:none;
    font-size:18px;
    font-weight:900;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
}

.info-row{
    width:100%;
    max-width:390px;
    margin-top:12px;
    display:flex;
    justify-content:space-around;
}

.info-row div{
    display:flex;
    align-items:center;
    gap:6px;
}

.info-row span{
    width:34px;
    height:34px;
    border-radius:50%;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:14px;
}

.info-row p{
    font-size:10px;
    line-height:1.1;
    font-weight:700;
}

.blue{background:#0d6efd;}
.green{background:#18a63b;}
.yellow{background:#ffc400;}

.secure-footer{
    margin-top:8px;
    color:#fff;
    display:flex;
    align-items:center;
    gap:8px;
}

.secure-footer i{
    font-size:20px;
}

.secure-footer strong{
    display:block;
    font-size:10px;
}

.secure-footer small{
    display:block;
    font-size:9px;
}

/* CADASTRO */
.cadastro-card{
    max-width:350px;
    padding:14px 18px 16px;
    border-radius:20px;
}

.cadastro-card h1{
    font-size:18px;
}

.cadastro-card p{
    font-size:11px;
    margin-bottom:12px;
}

.cadastro-card .input-box{
    height:39px;
    margin-bottom:9px;
}

.cadastro-card .input-box span{
    width:40px;
    font-size:13px;
    background:linear-gradient(180deg,#0d6efd,#0058da);
}

.cadastro-card .input-box input,
.cadastro-card .input-box select{
    font-size:12px;
}

.cadastro-card select{
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
    cursor:pointer;
    font-weight:600;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='%230d6efd' viewBox='0 0 16 16'%3E%3Cpath d='M1.5 5.5 8 12l6.5-6.5' stroke='%230d6efd' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 12px center;
    background-size:14px;
    padding-right:35px;
}

.cadastro-card .btn-enter{
    height:40px;
    font-size:15px;
}

.cadastro-card .btn-register{
    height:39px;
    font-size:14px;
}

/* PAINÉIS INTERNOS */
.painel-body{
    background:#eef4fb;
    overflow:hidden;
}

.painel-body::before,
.painel-body::after{
    display:none;
}

.recepcao-layout{
    width:100%;
    height:100vh;
    display:flex;
    background:#eef4fb;
}

.sidebar{
    width:235px;
    background:linear-gradient(180deg,#0b6fb3,#0057d8);
    color:#fff;
    padding:20px 15px;
    display:flex;
    flex-direction:column;
    box-shadow:8px 0 22px rgba(0,0,0,.10);
}

.sidebar-top{
    text-align:center;
}

.sidebar-top img{
    width:90px;
    margin-bottom:8px;
}

.sidebar-top h2{
    font-size:18px;
    line-height:1.2;
    font-weight:800;
}

.menu{
    margin-top:32px;
    display:flex;
    flex-direction:column;
    gap:10px;
}

.menu a{
    height:45px;
    border-radius:14px;
    display:flex;
    align-items:center;
    gap:11px;
    padding:0 15px;
    text-decoration:none;
    color:#fff;
    font-size:14px;
    font-weight:600;
}

.menu a:hover{
    background:#ffffff22;
}

.menu a.active{
    background:#fff;
    color:#0d6efd;
    font-weight:800;
}

.recepcao-content{
    flex:1;
    padding:18px;
    overflow-y:auto;
}

.topbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:16px;
}

.topbar h1{
    font-size:28px;
    color:#0d6efd;
    font-weight:900;
}

.topbar p{
    font-size:13px;
    color:#666;
}

.usuario-box{
    height:43px;
    background:#fff;
    border-radius:13px;
    padding:0 15px;
    display:flex;
    align-items:center;
    gap:9px;
    box-shadow:0 5px 15px rgba(0,0,0,.08);
    font-size:14px;
    font-weight:700;
}

.usuario-box i{
    color:#0d6efd;
}

.form-card{
    background:#fff;
    border-radius:18px;
    padding:18px;
    box-shadow:0 10px 25px rgba(0,0,0,.08);
    margin-bottom:18px;
}

.form-card h2{
    display:flex;
    align-items:center;
    gap:9px;
    color:#0d6efd;
    margin-bottom:14px;
    font-size:19px;
}

.form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}

.small-grid{
    grid-template-columns:1fr 250px;
    align-items:end;
}

.input-modern{
    margin-bottom:12px;
}

.input-modern label{
    display:block;
    margin-bottom:5px;
    font-size:12px;
    font-weight:700;
    color:#444;
}

.input-wrap{
    width:100%;
    height:42px;
    border-radius:12px;
    border:2px solid #dbe5f1;
    background:#fff;
    display:flex;
    align-items:center;
    overflow:hidden;
}

.input-wrap:focus-within{
    border-color:#0d6efd;
    box-shadow:0 0 0 4px rgba(13,110,253,.10);
}

.input-wrap i{
    width:42px;
    height:42px;
    background:#0d6efd;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:14px;
}

.input-wrap input,
.input-wrap select{
    flex:1;
    height:100%;
    border:none;
    outline:none;
    padding:0 12px;
    font-size:13px;
    background:#fff;
    color:#333;
}

.input-wrap select{
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
    cursor:pointer;
    font-weight:600;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='%230d6efd' viewBox='0 0 16 16'%3E%3Cpath d='M1.5 5.5 8 12l6.5-6.5' stroke='%230d6efd' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 12px center;
    background-size:13px;
    padding-right:35px;
}

.textarea-modern{
    width:100%;
    min-height:105px;
    border:2px solid #dbe5f1;
    border-radius:14px;
    padding:14px;
    resize:none;
    outline:none;
    font-size:13px;
}

.textarea-modern:focus{
    border-color:#0d6efd;
    box-shadow:0 0 0 4px rgba(13,110,253,.10);
}

.btn-salvar{
    width:100%;
    height:43px;
    border:none;
    border-radius:12px;
    background:linear-gradient(90deg,#0d6efd,#0059da);
    color:#fff;
    font-size:15px;
    font-weight:800;
    cursor:pointer;
    box-shadow:0 8px 18px rgba(13,110,253,.20);
}

.btn-salvar i{
    margin-right:8px;
}

.prioridade-box{
    height:42px;
    border-radius:12px;
    background:#fff8df;
    border:2px solid #ffe082;
    display:flex;
    align-items:center;
    gap:9px;
    padding:0 12px;
    margin-bottom:12px;
    cursor:pointer;
}

.prioridade-box input{
    width:16px;
    height:16px;
    accent-color:#ffc400;
}

.prioridade-box span{
    font-size:13px;
    font-weight:700;
    color:#8d6700;
}

.prioridade-box i{
    color:#ffc400;
}

.filas-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:15px;
}

.fila-card{
    background:#fff;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 10px 22px rgba(0,0,0,.07);
}

.fila-header{
    height:55px;
    display:flex;
    align-items:center;
    gap:10px;
    padding:0 15px;
    color:#fff;
}

.fila-header i{
    font-size:18px;
}

.fila-header h3{
    font-size:16px;
    font-weight:800;
}

.blue-bg{
    background:linear-gradient(90deg,#0d6efd,#0057d8);
}

.green-bg{
    background:linear-gradient(90deg,#18a63b,#0f8c2f);
}

.yellow-bg{
    background:linear-gradient(90deg,#ffc400,#e2ac00);
}

.fila-body{
    padding:12px;
    min-height:210px;
    max-height:360px;
    overflow-y:auto;
}

.fila-body-full{
    max-height:none;
}

.fila-vazia{
    text-align:center;
    color:#888;
    margin-top:24px;
    font-size:13px;
}

.fila-item{
    background:#f7fbff;
    border:1px solid #dce7f4;
    border-radius:13px;
    padding:10px;
    display:flex;
    align-items:center;
    gap:9px;
    margin-bottom:9px;
}

.prioridade-item{
    border:2px solid #ffd54f;
    background:#fff9e4;
}

.fila-item strong{
    min-width:32px;
    height:32px;
    border-radius:50%;
    background:#0d6efd;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:12px;
}

.fila-dados{
    flex:1;
}

.fila-item p{
    font-size:13px;
    font-weight:700;
    color:#222;
}

.fila-item small{
    font-size:11px;
    color:#666;
}

.tag-prioridade{
    background:#ffc400;
    color:#fff;
    padding:3px 7px;
    border-radius:20px;
    font-size:10px;
    margin-left:5px;
    font-weight:800;
}

.btn-excluir{
    width:32px;
    height:32px;
    border:none;
    border-radius:10px;
    background:#ff4d4d;
    color:#fff;
    cursor:pointer;
}

.btn-excluir:hover{
    background:#e22d2d;
}

.notificacao-fila{
    height:48px;
    background:#fff;
    border-radius:14px;
    display:flex;
    align-items:center;
    gap:12px;
    padding:0 18px;
    margin-bottom:16px;
    box-shadow:0 6px 18px rgba(0,0,0,.08);
    font-size:14px;
    font-weight:700;
}

.notificacao-fila i{
    color:#ffc400;
}

.nova-pessoa{
    animation:notificacao .8s infinite alternate;
}

@keyframes notificacao{
    from{transform:scale(1);}
    to{transform:scale(1.01);box-shadow:0 0 20px rgba(255,196,0,.40);}
}

.sem-atendimento{
    min-height:240px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
}

.sem-atendimento i{
    font-size:58px;
    color:#18a63b;
    margin-bottom:14px;
}

.sem-atendimento h3{
    font-size:24px;
    color:#333;
}

.sem-atendimento p{
    color:#777;
    margin-top:8px;
}

.relatorio-filtro{
    display:flex;
    gap:12px;
    align-items:end;
}

.btn-exportar{
    height:43px;
    padding:0 18px;
    border-radius:12px;
    background:#18a63b;
    color:#fff;
    text-decoration:none;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-size:14px;
    font-weight:800;
}

.tabela-wrap{
    width:100%;
    overflow:auto;
}

.tabela-relatorio{
    width:100%;
    border-collapse:collapse;
}

.tabela-relatorio thead{
    background:#0d6efd;
    color:#fff;
}

.tabela-relatorio th,
.tabela-relatorio td{
    padding:12px;
    font-size:12px;
    border-bottom:1px solid #e4ebf5;
    text-align:left;
}

.tabela-relatorio tbody tr:hover{
    background:#f7fbff;
}

.sem-dados{
    text-align:center;
    color:#888;
    padding:20px !important;
}

@media(max-width:1100px){
    .filas-grid{
        grid-template-columns:1fr;
    }

    .small-grid{
        grid-template-columns:1fr;
    }

    .relatorio-filtro{
        flex-direction:column;
        align-items:stretch;
    }
}

@media(max-width:850px){
    .sidebar{
        display:none;
    }

    .recepcao-content{
        padding:14px;
    }

    .form-grid{
        grid-template-columns:1fr;
    }

    .topbar{
        flex-direction:column;
        align-items:flex-start;
        gap:10px;
    }
}