/* =========================================================
   MP TAIPING SMART MONITORING PLATFORM
   MASTER STYLESHEET
   CLEAN / CONSOLIDATED VERSION
   PURPLE THEME
   INDEX + DASHBOARD
   ========================================================= */


/* =========================================================
   01. ROOT / DESIGN TOKENS
   ========================================================= */

:root {

    /* ---------- Brand ---------- */

    --purple-950: #120622;
    --purple-900: #18082e;
    --purple-850: #210b3d;
    --purple-800: #2a0d4d;
    --purple-700: #35115d;
    --purple-600: #43156f;

    --purple-accent: #7b2cbf;
    --purple-light: #9d4edd;
    --purple-soft: #c77dff;


    /* ---------- Asset Colours ---------- */

    --orange: #ff9d3f;
    --green: #35d58a;
    --blue: #4da3ff;
    --yellow: #ffd84d;

    --white: #ffffff;


    /* ---------- Text ---------- */

    --text: #ffffff;
    --text-soft: rgba(255,255,255,0.82);
    --text-muted: rgba(255,255,255,0.56);
    --text-faint: rgba(255,255,255,0.38);


    /* ---------- Glass ---------- */

    --glass: rgba(255,255,255,0.055);
    --glass-light: rgba(255,255,255,0.075);
    --glass-strong: rgba(255,255,255,0.11);


    /* ---------- Borders ---------- */

    --border: rgba(255,255,255,0.13);
    --border-light: rgba(255,255,255,0.19);


    /* ---------- Shadows ---------- */

    --shadow:
        0 12px 35px rgba(0,0,0,0.28);

    --shadow-soft:
        0 6px 22px rgba(0,0,0,0.20);


    /* ---------- Radius ---------- */

    --radius: 14px;
    --radius-small: 10px;


    /* ---------- Dashboard Dimensions ---------- */

    --desktop-header-height: 78px;
    --desktop-nav-height: 52px;

    --tv-header-height: 82px;
    --tv-nav-height: 54px;

}


/* =========================================================
   02. RESET / GLOBAL
   ========================================================= */

*,
*::before,
*::after {
    box-sizing: border-box;
}


html {
    margin: 0;
    padding: 0;

    width: 100%;
    min-height: 100%;

    scroll-behavior: smooth;
}


body {
    margin: 0;
    padding: 0;

    width: 100%;
    min-height: 100vh;

    font-family:
        "Inter",
        "Segoe UI",
        Arial,
        sans-serif;

    color: var(--text);

    background:
        var(--purple-950);

    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}


button,
input,
select,
textarea {
    font: inherit;
}


button {
    border: 0;
    outline: none;
}


button:focus-visible {
    outline:
        2px solid
        var(--purple-soft);

    outline-offset: 2px;
}


a {
    color: inherit;
    text-decoration: none;
}


img {
    max-width: 100%;
    display: block;
}


h1,
h2,
h3,
h4,
h5,
h6,
p {
    margin-top: 0;
}


ul,
ol {
    margin: 0;
    padding: 0;
}


/* =========================================================
   03. LANDING PAGE
   ========================================================= */

.landing-page {

    position: relative;

    width: 100%;
    min-height: 100vh;

    display: flex;
    flex-direction: column;

    overflow: hidden;

    background:

        radial-gradient(
            circle at 82% 18%,
            rgba(123,44,191,0.30),
            transparent 36%
        ),

        radial-gradient(
            circle at 10% 80%,
            rgba(67,21,111,0.32),
            transparent 35%
        ),

        linear-gradient(
            135deg,
            #160721 0%,
            #24103f 50%,
            #180927 100%
        );
}


.landing-page::before {

    content: "";

    position: absolute;

    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,0.12),
            transparent 50%,
            rgba(0,0,0,0.12)
        );
}


/* =========================================================
   04. LANDING HEADER
   ========================================================= */

.landing-header {

    position: relative;
    z-index: 10;

    width: 100%;
    min-height: 110px;

    padding:
        20px 5vw;

    display: flex;

    align-items: center;
    justify-content: space-between;

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

    background:
        rgba(24,8,39,0.55);

    backdrop-filter:
        blur(16px);
}


.brand-area {

    display: flex;

    align-items: center;

    gap: 18px;
}


.mpt-logo {

    width: 68px;
    height: 68px;

    object-fit: contain;
}


.brand-text {

    display: flex;
    flex-direction: column;
}


.brand-title {

    font-size:
        clamp(20px, 1.55vw, 28px);

    font-weight: 700;

    line-height: 1.15;

    letter-spacing:
        0.01em;
}


.brand-subtitle {

    margin-top: 6px;

    font-size:
        clamp(12px, 0.85vw, 16px);

    color:
        var(--text-muted);

    text-transform: uppercase;

    letter-spacing:
        0.10em;

    line-height: 1.2;
}


/* =========================================================
   05. LANDING CLOCK / ACTIONS
   ========================================================= */

.landing-header-actions {

    display: flex;

    align-items: center;

    gap: 16px;
}


.landing-clock {

    min-width: 170px;

    display: flex;

    flex-direction: column;

    align-items: flex-end;
}


.landing-clock strong {

    font-size:
        clamp(24px, 2vw, 34px);

    line-height: 1;

    font-weight: 700;

    letter-spacing:
        0.02em;
}


.landing-clock span {

    margin-top: 6px;

    font-size:
        clamp(12px, 0.85vw, 16px);

    line-height: 1;

    color:
        var(--text-muted);
}


.fullscreen-button {

    width: 48px;
    height: 48px;

    display: flex;

    align-items: center;
    justify-content: center;

    color:
        var(--text);

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

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

    border-radius: 10px;

    cursor: pointer;

    font-size: 22px;

    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        transform 0.2s ease;
}


.fullscreen-button:hover {

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

    border-color:
        var(--border-light);

    transform:
        translateY(-1px);
}


/* =========================================================
   06. LANDING HERO
   ========================================================= */

.landing-hero {

    position: relative;
    z-index: 2;

    flex: 1;

    width: 100%;

    display: flex;

    align-items: center;
    justify-content: center;

    padding:
        55px 7vw 65px;
}


.hero-content {

    width: 100%;
    max-width: 1320px;
}


.hero-kicker {

    display: inline-block;

    margin-bottom: 10px;

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

    letter-spacing:
        0.14em;

    color:
        rgba(255,255,255,0.52);
}


.hero-content h1 {

    margin:
        0 0 12px;

    font-size:
        clamp(42px, 5vw, 72px);

    line-height: 1;

    font-weight: 700;
}


.hero-content > p {

    max-width: 700px;

    margin:
        0 0 34px;

    font-size:
        clamp(16px, 1.35vw, 20px);

    line-height: 1.55;

    color:
        var(--text-muted);
}


/* =========================================================
   07. LANDING INFORMATION CARDS
   ========================================================= */

.landing-info-grid {

    width: 100%;

    display: grid;

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

    gap: 22px;
}


.landing-info-card {

    min-width: 0;
    min-height: 220px;

    display: flex;

    align-items: flex-start;

    gap: 20px;

    padding: 26px;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,0.085),
            rgba(255,255,255,0.035)
        );

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

    border-radius:
        var(--radius);

    box-shadow:
        var(--shadow-soft);

    backdrop-filter:
        blur(12px);
}


.landing-card-icon {

    width: 58px;
    height: 58px;

    flex: 0 0 58px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 14px;

    color:
        var(--purple-soft);

    background:
        rgba(157, 78, 221, 0.18);

    border:
        1px solid
        rgba(199, 125, 255, 0.20);

    font-size: 26px;

    font-weight: 600;
}


/* =====================================================
   CARD CONTENT
===================================================== */

.landing-card-content {

    min-width: 0;

    flex: 1;
}


/* =====================================================
   CARD TITLE
===================================================== */

.landing-card-content h2 {

    margin:
        0 0 16px;

    font-size:
        clamp(21px, 1.6vw, 27px);

    line-height: 1.2;

    font-weight: 700;
}


/* =====================================================
   BULLET LIST
===================================================== */

.landing-card-content ul {

    list-style: none;

    margin: 0;
    padding: 0;
}


/* =====================================================
   BULLET CONTENT
===================================================== */

.landing-card-content li {

    position: relative;

    margin-bottom: 11px;

    padding-left: 19px;

    font-size:
        clamp(15px, 1.05vw, 18px);

    line-height: 1.55;

    color:
        var(--text-muted);
}


.landing-card-content li:last-child {

    margin-bottom: 0;
}


/* =====================================================
   BULLET DOT
===================================================== */

.landing-card-content li::before {

    content: "";

    position: absolute;

    left: 0;
    top: 10px;

    width: 6px;
    height: 6px;

    border-radius: 50%;

    background:
        var(--purple-light);
}
/* =========================================================
   08. LANDING ACCESS BUTTON
   ========================================================= */

.landing-access {

    margin-top: 28px;

    display: flex;

    justify-content: center;
}


.access-platform-button {

    min-height: 56px;

    display: inline-flex;

    align-items: center;

    gap: 30px;

    padding:
        0 24px 0 26px;

    color:
        #ffffff;

    background:
        linear-gradient(
            135deg,
            #6f1fb4,
            #8b3dca
        );

    border:
        1px solid
        rgba(199,125,255,0.32);

    border-radius: 10px;

    box-shadow:
        0 10px 28px
        rgba(70,20,100,0.35);

    cursor: pointer;

    font-size:
        clamp(14px, 0.9vw, 17px);

    font-weight: 600;

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}


.access-platform-button:hover {

    transform:
        translateY(-2px);

    box-shadow:
        0 14px 32px
        rgba(70,20,100,0.48);
}


.access-arrow {
    font-size: 22px;
}


/* =========================================================
   09. LANDING FOOTER
   ========================================================= */

.landing-footer {

    position: relative;
    z-index: 5;

    min-height: 52px;

    display: flex;

    align-items: center;
    justify-content: center;

    gap: 12px;

    padding:
        10px 20px;

    border-top:
        1px solid
        rgba(255,255,255,0.08);

    color:
        var(--text-faint);

    font-size: 9px;
}


.footer-brand {

    display: flex;

    align-items: center;

    gap: 6px;
}


.footer-brand img {

    width: 62px;
    height: auto;

    opacity: 0.75;
}


.footer-divider {
    opacity: 0.35;
}


.footer-version {

    padding:
        3px 7px;

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

    border-radius: 5px;
}


/* =========================================================
   10. DASHBOARD CONTAINER
   ========================================================= */

.dashboard-container {

    width: 100%;
    min-height: 100vh;

    overflow-x: hidden;

    background:

        radial-gradient(
            circle at 80% 5%,
            rgba(123,44,191,0.20),
            transparent 32%
        ),

        radial-gradient(
            circle at 10% 50%,
            rgba(67,21,111,0.16),
            transparent 38%
        ),

        linear-gradient(
            135deg,
            #140620 0%,
            #210b3b 48%,
            #170725 100%
        );
}


/* =========================================================
   11. DASHBOARD HEADER
   ========================================================= */

.dashboard-header {

    position: sticky;

    top: 0;

    z-index: 1000;

    width: 100%;

    min-height: 78px;
    height: 78px;

    display: flex;

    align-items: center;
    justify-content: space-between;

    padding:
        10px 24px;

    background:
        rgba(20,6,32,0.94);

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

    backdrop-filter:
        blur(18px);
}


.dashboard-brand {

    min-width: 0;

    display: flex;

    align-items: center;

    gap: 11px;
}


.dashboard-mpt-logo {

    width: 44px;
    height: 44px;

    object-fit: contain;
}


.dashboard-brand-text {

    min-width: 0;

    display: flex;

    flex-direction: column;
}


.dashboard-brand-title {

    font-size: 19px;

    line-height: 1.15;

    font-weight: 700;

    white-space: nowrap;

    overflow: hidden;

    text-overflow: ellipsis;
}


.dashboard-brand-subtitle {

    margin-top: 5px;

    font-size: 10px;

    line-height: 1.2;

    color:
        var(--text-muted);

    text-transform: uppercase;

    letter-spacing:
        0.16em;

    white-space: nowrap;
}


/* =========================================================
   12. DASHBOARD HEADER WIDGETS
   ========================================================= */

.dashboard-header-right {

    flex-shrink: 0;

    display: flex;

    align-items: center;

    gap: 7px;
}


.header-widget {

    min-width: 115px;
    min-height: 48px;

    display: flex;

    align-items: center;

    gap: 8px;

    padding:
        6px 10px;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,0.065),
            rgba(255,255,255,0.035)
        );

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

    border-radius: 11px;
}


.widget-icon {

    width: 28px;
    height: 28px;

    flex: 0 0 28px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 9px;

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

    font-size: 13px;
}


.widget-content {

    min-width: 0;

    display: flex;

    flex-direction: column;
}


.widget-label {

    font-size: 8px;

    letter-spacing:
        0.12em;

    color:
        var(--text-faint);
}


.widget-content strong {

    margin-top: 3px;

    font-size: 13px;

    line-height: 1.1;
}


.widget-content small {

    margin-top: 2px;

    font-size: 8px;

    color:
        var(--text-muted);
}


/* =========================================================
   13. DATE / TIME WIDGET
   ========================================================= */

.datetime-widget {

    min-width: 120px;

    display: flex;

    align-items: center;
    justify-content: center;

    gap: 9px;

    text-align: center;
}


.datetime-widget .widget-icon {

    width: 30px;
    height: 30px;

    flex: 0 0 30px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 8px;

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

    font-size: 15px;
}


.datetime-widget .widget-content {

    min-width: 0;

    display: flex;

    flex-direction: column;

    align-items: center;
    justify-content: center;
}


.datetime-time {

    margin: 0;

    font-size: 13px;

    line-height: 1.1;

    font-weight: 600;

    white-space: nowrap;
}


.datetime-date {

    margin-top: 4px;

    font-size: 8px;

    line-height: 1;

    color:
        var(--text-muted);

    white-space: nowrap;
}


/* =========================================================
   14. NAVIGATION
   ========================================================= */

.dashboard-nav {

    position: sticky;

    top: 78px;

    z-index: 900;

    width: 100%;

    min-height: 52px;
    height: 52px;

    display: flex;

    align-items: center;

    gap: 5px;

    padding:
        5px 24px;

    background:
        rgba(29,10,48,0.90);

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

    backdrop-filter:
        blur(16px);
}


.nav-item,
.nav-system-item {

    height: 36px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 8px;

    padding:
        0 12px;

    color:
        rgba(255,255,255,0.60);

    background:
        transparent;

    border-radius: 9px;

    cursor: pointer;

    font-size: 11px;

    font-weight: 500;

    white-space: nowrap;

    transition:
        color 0.2s ease,
        background 0.2s ease;
}


.nav-item:hover,
.nav-system-item:hover {

    color: #ffffff;

    background:
        rgba(255,255,255,0.065);
}


.nav-item.active {

    color: #ffffff;

    background:
        rgba(157,78,221,0.20);

    border:
        1px solid
        rgba(199,125,255,0.14);
}


.nav-icon {
    font-size: 12px;
}


.system-navigation {

    display: flex;

    align-items: center;

    gap: 3px;
}


.nav-dot {

    width: 7px;
    height: 7px;

    flex: 0 0 7px;

    border-radius: 50%;
}


.nav-dot.orange,
.legend-marker.orange {
    background: var(--orange);
}


.nav-dot.green,
.legend-marker.green {
    background: var(--green);
}


.nav-dot.blue,
.legend-marker.blue {
    background: var(--blue);
}


.system-dropdown-wrapper {
    position: relative;
}


.dropdown-arrow {

    margin-left: 2px;

    font-size: 9px;

    color:
        var(--text-faint);
}


/* =========================================================
   15. SYSTEM DROPDOWN
   ========================================================= */

.system-dropdown {

    position: absolute;

    top:
        calc(100% + 7px);

    left: 0;

    z-index: 2000;

    min-width: 170px;

    padding: 6px;

    display: none;

    background:
        rgba(30,10,47,0.98);

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

    border-radius: 9px;

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

    backdrop-filter:
        blur(16px);
}


.system-dropdown.open {
    display: block;
}


.dropdown-option {

    width: 100%;

    padding:
        9px 10px;

    color:
        var(--text-soft);

    background:
        transparent;

    border-radius: 6px;

    text-align: left;

    cursor: pointer;

    font-size: 10px;
}


.dropdown-option:hover {

    color: #ffffff;

    background:
        rgba(255,255,255,0.07);
}


/* =========================================================
   16. MAIN DASHBOARD
   ========================================================= */

.dashboard-main {

    width: 100%;

    padding:
        18px 24px 20px;
}


.dashboard-page-header {

    margin-bottom: 12px;
}


.dashboard-page-header h1 {

    margin:
        0 0 3px;

    font-size: 24px;

    line-height: 1.1;

    font-weight: 700;
}


.dashboard-page-header p {

    margin: 0;

    font-size: 11px;

    color:
        var(--text-muted);
}


/* =========================================================
   17. ASSET SUMMARY
   ========================================================= */

.asset-summary {

    width: 100%;

    display: grid;

    grid-template-columns:
        repeat(6, minmax(0, 1fr));

    gap: 9px;

    margin-bottom: 12px;
}


.summary-card {

    position: relative;

    min-width: 0;
    min-height: 72px;

    display: flex;

    align-items: center;

    gap: 9px;

    padding:
        10px 12px;

    text-align: left;

    color: #ffffff;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,0.085),
            rgba(255,255,255,0.035)
        );

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

    border-radius: 11px;

    cursor: pointer;

    box-shadow:
        var(--shadow-soft);

    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        background 0.2s ease;
}


.summary-card:hover {

    transform:
        translateY(-2px);

    border-color:
        var(--border-light);

    background:
        rgba(255,255,255,0.085);
}


.summary-card.active {

    border-color:
        rgba(199,125,255,0.55);

    background:
        linear-gradient(
            145deg,
            rgba(123,44,191,0.28),
            rgba(255,255,255,0.055)
        );
}


.summary-icon {

    width: 32px;
    height: 32px;

    flex: 0 0 32px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 10px;

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

    font-size: 11px;
}


.summary-icon.white {
    color: #ffffff;
}


.summary-icon.orange {

    color: var(--orange);

    background:
        rgba(255,157,63,0.13);
}


.summary-icon.black {

    color: #ffffff;

    background:
        rgba(0,0,0,0.24);
}


.summary-icon.green {

    color: var(--green);

    background:
        rgba(53,213,138,0.13);
}


.summary-icon.blue {

    color: var(--blue);

    background:
        rgba(77,163,255,0.13);
}


.summary-icon.yellow {

    color: var(--yellow);

    background:
        rgba(255,216,77,0.13);
}


.summary-content {

    min-width: 0;

    display: flex;

    flex-direction: column;
}


.summary-content span {

    font-size: 8px;

    letter-spacing:
        0.12em;

    color:
        var(--text-faint);

    white-space: nowrap;

    overflow: hidden;

    text-overflow: ellipsis;
}


.summary-content strong {

    margin-top: 3px;

    font-size: 24px;

    line-height: 1;

    font-weight: 700;
}


/* =========================================================
   18. MAIN CONTENT GRID
   ========================================================= */

.dashboard-content-grid {

    width: 100%;

    display: grid;

    grid-template-columns:
        minmax(270px, 0.78fr)
        minmax(450px, 1.55fr)
        minmax(300px, 0.90fr);

    gap: 12px;

    align-items: stretch;
}


/* =========================================================
   19. GLASS PANELS
   ========================================================= */

.glass-panel {

    min-width: 0;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,0.065),
            rgba(255,255,255,0.035)
        );

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

    border-radius:
        var(--radius);

    overflow: hidden;

    box-shadow:
        var(--shadow);

    backdrop-filter:
        blur(10px);
}


.dashboard-card {

    min-height: 0;
}


/* =========================================================
   20. PANEL HEADER
   ========================================================= */

.panel-header {

    min-height: 48px;

    height: 48px;

    display: flex;

    align-items: center;
    justify-content: space-between;

    padding:
        9px 14px;

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

    background:
        rgba(255,255,255,0.025);
}


.panel-header h2 {

    margin: 0;

    font-size: 14px;

    font-weight: 700;
}


.panel-filter-label {

    min-height: 30px;

    display: flex;

    align-items: center;

    gap: 5px;

    padding:
        0 14px;

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

    font-size: 8px;
}


.panel-filter-label span {

    color:
        var(--text-faint);

    letter-spacing:
        0.08em;
}


.panel-filter-label strong {

    color:
        var(--text-muted);

    font-size: 8px;

    font-weight: 600;
}


/* =========================================================
   21. LOCATION LIST
   ========================================================= */

.location-list {

    height: calc(100% - 78px);

    max-height: none;

    overflow-y: auto;
}


.location-list::-webkit-scrollbar {
    width: 5px;
}


.location-list::-webkit-scrollbar-thumb {

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

    border-radius: 10px;
}


.location-list > * {
    width: 100%;
}


.location-item {

    width: 100%;

    min-height: 52px;

    display: flex;

    align-items: center;

    gap: 9px;

    padding:
        8px 15px;

    color: #ffffff;

    background:
        transparent;

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

    cursor: pointer;

    text-align: left;

    transition:
        background 0.2s ease;
}


.location-item:hover {

    background:
        rgba(255,255,255,0.055);
}


.location-item.selected {

    background:
        rgba(123,44,191,0.20);
}


.location-status {

    width: 8px;
    height: 8px;

    flex: 0 0 8px;

    border-radius: 50%;

    background:
        var(--orange);

    box-shadow:
        0 0 0 3px
        rgba(255,255,255,0.035);
}


.location-item-content {

    min-width: 0;

    display: flex;

    flex-direction: column;
}


.location-item-content strong {

    overflow: hidden;

    white-space: nowrap;

    text-overflow: ellipsis;

    font-size: 12px;

    font-weight: 600;
}


.location-item-content small {

    margin-top: 4px;

    font-size: 9px;

    color:
        var(--text-muted);
}


.empty-state {

    min-height: 120px;

    display: flex;

    align-items: center;

    justify-content: center;

    padding: 20px;

    text-align: center;

    color:
        var(--text-faint);

    font-size: 10px;
}


/* =========================================================
   22. MAP
   ========================================================= */

.map-card {

    position: relative;

    min-height: 0;
}


.map-container {

    width: 100%;
    height: 100%;

    min-height: 0;

    background:
        #ddd;
}


#map {

    width: 100%;
    height: 100%;

    min-height: 0;
}


.leaflet-container {

    width: 100%;
    height: 100%;

    min-height: 0;

    font-family:
        "Inter",
        "Segoe UI",
        Arial,
        sans-serif;
}


.leaflet-control-zoom {

    display: none !important;
}


/* =========================================================
   23. MAP CONTROL
   ========================================================= */

.map-control {

    min-height: 30px;

    padding:
        0 11px;

    color:
        var(--text-muted);

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

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

    border-radius: 7px;

    cursor: pointer;

    font-size: 9px;
}


.map-control:hover {

    color: #ffffff;

    background:
        rgba(255,255,255,0.10);
}


/* =========================================================
   24. MAP LEGEND
   ========================================================= */

.map-legend {

    position: absolute;

    left: 16px;
    bottom: 16px;

    z-index: 500;

    width: 145px;
    min-width: 145px;

    padding:
        9px 10px;

    background:
        rgba(24,10,38,0.90);

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

    border-radius: 9px;

    box-shadow:
        0 8px 22px
        rgba(0,0,0,0.28);

    backdrop-filter:
        blur(10px);
}


.legend-title {

    margin-bottom: 7px;

    font-size: 9px;

    font-weight: 700;
}


.legend-row {

    display: grid;

    grid-template-columns:
        16px 1fr;

    align-items: center;

    gap: 5px;

    margin-top: 4px;

    font-size: 8px;

    color:
        rgba(255,255,255,0.72);
}


.legend-header {

    margin-top: 0;

    padding-bottom: 5px;

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

    color:
        var(--text-faint);

    font-size: 7px;
}


.legend-marker {

    width: 7px;
    height: 7px;

    display: inline-block;

    border-radius: 50%;

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


.legend-marker.black {

    background:
        #111111;
}


.legend-marker.yellow {

    background:
        var(--yellow);
}


.legend-marker.blinking {

    animation:
        markerBlink 1.4s infinite;
}


@keyframes markerBlink {

    0%,
    100% {

        opacity: 1;

        box-shadow:
            0 0 0 0
            rgba(255,216,77,0.55);
    }

    50% {

        opacity: 0.55;

        box-shadow:
            0 0 0 7px
            rgba(255,216,77,0.04);
    }
}


/* =========================================================
   25. CUSTOM MAP MARKERS
   ========================================================= */

.custom-marker-wrapper {

    background:
        transparent !important;

    border: 0 !important;
}


.custom-map-marker {

    width: 18px;
    height: 18px;

    display: flex;

    align-items: center;
    justify-content: center;

    border:
        2px solid
        rgba(255,255,255,0.92);

    border-radius: 50%;

    box-shadow:
        0 2px 8px
        rgba(0,0,0,0.45);
}


.custom-map-marker span {

    width: 5px;
    height: 5px;

    border-radius: 50%;

    background:
        rgba(255,255,255,0.95);
}


.marker-orange {
    background: var(--orange);
}


.marker-black {
    background: #111111;
}


.marker-green {
    background: var(--green);
}


.marker-blue {
    background: var(--blue);
}


.marker-yellow {
    background: var(--yellow);
}


/* =========================================================
   26. ICC MAP MARKER — PULSE
   ========================================================= */

.marker-icc-blink {
    position: relative;
}


.marker-icc-blink::before {

    content: "";

    position: absolute;

    inset: -5px;

    border-radius: 50%;

    border:
        2px solid
        rgba(255,216,77,0.75);

    animation:
        iccPulse 1.4s infinite;
}


.marker-icc-blink span {

    position: relative;

    z-index: 2;
}


@keyframes iccPulse {

    0% {

        opacity: 0.9;

        transform:
            scale(0.85);
    }

    70% {

        opacity: 0;

        transform:
            scale(1.7);
    }

    100% {

        opacity: 0;

        transform:
            scale(1.7);
    }
}


/* =========================================================
   27. LEAFLET TOOLTIP
   ========================================================= */

.leaflet-tooltip {

    padding:
        6px 9px !important;

    color:
        #ffffff !important;

    background:
        rgba(24,10,38,0.96) !important;

    border:
        1px solid
        rgba(255,255,255,0.14) !important;

    border-radius:
        7px !important;

    box-shadow:
        0 6px 20px
        rgba(0,0,0,0.30) !important;

    font-size: 10px;
}


.leaflet-tooltip::before {

    border-top-color:
        rgba(24,10,38,0.96) !important;
}


/* =========================================================
   28. ASSET DETAILS
   ========================================================= */

.asset-details-content {

    width: 100%;
    height: calc(100% - 48px);

    min-height: 0;

    overflow: auto;
}


.asset-details-table-wrapper {

    width: 100%;

    overflow-x: auto;

    -webkit-overflow-scrolling: touch;
}


.asset-details-table {

    width: 100%;

    border-collapse:
        collapse;

    font-size: 10px;
}


.asset-details-table th {

    padding:
        9px 11px;

    text-align: left;

    font-size: 8px;

    font-weight: 600;

    letter-spacing:
        0.04em;

    color:
        var(--text-faint);

    text-transform: uppercase;

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

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


.asset-details-table td {

    padding:
        9px 11px;

    color:
        var(--text-soft);

    font-size: 9px;

    border-bottom:
        1px solid
        rgba(255,255,255,0.045);
}


.asset-details-table tbody tr:hover {

    background:
        rgba(255,255,255,0.035);
}

/* =========================================================
   ASSET DETAIL GROUP HEADER
========================================================= */

.asset-detail-group-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    width: 100%;

    padding: 10px 12px;

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

    letter-spacing: 0.5px;

    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}


/* GROUP NAME */

.asset-detail-group-title {
    color: #ffffff;

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

    letter-spacing: 0.6px;
}


/* ASSET COUNT */

.asset-detail-group-count {
    color: rgba(255, 255, 255, 0.55);

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

    letter-spacing: 0.8px;

    white-space: nowrap;
}


/* =========================================================
   29. SYSTEM MODAL
   ========================================================= */

.system-modal-overlay {

    position: fixed;

    inset: 0;

    z-index: 5000;

    display: none;

    align-items: center;
    justify-content: center;

    padding: 20px;

    background:
        rgba(8,3,15,0.72);

    backdrop-filter:
        blur(8px);
}


.system-modal-overlay.open {
    display: flex;
}


.system-modal {

    position: relative;

    width: 100%;
    max-width: 420px;

    padding: 28px;

    text-align: center;

    background:
        linear-gradient(
            145deg,
            #32104f,
            #1b092d
        );

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

    border-radius:
        16px;

    box-shadow:
        0 25px 70px
        rgba(0,0,0,0.50);
}


.modal-close {

    position: absolute;

    top: 12px;
    right: 12px;

    width: 30px;
    height: 30px;

    color:
        var(--text-muted);

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

    border-radius: 7px;

    cursor: pointer;

    font-size: 20px;
}


.modal-icon {

    width: 48px;
    height: 48px;

    margin:
        0 auto 15px;

    display: flex;

    align-items: center;
    justify-content: center;

    color:
        var(--purple-soft);

    background:
        rgba(157,78,221,0.16);

    border-radius: 12px;

    font-size: 20px;
}


.modal-kicker {

    font-size: 8px;

    letter-spacing:
        0.15em;

    color:
        var(--text-faint);
}


.system-modal h2 {

    margin:
        8px 0;

    font-size: 20px;
}


.system-modal p {

    margin:
        0 0 22px;

    font-size: 11px;

    line-height: 1.5;

    color:
        var(--text-muted);
}


.modal-actions {

    display: flex;

    justify-content: center;

    gap: 10px;
}


.modal-button {

    min-width: 100px;
    min-height: 38px;

    padding:
        0 16px;

    border-radius: 8px;

    cursor: pointer;

    font-size: 10px;

    font-weight: 600;
}


.modal-cancel {

    color:
        var(--text-soft);

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

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


.modal-proceed {

    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            #7023ad,
            #9347ce
        );
}


/* =========================================================
   30. DASHBOARD FOOTER
   ========================================================= */

.dashboard-footer {

    min-height: 45px;

    display: flex;

    align-items: center;
    justify-content: center;

    gap: 10px;

    padding:
        8px 20px;

    border-top:
        1px solid
        rgba(255,255,255,0.08);

    color:
        var(--text-faint);

    font-size: 8px;
}


.dashboard-footer-brand {

    display: flex;

    align-items: center;

    gap: 6px;
}


.dashboard-footer-brand img {

    width: 65px;
    height: auto;

    opacity: 0.70;
}


.footer-platform-version {

    padding:
        3px 7px;

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

    border-radius: 5px;
}


/* =========================================================
   31. GLOBAL SCROLLBAR
   ========================================================= */

::-webkit-scrollbar {

    width: 7px;
    height: 7px;
}


::-webkit-scrollbar-track {

    background:
        rgba(255,255,255,0.025);
}


::-webkit-scrollbar-thumb {

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

    border-radius: 10px;
}


::-webkit-scrollbar-thumb:hover {

    background:
        rgba(255,255,255,0.24);
}


/* =========================================================
   32. DESKTOP FULL-SCREEN FIT
   1101px+
   Header + Nav + Main + Footer = 100vh
   ========================================================= */

@media (min-width: 1101px) {

    .dashboard-container {

        height: 100vh;
        min-height: 100vh;

        display: flex;

        flex-direction: column;

        overflow: hidden;
    }


    .dashboard-header {

        position: relative;

        flex:
            0 0 var(--desktop-header-height);

        height:
            var(--desktop-header-height);

        min-height:
            var(--desktop-header-height);
    }


    .dashboard-nav {

        position: relative;

        top: auto;

        flex:
            0 0 var(--desktop-nav-height);

        height:
            var(--desktop-nav-height);

        min-height:
            var(--desktop-nav-height);
    }


    .dashboard-main {

        flex:
            1 1 auto;

        min-height: 0;

        display: flex;

        flex-direction: column;

        overflow: hidden;

        padding:
            14px 24px;
    }


    .dashboard-page-header {

        flex: 0 0 auto;

        margin-bottom: 10px;
    }


    .asset-summary {

        flex: 0 0 auto;

        margin-bottom: 10px;
    }


    .dashboard-content-grid {

        flex:
            1 1 auto;

        min-height: 0;

        align-items: stretch;
    }


    .dashboard-content-grid > .glass-panel,
    .dashboard-card {

        height: 100%;

        min-height: 0;
    }


    .location-list {

        height:
            calc(100% - 78px);

        max-height: none;
    }


    .map-card {

        height: 100%;

        min-height: 0;
    }


    .map-container,
    #map,
    .leaflet-container {

        height: 100%;

        min-height: 0;
    }


    .asset-details-card {

        height: 100%;

        min-height: 0;
    }


    .asset-details-content {

        height:
            calc(100% - 48px);

        min-height: 0;
    }


    .dashboard-footer {

        flex:
            0 0 45px;

        height: 45px;
        min-height: 45px;
    }

}


/* =========================================================
   33. LARGE TV
   1600px+
   ========================================================= */

@media (min-width: 1600px) {

    .dashboard-header {

        flex-basis:
            var(--tv-header-height);

        height:
            var(--tv-header-height);

        min-height:
            var(--tv-header-height);

        padding:
            10px 32px;
    }


    .dashboard-nav {

        flex-basis:
            var(--tv-nav-height);

        height:
            var(--tv-nav-height);

        min-height:
            var(--tv-nav-height);

        padding:
            5px 32px;
    }


    .dashboard-main {

        padding:
            16px 32px 14px;
    }


    .dashboard-brand-title {
        font-size: 21px;
    }


    .dashboard-brand-subtitle {

        margin-top: 5px;

        font-size: 11px;
    }


    .dashboard-page-header {

        margin-bottom: 10px;
    }


    .dashboard-page-header h1 {
        font-size: 26px;
    }


    .dashboard-page-header p {
        font-size: 12px;
    }


    .nav-item,
    .nav-system-item {
        font-size: 12px;
    }


    .nav-icon {
        font-size: 13px;
    }


    .summary-card {

        min-height: 70px;
    }


    .summary-content span {
        font-size: 9px;
    }


    .summary-content strong {
        font-size: 26px;
    }


    .panel-header {

        min-height: 48px;
        height: 48px;
    }


    .panel-header h2 {
        font-size: 15px;
    }


    .location-item {

        min-height: 55px;
    }


    .location-item-content strong {
        font-size: 13px;
    }


    .location-item-content small {
        font-size: 10px;
    }


    .location-list {

        height:
            calc(100% - 78px);
    }


    .legend-title {
        font-size: 11px;
    }


    .legend-row {
        font-size: 10px;
    }


    .asset-details-content {

        height:
            calc(100% - 48px);
    }


    .dashboard-footer {

        flex-basis: 45px;

        height: 45px;
        min-height: 45px;
    }

}


/* =========================================================
   34. TABLET
   651px — 1100px
   ========================================================= */

@media (min-width: 651px) and (max-width: 1100px) {

    .dashboard-container {

        min-height: 100vh;

        overflow-x: hidden;
    }


    .dashboard-header {

        position: relative;

        min-height: 82px;
        height: auto;

        padding:
            10px 18px;
    }


    .dashboard-nav {

        position: relative;

        top: auto;

        min-height: 52px;
        height: auto;

        padding:
            6px 18px;

        overflow-x: auto;

        scrollbar-width: none;
    }


    .dashboard-nav::-webkit-scrollbar {
        display: none;
    }


    .dashboard-main {

        padding:
            16px 18px;
    }


    .dashboard-page-header {

        margin-bottom: 12px;
    }


    .dashboard-page-header h1 {
        font-size: 22px;
    }


    .dashboard-page-header p {
        font-size: 10px;
    }


    .dashboard-header-right {

        gap: 6px;

        flex-wrap: wrap;

        justify-content: flex-end;
    }


    .header-widget {

        min-width: 110px;
    }


    .asset-summary {

        grid-template-columns:
            repeat(3, minmax(0, 1fr));

        gap: 9px;

        margin-bottom: 12px;
    }


    .summary-card {

        min-height: 75px;

        padding:
            10px 12px;
    }


    .summary-content strong {
        font-size: 22px;
    }


    .dashboard-content-grid {

        grid-template-columns:
            minmax(240px, 0.7fr)
            minmax(400px, 1.3fr);

        gap: 12px;
    }


    .asset-details-card {

        grid-column:
            1 / -1;
    }


    .dashboard-card {

        min-height: auto;
    }


    .map-container,
    #map {

        height: 400px;
        min-height: 400px;
    }


    .leaflet-container {

        min-height: 400px;
    }


    .asset-details-content {

        min-height: 0;

        height: auto;
    }

}


/* =========================================================
   35. MOBILE
   0 — 650px
   ========================================================= */

@media (max-width: 650px) {

    .dashboard-container {

        min-height: 100vh;

        overflow-x: hidden;
    }


    /* ---------- HEADER ---------- */

    .dashboard-header {

        position: relative;

        min-height: 70px;
        height: auto;

        padding:
            10px 12px;

        gap: 10px;
    }


    .dashboard-brand {

        min-width: 0;

        gap: 9px;
    }


    .dashboard-mpt-logo {

        width: 40px;
        height: 40px;
    }


    .dashboard-brand-text {
        min-width: 0;
    }


    .dashboard-brand-title {

        font-size: 12px;

        white-space: nowrap;

        overflow: hidden;

        text-overflow: ellipsis;
    }


    .dashboard-brand-subtitle {

        margin-top: 2px;

        font-size: 7px;
    }


    .dashboard-header-right {

        flex-shrink: 0;

        gap: 4px;
    }


    .header-widget {

        min-width: auto;
        min-height: 40px;

        padding:
            5px 7px;
    }


    .widget-icon {

        width: 25px;
        height: 25px;

        flex-basis: 25px;

        font-size: 11px;
    }


    .widget-content strong {
        font-size: 10px;
    }


    .widget-label,
    .widget-content small {
        display: none;
    }


    .datetime-widget {
        min-width: 65px;
    }


    .datetime-time {
        font-size: 10px;
    }


    .datetime-date {
        display: none;
    }


    /* ---------- NAVIGATION ---------- */

    .dashboard-nav {

        position: relative;

        top: auto;

        min-height: 46px;
        height: auto;

        padding:
            5px 10px;

        gap: 4px;

        overflow-x: auto;

        scrollbar-width: none;
    }


    .dashboard-nav::-webkit-scrollbar {
        display: none;
    }


    .nav-item,
    .nav-system-item {

        flex-shrink: 0;

        height: 34px;

        padding:
            0 10px;

        font-size: 9px;
    }


    .nav-icon {
        font-size: 10px;
    }


    /* ---------- MAIN ---------- */

    .dashboard-main {

        padding:
            14px 10px 20px;
    }


    .dashboard-page-header {

        margin-bottom: 10px;
    }


    .dashboard-page-header h1 {
        font-size: 20px;
    }


    .dashboard-page-header p {
        font-size: 9px;
    }


    /* ---------- SUMMARY ---------- */

    .asset-summary {

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

        gap: 7px;

        margin-bottom: 10px;
    }


    .summary-card {

        min-height: 70px;

        padding: 9px;

        gap: 7px;
    }


    .summary-icon {

        width: 30px;
        height: 30px;

        flex-basis: 30px;
    }


    .summary-content span {
        font-size: 6px;
    }


    .summary-content strong {
        font-size: 19px;
    }


    /* ---------- CONTENT ---------- */

    .dashboard-content-grid {

        grid-template-columns: 1fr;

        gap: 10px;
    }


    .dashboard-card {

        min-height: auto;

        height: auto;
    }


    /* ---------- LOCATION ---------- */

    .location-list {

        height: auto;

        max-height: 300px;
    }


    .location-item {

        min-height: 48px;

        padding:
            7px 12px;
    }


    .location-item-content strong {
        font-size: 11px;
    }


    .location-item-content small {
        font-size: 8px;
    }


    /* ---------- MAP ---------- */

    .map-container,
    #map {

        height: 360px;

        min-height: 360px;
    }


    .leaflet-container {

        min-height: 360px;
    }


    .map-legend {

        left: 10px;
        bottom: 10px;

        width: 150px;
        min-width: 150px;

        padding:
            8px 10px;
    }


    /* ---------- DETAILS ---------- */

    .asset-details-content {

        height: auto;

        min-height: 0;
    }


    .asset-details-table-wrapper {

        overflow-x: auto;

        -webkit-overflow-scrolling: touch;
    }


    .asset-details-table {

        min-width: 600px;
    }


    /* ---------- MODAL ---------- */

    .system-modal {

        max-width: calc(100vw - 30px);

        padding: 24px 20px;
    }


    /* ---------- LANDING ---------- */

    .landing-header {

        min-height: 82px;

        padding:
            13px 18px;
    }


    .mpt-logo {

        width: 48px;
        height: 48px;
    }


    .brand-area {
        gap: 11px;
    }


    .brand-title {
        font-size: 15px;
    }


    .brand-subtitle {
        font-size: 9px;
    }


    .landing-clock {

        min-width: 105px;
    }


    .landing-clock strong {
        font-size: 18px;
    }


    .landing-clock span {
        font-size: 9px;
    }


    .landing-header-actions {
        gap: 7px;
    }


    .fullscreen-button {

        width: 38px;
        height: 38px;

        font-size: 18px;
    }


    .landing-hero {

        padding:
            35px 18px 40px;
    }


    .hero-content h1 {
        font-size: 36px;
    }


    .hero-content > p {
        font-size: 14px;
    }


    .landing-info-grid {

        grid-template-columns: 1fr;

        gap: 14px;
    }


    .landing-info-card {

        min-height: auto;

        padding: 18px;
    }


    .landing-card-icon {

        width: 44px;
        height: 44px;

        flex-basis: 44px;

        font-size: 19px;
    }


    .landing-card-content h2 {
        font-size: 18px;
    }


    .landing-card-content li {
        font-size: 13px;
    }


    .landing-footer {

        flex-wrap: wrap;

        text-align: center;
    }

}


/* =========================================================
   36. VERY SMALL MOBILE
   420px AND BELOW
   ========================================================= */

@media (max-width: 420px) {

    .dashboard-header {

        flex-wrap: wrap;
    }


    .dashboard-brand {
        flex: 1;
    }


    .dashboard-brand-title {
        font-size: 11px;
    }


    .dashboard-brand-subtitle {
        display: none;
    }


    .dashboard-header-right {

        width: 100%;

        justify-content: flex-end;

        gap: 4px;
    }


    .header-widget {
        padding: 6px;
    }


    .widget-icon {

        width: 29px;
        height: 29px;

        flex-basis: 29px;
    }


    .datetime-widget {
        min-width: 65px;
    }


    .dashboard-nav {
        min-height: 42px;
    }


    .dashboard-main {

        padding:
            12px 8px 18px;
    }


    .asset-summary {
        gap: 6px;
    }


    .summary-card {

        min-height: 66px;

        padding: 8px;

        gap: 8px;
    }


    .summary-content span {
        font-size: 7px;
    }


    .summary-content strong {
        font-size: 18px;
    }


    .summary-icon {

        width: 28px;
        height: 28px;

        flex-basis: 28px;
    }


    .map-container,
    #map {

        height: 320px;

        min-height: 320px;
    }


    .leaflet-container {
        min-height: 320px;
    }


    .map-legend {

        width: 145px;
        min-width: 145px;
    }


    .landing-header {

        padding:
            12px 14px;
    }


    .landing-clock {
        min-width: 90px;
    }


    .landing-clock strong {
        font-size: 16px;
    }


    .landing-clock span {
        font-size: 8px;
    }


    .hero-content h1 {
        font-size: 32px;
    }


    .landing-info-card {

        gap: 12px;

        padding: 15px;
    }

}

/* =========================================================
   37. DASHBOARD TYPOGRAPHY UPGRADE
   Improve readability without changing dashboard structure
   ========================================================= */


/* =========================================================
   DASHBOARD HEADER
   ========================================================= */

.dashboard-brand-title {
    font-size: 20px;
}

.dashboard-brand-subtitle {
    font-size: 11px;
}


.widget-label {
    font-size: 9px;
}


.widget-content strong {
    font-size: 14px;
}


.widget-content small {
    font-size: 9px;
}


.datetime-time {
    font-size: 14px;
}


.datetime-date {
    font-size: 9px;
}


/* =========================================================
   NAVIGATION
   ========================================================= */

.nav-item,
.nav-system-item {
    font-size: 12px;
    font-weight: 600;
}


.nav-icon {
    font-size: 13px;
}


.dropdown-option {
    font-size: 11px;
}


.dropdown-arrow {
    font-size: 10px;
}


/* =========================================================
   PAGE HEADER
   ========================================================= */

.dashboard-page-header h1 {
    font-size: 26px;
}


.dashboard-page-header p {
    font-size: 13px;
}


/* =========================================================
   ASSET SUMMARY
   ========================================================= */

.summary-content span {
    font-size: 9px;
    font-weight: 600;
}


.summary-content strong {
    font-size: 26px;
}


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

.panel-header h2 {
    font-size: 16px;
}


.panel-filter-label {
    font-size: 10px;
}


.panel-filter-label span {
    font-size: 9px;
}


.panel-filter-label strong {
    font-size: 10px;
}


/* =========================================================
   LOCATION LIST
   ========================================================= */

.location-item-content strong {
    font-size: 13px;
    font-weight: 600;
}


.location-item-content small {
    font-size: 10px;
}


.empty-state {
    font-size: 11px;
}


/* =========================================================
   MAP CONTROLS
   ========================================================= */

.map-control {
    font-size: 10px;
}


.legend-title {
    font-size: 11px;
}


.legend-row {
    font-size: 10px;
}


.legend-header {
    font-size: 9px;
}


/* =========================================================
   MAP TOOLTIP
   ========================================================= */

.leaflet-tooltip {
    font-size: 11px;
}


/* =========================================================
   ASSET DETAILS TABLE
   ========================================================= */

.asset-details-table {
    font-size: 11px;
}


.asset-details-table th {
    font-size: 9px;
}


.asset-details-table td {
    font-size: 10px;
}


/* =========================================================
   MODAL
   ========================================================= */

.modal-kicker {
    font-size: 9px;
}


.system-modal h2 {
    font-size: 22px;
}


.system-modal p {
    font-size: 12px;
}


.modal-button {
    font-size: 11px;
}


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

.dashboard-footer {
    font-size: 9px;
}

/* =========================================================
   38. PRINT
   ========================================================= */

@media print {

    body {

        background: #ffffff;

        color: #000000;
    }


    .dashboard-container {

        height: auto;

        display: block;

        overflow: visible;
    }


    .dashboard-header,
    .dashboard-nav {

        position: static;
    }


    .glass-panel,
    .summary-card {

        box-shadow: none;

        border:
            1px solid #ddd;
    }

}

/* =========================================================
  39. DASHBOARD TEXT WEIGHT
   ========================================================= */

.dashboard-brand-title {
    font-weight: 700;
}

.dashboard-brand-subtitle {
    font-weight: 500;
}

.widget-label {
    font-weight: 600;
}

.widget-content strong {
    font-weight: 700;
}

.widget-content small {
    font-weight: 500;
}


/* PAGE HEADER */

.dashboard-page-header h1 {
    font-weight: 700;
}

.dashboard-page-header p {
    font-weight: 500;
}


/* SUMMARY */

.summary-content span {
    font-weight: 600;
}

.summary-content strong {
    font-weight: 700;
}


/* PANEL */

.panel-header h2 {
    font-weight: 700;
}

.panel-filter-label {
    font-weight: 500;
}

.panel-filter-label span {
    font-weight: 500;
}

.panel-filter-label strong {
    font-weight: 600;
}


/* LOCATION */

.location-item-content strong {
    font-weight: 600;
}

.location-item-content small {
    font-weight: 500;
}


/* NAVIGATION */

.nav-item,
.nav-system-item {
    font-weight: 600;
}


/* MAP */

.legend-title {
    font-weight: 700;
}

.legend-row {
    font-weight: 500;
}

.legend-header {
    font-weight: 500;
}


/* TABLE */

.asset-details-table th {
    font-weight: 700;
}

.asset-details-table td {
    font-weight: 500;
}


/* MODAL */

.modal-kicker {
    font-weight: 600;
}

.system-modal h2 {
    font-weight: 700;
}

.system-modal p {
    font-weight: 400;
}

.modal-button {
    font-weight: 600;
}

/* =========================================================
   SOLAR CCTV DROPDOWN — OVERLAY FIX
========================================================= */

.system-dropdown-wrapper {
    position: relative;
    overflow: visible !important;
}

.system-dropdown {
    position: absolute;

    top: calc(100% + 7px);
    left: 0;

    z-index: 9999;

    min-width: 170px;

    display: none;

    padding: 6px;

    background: rgba(30, 10, 47, 0.98);

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

    border-radius: 9px;

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

    backdrop-filter: blur(16px);

    overflow: visible;
}

.system-dropdown.open {
    display: block;
}


/* DESKTOP — dropdown keluar sebagai overlay */
@media (min-width: 651px) {

    .dashboard-nav {
        overflow: visible;
    }

}