/* ==========================================================
   Portal Paralelo SaaS Manager
   Local: public/assets/css/app.css
   ========================================================== */

:root{
    --primary:#155EEF;
    --primary-dark:#0040A8;
    --success:#12B76A;
    --warning:#F79009;
    --danger:#F04438;
    --bg:#F8FAFC;
    --card:#FFFFFF;
    --text:#101828;
    --text-light:#667085;
    --border:#E4E7EC;
    --navbar-height:70px;
    --radius:14px;
    --transition:.25s;
    --shadow:0 8px 24px rgba(16,24,40,.05);
}

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

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Inter',sans-serif;
    background:var(--bg);
    color:var(--text);
    font-size:15px;
    line-height:1.6;
}

a{
    color:var(--primary);
    text-decoration:none;
    transition:var(--transition);
}

a:hover{
    color:var(--primary-dark);
}

h1,h2,h3,h4,h5{
    font-weight:700;
    color:var(--text);
}

p{
    color:var(--text-light);
}

/* NAVBAR */
.navbar-app{
    min-height:var(--navbar-height);
    background:#FFF;
    border-bottom:1px solid var(--border);
    box-shadow:0 2px 10px rgba(16,24,40,.03);
    padding:0 25px;
}

.navbar-brand{
    font-size:20px;
    font-weight:700;
    color:var(--primary);
}

.navbar-user{
    display:flex;
    align-items:center;
    gap:15px;
}

/* CABEÇALHO PÚBLICO */
.public-header{
    box-shadow:0 6px 20px rgba(16,24,40,.035);
}

.marca-publica{
    display:inline-flex;
    align-items:center;
    gap:12px;
    min-width:0;
}

.marca-publica-logo{
    display:block;
    width:auto;
    height:52px;
    max-width:150px;
    object-fit:contain;
}

.marca-publica-texto{
    display:flex;
    flex-direction:column;
    min-width:0;
    line-height:1.2;
}

.marca-publica-texto strong{
    color:var(--text);
    font-size:17px;
    font-weight:700;
    letter-spacing:-.01em;
}

.marca-publica-texto small{
    margin-top:3px;
    color:var(--text-light);
    font-size:12px;
    white-space:nowrap;
}

.marca-publica:hover .marca-publica-texto strong{
    color:var(--primary);
}

/* MENU ADMINISTRATIVO HORIZONTAL */
.menu-admin{
    background:#FFF;
    border-bottom:1px solid var(--border);
    box-shadow:0 4px 14px rgba(16,24,40,.035);
}

.menu-admin-scroll{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:flex-start;
    gap:8px;
    overflow:visible;
    white-space:normal;
    padding:12px 0;
}

.menu-admin-item{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    flex:0 0 auto;
    min-height:42px;
    padding:9px 14px;
    border:1px solid var(--border);
    border-radius:11px;
    background:#FFF;
    color:var(--text);
    font-weight:600;
    line-height:1;
    box-shadow:0 1px 2px rgba(16,24,40,.03);
}

.menu-admin-item i{
    font-size:17px;
    color:var(--primary);
}

.menu-admin-item:hover{
    background:#EEF4FF;
    border-color:#B2CCFF;
    color:var(--primary);
    transform:translateY(-1px);
}

.menu-admin-item.active{
    background:var(--primary);
    border-color:var(--primary);
    color:#FFF;
    box-shadow:0 5px 12px rgba(21,94,239,.18);
}

.menu-admin-item.active i{
    color:#FFF;
}

/* MAIN */
.main-content{
    padding:30px;
}

/* CARDS */
.card-app{
    background:#FFF;
    border:none;
    border-radius:16px;
    box-shadow:var(--shadow);
    padding:24px;
    margin-bottom:25px;
}

.card-title{
    font-size:15px;
    color:var(--text-light);
    margin-bottom:10px;
}

.card-value{
    font-size:32px;
    font-weight:700;
}

/* BOTÕES */
.btn{
    border-radius:10px;
    padding:10px 18px;
    font-weight:600;
}

.btn-primary{
    background:var(--primary);
    border:none;
}

.btn-primary:hover{
    background:var(--primary-dark);
}

.btn-success,
.btn-danger{
    border:none;
}

/* FORMULÁRIOS */
.form-control{
    border-radius:10px;
    border:1px solid var(--border);
    padding:12px 14px;
}

.form-control:focus{
    border-color:var(--primary);
    box-shadow:0 0 0 .15rem rgba(21,94,239,.15);
}

/* TABELAS */
.table{
    background:#FFF;
}

.table thead{
    background:#F9FAFB;
}

.table th{
    border-bottom:2px solid var(--border);
    color:var(--text);
}

.table td{
    vertical-align:middle;
}

/* ALERTAS */
.alert{
    border:none;
    border-radius:12px;
}

/* BADGES */
.badge{
    padding:8px 12px;
    border-radius:20px;
}

/* DROPDOWN */
.dropdown-menu{
    border:none;
    border-radius:14px;
    box-shadow:0 10px 30px rgba(16,24,40,.08);
    padding:10px;
}

.dropdown-item{
    border-radius:8px;
    padding:10px 14px;
}

.dropdown-item:hover{
    background:#EEF4FF;
}

/* RESPONSIVO */
@media(max-width:992px){
    .main-content{
        padding:20px;
    }

    .menu-admin-scroll{
        padding:10px 0 12px;
    }

    .menu-admin-item{
        flex:0 0 auto;
        min-height:40px;
        padding:9px 12px;
    }
}

@media(max-width:768px){
    .marca-publica-logo{
        height:44px;
        max-width:125px;
    }

    .marca-publica-texto small{
        display:none;
    }

    .marca-publica-texto strong{
        font-size:15px;
    }
}

@media(max-width:576px){
    .navbar-app{
        padding:0 14px;
    }

    .menu-admin .container-fluid{
        padding-left:14px !important;
        padding-right:14px !important;
    }

    .menu-admin-scroll{
        gap:7px;
    }

    .menu-admin-item{
        font-size:14px;
        padding:8px 10px;
    }

    .public-header .container{
        gap:10px !important;
    }

    .marca-publica{
        gap:8px;
    }

    .marca-publica-logo{
        height:38px;
        max-width:100px;
    }

    .marca-publica-texto{
        display:none;
    }

    .public-header nav{
        gap:8px !important;
    }

    .public-header nav > a:first-child{
        display:none;
    }

    .public-header .btn{
        padding:8px 12px;
        font-size:13px;
    }
}