body {
    margin: 0;
    padding: 20px 30px 40px;

    background: #0f1115;
    color: white;

    font-family: Montserrat, Arial, sans-serif;
}

/* TOPBAR */

.topbar {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;

    margin-bottom:20px;
}

/* SEARCH */

.search input {
    width:340px;

    padding:12px 14px;

    border-radius:10px;
    border:1px solid rgba(255,255,255,0.1);

    background:#1a1f2b;
    color:white;

    outline:none;
}

/* WIDGETS */

.widgets {
    display:flex;
    gap:10px;
    align-items:flex-start;
}

.widget {
    background:#1a1f2b;

    padding:10px 14px;

    border-radius:10px;

    border:1px solid rgba(255,255,255,0.05);
}

.wTitle {
    font-size:10px;
    opacity:0.6;
}

.wValue {
    font-size:14px;
    font-weight:600;
}

/* DEVICES */

.devicesWidget {
    min-width:220px;
}

.devicesList {
    margin-top:6px;

    display:flex;
    flex-direction:column;
    gap:4px;
}

.deviceRow {
    display:flex;
    align-items:center;
    gap:8px;

    font-size:12px;
}

.offlineText {
    opacity:0.5;
}

/* DASHBOARD */

.dashboard {
    max-width:1800px;
}

h1 {
    margin:10px 0 25px;
}

/* SECTION */

.section {
    margin-bottom:55px;
}

.badge {
    margin-bottom:18px;

    font-size:13px;
    font-weight:600;

    opacity:0.6;

    letter-spacing:0.4px;
    text-transform:uppercase;
}

/* GRID */

.grid {
    display:grid;

    grid-template-columns:
    repeat(auto-fill, minmax(270px, 1fr));

    gap:14px;
}

/* CARD */

.card {
    position:relative;

    display:flex;
    align-items:center;

    background:#1a1f2b;

    border-radius:16px;

    padding:16px 16px;

    min-height:55px;

    text-decoration:none;
    color:white;

    border:1px solid rgba(255,255,255,0.05);

    transition:0.15s;
}

.card:hover {
    transform:translateY(-2px);
    background:#222838;
}

/* STATUS */

.status {
    position:absolute;

    top:10px;
    right:10px;

    width:9px;
    height:9px;

    border-radius:50%;
}

.online { background:#2ecc71; }
.offline { background:#e74c3c; }
.unknown { background:#777; }

/* ICON */

.icon {
    font-size:26px;

    width:48px;

    display:flex;
    justify-content:center;

    margin-right:12px;

    flex-shrink:0;
}

/* TEXT */

.text {
    display:flex;
    flex-direction:column;

    padding-right:65px;
}

.title {
    font-size:15px;
    font-weight:600;
}

.desc {
    font-size:12px;
    opacity:0.7;
}

/* PORT */

.portBadge {
    position:absolute;

    bottom:10px;
    right:10px;

    font-size:11px;

    opacity:0.6;

    background:rgba(255,255,255,0.06);

    padding:3px 7px;

    border-radius:6px;
}

/* LATENCY */

.latency {
    position:absolute;

    bottom:10px;
    left:10px;

    font-size:11px;

    opacity:0.5;
}
