/* ===================================================
   CONTEC J&A - STYLESHEET
   100% Fully Responsive Design System (Mobile, Tablet, Desktop, 4K)
   =================================================== */

/* ---------------- RESET & ROOT VARIABLES ---------------- */
:root {
    --primary-red: #ff4757;
    --primary-red-hover: #ff6b81;
    --primary-red-dark: #ee3545;
    --accent-red-glow: rgba(255, 71, 87, 0.45);
    --bg-dark: #08090e;
    --card-bg: rgba(14, 16, 26, 0.9);
    --card-border: rgba(255, 71, 87, 0.22);
    --text-white: #ffffff;
    --text-muted: #a4b0be;
    --font-heading: 'Montserrat', sans-serif;
    --font-body: 'Poppins', sans-serif;
    --transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}

*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

html {
    font-size: 16px;
}

html, body {
    width: 100%;
    min-height: 100%;
    background-color: var(--bg-dark);
    font-family: var(--font-body);
    color: var(--text-white);
    overflow-x: hidden;
}

body {
    height: 100%;
    overflow: hidden;
}

/* ---------------- HERO CONTAINER (MAIN PAGE) ---------------- */
.hero-container {
    position: relative;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    min-height: 100dvh;
    background-color: var(--bg-dark);
    background-image: url('assets/bg.jpg');
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
}

/* Centered Fullscreen Background Video */
.hero-bg-video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    object-fit: cover;
    transform: translate(-50%, -50%);
    z-index: 0;
    pointer-events: none;
    filter: brightness(0.95) contrast(1.05);
}

/* Dark Vignette Overlay */
.bg-overlay {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at center, rgba(8, 9, 15, 0.15) 0%, rgba(5, 6, 10, 0.75) 100%),
                linear-gradient(to bottom, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0.05) 40%, rgba(0, 0, 0, 0.65) 100%);
    pointer-events: none;
    z-index: 1;
}

.ambient-canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 2;
    opacity: 0.65;
}

/* ---------------- TOP NAVIGATION ---------------- */
.top-nav {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding: clamp(14px, 2.5vw, 26px) clamp(16px, 4vw, 45px);
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 50;
}

/* Link: SOBRE NOSOTROS */
.nav-link-btn {
    background: transparent;
    border: none;
    color: #e5e5e5;
    font-family: var(--font-heading);
    font-size: clamp(0.78rem, 1.8vw, 0.95rem);
    font-weight: 800;
    letter-spacing: 0.18em;
    cursor: pointer;
    padding: 8px 10px;
    position: relative;
    transition: var(--transition);
    text-transform: uppercase;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

.nav-link-btn::after {
    content: '';
    position: absolute;
    bottom: 2px;
    left: 10px;
    right: 10px;
    height: 2px;
    background: var(--primary-red);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
    box-shadow: 0 0 10px var(--primary-red);
}

.nav-link-btn:hover {
    color: #ffffff;
    text-shadow: 0 0 12px rgba(255, 255, 255, 0.7);
}

.nav-link-btn:hover::after {
    transform: scaleX(1);
}

/* Center Star Emblem with red vertical line */
.top-emblem {
    display: flex;
    flex-direction: column;
    align-items: center;
    animation: emblemPulse 4s infinite ease-in-out;
}

.star-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    filter: drop-shadow(0 0 6px rgba(255, 71, 87, 0.8));
    transition: var(--transition);
}

.star-icon:hover {
    transform: scale(1.15) rotate(15deg);
}

.emblem-line {
    width: 2px;
    height: clamp(18px, 3vh, 28px);
    background: linear-gradient(to bottom, #ff4757, rgba(255, 71, 87, 0.2));
    margin-top: 2px;
    box-shadow: 0 0 8px rgba(255, 71, 87, 0.7);
}

@keyframes emblemPulse {
    0%, 100% { opacity: 0.9; transform: translateY(0); }
    50% { opacity: 1; transform: translateY(3px); }
}

/* Right: MI PANEL Button (Skewed Red Parallelogram) */
.panel-btn {
    background: linear-gradient(135deg, #ff4757 0%, #e82c3c 100%);
    border: none;
    padding: 7px 18px;
    transform: skewX(-20deg);
    border-radius: 3px;
    cursor: pointer;
    box-shadow: 0 4px 18px rgba(255, 71, 87, 0.45);
    transition: all 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    position: relative;
    overflow: hidden;
    white-space: nowrap;
}

.panel-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 60%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent);
    transform: skewX(-20deg);
    transition: 0.5s;
}

.panel-btn:hover::before {
    left: 140%;
}

.panel-btn:hover {
    transform: skewX(-20deg) scale(1.05);
    box-shadow: 0 6px 30px rgba(255, 71, 87, 0.75);
    background: linear-gradient(135deg, #ff5e6c 0%, #f03444 100%);
}

.panel-btn:active {
    transform: skewX(-20deg) scale(0.98);
}

.panel-btn-content {
    display: inline-block;
    transform: skewX(20deg);
    font-family: var(--font-heading);
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: #ffffff;
    text-transform: uppercase;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
}

/* ---------------- HERO CENTER (MASSIVE TITLE) ---------------- */
.hero-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    width: 92%;
    max-width: 1400px;
    z-index: 30;
    user-select: none;
    padding: 0 10px;
    animation: titleFadeIn 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.main-title {
    font-family: var(--font-heading);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2.4rem, 8.5vw, 8.5rem);
    letter-spacing: -0.01em;
    color: #ffffff;
    text-transform: uppercase;
    line-height: 1.05;
    margin: 0;
    word-break: break-word;
    text-shadow: 
        0 4px 25px rgba(0, 0, 0, 0.95),
        0 10px 50px rgba(0, 0, 0, 0.85),
        0 0 80px rgba(0, 0, 0, 0.7);
    transition: transform 0.3s ease, text-shadow 0.3s ease;
}

.main-title:hover {
    text-shadow: 
        0 4px 25px rgba(0, 0, 0, 0.95),
        0 0 40px rgba(255, 71, 87, 0.35),
        0 0 80px rgba(255, 71, 87, 0.2);
}

/* ------------------------------------------------------------------ */
/* WAVE LETTER ANIMATION - "CONTEC J&A" HERO TITLE                    */
/* ------------------------------------------------------------------ */
.wave-title {
    display: flex;
    align-items: baseline;
    justify-content: center;
    flex-wrap: nowrap;
    white-space: nowrap;
    overflow: visible;
    line-height: 1.05;
}

.wave-letter {
    display: inline-block;
    animation: waveFloat 2.2s ease-in-out infinite;
    animation-delay: calc(var(--i) * 0.12s);
    will-change: transform;
    transition: color 0.3s ease;
}

.wave-space {
    display: inline-block;
    width: 0.28em;
}

/* Slight color accent on the & character */
.wave-letter-amp {
    color: #00e5ff;
    text-shadow: 
        0 0 25px rgba(0, 229, 255, 0.8),
        0 4px 25px rgba(0, 0, 0, 0.95);
    animation: waveFloatAmp 2.2s ease-in-out infinite;
    animation-delay: calc(var(--i) * 0.12s);
}

@keyframes waveFloat {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }
    25% {
        transform: translateY(-14px) rotate(-1.5deg);
    }
    50% {
        transform: translateY(-5px) rotate(0.5deg);
    }
    75% {
        transform: translateY(-10px) rotate(1deg);
    }
}

@keyframes waveFloatAmp {
    0%, 100% {
        transform: translateY(0) rotate(0deg) scale(1);
        color: #00e5ff;
    }
    25% {
        transform: translateY(-16px) rotate(-2deg) scale(1.06);
        color: #ff4757;
    }
    50% {
        transform: translateY(-5px) rotate(1deg) scale(1);
        color: #ffa502;
    }
    75% {
        transform: translateY(-12px) rotate(1.5deg) scale(1.03);
        color: #00e5ff;
    }
}

/* Hover: pause wave on individual letter */
.wave-letter:hover {
    animation-play-state: paused;
    color: #00e5ff;
    text-shadow:
        0 0 20px rgba(0, 229, 255, 0.9),
        0 4px 25px rgba(0, 0, 0, 0.95),
        0 10px 50px rgba(0, 0, 0, 0.85);
}

/* ------------------------------------------------------------------ */
/* MOBILE RESPONSIVE: INDEX HERO & WAVE TITLE (ADAPTED TO ALL SCREENS) */
/* ------------------------------------------------------------------ */

@media (max-width: 768px) {
    /* Container fits 100% of mobile viewport without unwanted scroll */
    .hero-container {
        height: 100vh;
        height: 100dvh;
        min-height: 100dvh;
        width: 100vw;
        max-width: 100vw;
        position: relative;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }

    /* Video background covers whole mobile screen perfectly centered */
    .hero-bg-video {
        width: 100vw;
        height: 100vh;
        height: 100dvh;
        min-width: 100%;
        min-height: 100%;
        object-fit: cover;
        object-position: center center;
    }

    /* Top Navigation bar on mobile */
    .top-nav {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        box-sizing: border-box;
        padding: max(14px, env(safe-area-inset-top, 14px)) max(16px, env(safe-area-inset-right, 16px)) 10px max(16px, env(safe-area-inset-left, 16px));
        display: flex;
        justify-content: space-between;
        align-items: center;
        z-index: 50;
    }

    .nav-link-btn {
        font-size: clamp(0.72rem, 3.4vw, 0.88rem) !important;
        letter-spacing: 0.08em !important;
        padding: 6px 8px;
    }

    .panel-btn {
        padding: 6px 14px;
    }

    .panel-btn-content {
        font-size: clamp(0.72rem, 3.4vw, 0.84rem) !important;
        letter-spacing: 0.04em !important;
    }

    /* Hero Center on Mobile: Perfectly Centered with Dynamic Spacing */
    .hero-center {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 100%;
        max-width: 100vw;
        padding: 0 14px;
        box-sizing: border-box;
        display: flex;
        justify-content: center;
        align-items: center;
        text-align: center;
        z-index: 30;
    }

    .wave-title {
        display: flex;
        align-items: baseline;
        justify-content: center;
        flex-wrap: nowrap;
        white-space: nowrap;
        width: auto;
        max-width: 100%;
        font-size: clamp(2.3rem, 11.2vw, 3.8rem) !important;
        line-height: 1.05;
        letter-spacing: -0.01em;
        margin: 0 auto;
        text-shadow: 
            0 4px 20px rgba(0, 0, 0, 0.95),
            0 10px 40px rgba(0, 0, 0, 0.85),
            0 0 50px rgba(0, 0, 0, 0.7);
    }

    .wave-letter {
        will-change: transform;
    }

    .wave-space {
        width: 0.22em;
    }

    @keyframes waveFloat {
        0%, 100% { transform: translateY(0) rotate(0deg); }
        25% { transform: translateY(-8px) rotate(-1deg); }
        50% { transform: translateY(-3px) rotate(0.5deg); }
        75% { transform: translateY(-6px) rotate(0.8deg); }
    }

    @keyframes waveFloatAmp {
        0%, 100% { transform: translateY(0) rotate(0deg) scale(1); color: #00e5ff; }
        25% { transform: translateY(-9px) rotate(-1.5deg) scale(1.04); color: #ff4757; }
        50% { transform: translateY(-3px) rotate(0.8deg) scale(1); color: #ffa502; }
        75% { transform: translateY(-7px) rotate(1deg) scale(1.02); color: #00e5ff; }
    }

    /* Sound Toggle in bottom corner with safe area */
    .sound-toggle-btn {
        position: fixed;
        right: max(14px, env(safe-area-inset-right, 14px));
        bottom: max(14px, env(safe-area-inset-bottom, 14px));
        width: 38px;
        height: 38px;
        z-index: 50;
    }
}

/* Medium Mobile (iPhone 12/13/14/15/16, Galaxy S21/S22/S23/S24, Pixel: max-width: 430px) */
@media (max-width: 430px) {
    .wave-title {
        font-size: clamp(2.2rem, 11vw, 3.4rem) !important;
    }
}

/* Small Mobile (iPhone SE, Galaxy A series, Moto G: max-width: 375px) */
@media (max-width: 375px) {
    .hero-center {
        padding: 0 8px;
    }

    .wave-title {
        font-size: clamp(1.95rem, 10.6vw, 2.6rem) !important;
    }

    .top-nav {
        padding: max(10px, env(safe-area-inset-top, 10px)) 10px 8px 10px;
    }

    .nav-link-btn {
        font-size: 0.76rem !important;
        letter-spacing: 0.05em !important;
    }

    .panel-btn {
        padding: 5px 10px;
    }

    .panel-btn-content {
        font-size: 0.72rem !important;
    }
}

/* Ultra-compact / Fold cover screens (Galaxy Z Fold, narrow screens: max-width: 320px) */
@media (max-width: 320px) {
    .hero-center {
        padding: 0 4px;
    }

    .wave-title {
        font-size: clamp(1.6rem, 9.8vw, 2.1rem) !important;
    }

    .wave-space {
        width: 0.18em;
    }

    .nav-link-btn {
        font-size: 0.7rem !important;
    }

    .panel-btn-content {
        font-size: 0.68rem !important;
    }
}

/* Landscape Mobile (phones turned horizontally: max-height: 500px) */
@media (max-height: 500px) and (orientation: landscape) {
    .top-nav {
        padding: 6px 20px;
    }

    .hero-center {
        top: 52%;
    }

    .wave-title {
        font-size: clamp(1.8rem, 7vh, 2.8rem) !important;
    }

    .sound-toggle-btn {
        bottom: 10px;
        right: 12px;
        width: 32px;
        height: 32px;
    }
}

@keyframes titleFadeIn {
    0% {
        opacity: 0;
        transform: translate(-50%, -46%) scale(0.96);
    }
    100% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

/* ---------------- FOOTER ---------------- */
.bottom-footer {
    position: absolute;
    bottom: clamp(14px, 3vh, 24px);
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    padding: 0 20px;
    text-align: center;
    z-index: 40;
    pointer-events: auto;
}

.footer-text, .subpage-footer {
    display: none !important;
}

/* Audio / Sound Toggle Button */
.sound-toggle-btn {
    position: absolute;
    right: clamp(16px, 3vw, 35px);
    bottom: -6px;
    width: clamp(34px, 4vw, 40px);
    height: clamp(34px, 4vw, 40px);
    border-radius: 50%;
    background: rgba(16, 18, 28, 0.85);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 71, 87, 0.4);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: clamp(0.85rem, 1.8vw, 1rem);
    transition: var(--transition);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.6);
}

.sound-toggle-btn:hover {
    background: var(--primary-red);
    color: #ffffff;
    box-shadow: 0 0 15px var(--accent-red-glow);
    transform: scale(1.1);
}

/* ---------------- SIDEBAR DRAWER ---------------- */
.drawer-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(4px);
    z-index: 100;
    opacity: 0;
    visibility: hidden;
    transition: var(--transition);
}

.drawer-overlay.active {
    opacity: 1;
    visibility: visible;
}

.side-drawer {
    position: fixed;
    top: 0;
    left: -380px;
    width: 320px;
    max-width: 85vw;
    height: 100vh;
    height: 100dvh;
    background: rgba(11, 13, 22, 0.96);
    backdrop-filter: blur(24px);
    border-right: 1px solid rgba(255, 71, 87, 0.25);
    z-index: 101;
    display: flex;
    flex-direction: column;
    box-shadow: 10px 0 40px rgba(0, 0, 0, 0.8);
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    overflow-y: auto;
}

.side-drawer.active {
    transform: translateX(380px);
}

.drawer-header {
    padding: 22px 18px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.drawer-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--primary-red);
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 1.05rem;
    letter-spacing: 0.08em;
}

.close-drawer-btn {
    background: rgba(255, 255, 255, 0.08);
    border: none;
    color: #fff;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
}

.close-drawer-btn:hover {
    background: var(--primary-red);
    transform: rotate(90deg);
}

.drawer-content {
    padding: 22px 18px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.drawer-subtitle {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--text-muted);
    margin-bottom: 14px;
    font-weight: 600;
}

.drawer-menu {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.drawer-link {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    border-radius: 8px;
    color: #cbd5e1;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.92rem;
    transition: var(--transition);
}

.drawer-link i {
    font-size: 1.05rem;
    width: 22px;
    color: var(--primary-red);
    transition: var(--transition);
}

.drawer-link:hover, .drawer-link.active {
    background: rgba(255, 71, 87, 0.12);
    color: #ffffff;
    transform: translateX(5px);
}

.drawer-divider {
    height: 1px;
    background: rgba(255, 255, 255, 0.08);
    margin: 22px 0;
}

.drawer-socials p {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--text-muted);
    margin-bottom: 12px;
    font-weight: 600;
}

.social-icons {
    display: flex;
    gap: 10px;
}

.social-btn {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.08);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    text-decoration: none;
    transition: var(--transition);
}

.social-btn:hover {
    transform: translateY(-3px);
    border-color: var(--primary-red);
    box-shadow: 0 5px 15px var(--accent-red-glow);
}

.social-btn.whatsapp:hover { background: #25D366; border-color: #25D366; }
.social-btn.telegram:hover { background: #0088cc; border-color: #0088cc; }
.social-btn.discord:hover { background: #5865F2; border-color: #5865F2; }
.social-btn.github:hover { background: #333333; border-color: #ffffff; }

/* ---------------- MODALS (RESPONSIVE) ---------------- */
.modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(4, 5, 10, 0.85);
    backdrop-filter: blur(14px);
    z-index: 300;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(10px, 3vw, 24px);
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.modal-backdrop.active {
    opacity: 1;
    visibility: visible;
}

.modal-card {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: 16px;
    width: 100%;
    max-width: 600px;
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.9), 0 0 35px rgba(255, 71, 87, 0.15);
    overflow: hidden;
    transform: scale(0.94) translateY(15px);
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    max-height: 88vh;
    max-height: 88dvh;
    display: flex;
    flex-direction: column;
}

.modal-backdrop.active .modal-card {
    transform: scale(1) translateY(0);
}

.modal-card > form {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow: hidden;
    height: 100%;
}

.modal-header {
    padding: clamp(14px, 2.2vw, 18px) clamp(18px, 3vw, 24px);
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    flex-shrink: 0;
}

.modal-tag {
    font-family: var(--font-heading);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    color: var(--primary-red);
    text-transform: uppercase;
    display: block;
    margin-bottom: 4px;
}

.modal-title-wrap h2 {
    font-family: var(--font-heading);
    font-size: clamp(1.15rem, 2.5vw, 1.35rem);
    font-weight: 800;
    color: #ffffff;
}

.modal-close {
    background: rgba(255, 255, 255, 0.06);
    border: none;
    color: #ffffff;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    flex-shrink: 0;
}

.modal-close:hover {
    background: var(--primary-red);
    transform: rotate(90deg);
}

.modal-body {
    padding: clamp(16px, 2.5vw, 22px) clamp(18px, 3vw, 26px);
    overflow-y: auto;
    color: #d1d8e0;
    flex: 1;
    min-height: 0;
    -webkit-overflow-scrolling: touch;
}

.modal-body::-webkit-scrollbar {
    width: 6px;
}

.modal-body::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.25);
}

.modal-body::-webkit-scrollbar-thumb {
    background: rgba(255, 71, 87, 0.4);
    border-radius: 6px;
}

/* Modal Footer & Buttons */
.modal-footer {
    padding: 14px 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 12px;
    background: #0d101a;
    flex-shrink: 0;
    z-index: 10;
}

.modal-btn-primary {
    background: linear-gradient(135deg, #ff4757 0%, #ee3545 100%);
    border: none;
    color: #ffffff;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 0.88rem;
    padding: 10px 22px;
    border-radius: 6px;
    cursor: pointer;
    transition: var(--transition);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 4px 14px rgba(255, 71, 87, 0.3);
}

.modal-btn-primary:hover {
    box-shadow: 0 4px 18px var(--accent-red-glow);
    transform: translateY(-2px);
}

.modal-btn-secondary {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #ffffff;
    font-weight: 600;
    font-size: 0.88rem;
    padding: 10px 20px;
    border-radius: 6px;
    cursor: pointer;
    transition: var(--transition);
}

/* Panel / Auth Modal */
.panel-card {
    max-width: 460px;
}

.auth-tabs {
    display: flex;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 8px;
    padding: 4px;
    margin-bottom: 20px;
}

.auth-tab {
    flex: 1;
    background: transparent;
    border: none;
    color: var(--text-muted);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 0.85rem;
    padding: 10px;
    border-radius: 6px;
    cursor: pointer;
    transition: var(--transition);
}

.auth-tab.active {
    background: var(--primary-red);
    color: #ffffff;
    box-shadow: 0 2px 10px var(--accent-red-glow);
}

.auth-form {
    display: none;
    flex-direction: column;
    gap: 15px;
}

.auth-form.active {
    display: flex;
}

.worker-badge-alert {
    background: rgba(255, 177, 66, 0.1);
    border: 1px solid rgba(255, 177, 66, 0.3);
    color: #ffb142;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 0.76rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
}

.worker-mode-tag {
    font-size: 0.74rem;
    color: #2ed573;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 600;
}

.input-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.input-group label {
    font-size: 0.82rem;
    font-weight: 600;
    color: #cbd5e1;
    display: flex;
    align-items: center;
    gap: 8px;
}

.input-group label i {
    color: var(--primary-red);
    font-size: 0.85rem;
}

.input-group input {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    padding: 12px 14px;
    color: #ffffff;
    font-family: var(--font-body);
    font-size: 0.92rem;
    outline: none;
    transition: var(--transition);
}

.input-group input:focus {
    border-color: var(--primary-red);
    background: rgba(255, 71, 87, 0.04);
    box-shadow: 0 0 12px rgba(255, 71, 87, 0.25);
}

.form-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.82rem;
    flex-wrap: wrap;
    gap: 8px;
}

.checkbox-container {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    color: var(--text-muted);
}

.checkbox-container input {
    accent-color: var(--primary-red);
    cursor: pointer;
}

.forgot-link {
    color: var(--primary-red);
    text-decoration: none;
    transition: var(--transition);
}

.submit-auth-btn {
    background: linear-gradient(135deg, #ff4757 0%, #ee3545 100%);
    border: none;
    color: #ffffff;
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 0.92rem;
    letter-spacing: 0.08em;
    padding: 13px;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 6px;
    box-shadow: 0 4px 20px var(--accent-red-glow);
    transition: var(--transition);
}

.submit-auth-btn:hover {
    box-shadow: 0 6px 25px rgba(255, 71, 87, 0.7);
    transform: translateY(-2px);
}

.panel-footer-note {
    justify-content: center;
    font-size: 0.78rem;
    color: var(--text-muted);
    gap: 8px;
}

/* ---------------- TOAST NOTIFICATION ---------------- */
.toast {
    position: fixed;
    bottom: 24px;
    right: 24px;
    background: rgba(17, 20, 32, 0.96);
    border: 1px solid var(--primary-red);
    color: #ffffff;
    padding: 12px 20px;
    border-radius: 8px;
    font-size: 0.88rem;
    font-weight: 600;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.8), 0 0 20px var(--accent-red-glow);
    z-index: 400;
    transform: translateY(100px);
    opacity: 0;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none;
    max-width: 90vw;
}

.toast.show {
    transform: translateY(0);
    opacity: 1;
}

/* ===================================================
   SUBPAGE STYLES (SOBRE NOSOTROS) - COMPACT & STREAMLINED
   =================================================== */

body.page-subpage {
    overflow-y: auto !important;
    overflow-x: hidden;
    height: auto !important;
    min-height: 100vh;
    min-height: 100dvh;
    background-color: var(--bg-dark);
}

.subpage-bg {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.hero-bg-video-subpage {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    object-fit: cover;
    transform: translate(-50%, -50%);
    filter: brightness(0.38) blur(5px);
}

.bg-overlay-subpage {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at center, rgba(8, 9, 15, 0.7) 0%, rgba(5, 6, 10, 0.95) 100%);
}

.subpage-nav {
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    background: rgba(8, 10, 16, 0.92);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(255, 71, 87, 0.18);
    padding: 10px clamp(16px, 3.5vw, 38px);
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 100;
}

.back-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    font-size: clamp(0.76rem, 1.5vw, 0.88rem);
    font-weight: 800;
}

.back-btn i {
    color: var(--primary-red);
    transition: transform 0.2s ease;
}

.back-btn:hover i {
    transform: translateX(-4px);
}

.subpage-content {
    position: relative;
    z-index: 10;
    max-width: 1140px;
    margin: 0 auto;
    padding: clamp(18px, 3vh, 32px) clamp(14px, 2.5vw, 24px) clamp(22px, 3.5vh, 40px) clamp(14px, 2.5vw, 24px);
    display: flex;
    flex-direction: column;
    gap: clamp(16px, 2.5vh, 26px);
}

/* About Hero Compact */
.about-hero {
    text-align: center;
    max-width: 780px;
    margin: 0 auto;
    padding: 0 8px;
}

.badge-tag {
    display: inline-block;
    background: rgba(255, 71, 87, 0.12);
    border: 1px solid rgba(255, 71, 87, 0.35);
    color: var(--primary-red);
    font-family: var(--font-heading);
    font-size: clamp(0.64rem, 1.2vw, 0.72rem);
    font-weight: 800;
    letter-spacing: 0.18em;
    padding: 3px 12px;
    border-radius: 50px;
    margin-bottom: 8px;
    text-transform: uppercase;
}

.about-main-title {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: clamp(1.75rem, 3.8vw, 2.75rem);
    letter-spacing: -0.01em;
    color: #ffffff;
    margin-bottom: 8px;
    line-height: 1.1;
    word-break: break-word;
}

.highlight-red {
    color: var(--primary-red);
    text-shadow: 0 0 25px rgba(255, 71, 87, 0.5);
}

.about-hero-lead {
    font-size: clamp(0.84rem, 1.4vw, 0.95rem);
    line-height: 1.5;
    color: #cbd5e1;
    max-width: 660px;
    margin: 0 auto;
}

/* About Grid Section Compact (Misión, Visión, Valores) */
.about-grid-section {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
    gap: clamp(12px, 1.8vw, 18px);
}

.about-card {
    background: rgba(14, 16, 26, 0.9);
    backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 71, 87, 0.18);
    border-radius: 13px;
    padding: clamp(16px, 2vw, 22px) clamp(16px, 2vw, 20px);
    transition: var(--transition);
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.5);
}

.about-card:hover {
    border-color: var(--primary-red);
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.75), 0 0 20px rgba(255, 71, 87, 0.2);
}

.card-icon-wrap {
    width: 38px;
    height: 38px;
    border-radius: 9px;
    background: rgba(255, 71, 87, 0.12);
    border: 1px solid rgba(255, 71, 87, 0.25);
    color: var(--primary-red);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

.about-card h3 {
    font-family: var(--font-heading);
    font-size: clamp(1.02rem, 1.6vw, 1.18rem);
    font-weight: 800;
    color: #ffffff;
    margin: 0;
}

.about-card p {
    font-size: clamp(0.8rem, 1.15vw, 0.88rem);
    line-height: 1.48;
    color: var(--text-muted);
    margin: 0;
}

.values-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 0;
    margin: 0;
}

.values-list li {
    font-size: clamp(0.78rem, 1.1vw, 0.85rem);
    line-height: 1.42;
    color: var(--text-muted);
    position: relative;
    padding-left: 14px;
}

.values-list li::before {
    content: '•';
    color: var(--primary-red);
    position: absolute;
    left: 0;
    top: -1px;
    font-size: 1.05rem;
    line-height: 1;
    text-shadow: 0 0 8px rgba(255, 71, 87, 0.6);
}

.values-list li strong {
    color: #ffffff;
    font-weight: 700;
}

/* Why Us Section Compact */
.why-us-section {
    background: rgba(14, 16, 26, 0.9);
    backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 71, 87, 0.18);
    border-radius: 14px;
    padding: clamp(16px, 2.5vw, 24px) clamp(16px, 2.5vw, 26px);
}

.why-us-content h2 {
    font-family: var(--font-heading);
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    font-weight: 800;
    color: #ffffff;
    margin: 4px 0 14px 0;
}

.why-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 14px;
}

.why-item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.why-item i {
    font-size: 1.15rem;
    color: var(--primary-red);
    margin-top: 2px;
    flex-shrink: 0;
}

.why-item h4 {
    font-size: 0.92rem;
    font-weight: 700;
    color: #ffffff;
    margin-bottom: 2px;
}

.why-item p {
    font-size: 0.78rem;
    color: var(--text-muted);
    line-height: 1.4;
    margin: 0;
}

/* Subpage Footer */
.subpage-footer {
    position: relative;
    z-index: 10;
    text-align: center;
    padding: 14px 20px;
    background: rgba(6, 7, 12, 0.92);
    border-top: 1px solid rgba(255, 71, 87, 0.15);
}

/* ---------------- SPECIFIC RESPONSIVE BREAKPOINTS ---------------- */
@media (max-width: 768px) {
    body {
        height: auto !important;
        min-height: 100vh !important;
        overflow-y: auto !important;
    }

    .hero-container {
        height: auto !important;
        min-height: 100vh !important;
        min-height: 100dvh !important;
        padding-bottom: 20px;
    }

    .top-emblem {
        display: none; /* Hide decorative emblem on narrow mobile screens to avoid overlap */
    }

    .top-nav, .subpage-nav {
        padding: 12px 14px;
    }

    .nav-link-btn {
        letter-spacing: 0.1em;
        font-size: 0.8rem;
    }

    .panel-btn {
        padding: 6px 14px;
    }

    .panel-btn-content {
        font-size: 0.76rem;
    }

    .sound-toggle-btn {
        right: 14px;
        bottom: 12px;
        position: fixed;
        z-index: 50;
    }

    .contact-pill-btn {
        max-width: 100%;
        flex: 1 1 100%;
    }

    .modal-card {
        width: 95vw !important;
        max-height: 90vh !important;
        border-radius: 14px !important;
    }

    .auth-tabs {
        display: flex;
        gap: 4px;
    }

    .auth-tab {
        padding: 8px 6px;
        font-size: 0.76rem;
    }

    .features-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
}

@media (max-width: 480px) {
    .main-title:not(.wave-title) {
        font-size: clamp(2.2rem, 11vw, 3.4rem);
    }

    .footer-text {
        font-size: 0.62rem;
        letter-spacing: 0.06em;
    }

    .panel-btn {
        padding: 6px 12px;
    }

    .panel-btn-content {
        font-size: 0.74rem;
    }

    .about-card, .service-box-card, .why-us-section, .contact-card {
        border-radius: 14px;
    }

    .input-group input {
        font-size: 0.86rem;
        padding: 10px 14px;
    }

    .submit-auth-btn {
        padding: 12px 16px;
        font-size: 0.84rem;
    }
}

/* ===================================================
   CLICKABLE CARD & MISSION GALLERY MODAL
   =================================================== */

.clickable-card {
    cursor: pointer;
    position: relative;
    border: 1px solid rgba(255, 71, 87, 0.28) !important;
}

.clickable-card:hover {
    border-color: var(--primary-red) !important;
    transform: translateY(-5px) scale(1.015);
    box-shadow: 0 14px 35px rgba(0, 0, 0, 0.8), 0 0 25px rgba(255, 71, 87, 0.3) !important;
}

.card-header-flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}

.gallery-badge {
    background: rgba(255, 71, 87, 0.15);
    border: 1px solid rgba(255, 71, 87, 0.45);
    color: var(--primary-red);
    font-family: var(--font-heading);
    font-size: 0.68rem;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 5px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    letter-spacing: 0.05em;
    transition: var(--transition);
}

.clickable-card:hover .gallery-badge {
    background: var(--primary-red);
    color: #ffffff;
    box-shadow: 0 0 10px var(--accent-red-glow);
}

.card-click-prompt {
    display: flex;
    align-items: center;
    margin-top: 4px;
}

.card-click-prompt span {
    font-size: 0.74rem;
    font-weight: 700;
    color: var(--primary-red);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    letter-spacing: 0.04em;
    transition: var(--transition);
}

.clickable-card:hover .card-click-prompt span {
    color: #ffffff;
    text-shadow: 0 0 8px var(--primary-red);
}

/* Gallery Modal */
.gallery-card {
    max-width: 760px;
    width: 100%;
}

.gallery-modal-body {
    padding: 16px 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.gallery-viewport {
    position: relative;
    width: 100%;
    height: 380px;
    max-height: 50vh;
    background: #06070c;
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 71, 87, 0.2);
}

.gallery-slide-container {
    width: 100%;
    height: 100%;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gallery-main-img {
    max-width: 100%;
    max-height: 100%;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #05060a;
    transition: opacity 0.25s ease;
}

.gallery-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(to top, rgba(5, 6, 12, 0.95) 0%, rgba(5, 6, 12, 0.7) 65%, transparent 100%);
    padding: 30px 20px 12px 20px;
    font-size: 0.84rem;
    color: #f1f2f6;
    text-align: center;
    font-weight: 500;
}

.gallery-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(14, 16, 26, 0.88);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 71, 87, 0.4);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    font-size: 0.95rem;
    transition: var(--transition);
}

.gallery-nav-btn.prev-btn {
    left: 12px;
}

.gallery-nav-btn.next-btn {
    right: 12px;
}

.gallery-nav-btn:hover {
    background: var(--primary-red);
    box-shadow: 0 0 15px var(--accent-red-glow);
    transform: translateY(-50%) scale(1.1);
}

/* Gallery Thumbnails */
.gallery-thumbnails {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.thumb-item {
    background: rgba(255, 255, 255, 0.03);
    border: 1.5px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    padding: 6px;
    cursor: pointer;
    transition: var(--transition);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    text-align: center;
}

.thumb-item img {
    width: 100%;
    height: 60px;
    object-fit: cover;
    border-radius: 5px;
}

.thumb-item span {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--text-muted);
    transition: var(--transition);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
}

.thumb-item.active, .thumb-item:hover {
    border-color: var(--primary-red);
    background: rgba(255, 71, 87, 0.12);
}

.thumb-item.active span, .thumb-item:hover span {
    color: #ffffff;
}

.gallery-modal-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 20px;
}

.gallery-counter {
    font-size: 0.78rem;
    color: var(--text-muted);
    font-weight: 600;
}

@media (max-width: 600px) {
    .gallery-viewport {
        height: 240px;
    }

    .gallery-thumbnails {
        gap: 6px;
    }

    .thumb-item img {
        height: 48px;
    }

    .thumb-item span {
        font-size: 0.65rem;
    }
}

/* ===================================================
   PANEL DE TRABAJADORES (GERENCIA, ADMINISTRACIÓN, TÉCNICOS)
   =================================================== */

.user-profile-nav {
    display: flex;
    align-items: center;
    gap: 12px;
}

.user-badge-info {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 6px 12px;
    border-radius: 50px;
    font-size: 0.8rem;
    font-weight: 700;
    color: #ffffff;
}

.user-badge-info i {
    color: var(--primary-red);
    font-size: 1.05rem;
}

.user-role-pill {
    background: var(--primary-red);
    color: #ffffff;
    font-size: 0.65rem;
    font-weight: 800;
    padding: 2px 7px;
    border-radius: 4px;
    letter-spacing: 0.05em;
}

.logout-btn {
    background: rgba(255, 71, 87, 0.12);
    border: 1px solid rgba(255, 71, 87, 0.3);
    color: #ffffff;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 0.78rem;
    padding: 7px 14px;
    border-radius: 50px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: var(--transition);
}

.logout-btn:hover {
    background: var(--primary-red);
    box-shadow: 0 0 15px var(--accent-red-glow);
    transform: translateY(-2px);
}

.departments-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: clamp(16px, 2.5vw, 24px);
    width: 100%;
}

.dept-card {
    background: rgba(14, 16, 26, 0.92);
    backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 71, 87, 0.2);
    border-radius: 16px;
    padding: clamp(20px, 3vw, 28px) clamp(18px, 2.5vw, 24px);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: var(--transition);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
    position: relative;
    overflow: hidden;
}

.dept-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent, var(--primary-red), transparent);
    opacity: 0.6;
    transition: opacity 0.3s ease;
}

.dept-card:hover {
    border-color: var(--primary-red);
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.8), 0 0 25px rgba(255, 71, 87, 0.25);
}

.dept-card:hover::before {
    opacity: 1;
}

.dept-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.dept-icon-wrap {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
}

.gerencia-icon {
    background: rgba(255, 71, 87, 0.15);
    border: 1px solid rgba(255, 71, 87, 0.35);
    color: var(--primary-red);
}

.admin-icon {
    background: rgba(46, 213, 115, 0.15);
    border: 1px solid rgba(46, 213, 115, 0.35);
    color: #2ed573;
}

.tecnicos-icon {
    background: rgba(255, 177, 66, 0.15);
    border: 1px solid rgba(255, 177, 66, 0.35);
    color: #ffb142;
}

.dept-badge {
    font-family: var(--font-heading);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    padding: 3px 9px;
    border-radius: 50px;
    background: rgba(255, 255, 255, 0.05);
    color: var(--text-muted);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.dept-card-body h2 {
    font-family: var(--font-heading);
    font-size: clamp(1.3rem, 2.2vw, 1.6rem);
    font-weight: 800;
    color: #ffffff;
    margin-bottom: 8px;
}

.dept-desc {
    font-size: 0.86rem;
    line-height: 1.5;
    color: var(--text-muted);
    margin-bottom: 16px;
}

.dept-features-list {
    list-style: none;
    padding: 0;
    margin: 0 0 20px 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.dept-features-list li {
    font-size: 0.82rem;
    color: #cbd5e1;
    display: flex;
    align-items: center;
    gap: 8px;
}

.dept-features-list li i {
    color: var(--primary-red);
    font-size: 0.85rem;
    flex-shrink: 0;
}

.dept-action-btn {
    width: 100%;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #ffffff;
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 0.82rem;
    letter-spacing: 0.08em;
    padding: 12px 18px;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: var(--transition);
}

.dept-card:hover .dept-action-btn {
    background: var(--primary-red);
    border-color: var(--primary-red);
    box-shadow: 0 4px 20px var(--accent-red-glow);
    transform: translateY(-2px);
}

/* Quick Summary Bar */
.panel-quick-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
    background: rgba(14, 16, 26, 0.88);
    backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 71, 87, 0.15);
    border-radius: 14px;
    padding: 18px 24px;
}

.summary-item {
    display: flex;
    align-items: center;
    gap: 14px;
}

.summary-item i {
    font-size: 1.5rem;
    color: var(--primary-red);
}

.summary-item h4 {
    font-size: 0.92rem;
    font-weight: 700;
    color: #ffffff;
    margin-bottom: 2px;
}

.summary-item p {
    font-size: 0.78rem;
    color: var(--text-muted);
    margin: 0;
}

/* Department Detail Modal */
.dept-modal-card {
    max-width: 580px;
}

.stat-boxes-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 12px;
}

.stat-box {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    padding: 12px 8px;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.stat-num {
    font-family: var(--font-heading);
    font-size: 1.25rem;
    font-weight: 900;
    color: var(--primary-red);
}

.stat-label {
    font-size: 0.68rem;
    color: var(--text-muted);
    font-weight: 600;
}

.quick-action-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 10px;
}

.qa-item {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 6px;
    padding: 10px 14px;
    font-size: 0.84rem;
    color: #cbd5e1;
    display: flex;
    align-items: center;
    gap: 10px;
}

@media (max-width: 768px) {
    .user-badge-info span {
        max-width: 90px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

/* ==============================================================
   ADMINISTRATION WORKSPACE (RECURSOS HUMANOS & PRESUPUESTO)
   ============================================================== */

.admin-workspace-card {
    max-width: 1050px;
    width: 96%;
    padding: 0;
    overflow: hidden;
}

.admin-workspace-header {
    padding: clamp(16px, 2.5vw, 22px) clamp(18px, 3vw, 28px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.admin-workspace-subnav {
    display: flex;
    background: rgba(0, 0, 0, 0.35);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    padding: 6px 16px 0 16px;
    gap: 8px;
    overflow-x: auto;
}

.admin-tab-btn {
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    color: var(--text-muted);
    font-family: var(--font-heading);
    font-size: 0.86rem;
    font-weight: 700;
    padding: 12px 18px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: var(--transition);
    white-space: nowrap;
}

.admin-tab-btn:hover {
    color: #ffffff;
}

.admin-tab-btn.active {
    color: #ffffff;
    border-bottom-color: var(--primary-red);
    background: rgba(255, 71, 87, 0.08);
    border-radius: 6px 6px 0 0;
}

.admin-tab-btn.active i {
    color: var(--primary-red);
}

.admin-workspace-body {
    padding: clamp(16px, 2.5vw, 24px);
    max-height: calc(85vh - 150px);
    overflow-y: auto;
}

.admin-section {
    display: none;
    flex-direction: column;
    gap: 20px;
}

.admin-section.active {
    display: flex;
}

/* RRHH Metrics Grid */
.hr-metrics-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}

.metric-card {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 10px;
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.metric-label {
    font-size: 0.74rem;
    color: var(--text-muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.metric-value {
    font-family: var(--font-heading);
    font-size: 1.35rem;
    font-weight: 900;
    color: #ffffff;
}

.metric-hint {
    font-size: 0.7rem;
    color: #94a3b8;
}

.metric-paid .metric-value {
    color: #2ed573;
}

.metric-pending .metric-value {
    color: #ffb142;
}

/* Actions Bar */
.admin-actions-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 10px;
    padding: 14px 18px;
}

.admin-actions-left h3 {
    font-family: var(--font-heading);
    font-size: 1.05rem;
    color: #ffffff;
    margin-bottom: 2px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.admin-actions-left h3 i {
    color: var(--primary-red);
}

.admin-actions-left p {
    font-size: 0.78rem;
    color: var(--text-muted);
    margin: 0;
}

.add-action-btn {
    background: var(--primary-red);
    border: none;
    color: #ffffff;
    font-family: var(--font-heading);
    font-size: 0.8rem;
    font-weight: 800;
    padding: 10px 18px;
    border-radius: 8px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 4px 14px var(--accent-red-glow);
    transition: var(--transition);
}

.add-action-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px var(--accent-red-glow);
}

/* Responsive Table */
.table-responsive-wrapper {
    width: 100%;
    overflow-x: auto;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.25);
}

.admin-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
    text-align: left;
}

.admin-table thead {
    background: rgba(255, 255, 255, 0.04);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.admin-table th {
    padding: 12px 14px;
    color: #cbd5e1;
    font-family: var(--font-heading);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.admin-table td {
    padding: 12px 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    color: #e2e8f0;
    vertical-align: middle;
}

.admin-table tbody tr:hover {
    background: rgba(255, 255, 255, 0.02);
}

.loading-td {
    text-align: center;
    padding: 30px !important;
    color: var(--text-muted);
}

.worker-name-cell {
    display: flex;
    align-items: center;
    gap: 10px;
}

.worker-name-cell i {
    font-size: 1.3rem;
    color: var(--primary-red);
}

.worker-name-cell strong {
    display: block;
    color: #ffffff;
    font-size: 0.88rem;
}

.worker-name-cell small {
    color: var(--text-muted);
    font-size: 0.74rem;
}

.specialty-badge {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #93c5fd;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 4px 8px;
    border-radius: 4px;
    display: inline-block;
}

/* Stepper for Days Worked */
.days-stepper {
    display: inline-flex;
    align-items: center;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 6px;
    overflow: hidden;
}

.stepper-btn {
    background: transparent;
    border: none;
    color: #ffffff;
    font-weight: 800;
    font-size: 0.95rem;
    width: 28px;
    height: 28px;
    cursor: pointer;
    transition: var(--transition);
}

.stepper-btn:hover {
    background: var(--primary-red);
}

.stepper-value {
    min-width: 32px;
    text-align: center;
    font-weight: 800;
    font-family: var(--font-heading);
    color: #ffffff;
}

/* Check / Paid Toggle Button */
.paid-toggle-btn {
    border: none;
    font-family: var(--font-heading);
    font-size: 0.72rem;
    font-weight: 800;
    padding: 6px 12px;
    border-radius: 50px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: var(--transition);
}

.paid-toggle-btn.paid {
    background: rgba(46, 213, 115, 0.18);
    border: 1px solid rgba(46, 213, 115, 0.4);
    color: #2ed573;
}

.paid-toggle-btn.paid:hover {
    background: #2ed573;
    color: #000000;
}

.paid-toggle-btn.pending {
    background: rgba(255, 177, 66, 0.18);
    border: 1px solid rgba(255, 177, 66, 0.4);
    color: #ffb142;
}

.paid-toggle-btn.pending:hover {
    background: #ffb142;
    color: #000000;
}

.delete-btn {
    background: rgba(255, 71, 87, 0.1);
    border: 1px solid rgba(255, 71, 87, 0.25);
    color: var(--primary-red);
    width: 30px;
    height: 30px;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
}

.delete-btn:hover {
    background: var(--primary-red);
    color: #ffffff;
    transform: scale(1.08);
}

/* ==============================================================
   SUB ÁREA DE PRESUPUESTO STYLES
   ============================================================== */

.budget-categories-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 12px;
}

.budget-cat-card {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 14px 16px;
    display: flex;
    align-items: center;
    gap: 14px;
    transition: var(--transition);
}

.budget-cat-card:hover {
    border-color: rgba(255, 255, 255, 0.2);
    transform: translateY(-2px);
}

.budget-cat-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    flex-shrink: 0;
}

.cat-movilidad .budget-cat-icon {
    background: rgba(0, 136, 204, 0.15);
    color: #0088cc;
    border: 1px solid rgba(0, 136, 204, 0.35);
}

.cat-comida .budget-cat-icon {
    background: rgba(255, 177, 66, 0.15);
    color: #ffb142;
    border: 1px solid rgba(255, 177, 66, 0.35);
}

.cat-delivery .budget-cat-icon {
    background: rgba(165, 94, 234, 0.15);
    color: #a55eea;
    border: 1px solid rgba(165, 94, 234, 0.35);
}

.cat-materiales .budget-cat-icon {
    background: rgba(46, 213, 115, 0.15);
    color: #2ed573;
    border: 1px solid rgba(46, 213, 115, 0.35);
}

.cat-total {
    background: rgba(255, 71, 87, 0.12);
    border-color: rgba(255, 71, 87, 0.35);
}

.cat-total .budget-cat-icon {
    background: var(--primary-red);
    color: #ffffff;
}

.budget-cat-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.budget-cat-title {
    font-size: 0.74rem;
    color: var(--text-muted);
    font-weight: 600;
}

.budget-cat-amount {
    font-family: var(--font-heading);
    font-size: 1.15rem;
    font-weight: 900;
    color: #ffffff;
}

.budget-cat-amount.highlight {
    color: var(--primary-red);
    font-size: 1.35rem;
}

.budget-cat-desc {
    font-size: 0.68rem;
    color: #94a3b8;
}

/* Expense Form */
.add-expense-box {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 10px;
    padding: 16px 18px;
}

.add-expense-box .box-title h4 {
    font-family: var(--font-heading);
    font-size: 0.92rem;
    color: #ffffff;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Professional Expense Grid Form */
.expense-grid-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 12px;
    padding: clamp(16px, 2.5vw, 22px);
}

.form-grid-row {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1.2fr;
    gap: 16px;
}

.form-grid-row-bottom {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 16px;
    align-items: flex-end;
}

.exp-input-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.exp-input-group label {
    font-family: var(--font-heading);
    font-size: 0.78rem;
    font-weight: 700;
    color: #cbd5e1;
    display: flex;
    align-items: center;
    gap: 6px;
}

.exp-input-group label i {
    color: var(--primary-red);
}

.custom-form-select, .custom-form-input {
    background: rgba(14, 16, 26, 0.95);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 8px;
    padding: 12px 14px;
    color: #ffffff;
    font-family: var(--font-body);
    font-size: 0.88rem;
    outline: none;
    transition: var(--transition);
    width: 100%;
    height: 46px;
}

.custom-form-select {
    cursor: pointer;
    font-weight: 600;
}

.custom-form-select option {
    background: #0d101a;
    color: #ffffff;
    padding: 10px;
}

.custom-form-input:focus, .custom-form-select:focus {
    border-color: var(--primary-red);
    box-shadow: 0 0 14px var(--accent-red-glow);
}

.currency-input-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.currency-symbol {
    position: absolute;
    left: 14px;
    color: var(--primary-red);
    font-weight: 800;
    font-family: var(--font-heading);
    font-size: 0.85rem;
    pointer-events: none;
}

.currency-input-wrap .custom-form-input {
    padding-left: 40px;
    font-weight: 700;
}

.exp-submit-wrap {
    display: flex;
    align-items: flex-end;
}

.submit-expense-btn {
    background: var(--primary-red);
    border: none;
    color: #ffffff;
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 0.84rem;
    letter-spacing: 0.05em;
    padding: 12px 24px;
    border-radius: 8px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 46px;
    box-shadow: 0 4px 18px var(--accent-red-glow);
    transition: var(--transition);
    white-space: nowrap;
}

.submit-expense-btn:hover {
    background: #ff2a3f;
    transform: translateY(-2px);
    box-shadow: 0 6px 24px var(--accent-red-glow);
}

.badge-tag-small {
    font-family: var(--font-heading);
    font-size: 0.72rem;
    font-weight: 700;
    color: #2ed573;
    background: rgba(46, 213, 115, 0.12);
    border: 1px solid rgba(46, 213, 115, 0.25);
    padding: 4px 10px;
    border-radius: 50px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

@media (max-width: 900px) {
    .form-grid-row {
        grid-template-columns: 1fr;
    }
    
    .form-grid-row-bottom {
        grid-template-columns: 1fr;
    }
    
    .submit-expense-btn {
        width: 100%;
    }
}

/* Category Badges in Expense Table */
.expense-cat-badge {
    font-size: 0.72rem;
    font-weight: 700;
    padding: 4px 8px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.badge-movilidad {
    background: rgba(0, 136, 204, 0.15);
    color: #0088cc;
    border: 1px solid rgba(0, 136, 204, 0.3);
}

.badge-comida {
    background: rgba(255, 177, 66, 0.15);
    color: #ffb142;
    border: 1px solid rgba(255, 177, 66, 0.3);
}

.badge-delivery {
    background: rgba(165, 94, 234, 0.15);
    color: #a55eea;
    border: 1px solid rgba(165, 94, 234, 0.3);
}

.badge-materiales {
    background: rgba(46, 213, 115, 0.15);
    color: #2ed573;
    border: 1px solid rgba(46, 213, 115, 0.3);
}

.admin-workspace-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.db-sync-note {
    font-size: 0.76rem;
    color: #94a3b8;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* Add Worker Modal */
.add-worker-card {
    max-width: 620px;
}

.custom-form-select {
    width: 100%;
    background: #0d101a;
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 0.84rem;
    font-family: inherit;
    outline: none;
    transition: var(--transition);
    cursor: pointer;
}

.custom-form-select:focus {
    border-color: var(--primary-red);
    box-shadow: 0 0 10px rgba(255, 71, 87, 0.2);
}

.custom-form-select optgroup {
    background: #151928;
    color: #ff4757;
    font-weight: 700;
    font-size: 0.8rem;
    padding: 6px 4px;
}

.custom-form-select option {
    background: #0d101a;
    color: #e2e8f0;
    padding: 8px;
    font-weight: 500;
    font-size: 0.84rem;
}

.form-row-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

@media (max-width: 768px) {
    .exp-input-group.flex-2 {
        grid-column: span 1;
    }
    
    .admin-workspace-footer {
        flex-direction: column;
        gap: 10px;
        align-items: flex-start;
    }
}

/* ==============================================================
   FULLPAGE DEDICATED ADMINISTRACIÓN (administracion.html)
   ============================================================== */

.admin-dashboard-page .admin-fullpage-content {
    max-width: 1280px;
    margin: 0 auto;
    width: 100%;
    padding: clamp(20px, 3vw, 40px) clamp(16px, 2.5vw, 30px);
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.nav-left-group {
    display: flex;
    align-items: center;
    gap: 8px;
}

.home-small-btn {
    padding: 8px 12px;
    font-size: 0.9rem;
}

.hero-header-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 20px;
}

.export-btn {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #ffffff;
    font-family: var(--font-heading);
    font-size: 0.8rem;
    font-weight: 700;
    padding: 9px 16px;
    border-radius: 8px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: var(--transition);
}

.export-btn:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: #ffffff;
}

/* ============================================================== */
/* ULTRA-PROFESSIONAL ADMIN MAIN TABS NAVIGATION                  */
/* ============================================================== */
.admin-main-tabs-wrapper {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 18px 0 10px 0;
    padding: 0 10px;
    box-sizing: border-box;
}

.admin-main-tabs {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, rgba(15, 23, 42, 0.92) 0%, rgba(8, 12, 24, 0.96) 100%);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border: 1px solid rgba(0, 229, 255, 0.25);
    border-radius: 16px;
    padding: 6px;
    gap: 6px;
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 0 24px rgba(0, 229, 255, 0.08);
    box-sizing: border-box;
}

.admin-main-tabs::-webkit-scrollbar {
    display: none;
}

.admin-main-tab {
    flex: 0 0 auto;
    background: transparent;
    border: 1px solid transparent;
    color: #94a3b8;
    font-family: var(--font-heading, 'Montserrat', sans-serif);
    font-size: 0.82rem;
    font-weight: 700;
    padding: 9px 16px;
    border-radius: 11px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: all 0.22s cubic-bezier(0.4, 0, 0.2, 1);
    white-space: nowrap;
    box-sizing: border-box;
    position: relative;
    user-select: none;
}

.admin-main-tab i {
    font-size: 0.92rem;
    color: #64748b;
    transition: all 0.22s ease;
}

.admin-main-tab:hover {
    color: #ffffff;
    background: rgba(0, 229, 255, 0.08);
    border-color: rgba(0, 229, 255, 0.25);
    transform: translateY(-1px);
}

.admin-main-tab:hover i {
    color: #00e5ff;
}

.admin-main-tab.active {
    background: linear-gradient(135deg, #00e5ff 0%, #0077b6 100%);
    color: #041017;
    font-weight: 900;
    border-color: #00e5ff;
    box-shadow: 0 4px 18px rgba(0, 229, 255, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.4);
    transform: translateY(-1px);
}

.admin-main-tab.active i {
    color: #041017;
    transform: scale(1.1);
}

/* Badges inside tabs */
.admin-tab-badge {
    border-radius: 12px;
    padding: 2px 7px;
    font-size: 0.72rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 4px;
    transition: all 0.2s ease;
}

.admin-tab-badge.badge-cyan {
    background: rgba(0, 229, 255, 0.18);
    color: #00e5ff;
    border: 1px solid rgba(0, 229, 255, 0.35);
}

.admin-tab-badge.badge-alert {
    background: rgba(255, 71, 87, 0.2);
    color: #ff4757;
    border: 1px solid rgba(255, 71, 87, 0.4);
}

.admin-tab-badge.badge-urgent {
    background: #ff4757;
    color: #ffffff;
    box-shadow: 0 0 10px rgba(255, 71, 87, 0.6);
}

/* When parent tab is active, style the badge accordingly */
.admin-main-tab.active .admin-tab-badge.badge-cyan {
    background: rgba(4, 16, 23, 0.4);
    color: #041017;
    border-color: rgba(4, 16, 23, 0.5);
}

.admin-main-tab.active .admin-tab-badge.badge-alert {
    background: #ff4757;
    color: #ffffff;
    border-color: #ff4757;
}

@media (max-width: 1024px) {
    .admin-main-tabs-wrapper {
        justify-content: flex-start;
        overflow-x: auto;
        padding-bottom: 6px;
    }
    .admin-main-tabs {
        width: max-content;
    }
}

.admin-view-section {
    display: none;
    flex-direction: column;
    gap: 24px;
    animation: fadeInTab 0.35s ease forwards;
}

.admin-view-section.active {
    display: flex;
}

@keyframes fadeInTab {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.admin-content-card {
    background: rgba(14, 16, 26, 0.92);
    backdrop-filter: blur(18px);
    border: 1px solid rgba(255, 71, 87, 0.2);
    border-radius: 16px;
    padding: clamp(20px, 3vw, 28px);
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.6);
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.card-header-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.card-header-titles h2 {
    font-family: var(--font-heading);
    font-size: clamp(1.15rem, 2vw, 1.4rem);
    color: #ffffff;
    margin-bottom: 3px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.card-header-titles h2 i {
    color: var(--primary-red);
}

.card-header-titles p {
    font-size: 0.82rem;
    color: var(--text-muted);
    margin: 0;
}

.worker-avatar-icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: rgba(255, 71, 87, 0.12);
    border: 1px solid rgba(255, 71, 87, 0.3);
    color: var(--primary-red);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    flex-shrink: 0;
}

.metric-icon-wrap {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    color: var(--primary-red);
    flex-shrink: 0;
}

.metric-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 14px;
    padding: 16px 20px;
}

@media print {
    .subpage-bg, .subpage-nav, .admin-main-tabs, .add-action-btn, .export-btn, .save-expense-btn, .delete-btn, .days-stepper button, .service-order-submit-bar, .modal-footer, .modal-close {
        display: none !important;
    }
    
    body {
        background: #ffffff !important;
        color: #000000 !important;
    }
    
    .admin-content-card, .metric-card, .budget-cat-card, .modal-card {
        background: #ffffff !important;
        color: #000000 !important;
        border: none !important;
        box-shadow: none !important;
    }
    
    .admin-table th, .admin-table td {
        color: #000000 !important;
        border-bottom: 1px solid #dddddd !important;
    }

    .modal-backdrop {
        position: static !important;
        background: transparent !important;
        padding: 0 !important;
        display: block !important;
    }
    
    .acta-sheet {
        color: #000000 !important;
        background: #ffffff !important;
        box-shadow: none !important;
        border: 1px solid #999999 !important;
    }
    
    .acta-brand h2, .acta-number, .acta-sec-title {
        color: #000000 !important;
    }
}

/* ==============================================================
   TÉCNICOS · ÓRDENES DE SERVICIO & CONFORMIDAD (tecnicos.html)
   ============================================================== */

.tecnicos-dashboard-page .tecnicos-fullpage-content {
    max-width: 1280px;
    margin: 0 auto;
    width: 100%;
    padding: clamp(20px, 3vw, 40px) clamp(16px, 2.5vw, 30px);
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.service-order-main-form {
    display: flex;
    flex-direction: column;
    gap: 22px;
    position: relative;
}

.service-form-card {
    border-color: rgba(255, 71, 87, 0.25);
    overflow: visible !important;
}

/* Stacking context: earlier cards have higher z-index so dropdowns overlap smoothly over subsequent cards */
.service-order-main-form > .service-form-card:nth-of-type(1) {
    z-index: 60;
    position: relative;
}

.service-order-main-form > .service-form-card:nth-of-type(2) {
    z-index: 50;
    position: relative;
}

.service-order-main-form > .service-form-card:nth-of-type(3) {
    z-index: 40;
    position: relative;
}

.service-order-main-form > .service-form-card:nth-of-type(4) {
    z-index: 30;
    position: relative;
}

.service-order-main-form > .service-form-card:nth-of-type(5) {
    z-index: 20;
    position: relative;
}

.service-order-main-form > .service-form-card:nth-of-type(6) {
    z-index: 10;
    position: relative;
}

.service-form-grid-3 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
    overflow: visible !important;
}

.service-form-grid-1 {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* Phone Input Combo with Country Prefix */
.phone-input-combo {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
}

.country-prefix-select-wrap {
    width: 125px;
    flex-shrink: 0;
}

.country-prefix-select {
    padding-left: 12px !important;
    padding-right: 22px !important;
    font-size: 0.84rem !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    background: rgba(14, 16, 26, 0.95) !important;
    border: 1px solid rgba(255, 71, 87, 0.35) !important;
    cursor: pointer;
}

.phone-number-input {
    flex: 1;
}

.custom-form-textarea {
    background: rgba(14, 16, 26, 0.95);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 8px;
    padding: 12px 14px;
    color: #ffffff;
    font-family: var(--font-body);
    font-size: 0.88rem;
    line-height: 1.5;
    outline: none;
    transition: var(--transition);
    width: 100%;
    resize: vertical;
}

.custom-form-textarea:focus {
    border-color: var(--primary-red);
    box-shadow: 0 0 14px var(--accent-red-glow);
}

.service-type-highlight {
    border-color: rgba(255, 71, 87, 0.4);
    font-weight: 700;
}

.form-field-hint {
    font-size: 0.72rem;
    color: #94a3b8;
    margin-top: 2px;
}

/* Photo Upload Zone */
.photo-upload-zone {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.upload-prompt {
    background: rgba(255, 255, 255, 0.02);
    border: 2px dashed rgba(255, 71, 87, 0.35);
    border-radius: 12px;
    padding: clamp(20px, 3vw, 32px);
    text-align: center;
    cursor: pointer;
    transition: var(--transition);
}

.upload-prompt:hover {
    background: rgba(255, 71, 87, 0.06);
    border-color: var(--primary-red);
    transform: translateY(-2px);
}

.upload-prompt i {
    font-size: 2.2rem;
    color: var(--primary-red);
    margin-bottom: 8px;
}

.upload-prompt h4 {
    font-family: var(--font-heading);
    font-size: 0.95rem;
    color: #ffffff;
    margin-bottom: 4px;
}

.upload-prompt p {
    font-size: 0.78rem;
    color: var(--text-muted);
    margin: 0;
}

.photos-preview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 12px;
}

.photo-preview-item {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: #000000;
    border: 1px solid rgba(255, 255, 255, 0.15);
}

.photo-preview-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.remove-photo-btn {
    position: absolute;
    top: 6px;
    right: 6px;
    background: rgba(255, 71, 87, 0.85);
    color: #ffffff;
    border: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    transition: var(--transition);
}

.remove-photo-btn:hover {
    background: #ff2a3f;
    transform: scale(1.15);
}

/* Signature Block */
.signature-block-container {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.signature-statement {
    background: rgba(46, 213, 115, 0.08);
    border: 1px solid rgba(46, 213, 115, 0.25);
    border-radius: 8px;
    padding: 12px 16px;
    font-size: 0.84rem;
    color: #e2e8f0;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    line-height: 1.4;
}

.signature-canvas-wrap {
    background: rgba(0, 0, 0, 0.4);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 10px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.canvas-header-note {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.78rem;
    color: var(--text-muted);
}

.clear-sig-btn {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #cbd5e1;
    font-family: var(--font-heading);
    font-size: 0.74rem;
    font-weight: 700;
    padding: 5px 10px;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: var(--transition);
}

.clear-sig-btn:hover {
    background: rgba(255, 71, 87, 0.2);
    border-color: var(--primary-red);
    color: #ffffff;
}

.signature-pad {
    width: 100%;
    max-width: 600px;
    height: 160px;
    background: rgba(14, 16, 26, 0.95);
    border: 1px dashed rgba(255, 255, 255, 0.2);
    border-radius: 8px;
    touch-action: none;
    cursor: crosshair;
}

/* Submit Bar & Professional Button */
.service-form-submit-row,
.service-order-submit-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    background: linear-gradient(180deg, rgba(20, 24, 38, 0.9) 0%, rgba(13, 16, 26, 0.95) 100%);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 14px;
    padding: clamp(16px, 2.5vw, 22px) clamp(18px, 3vw, 28px);
    margin-top: 25px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}

.submit-note-text {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #94a3b8;
    font-size: 0.84rem;
    max-width: 460px;
}

.submit-note-text i {
    color: #2ed573;
    font-size: 1.15rem;
    flex-shrink: 0;
}

.submit-service-order-btn,
.submit-order-btn {
    background: linear-gradient(135deg, #e6192e 0%, #a80014 100%);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.2);
    font-family: var(--font-heading);
    font-size: clamp(0.85rem, 1.5vw, 0.95rem);
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 14px 28px;
    border-radius: 10px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    box-shadow: 0 8px 24px rgba(230, 25, 46, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.25);
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
}

.submit-service-order-btn::before,
.submit-order-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 60%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transform: skewX(-20deg);
    transition: left 0.6s ease;
}

.submit-service-order-btn:hover::before,
.submit-order-btn:hover::before {
    left: 140%;
}

.submit-service-order-btn:hover,
.submit-order-btn:hover {
    background: linear-gradient(135deg, #ff2339 0%, #c40018 100%);
    box-shadow: 0 12px 30px rgba(230, 25, 46, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.4);
    transform: translateY(-2px);
    border-color: rgba(255, 255, 255, 0.35);
}

.submit-service-order-btn:active,
.submit-order-btn:active {
    transform: translateY(1px);
    box-shadow: 0 4px 14px rgba(230, 25, 46, 0.35);
}

.submit-service-order-btn i,
.submit-order-btn i {
    font-size: 1.05rem;
    transition: transform 0.2s ease;
}

.submit-service-order-btn:hover i.fa-arrow-right,
.submit-order-btn:hover i.fa-arrow-right {
    transform: translateX(4px);
}

/* Service Order Table Badges */
.order-status-badge {
    font-family: var(--font-heading);
    font-size: 0.72rem;
    font-weight: 800;
    padding: 5px 10px;
    border-radius: 50px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.status-done {
    background: rgba(46, 213, 115, 0.15);
    color: #2ed573;
    border: 1px solid rgba(46, 213, 115, 0.35);
}

.status-process {
    background: rgba(0, 136, 204, 0.15);
    color: #0088cc;
    border: 1px solid rgba(0, 136, 204, 0.35);
}

.status-pending {
    background: rgba(255, 177, 66, 0.15);
    color: #ffb142;
    border: 1px solid rgba(255, 177, 66, 0.35);
}

.view-acta-btn {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #ffffff;
    font-family: var(--font-heading);
    font-size: 0.75rem;
    font-weight: 700;
    padding: 6px 12px;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: var(--transition);
    margin-right: 6px;
}

.view-acta-btn:hover {
    background: var(--primary-red);
    border-color: var(--primary-red);
    transform: translateY(-1px);
}

/* Printable Acta de Conformidad Styles */
.acta-modal-card {
    max-width: 850px;
    width: 95%;
}

.acta-modal-body {
    max-height: 75vh;
    overflow-y: auto;
    padding: clamp(16px, 2.5vw, 24px);
}

.acta-sheet {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: clamp(20px, 3vw, 30px);
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.acta-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 16px;
    border-bottom: 2px solid var(--primary-red);
    padding-bottom: 14px;
}

.acta-brand h2 {
    font-family: var(--font-heading);
    font-size: 1.45rem;
    font-weight: 900;
    color: var(--primary-red);
    letter-spacing: 0.08em;
    margin: 0;
}

.acta-brand p {
    font-size: 0.82rem;
    color: #ffffff;
    margin: 2px 0;
    font-weight: 600;
}

.acta-brand small {
    font-size: 0.72rem;
    color: var(--text-muted);
}

.acta-doc-info {
    text-align: right;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.acta-tag {
    font-family: var(--font-heading);
    font-size: 0.72rem;
    font-weight: 800;
    color: #94a3b8;
    text-transform: uppercase;
}

.acta-number {
    font-family: var(--font-heading);
    font-size: 1.25rem;
    font-weight: 900;
    color: #ffffff;
}

.acta-date {
    font-size: 0.78rem;
    color: #cbd5e1;
}

.acta-section {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 8px;
    padding: 14px 16px;
}

.acta-sec-title {
    font-family: var(--font-heading);
    font-size: 0.86rem;
    font-weight: 800;
    color: var(--primary-red);
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
    text-transform: uppercase;
}

.acta-grid-2 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
    font-size: 0.85rem;
    color: #cbd5e1;
}

.acta-grid-2 strong {
    color: #ffffff;
}

.acta-desc-box {
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 6px;
    padding: 10px 14px;
    margin-top: 10px;
    font-size: 0.84rem;
}

.acta-desc-box strong {
    color: #ffffff;
    display: block;
    margin-bottom: 4px;
}

.acta-desc-box p {
    color: #e2e8f0;
    margin: 0;
    line-height: 1.5;
}

.acta-photos-section {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 8px;
    padding: 14px 16px;
}

.acta-photos-section h4 {
    font-family: var(--font-heading);
    font-size: 0.84rem;
    color: #cbd5e1;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.acta-photos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 10px;
}

.acta-photo-item {
    border-radius: 6px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: #000000;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.acta-photo-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.acta-conformity-box {
    background: rgba(46, 213, 115, 0.06);
    border: 1px solid rgba(46, 213, 115, 0.2);
    border-radius: 6px;
    padding: 10px 14px;
    font-size: 0.8rem;
    color: #e2e8f0;
    line-height: 1.4;
    text-align: justify;
}

.acta-signatures-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-top: 15px;
    padding-top: 10px;
}

.acta-signature-display {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
}

.acta-sig-img {
    max-height: 70px;
    max-width: 200px;
    object-fit: contain;
    filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.3));
}

.acta-sig-line {
    width: 80%;
    height: 1px;
    background: rgba(255, 255, 255, 0.3);
    margin: 4px 0 6px 0;
}

.acta-signature-display strong {
    font-family: var(--font-heading);
    font-size: 0.82rem;
    color: #ffffff;
}

.acta-signature-display span {
    font-size: 0.72rem;
    color: var(--text-muted);
}

/* ==============================================================
   GOOGLE MAPS & INTERACTIVE LOCATION PICKER
   ============================================================== */

.label-with-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.map-toolbar-actions {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}

.map-action-pill {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #cbd5e1;
    font-family: var(--font-heading);
    font-size: 0.7rem;
    font-weight: 700;
    padding: 4px 9px;
    border-radius: 50px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: var(--transition);
}

.map-action-pill:hover {
    transform: translateY(-1px);
    color: #ffffff;
}

.gps-pill {
    background: rgba(46, 213, 115, 0.12);
    border-color: rgba(46, 213, 115, 0.35);
    color: #2ed573;
}

.gps-pill:hover {
    background: #2ed573;
    color: #000000;
}

.pin-pill {
    background: rgba(255, 71, 87, 0.12);
    border-color: rgba(255, 71, 87, 0.35);
    color: var(--primary-red);
}

.pin-pill:hover {
    background: var(--primary-red);
    color: #ffffff;
}

.gmaps-pill {
    background: rgba(0, 136, 204, 0.12);
    border-color: rgba(0, 136, 204, 0.35);
    color: #0088cc;
}

.gmaps-pill:hover {
    background: #0088cc;
    color: #ffffff;
}

.gps-coords-indicator {
    font-family: var(--font-heading);
    font-size: 0.72rem;
    color: #2ed573;
    background: rgba(46, 213, 115, 0.08);
    border: 1px solid rgba(46, 213, 115, 0.2);
    padding: 3px 8px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    width: fit-content;
}

/* Interactive Map Wrapper */
.interactive-map-wrapper {
    background: rgba(14, 16, 26, 0.95);
    border: 1px solid rgba(255, 71, 87, 0.3);
    border-radius: 12px;
    padding: 14px;
    margin-top: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    animation: fadeInTab 0.3s ease;
}

.map-wrapper-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.map-wrapper-header h4 {
    font-family: var(--font-heading);
    font-size: 0.88rem;
    color: #ffffff;
    margin-bottom: 2px;
}

.map-wrapper-header p {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin: 0;
}

.map-close-btn {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #ffffff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
}

.map-close-btn:hover {
    background: var(--primary-red);
}

.leaflet-map-canvas {
    width: 100%;
    height: 280px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    z-index: 10;
}

.acta-maps-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.76rem;
    font-weight: 700;
    color: #0088cc;
    text-decoration: none;
    margin-left: 6px;
    background: rgba(0, 136, 204, 0.1);
    padding: 2px 7px;
    border-radius: 4px;
    border: 1px solid rgba(0, 136, 204, 0.25);
    transition: var(--transition);
}

.acta-maps-link:hover {
    background: #0088cc;
    color: #ffffff;
}

/* ==============================================================
   ADDRESS AUTOCOMPLETE & GEOCODING SUGGESTIONS
   ============================================================== */

.address-autocomplete-wrapper {
    position: relative;
    width: 100%;
    z-index: 100;
}

.address-loading-spinner {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--primary-red);
    font-size: 0.9rem;
    pointer-events: none;
}

.address-suggestions-dropdown {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    background: #0d101a;
    border: 1px solid rgba(255, 71, 87, 0.45);
    border-radius: 12px;
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.98);
    z-index: 99999 !important;
    overflow: hidden;
    animation: fadeInTab 0.2s ease;
}

.address-suggestions-list {
    max-height: 260px;
    overflow-y: auto;
    padding: 6px 0;
}

/* Custom Scrollbar */
.address-suggestions-list::-webkit-scrollbar {
    width: 6px;
}

.address-suggestions-list::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.3);
}

.address-suggestions-list::-webkit-scrollbar-thumb {
    background: rgba(255, 71, 87, 0.3);
    border-radius: 10px;
}

.address-suggestion-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 14px;
    cursor: pointer;
    transition: var(--transition);
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.address-suggestion-item:last-child {
    border-bottom: none;
}

.address-suggestion-item:hover {
    background: rgba(255, 71, 87, 0.12);
}

.address-item-icon {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    background: rgba(255, 71, 87, 0.15);
    color: var(--primary-red);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.address-item-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.address-main-title {
    font-size: 0.86rem;
    color: #ffffff;
    font-weight: 700;
}

.address-sub-title {
    font-size: 0.74rem;
    color: #94a3b8;
    line-height: 1.3;
}

.address-no-results {
    padding: 16px;
    text-align: center;
    font-size: 0.78rem;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

/* ==============================================================
   SEARCHABLE TECHNICIAN SELECTOR (NEON DB PLANTILLA)
   ============================================================== */

.tech-select-toolbar {
    display: flex;
    align-items: center;
    gap: 8px;
}

.selected-count-tag {
    font-size: 0.72rem;
    font-family: var(--font-heading);
    font-weight: 700;
    color: #2ed573;
    background: rgba(46, 213, 115, 0.12);
    border: 1px solid rgba(46, 213, 115, 0.3);
    padding: 2px 8px;
    border-radius: 4px;
}

.mini-text-btn {
    background: transparent;
    border: none;
    color: var(--text-muted);
    font-size: 0.72rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: underline;
    transition: var(--transition);
}

.mini-text-btn:hover {
    color: var(--primary-red);
}

.selected-techs-container {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
    padding: 8px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px dashed rgba(255, 71, 87, 0.3);
    border-radius: 8px;
}

.tech-selected-pill {
    background: rgba(255, 71, 87, 0.15);
    border: 1px solid rgba(255, 71, 87, 0.4);
    color: #ffffff;
    font-family: var(--font-heading);
    font-size: 0.78rem;
    font-weight: 700;
    padding: 5px 10px;
    border-radius: 50px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    animation: fadeInTab 0.2s ease;
}

.tech-selected-pill i {
    color: var(--primary-red);
}

.tech-selected-pill button {
    background: transparent;
    border: none;
    color: #cbd5e1;
    cursor: pointer;
    font-size: 0.8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin-left: 2px;
    transition: var(--transition);
}

.tech-selected-pill button:hover {
    color: #ffffff;
    transform: scale(1.2);
}

/* Search Wrapper & Input */
.searchable-tech-wrapper {
    position: relative;
    width: 100%;
}

.tech-search-input-box {
    position: relative;
    display: flex;
    align-items: center;
}

.tech-search-input-box .search-icon {
    position: absolute;
    left: 14px;
    color: var(--primary-red);
    font-size: 0.9rem;
    pointer-events: none;
}

.tech-search-input {
    padding-left: 38px !important;
    padding-right: 42px !important;
}

.toggle-dropdown-btn {
    position: absolute;
    right: 8px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #cbd5e1;
    width: 30px;
    height: 30px;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
}

.toggle-dropdown-btn:hover {
    background: var(--primary-red);
    color: #ffffff;
}

/* Integrated Search & Technician Selector Box */
.integrated-tech-box {
    background: rgba(14, 16, 26, 0.95);
    border: 1px solid rgba(255, 71, 87, 0.35);
    border-radius: 12px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
}

.tech-search-bar-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.tech-search-bar-wrap .search-icon {
    position: absolute;
    left: 14px;
    color: var(--primary-red);
    font-size: 0.9rem;
    pointer-events: none;
}

.tech-search-field {
    padding-left: 40px !important;
    padding-right: 46px !important;
    background: rgba(0, 0, 0, 0.35) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
    height: 44px;
}

.tech-search-field:focus {
    border-color: var(--primary-red) !important;
    box-shadow: 0 0 14px var(--accent-red-glow) !important;
}

.toggle-list-chevron-btn {
    position: absolute;
    right: 8px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #cbd5e1;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
}

.toggle-list-chevron-btn:hover {
    background: var(--primary-red);
    color: #ffffff;
}

.toggle-panel-btn {
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    padding: 3px 8px !important;
    border-radius: 4px !important;
    color: #cbd5e1 !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
}

.toggle-panel-btn:hover {
    background: rgba(255, 71, 87, 0.15) !important;
    border-color: var(--primary-red) !important;
    color: #ffffff !important;
}

.tech-selection-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
    max-height: 240px;
    overflow-y: auto;
    padding: 4px;
}

/* Custom Scrollbar */
.tech-selection-grid::-webkit-scrollbar {
    width: 6px;
}

.tech-selection-grid::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.3);
}

.tech-selection-grid::-webkit-scrollbar-thumb {
    background: rgba(255, 71, 87, 0.3);
    border-radius: 10px;
}

.tech-selection-grid::-webkit-scrollbar-thumb:hover {
    background: var(--primary-red);
}

.tech-dropdown-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 12px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    cursor: pointer;
    transition: var(--transition);
}

.tech-dropdown-item:hover {
    background: rgba(255, 71, 87, 0.12);
    border-color: rgba(255, 71, 87, 0.3);
    transform: translateY(-1px);
}

.tech-dropdown-item.selected {
    background: rgba(46, 213, 115, 0.12);
    border-color: rgba(46, 213, 115, 0.4);
    box-shadow: 0 0 10px rgba(46, 213, 115, 0.15);
}

.tech-item-avatar {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffb142;
    font-size: 0.95rem;
    flex-shrink: 0;
}

.tech-dropdown-item.selected .tech-item-avatar {
    background: rgba(46, 213, 115, 0.2);
    border-color: rgba(46, 213, 115, 0.4);
    color: #2ed573;
}

.tech-item-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.tech-item-name {
    font-size: 0.86rem;
    color: #ffffff;
    font-weight: 700;
}

.tech-item-specialty {
    font-size: 0.72rem;
    color: #93c5fd;
}

.tech-item-check {
    font-size: 1.15rem;
    color: var(--text-muted);
}

.tech-dropdown-item.selected .tech-item-check {
    color: #2ed573;
}

.tech-no-results, .tech-item-loading {
    grid-column: 1 / -1;
    padding: 20px 16px;
    text-align: center;
    font-size: 0.8rem;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

/* ============================================================
   GERENCIA & ALTA DIRECCIÓN STYLES
   ============================================================ */
.gerencia-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
}

.stat-card-profit {
    border-color: rgba(46, 213, 115, 0.35) !important;
    background: linear-gradient(135deg, rgba(14, 16, 26, 0.95), rgba(46, 213, 115, 0.08)) !important;
}

.highlight-profit {
    color: #2ed573 !important;
    font-size: 1.45rem !important;
}

.gerencia-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
    gap: 24px;
}

/* Financial Balance Flow */
.financial-balance-flow {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 8px 0;
}

.balance-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 16px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 10px;
}

.balance-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.balance-name {
    font-family: var(--font-heading);
    font-size: 0.88rem;
    font-weight: 700;
    color: #ffffff;
}

.balance-info small {
    font-size: 0.76rem;
    color: var(--text-muted);
}

.balance-amount {
    font-family: var(--font-heading);
    font-size: 1.1rem;
    font-weight: 800;
}

.text-green { color: #2ed573 !important; }
.text-red { color: #ff4757 !important; }
.text-orange { color: #ffb142 !important; }
.text-gold { color: #ffd32a !important; }

.balance-divider {
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 71, 87, 0.5), transparent);
    margin: 6px 0;
}

.net-row {
    background: rgba(46, 213, 115, 0.08);
    border-color: rgba(46, 213, 115, 0.35);
}

.highlight-net {
    font-size: 1.35rem;
    font-weight: 900;
    color: #2ed573;
}

/* Expense Breakdown Bars */
.expense-breakdown-bars {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 20px;
}

.bar-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.bar-header {
    display: flex;
    justify-content: space-between;
    font-size: 0.82rem;
    color: #cbd5e1;
}

.progress-track {
    width: 100%;
    height: 8px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 10px;
    overflow: hidden;
}

.progress-fill {
    height: 100%;
    border-radius: 10px;
    transition: width 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.fill-red { background: #ff4757; }
.fill-orange { background: #ff7f50; }
.fill-blue { background: #1e90ff; }
.fill-purple { background: #a55eea; }

.gerencia-payroll-summary-pill {
    display: flex;
    gap: 16px;
    padding: 12px 16px;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    justify-content: space-around;
}

.summary-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    font-size: 0.78rem;
    color: var(--text-muted);
}

.summary-item strong {
    font-size: 0.95rem;
    font-weight: 800;
}

/* Status Actions */
.action-btn-status {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    transition: var(--transition);
}

.approve-btn {
    background: rgba(46, 213, 115, 0.2);
    color: #2ed573;
    border: 1px solid rgba(46, 213, 115, 0.4);
}

.approve-btn:hover {
    background: #2ed573;
    color: #000000;
}

.reject-btn {
    background: rgba(255, 71, 87, 0.2);
    color: #ff4757;
    border: 1px solid rgba(255, 71, 87, 0.4);
}

.reject-btn:hover {
    background: #ff4757;
    color: #ffffff;
}

.word-btn {
    background: rgba(30, 144, 255, 0.2);
    color: #1e90ff;
    border: 1px solid rgba(30, 144, 255, 0.4);
}

.word-btn:hover {
    background: #1e90ff;
    color: #ffffff;
}

/* Executive Official Sheet */
.executive-official-sheet {
    background: #0f121d;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    padding: 36px 40px;
    color: #e2e8f0;
    font-family: var(--font-body);
    position: relative;
    overflow: hidden;
}

/* Watermark Background Logo */
.sheet-watermark-bg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 520px;
    max-width: 85%;
    opacity: 0.065;
    pointer-events: none;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sheet-watermark-bg img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

.sheet-header-logo {
    height: 56px;
    width: auto;
    object-fit: contain;
    border-radius: 8px;
    flex-shrink: 0;
}

.sheet-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 20px;
    position: relative;
    z-index: 2;
}

.sheet-brand-name {
    font-family: var(--font-heading);
    font-size: 1.6rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    color: #ffffff;
}

.sheet-subtitle {
    font-size: 0.75rem;
    color: var(--primary-red);
    font-weight: 700;
    letter-spacing: 0.06em;
}

.sheet-meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
    text-align: right;
    font-size: 0.8rem;
    color: #94a3b8;
}

.sheet-meta strong {
    color: #ffffff;
}

.sheet-divider {
    height: 2px;
    background: linear-gradient(90deg, #ff4757, rgba(255, 71, 87, 0.2));
    margin: 24px 0;
}

.sheet-section {
    margin-bottom: 28px;
}

.sheet-section h3 {
    font-family: var(--font-heading);
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    color: #ffffff;
    margin-bottom: 14px;
    border-left: 3px solid var(--primary-red);
    padding-left: 10px;
}

.sheet-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.sheet-table th, .sheet-table td {
    padding: 10px 14px;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.sheet-table thead {
    background: rgba(255, 255, 255, 0.04);
    font-weight: 700;
}

.sheet-total-row {
    background: rgba(46, 213, 115, 0.08);
}

.sheet-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
}

.sheet-kpi-box {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    text-align: center;
}

.sheet-kpi-box .label {
    font-size: 0.72rem;
    color: var(--text-muted);
}

.sheet-kpi-box strong {
    font-size: 1.15rem;
    color: #ffffff;
}

.sheet-signatures {
    display: flex;
    justify-content: space-around;
    margin-top: 40px;
    padding-top: 20px;
    flex-wrap: wrap;
    gap: 30px;
}

.sheet-sig-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 220px;
    text-align: center;
}

.sheet-sig-line {
    width: 100%;
    height: 1px;
    background: rgba(255, 255, 255, 0.3);
    margin-bottom: 8px;
}

.sheet-sig-box strong {
    font-size: 0.88rem;
    color: #ffffff;
}

.sheet-sig-box span {
    font-size: 0.76rem;
    color: var(--primary-red);
    font-weight: 600;
}

.sheet-sig-box small {
    font-size: 0.68rem;
    color: var(--text-muted);
}

@media print {
    .subpage-nav, .admin-main-tabs-nav, .hero-header-actions, .admin-stats-overview, .print-hide, .subpage-footer {
        display: none !important;
    }

    .executive-official-sheet {
        background: #ffffff !important;
        color: #000000 !important;
        border: none !important;
        padding: 0 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .sheet-watermark-bg {
        opacity: 0.08 !important;
    }

    .sheet-brand-name, .sheet-section h3, .sheet-meta strong, .sheet-sig-box strong, .sheet-kpi-box strong {
        color: #000000 !important;
    }

    .sheet-table th, .sheet-table td {
        border-color: #cccccc !important;
        color: #000000 !important;
    }

    .sheet-table thead {
        background: #f1f5f9 !important;
    }

    .sheet-total-row {
        background: #e2e8f0 !important;
    }

    .sheet-sig-line {
        background: #000000 !important;
    }
}

/* ==============================================================
   GERENCIA: INVENTARIO DE EQUIPOS & AIRES ACONDICIONADOS
   ============================================================== */

.equipment-metrics-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.eq-metric-box {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: 12px;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    gap: 16px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.4);
}

.eq-metric-icon {
    width: 46px;
    height: 46px;
    border-radius: 10px;
    background: rgba(0, 184, 212, 0.15);
    color: #00e5ff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    flex-shrink: 0;
}

.eq-metric-val {
    display: block;
    font-size: 1.45rem;
    font-weight: 800;
    color: #ffffff;
    font-family: var(--font-heading);
}

.eq-metric-lbl {
    display: block;
    font-size: 0.76rem;
    color: var(--text-muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.equipment-toolbar-card {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: 12px;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}

.eq-search-wrap {
    position: relative;
    flex: 1;
    min-width: 260px;
}

.eq-search-wrap .search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted);
    font-size: 0.9rem;
}

.eq-search-wrap input {
    width: 100%;
    background: rgba(0, 0, 0, 0.4);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    padding: 10px 14px 10px 38px;
    color: #ffffff;
    font-size: 0.88rem;
    outline: none;
    transition: var(--transition);
}

.eq-search-wrap input:focus {
    border-color: var(--primary-red);
    box-shadow: 0 0 10px rgba(255, 71, 87, 0.2);
}

.eq-filter-tags {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.eq-tag-btn {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #cbd5e1;
    padding: 7px 14px;
    border-radius: 20px;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}

.eq-tag-btn:hover {
    background: rgba(255, 71, 87, 0.15);
    border-color: rgba(255, 71, 87, 0.4);
    color: #ffffff;
}

.eq-tag-btn.active {
    background: var(--primary-red);
    border-color: var(--primary-red);
    color: #ffffff;
    box-shadow: 0 0 12px rgba(255, 71, 87, 0.4);
}

.equipment-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
    gap: 22px;
}

.equipment-card {
    background: radial-gradient(circle at top left, rgba(22, 27, 48, 0.95) 0%, rgba(11, 14, 26, 0.98) 100%);
    border: 1px solid rgba(255, 71, 87, 0.22);
    border-radius: 16px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.06);
    position: relative;
}

.equipment-card:hover {
    transform: translateY(-4px);
    border-color: rgba(255, 71, 87, 0.55);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.75), 0 0 24px rgba(255, 71, 87, 0.18);
}

.eq-card-media {
    position: relative;
    width: 100%;
    height: 190px;
    background: radial-gradient(circle, #1a2035 0%, #0a0d18 100%);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.eq-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.equipment-card:hover .eq-card-media img {
    transform: scale(1.05);
}

.eq-card-fallback-icon {
    font-size: 3.8rem;
    color: rgba(255, 255, 255, 0.15);
}

.eq-card-status-badge {
    position: absolute;
    top: 12px;
    right: 12px;
    font-size: 0.72rem;
    font-weight: 800;
    font-family: var(--font-heading);
    letter-spacing: 0.04em;
    padding: 5px 12px;
    border-radius: 50px;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(8px);
    z-index: 2;
}

.eq-card-status-badge.status-disponible {
    background: rgba(46, 213, 115, 0.9);
    color: #042511;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.eq-card-status-badge.status-enobra {
    background: rgba(0, 229, 255, 0.9);
    color: #032128;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.eq-card-status-badge.status-mantenimiento {
    background: rgba(255, 71, 87, 0.9);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.eq-card-body {
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 12px;
}

.eq-card-top-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
}

.eq-card-category-pill {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #cbd5e1;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 6px;
    letter-spacing: 0.3px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.eq-card-qr-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(0, 229, 255, 0.1);
    border: 1px solid rgba(0, 229, 255, 0.35);
    padding: 3px 8px;
    border-radius: 6px;
}

.eq-card-qr-chip span {
    font-family: monospace;
    font-size: 0.76rem;
    font-weight: 700;
    color: #00e5ff;
}

.eq-qr-btn-pill {
    background: #00e5ff;
    color: #04121a;
    border: none;
    border-radius: 4px;
    padding: 2px 6px;
    font-size: 0.68rem;
    font-weight: 800;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    transition: var(--transition);
}

.eq-qr-btn-pill:hover {
    background: #ffffff;
    transform: scale(1.05);
}

.eq-card-title {
    font-family: var(--font-heading);
    font-size: 1.05rem;
    font-weight: 800;
    color: #ffffff;
    line-height: 1.35;
    margin: 0;
}

.eq-card-model-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8rem;
    color: #94a3b8;
    background: rgba(0, 0, 0, 0.3);
    padding: 6px 10px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.eq-card-model-row i {
    color: var(--primary-red);
    font-size: 0.9rem;
}

.eq-card-model-row strong {
    color: #e2e8f0;
}

.eq-card-assigned-box {
    padding: 7px 12px;
    background: rgba(255, 177, 66, 0.1);
    border: 1px solid rgba(255, 177, 66, 0.3);
    border-radius: 8px;
    font-size: 0.78rem;
    color: #ffb142;
    display: flex;
    align-items: center;
    gap: 8px;
}

.eq-card-assigned-box i {
    font-size: 0.9rem;
}

.eq-card-notes-box {
    font-size: 0.78rem;
    color: #94a3b8;
    line-height: 1.45;
    background: rgba(255, 255, 255, 0.02);
    border-left: 3px solid rgba(255, 71, 87, 0.4);
    padding: 6px 10px;
    border-radius: 0 6px 6px 0;
    margin: 0;
}

.eq-card-price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    background: rgba(46, 213, 115, 0.06);
    border: 1px solid rgba(46, 213, 115, 0.2);
    border-radius: 8px;
    margin-top: 2px;
}

.eq-card-cost-label {
    font-size: 0.74rem;
    font-weight: 700;
    font-family: var(--font-heading);
    color: #94a3b8;
    display: flex;
    align-items: center;
    gap: 5px;
}

.eq-card-cost-label i {
    color: #2ed573;
}

.eq-card-cost-val {
    font-size: 1.22rem;
    font-weight: 900;
    color: #2ed573;
    font-family: var(--font-heading);
    text-shadow: 0 0 10px rgba(46, 213, 115, 0.3);
}

.eq-card-location-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    font-size: 0.78rem;
    color: #cbd5e1;
}

.eq-location-badge {
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
}

.eq-location-badge i {
    color: #ffb142;
}

.eq-status-select {
    background: rgba(10, 13, 24, 0.95);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 6px;
    padding: 4px 8px;
    font-size: 0.74rem;
    font-weight: 700;
    cursor: pointer;
    outline: none;
    transition: var(--transition);
}

.eq-status-select:focus,
.eq-status-select:hover {
    border-color: var(--primary-red);
}

.eq-card-actions-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
}

.eq-btn-primary-action {
    flex: 1;
    padding: 8px 12px;
    border-radius: 8px;
    font-family: var(--font-heading);
    font-size: 0.8rem;
    font-weight: 800;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    transition: var(--transition);
    border: 1px solid transparent;
}

.eq-btn-assign {
    background: rgba(46, 213, 115, 0.15);
    border-color: rgba(46, 213, 115, 0.4);
    color: #2ed573;
}

.eq-btn-assign:hover {
    background: #2ed573;
    color: #04121a;
    box-shadow: 0 0 14px rgba(46, 213, 115, 0.4);
    transform: translateY(-1px);
}

.eq-btn-return {
    background: rgba(0, 229, 255, 0.15);
    border-color: rgba(0, 229, 255, 0.4);
    color: #00e5ff;
}

.eq-btn-return:hover {
    background: #00e5ff;
    color: #04121a;
    box-shadow: 0 0 14px rgba(0, 229, 255, 0.4);
    transform: translateY(-1px);
}

.eq-btn-delete {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: rgba(255, 71, 87, 0.12);
    border: 1px solid rgba(255, 71, 87, 0.35);
    color: #ff4757;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 0.85rem;
    transition: var(--transition);
    flex-shrink: 0;
}

.eq-btn-delete:hover {
    background: #ff4757;
    color: #ffffff;
    box-shadow: 0 0 12px rgba(255, 71, 87, 0.5);
    transform: translateY(-1px);
}

/* Image Upload in Modal */
.eq-image-upload-box {
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: rgba(0, 0, 0, 0.3);
    border: 1px dashed rgba(255, 255, 255, 0.15);
    border-radius: 8px;
    padding: 12px;
}

.eq-preview-container {
    position: relative;
    width: 100%;
    height: 140px;
    border-radius: 6px;
    overflow: hidden;
}

.eq-preview-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.eq-remove-img-btn {
    position: absolute;
    top: 8px;
    right: 8px;
    background: rgba(255, 71, 87, 0.9);
    border: none;
    color: #ffffff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
}

.eq-upload-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.eq-btn-file {
    background: rgba(255, 71, 87, 0.15);
    border: 1px solid rgba(255, 71, 87, 0.35);
    color: #ffffff;
    padding: 8px 14px;
    border-radius: 6px;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: var(--transition);
}

.eq-btn-file:hover {
    background: var(--primary-red);
}

.eq-url-input {
    flex: 1;
    min-width: 180px;
    padding: 8px 12px;
    font-size: 0.82rem;
}

/* ==============================================================
   PAGINACIÓN MODERNA & ELEGANTE DE EQUIPOS
   ============================================================== */
.equipment-pagination-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 30px;
    padding: 16px 24px;
    background: rgba(13, 16, 26, 0.85);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    flex-wrap: wrap;
    gap: 16px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.pagination-info {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.88rem;
    color: #94a3b8;
    background: rgba(255, 255, 255, 0.03);
    padding: 8px 16px;
    border-radius: 30px;
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.pagination-info i {
    color: var(--primary-red);
    font-size: 0.85rem;
}

.pagination-info strong {
    color: #ffffff;
    font-weight: 700;
}

.pagination-controls {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pagination-btn {
    min-width: 40px;
    height: 40px;
    padding: 0 14px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #cbd5e1;
    font-size: 0.88rem;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: all 0.25s ease;
    user-select: none;
}

.pagination-btn:hover:not(:disabled) {
    background: rgba(255, 71, 87, 0.18);
    border-color: rgba(255, 71, 87, 0.45);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(255, 71, 87, 0.25);
}

.pagination-btn.active {
    background: linear-gradient(135deg, #ff4757, #ff6b81);
    border-color: #ff4757;
    color: #ffffff;
    box-shadow: 0 0 16px rgba(255, 71, 87, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.3);
    font-weight: 800;
    transform: translateY(-1px);
}

.pagination-btn.nav-btn {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.1);
    padding: 0 16px;
    font-size: 0.84rem;
}

.pagination-btn:disabled {
    opacity: 0.3;
    cursor: not-allowed;
    pointer-events: none;
    border-color: rgba(255, 255, 255, 0.05);
    background: rgba(255, 255, 255, 0.02);
}

.pagination-dots {
    color: #64748b;
    padding: 0 6px;
    font-size: 1rem;
    font-weight: 700;
    user-select: none;
}

/* ==============================================================
   GERENCIA: CIERRE DEL DÍA Y CIERRE DEL MES
   ============================================================== */
.report-closure-selector-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: rgba(0, 0, 0, 0.4);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 14px 18px;
    margin-bottom: 20px;
    gap: 16px;
    flex-wrap: wrap;
}

.closure-mode-tabs {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.04);
    padding: 4px;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.closure-mode-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: 8px;
    background: transparent;
    border: none;
    color: #cbd5e1;
    font-size: 0.84rem;
    font-weight: 700;
    cursor: pointer;
    transition: var(--transition);
}

.closure-mode-btn:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.06);
}

.closure-mode-btn.active {
    background: var(--primary-red);
    color: #ffffff;
    box-shadow: 0 0 12px rgba(255, 71, 87, 0.4);
}

.closure-picker-group {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.closure-picker-group input[type="date"],
.closure-picker-group input[type="month"] {
    background: rgba(0, 0, 0, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 8px;
    color: #ffffff;
    padding: 6px 12px;
    font-size: 0.82rem;
    outline: none;
    font-family: inherit;
}

.closure-picker-group input[type="date"]:focus,
.closure-picker-group input[type="month"]:focus {
    border-color: var(--primary-red);
}

.sheet-main-doc-title {
    font-size: 1.05rem;
    font-weight: 800;
    color: #ffffff;
    margin: 8px 0 4px;
    letter-spacing: 0.5px;
}

.sheet-breakdown-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 12px;
    margin-top: 10px;
}

.sheet-breakdown-card {
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 8px;
    padding: 12px 14px;
}

.sheet-breakdown-card .title {
    font-size: 0.76rem;
    color: var(--text-muted);
    font-weight: 600;
    margin-bottom: 4px;
    display: block;
}

.sheet-breakdown-card .val {
    font-size: 1.05rem;
    font-weight: 800;
    color: #ffffff;
}

.closures-history-card {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: 14px;
    padding: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
}

.closures-history-table th, .closures-history-table td {
    padding: 12px 14px;
    font-size: 0.84rem;
}

.closure-type-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 8px;
    border-radius: 6px;
    font-size: 0.74rem;
    font-weight: 700;
}

.closure-type-badge.badge-day {
    background: rgba(255, 71, 87, 0.15);
    color: #ff4757;
    border: 1px solid rgba(255, 71, 87, 0.3);
}

.closure-type-badge.badge-month {
    background: rgba(0, 184, 212, 0.15);
    color: #00e5ff;
    border: 1px solid rgba(0, 184, 212, 0.3);
}

.edit-worker-btn {
    background: rgba(0, 184, 212, 0.12);
    border: 1px solid rgba(0, 184, 212, 0.35);
    color: #00e5ff;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    font-size: 0.82rem;
}

.edit-worker-btn:hover {
    background: #00e5ff;
    color: #04121a;
    box-shadow: 0 0 12px rgba(0, 229, 255, 0.4);
    transform: translateY(-2px);
}

/* ============================================================== */
/* EXECUTIVE TOOL PRESENTATION CARDS (SELECCIÓN DE HERRAMIENTAS)  */
/* ============================================================== */
.tools-selector-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 14px;
    margin-top: 14px;
    max-height: 380px;
    overflow-y: auto;
    padding: 6px 6px 12px 2px;
}

.tools-selector-grid::-webkit-scrollbar {
    width: 6px;
}

.tools-selector-grid::-webkit-scrollbar-thumb {
    background: rgba(0, 229, 255, 0.4);
    border-radius: 6px;
}

.tool-card-presentation {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background: linear-gradient(145deg, rgba(17, 24, 39, 0.85) 0%, rgba(10, 15, 29, 0.95) 100%);
    border: 1.5px solid rgba(255, 255, 255, 0.08);
    border-radius: 14px;
    padding: 14px;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    user-select: none;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.35);
    position: relative;
    overflow: hidden;
}

.tool-card-presentation::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent, rgba(0, 229, 255, 0.3), transparent);
    opacity: 0;
    transition: opacity 0.25s ease;
}

.tool-card-presentation:hover {
    transform: translateY(-3px);
    border-color: rgba(0, 229, 255, 0.45);
    background: linear-gradient(145deg, rgba(22, 33, 54, 0.9) 0%, rgba(12, 19, 36, 0.98) 100%);
    box-shadow: 0 8px 25px rgba(0, 229, 255, 0.18);
}

.tool-card-presentation:hover::before {
    opacity: 1;
}

.tool-card-presentation.selected {
    background: linear-gradient(145deg, rgba(46, 213, 115, 0.14) 0%, rgba(13, 27, 34, 0.95) 100%);
    border-color: #2ed573;
    box-shadow: 0 0 22px rgba(46, 213, 115, 0.28), inset 0 0 15px rgba(46, 213, 115, 0.06);
}

.tool-card-presentation.selected::before {
    background: linear-gradient(90deg, #2ed573, #00e5ff);
    opacity: 1;
}

.tool-card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}

.tool-card-qr-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.68rem;
    font-family: 'Courier New', monospace;
    font-weight: 700;
    color: #00e5ff;
    background: rgba(0, 229, 255, 0.1);
    border: 1px solid rgba(0, 229, 255, 0.25);
    padding: 3px 8px;
    border-radius: 6px;
    letter-spacing: 0.5px;
}

.tool-card-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.72rem;
    font-weight: 700;
    color: #94a3b8;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 3px 8px;
    border-radius: 20px;
    transition: all 0.2s ease;
}

.tool-card-status-pill.active {
    color: #2ed573;
    background: rgba(46, 213, 115, 0.15);
    border-color: rgba(46, 213, 115, 0.4);
}

.tool-card-main {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 12px;
}

.tool-card-avatar {
    width: 46px;
    height: 46px;
    min-width: 46px;
    border-radius: 12px;
    background: radial-gradient(circle, rgba(0, 229, 255, 0.12), rgba(15, 23, 42, 0.8));
    border: 1px solid rgba(0, 229, 255, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    color: #00e5ff;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
}

.tool-card-presentation.selected .tool-card-avatar {
    background: radial-gradient(circle, rgba(46, 213, 115, 0.2), rgba(15, 28, 36, 0.8));
    border-color: rgba(46, 213, 115, 0.45);
    color: #2ed573;
}

.tool-card-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tool-card-details {
    flex: 1;
    min-width: 0;
}

.tool-card-title {
    font-size: 0.86rem;
    font-weight: 800;
    color: #ffffff;
    margin: 0 0 3px 0;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.tool-card-meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.tool-card-model {
    font-size: 0.74rem;
    color: #cbd5e1;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tool-card-cat {
    font-size: 0.68rem;
    color: #94a3b8;
    display: flex;
    align-items: center;
    gap: 4px;
}

.tool-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    padding-top: 10px;
    margin-top: auto;
}

.tool-card-cost {
    font-size: 0.82rem;
    font-weight: 800;
    color: #2ed573;
    display: flex;
    align-items: center;
    gap: 4px;
}

.tool-card-stock-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.68rem;
    font-weight: 700;
    color: #00e5ff;
    background: rgba(0, 229, 255, 0.1);
    border: 1px solid rgba(0, 229, 255, 0.25);
    padding: 2px 7px;
    border-radius: 6px;
}

.tool-card-qty-control {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    padding: 2px 4px;
    transition: all 0.2s ease;
}

.tool-qty-btn {
    width: 24px;
    height: 24px;
    border-radius: 5px;
    border: none;
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: bold;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.18s ease;
}

.tool-qty-btn:hover:not(:disabled) {
    background: var(--primary-red);
    color: #ffffff;
    transform: scale(1.1);
}

.tool-qty-btn:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.tool-qty-display {
    font-size: 0.76rem;
    font-weight: 800;
    color: #ffffff;
    min-width: 44px;
    text-align: center;
    user-select: none;
}

.tool-card-presentation.selected .tool-card-qty-control {
    background: rgba(46, 213, 115, 0.15);
    border-color: rgba(46, 213, 115, 0.4);
}

.tool-card-presentation.selected .tool-qty-display {
    color: #2ed573;
}

.tool-card-action-hint {
    font-size: 0.72rem;
    font-weight: 700;
    color: #94a3b8;
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.04);
}

.tool-card-presentation.selected .tool-card-action-hint {
    color: #2ed573;
    background: rgba(46, 213, 115, 0.15);
}

.tool-card-presentation.assigned-protected {
    border-color: rgba(0, 229, 255, 0.45);
    background: radial-gradient(circle at top left, rgba(0, 229, 255, 0.08) 0%, rgba(15, 23, 42, 0.95) 100%);
    box-shadow: 0 4px 20px rgba(0, 229, 255, 0.15);
}

.tool-card-presentation.requested-tool {
    border-color: rgba(255, 177, 66, 0.45);
    background: radial-gradient(circle at top left, rgba(255, 177, 66, 0.08) 0%, rgba(15, 23, 42, 0.95) 100%);
    box-shadow: 0 4px 20px rgba(255, 177, 66, 0.15);
}

.tool-card-req-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(0, 229, 255, 0.45) !important;
    background: linear-gradient(135deg, rgba(0, 229, 255, 0.35) 0%, rgba(37, 99, 235, 0.45) 100%) !important;
}

/* ============================================================== */
/* EXECUTIVE TOOL CATALOG PAGINATION (PAGINACIÓN EJECUTIVA)       */
/* ============================================================== */
.tools-pagination-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-top: 18px;
    padding: 12px 20px;
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.94) 0%, rgba(10, 15, 30, 0.98) 100%);
    border: 1px solid rgba(0, 229, 255, 0.22);
    border-radius: 14px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    flex-wrap: wrap;
}

.tools-pagination-info {
    font-size: 0.84rem;
    color: #94a3b8;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    letter-spacing: 0.2px;
}

.tools-pagination-icon {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: rgba(255, 71, 87, 0.15);
    border: 1px solid rgba(255, 71, 87, 0.35);
    color: #ff4757;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.88rem;
    box-shadow: 0 0 12px rgba(255, 71, 87, 0.2);
}

.tools-pagination-info .highlight-range {
    color: #ffffff;
    font-weight: 800;
    padding: 2px 8px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 6px;
}

.tools-pagination-info .highlight-total {
    color: #00e5ff;
    font-weight: 800;
    text-shadow: 0 0 10px rgba(0, 229, 255, 0.35);
}

.tools-pagination-buttons {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(0, 0, 0, 0.35);
    padding: 4px 6px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.tool-page-nav-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 14px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.05);
    color: #cbd5e1;
    font-size: 0.78rem;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    user-select: none;
}

.tool-page-nav-btn:hover:not(:disabled) {
    background: rgba(0, 229, 255, 0.18);
    border-color: #00e5ff;
    color: #ffffff;
    box-shadow: 0 0 14px rgba(0, 229, 255, 0.35);
    transform: translateY(-1px);
}

.tool-page-nav-btn:disabled {
    opacity: 0.25;
    cursor: not-allowed;
    border-color: transparent;
    background: transparent;
    color: #64748b;
}

.tool-page-btn {
    min-width: 34px;
    height: 34px;
    padding: 0 10px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.05);
    color: #cbd5e1;
    font-size: 0.84rem;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    user-select: none;
}

.tool-page-btn:hover:not(:disabled) {
    background: rgba(0, 229, 255, 0.2);
    border-color: #00e5ff;
    color: #ffffff;
    box-shadow: 0 0 16px rgba(0, 229, 255, 0.4);
    transform: translateY(-1px);
}

.tool-page-btn.active {
    background: linear-gradient(135deg, #ff4757 0%, #ff6b81 100%);
    border-color: #ff6b81;
    color: #ffffff;
    box-shadow: 0 0 18px rgba(255, 71, 87, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.4);
    font-weight: 800;
    transform: scale(1.06);
}

@media (max-width: 640px) {
    .tools-pagination-bar {
        flex-direction: column;
        align-items: center;
        gap: 12px;
        padding: 12px 14px;
        text-align: center;
    }
    .tools-pagination-buttons {
        width: 100%;
        justify-content: center;
        flex-wrap: wrap;
    }
}

.selected-tools-pill-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
    padding: 10px 14px;
    background: rgba(0, 0, 0, 0.25);
    border-radius: 8px;
    border: 1px dashed rgba(255, 255, 255, 0.12);
}

.selected-tool-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255, 71, 87, 0.15);
    border: 1px solid rgba(255, 71, 87, 0.4);
    color: #ffffff;
    font-size: 0.76rem;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 20px;
}

.selected-tool-pill button {
    background: none;
    border: none;
    color: #ff4757;
    cursor: pointer;
    font-size: 0.75rem;
    padding: 0;
    display: flex;
    align-items: center;
}

.emp-tools-btn {
    background: rgba(0, 229, 255, 0.12);
    border: 1px solid rgba(0, 229, 255, 0.35);
    color: #00e5ff;
    padding: 6px 12px;
    border-radius: 6px;
    font-family: var(--font-heading);
    font-size: 0.76rem;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: var(--transition);
}

.emp-tools-btn:hover {
    background: #00e5ff;
    color: #080a14;
    box-shadow: 0 0 14px rgba(0, 229, 255, 0.45);
    transform: translateY(-1px);
}

.edit-evidence-btn {
    background: rgba(255, 71, 87, 0.12);
    border: 1px solid rgba(255, 71, 87, 0.35);
    color: #ff6b81;
    padding: 6px 12px;
    border-radius: 6px;
    font-family: var(--font-heading);
    font-size: 0.76rem;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: var(--transition);
}

.edit-evidence-btn:hover {
    background: var(--primary-red);
    color: #ffffff;
    box-shadow: 0 0 14px var(--accent-red-glow);
    transform: translateY(-1px);
}

.status-radio-option {
    transition: var(--transition);
}

.status-radio-option:hover {
    border-color: rgba(255, 255, 255, 0.4) !important;
}

.mini-tool-edit-btn {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #e2e8f0;
    padding: 3px 8px;
    border-radius: 5px;
    font-size: 0.7rem;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: var(--transition);
}

.mini-tool-edit-btn:hover {
    background: var(--primary-red);
    border-color: var(--primary-red);
    color: #ffffff;
}

.mini-tool-pick-btn {
    background: rgba(0, 229, 255, 0.08);
    border: 1px dashed rgba(0, 229, 255, 0.35);
    color: #00e5ff;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 0.72rem;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: var(--transition);
}

.mini-tool-pick-btn:hover {
    background: rgba(0, 229, 255, 0.2);
    border-style: solid;
    border-color: #00e5ff;
}

/* ==============================================================
   WORKER ACTIVE / RESIGNED STATUS STYLES (RRHH)
   ============================================================== */
.worker-status-radio-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 4px;
}

@media (max-width: 500px) {
    .worker-status-radio-group {
        grid-template-columns: 1fr;
    }
}

.status-option-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
    transition: var(--transition);
}

.status-option-btn.active-opt {
    background: rgba(46, 213, 115, 0.08);
    border: 1px solid rgba(46, 213, 115, 0.35);
    color: #2ed573;
}

.status-option-btn.active-opt:hover {
    border-color: #2ed573;
    background: rgba(46, 213, 115, 0.16);
}

.status-option-btn.resigned-opt {
    background: rgba(255, 71, 87, 0.08);
    border: 1px solid rgba(255, 71, 87, 0.35);
    color: #ff4757;
}

.status-option-btn.resigned-opt:hover {
    border-color: #ff4757;
    background: rgba(255, 71, 87, 0.16);
}

.worker-access-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 8px;
    border-radius: 6px;
    font-family: var(--font-heading);
    font-size: 0.68rem;
    font-weight: 800;
    cursor: pointer;
    margin-right: 4px;
    transition: var(--transition);
    border: 1px solid transparent;
}

.worker-access-btn.status-active {
    background: rgba(46, 213, 115, 0.12);
    border-color: rgba(46, 213, 115, 0.35);
    color: #2ed573;
}

.worker-access-btn.status-active:hover {
    background: #2ed573;
    color: #080a14;
    transform: translateY(-1px);
    box-shadow: 0 0 10px rgba(46, 213, 115, 0.4);
}

.worker-access-btn.status-resigned {
    background: rgba(255, 71, 87, 0.15);
    border-color: rgba(255, 71, 87, 0.4);
    color: #ff4757;
}

.worker-access-btn.status-resigned:hover {
    background: #ff4757;
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow: 0 0 10px rgba(255, 71, 87, 0.4);
}

.row-worker-resigned {
    background: rgba(255, 71, 87, 0.02) !important;
}

/* ==============================================================
   EXECUTIVE BUSINESS / PRESENTATION CARDS (RRHH)
   Tarjetas de Presentación Corporativas para Colaboradores y Técnicos
   ============================================================== */

.admin-table tbody tr.worker-card-item {
    background: linear-gradient(145deg, rgba(22, 27, 48, 0.95) 0%, rgba(11, 14, 26, 0.98) 100%) !important;
    border: 1px solid rgba(255, 71, 87, 0.25) !important;
    border-radius: 16px !important;
    padding: 22px 24px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    position: relative !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    width: 100% !important;
}

.admin-table tbody tr.worker-card-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--primary-red), #00e5ff);
    opacity: 0.85;
}

.admin-table tbody tr.worker-card-item:hover {
    border-color: rgba(255, 71, 87, 0.55) !important;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.6), 0 0 24px rgba(255, 71, 87, 0.18) !important;
    transform: translateY(-3px) !important;
}

/* Card Header (Identity, Avatar, Badges & Job Title) */
.worker-card-header {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    width: 100%;
}

.worker-card-avatar-wrap {
    flex-shrink: 0;
}

.worker-card-avatar-wrap .worker-avatar-icon {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    border-radius: 14px !important;
    background: linear-gradient(135deg, rgba(255, 71, 87, 0.2), rgba(255, 71, 87, 0.05)) !important;
    border: 1px solid rgba(255, 71, 87, 0.4) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 1.4rem !important;
    color: var(--primary-red) !important;
    box-shadow: 0 4px 14px rgba(255, 71, 87, 0.2) !important;
}

.worker-card-info {
    display: flex;
    flex-direction: column;
    gap: 5px;
    flex: 1;
    min-width: 0;
}

.worker-card-name-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.worker-name-title {
    font-family: var(--font-heading);
    font-size: 1.15rem;
    font-weight: 800;
    color: #ffffff;
    margin: 0;
    letter-spacing: 0.01em;
    line-height: 1.2;
}

.worker-card-badges {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.worker-card-subline {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 1px;
}

.worker-specialty-text {
    font-size: 0.86rem;
    font-weight: 700;
    color: #38bdf8;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.worker-specialty-text i {
    color: #00e5ff;
    font-size: 0.82rem;
}

.worker-card-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    font-size: 0.78rem;
    color: #94a3b8;
    margin-top: 2px;
}

.worker-user-badge {
    background: rgba(0, 229, 255, 0.08);
    border: 1px solid rgba(0, 229, 255, 0.2);
    color: #38bdf8;
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: 700;
    font-family: var(--font-heading);
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.worker-note-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

/* 3-Column Financial & Payroll Strip */
.worker-card-metrics-grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr 1.3fr;
    gap: 8px;
    background: rgba(0, 0, 0, 0.4);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 10px 14px;
    align-items: center;
    box-sizing: border-box;
    width: 100%;
}

.metric-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    text-align: center;
}

.metric-block-label {
    font-size: 0.68rem;
    font-weight: 800;
    font-family: var(--font-heading);
    color: #94a3b8;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    gap: 4px;
}

.metric-block-label i {
    font-size: 0.72rem;
    color: var(--primary-red);
}

.metric-block-value {
    font-size: 0.95rem;
    font-weight: 800;
    color: #ffffff;
    font-family: var(--font-heading);
}

.metric-block-value.total-highlight {
    font-size: 1.18rem;
    color: #2ed573;
    text-shadow: 0 0 10px rgba(46, 213, 115, 0.4);
}

.metric-block.metric-total {
    background: rgba(46, 213, 115, 0.08);
    border: 1px solid rgba(46, 213, 115, 0.25);
    border-radius: 8px;
    padding: 5px 8px;
}

/* Card Footer (Payment Status & Action Buttons) */
.worker-card-footer-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding-top: 8px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    box-sizing: border-box;
}

.footer-payment-status {
    flex-shrink: 0;
}

.footer-action-buttons {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    justify-content: flex-end;
}

.card-btn-edit,
.card-btn-delete {
    height: 36px;
    padding: 0 16px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 0.8rem;
    cursor: pointer;
    transition: all 0.25s ease;
    border: none;
}

.card-btn-edit {
    background: rgba(0, 229, 255, 0.12);
    border: 1px solid rgba(0, 229, 255, 0.35);
    color: #00e5ff;
}

.card-btn-edit:hover {
    background: #00e5ff;
    color: #080a14;
    box-shadow: 0 0 14px rgba(0, 229, 255, 0.5);
    transform: translateY(-2px);
}

.card-btn-delete {
    background: rgba(255, 71, 87, 0.12);
    border: 1px solid rgba(255, 71, 87, 0.35);
    color: #ff6b81;
}

.card-btn-delete:hover {
    background: var(--primary-red);
    color: #ffffff;
    box-shadow: 0 0 14px var(--accent-red-glow);
    transform: translateY(-2px);
}

/* ==============================================================
   EXECUTIVE EXPENSE / VOUCHER PRESENTATION CARDS (PRESUPUESTO)
   Tarjetas Ejecutivas de Desembolso y Comprobantes de Gastos
   ============================================================== */

.admin-table tbody tr.expense-card-item {
    background: linear-gradient(145deg, rgba(22, 27, 48, 0.95) 0%, rgba(11, 14, 26, 0.98) 100%) !important;
    border: 1px solid rgba(255, 71, 87, 0.25) !important;
    border-radius: 16px !important;
    padding: 22px 24px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    position: relative !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    width: 100% !important;
}

.admin-table tbody tr.expense-card-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #ff4757, #ffa502);
    opacity: 0.85;
}

.admin-table tbody tr.expense-card-item:hover {
    border-color: rgba(255, 71, 87, 0.55) !important;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.6), 0 0 24px rgba(255, 71, 87, 0.18) !important;
    transform: translateY(-3px) !important;
}

.expense-card-header {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    width: 100%;
}

.expense-card-icon-wrap {
    width: 52px;
    height: 52px;
    min-width: 52px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    flex-shrink: 0;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);
}

.expense-card-icon-wrap.badge-movilidad {
    background: rgba(0, 136, 204, 0.15);
    color: #00e5ff;
    border: 1px solid rgba(0, 229, 255, 0.4);
    box-shadow: 0 4px 14px rgba(0, 229, 255, 0.2);
}

.expense-card-icon-wrap.badge-comida {
    background: rgba(255, 177, 66, 0.15);
    color: #ffb142;
    border: 1px solid rgba(255, 177, 66, 0.4);
    box-shadow: 0 4px 14px rgba(255, 177, 66, 0.2);
}

.expense-card-icon-wrap.badge-delivery {
    background: rgba(165, 94, 234, 0.15);
    color: #c56cf0;
    border: 1px solid rgba(165, 94, 234, 0.4);
    box-shadow: 0 4px 14px rgba(165, 94, 234, 0.2);
}

.expense-card-icon-wrap.badge-materiales {
    background: rgba(46, 213, 115, 0.15);
    color: #2ed573;
    border: 1px solid rgba(46, 213, 115, 0.4);
    box-shadow: 0 4px 14px rgba(46, 213, 115, 0.2);
}

.expense-card-info {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
    min-width: 0;
}

.expense-card-top-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
}

.expense-card-date {
    font-size: 0.78rem;
    color: #94a3b8;
    font-family: var(--font-heading);
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.08);
    padding: 3px 8px;
    border-radius: 6px;
}

.expense-concept-title {
    font-family: var(--font-heading);
    font-size: 1.08rem;
    font-weight: 800;
    color: #ffffff;
    margin: 0;
    line-height: 1.35;
    letter-spacing: 0.01em;
}

.expense-responsible-line {
    font-size: 0.82rem;
    color: #cbd5e1;
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 2px;
}

.expense-responsible-line i {
    color: #38bdf8;
    font-size: 0.85rem;
}

.expense-responsible-line strong {
    color: #ffffff;
    font-weight: 700;
}

.expense-card-bottom-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    box-sizing: border-box;
}

.expense-amount-strip {
    display: flex;
    align-items: center;
    gap: 10px;
    background: rgba(255, 71, 87, 0.08);
    border: 1px solid rgba(255, 71, 87, 0.25);
    padding: 6px 14px;
    border-radius: 8px;
}

.expense-amount-label {
    font-size: 0.72rem;
    font-weight: 800;
    font-family: var(--font-heading);
    color: #94a3b8;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    gap: 5px;
}

.expense-amount-label i {
    color: var(--primary-red);
}

.expense-amount-val {
    font-size: 1.18rem;
    font-weight: 900;
    color: #ff4757;
    font-family: var(--font-heading);
    text-shadow: 0 0 10px rgba(255, 71, 87, 0.4);
}

/* ==============================================================
   CALENDAR DATE FILTER (HISTORIAL DE GASTOS)
   ============================================================== */
.budget-header-filter-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.calendar-filter-label {
    font-size: 0.84rem;
    font-weight: 700;
    color: #cbd5e1;
    font-family: var(--font-heading);
    display: flex;
    align-items: center;
    gap: 7px;
}

.calendar-filter-label i {
    color: var(--primary-red);
    font-size: 0.95rem;
}

.calendar-input-group {
    display: flex;
    align-items: center;
    gap: 8px;
}

.budget-date-picker-input {
    background: rgba(10, 13, 24, 0.95) !important;
    border: 1px solid rgba(255, 71, 87, 0.35) !important;
    border-radius: 10px !important;
    color: #ffffff !important;
    font-family: var(--font-heading) !important;
    font-weight: 700 !important;
    font-size: 0.86rem !important;
    padding: 7px 14px !important;
    height: 38px !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
    transition: all 0.25s ease !important;
    color-scheme: dark !important;
}

.budget-date-picker-input:hover,
.budget-date-picker-input:focus {
    border-color: var(--primary-red) !important;
    box-shadow: 0 0 14px var(--accent-red-glow) !important;
    outline: none !important;
}

.calendar-clear-btn {
    background: rgba(255, 71, 87, 0.12);
    border: 1px solid rgba(255, 71, 87, 0.35);
    color: #ff6b81;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 0.8rem;
    padding: 0 14px;
    height: 38px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    transition: var(--transition);
}

.calendar-clear-btn:hover {
    background: var(--primary-red);
    color: #ffffff;
    box-shadow: 0 0 14px var(--accent-red-glow);
}

/* ==============================================================
   WORKER LIVE SEARCH BAR (PLANTILLA DE TRABAJADORES)
   ============================================================== */
.worker-search-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 260px;
    max-width: 460px;
}

.worker-search-box-wrap {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.worker-search-box-wrap .search-icon {
    position: absolute;
    left: 14px;
    color: var(--primary-red);
    font-size: 0.92rem;
    pointer-events: none;
}

.worker-search-input {
    width: 100% !important;
    background: rgba(10, 13, 24, 0.95) !important;
    border: 1px solid rgba(255, 71, 87, 0.35) !important;
    border-radius: 10px !important;
    color: #ffffff !important;
    font-family: var(--font-heading) !important;
    font-size: 0.86rem !important;
    font-weight: 600 !important;
    padding: 9px 40px 9px 38px !important;
    height: 40px !important;
    box-sizing: border-box !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
    transition: all 0.25s ease !important;
}

.worker-search-input:focus,
.worker-search-input:hover {
    border-color: var(--primary-red) !important;
    box-shadow: 0 0 16px var(--accent-red-glow) !important;
    outline: none !important;
}

.worker-search-input::placeholder {
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 500;
}

.search-clear-btn {
    position: absolute;
    right: 10px;
    background: rgba(255, 71, 87, 0.2);
    border: 1px solid rgba(255, 71, 87, 0.4);
    color: #ff6b81;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    cursor: pointer;
    transition: var(--transition);
}

.search-clear-btn:hover {
    background: var(--primary-red);
    color: #ffffff;
    transform: scale(1.1);
}

.worker-phone-badge {
    background: rgba(46, 213, 115, 0.08);
    border: 1px solid rgba(46, 213, 115, 0.25);
    color: #2ed573;
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: 700;
    font-family: var(--font-heading);
    font-size: 0.76rem;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* ==============================================================
   ADMIN ATTENDANCE METRICS & FILTER BAR
   ============================================================== */
.admin-att-metrics-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.att-metric-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 14px 18px;
    display: flex;
    align-items: center;
    gap: 14px;
    transition: var(--transition);
}

.att-metric-card:hover {
    border-color: rgba(0, 229, 255, 0.3);
    background: rgba(255, 255, 255, 0.05);
    transform: translateY(-2px);
}

.att-filter-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    background: linear-gradient(180deg, rgba(22, 28, 48, 0.95) 0%, rgba(11, 14, 26, 0.98) 100%);
    border: 1px solid rgba(0, 229, 255, 0.25);
    border-radius: 14px;
    padding: 14px 18px;
    margin-bottom: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.att-toolbar-search-wrap {
    flex: 1 1 260px;
    position: relative;
    display: flex;
    align-items: center;
    min-width: 220px;
}

.att-toolbar-search-wrap .search-icon {
    position: absolute;
    left: 14px;
    color: #00e5ff;
    font-size: 0.9rem;
    pointer-events: none;
}

.att-toolbar-search-input {
    width: 100%;
    height: 42px;
    background: rgba(0, 0, 0, 0.45);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    padding: 0 38px 0 40px;
    color: #ffffff;
    font-family: inherit;
    font-size: 0.86rem;
    outline: none;
    transition: all 0.2s ease;
}

.att-toolbar-search-input:focus {
    border-color: #00e5ff;
    background: rgba(0, 0, 0, 0.65);
    box-shadow: 0 0 15px rgba(0, 229, 255, 0.3);
}

.att-toolbar-search-input::placeholder {
    color: #64748b;
    font-size: 0.82rem;
}

/* Executive Calendar Picker Box */
.att-toolbar-date-box {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 42px;
    background: rgba(0, 229, 255, 0.06);
    border: 1px solid rgba(0, 229, 255, 0.35);
    border-radius: 10px;
    padding: 0 12px;
    cursor: pointer;
    transition: all 0.2s ease;
    flex-shrink: 0;
}

.att-toolbar-date-box:hover {
    background: rgba(0, 229, 255, 0.12);
    border-color: #00e5ff;
    box-shadow: 0 0 14px rgba(0, 229, 255, 0.25);
}

.att-date-box-left {
    display: flex;
    align-items: center;
    gap: 6px;
    pointer-events: none;
}

.att-calendar-ico {
    color: #00e5ff;
    font-size: 1.05rem;
}

.att-date-box-title {
    font-family: var(--font-heading);
    font-size: 0.78rem;
    font-weight: 800;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.att-calendar-date-input {
    background: transparent;
    border: none;
    color: #ffffff;
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 0.86rem;
    outline: none;
    cursor: pointer;
    color-scheme: dark;
    padding: 0;
    min-width: 125px;
}

.att-calendar-date-input::-webkit-calendar-picker-indicator {
    filter: invert(0.8) sepia(100%) saturate(300%) hue-rotate(150deg);
    cursor: pointer;
    padding: 2px;
    margin-left: 4px;
}

.att-date-clear-icon-btn {
    background: rgba(255, 71, 87, 0.2);
    border: 1px solid rgba(255, 71, 87, 0.4);
    color: #ff6b81;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.68rem;
    cursor: pointer;
    transition: var(--transition);
}

.att-date-clear-icon-btn:hover {
    background: var(--primary-red);
    color: #ffffff;
    transform: scale(1.1);
}

/* Status Selector Box */
.att-toolbar-select-box {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 42px;
    background: rgba(0, 0, 0, 0.45);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    padding: 0 10px 0 12px;
    flex-shrink: 0;
    transition: all 0.2s ease;
}

.att-toolbar-select-box:focus-within {
    border-color: #ffb142;
    box-shadow: 0 0 14px rgba(255, 177, 66, 0.25);
}

.att-status-select-ico {
    color: #ffb142;
    font-size: 0.9rem;
    pointer-events: none;
}

.att-toolbar-select {
    background: transparent;
    border: none;
    color: #ffffff;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 0.84rem;
    outline: none;
    cursor: pointer;
}

.att-toolbar-select option {
    background: #0e1220;
    color: #ffffff;
    padding: 8px;
}

/* Actions Group (Limpiar & Actualizar) */
.att-toolbar-actions-group {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.att-btn-clean {
    height: 42px;
    padding: 0 15px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #cbd5e1;
    font-family: var(--font-heading);
    font-size: 0.82rem;
    font-weight: 800;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.2s ease;
}

.att-btn-clean:hover {
    background: rgba(255, 71, 87, 0.15);
    border-color: #ff4757;
    color: #ffffff;
    box-shadow: 0 0 12px rgba(255, 71, 87, 0.25);
    transform: translateY(-1px);
}

.att-btn-refresh {
    height: 42px;
    padding: 0 16px;
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(0, 229, 255, 0.18) 0%, rgba(0, 160, 255, 0.22) 100%);
    border: 1px solid #00e5ff;
    color: #00e5ff;
    font-family: var(--font-heading);
    font-size: 0.82rem;
    font-weight: 800;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.2s ease;
    box-shadow: 0 0 14px rgba(0, 229, 255, 0.2);
}

.att-btn-refresh:hover {
    background: #00e5ff;
    color: #041017;
    box-shadow: 0 0 20px rgba(0, 229, 255, 0.5);
    transform: translateY(-1px);
}

/* ---------------- RESPONSIVE FILTER TOOLBAR & EXECUTIVE CARDS (MOBILE OPTIMIZED) ---------------- */
@media (max-width: 768px) {
    .admin-content-card {
        padding: 16px 14px !important;
        gap: 12px !important;
        border-radius: 16px !important;
        height: auto !important;
        min-height: 0 !important;
        box-sizing: border-box !important;
    }

    .card-header-bar {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 10px !important;
        width: 100% !important;
    }

    .card-header-titles {
        width: 100% !important;
    }

    .card-header-titles h2 {
        font-size: 1.05rem !important;
        line-height: 1.3 !important;
        margin-bottom: 3px !important;
    }

    .card-header-titles p {
        font-size: 0.76rem !important;
        line-height: 1.35 !important;
        color: #94a3b8 !important;
    }

    .card-header-bar .add-action-btn {
        width: auto !important;
        padding: 8px 14px !important;
        font-size: 0.78rem !important;
        height: 38px !important;
        border-radius: 10px !important;
        align-self: flex-start !important;
    }

    .card-header-bar .add-action-btn span {
        display: inline !important;
    }

    .card-header-actions-row {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 8px !important;
        flex-wrap: nowrap !important;
        margin-top: 4px !important;
    }

    .card-header-bar .export-btn,
    .card-header-bar button.export-btn,
    .card-header-actions-row .export-btn,
    .table-toolbar .export-btn,
    .closure-picker-group .export-btn {
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        padding: 0 !important;
        border-radius: 12px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 1.25rem !important;
        flex: 0 0 auto !important;
    }

    .card-header-bar .export-btn span,
    .card-header-bar button.export-btn span,
    .table-toolbar .export-btn span,
    .closure-picker-group .export-btn span {
        display: none !important;
    }

    .card-header-bar .export-btn i,
    .card-header-bar button.export-btn i,
    .table-toolbar .export-btn i,
    .closure-picker-group .export-btn i {
        margin: 0 !important;
        font-size: 1.25rem !important;
    }

    .att-filter-toolbar {
        display: flex !important;
        flex-direction: column !important;
        justify-content: flex-start !important;
        align-items: stretch !important;
        padding: 12px 14px !important;
        gap: 8px !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 6px 0 14px 0 !important;
        box-sizing: border-box !important;
        border-radius: 14px !important;
    }

    .att-toolbar-search-wrap {
        width: 100% !important;
        min-width: 100% !important;
        flex: 1 1 100% !important;
        box-sizing: border-box !important;
        margin: 0 !important;
    }

    .att-toolbar-search-input {
        height: 40px !important;
        font-size: 0.82rem !important;
        padding: 0 34px 0 36px !important;
        border-radius: 9px !important;
        box-sizing: border-box !important;
    }

    .att-toolbar-date-box {
        width: 100% !important;
        height: 40px !important;
        min-height: 40px !important;
        justify-content: space-between !important;
        box-sizing: border-box !important;
        padding: 0 10px !important;
        border-radius: 9px !important;
        margin: 0 !important;
    }

    .att-calendar-date-input {
        font-size: 0.82rem !important;
        min-width: 110px !important;
    }

    .att-toolbar-select-box {
        width: 100% !important;
        height: 40px !important;
        min-height: 40px !important;
        justify-content: space-between !important;
        box-sizing: border-box !important;
        padding: 0 10px !important;
        border-radius: 9px !important;
        margin: 0 !important;
    }

    .att-toolbar-select {
        width: 100% !important;
        font-size: 0.82rem !important;
    }

    .hero-header-actions {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 8px !important;
        width: 100% !important;
        margin-top: 8px !important;
        flex-wrap: wrap !important;
    }

    .hero-header-actions button span,
    .hero-header-actions .export-btn span {
        display: none !important;
    }

    .hero-header-actions button,
    .hero-header-actions .export-btn {
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        border-radius: 12px !important;
        padding: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 1.2rem !important;
        flex: 0 0 auto !important;
    }

    .hero-header-actions button i,
    .hero-header-actions .export-btn i {
        margin: 0 !important;
        font-size: 1.2rem !important;
    }

    .att-toolbar-actions-group {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        width: 100% !important;
        gap: 8px !important;
        box-sizing: border-box !important;
        margin-top: 2px !important;
    }

    .att-toolbar-actions-group button span,
    .att-toolbar-actions-group .export-btn span,
    .att-toolbar-actions-group .att-btn-clean span,
    .att-toolbar-actions-group .att-btn-refresh span {
        display: none !important;
    }

    .att-toolbar-actions-group button,
    .att-toolbar-actions-group .export-btn,
    .att-toolbar-actions-group .att-btn-clean,
    .att-toolbar-actions-group .att-btn-refresh {
        width: 100% !important;
        height: 42px !important;
        min-height: 42px !important;
        padding: 0 !important;
        border-radius: 9px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 1.15rem !important;
        box-sizing: border-box !important;
    }

    .att-toolbar-actions-group button i,
    .att-toolbar-actions-group .export-btn i,
    .att-toolbar-actions-group .att-btn-clean i,
    .att-toolbar-actions-group .att-btn-refresh i {
        margin: 0 !important;
        font-size: 1.15rem !important;
    }

    /* Closure Mode Tabs Mobile Layout (Icon on top, Text on bottom) */
    .report-closure-selector-bar {
        display: flex !important;
        flex-direction: column !important;
        padding: 12px 10px !important;
        gap: 10px !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .closure-mode-tabs {
        display: grid !important;
        grid-template-columns: repeat(4, 1fr) !important;
        width: 100% !important;
        gap: 4px !important;
        padding: 4px !important;
        border-radius: 12px !important;
        box-sizing: border-box !important;
    }

    .closure-mode-btn {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 3px !important;
        padding: 8px 2px !important;
        font-size: 0.7rem !important;
        text-align: center !important;
        width: 100% !important;
        border-radius: 8px !important;
        box-sizing: border-box !important;
    }

    .closure-mode-btn i {
        font-size: 1.2rem !important;
        margin: 0 !important;
    }

    .closure-mode-btn span {
        font-size: 0.68rem !important;
        font-weight: 700 !important;
        display: block !important;
        white-space: nowrap !important;
        margin-top: 1px !important;
    }

    .closure-picker-group {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        gap: 8px !important;
        box-sizing: border-box !important;
    }

    .closure-picker-group input[type="date"],
    .closure-picker-group input[type="month"] {
        width: 100% !important;
        box-sizing: border-box !important;
    }

    #picker-wrap-day, #picker-wrap-month {
        width: 100% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        box-sizing: border-box !important;
    }
}

@media (max-width: 480px) {
    .att-toolbar-actions-group {
        grid-template-columns: 1.3fr 1fr 1fr !important;
        gap: 5px !important;
    }
    
    .att-toolbar-actions-group span {
        font-size: 0.72rem !important;
    }
}

/* ==============================================================
   MODERN EMPTY STATE COMPONENT (MOBILE-FIRST)
   ============================================================== */
.empty-state-modern {
    text-align: center;
    padding: 32px 16px;
    background: radial-gradient(circle at center, rgba(18, 24, 44, 0.7) 0%, rgba(8, 12, 22, 0.9) 100%);
    border: 1px dashed rgba(0, 229, 255, 0.25);
    border-radius: 16px;
    margin: 12px 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    box-sizing: border-box;
    width: 100%;
}

.empty-state-icon-wrap {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: rgba(0, 229, 255, 0.1);
    border: 1px solid rgba(0, 229, 255, 0.3);
    color: #00e5ff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    margin-bottom: 4px;
    box-shadow: 0 0 20px rgba(0, 229, 255, 0.2);
}

.empty-state-title {
    font-family: var(--font-heading);
    font-size: 0.92rem;
    font-weight: 800;
    color: #ffffff;
    margin: 0;
    line-height: 1.4;
}

.empty-state-desc {
    font-size: 0.78rem;
    color: #94a3b8;
    max-width: 360px;
    margin: 0 auto;
    line-height: 1.45;
}

.empty-state-btn {
    margin-top: 6px;
    padding: 7px 14px;
    font-size: 0.75rem;
    font-weight: 700;
    border-radius: 8px;
    background: rgba(0, 229, 255, 0.12);
    border: 1px solid rgba(0, 229, 255, 0.35);
    color: #00e5ff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.2s ease;
}

.empty-state-btn:hover {
    background: #00e5ff;
    color: #041017;
    box-shadow: 0 0 15px rgba(0, 229, 255, 0.4);
}

/* ==============================================================
   ATTENDANCE PRESENTATION CARDS GRID & ITEM STYLING
   ============================================================== */
.attendance-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));
    gap: 18px;
    margin-top: 14px;
}

@media (max-width: 768px) {
    .attendance-cards-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }
}

.attendance-card-item {
    background: radial-gradient(circle at top left, rgba(24, 30, 54, 0.95) 0%, rgba(10, 13, 24, 0.98) 100%);
    border: 1px solid rgba(0, 229, 255, 0.22);
    border-radius: 14px;
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.06);
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.attendance-card-item:hover {
    border-color: rgba(0, 229, 255, 0.45);
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.6), 0 0 20px rgba(0, 229, 255, 0.15);
    transform: translateY(-2px);
}

.attendance-card-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #00e5ff 0%, #2ed573 50%, #ff4757 100%);
}

.att-card-header {
    display: flex;
    align-items: center;
    gap: 14px;
}

.att-card-avatar {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(0, 229, 255, 0.2) 0%, rgba(46, 213, 115, 0.15) 100%);
    border: 1px solid rgba(0, 229, 255, 0.35);
    color: #00e5ff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    flex-shrink: 0;
    box-shadow: 0 4px 14px rgba(0, 229, 255, 0.2);
}

.att-card-user-info {
    flex: 1;
    min-width: 0;
}

.att-card-name-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 4px;
}

.att-card-worker-name {
    font-family: var(--font-heading);
    font-size: 1.05rem;
    font-weight: 800;
    color: #ffffff;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.att-card-sub-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    font-size: 0.78rem;
}

.att-worker-username {
    color: #00e5ff;
    font-weight: 700;
    font-family: var(--font-heading);
}

.att-card-date {
    color: #94a3b8;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* Times Grid */
.att-card-times-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    background: rgba(0, 0, 0, 0.35);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 10px;
    padding: 12px;
}

.att-time-box {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.att-time-label {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 5px;
}

.att-time-box.checkin .att-time-label {
    color: #2ed573;
}

.att-time-box.checkout .att-time-label {
    color: #ff4757;
}

.att-time-box.in-progress .att-time-label {
    color: #ffb142;
}

.att-time-val {
    font-family: var(--font-heading);
    font-size: 0.98rem;
    font-weight: 800;
    color: #ffffff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.att-time-box.checkin .att-time-val {
    color: #2ed573;
}

.att-time-box.checkout .att-time-val {
    color: #ff4757;
}

.att-time-val.in-progress-text {
    color: #ffb142;
    font-size: 0.85rem;
}

.att-location-val {
    font-size: 0.74rem;
    color: #cbd5e1;
    display: flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Footer of Card */
.att-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-top: 6px;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.att-hours-badge {
    background: rgba(0, 229, 255, 0.12);
    border: 1px solid rgba(0, 229, 255, 0.3);
    color: #00e5ff;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 0.78rem;
    font-weight: 700;
    font-family: var(--font-heading);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.att-notes-badge {
    font-size: 0.76rem;
    color: #94a3b8;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
}

.att-status-badge {
    padding: 3px 8px;
    border-radius: 6px;
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.att-status-badge.active {
    background: rgba(255, 177, 66, 0.15);
    border: 1px solid rgba(255, 177, 66, 0.4);
    color: #ffb142;
    box-shadow: 0 0 10px rgba(255, 177, 66, 0.2);
}

.att-status-badge.done {
    background: rgba(46, 213, 115, 0.15);
    border: 1px solid rgba(46, 213, 115, 0.4);
    color: #2ed573;
}

/* Pagination Buttons & Controls */
.mobile-pagination-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 14px 18px;
    background: rgba(10, 13, 24, 0.7);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
}

.page-btn {
    height: 38px;
    min-width: 38px;
    padding: 0 12px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 0.84rem;
    cursor: pointer;
    transition: all 0.2s ease;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #cbd5e1;
}

.page-btn:hover:not(:disabled) {
    background: rgba(0, 229, 255, 0.15);
    border-color: #00e5ff;
    color: #ffffff;
    box-shadow: 0 0 12px rgba(0, 229, 255, 0.35);
    transform: translateY(-1px);
}

.page-btn.active {
    background: #00e5ff !important;
    border-color: #00e5ff !important;
    color: #080a14 !important;
    box-shadow: 0 0 16px rgba(0, 229, 255, 0.6) !important;
}

.page-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ==============================================================
   SERVICE ORDERS PRESENTATION CARDS GRID & ITEM STYLING
   ============================================================== */
.orders-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(440px, 1fr));
    gap: 18px;
    margin-top: 14px;
}

@media (max-width: 768px) {
    .orders-cards-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }
}

.order-card-item {
    background: radial-gradient(circle at top left, rgba(24, 30, 54, 0.96) 0%, rgba(10, 13, 24, 0.99) 100%);
    border: 1px solid rgba(255, 71, 87, 0.25);
    border-radius: 16px;
    padding: 20px 22px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.08);
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.order-card-item:hover {
    border-color: var(--primary-red);
    box-shadow: 0 16px 45px rgba(0, 0, 0, 0.65), 0 0 25px rgba(255, 71, 87, 0.2);
    transform: translateY(-2px);
}

.order-card-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #ff4757 0%, #ffb142 50%, #00e5ff 100%);
}

.order-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.order-card-code-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
}

.order-card-icon {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(255, 71, 87, 0.2) 0%, rgba(255, 177, 66, 0.15) 100%);
    border: 1px solid rgba(255, 71, 87, 0.4);
    color: var(--primary-red);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    flex-shrink: 0;
    box-shadow: 0 4px 14px rgba(255, 71, 87, 0.25);
}

.order-number-title {
    font-family: var(--font-heading);
    font-size: 1.12rem;
    font-weight: 800;
    color: #ffffff;
    letter-spacing: 0.5px;
}

.order-service-specialty {
    font-size: 0.78rem;
    font-weight: 700;
    color: #00e5ff;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.order-card-status-date {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
}

.order-card-date {
    font-size: 0.76rem;
    color: #94a3b8;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.order-card-details-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    background: rgba(0, 0, 0, 0.35);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 10px;
    padding: 12px 14px;
}

@media (max-width: 540px) {
    .order-card-details-grid {
        grid-template-columns: 1fr;
    }
}

.order-detail-block {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.detail-label {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: #94a3b8;
    display: flex;
    align-items: center;
    gap: 5px;
}

.detail-val-highlight {
    font-family: var(--font-heading);
    font-size: 0.95rem;
    font-weight: 800;
    color: #ffffff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.detail-subval {
    font-size: 0.74rem;
    color: #94a3b8;
}

.detail-val-location {
    font-size: 0.8rem;
    color: #cbd5e1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.order-card-crew-tools {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 10px 14px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 10px;
}

@media (max-width: 540px) {
    .order-card-crew-tools {
        grid-template-columns: 1fr;
    }
}

.order-crew-box, .order-tools-box {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.crew-names {
    font-size: 0.84rem;
    font-weight: 700;
    color: #ffffff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tool-active-tag {
    font-size: 0.74rem;
    color: #00e5ff;
    background: rgba(0, 229, 255, 0.1);
    border: 1px solid rgba(0, 229, 255, 0.25);
    padding: 2px 8px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-weight: 600;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tool-pending-tag {
    font-size: 0.74rem;
    color: #ffb142;
    background: rgba(255, 177, 66, 0.1);
    border: 1px solid rgba(255, 177, 66, 0.25);
    padding: 2px 8px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-weight: 600;
}

/* Footer Actions */
.order-card-footer-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-top: 8px;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    flex-wrap: wrap;
}

.order-left-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.btn-card-acta {
    background: rgba(46, 213, 115, 0.12);
    border: 1px solid rgba(46, 213, 115, 0.35);
    color: #2ed573;
    padding: 7px 14px;
    border-radius: 8px;
    font-family: var(--font-heading);
    font-size: 0.8rem;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: var(--transition);
}

.btn-card-acta:hover {
    background: #2ed573;
    color: #04121a;
    box-shadow: 0 0 14px rgba(46, 213, 115, 0.45);
    transform: translateY(-1px);
}

.btn-card-evidence {
    background: rgba(0, 229, 255, 0.12);
    border: 1px solid rgba(0, 229, 255, 0.35);
    color: #00e5ff;
    padding: 7px 14px;
    border-radius: 8px;
    font-family: var(--font-heading);
    font-size: 0.8rem;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: var(--transition);
}

.btn-card-evidence:hover {
    background: #00e5ff;
    color: #04121a;
    box-shadow: 0 0 14px rgba(0, 229, 255, 0.45);
    transform: translateY(-1px);
}

.btn-card-tools {
    background: rgba(255, 177, 66, 0.12);
    border: 1px solid rgba(255, 177, 66, 0.35);
    color: #ffb142;
    padding: 7px 14px;
    border-radius: 8px;
    font-family: var(--font-heading);
    font-size: 0.8rem;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: var(--transition);
}

.btn-card-tools:hover {
    background: #ffb142;
    color: #04121a;
    box-shadow: 0 0 14px rgba(255, 177, 66, 0.45);
    transform: translateY(-1px);
}

.btn-card-delete {
    background: rgba(255, 71, 87, 0.12);
    border: 1px solid rgba(255, 71, 87, 0.35);
    color: #ff4757;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    font-size: 0.88rem;
}

.btn-card-delete:hover {
    background: #ff4757;
    color: #ffffff;
    box-shadow: 0 0 14px rgba(255, 71, 87, 0.5);
    transform: translateY(-1px);
}

/* ==============================================================
   WORKER TERMINATION / DELETION MODAL STYLING
   ============================================================== */
.terminate-worker-card {
    max-width: 900px !important;
    width: 100% !important;
    background: radial-gradient(circle at top, rgba(24, 30, 54, 0.98) 0%, rgba(10, 13, 24, 0.99) 100%) !important;
    border: 1px solid rgba(0, 229, 255, 0.3) !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.85), 0 0 35px rgba(0, 229, 255, 0.15) !important;
}

.termination-options-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    align-items: stretch;
}

@media (max-width: 820px) {
    .terminate-worker-card {
        max-width: 520px !important;
    }
    .termination-options-grid {
        grid-template-columns: 1fr;
    }
}

.term-option-card {
    background: rgba(0, 0, 0, 0.4);
    border-radius: 16px;
    padding: 22px 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 12px;
    position: relative;
    box-sizing: border-box;
    min-height: 315px;
    transition: all 0.3s ease;
}

.term-option-card.opt-despido {
    border: 1px solid rgba(255, 177, 66, 0.35);
}

.term-option-card.opt-despido:hover:not(.card-state-disabled) {
    border-color: #ffa502;
    box-shadow: 0 8px 25px rgba(255, 165, 2, 0.25);
    transform: translateY(-2px);
}

.term-option-card.opt-subcontratar {
    border: 1px solid rgba(46, 213, 115, 0.35);
}

.term-option-card.opt-subcontratar:hover:not(.card-state-disabled) {
    border-color: #2ed573;
    box-shadow: 0 8px 25px rgba(46, 213, 115, 0.25);
    transform: translateY(-2px);
}

.term-option-card.opt-eliminar {
    border: 1px solid rgba(255, 71, 87, 0.35);
}

.term-option-card.opt-eliminar:hover {
    border-color: var(--primary-red);
    box-shadow: 0 8px 25px rgba(255, 71, 87, 0.25);
    transform: translateY(-2px);
}

/* Card States (Active / Disabled) */
.term-option-card.card-state-disabled {
    opacity: 0.45;
    filter: grayscale(0.5);
    border-color: rgba(255, 255, 255, 0.1) !important;
    background: rgba(0, 0, 0, 0.2) !important;
    box-shadow: none !important;
}

.term-option-card.card-state-active {
    opacity: 1;
    filter: none;
}

.term-card-badge {
    position: absolute;
    top: 12px;
    right: 12px;
    font-size: 0.66rem;
    font-weight: 800;
    font-family: var(--font-heading);
    letter-spacing: 0.4px;
    padding: 3px 8px;
    border-radius: 6px;
    background: rgba(255, 177, 66, 0.15);
    border: 1px solid rgba(255, 177, 66, 0.4);
    color: #ffb142;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.term-card-badge.badge-success {
    background: rgba(46, 213, 115, 0.15);
    border-color: rgba(46, 213, 115, 0.4);
    color: #2ed573;
}

.term-card-badge.badge-danger {
    background: rgba(255, 71, 87, 0.15);
    border-color: rgba(255, 71, 87, 0.4);
    color: #ff6b81;
}

.term-card-icon {
    width: 50px;
    height: 50px;
    border-radius: 14px;
    background: rgba(255, 177, 66, 0.12);
    border: 1px solid rgba(255, 177, 66, 0.35);
    color: #ffb142;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    margin-top: 12px;
}

.term-card-icon.icon-success {
    background: rgba(46, 213, 115, 0.12);
    border-color: rgba(46, 213, 115, 0.35);
    color: #2ed573;
}

.term-card-icon.icon-danger {
    background: rgba(255, 71, 87, 0.12);
    border-color: rgba(255, 71, 87, 0.35);
    color: var(--primary-red);
}

.term-card-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    width: 100%;
}

.term-card-content h3 {
    font-family: var(--font-heading);
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: 0.3px;
    color: #ffffff;
    margin: 0 0 8px 0;
}

.term-card-content p {
    font-size: 0.82rem;
    color: #94a3b8;
    line-height: 1.42;
    margin: 0;
    min-height: 62px;
}

.term-card-content strong {
    color: #f1f5f9;
}

.term-action-btn {
    width: 100%;
    height: 44px;
    border-radius: 9px;
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 0.83rem;
    letter-spacing: 0.3px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    transition: all 0.25s ease;
    margin-top: auto;
    padding: 0 10px;
    box-sizing: border-box;
}

.term-action-btn.btn-despido {
    background: rgba(255, 177, 66, 0.15);
    border: 1px solid rgba(255, 177, 66, 0.45);
    color: #ffb142;
}

.term-action-btn.btn-despido:hover {
    background: #ffa502;
    color: #0b0e18;
    box-shadow: 0 0 16px rgba(255, 165, 2, 0.5);
    transform: translateY(-1px);
}

.term-action-btn.btn-subcontratar {
    background: rgba(46, 213, 115, 0.15);
    border: 1px solid rgba(46, 213, 115, 0.45);
    color: #2ed573;
}

.term-action-btn.btn-subcontratar:hover {
    background: #2ed573;
    color: #0b0e18;
    box-shadow: 0 0 16px rgba(46, 213, 115, 0.5);
    transform: translateY(-1px);
}

.term-action-btn.btn-eliminar {
    background: var(--primary-red);
    border: 1px solid var(--primary-red);
    color: #ffffff;
}

.term-action-btn.btn-eliminar:hover {
    background: #ff2a3b;
    box-shadow: 0 0 16px var(--accent-red-glow);
    transform: translateY(-1px);
}

.term-action-btn.btn-state-disabled {
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    color: #64748b !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
    transform: none !important;
    pointer-events: none !important;
}

/* ==============================================================
   SESSION TERMINATED / AUTO-LOGOUT OVERLAY MODAL
   ============================================================== */
.session-terminated-modal {
    position: fixed;
    inset: 0;
    background: rgba(5, 7, 15, 0.92);
    backdrop-filter: blur(14px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999999;
    padding: 20px;
    box-sizing: border-box;
    animation: fadeIn 0.3s ease;
}

.session-terminated-card {
    max-width: 460px;
    width: 100%;
    background: linear-gradient(145deg, rgba(28, 18, 26, 0.98), rgba(13, 10, 18, 0.99));
    border: 1px solid rgba(255, 71, 87, 0.5);
    border-radius: 18px;
    padding: 32px 28px;
    text-align: center;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.9), 0 0 40px rgba(255, 71, 87, 0.3);
}

.session-terminated-card .term-icon {
    font-size: 3.2rem;
    color: #ff4757;
    margin-bottom: 14px;
    text-shadow: 0 0 20px rgba(255, 71, 87, 0.6);
}

.session-terminated-card h2 {
    font-family: var(--font-heading);
    color: #ffffff;
    font-size: 1.25rem;
    font-weight: 800;
    margin-bottom: 12px;
}

.session-terminated-card p {
    color: #cbd5e1;
    font-size: 0.92rem;
    line-height: 1.5;
    margin-bottom: 22px;
}

/* ==============================================================
   DESKTOP ENTERPRISE PRESENTATION CARDS GRID (@media min-width: 769px)
   ============================================================== */
@media (min-width: 769px) {
    .admin-content-card {
        padding: 24px 28px !important;
        border-radius: 16px !important;
        background: rgba(14, 18, 30, 0.9) !important;
        border: 1px solid rgba(255, 255, 255, 0.08) !important;
        box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5) !important;
    }

    .table-responsive-wrapper {
        background: transparent !important;
        border: none !important;
        border-radius: 0 !important;
        padding: 0 !important;
        box-shadow: none !important;
        overflow: visible !important;
    }

    #hr-workers-table.admin-table,
    #budget-expenses-table.admin-table {
        display: block !important;
        width: 100% !important;
        border-collapse: collapse !important;
    }

    #hr-workers-table.admin-table thead,
    #budget-expenses-table.admin-table thead {
        display: none !important; /* Hide rigid table headers in presentation card mode */
    }

    #hr-workers-table.admin-table tbody,
    #budget-expenses-table.admin-table tbody {
        display: grid !important;
        grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)) !important;
        gap: 22px !important;
        width: 100% !important;
    }

    #hr-workers-table.admin-table td,
    #budget-expenses-table.admin-table td {
        border: none !important;
        padding: 0 !important;
        background: transparent !important;
    }

    /* Desktop Presentation Cards Pagination Styling */
    .mobile-pagination-container {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 16px !important;
        margin-top: 24px !important;
        padding: 14px 22px !important;
        background: linear-gradient(145deg, rgba(22, 27, 48, 0.95) 0%, rgba(11, 14, 26, 0.98) 100%) !important;
        border: 1px solid rgba(255, 71, 87, 0.25) !important;
        border-radius: 14px !important;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45) !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .pagination-info-text {
        font-size: 0.84rem !important;
        color: #94a3b8 !important;
        font-family: var(--font-heading) !important;
        font-weight: 600 !important;
        text-align: left !important;
    }

    .pagination-info-text strong {
        color: #ffffff !important;
        font-weight: 800 !important;
    }

    .pagination-controls {
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
    }

    .page-nav-btn {
        background: rgba(255, 255, 255, 0.06) !important;
        border: 1px solid rgba(255, 255, 255, 0.15) !important;
        color: #cbd5e1 !important;
        padding: 8px 16px !important;
        border-radius: 8px !important;
        font-family: var(--font-heading) !important;
        font-size: 0.82rem !important;
        font-weight: 700 !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 6px !important;
        cursor: pointer !important;
        transition: var(--transition) !important;
    }

    .page-nav-btn:hover:not(:disabled) {
        background: rgba(255, 71, 87, 0.2) !important;
        border-color: rgba(255, 71, 87, 0.4) !important;
        color: #ffffff !important;
        transform: translateY(-1px) !important;
    }

    .page-nav-btn:disabled {
        opacity: 0.35 !important;
        cursor: not-allowed !important;
    }

    .page-numbers-list {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
    }

    .page-num-btn {
        width: 36px !important;
        height: 36px !important;
        border-radius: 8px !important;
        background: rgba(255, 255, 255, 0.05) !important;
        border: 1px solid rgba(255, 255, 255, 0.12) !important;
        color: #cbd5e1 !important;
        font-family: var(--font-heading) !important;
        font-size: 0.85rem !important;
        font-weight: 800 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        cursor: pointer !important;
        transition: var(--transition) !important;
    }

    .page-num-btn:hover:not(.active) {
        background: rgba(255, 71, 87, 0.15) !important;
        border-color: rgba(255, 71, 87, 0.35) !important;
        color: #ffffff !important;
    }

    .page-num-btn.active {
        background: var(--primary-red) !important;
        border-color: var(--primary-red) !important;
        color: #ffffff !important;
        box-shadow: 0 4px 14px rgba(255, 71, 87, 0.45) !important;
    }

    /* General styling for standard tables on desktop like attendance */
    .admin-table:not(#hr-workers-table):not(#budget-expenses-table) {
        width: 100% !important;
        border-collapse: collapse !important;
    }

    .admin-table:not(#hr-workers-table):not(#budget-expenses-table) th {
        padding: 12px 14px !important;
        font-size: 0.76rem !important;
        font-weight: 700 !important;
        color: #cbd5e1 !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    }

    .admin-table:not(#hr-workers-table):not(#budget-expenses-table) td {
        padding: 12px 14px !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
    }
}

.tech-filter-banner {
    background: linear-gradient(135deg, rgba(255, 71, 87, 0.15), rgba(0, 229, 255, 0.1));
    border: 1px solid rgba(255, 71, 87, 0.35);
    border-radius: 12px;
    padding: 14px 20px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.tech-filter-banner-text {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 0.88rem;
    color: #ffffff;
}

.tech-filter-banner-text strong {
    color: #00e5ff;
}

.acta-tools-section {
    margin-top: 16px;
    padding: 12px 16px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
}

.acta-tools-section h4 {
    font-size: 0.82rem;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.acta-tools-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.acta-tool-tag {
    background: #e0f2fe;
    color: #0369a1;
    border: 1px solid #bae6fd;
    font-size: 0.74rem;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 4px;
}

/* ==============================================================
   CONTROL DE ASISTENCIAS (WIDGET, MODAL & ADMIN VIEW)
   ============================================================== */

.tech-attendance-badge-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.attendance-status-pill {
    background: rgba(14, 16, 26, 0.85);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 50px;
    padding: 6px 14px;
    font-size: 0.82rem;
    font-weight: 700;
    color: #cbd5e1;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.attendance-status-pill.checked-in {
    border-color: rgba(46, 213, 115, 0.5);
    background: rgba(46, 213, 115, 0.15);
    color: #2ed573;
}

.attendance-status-pill.completed {
    border-color: rgba(0, 229, 255, 0.5);
    background: rgba(0, 229, 255, 0.15);
    color: #00e5ff;
}

.attendance-btn-checkin {
    background: linear-gradient(135deg, #2ed573 0%, #10ac84 100%);
    color: #ffffff;
    font-weight: 800;
    font-family: var(--font-heading);
    font-size: 0.82rem;
    letter-spacing: 0.03em;
    padding: 9px 18px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 4px 15px rgba(46, 213, 115, 0.4);
    transition: var(--transition);
}

.attendance-btn-checkin:hover {
    background: linear-gradient(135deg, #38ef7d 0%, #11998e 100%);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(46, 213, 115, 0.55);
}

.attendance-btn-checkout {
    background: linear-gradient(135deg, #ff4757 0%, #c0392b 100%);
    color: #ffffff;
    font-weight: 800;
    font-family: var(--font-heading);
    font-size: 0.82rem;
    letter-spacing: 0.03em;
    padding: 9px 18px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 4px 15px rgba(255, 71, 87, 0.4);
    transition: var(--transition);
}

.attendance-btn-checkout:hover {
    background: linear-gradient(135deg, #ff6b81 0%, #e74c3c 100%);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(255, 71, 87, 0.55);
}

.attendance-details-btn {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #ffffff;
    padding: 8px 12px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 0.82rem;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: var(--transition);
}

.attendance-details-btn:hover {
    background: rgba(255, 255, 255, 0.18);
    border-color: #ffffff;
}

/* Modal Digital Clock Display */
.attendance-clock-display {
    background: radial-gradient(circle, rgba(20, 24, 40, 0.95) 0%, rgba(10, 12, 20, 0.98) 100%);
    border: 1px solid rgba(0, 229, 255, 0.25);
    border-radius: 14px;
    padding: 20px;
    text-align: center;
    margin-bottom: 20px;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.5);
}

.clock-time-large {
    font-family: var(--font-heading);
    font-size: clamp(2rem, 4vw, 2.6rem);
    font-weight: 900;
    color: #00e5ff;
    letter-spacing: 0.06em;
    text-shadow: 0 0 16px rgba(0, 229, 255, 0.4);
}

.clock-date-text {
    font-size: 0.88rem;
    color: #94a3b8;
    margin-top: 4px;
    font-weight: 600;
    text-transform: capitalize;
}

.attendance-status-box {
    border-radius: 10px;
    padding: 14px 18px;
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    gap: 14px;
}

.status-box-open {
    background: rgba(255, 177, 66, 0.1);
    border: 1px solid rgba(255, 177, 66, 0.3);
    color: #ffb142;
}

.status-box-active {
    background: rgba(46, 213, 115, 0.1);
    border: 1px solid rgba(46, 213, 115, 0.3);
    color: #2ed573;
}

.status-box-done {
    background: rgba(0, 229, 255, 0.1);
    border: 1px solid rgba(0, 229, 255, 0.3);
    color: #00e5ff;
}

.attendance-modal-actions {
    display: flex;
    gap: 12px;
    margin-top: 15px;
}

/* ==============================================================
   EXECUTIVE CONFIRMATION MODAL
   ============================================================== */
.contec-confirm-card {
    max-width: 440px !important;
    background: radial-gradient(circle at top, rgba(26, 30, 50, 0.98) 0%, rgba(14, 16, 26, 0.99) 100%) !important;
    border: 1px solid rgba(255, 71, 87, 0.35) !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.8), 0 0 30px rgba(255, 71, 87, 0.15) !important;
    border-radius: 16px !important;
    padding: 30px 26px !important;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.confirm-icon-pulse {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    position: relative;
}

.confirm-icon-pulse.danger {
    background: rgba(255, 71, 87, 0.15);
    color: #ff4757;
    border: 2px solid rgba(255, 71, 87, 0.4);
    box-shadow: 0 0 25px rgba(255, 71, 87, 0.35);
    animation: dangerPulse 2s infinite ease-in-out;
}

.confirm-icon-pulse.warning {
    background: rgba(255, 177, 66, 0.15);
    color: #ffb142;
    border: 2px solid rgba(255, 177, 66, 0.4);
    box-shadow: 0 0 25px rgba(255, 177, 66, 0.35);
}

.confirm-icon-pulse.primary {
    background: rgba(0, 229, 255, 0.15);
    color: #00e5ff;
    border: 2px solid rgba(0, 229, 255, 0.4);
    box-shadow: 0 0 25px rgba(0, 229, 255, 0.35);
}

@keyframes dangerPulse {
    0%, 100% {
        box-shadow: 0 0 15px rgba(255, 71, 87, 0.3);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 0 30px rgba(255, 71, 87, 0.6);
        transform: scale(1.05);
    }
}

.contec-confirm-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    align-items: center;
}

.confirm-btn-cancel {
    flex: 1;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #cbd5e1;
    font-weight: 700;
    font-family: var(--font-heading);
    font-size: 0.85rem;
    padding: 12px 18px;
    border-radius: 10px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: var(--transition);
}

.confirm-btn-cancel:hover {
    background: rgba(255, 255, 255, 0.16);
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.3);
}

.confirm-btn-action {
    flex: 1;
    font-weight: 800;
    font-family: var(--font-heading);
    font-size: 0.85rem;
    padding: 12px 18px;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: var(--transition);
}

.confirm-btn-action.danger {
    background: linear-gradient(135deg, #ff4757 0%, #c0392b 100%);
    color: #ffffff;
    box-shadow: 0 4px 18px rgba(255, 71, 87, 0.45);
}

.confirm-btn-action.danger:hover {
    background: linear-gradient(135deg, #ff6b81 0%, #e74c3c 100%);
    transform: translateY(-2px);
    box-shadow: 0 6px 25px rgba(255, 71, 87, 0.65);
}

.confirm-btn-action.warning {
    background: linear-gradient(135deg, #ffa502 0%, #e67e22 100%);
    color: #ffffff;
    box-shadow: 0 4px 18px rgba(255, 165, 2, 0.45);
}

.confirm-btn-action.warning:hover {
    background: linear-gradient(135deg, #ffbe76 0%, #f39c12 100%);
    transform: translateY(-2px);
    box-shadow: 0 6px 25px rgba(255, 165, 2, 0.65);
}

.confirm-btn-action.primary {
    background: linear-gradient(135deg, #00e5ff 0%, #00a8ff 100%);
    color: #0f172a;
    box-shadow: 0 4px 18px rgba(0, 229, 255, 0.4);
}

.confirm-btn-action.primary:hover {
    background: linear-gradient(135deg, #38ef7d 0%, #11998e 100%);
    color: #ffffff;
    transform: translateY(-2px);
}

/* ==============================================================
   TECHNICIAN ATTENDANCE TAB & ACTION CARDS
   ============================================================== */
.attendance-check-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 20px;
    margin-top: 10px;
}

.att-action-card {
    border-radius: 14px;
    padding: 24px;
    transition: var(--transition);
    position: relative;
    overflow: hidden;
}

.att-action-card.card-checkin {
    background: radial-gradient(circle at top left, rgba(46, 213, 115, 0.12) 0%, rgba(20, 24, 38, 0.95) 100%);
    border: 1px solid rgba(46, 213, 115, 0.35);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4), 0 0 20px rgba(46, 213, 115, 0.08);
}

.att-action-card.card-checkout {
    background: radial-gradient(circle at top right, rgba(255, 71, 87, 0.12) 0%, rgba(20, 24, 38, 0.95) 100%);
    border: 1px solid rgba(255, 71, 87, 0.35);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4), 0 0 20px rgba(255, 71, 87, 0.08);
}

.att-action-card:hover {
    transform: translateY(-3px);
}

.att-status-badge-lg {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.att-status-badge-lg.pending {
    background: rgba(255, 177, 66, 0.15);
    border: 1px solid rgba(255, 177, 66, 0.4);
    color: #ffb142;
}

.att-status-badge-lg.active {
    background: rgba(46, 213, 115, 0.15);
    border: 1px solid rgba(46, 213, 115, 0.4);
    color: #2ed573;
}

.att-status-badge-lg.done {
    background: rgba(0, 229, 255, 0.15);
    border: 1px solid rgba(0, 229, 255, 0.4);
    color: #00e5ff;
}

.att-info-box {
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

/* ==============================================================
   MOBILE NAVIGATION DRAWER & MOBILE-ONLY HEADER REFINEMENTS
   (Strictly hidden & untouched on desktop screens)
   ============================================================== */

/* Hidden on Desktop */
.mobile-nav-toggle-btn,
.mobile-nav-star-btn,
.mobile-nav-user-logout-btn {
    display: none !important;
}

.mobile-nav-drawer, 
.mobile-nav-drawer-overlay {
    display: none !important;
}

.mobile-cell-label {
    display: none;
}

.mobile-btn-text {
    display: none;
}

.mobile-pagination-container {
    display: none;
}

/* Strictly applied ONLY on Mobile Screens */
@media (max-width: 768px) {
    .subpage-nav,
    .admin-page-nav,
    .tecnicos-page-nav {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        position: relative !important;
        width: 100% !important;
        height: 60px !important;
        min-height: 60px !important;
        padding: 0 16px !important;
        box-sizing: border-box !important;
        text-align: center !important;
    }

    .nav-left-group {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        margin: 0 auto !important;
    }

    .mobile-nav-star-btn {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 44px !important;
        height: 44px !important;
        border-radius: 12px !important;
        background: linear-gradient(135deg, rgba(255, 187, 0, 0.22) 0%, rgba(255, 71, 87, 0.18) 100%) !important;
        border: 1.5px solid rgba(255, 187, 0, 0.6) !important;
        color: #ffbb00 !important;
        font-size: 1.4rem !important;
        text-decoration: none !important;
        cursor: pointer !important;
        transition: all 0.22s ease !important;
        box-shadow: 0 0 20px rgba(255, 187, 0, 0.4), inset 0 0 10px rgba(255, 187, 0, 0.2) !important;
        position: absolute !important;
        left: 50% !important;
        top: 50% !important;
        transform: translate(-50%, -50%) !important;
        touch-action: manipulation !important;
        pointer-events: auto !important;
        user-select: none !important;
        -webkit-tap-highlight-color: transparent !important;
        z-index: 1000 !important;
    }

    .mobile-nav-star-btn i {
        color: #ffbb00 !important;
        filter: drop-shadow(0 0 8px rgba(255, 187, 0, 0.9)) !important;
        transform: scale(1.08) !important;
        transition: transform 0.2s ease !important;
    }

    .mobile-nav-star-btn:active {
        transform: translate(-50%, -50%) scale(0.92) !important;
        background: rgba(255, 187, 0, 0.4) !important;
        box-shadow: 0 0 28px rgba(255, 187, 0, 0.7) !important;
    }

    .mobile-nav-user-logout-btn {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 42px !important;
        height: 42px !important;
        border-radius: 12px !important;
        background: linear-gradient(135deg, rgba(255, 71, 87, 0.18) 0%, rgba(255, 107, 129, 0.1) 100%) !important;
        border: 1.5px solid rgba(255, 71, 87, 0.45) !important;
        color: #ff4757 !important;
        font-size: 1.4rem !important;
        cursor: pointer !important;
        transition: all 0.22s ease !important;
        box-shadow: 0 0 16px rgba(255, 71, 87, 0.3) !important;
        position: absolute !important;
        right: 14px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        touch-action: manipulation !important;
        pointer-events: auto !important;
        user-select: none !important;
        -webkit-tap-highlight-color: transparent !important;
        z-index: 1001 !important;
    }

    .mobile-nav-user-logout-btn i {
        color: #ff4757 !important;
        filter: drop-shadow(0 0 6px rgba(255, 71, 87, 0.8)) !important;
    }

    .mobile-nav-user-logout-btn:active {
        transform: translateY(-50%) scale(0.92) !important;
        background: rgba(255, 71, 87, 0.4) !important;
        box-shadow: 0 0 24px rgba(255, 71, 87, 0.6) !important;
    }

    /* Mobile User Options Dropdown Modal (Mobile Only) */
    .mobile-user-menu-backdrop {
        display: none;
        position: fixed !important;
        inset: 0 !important;
        background: rgba(0, 0, 0, 0.75) !important;
        backdrop-filter: blur(8px) !important;
        -webkit-backdrop-filter: blur(8px) !important;
        z-index: 99998 !important;
        align-items: flex-start !important;
        justify-content: flex-end !important;
        padding: 68px 14px 14px 14px !important;
        box-sizing: border-box !important;
        opacity: 0;
        transition: opacity 0.25s ease !important;
    }

    .mobile-user-menu-backdrop.active {
        display: flex !important;
        opacity: 1 !important;
    }

    .mobile-user-menu-card {
        width: 295px !important;
        max-width: calc(100vw - 28px) !important;
        background: linear-gradient(155deg, rgba(18, 24, 42, 0.98) 0%, rgba(8, 12, 22, 0.99) 100%) !important;
        border: 1px solid rgba(0, 229, 255, 0.35) !important;
        border-radius: 18px !important;
        box-shadow: 0 20px 50px rgba(0, 0, 0, 0.9), 0 0 30px rgba(0, 229, 255, 0.18) !important;
        padding: 18px 16px !important;
        box-sizing: border-box !important;
        transform: translateY(-10px) scale(0.95) !important;
        transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
    }

    .mobile-user-menu-backdrop.active .mobile-user-menu-card {
        transform: translateY(0) scale(1) !important;
    }

    .mobile-user-menu-header {
        display: flex !important;
        align-items: center !important;
        gap: 12px !important;
        padding-bottom: 14px !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
        margin-bottom: 14px !important;
        text-align: left !important;
    }

    .mobile-user-avatar-circle {
        width: 44px !important;
        height: 44px !important;
        border-radius: 50% !important;
        background: rgba(0, 229, 255, 0.12) !important;
        border: 1.5px solid rgba(0, 229, 255, 0.45) !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 1.6rem !important;
        color: #00e5ff !important;
        flex-shrink: 0 !important;
    }

    .mobile-user-info-text {
        min-width: 0 !important;
        flex: 1 !important;
    }

    .mobile-user-info-text strong {
        display: block !important;
        color: #ffffff !important;
        font-size: 0.92rem !important;
        font-weight: 800 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .mobile-user-info-text span#mobile-menu-user-email {
        display: block !important;
        color: #94a3b8 !important;
        font-size: 0.74rem !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        margin-top: 1px !important;
    }

    .mobile-menu-user-badge {
        display: inline-block !important;
        padding: 2px 8px !important;
        border-radius: 8px !important;
        background: rgba(0, 229, 255, 0.14) !important;
        border: 1px solid rgba(0, 229, 255, 0.35) !important;
        color: #00e5ff !important;
        font-size: 0.64rem !important;
        font-weight: 900 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.04em !important;
        margin-top: 4px !important;
    }

    .mobile-user-menu-actions {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
        margin-bottom: 12px !important;
    }

    .mobile-user-action-btn {
        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
        width: 100% !important;
        padding: 12px 14px !important;
        border-radius: 12px !important;
        font-size: 0.88rem !important;
        font-weight: 700 !important;
        cursor: pointer !important;
        box-sizing: border-box !important;
        transition: all 0.2s ease !important;
        text-decoration: none !important;
        border: none !important;
    }

    .mobile-user-action-btn.settings-btn {
        background: rgba(0, 229, 255, 0.12) !important;
        border: 1px solid rgba(0, 229, 255, 0.35) !important;
        color: #00e5ff !important;
    }

    .mobile-user-action-btn.settings-btn:active {
        background: rgba(0, 229, 255, 0.25) !important;
        transform: scale(0.97) !important;
    }

    .mobile-user-action-btn.logout-btn {
        background: rgba(255, 71, 87, 0.12) !important;
        border: 1px solid rgba(255, 71, 87, 0.35) !important;
        color: #ff4757 !important;
    }

    .mobile-user-action-btn.logout-btn:active {
        background: rgba(255, 71, 87, 0.3) !important;
        transform: scale(0.97) !important;
    }

    .mobile-user-action-btn i {
        font-size: 1.1rem !important;
        width: 20px !important;
        text-align: center !important;
    }

    .mobile-user-menu-footer {
        border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
        padding-top: 10px !important;
        text-align: center !important;
    }

    .mobile-user-cancel-btn {
        background: transparent !important;
        border: none !important;
        color: #64748b !important;
        font-size: 0.8rem !important;
        font-weight: 600 !important;
        cursor: pointer !important;
        padding: 6px 12px !important;
        border-radius: 6px !important;
        width: 100% !important;
    }

    .mobile-nav-toggle-btn {
        display: none !important;
    }

    /* Hide user badge & logout button in mobile navbar (available via mobile-nav-user-logout-btn) */
    .user-profile-nav {
        display: none !important;
    }

    /* Hide text back button in mobile navbar */
    .back-btn,
    #nav-back-home {
        display: none !important;
    }

    /* Bottom Navigation Bar on Mobile (Exact match to UI design) */
    .admin-main-tabs-wrapper {
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        z-index: 9999 !important;
        padding: 0 !important;
        margin: 0 !important;
        background: transparent !important;
        pointer-events: none !important;
    }

    .admin-main-tabs-wrapper::-webkit-scrollbar {
        display: none !important;
    }

    .admin-main-tabs {
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 64px !important;
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-around !important;
        gap: 6px !important;
        padding: 5px 8px 6px 8px !important;
        margin: 0 !important;
        background: rgba(10, 14, 28, 0.96) !important;
        backdrop-filter: blur(16px) !important;
        -webkit-backdrop-filter: blur(16px) !important;
        border: none !important;
        border-top: 1px solid rgba(255, 71, 87, 0.3) !important;
        border-radius: 16px 16px 0 0 !important;
        box-shadow: 0 -6px 25px rgba(0, 0, 0, 0.7) !important;
        z-index: 9999 !important;
        pointer-events: auto !important;
        box-sizing: border-box !important;
        overflow: visible !important;
    }

    .admin-main-tabs::-webkit-scrollbar {
        display: none;
    }

    .admin-main-tab {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 1 !important;
        height: 100% !important;
        min-width: 0 !important;
        padding: 4px 2px !important;
        gap: 2px !important;
        border-radius: 10px !important;
        border: 1px solid transparent !important;
        background: transparent !important;
        color: #94a3b8 !important;
        cursor: pointer !important;
        pointer-events: auto !important;
        touch-action: manipulation !important;
        user-select: none !important;
        -webkit-tap-highlight-color: transparent !important;
        transition: all 0.2s ease !important;
        white-space: nowrap !important;
    }

    .admin-main-tab i {
        font-size: 1.35rem !important;
        color: #94a3b8 !important;
        margin: 0 !important;
        display: block !important;
        pointer-events: none !important;
        transition: all 0.2s ease !important;
    }

    .admin-main-tab span {
        display: block !important;
        font-size: 0.64rem !important;
        font-weight: 700 !important;
        color: inherit !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        max-width: 100% !important;
        line-height: 1.1 !important;
        pointer-events: none !important;
    }

    .admin-main-tab:active {
        transform: scale(0.96) !important;
    }

    .admin-main-tab.active {
        background: rgba(255, 71, 87, 0.16) !important;
        border: 1px solid rgba(255, 71, 87, 0.45) !important;
        color: #ffffff !important;
        box-shadow: 0 0 14px rgba(255, 71, 87, 0.3) !important;
    }

    .admin-main-tab.active i {
        color: #ff4757 !important;
        filter: drop-shadow(0 0 8px rgba(255, 71, 87, 0.8)) !important;
        transform: scale(1.08) !important;
    }

    .admin-main-tab.active span {
        color: #ffffff !important;
        font-weight: 800 !important;
    }

    /* Gerencia Navigation Tabs Bottom Bar on Mobile */
    .admin-main-tabs-nav {
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 64px !important;
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-around !important;
        gap: 4px !important;
        padding: 5px 6px 6px 6px !important;
        margin: 0 !important;
        background: rgba(10, 14, 28, 0.96) !important;
        backdrop-filter: blur(16px) !important;
        -webkit-backdrop-filter: blur(16px) !important;
        border: none !important;
        border-top: 1px solid rgba(255, 71, 87, 0.3) !important;
        border-radius: 16px 16px 0 0 !important;
        box-shadow: 0 -6px 25px rgba(0, 0, 0, 0.7) !important;
        z-index: 9999 !important;
        pointer-events: auto !important;
        box-sizing: border-box !important;
        overflow-x: auto !important;
        scrollbar-width: none !important;
    }

    .admin-main-tabs-nav::-webkit-scrollbar {
        display: none !important;
    }

    .admin-tab-btn {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 1 !important;
        height: 100% !important;
        min-width: 0 !important;
        padding: 4px 2px !important;
        gap: 2px !important;
        border-radius: 10px !important;
        border: 1px solid transparent !important;
        background: transparent !important;
        color: #94a3b8 !important;
        cursor: pointer !important;
        pointer-events: auto !important;
        touch-action: manipulation !important;
        user-select: none !important;
        -webkit-tap-highlight-color: transparent !important;
        transition: all 0.2s ease !important;
        white-space: nowrap !important;
    }

    .admin-tab-btn i {
        font-size: 1.35rem !important;
        color: #94a3b8 !important;
        margin: 0 !important;
        display: block !important;
        pointer-events: none !important;
        transition: all 0.2s ease !important;
    }

    .admin-tab-btn span {
        display: block !important;
        font-size: 0.62rem !important;
        font-weight: 700 !important;
        color: inherit !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        max-width: 100% !important;
        line-height: 1.1 !important;
        pointer-events: none !important;
    }

    .admin-tab-btn.active {
        background: rgba(255, 71, 87, 0.16) !important;
        border: 1px solid rgba(255, 71, 87, 0.45) !important;
        color: #ffffff !important;
        box-shadow: 0 0 14px rgba(255, 71, 87, 0.3) !important;
    }

    .admin-tab-btn.active i {
        color: #ff4757 !important;
        filter: drop-shadow(0 0 8px rgba(255, 71, 87, 0.8)) !important;
        transform: scale(1.08) !important;
    }

    .admin-tab-btn.active span {
        color: #ffffff !important;
        font-weight: 800 !important;
    }

    /* Padding for fixed bottom bar */
    body {
        padding-bottom: 74px !important;
    }

    .admin-dashboard-page .admin-fullpage-content,
    .tecnicos-dashboard-page .tecnicos-fullpage-content,
    .gerencia-dashboard-page .gerencia-fullpage-content {
        padding-bottom: 80px !important;
    }

    /* Hero Header Actions on Mobile */
    .hero-header-row {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 14px !important;
    }

    .export-btn {
        width: 100% !important;
        justify-content: center !important;
        padding: 10px 16px !important;
    }

    /* Mobile Drawer Components */
    .mobile-nav-drawer-overlay {
        display: block !important;
        position: fixed !important;
        inset: 0 !important;
        background: rgba(0, 0, 0, 0.78) !important;
        backdrop-filter: blur(6px) !important;
        -webkit-backdrop-filter: blur(6px) !important;
        z-index: 99998 !important;
        opacity: 0 !important;
        pointer-events: none !important;
        transition: opacity 0.3s ease !important;
    }

    .mobile-nav-drawer-overlay.active {
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    .mobile-nav-drawer {
        display: flex !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 285px !important;
        max-width: 85vw !important;
        height: 100vh !important;
        height: 100dvh !important;
        background: radial-gradient(circle at top left, rgba(26, 30, 50, 0.99) 0%, rgba(12, 14, 22, 0.99) 100%) !important;
        border-right: 1px solid rgba(255, 71, 87, 0.3) !important;
        box-shadow: 15px 0 50px rgba(0, 0, 0, 0.85) !important;
        z-index: 99999 !important;
        flex-direction: column !important;
        transform: translateX(-100%) !important;
        transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
        padding: 22px 18px !important;
        box-sizing: border-box !important;
    }

    .mobile-nav-drawer.active {
        transform: translateX(0) !important;
        pointer-events: auto !important;
    }

    .mobile-drawer-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding-bottom: 16px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        margin-bottom: 16px;
    }

    .drawer-brand {
        font-family: var(--font-heading);
        font-weight: 900;
        font-size: 1.15rem;
        letter-spacing: 0.1em;
        color: #ffffff;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .drawer-close-btn {
        background: rgba(255, 255, 255, 0.06);
        border: 1px solid rgba(255, 255, 255, 0.15);
        color: #ffffff;
        width: 32px;
        height: 32px;
        border-radius: 8px;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        font-size: 1rem;
    }

    .mobile-drawer-user {
        background: rgba(255, 255, 255, 0.04);
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 10px;
        padding: 12px;
        display: flex;
        align-items: center;
        gap: 12px;
        margin-bottom: 20px;
    }

    .drawer-section-label {
        display: block;
        font-size: 0.7rem;
        font-weight: 800;
        color: #64748b;
        letter-spacing: 0.08em;
        margin-bottom: 10px;
        padding-left: 4px;
    }

    .mobile-drawer-links {
        display: flex;
        flex-direction: column;
        gap: 6px;
        flex: 1;
        overflow-y: auto;
    }

    .drawer-link-item {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 12px 14px;
        border-radius: 8px;
        color: #cbd5e1;
        text-decoration: none;
        font-family: var(--font-heading);
        font-weight: 700;
        font-size: 0.88rem;
        transition: var(--transition);
    }

    .drawer-link-item i {
        font-size: 1.1rem;
        color: #94a3b8;
        width: 22px;
        text-align: center;
    }

    .drawer-link-item:hover, .drawer-link-item.active {
        background: rgba(255, 71, 87, 0.15);
        color: #ffffff;
        border-left: 3px solid var(--primary-red);
    }

    .drawer-link-item.active i {
        color: var(--primary-red);
    }

    .mobile-drawer-footer {
        padding-top: 14px;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
    }

    .drawer-logout-btn {
        width: 100%;
        background: rgba(255, 71, 87, 0.12);
        border: 1px solid rgba(255, 71, 87, 0.3);
        color: #ff6b81;
        padding: 12px;
        border-radius: 8px;
        font-family: var(--font-heading);
        font-weight: 800;
        font-size: 0.85rem;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        cursor: pointer;
    }

    /* Mobile Table & Card Structure */
    .admin-dashboard-page .admin-fullpage-content,
    .tecnicos-dashboard-page .tecnicos-fullpage-content,
    .panel-main-content {
        padding: 14px 10px !important;
        gap: 16px !important;
    }

    .admin-content-card {
        padding: 16px 12px !important;
        border-radius: 12px !important;
    }

    .admin-stats-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
    }

    .metric-card {
        padding: 12px 10px !important;
        gap: 10px !important;
        border-radius: 10px !important;
    }

    .metric-icon-wrap {
        width: 36px !important;
        height: 36px !important;
        font-size: 1.1rem !important;
    }

    /* Mobile Table as Executive Vertical Cards */
    .table-responsive-wrapper {
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        overflow: visible !important;
        margin: 0 !important;
        width: 100% !important;
    }

    .admin-table {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    .admin-table thead {
        display: none !important; /* Hide wide table header on mobile */
    }

    .admin-table tbody {
        display: flex !important;
        flex-direction: column !important;
        gap: 14px !important;
        width: 100% !important;
    }

    .admin-table tbody tr {
        display: flex !important;
        flex-direction: column !important;
        background: radial-gradient(circle at top left, rgba(22, 26, 44, 0.98) 0%, rgba(12, 14, 24, 0.98) 100%) !important;
        border: 1px solid rgba(255, 71, 87, 0.28) !important;
        border-radius: 14px !important;
        padding: 16px 14px !important;
        gap: 8px !important;
        box-shadow: 0 8px 25px rgba(0, 0, 0, 0.55) !important;
        box-sizing: border-box !important;
        width: 100% !important;
        transition: transform 0.2s ease, border-color 0.2s ease !important;
    }

    .admin-table tbody tr:hover {
        border-color: rgba(255, 71, 87, 0.5) !important;
        transform: translateY(-2px);
    }

    .admin-table td {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 8px 0 !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.07) !important;
        width: 100% !important;
        box-sizing: border-box !important;
        text-align: left !important;
        white-space: normal !important;
    }

    .admin-table td.cell-worker-name {
        border-bottom: 1px solid rgba(255, 71, 87, 0.25) !important;
        padding-bottom: 12px !important;
        justify-content: flex-start !important;
    }

    .admin-table td.cell-actions {
        border-bottom: none !important;
        padding-top: 10px !important;
        padding-bottom: 0 !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .admin-table td.cell-actions .mobile-cell-label {
        display: none !important;
    }

    .mobile-cell-label {
        display: inline-flex !important;
        align-items: center !important;
        gap: 7px !important;
        font-size: 0.76rem !important;
        font-weight: 700 !important;
        color: #94a3b8 !important;
        font-family: var(--font-heading) !important;
        flex-shrink: 0 !important;
    }

    .mobile-cell-label i {
        color: var(--primary-red) !important;
        font-size: 0.85rem !important;
        width: 16px !important;
        text-align: center !important;
    }

    .mobile-rate-val {
        font-weight: 700 !important;
        color: #cbd5e1 !important;
        font-size: 0.88rem !important;
    }

    .mobile-subtotal-val {
        font-weight: 900 !important;
        color: #2ed573 !important;
        font-size: 1.05rem !important;
        font-family: var(--font-heading) !important;
    }

    .mobile-amount-val {
        font-weight: 900 !important;
        color: #ff4757 !important;
        font-size: 1.05rem !important;
        font-family: var(--font-heading) !important;
    }

    .mobile-actions-wrapper {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
        width: 100% !important;
    }

    .cell-actions .edit-worker-btn,
    .cell-actions .delete-btn {
        width: 100% !important;
        height: 38px !important;
        border-radius: 8px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px !important;
        font-weight: 700 !important;
        font-size: 0.82rem !important;
        padding: 8px 12px !important;
        box-sizing: border-box !important;
    }

    .cell-actions .delete-btn {
        background: rgba(255, 71, 87, 0.12) !important;
        border: 1px solid rgba(255, 71, 87, 0.3) !important;
        color: #ff6b81 !important;
    }

    .mobile-btn-text {
        display: inline !important;
        font-family: var(--font-heading) !important;
        font-weight: 700 !important;
    }

    /* Mobile Pagination Styling */
    .mobile-pagination-container {
        display: flex !important;
        flex-direction: column;
        align-items: center;
        gap: 10px;
        margin-top: 14px;
        padding: 12px 14px;
        background: radial-gradient(circle at top left, rgba(22, 26, 44, 0.98) 0%, rgba(12, 14, 24, 0.98) 100%);
        border: 1px solid rgba(255, 71, 87, 0.25);
        border-radius: 12px;
        box-shadow: 0 6px 20px rgba(0, 0, 0, 0.45);
        width: 100%;
        box-sizing: border-box;
    }

    .pagination-info-text {
        font-size: 0.74rem;
        color: #94a3b8;
        text-align: center;
        font-family: var(--font-heading);
        font-weight: 600;
    }

    .pagination-info-text strong {
        color: #ffffff;
        font-weight: 800;
    }

    .pagination-controls {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        width: 100%;
        flex-wrap: wrap;
    }

    .page-nav-btn {
        background: rgba(255, 255, 255, 0.06);
        border: 1px solid rgba(255, 255, 255, 0.15);
        color: #cbd5e1;
        padding: 8px 12px;
        border-radius: 8px;
        font-family: var(--font-heading);
        font-size: 0.78rem;
        font-weight: 700;
        display: inline-flex;
        align-items: center;
        gap: 6px;
        cursor: pointer;
        transition: var(--transition);
    }

    .page-nav-btn:active:not(:disabled) {
        background: var(--primary-red);
        color: #ffffff;
        transform: scale(0.96);
    }

    .page-nav-btn:disabled {
        opacity: 0.3;
        cursor: not-allowed;
        border-color: rgba(255, 255, 255, 0.05);
    }

    .page-numbers-list {
        display: flex;
        align-items: center;
        gap: 6px;
    }

    .page-num-btn {
        width: 34px;
        height: 34px;
        border-radius: 8px;
        background: rgba(255, 255, 255, 0.05);
        border: 1px solid rgba(255, 255, 255, 0.12);
        color: #cbd5e1;
        font-family: var(--font-heading);
        font-size: 0.84rem;
        font-weight: 800;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        transition: var(--transition);
    }

    .page-num-btn.active {
        background: var(--primary-red);
        border-color: var(--primary-red);
        color: #ffffff;
        box-shadow: 0 4px 14px rgba(255, 71, 87, 0.45);
    }

    /* Mobile Responsive Modal & Form Grids */
    .form-row-2 {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .modal-card {
        width: 95% !important;
        max-width: 95% !important;
        border-radius: 14px !important;
        max-height: 90vh !important;
        max-height: 90dvh !important;
    }

    .modal-header {
        padding: 14px 16px !important;
    }

    .modal-body {
        padding: 12px 16px !important;
        overflow-y: auto !important;
        gap: 10px !important;
    }

    .modal-footer {
        padding: 12px 16px !important;
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
    }

    .modal-btn-primary, 
    .modal-btn-secondary {
        width: 100% !important;
        justify-content: center !important;
        padding: 11px 12px !important;
        font-size: 0.82rem !important;
    }

    .input-group {
        width: 100% !important;
        margin-bottom: 8px !important;
    }

    .input-group label {
        font-size: 0.76rem !important;
        margin-bottom: 4px !important;
    }

    .input-group input, 
    .input-group select, 
    .custom-form-select {
        width: 100% !important;
        box-sizing: border-box !important;
        padding: 10px 12px !important;
        font-size: 0.84rem !important;
    }

    .credentials-card-block {
        padding: 12px 10px !important;
        width: 100% !important;
        box-sizing: border-box !important;
        margin-bottom: 8px !important;
    }

    /* Mobile Typography Scaled & Refined */
    .main-title:not(.wave-title) {
        font-size: clamp(2.2rem, 11vw, 3.4rem) !important;
        line-height: 1.08 !important;
        letter-spacing: -0.01em !important;
        margin: 0 !important;
    }

    .about-main-title {
        font-size: clamp(1.55rem, 6vw, 2.05rem) !important;
        line-height: 1.18 !important;
        margin-bottom: 8px !important;
    }

    .about-hero-lead {
        font-size: 0.84rem !important;
        line-height: 1.45 !important;
        color: #cbd5e1 !important;
        margin-bottom: 6px !important;
    }

    .badge-tag,
    .modal-tag {
        font-size: 0.68rem !important;
        padding: 4px 10px !important;
        letter-spacing: 0.06em !important;
        margin-bottom: 6px !important;
    }

    .card-header-titles h2 {
        font-size: 1.12rem !important;
    }

    .card-header-titles p {
        font-size: 0.78rem !important;
    }

    .worker-view-banner {
        padding: 14px 16px !important;
        gap: 10px !important;
        border-radius: 12px !important;
    }

    .worker-view-banner h3 {
        font-size: 0.94rem !important;
    }

    .worker-view-banner p {
        font-size: 0.8rem !important;
        line-height: 1.4 !important;
    }

    .tech-status-pill {
        font-size: 0.72rem !important;
        padding: 4px 10px !important;
    }

    .tech-att-btn {
        font-size: 0.76rem !important;
        padding: 6px 12px !important;
    }

    .empty-assigned-box {
        padding: 24px 16px !important;
    }

    .empty-assigned-box p {
        font-size: 0.82rem !important;
        line-height: 1.45 !important;
    }

    .admin-main-tab i {
        font-size: 1.25rem !important;
    }

    .admin-main-tab span {
        font-size: 0.66rem !important;
        letter-spacing: 0em !important;
    }

    .nav-link-btn {
        font-size: 0.88rem !important;
    }

    .panel-btn-content {
        font-size: 0.85rem !important;
    }

    .subpage-footer,
    footer,
    .footer-text {
        font-size: 0.7rem !important;
        padding: 12px 10px !important;
    }
}

/* ============================================================== */
/* HERRAMIENTAS, ROTULADO QR & ESCÁNER CONTEC */
/* ============================================================== */
.equipment-qr-sticker {
    background: #ffffff;
    color: #0A1128;
    border: 2px solid #0A1128;
    border-radius: 12px;
    padding: 18px 20px;
    margin: 0 auto;
    max-width: 320px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.3);
    text-align: center;
}

.equipment-qr-sticker .qr-canvas-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 10px auto;
}

.equipment-qr-sticker canvas,
.equipment-qr-sticker img {
    margin: 0 auto;
    border-radius: 8px;
}

.tech-tools-control-card {
    transition: all 0.3s ease;
}

.tech-tool-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 229, 255, 0.15);
}

#tech-qr-reader video {
    border-radius: 8px;
    object-fit: cover;
}

/* ============================================================== */
/* LIVE WORKER AUTOCOMPLETE & SEARCH DROPDOWN                     */
/* ============================================================== */
.worker-search-input-wrap {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
}

.worker-search-input-wrap .worker-input-icon {
    position: absolute;
    left: 14px;
    color: var(--primary-red);
    font-size: 0.92rem;
    pointer-events: none;
    z-index: 2;
}

.worker-search-input-wrap input {
    padding-left: 40px !important;
    padding-right: 38px !important;
    width: 100% !important;
}

.worker-input-clear-btn {
    position: absolute;
    right: 10px;
    background: rgba(255, 71, 87, 0.2);
    border: 1px solid rgba(255, 71, 87, 0.4);
    color: #ff6b81;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    cursor: pointer;
    transition: var(--transition);
    z-index: 2;
}

.worker-input-clear-btn:hover {
    background: var(--primary-red);
    color: #ffffff;
    transform: scale(1.1);
}

.worker-autocomplete-dropdown {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    background: #0d101a;
    border: 1px solid rgba(0, 229, 255, 0.4);
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.95), 0 0 20px rgba(0, 229, 255, 0.15);
    z-index: 99999 !important;
    max-height: 250px;
    overflow-y: auto;
    padding: 6px 0;
    animation: fadeInTab 0.2s ease;
}

.worker-autocomplete-dropdown::-webkit-scrollbar {
    width: 6px;
}

.worker-autocomplete-dropdown::-webkit-scrollbar-thumb {
    background: rgba(0, 229, 255, 0.3);
    border-radius: 6px;
}

.worker-suggest-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 14px;
    cursor: pointer;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    transition: all 0.2s ease;
}

.worker-suggest-item:last-child {
    border-bottom: none;
}

.worker-suggest-item:hover,
.worker-suggest-item.highlighted {
    background: rgba(0, 229, 255, 0.12);
}

.worker-suggest-left {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.worker-suggest-avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(0, 229, 255, 0.15);
    border: 1px solid rgba(0, 229, 255, 0.4);
    color: #00e5ff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.88rem;
    flex-shrink: 0;
}

.worker-suggest-name {
    font-size: 0.88rem;
    font-weight: 700;
    color: #ffffff;
    line-height: 1.25;
}

.worker-suggest-name .match-highlight {
    color: #00e5ff;
    text-decoration: underline;
    font-weight: 900;
}

.worker-suggest-sub {
    font-size: 0.72rem;
    color: #94a3b8;
}

.worker-suggest-badge {
    background: rgba(46, 213, 115, 0.12);
    border: 1px solid rgba(46, 213, 115, 0.3);
    color: #2ed573;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
    white-space: nowrap;
}

.worker-suggest-custom-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    color: #ffb142;
    background: rgba(255, 177, 66, 0.08);
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
    transition: var(--transition);
}

.worker-suggest-custom-btn:hover {
    background: rgba(255, 177, 66, 0.18);
    color: #ffffff;
}

.worker-selected-cardlet {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: rgba(0, 229, 255, 0.1);
    border: 1px solid rgba(0, 229, 255, 0.35);
    padding: 8px 12px;
    border-radius: 8px;
    margin-top: 6px;
    animation: fadeInTab 0.25s ease;
}

.worker-selected-cardlet-left {
    display: flex;
    align-items: center;
    gap: 8px;
}

.worker-selected-cardlet-left i {
    color: #00e5ff;
    font-size: 1.1rem;
}

.worker-selected-cardlet-info strong {
    color: #ffffff;
    font-size: 0.86rem;
    display: block;
}

.worker-selected-cardlet-info small {
    color: #94a3b8;
    font-size: 0.72rem;
}

.worker-selected-remove-btn {
    background: transparent;
    border: none;
    color: #ff6b81;
    cursor: pointer;
    font-size: 0.85rem;
    padding: 4px 6px;
    border-radius: 4px;
    transition: var(--transition);
}

.worker-selected-remove-btn:hover {
    background: rgba(255, 71, 87, 0.2);
    color: #ff4757;
}

/* Destination Pills & Tool Counters */
.obra-chip-pill {
    background: rgba(0, 229, 255, 0.08);
    border: 1px solid rgba(0, 229, 255, 0.35);
    color: #00e5ff;
    border-radius: 20px;
    padding: 5px 12px;
    font-size: 0.74rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    user-select: none;
}

.obra-chip-pill:hover,
.obra-chip-pill.active {
    background: rgba(0, 229, 255, 0.25);
    border-color: #00e5ff;
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 229, 255, 0.25);
}

.obra-chip-pill.combine-all {
    background: rgba(255, 177, 66, 0.12);
    border-color: rgba(255, 177, 66, 0.4);
    color: #ffb142;
}

.obra-chip-pill.combine-all:hover {
    background: #ffb142;
    color: #000;
}

.eq-assigned-count-pill {
    background: rgba(46, 213, 115, 0.15);
    border: 1px solid rgba(46, 213, 115, 0.4);
    color: #2ed573;
    border-radius: 20px;
    padding: 2px 9px;
    font-size: 0.72rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
}

/* Quantity Stepper & Stock Addition */
.qty-stepper-wrap {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
}

.qty-step-btn {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #ffffff;
    width: 40px;
    height: 38px;
    border-radius: 8px;
    font-size: 1.1rem;
    font-weight: 700;
    cursor: pointer;
    transition: var(--transition);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.qty-step-btn:hover {
    background: var(--primary-red);
    color: #ffffff;
    border-color: var(--primary-red);
    transform: scale(1.05);
}

.eq-btn-clone {
    background: rgba(0, 229, 255, 0.1);
    border: 1px solid rgba(0, 229, 255, 0.3);
    color: #00e5ff;
    border-radius: 6px;
    padding: 5px 9px;
    font-size: 0.72rem;
    font-weight: 700;
    cursor: pointer;
    transition: var(--transition);
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.eq-btn-clone:hover {
    background: #00e5ff;
    color: #000000;
    box-shadow: 0 4px 12px rgba(0, 229, 255, 0.3);
}

.eq-stock-badge {
    background: rgba(0, 229, 255, 0.12);
    border: 1px solid rgba(0, 229, 255, 0.35);
    color: #00e5ff;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* =============================================================
   MODELO DE PRESENTACIÓN DE HERRAMIENTAS ASIGNADAS & DEVOLUCIÓN
   ============================================================= */
.tech-tool-card {
    background: rgba(15, 23, 42, 0.75);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 12px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
    position: relative;
    overflow: hidden;
}

.tech-tool-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.tech-tool-card.pending {
    border-color: rgba(255, 177, 66, 0.4);
}

.tech-tool-card.verified {
    background: rgba(16, 185, 129, 0.08);
    border: 1px solid #2ed573;
    box-shadow: 0 4px 20px rgba(46, 213, 115, 0.18);
}

.tech-tool-card.returned {
    background: rgba(46, 213, 115, 0.15) !important;
    border: 2px solid #2ed573 !important;
    box-shadow: 0 0 25px rgba(46, 213, 115, 0.4) !important;
    animation: pulseGreenGlow 1.5s ease;
}

@keyframes pulseGreenGlow {
    0% { transform: scale(0.98); box-shadow: 0 0 0 rgba(46, 213, 115, 0.7); }
    50% { transform: scale(1.02); box-shadow: 0 0 30px rgba(46, 213, 115, 0.8); }
    100% { transform: scale(1); box-shadow: 0 0 25px rgba(46, 213, 115, 0.4); }
}

.tech-tool-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.tech-tool-qr-chip {
    font-family: monospace;
    font-size: 0.8rem;
    font-weight: 800;
    color: #00e5ff;
    background: rgba(0, 229, 255, 0.12);
    padding: 3px 8px;
    border-radius: 6px;
    border: 1px solid rgba(0, 229, 255, 0.3);
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.tech-tool-status-badge {
    font-size: 0.72rem;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}

.tech-tool-status-badge.badge-pending {
    background: rgba(255, 177, 66, 0.18);
    color: #ffa502;
    border: 1px solid rgba(255, 177, 66, 0.45);
}

.tech-tool-status-badge.badge-verified {
    background: rgba(46, 213, 115, 0.2);
    color: #2ed573;
    border: 1px solid rgba(46, 213, 115, 0.5);
}

.tech-tool-status-badge.badge-returned {
    background: #2ed573;
    color: #000000;
    font-weight: 800;
    border: 1px solid #2ed573;
}

.tech-tool-content-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 4px 0;
}

.tech-tool-icon-circle {
    width: 48px;
    height: 48px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    color: #00e5ff;
    flex-shrink: 0;
    overflow: hidden;
}

.tech-tool-icon-circle img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tech-tool-info {
    flex: 1;
    min-width: 0;
}

.tech-tool-title {
    font-size: 0.96rem;
    font-weight: 700;
    color: #ffffff;
    margin: 0 0 3px 0;
    line-height: 1.3;
}

.tech-tool-meta {
    font-size: 0.78rem;
    color: #94a3b8;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.tech-tool-order-pill {
    background: rgba(0, 229, 255, 0.08);
    border: 1px solid rgba(0, 229, 255, 0.2);
    color: #00e5ff;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tech-tool-actions-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 10px;
}

.tech-btn-receive {
    flex: 1;
    padding: 8px 12px;
    font-size: 0.8rem;
    font-weight: 700;
    border-radius: 8px;
    background: rgba(46, 213, 115, 0.15);
    color: #2ed573;
    border: 1px solid #2ed573;
    cursor: pointer;
    transition: var(--transition);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.tech-btn-receive:hover {
    background: #2ed573;
    color: #000000;
    box-shadow: 0 4px 14px rgba(46, 213, 115, 0.4);
}

.tech-btn-return {
    flex: 1;
    padding: 8px 12px;
    font-size: 0.8rem;
    font-weight: 700;
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(46, 213, 115, 0.2) 0%, rgba(0, 229, 255, 0.2) 100%);
    color: #2ed573;
    border: 1px solid #2ed573;
    cursor: pointer;
    transition: var(--transition);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.tech-btn-return:hover {
    background: #2ed573;
    color: #000000;
    box-shadow: 0 4px 16px rgba(46, 213, 115, 0.5);
    transform: translateY(-1px);
}

.tech-btn-returned-done {
    flex: 1;
    padding: 8px 12px;
    font-size: 0.82rem;
    font-weight: 800;
    border-radius: 8px;
    background: #2ed573;
    color: #000000;
    border: 1px solid #2ed573;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.tech-tool-card.in-active-service {
    background: radial-gradient(circle at top left, rgba(255, 177, 66, 0.06) 0%, rgba(15, 23, 42, 0.85) 100%);
    border: 1px solid rgba(255, 177, 66, 0.35);
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}

.tech-tool-locked-banner {
    background: rgba(255, 71, 87, 0.1) !important;
    border: 1px dashed rgba(255, 71, 87, 0.4) !important;
    border-radius: 8px;
    padding: 7px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
}

.tech-btn-finish-shortcut {
    background: linear-gradient(135deg, #00e5ff 0%, #00b4d8 100%);
    color: #0a0d18;
    border: none;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 0.72rem;
    font-weight: 800;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    box-shadow: 0 0 10px rgba(0, 229, 255, 0.35);
    transition: all 0.2s ease;
}

.tech-btn-finish-shortcut:hover {
    transform: scale(1.04);
    box-shadow: 0 0 16px rgba(0, 229, 255, 0.6);
}

/* ============================================================== */
/* ADMIN TOOL REQUESTS & NOTIFICATIONS SYSTEM                     */
/* ============================================================== */
.admin-requests-bell-btn:hover {
    background: rgba(0, 229, 255, 0.22) !important;
    transform: scale(1.04);
    box-shadow: 0 0 16px rgba(0, 229, 255, 0.5) !important;
}

.admin-req-card {
    transition: all 0.25s ease;
}

.admin-req-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.5), 0 0 16px rgba(0, 229, 255, 0.15) !important;
}

/* ============================================================== */
/* PEDIDOS CARD & PORTAL STYLING                                  */
/* ============================================================== */
.pedidos-icon {
    background: rgba(0, 229, 255, 0.15);
    border: 1px solid rgba(0, 229, 255, 0.35);
    color: #00e5ff;
}

.pedidos-card {
    border-color: rgba(0, 229, 255, 0.25);
}

.pedidos-card::before {
    background: linear-gradient(90deg, transparent, #00e5ff, transparent);
}

.pedidos-card:hover {
    border-color: #00e5ff;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.8), 0 0 25px rgba(0, 229, 255, 0.25);
}

.pedidos-card:hover .dept-action-btn {
    background: linear-gradient(135deg, #00e5ff 0%, #0077b6 100%);
    border-color: #00e5ff;
    color: #05131e;
    font-weight: 800;
    box-shadow: 0 4px 20px rgba(0, 229, 255, 0.4);
}

/* ============================================================== */
/* ADDRESS AUTOCOMPLETE & GOOGLE MAPS PREVIEW                     */
/* ============================================================== */
.address-autocomplete-dropdown {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: #0d1527;
    border: 1px solid rgba(0, 229, 255, 0.4);
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.9), 0 0 20px rgba(0, 229, 255, 0.2);
    z-index: 1000;
    max-height: 220px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 229, 255, 0.4) transparent;
}

.address-suggestion-item {
    padding: 10px 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    transition: all 0.2s ease;
    font-size: 0.84rem;
    color: #cbd5e1;
}

.address-suggestion-item:last-child {
    border-bottom: none;
}

.address-suggestion-item:hover,
.address-suggestion-item.active {
    background: rgba(0, 229, 255, 0.15);
    color: #ffffff;
}

.address-suggestion-item i {
    color: #00e5ff;
    font-size: 0.9rem;
    flex-shrink: 0;
}

.address-suggestion-main {
    font-weight: 700;
    color: #ffffff;
    display: block;
}

.address-suggestion-sub {
    font-size: 0.74rem;
    color: #94a3b8;
    display: block;
}

.maps-preview-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: rgba(0, 229, 255, 0.12);
    border: 1px solid rgba(0, 229, 255, 0.35);
    color: #00e5ff;
    font-size: 0.74rem;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 6px;
    text-decoration: none;
    transition: all 0.2s ease;
}

.maps-preview-badge:hover {
    background: rgba(0, 229, 255, 0.25);
    border-color: #00e5ff;
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow: 0 0 10px rgba(0, 229, 255, 0.4);
}

/* ============================================================== */
/* PWA MOBILE-ONLY INSTALL PROMPT RULES                           */
/* ============================================================== */
@media (min-width: 769px) {
    #pwa-install-banner-root,
    .pwa-install-card,
    .pwa-ios-modal,
    .pwa-install-backdrop {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
        opacity: 0 !important;
        height: 0 !important;
        width: 0 !important;
    }
}

/* ============================================================== */
/* CARNET CORPORATIVO DE IDENTIFICACIÓN (ID CARD / FOTOCHECK)     */
/* ============================================================== */
.carnet-modal-backdrop {
    overflow-y: auto !important;
    padding: 16px 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.carnet-modal-card {
    max-width: 390px !important;
    width: 95% !important;
    max-height: 94vh !important;
    overflow-y: auto !important;
    margin: auto !important;
    background: linear-gradient(145deg, #091122 0%, #040813 100%) !important;
    border: 1px solid rgba(0, 229, 255, 0.4) !important;
    border-radius: 20px !important;
    padding: 16px 18px !important;
    box-shadow: 0 25px 60px rgba(0,0,0,0.9), 0 0 35px rgba(0, 229, 255, 0.2) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    box-sizing: border-box !important;
}

.carnet-viewport {
    perspective: 1200px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 4px 0 12px 0;
    width: 100%;
}

.carnet-flipper {
    position: relative;
    width: 300px;
    height: 450px;
    transform-style: preserve-3d;
    transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
}

.carnet-flipper.flipped {
    transform: rotateY(180deg);
}

.carnet-side {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 20px;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    overflow: hidden;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.75), inset 0 0 0 1px rgba(255, 255, 255, 0.12);
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}

/* FRONT SIDE (Frente) */
.carnet-front {
    background: #0a1128;
    color: #ffffff;
    padding: 24px 20px 18px;
    justify-content: space-between;
    align-items: center;
    text-align: center;
    z-index: 2;
}

.carnet-top-arc {
    position: absolute;
    top: -90px;
    left: -40px;
    right: -40px;
    height: 220px;
    background: #ffffff;
    border-radius: 50%;
    z-index: 1;
}

.carnet-watermark-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background-image: url('carnet-logo-transparent.png');
    background-repeat: no-repeat;
    background-position: center 72%;
    background-size: 82%;
    opacity: 0.16;
    pointer-events: none;
    z-index: 1;
}

.carnet-back .carnet-watermark-bg {
    background-position: center 30%;
    background-size: 78%;
    opacity: 0.13;
}

.carnet-deco-dots {
    position: absolute;
    width: 48px;
    height: 48px;
    background-image: radial-gradient(rgba(255, 255, 255, 0.25) 1.5px, transparent 1.5px);
    background-size: 8px 8px;
    z-index: 1;
}

.carnet-deco-dots.top-right {
    top: 14px;
    right: 14px;
    background-image: radial-gradient(#0a1128 1.5px, transparent 1.5px);
}

.carnet-deco-dots.bottom-left {
    bottom: 18px;
    left: 14px;
}

.carnet-deco-dots.top-left {
    top: 14px;
    left: 14px;
}

.carnet-deco-dots.bottom-right {
    bottom: 18px;
    right: 14px;
}

.carnet-header-brand {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 8px;
    color: #0a1128;
}

.carnet-logo-icon {
    width: 32px;
    height: 32px;
    background: #0a1128;
    color: #00e5ff;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

.carnet-logo-text {
    text-align: left;
    line-height: 1.1;
}

.carnet-logo-text strong {
    font-size: 0.95rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    color: #0a1128;
    display: block;
}

.carnet-logo-text span {
    font-size: 0.58rem;
    font-weight: 700;
    color: #475569;
    letter-spacing: 0.08em;
}

.carnet-photo-frame {
    position: relative;
    z-index: 2;
    margin-top: 10px;
}

.carnet-photo-box {
    width: 130px;
    height: 155px;
    background: #040d1a;
    border: 3px solid #00e5ff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
}

.carnet-status-pill {
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    background: linear-gradient(135deg, #00e5ff 0%, #0077b6 100%);
    color: #041017;
    font-size: 0.65rem;
    font-weight: 900;
    padding: 3px 10px;
    border-radius: 20px;
    letter-spacing: 0.05em;
    box-shadow: 0 0 12px rgba(0, 229, 255, 0.6);
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
}

.carnet-front-info {
    position: relative;
    z-index: 2;
    width: 100%;
    margin-top: 14px;
}

.carnet-worker-name {
    font-size: 1.15rem;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 4px 0;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.carnet-worker-position-line {
    border-bottom: 2px solid #00e5ff;
    padding-bottom: 6px;
    margin: 0 20px 8px 20px;
}

.carnet-worker-position {
    font-size: 0.76rem;
    font-weight: 800;
    color: #00e5ff;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.carnet-meta-box {
    font-size: 0.72rem;
    color: #cbd5e1;
    font-weight: 600;
    line-height: 1.4;
}

.carnet-meta-box p {
    margin: 2px 0;
}

.carnet-flip-hint {
    font-size: 0.68rem;
    color: #64748b;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 2px;
}

/* BACK SIDE (Dorso) */
.carnet-back {
    background: #0a1128;
    color: #ffffff;
    padding: 22px 18px 16px;
    transform: rotateY(180deg);
    justify-content: space-between;
    align-items: center;
    text-align: center;
}

.carnet-back-corner-accent {
    position: absolute;
    top: 0;
    right: 0;
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, transparent 50%, rgba(0, 229, 255, 0.15) 50%);
    border-top-right-radius: 20px;
}

.carnet-back-content {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    z-index: 2;
}

.carnet-terms-title {
    font-size: 0.85rem;
    font-weight: 800;
    color: #ffffff;
    letter-spacing: 0.08em;
    margin: 0 0 2px 0;
}

.carnet-terms-text {
    font-size: 0.62rem;
    color: #94a3b8;
    line-height: 1.35;
    text-align: justify;
    margin: 0;
    padding: 0 6px;
}

.carnet-qr-frame {
    margin: 6px 0;
    background: #ffffff;
    padding: 10px;
    border-radius: 12px;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.6);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.carnet-qr-canvas {
    display: flex;
    align-items: center;
    justify-content: center;
}

.carnet-qr-label {
    font-size: 0.58rem;
    font-weight: 900;
    color: #0a1128;
    letter-spacing: 0.08em;
}

.carnet-back-footer {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 3px;
    font-size: 0.64rem;
    color: #cbd5e1;
    text-align: left;
    background: rgba(255, 255, 255, 0.04);
    border-radius: 8px;
    padding: 8px 10px;
    box-sizing: border-box;
}

.carnet-contact-row {
    display: flex;
    align-items: center;
    gap: 6px;
}

.carnet-contact-row i {
    color: #00e5ff;
    width: 12px;
    font-size: 0.68rem;
}

.carnet-actions-row {
    display: flex;
    gap: 10px;
    justify-content: center;
    width: 100%;
    max-width: 300px;
    margin-top: 6px;
}

.carnet-btn-flip {
    flex: 1;
    background: rgba(0, 229, 255, 0.15);
    border: 1px solid rgba(0, 229, 255, 0.4);
    color: #00e5ff;
    padding: 10px;
    border-radius: 10px;
    font-weight: 800;
    font-size: 0.84rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    transition: all 0.2s ease;
}

.carnet-btn-flip:hover {
    background: rgba(0, 229, 255, 0.25);
    transform: translateY(-1px);
}

.carnet-btn-download,
.carnet-btn-print {
    flex: 1;
    background: linear-gradient(135deg, #00e5ff 0%, #0077b6 100%);
    color: #041017;
    border: none;
    padding: 10px;
    border-radius: 10px;
    font-weight: 800;
    font-size: 0.84rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    box-shadow: 0 0 15px rgba(0, 229, 255, 0.35);
    transition: all 0.2s ease;
}

.carnet-btn-download:hover,
.carnet-btn-print:hover {
    transform: translateY(-1px);
    box-shadow: 0 0 20px rgba(0, 229, 255, 0.5);
}

/* ============================================================== */
/* GPS BLOCKING GUARD OVERLAY                                     */
/* ============================================================== */
.gps-guard-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;
    background: rgba(3, 7, 18, 0.96);
    backdrop-filter: blur(14px);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box;
}

@media (min-width: 801px) {
    .gps-guard-modal {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
        opacity: 0 !important;
    }
}

.gps-guard-card {
    max-width: 440px;
    width: 100%;
    background: linear-gradient(145deg, #0d1526, #070a14);
    border: 2px solid #ff4757;
    border-radius: 24px;
    padding: 28px 24px;
    text-align: center;
    box-shadow: 0 0 40px rgba(255, 71, 87, 0.35);
    box-sizing: border-box;
}

.gps-guard-icon-circle {
    width: 72px;
    height: 72px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: rgba(255, 71, 87, 0.15);
    border: 2px solid #ff4757;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: #ff4757;
    animation: pulseGlowRed 2s infinite ease-in-out;
}

@keyframes pulseGlowRed {
    0%, 100% { transform: scale(1); box-shadow: 0 0 15px rgba(255, 71, 87, 0.4); }
    50% { transform: scale(1.06); box-shadow: 0 0 28px rgba(255, 71, 87, 0.7); }
}

.gps-guard-title {
    color: #ffffff;
    font-size: 1.25rem;
    margin: 0 0 10px;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.gps-guard-desc {
    color: #cbd5e1;
    font-size: 0.88rem;
    line-height: 1.5;
    margin: 0 0 18px 0;
}

/* ============================================================== */
/* PRINT FORMAT FOR PVC BADGES                                    */
/* ============================================================== */
@media print {
    body * {
        visibility: hidden !important;
    }
    #worker-carnet-modal,
    #worker-carnet-modal * {
        visibility: visible !important;
    }
    #worker-carnet-modal {
        position: absolute !important;
        left: 0 !important;
        top: 0 !important;
        width: 100% !important;
        height: 100% !important;
        background: #ffffff !important;
        display: block !important;
    }
    .carnet-modal-card {
        border: none !important;
        box-shadow: none !important;
        background: transparent !important;
        padding: 0 !important;
    }
    .carnet-actions-row,
    .carnet-flip-hint,
    .modal-card > div:first-child {
        display: none !important;
    }
    .carnet-flipper {
        display: flex !important;
        gap: 30px !important;
        transform: none !important;
    }
    .carnet-side {
        position: relative !important;
        display: inline-flex !important;
        page-break-inside: avoid !important;
        print-color-adjust: exact !important;
        -webkit-print-color-adjust: exact !important;
    }
    .carnet-back {
        transform: none !important;
    }
}

/* ============================================================== */
/* CYBER SECURITY SHIELD & ANTI-DEVTOOLS WARNING MODAL            */
/* ============================================================== */
.cyber-security-alert-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(3, 7, 18, 0.95);
    backdrop-filter: blur(25px);
    -webkit-backdrop-filter: blur(25px);
    z-index: 9999999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box;
    animation: cyberFadeIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes cyberFadeIn {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}

.cyber-alert-box {
    max-width: 520px;
    width: 100%;
    background: linear-gradient(145deg, #0b1329 0%, #060913 100%);
    border: 2px solid #ff4757;
    border-radius: 24px;
    padding: 38px 28px;
    text-align: center;
    box-shadow: 0 0 50px rgba(255, 71, 87, 0.35), 0 30px 80px rgba(0, 0, 0, 0.9);
    position: relative;
    overflow: hidden;
}

.cyber-alert-box::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 200%;
    height: 4px;
    background: linear-gradient(90deg, transparent, #ff4757, #00e5ff, transparent);
    animation: cyberScanline 2.5s linear infinite;
}

@keyframes cyberScanline {
    0% { transform: translateX(0); }
    100% { transform: translateX(50%); }
}

.cyber-alert-icon {
    width: 76px;
    height: 76px;
    margin: 0 auto 18px;
    background: rgba(255, 71, 87, 0.15);
    border: 2px solid rgba(255, 71, 87, 0.45);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.2rem;
    color: #ff4757;
    box-shadow: 0 0 30px rgba(255, 71, 87, 0.5);
    animation: cyberPulseIcon 1.8s infinite ease-in-out;
}

@keyframes cyberPulseIcon {
    0%, 100% { transform: scale(1); box-shadow: 0 0 20px rgba(255, 71, 87, 0.4); }
    50% { transform: scale(1.08); box-shadow: 0 0 35px rgba(255, 71, 87, 0.8); }
}

.cyber-alert-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255, 71, 87, 0.15);
    border: 1px solid rgba(255, 71, 87, 0.4);
    color: #ff6b81;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 5px 14px;
    border-radius: 20px;
    margin-bottom: 14px;
}

.cyber-alert-title {
    font-size: 1.6rem;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 12px;
    letter-spacing: -0.02em;
}

.cyber-alert-text {
    font-size: 0.96rem;
    line-height: 1.55;
    color: #e2e8f0;
    margin-bottom: 14px;
}

.cyber-alert-text strong {
    color: #ff4757;
}

.cyber-alert-subtext {
    font-size: 0.82rem;
    color: #94a3b8;
    line-height: 1.5;
    background: rgba(0, 0, 0, 0.35);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 10px 14px;
    margin-bottom: 24px;
}

.cyber-alert-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 14px 20px;
    background: linear-gradient(135deg, #00e5ff 0%, #0077b6 100%);
    color: #041017;
    font-weight: 800;
    font-size: 0.95rem;
    border: none;
    border-radius: 14px;
    cursor: pointer;
    text-decoration: none;
    box-shadow: 0 0 25px rgba(0, 229, 255, 0.4);
    transition: all 0.25s ease;
}

.cyber-alert-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 0 35px rgba(0, 229, 255, 0.7);
    color: #041017;
}



