/* ==========================================================
   XTREME FONTES
   MAIN.CSS
========================================================== */

:root{

--bg:#0b1220;
--bg2:#111827;
--card:#161b22;
--border:#243244;

--green:#22c55e;
--green2:#16a34a;

--text:#ffffff;
--muted:#94a3b8;

--radius:16px;

}

*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:Inter,Segoe UI,Arial,sans-serif;
}

html,
body{
width:100%;
height:100%;
scroll-behavior:smooth;
}

body{

background:var(--bg);

color:var(--text);

overflow-x:hidden;

}

a{

text-decoration:none;

color:inherit;

transition:.25s;

}

img{

max-width:100%;

height:auto;

display:block;

}

/* ===========================
      SIDEBAR
=========================== */

.sidebar{

position:fixed;

left:0;

top:0;

width:260px;

height:100vh;

background:var(--bg2);

border-right:1px solid var(--border);

display:flex;

flex-direction:column;

z-index:999;

overflow-y:auto;

}

.sidebar::-webkit-scrollbar{

width:6px;

}

.sidebar::-webkit-scrollbar-thumb{

background:#22c55e;

border-radius:30px;

}

.logo{

height:78px;

display:flex;

align-items:center;

justify-content:center;

font-size:25px;

font-weight:700;

color:var(--green);

border-bottom:1px solid var(--border);

flex-shrink:0;

}

.logo i{

margin-right:10px;

font-size:24px;

}

.user-box{

display:flex;

align-items:center;

padding:20px;

border-bottom:1px solid var(--border);

gap:15px;

}

.avatar{

width:56px;

height:56px;

border-radius:50%;

background:var(--green);

display:flex;

align-items:center;

justify-content:center;

color:#000;

font-size:24px;

flex-shrink:0;

}

.user-info{

overflow:hidden;

}

.user-info strong{

display:block;

white-space:nowrap;

overflow:hidden;

text-overflow:ellipsis;

font-size:16px;

}

.user-info small{

color:var(--muted);

font-size:13px;

}

.sidebar ul{

list-style:none;

padding:15px 0;

flex:1;

}

.sidebar li{

margin:4px 10px;

border-radius:12px;

overflow:hidden;

transition:.25s;

}

.sidebar li a{

display:flex;

align-items:center;

gap:14px;

padding:15px 18px;

font-size:15px;

font-weight:500;

color:#d8dee9;

}

.sidebar li i{

width:22px;

text-align:center;

font-size:17px;

}

.sidebar li:hover{

background:var(--green);

transform:translateX(5px);

}

.sidebar li:hover a{

color:#000;

}

.sidebar li.active{

background:var(--green);

}

.sidebar li.active a{

color:#000;

font-weight:700;

}

.sidebar-footer{

padding:18px;

text-align:center;

border-top:1px solid var(--border);

font-size:13px;

color:#64748b;

flex-shrink:0;

}

/* ===========================
      MAIN
=========================== */

.main{

margin-left:260px;

padding:35px;

min-height:100vh;

width:calc(100% - 260px);

}

.topbar{

display:flex;

justify-content:space-between;

align-items:center;

gap:20px;

margin-bottom:35px;

flex-wrap:wrap;

}

.topbar h2{

font-size:32px;

font-weight:700;

}

.topbar p{

margin-top:6px;

color:var(--muted);

}

.status-online{

display:flex;

align-items:center;

gap:10px;

padding:10px 18px;

border-radius:30px;

background:#132318;

border:1px solid rgba(34,197,94,.25);

font-weight:600;

color:#22c55e;

}

.dot{

width:10px;

height:10px;

border-radius:50%;

background:#22c55e;

box-shadow:0 0 12px #22c55e;

animation:pulse 1.5s infinite;

}

@keyframes pulse{

0%{

transform:scale(1);

opacity:1;

}

50%{

transform:scale(1.4);

opacity:.6;

}

100%{

transform:scale(1);

opacity:1;

}

}

/* ==========================================================
   CARDS
========================================================== */

.cards{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(240px,1fr));

gap:22px;

margin-bottom:30px;

}

.card-box{

background:linear-gradient(180deg,#161b22,#111827);

border:1px solid rgba(34,197,94,.15);

border-radius:18px;

padding:22px;

display:flex;

align-items:center;

gap:18px;

position:relative;

overflow:hidden;

transition:.30s;

}

.card-box::before{

content:"";

position:absolute;

left:0;

top:0;

width:5px;

height:100%;

background:#22c55e;

}

.card-box:hover{

transform:translateY(-6px);

box-shadow:0 15px 35px rgba(34,197,94,.20);

border-color:#22c55e;

}

.card-icon{

width:65px;

height:65px;

border-radius:16px;

background:linear-gradient(180deg,#22c55e,#16a34a);

display:flex;

align-items:center;

justify-content:center;

font-size:28px;

color:#000;

flex-shrink:0;

}

.card-box small{

display:block;

font-size:13px;

color:#94a3b8;

margin-bottom:4px;

}

.card-box h1{

font-size:34px;

font-weight:700;

color:#22c55e;

margin:0;

line-height:1;

}

.card-box h5{

font-size:19px;

font-weight:600;

color:#22c55e;

margin:0;

}

/* ==========================================================
   PANEL
========================================================== */

.panel{

background:#161b22;

border:1px solid rgba(34,197,94,.15);

border-radius:18px;

padding:24px;

margin-top:25px;

overflow:hidden;

}

.panel-title{

display:flex;

align-items:center;

gap:10px;

font-size:20px;

font-weight:700;

color:#22c55e;

margin-bottom:20px;

}

.panel-title i{

font-size:22px;

}

/* ==========================================================
   PROGRESS
========================================================== */

.progress{

height:18px;

background:#253040;

border-radius:40px;

overflow:hidden;

}

.progress-bar{

height:100%;

background:linear-gradient(90deg,#16a34a,#22c55e);

transition:width .5s;

}

/* ==========================================================
   TABLE
========================================================== */

.table{

margin-bottom:0;

color:#fff;

vertical-align:middle;

}

.table thead{

background:#22c55e;

color:#000;

}

.table thead th{

border:none;

padding:15px;

font-size:14px;

font-weight:700;

white-space:nowrap;

}

.table tbody td{

padding:15px;

border-color:#273343;

white-space:nowrap;

}

.table tbody tr{

transition:.25s;

}

.table tbody tr:hover{

background:#1d2635;

}

.table-responsive{

border-radius:14px;

overflow-x:auto;

}

/* ==========================================================
   BADGES
========================================================== */

.badge-online{

background:#16a34a;

color:#fff;

padding:6px 14px;

border-radius:30px;

font-size:12px;

font-weight:700;

}

.badge-offline{

background:#dc2626;

color:#fff;

padding:6px 14px;

border-radius:30px;

font-size:12px;

font-weight:700;

}

/* ==========================================================
   TIMELINE
========================================================== */

.timeline{

position:relative;

padding-left:28px;

margin-left:8px;

border-left:3px solid #22c55e;

}

.event{

position:relative;

background:#1a2332;

padding:18px;

border-radius:15px;

margin-bottom:18px;

transition:.25s;

}

.event:hover{

transform:translateX(6px);

background:#212d40;

}

.event::before{

content:"";

position:absolute;

left:-38px;

top:25px;

width:16px;

height:16px;

border-radius:50%;

background:#22c55e;

box-shadow:0 0 12px #22c55e;

}

.event h5{

color:#22c55e;

margin-bottom:8px;

}

.event small{

display:block;

color:#94a3b8;

margin-bottom:10px;

}

.tag{

display:inline-block;

padding:6px 12px;

border-radius:30px;

background:#22c55e;

color:#000;

font-size:12px;

font-weight:700;

margin:3px;

}

/* ==========================================================
   FORMS
========================================================== */

.form-control{

background:#0d1420;

border:1px solid #273343;

color:#fff;

height:52px;

border-radius:12px;

}

.form-control:focus{

background:#0d1420;

color:#fff;

border-color:#22c55e;

box-shadow:0 0 12px rgba(34,197,94,.20);

}

.btn{

border-radius:12px;

font-weight:600;

transition:.25s;

}

.btn-success{

background:#22c55e;

border:none;

color:#000;

}

.btn-success:hover{

background:#16a34a;

transform:translateY(-2px);

}

/* ==========================================================
   LOGIN
========================================================== */

.login-body{

display:flex;

justify-content:center;

align-items:center;

min-height:100vh;

background:linear-gradient(135deg,#07101d,#111827);

padding:20px;

}

.login-box{

width:430px;

max-width:100%;

background:#161b22;

border:1px solid rgba(34,197,94,.20);

border-radius:20px;

padding:35px;

box-shadow:0 0 40px rgba(34,197,94,.12);

}

.login-logo{

text-align:center;

margin-bottom:30px;

}

.login-logo i{

font-size:58px;

color:#22c55e;

margin-bottom:12px;

}

.login-logo h1{

font-size:34px;

color:#22c55e;

font-weight:700;

margin-bottom:6px;

}

.login-logo p{

color:#94a3b8;

}

.login-footer{

margin-top:25px;

text-align:center;

color:#64748b;

font-size:13px;

}

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

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

.main{

margin-left:220px;

width:calc(100% - 220px);

padding:25px;

}

.sidebar{

width:220px;

}

.cards{

grid-template-columns:repeat(2,1fr);

}

}

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

body{

overflow-x:hidden;

}

/* SIDEBAR */

.sidebar{

position:relative;

width:100%;

height:auto;

border-right:none;

border-bottom:1px solid var(--border);

}

.sidebar-footer{

display:none;

}

.logo{

height:70px;

font-size:24px;

}

.user-box{

padding:18px;

}

.sidebar ul{

padding:10px;

}

.sidebar li{

margin:6px 0;

}

/* MAIN */

.main{

margin-left:0;

width:100%;

padding:15px;

}

/* TOPO */

.topbar{

flex-direction:column;

align-items:flex-start;

gap:15px;

}

.topbar h2{

font-size:28px;

}

.status-online{

width:100%;

justify-content:center;

}

/* CARDS */

.cards{

grid-template-columns:1fr;

gap:15px;

}

.card-box{

padding:18px;

}

.card-icon{

width:55px;

height:55px;

font-size:24px;

}

.card-box h1{

font-size:30px;

}

.card-box h5{

font-size:18px;

}

/* PAINEL */

.panel{

padding:18px;

margin-top:20px;

}

.panel-title{

font-size:18px;

}

/* TABELAS */

.table-responsive{

overflow-x:auto;

-webkit-overflow-scrolling:touch;

}

.table{

min-width:850px;

}

/* TIMELINE */

.timeline{

margin-left:5px;

padding-left:18px;

}

.event{

padding:16px;

}

.event::before{

left:-27px;

}

/* LOGIN */

.login-box{

width:100%;

padding:25px;

}

.login-logo h1{

font-size:28px;

}

.login-logo i{

font-size:48px;

}

/* BOTÕES */

.btn{

width:100%;

}

/* INPUTS */

.form-control{

height:50px;

font-size:16px;

}

/* IMAGENS */

img{

max-width:100%;

height:auto;

}

}

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

.main{

padding:12px;

}

.logo{

font-size:22px;

}

.avatar{

width:45px;

height:45px;

font-size:18px;

}

.user-info strong{

font-size:15px;

}

.card-box{

flex-direction:column;

align-items:flex-start;

text-align:left;

}

.card-icon{

margin-bottom:10px;

}

.panel{

padding:15px;

}

.topbar h2{

font-size:24px;

}

}