/* ==========================================================================
   PREMIUM THEME V2.0
   ========================================================================== */

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

:root {

    --bg: #08111F;
    --bg2: #0D1B2A;

    --card: #132238;
    --card2: #1B2E49;

    --border: #233B5E;

    --cyan: #00D4FF;
    --blue: #2563EB;
    --green: #10B981;
    --red: #EF4444;
    --yellow: #FACC15;

    --text: #FFFFFF;
    --text2: #BFC9D9;

    --shadow: 0 15px 35px rgba(0, 0, 0, .35);

}

* {

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

}

html {

    scroll-behavior: smooth;

}

body {

    background:
        radial-gradient(circle at top right, #123861 0%, transparent 35%),
        radial-gradient(circle at bottom left, #051220 0%, transparent 45%),
        var(--bg);

    color: var(--text);

    overflow-x: hidden;

}

/* Premium Watermark */

body::before {

    content: "";

    position: fixed;

    inset: 0;

    background: url("image/up-police-ai.png");

    background-repeat: repeat;

    background-size: 220px;

    opacity: .025;

    transform: rotate(-25deg);

    pointer-events: none;

    z-index: -1;

}

::selection {

    background: var(--cyan);

    color: #000;

}

.navbar {

    position: fixed;

    top: 0;

    left: 0;

    width: 100%;

    height: 75px;

    padding: 0 50px;

    display: flex;

    justify-content: space-between;

    align-items: center;

    background: rgba(8, 17, 31, .90);

    backdrop-filter: blur(18px);

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

    z-index: 999;

    box-shadow: 0 5px 20px rgba(0, 0, 0, .35);

}

.logo {

    display: flex;

    align-items: center;

    gap: 12px;

    font-size: 24px;

    font-weight: 700;

    color: var(--cyan);

}

.logo img {

    width: 25px;

}

.nav-links {

    display: flex;

    gap: 30px;

    list-style: none;

}

.nav-links a {

    color: white;

    text-decoration: none;

    font-size: 15px;

    font-weight: 500;

    transition: .3s;

    position: relative;

}

.nav-links a:hover {

    color: var(--cyan);

}

.nav-links a::after {

    content: "";

    position: absolute;

    bottom: -8px;

    left: 0;

    width: 0;

    height: 2px;

    background: var(--cyan);

    transition: .3s;

}

.nav-links a:hover::after {

    width: 100%;

}

.dashboard-layout {

    display: flex;

    min-height: 100vh;

}

.sidebar {

    width: 270px;

    background: #101B2D;

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

    padding: 25px;

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    position: fixed;

    top: 0;

    left: 0;

    height: 100vh;

    box-shadow: 5px 0 30px rgba(0, 0, 0, .4);

}

.sidebar .logo-section {

    display: flex;

    align-items: center;

    gap: 12px;

    margin-bottom: 30px;

}

.sidebar .logo-section img {

    width: 23px;

}

.sidebar ul {

    list-style: none;

    display: flex;

    flex-direction: column;

    gap: 8px;

}

.sidebar a {

    display: flex;

    align-items: center;

    gap: 14px;

    padding: 14px;

    border-radius: 12px;

    color: #D5DCE7;

    text-decoration: none;

    transition: .35s;

    font-size: 15px;

}

.sidebar a:hover,

.sidebar a.active {

    background: linear-gradient(90deg, #2563EB, #00D4FF);

    color: white;

    transform: translateX(5px);

}

.main {

    margin-left: 270px;

    padding: 30px;

    width: calc(100% - 270px);

}

.hero {

    position: relative;
    width: 100%;
    height: 100vh;

    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;

    overflow: hidden;
    padding-top: 80px;

}

.hero::before {

    content: "";
    position: absolute;
    inset: 0;

    background:
        linear-gradient(rgba(4, 12, 24, .78), rgba(4, 12, 24, .82)),
        url("image/up-police-hq.png");

    background-size: cover;
    background-position: center;

    filter: blur(2px);
    transform: scale(1.05);

    z-index: -2;

}

.hero-content {

    max-width: 900px;
    padding: 20px;
    animation: fadeUp 1s ease;

}

.hero h1 {

    font-size: 62px;
    font-weight: 800;
    margin-bottom: 15px;

    line-height: 1.2;

    background: linear-gradient(90deg, #fff, #00d4ff);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;

}

.hero h3 {

    font-size: 24px;
    color: var(--yellow);

    margin-bottom: 18px;

}

.hero p {

    font-size: 18px;
    line-height: 1.8;
    color: var(--text2);

    margin-bottom: 35px;

}

.btn,
button,
.back-btn {

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 14px 28px;

    border: none;
    border-radius: 12px;

    background: linear-gradient(90deg, #2563EB, #00D4FF);

    color: white;

    font-weight: 600;

    cursor: pointer;

    transition: .35s;

    box-shadow: 0 10px 25px rgba(37, 99, 235, .35);

}

.btn:hover,
button:hover {

    transform: translateY(-4px);

    box-shadow: 0 15px 30px rgba(0, 212, 255, .35);

}

.stat-card,
.feature-card,
.update-card,
.dash-card,
.card,
.report-card {

    background: rgba(19, 34, 56, .85);

    backdrop-filter: blur(18px);

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

    border-radius: 22px;

    padding: 28px;

    box-shadow: var(--shadow);

    transition: .35s ease;

    position: relative;

    overflow: hidden;

}

.stat-card::before,
.card::before {

    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 3px;

    background: linear-gradient(90deg, #2563EB, #00D4FF);

}

.stat-card:hover,
.card:hover,
.dash-card:hover {

    transform: translateY(-10px);

    border-color: rgba(0, 212, 255, .25);

    box-shadow:
        0 20px 40px rgba(0, 0, 0, .4);

}

.top-bar {

    display: flex;

    justify-content: space-between;

    align-items: center;

    margin-bottom: 25px;

    padding: 18px 25px;

    background: rgba(19, 34, 56, .65);

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

    border-radius: 18px;

    backdrop-filter: blur(14px);

}

.top-left h1 {

    font-size: 28px;
    font-weight: 700;

}

.top-left p {

    color: var(--text2);
    margin-top: 6px;

}

.top-right {

    display: flex;
    align-items: center;
    gap: 20px;

}

.stats-grid {

    display: grid;

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

    gap: 20px;

    margin-bottom: 25px;

}

.stat-card h2 {

    font-size: 32px;
    margin-top: 10px;

}

.stat-card p {

    color: var(--text2);
    font-size: 14px;

}

.stat-card i {

    font-size: 42px;

    color: var(--cyan);

    margin-bottom: 15px;

}

table {

    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;

    background: rgba(17, 34, 64, .75);

    border-radius: 15px;
    overflow: hidden;

}

table th {

    background: #102746;

    color: var(--cyan);

    padding: 16px;

    font-size: 14px;

    text-transform: uppercase;

    letter-spacing: .5px;

}

table td {

    padding: 15px;

    border-bottom: 1px solid rgba(255, 255, 255, .05);

    color: var(--text2);

}

table tr:hover {

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

    transition: .3s;

}

input,
select,
textarea {

    width: 100%;

    padding: 16px;

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

    border-radius: 12px;

    background: #132238;

    color: white;

    font-size: 15px;

    outline: none;

    transition: .3s;

}

input:focus,
textarea:focus,
select:focus {

    border-color: var(--cyan);

    box-shadow: 0 0 15px rgba(0, 212, 255, .18);

}

textarea {

    min-height: 150px;

    resize: none;

}

.map-container,
.map-section {

    width: 100%;
    padding: 25px;

    background: rgba(19, 34, 56, .80);

    border-radius: 20px;

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

    box-shadow: var(--shadow);

}

#map {

    height: 500px;

    border-radius: 15px;

    overflow: hidden;

}

.map-placeholder {

    height: 380px;

    border: 2px dashed rgba(0, 212, 255, .35);

    border-radius: 18px;

    display: flex;

    flex-direction: column;

    justify-content: center;

    align-items: center;

    gap: 15px;

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

}

.map-placeholder i {

    font-size: 65px;

    color: var(--cyan);

}

.camera-grid {

    display: grid;

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

    gap: 20px;

}

.camera-card {

    background: rgba(19, 34, 56, .85);

    border-radius: 18px;

    padding: 18px;

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

    transition: .35s;

}

.camera-card:hover {

    transform: translateY(-6px);

    border-color: var(--cyan);

}

.camera-screen {

    height: 220px;

    background: black;

    border: 2px solid var(--cyan);

    border-radius: 12px;

    display: flex;

    justify-content: center;

    align-items: center;

    font-family: monospace;

    font-size: 22px;

    color: #00ff99;

}

.prediction-card {

    background: rgba(19, 34, 56, .88);

    border-radius: 20px;

    padding: 25px;

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

}

.prediction-result {

    margin-top: 20px;

    padding: 18px;

    background: #0D1B2A;

    border-left: 4px solid var(--red);

    border-radius: 12px;

}

.progress {

    width: 100%;
    height: 10px;

    background: #22385a;

    border-radius: 20px;

    overflow: hidden;

    margin-top: 10px;

}

.progress-fill {

    height: 100%;

    background: linear-gradient(90deg, #2563EB, #00D4FF);

    border-radius: 20px;

}

.alert {

    padding: 18px;

    border-radius: 14px;

    margin: 15px 0;

    background: rgba(239, 68, 68, .10);

    border-left: 4px solid var(--red);

    color: white;

}

.success {

    background: rgba(16, 185, 129, .12);

    border-left: 4px solid var(--green);

}

@keyframes fadeUp {

    from {

        opacity: 0;
        transform: translateY(40px);

    }

    to {

        opacity: 1;
        transform: translateY(0);

    }

}

@keyframes glow {

    0% {

        box-shadow: 0 0 5px rgba(0, 212, 255, .2);

    }

    50% {

        box-shadow: 0 0 20px rgba(0, 212, 255, .45);

    }

    100% {

        box-shadow: 0 0 5px rgba(0, 212, 255, .2);

    }

}

.stat-card,
.card,
.dash-card,
.feature-card {

    animation: fadeUp .7s ease;

}

::-webkit-scrollbar {

    width: 10px;

}

::-webkit-scrollbar-track {

    background: #08111F;

}

::-webkit-scrollbar-thumb {

    background: linear-gradient(180deg,
            #2563EB,
            #00D4FF);

    border-radius: 20px;

}

::-webkit-scrollbar-thumb:hover {

    background: linear-gradient(180deg,
            #00D4FF,
            #2563EB);

}

.light-mode {

    background: #F4F7FB;
    color: #111827;

}

.light-mode .navbar,
.light-mode .sidebar {

    background: white;

    border-color: #E5E7EB;

}

.light-mode .card,
.light-mode .stat-card,
.light-mode .dash-card {

    background: white;

    color: #111827;

    border: 1px solid #E5E7EB;

    box-shadow: 0 10px 20px rgba(0, 0, 0, .08);

}

.light-mode table {

    background: white;

}

.light-mode table th {

    background: #2563EB;

    color: white;

}

.light-mode input,
.light-mode textarea,
.light-mode select {

    background: #F9FAFB;

    color: #111827;

    border-color: #D1D5DB;

}

@media(max-width:1200px) {

    .stats-grid {

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

    }

    .cards {

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

    }

}

@media(max-width:992px) {

    .sidebar {

        width: 85px;

        padding: 15px;

    }

    .sidebar h2,
    .sidebar span {

        display: none;

    }

    .main {

        margin-left: 85px;

        width: calc(100% - 85px);

    }

    .top-bar {

        flex-direction: column;

        align-items: flex-start;

        gap: 15px;

    }

}

@media(max-width:768px) {

    .navbar {

        padding: 15px 20px;

        flex-direction: column;

        height: auto;

        gap: 15px;

    }

    .nav-links {

        flex-direction: column;

        gap: 12px;

    }

    .hero {

        padding: 140px 20px 80px;

        height: auto;

    }

    .hero h1 {

        font-size: 36px;

    }

    .stats-grid {

        grid-template-columns: 1fr;

    }

    .cards {

        grid-template-columns: 1fr;

    }

    .camera-grid {

        grid-template-columns: 1fr;

    }

    .main {

        padding: 20px;

        margin-left: 0;

        width: 100%;

    }

    .sidebar {

        display: none;

    }

}

.section-title {

    font-size: 34px;

    font-weight: 700;

    margin-bottom: 35px;

    color: var(--yellow);

    text-align: center;

}

p {

    line-height: 1.7;

}

a {

    transition: .3s;

}

img {

    max-width: 100%;

    display: block;

}

.shadow-glow {

    animation: glow 2s infinite;

}

/* HOLLYWOOD STYLE POPUP */

.ai-popup {
    position: fixed;
    top: 30px;
    right: 30px;

    width: 360px;
    padding: 22px;

    background: linear-gradient(135deg,
            rgba(10, 15, 35, .95),
            rgba(25, 35, 65, .95));

    border: 1px solid rgba(0, 212, 255, .35);

    border-radius: 18px;

    backdrop-filter: blur(20px);

    box-shadow:
        0 0 25px rgba(0, 212, 255, .25),
        0 0 60px rgba(37, 99, 235, .15);

    z-index: 9999;

    transform: translateX(420px);
    opacity: 0;

    transition: .6s ease;
}

.ai-popup.show {
    transform: translateX(0);
    opacity: 1;
}

.ai-popup h3 {
    font-size: 18px;
    color: #00D4FF;
    margin-bottom: 10px;
}

.ai-popup p {
    color: #E5E7EB;
    font-size: 14px;
    line-height: 1.6;
}

.ai-popup .popup-icon {
    font-size: 38px;
    color: #EF4444;
    margin-bottom: 12px;

    animation: pulseAlert 1.5s infinite;
}

@keyframes pulseAlert {

    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.15);
    }

    100% {
        transform: scale(1);
    }
}

.popup-close {
    position: absolute;
    top: 12px;
    right: 15px;

    color: white;
    cursor: pointer;
    font-size: 18px;
}

.camera-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.camera-card {
    background: #131B2F;
    border: 1px solid #1F2937;
    border-radius: 15px;
    padding: 15px;
    position: relative;
}

.camera-card h3 {
    margin-bottom: 10px;
    font-size: 16px;
}

.camera-card video {
    width: 100%;
    height: 260px;
    object-fit: cover;
    border-radius: 10px;
}

.live-badge {
    position: absolute;
    top: 18px;
    right: 18px;
    background: red;
    color: white;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    animation: pulse 1.2s infinite;
}

@keyframes pulse {
    0% {
        opacity: 1;
    }

    50% {
        opacity: .4;
    }

    100% {
        opacity: 1;
    }
}

.leaders-section {
    display: flex;
    justify-content: center;
    gap: 30px;
    flex-wrap: wrap;
    padding: 40px 20px;
}

.leader-card {
    width: 260px;
    background: #fff;
    border-radius: 15px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
    text-align: center;
    padding: 15px;
    transition: 0.3s;
}

.leader-card:hover {
    transform: translateY(-8px);
}

.leader-card img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    border-radius: 10px;
}

.leader-card h3 {
    margin-top: 15px;
    font-size: 28px;
    font-weight: bold;
}

.leader-card p {
    font-size: 20px;
    color: #444;
}

/* PM CM DGP Vertical Photos */
.leaders-vertical {
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 15px;
    z-index: 3;
}

.leader {
    width: 90px;
    text-align: center;
}

.leader img {
    width: 75px;
    height: 75px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #FFD700;
    background: #fff;
    box-shadow: 0 0 15px rgba(0, 0, 0, .5);
}

.leader-name {
    display: block;
    margin-top: 6px;
    font-size: 10px;
    font-weight: 700;
    color: #FFD700;
    line-height: 1.2;
}

.leader small {
    display: block;
    font-size: 8px;
    color: #ffffff;
    line-height: 1.2;
}
}

.logo {
    margin-left: 20px;
}

.logo {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}