/* ==========================================
   UP Police AI Crime Analytics Dashboard
   reports.css (Part 2A-1)
========================================== */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
}

body {

    background: #07111d;
    color: #fff;
    overflow-x: hidden;

    background-image:
        radial-gradient(circle at top right, #1f6feb22, transparent 30%),
        radial-gradient(circle at bottom left, #00d4ff11, transparent 35%);

}

/* ================= Dashboard ================= */

.dashboard {

    display: flex;
    min-height: 100vh;

}

/* ================= Sidebar ================= */

.sidebar {

    width: 260px;

    background: #0c1627;

    border-right: 1px solid rgba(255, 255, 255, .08);

    padding: 25px;

    position: fixed;

    left: 0;
    top: 0;
    bottom: 0;

    overflow: auto;

}

.sidebar::-webkit-scrollbar {

    width: 6px;

}

.sidebar::-webkit-scrollbar-thumb {

    background: #1f6feb;

    border-radius: 20px;

}

/* Logo */

.logo {

    text-align: center;

    margin-bottom: 35px;

}

.logo img {

    width: 85px;
    height: 85px;

    border-radius: 50%;

    border: 3px solid #1f6feb;

    padding: 5px;

    background: white;

}

.logo h2 {

    margin-top: 15px;

    font-size: 24px;

    color: #46b5ff;

}

.logo p {

    font-size: 13px;

    margin-top: 5px;

    color: #b7c3d6;

}

/* Menu */

.sidebar ul {

    list-style: none;

}

.sidebar ul li {

    margin-bottom: 10px;

}

.sidebar ul li a {

    display: flex;

    align-items: center;

    gap: 12px;

    padding: 14px 18px;

    text-decoration: none;

    color: white;

    border-radius: 12px;

    transition: .35s;

    font-size: 15px;

}

.sidebar ul li a:hover {

    background: #1f6feb;

    transform: translateX(6px);

}

.sidebar ul li.active a {

    background: #1f6feb;

    box-shadow: 0 0 18px rgba(31, 111, 235, .4);

}

/* ================= Main ================= */

.main {

    margin-left: 260px;

    width: calc(100% - 260px);

    padding: 30px;

}

/* ================= Header ================= */

header {

    display: flex;

    justify-content: space-between;

    align-items: center;

    margin-bottom: 35px;

    flex-wrap: wrap;

    gap: 20px;

}

header h1 {

    font-size: 34px;

    font-weight: 700;

}

header p {

    margin-top: 6px;

    color: #b8c5d9;

}

.header-right {

    display: flex;

    align-items: center;

    gap: 15px;

    flex-wrap: wrap;

}

/* Search */

.header-right input {

    width: 260px;

    height: 48px;

    background: #101d33;

    border: none;

    outline: none;

    border-radius: 12px;

    padding: 0 18px;

    color: white;

}

/* Buttons */

.header-right button {

    height: 48px;

    padding: 0 22px;

    border: none;

    border-radius: 12px;

    cursor: pointer;

    background: #1f6feb;

    color: white;

    font-size: 15px;

    transition: .3s;

}

.header-right button:hover {

    background: #0056d6;

    transform: translateY(-2px);

}

/* ================= Filters ================= */

.filters {

    display: grid;

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

    gap: 18px;

    margin-bottom: 30px;

}

.filters select,
.filters input {

    height: 52px;

    background: #101d33;

    color: white;

    border: none;

    outline: none;

    border-radius: 12px;

    padding: 0 15px;

    font-size: 15px;

}

.filters button {

    height: 52px;

    border: none;

    border-radius: 12px;

    background: #16a34a;

    color: white;

    font-size: 15px;

    cursor: pointer;

    transition: .3s;

}

.filters button:hover {

    background: #15803d;

}

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

.cards {

    display: grid;

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

    gap: 22px;

    margin-bottom: 35px;

}

.card {

    position: relative;

    overflow: hidden;

    padding: 28px;

    border-radius: 20px;

    background: rgba(255, 255, 255, .05);

    backdrop-filter: blur(20px);

    border: 1px solid rgba(255, 255, 255, .08);

    box-shadow: 0 10px 30px rgba(0, 0, 0, .25);

    transition: .35s;

}

.card:hover {

    transform: translateY(-8px);

    box-shadow: 0 15px 40px rgba(31, 111, 235, .30);

    border-color: #1f6feb;

}

.card::before {

    content: "";

    position: absolute;

    top: -40px;

    right: -40px;

    width: 120px;

    height: 120px;

    border-radius: 50%;

    background: rgba(255, 255, 255, .08);

}

.card i {

    font-size: 38px;

    margin-bottom: 18px;

}

.card h2 {

    font-size: 36px;

    margin-bottom: 8px;

    font-weight: 700;

}

.card p {

    font-size: 15px;

    opacity: .9;

}

/* Card Colors */

.blue {

    background: linear-gradient(135deg, #1565c0, #42a5f5);

}

.green {

    background: linear-gradient(135deg, #15803d, #22c55e);

}

.orange {

    background: linear-gradient(135deg, #ea580c, #fb923c);

}

.red {

    background: linear-gradient(135deg, #b91c1c, #ef4444);

}

.purple {

    background: linear-gradient(135deg, #6d28d9, #8b5cf6);

}

/* ==========================================
   CHART GRID
========================================== */

.chart-grid {

    display: grid;

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

    gap: 25px;

    margin-bottom: 35px;

}

/* ==========================================
   CHART CARD
========================================== */

.chart-card {

    background: rgba(255, 255, 255, .05);

    border: 1px solid rgba(255, 255, 255, .08);

    backdrop-filter: blur(20px);

    border-radius: 20px;

    padding: 25px;

    box-shadow: 0 10px 30px rgba(0, 0, 0, .25);

    transition: .3s;

}

.chart-card:hover {

    transform: translateY(-6px);

    border-color: #1f6feb;

    box-shadow: 0 15px 35px rgba(31, 111, 235, .30);

}

.chart-card h3 {

    display: flex;

    align-items: center;

    gap: 10px;

    font-size: 20px;

    margin-bottom: 20px;

    color: #53b6ff;

}

.chart-card h3 i {

    font-size: 22px;

}

.chart-card canvas {

    width: 100% !important;

    height: 320px !important;

}

/* ==========================================
   GLASS EFFECT
========================================== */

.chart-card,
.card {

    backdrop-filter: blur(16px);

    -webkit-backdrop-filter: blur(16px);

}

/* ==========================================
   SMOOTH ANIMATION
========================================== */

.card,
.chart-card {

    animation: fadeUp .8s ease;

}

@keyframes fadeUp {

    0% {

        opacity: 0;

        transform: translateY(25px);

    }

    100% {

        opacity: 1;

        transform: translateY(0);

    }

}

/* ==========================================
   ICON EFFECT
========================================== */

.card i {

    transition: .3s;

}

.card:hover i {

    transform: scale(1.15) rotate(6deg);

}

/* ==========================================
   CHART TITLE LINE
========================================== */

.chart-card h3::after {

    content: "";

    flex: 1;

    height: 2px;

    margin-left: 15px;

    background: linear-gradient(to right, #1f6feb, transparent);

}

/* ==========================================
   ACTIVITY SECTION
========================================== */

.activity-section {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
    margin-bottom: 35px;
}

.activity-card {
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .08);
    backdrop-filter: blur(20px);
    border-radius: 20px;
    padding: 25px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .25);
}

.activity-card h3 {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 20px;
    margin-bottom: 20px;
    color: #4db8ff;
}

/* ==========================================
   ACTIVITY LIST
========================================== */

.activity-list {
    list-style: none;
}

.activity-list li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    font-size: 15px;
}

.activity-list small {
    color: #9ca3af;
}

.success,
.warning,
.danger,
.info {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    display: inline-block;
    margin-right: 10px;
}

.success {
    background: #22c55e;
}

.warning {
    background: #f59e0b;
}

.danger {
    background: #ef4444;
}

.info {
    background: #3b82f6;
}

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

.table-card {
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 20px;
    padding: 25px;
    margin-bottom: 40px;
    overflow-x: auto;
}

.table-card h3 {
    margin-bottom: 20px;
    color: #4db8ff;
    display: flex;
    align-items: center;
    gap: 10px;
}

.crime-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 850px;
}

.crime-table th {
    background: #1f6feb;
    padding: 15px;
    text-align: left;
    font-size: 15px;
}

.crime-table td {
    padding: 15px;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.crime-table tbody tr {
    transition: .3s;
}

.crime-table tbody tr:hover {
    background: rgba(31, 111, 235, .15);
}

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

.badge {
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
}

.solved {
    background: #16a34a;
    color: #fff;
}

.pending {
    background: #ea580c;
    color: #fff;
}

.investigating {
    background: #2563eb;
    color: #fff;
}

/* ==========================================
   RISK
========================================== */

.risk {
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
}

.risk.high {
    background: #dc2626;
    color: white;
}

.risk.medium {
    background: #f59e0b;
    color: white;
}

.risk.low {
    background: #16a34a;
    color: white;
}

/* ==========================================
   FOOTER
========================================== */

footer {
    margin-top: 20px;
    padding: 20px;
    text-align: center;
    color: #94a3b8;
    border-top: 1px solid rgba(255, 255, 255, .08);
}

/* ==========================================
   RESPONSIVE
========================================== */

@media(max-width:1200px) {

    .chart-grid,
    .activity-section {
        grid-template-columns: 1fr;
    }

}

@media(max-width:992px) {

    .sidebar {
        position: relative;
        width: 100%;
        height: auto;
    }

    .main {
        margin-left: 0;
        width: 100%;
    }

    .dashboard {
        flex-direction: column;
    }

    .filters {
        grid-template-columns: 1fr;
    }

    .cards {
        grid-template-columns: repeat(2, 1fr);
    }

}

@media(max-width:768px) {

    .cards {
        grid-template-columns: 1fr;
    }

    header {
        flex-direction: column;
        align-items: flex-start;
    }

    .header-right {
        width: 100%;
        flex-direction: column;
    }

    .header-right input,
    .header-right button {
        width: 100%;
    }

    .chart-card canvas {
        height: 250px !important;
    }

}

/* ==========================================
   SCROLLBAR
========================================== */

::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-thumb {
    background: #1f6feb;
    border-radius: 10px;
}

::-webkit-scrollbar-track {
    background: #08111f;
}