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

:root {
    --navy: #03182B;
    --navy-mid: #052a4a;
    --navy-light: #0a3d6b;
    --blue: #00419B;
    --blue-light: #1a5fbb;
    --blue-accent: #00419B;
    --accent: #E7FF49;
    --accent-dim: rgba(231, 255, 73, 0.12);
    --bg: #E8E9EC;
    --bg-alt: #dddee2;
    --bg-card: #ffffff;
    --text-main: #111827;
    --text-muted: #4B5563;
    --text-light: #9CA3AF;
    --border: #D1D5DB;
    --border-light: #E5E7EB;
    --success: #059669;
    --success-bg: #d1fae5;
    --warning: #D97706;
    --warning-bg: #fef3c7;
    --danger: #DC2626;
    --danger-bg: #fee2e2;
    --info: #00419B;
    --info-bg: #dde8ff;
    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.06);
    --shadow-sm: 0 1px 4px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 0, 0, 0.03);
    --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.09), 0 1px 3px rgba(0, 0, 0, 0.05);
    --shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.14), 0 4px 12px rgba(0, 0, 0, 0.06);
    --shadow-card: 0 2px 8px rgba(3, 24, 43, 0.07), 0 0 0 1px rgba(3, 24, 43, 0.04);
    --r: 10px;
    --r-sm: 6px;
    --r-lg: 14px;
}

/* ─── SCROLLBAR GLOBAL ─── */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: var(--border);
    border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
    background: #aaa;
}

* {
    scrollbar-width: thin;
    scrollbar-color: var(--border) transparent;
}

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

body {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--bg);
    color: var(--text-main);
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
}

.hidden {
    display: none !important;
}

/* ─── SCREENS ─── */
.screen {
    min-height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
    animation: fadeUp 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(16px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ─── LOGIN SCREEN ─── */
.login-screen {
    background: var(--navy);
    background-image:
        radial-gradient(ellipse at 15% 10%, rgba(0, 65, 155, 0.55) 0%, transparent 50%),
        radial-gradient(ellipse at 85% 85%, rgba(0, 40, 100, 0.4) 0%, transparent 50%);
    position: relative;
    overflow: hidden;
    padding: 24px 20px 40px;
    flex-direction: column;
    align-items: center;
}

/* Orbs decorativos animados */
.login-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    pointer-events: none;
    z-index: 0;
}

.login-orb-1 {
    width: 420px;
    height: 420px;
    background: rgba(0, 65, 155, 0.45);
    top: -140px;
    left: -120px;
    animation: orbFloat 8s ease-in-out infinite;
}

.login-orb-2 {
    width: 300px;
    height: 300px;
    background: rgba(231, 255, 73, 0.07);
    bottom: -80px;
    right: -80px;
    animation: orbFloat 10s ease-in-out infinite reverse;
}

.login-orb-3 {
    width: 200px;
    height: 200px;
    background: rgba(0, 100, 200, 0.18);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    animation: orbFloat 12s ease-in-out infinite 3s;
}

@keyframes orbFloat {

    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    33% {
        transform: translate(12px, -16px) scale(1.04);
    }

    66% {
        transform: translate(-8px, 10px) scale(0.97);
    }
}

/* Wrapper centrado */
.login-wrap {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 400px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 28px;
    animation: fadeUp 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}

/* Bloco do logo / marca */
.login-top {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
}

.login-logo-big {
    width: 88px;
    height: 88px;
    object-fit: contain;
    background: rgba(255, 255, 255, 0.08);
    border: 1.5px solid rgba(255, 255, 255, 0.14);
    border-radius: 24px;
    padding: 14px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(231, 255, 73, 0.12);
    backdrop-filter: blur(8px);
}

.login-brand-name {
    font-size: 1.45rem;
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.035em;
    line-height: 1.1;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}

.login-brand-sub {
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.5);
    font-weight: 500;
    letter-spacing: 0.04em;
}

/* Card do formulário */
.login-card {
    background: rgba(255, 255, 255, 0.97);
    backdrop-filter: blur(20px);
    border-radius: 20px;
    padding: 32px 28px 26px;
    width: 100%;
    box-shadow:
        0 24px 60px rgba(0, 0, 0, 0.35),
        0 0 0 1px rgba(255, 255, 255, 0.12);
}

.login-card-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-light);
    margin-bottom: 20px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--border-light);
}

/* Botão de entrar (login) */
.btn-login {
    width: 100%;
    background: var(--accent);
    color: var(--navy);
    font-size: 0.97rem;
    font-weight: 800;
    padding: 15px 20px;
    border-radius: 12px;
    border: none;
    cursor: pointer;
    margin-top: 10px;
    letter-spacing: 0.015em;
    transition: all 0.18s ease;
    box-shadow: 0 4px 20px rgba(231, 255, 73, 0.35);
}

.btn-login:hover {
    background: #d4ec30;
    transform: translateY(-1px);
    box-shadow: 0 8px 28px rgba(231, 255, 73, 0.45);
}

.btn-login:active {
    transform: translateY(0);
    box-shadow: 0 2px 10px rgba(231, 255, 73, 0.25);
}

/* Footer do card (criar conta) */
.login-footer {
    text-align: center;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--border-light);
}

/* Botão de pedir ajuda no ecrã de login */
.login-ajuda-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    padding: 15px;
    margin-top: 14px;
    background: rgba(220, 60, 50, 0.92);
    color: #fff;
    font-size: 0.9rem;
    font-weight: 800;
    border: none;
    border-radius: 14px;
    cursor: pointer;
    letter-spacing: 0.02em;
    box-shadow: 0 4px 18px rgba(192, 57, 43, 0.4);
    transition: opacity 0.15s, transform 0.12s;
    -webkit-tap-highlight-color: transparent;
}

.login-ajuda-btn:active {
    opacity: 0.88;
    transform: scale(0.98);
}

/* Card legado (mantido para outros contextos) */
.card {
    background: var(--bg-card);
    border-radius: var(--r-lg);
    padding: 0;
    width: 100%;
    max-width: 420px;
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.card-accent-top {
    height: 4px;
    background: linear-gradient(90deg, var(--blue-accent) 0%, #E7FF49 100%);
}

.card-inner {
    padding: 36px 38px 32px;
}

/* ── Logo na sidebar ── */
.sidebar-logo {
    width: 40px;
    height: 40px;
    object-fit: contain;
    flex-shrink: 0;
    filter: brightness(0) invert(1);
    opacity: 0.9;
}

/* ── Logo no header da app ── */
.header-right {
    display: flex;
    align-items: center;
    gap: 12px;
}

.header-logo {
    width: 36px;
    height: 36px;
    object-fit: contain;
    flex-shrink: 0;
    filter: brightness(0) invert(1);
    opacity: 0.85;
}

/* Manter compatibilidade h2 noutros cards */
.card h2 {
    font-size: 1.45rem;
    font-weight: 800;
    color: var(--text-main);
    letter-spacing: -0.03em;
    margin-bottom: 24px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--border-light);
}

.app-card {
    max-width: 920px;
    padding: 0;
    background: transparent;
    box-shadow: none;
    border-radius: 0;
    align-self: flex-start;
    margin-top: 0;
}

/* ─── APP SCREEN ─── */
#app-screen {
    display: block;
    min-height: 100vh;
    background: var(--bg);
    animation: fadeUp 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.app-wrapper {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.app-body {
    flex: 1;
    max-width: 940px;
    width: 100%;
    margin: 0 auto;
    padding: 22px 26px 32px;
}

.btn-logout {
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.75);
    border: 1px solid rgba(255, 255, 255, 0.14);
    font-size: 0.8rem;
    font-weight: 600;
    padding: 7px 15px;
    border-radius: var(--r-sm);
    cursor: pointer;
    transition: all 0.18s ease;
    font-family: inherit;
    letter-spacing: 0.01em;
}

.btn-logout:hover {
    background: rgba(255, 255, 255, 0.16);
    color: white;
    border-color: rgba(255, 255, 255, 0.25);
}

/* ─── HEADER ─── */
.app-header {
    background: var(--navy);
    color: white;
    padding: 14px 22px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: none;
    margin-bottom: 0;
    position: sticky;
    top: 0;
    z-index: 10;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
}

.app-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--blue-accent), transparent 80%);
    opacity: 0.5;
}

.header-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

.app-header h2 {
    font-size: 1.1rem;
    font-weight: 700;
    color: white;
    letter-spacing: -0.01em;
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.app-header h2::before {
    display: none;
}

#user-info {
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.5);
    font-weight: 400;
    margin-top: 2px;
}

/* ─── HAMBURGER ─── */
.btn-hamburger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 38px;
    height: 38px;
    padding: 8px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 6px;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.2s;
}

.btn-hamburger:hover {
    background: rgba(255, 255, 255, 0.2);
}

.btn-hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background: white;
    border-radius: 2px;
    transition: all 0.2s ease;
}

/* ─── SIDEBAR ─── */
#sidebar-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 99;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.28s ease;
    backdrop-filter: blur(2px);
}

#sidebar-overlay.is-open {
    opacity: 1;
    pointer-events: all;
}

#sidebar-panel {
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    width: 260px;
    background: var(--navy);
    z-index: 100;
    transform: translateX(-100%);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    box-shadow: 4px 0 24px rgba(0, 0, 0, 0.3);
}

#sidebar-panel.is-open {
    transform: translateX(0);
}

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

.sidebar-brand {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: rgba(255, 255, 255, 0.5);
}

.btn-close-sidebar {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, 0.6);
    font-size: 1rem;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.18s;
}

.btn-close-sidebar:hover {
    background: rgba(255, 255, 255, 0.1);
    color: white;
}

/* ─── NAV dentro da sidebar ─── */
#admin-nav {
    display: flex !important;
    flex-direction: column !important;
    padding: 12px 10px !important;
    gap: 4px !important;
    overflow-y: auto;
    flex: 1;
}

#admin-nav .btn-filter {
    background: transparent !important;
    color: rgba(255, 255, 255, 0.6) !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 12px 14px !important;
    font-size: 0.9rem !important;
    font-weight: 500 !important;
    box-shadow: none !important;
    text-align: left !important;
    justify-content: flex-start !important;
    transition: all 0.18s ease;
    width: 100% !important;
    letter-spacing: 0.01em !important;
}

#admin-nav .btn-filter:hover {
    color: white !important;
    background: rgba(255, 255, 255, 0.08) !important;
    transform: none !important;
}

#admin-nav .btn-filter.active {
    color: #E7FF49 !important;
    background: rgba(231, 255, 73, 0.08) !important;
    font-weight: 700 !important;
    border-left: 3px solid #E7FF49 !important;
    padding-left: 11px !important;
}

/* ─── Sidebar bottom — Modo Evento ─── */
#sidebar-bottom {
    padding: 12px 10px 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    flex-shrink: 0;
}

.modo-evento-btn {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 9px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    padding: 11px 14px;
    cursor: pointer;
    color: rgba(255, 255, 255, 0.65);
    font-family: inherit;
    font-size: 0.85rem;
    font-weight: 600;
    transition: all 0.18s;
    text-align: left;
}

.modo-evento-btn:hover {
    background: rgba(255, 255, 255, 0.1);
    color: white;
}

.modo-evento-btn.modo-evento-active {
    background: rgba(231, 255, 73, 0.1);
    border-color: rgba(231, 255, 73, 0.35);
    color: #E7FF49;
}

.modo-evento-label {
    flex: 1;
}

.modo-evento-icon {
    font-size: 1rem;
}

.modo-evento-pill {
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    padding: 2px 7px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.5);
    transition: all 0.18s;
}

.modo-evento-active .modo-evento-pill {
    background: #E7FF49;
    color: #03182B;
}

/* ─── Banner Modo Evento na secção equipamentos ─── */
.modo-evento-banner {
    background: linear-gradient(90deg, rgba(231, 255, 73, 0.12), rgba(231, 255, 73, 0.04));
    border-left: 4px solid #E7FF49;
    border-radius: 0 8px 8px 0;
    padding: 10px 18px;
    font-size: 0.82rem;
    color: var(--text-main);
    margin-bottom: 4px;
}

/* ─── TIPOGRAFIA ─── */
h3 {
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    margin-bottom: 14px;
}

/* ─── FORMULÁRIOS ─── */
.form-group {
    margin-bottom: 18px;
}

label {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    margin-bottom: 5px;
}

input[type="email"],
input[type="password"],
input[type="text"],
input[type="tel"],
input[type="number"],
textarea,
select {
    width: 100%;
    padding: 11px 14px;
    font-size: 0.93rem;
    font-family: inherit;
    font-weight: 500;
    color: var(--text-main);
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: var(--r-sm);
    outline: none;
    transition: border-color 0.18s, box-shadow 0.18s, background 0.18s;
    -webkit-appearance: none;
    appearance: none;
}

input:focus,
textarea:focus,
select:focus {
    background: #fff;
    border-color: var(--blue-accent);
    box-shadow: 0 0 0 3px rgba(0, 65, 155, 0.1);
}

input::placeholder,
textarea::placeholder {
    color: var(--text-light);
    font-weight: 400;
}

textarea {
    resize: vertical;
    min-height: 84px;
    line-height: 1.65;
}

select {
    cursor: pointer;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M0 0l5 6 5-6z' fill='%234B5563'/></svg>");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
}

/* ─── BOTÕES ─── */
button {
    cursor: pointer;
    font-family: inherit;
    font-size: 0.9rem;
    font-weight: 600;
    border: none;
    border-radius: var(--r);
    padding: 11px 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: all 0.18s ease;
    letter-spacing: 0.01em;
    position: relative;
}

.btn-primary {
    width: 100%;
    background: var(--navy);
    color: #fff;
    box-shadow: 0 4px 14px rgba(3, 24, 43, 0.35);
    margin-top: 8px;
    font-size: 0.95rem;
    padding: 14px 20px;
    font-weight: 700;
    letter-spacing: 0.01em;
    border-radius: var(--r);
}

.btn-primary:hover {
    background: var(--navy-mid);
    transform: translateY(-1px);
    box-shadow: 0 8px 24px rgba(3, 24, 43, 0.42);
}

.btn-primary:active {
    transform: translateY(0);
    box-shadow: 0 2px 8px rgba(3, 24, 43, 0.3);
}

.btn-accent {
    width: 100%;
    background: var(--accent);
    color: var(--navy);
    box-shadow: 0 4px 14px rgba(231, 255, 73, 0.25);
    margin-top: 8px;
    font-size: 0.95rem;
    padding: 14px 20px;
    font-weight: 800;
    letter-spacing: 0.01em;
    border-radius: var(--r);
}

.btn-accent:hover {
    background: #d4eb30;
    transform: translateY(-1px);
    box-shadow: 0 8px 24px rgba(231, 255, 73, 0.35);
}

.btn-accent:active {
    transform: translateY(0);
}

.btn-secondary {
    background: #fff;
    color: var(--text-main);
    border: 1.5px solid var(--border);
    box-shadow: var(--shadow-xs);
}

.btn-secondary:hover {
    background: var(--bg);
    border-color: #adb5c7;
    transform: translateY(-1px);
}

.btn-link {
    background: none;
    color: var(--blue-accent);
    padding: 0;
    font-weight: 600;
    font-size: 0.88rem;
    margin-top: 18px;
}

.btn-link:hover {
    color: var(--navy);
    text-decoration: underline;
}

.form-actions {
    text-align: center;
}

/* ─── ERRO ─── */
.error-msg {
    display: none;
    margin-top: 14px;
    padding: 11px 14px;
    background: var(--danger-bg);
    border-left: 3px solid var(--danger);
    color: var(--danger);
    border-radius: var(--r);
    font-size: 0.875rem;
    font-weight: 600;
}

.error-msg:not(:empty) {
    display: block;
    animation: fadeUp 0.3s ease;
}

/* ─── FORM CONTAINERS ─── */
.task-form-container {
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: var(--r);
    padding: 20px 22px;
    margin-bottom: 16px;
    box-shadow: var(--shadow-card);
}

.task-form-container h3 {
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-light);
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-light);
    display: flex;
    align-items: center;
    gap: 8px;
}

.task-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.task-form input,
.task-form textarea,
.task-form select {
    margin-bottom: 0;
}

/* ─── LISTA ─── */
.task-list-container {
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: var(--r);
    overflow: hidden;
    box-shadow: var(--shadow-card);
    margin-bottom: 16px;
}


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

.task-item {
    background: #fff;
    border-bottom: 1px solid var(--border-light);
    padding: 14px 18px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    transition: background 0.15s ease;
    position: relative;
    border-left: 3px solid transparent;
}

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

.task-item:hover {
    background: #f8faff;
    border-left-color: var(--blue-accent);
}

.task-item.completed {
    opacity: 0.55;
}

.task-item.completed .task-title,
.task-item.completed .task-desc {
    text-decoration: line-through;
    color: var(--text-muted);
}

.task-content {
    flex: 1;
    min-width: 0;
}

.task-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 4px;
}

.task-desc {
    font-size: 0.875rem;
    color: var(--text-muted);
    line-height: 1.5;
    margin-bottom: 10px;
}

.task-creator {
    display: inline-flex;
    align-items: center;
    font-size: 0.63rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--blue-accent);
    background: #eef3ff;
    padding: 2px 9px;
    border-radius: 20px;
    margin-bottom: 7px;
    border: 1px solid #d4e1ff;
}

.task-creator span {
    color: var(--text-main);
    font-weight: 600;
}

.task-status {
    display: inline-flex;
    align-items: center;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 2px 9px;
    border-radius: 20px;
    background: #fef3c7;
    color: #92400e;
    border: 1px solid #fde68a;
}

.task-item.completed .task-status {
    background: #d1fae5;
    color: #065f46;
    border-color: #a7f3d0;
}

.task-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
    flex-shrink: 0;
}

.task-actions label {
    text-transform: none;
    letter-spacing: 0;
    font-weight: 600;
    font-size: 0.82rem;
    color: var(--text-muted);
    background: #fff;
    border: 1.5px solid var(--border);
    padding: 7px 12px;
    border-radius: var(--r-sm);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 7px;
    transition: all 0.15s;
    white-space: nowrap;
    box-shadow: var(--shadow-xs);
}

.task-actions label:hover {
    background: #eef3ff;
    color: var(--blue-accent);
    border-color: #c0d2f5;
}

.task-checkbox {
    width: 15px;
    height: 15px;
    accent-color: var(--success);
    cursor: pointer;
    flex-shrink: 0;
}

/* ─── FILTROS EQUIPAMENTOS ─── */
#eq-filters {
    display: flex;
    gap: 8px;
    margin-bottom: 0;
    overflow-x: auto;
    padding-bottom: 8px;
    border-bottom: 1.5px solid var(--border);
    scrollbar-width: none;
}

#eq-filters::-webkit-scrollbar {
    display: none;
}

.btn-filter {
    background: #fff;
    color: var(--text-muted);
    border: 1.5px solid var(--border);
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.18s ease;
    box-shadow: var(--shadow-sm);
}

.btn-filter:hover {
    background: #e4eeff;
    color: var(--blue-accent);
    border-color: #bcd0f7;
    transform: translateY(-1px);
}

.btn-filter.active {
    background: var(--blue-accent);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 4px 12px rgba(0, 65, 155, 0.25);
}

/* ─── BOTÕES EDITAR / APAGAR ─── */
.btn-edit,
.btn-delete {
    font-size: 0.8rem;
    font-weight: 600;
    padding: 8px 14px;
    border-radius: var(--r-sm);
    border: 1.5px solid var(--border);
    cursor: pointer;
    transition: all 0.18s ease;
    width: 100%;
    font-family: inherit;
    letter-spacing: 0.01em;
}

.btn-edit {
    background: #fff;
    color: var(--text-muted);
    border-color: var(--border);
}

.btn-edit:hover {
    background: #f0f4ff;
    color: var(--blue-accent);
    border-color: #c0d2f5;
    transform: translateY(-1px);
}

.btn-delete {
    background: var(--danger-bg);
    color: var(--danger);
    border-color: #fecaca;
}

.btn-delete:hover {
    background: #fecaca;
    border-color: #f87171;
    transform: translateY(-1px);
}

/* ─── BADGE helpers para JS (clientes, equipamentos) ─── */
span[style*="background:#e67e22"],
span[style*="background:#3498db"],
span[style*="background:#9b59b6"] {
    border-radius: 4px !important;
    font-size: 0.68rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
}

/* ─── DASHBOARD ─── */
.dash-greeting-block {
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--border-light);
}

#dash-greeting {
    font-size: 1.55rem;
    font-weight: 800;
    color: var(--text-main);
    letter-spacing: -0.035em;
    line-height: 1.2;
}

#dash-sub {
    font-size: 0.85rem;
    color: var(--text-light);
    font-weight: 400;
    display: block;
    margin-top: 5px;
}

/* ─── PANEL SECTION HEADER (reutilizável) ─── */
.section-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 18px;
    border-bottom: 1px solid var(--border-light);
    background: #fafbfc;
}

.section-panel-title {
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-light);
}

.section-panel-badge {
    font-size: 0.68rem;
    font-weight: 700;
    background: var(--info-bg);
    color: var(--info);
    padding: 2px 8px;
    border-radius: 20px;
}

.dash-stats {
    display: flex;
    gap: 12px;
    margin-bottom: 22px;
}

.dash-stat-card {
    flex: 1;
    border-radius: var(--r);
    padding: 20px 16px 16px;
    color: white;
    text-align: center;
    min-width: 0;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    position: relative;
    overflow: hidden;
}

.dash-stat-card::before {
    content: '';
    position: absolute;
    top: -20px;
    right: -20px;
    width: 70px;
    height: 70px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.07);
}

.dash-stat-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.2);
}

.dash-stat-blue {
    background: linear-gradient(135deg, #1a5fbb 0%, #03182B 100%);
}

.dash-stat-orange {
    background: linear-gradient(135deg, #fb923c 0%, #c2410c 100%);
}

.dash-stat-red {
    background: linear-gradient(135deg, #f87171 0%, #b91c1c 100%);
}

.dash-stat-accent {
    background: linear-gradient(135deg, #c8d613 0%, #03182B 100%);
}

.dash-stat-value {
    font-size: 2.4rem;
    font-weight: 800;
    line-height: 1;
    margin-bottom: 8px;
    letter-spacing: -0.02em;
}

.dash-stat-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    opacity: 0.82;
}

.dash-avisos-block {
    background: #fff;
    border-radius: var(--r);
    border: 1px solid var(--border-light);
    overflow: hidden;
    box-shadow: var(--shadow-card);
}

.dash-avisos-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 13px 18px;
    border-bottom: 1px solid var(--border-light);
    font-weight: 800;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-light);
    background: #fafbfc;
}

.dash-avisos-list {
    list-style: none;
}

.dash-aviso-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--border);
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--text-main);
    transition: background 0.15s;
}

.dash-aviso-item:last-child {
    border-bottom: none;
}

.dash-aviso-item:hover {
    background: #f5f7ff;
}

.dash-aviso-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--blue-accent);
    flex-shrink: 0;
    box-shadow: 0 0 0 3px rgba(0, 65, 155, 0.12);
}

.dash-aviso-sub {
    color: var(--text-muted);
    font-size: 0.82rem;
    font-weight: 400;
}

/* ─── ADMIN DASHBOARD ─── */
.adm-dash {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* ── Top bar ── */
.adm-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(135deg, var(--navy) 60%, #0a3d6b 100%);
    border-radius: var(--r-lg);
    padding: 18px 24px;
    color: white;
    gap: 12px;
    flex-wrap: wrap;
    box-shadow: 0 4px 20px rgba(3, 24, 43, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.adm-topbar-brand {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    opacity: 0.55;
}

.adm-brand-dot {
    width: 8px;
    height: 8px;
    background: #E7FF49;
    border-radius: 50%;
    flex-shrink: 0;
}

.adm-topbar-date {
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin-top: 4px;
    text-transform: capitalize;
}

.adm-topbar-right {
    display: flex;
    align-items: center;
    gap: 14px;
}

.adm-topbar-user {
    display: flex;
    align-items: center;
    gap: 10px;
}

.adm-user-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(231, 255, 73, 0.18);
    border: 1.5px solid rgba(231, 255, 73, 0.35);
    color: #E7FF49;
    font-size: 0.9rem;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.adm-user-name {
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.2;
}

.adm-user-role {
    font-size: 0.68rem;
    opacity: 0.4;
    font-weight: 500;
    margin-top: 1px;
}

.adm-status-pill {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 0.73rem;
    font-weight: 700;
    padding: 6px 13px;
    border-radius: 20px;
    white-space: nowrap;
}

.adm-status-ok {
    background: rgba(5, 150, 105, 0.2);
    color: #6ee7b7;
    border: 1px solid rgba(5, 150, 105, 0.3);
}

.adm-status-warn {
    background: rgba(220, 38, 38, 0.2);
    color: #fca5a5;
    border: 1px solid rgba(220, 38, 38, 0.3);
}

.adm-pill-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
    animation: pulse-dot 2s ease-in-out infinite;
}

@keyframes pulse-dot {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.4;
    }
}

/* ── KPI strip ── */
.adm-kpi-row {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 10px;
}

.adm-kpi {
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: var(--r);
    padding: 16px 16px 13px;
    box-shadow: var(--shadow-card);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
    position: relative;
    border-top: 3px solid transparent;
}

.adm-kpi[data-nav] {
    cursor: pointer;
}

.adm-kpi[data-nav]:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 28px rgba(3, 24, 43, 0.1);
    border-color: var(--border);
}

.adm-kpi-1 {
    border-top-color: #00419B;
}

.adm-kpi-2 {
    border-top-color: #7c3aed;
}

.adm-kpi-3 {
    border-top-color: #059669;
}

.adm-kpi-4 {
    border-top-color: #d97706;
}

.adm-kpi-5 {
    border-top-color: #0891b2;
}

.adm-kpi-6 {
    border-top-color: #E7FF49;
}

.adm-kpi-label {
    font-size: 0.67rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--text-muted);
    margin-bottom: 8px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.adm-kpi-val {
    font-size: 2rem;
    font-weight: 900;
    color: var(--text-main);
    letter-spacing: -0.05em;
    line-height: 1;
}

.adm-kpi-val-sm {
    font-size: 1.3rem;
    letter-spacing: -0.03em;
}

.adm-kpi-foot {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--text-muted);
    margin-top: 6px;
}

.adm-foot-warn {
    color: #dc2626;
}

.adm-foot-ok {
    color: #059669;
}

/* ── Main content grid ── */
.adm-main-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 14px;
    align-items: start;
}

.adm-col-left,
.adm-col-right {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* ── Cards ── */
.adm-card {
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: var(--r);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}

.adm-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 18px 11px;
    border-bottom: 1.5px solid var(--border);
}

.adm-card-title {
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--navy);
}

.adm-card-meta {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--text-light);
    background: var(--bg-alt);
    border: 1px solid var(--border);
    padding: 3px 9px;
    border-radius: 10px;
}

/* ── Next Event card ── */
.adm-next-ev-card {
    display: flex;
    overflow: hidden;
    min-height: 110px;
}

.adm-nev-date {
    background: var(--navy);
    color: white;
    padding: 20px 18px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 80px;
    flex-shrink: 0;
    position: relative;
}

.adm-nev-date::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: #E7FF49;
}

.adm-nev-day {
    font-size: 2.5rem;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.04em;
}

.adm-nev-month {
    font-size: 0.62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    opacity: 0.6;
    margin-top: 4px;
}

.adm-nev-year {
    font-size: 0.58rem;
    opacity: 0.35;
    margin-top: 2px;
}

.adm-nev-info {
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    flex: 1;
    min-width: 0;
}

.adm-nev-name {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--text-main);
    line-height: 1.2;
    letter-spacing: -0.01em;
}

.adm-nev-co {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8rem;
    color: var(--text-muted);
    font-weight: 500;
}

.adm-nev-loc {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.76rem;
    color: var(--text-muted);
}

.adm-nev-pin {
    display: inline-flex;
    width: 13px;
    height: 13px;
    opacity: 0.45;
}

.adm-nev-pin svg {
    width: 100%;
    height: 100%;
}

.adm-nev-meta {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 2px;
}

.adm-nev-chip {
    font-size: 0.68rem;
    font-weight: 600;
    background: var(--bg-alt);
    color: var(--text-muted);
    padding: 3px 9px;
    border-radius: 4px;
    border: 1px solid var(--border);
}

.adm-ev-today {
    font-size: 0.68rem;
    font-weight: 900;
    background: #E7FF49;
    color: var(--navy);
    padding: 3px 9px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.adm-ev-cd {
    font-size: 0.68rem;
    font-weight: 700;
    background: #ede9fe;
    color: #6d28d9;
    padding: 3px 9px;
    border-radius: 4px;
    border: 1px solid #ddd6fe;
}

.adm-no-next {
    padding: 28px 18px;
    text-align: center;
    color: var(--text-muted);
    font-size: 0.84rem;
    font-style: italic;
}

/* Upcoming list */
.adm-upcoming-list {
    border-top: 1.5px solid var(--border);
}

.adm-upcoming-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 18px;
    border-bottom: 1px solid var(--border);
    transition: background 0.12s;
}

.adm-upcoming-row:last-child {
    border-bottom: none;
}

.adm-upcoming-row:hover {
    background: #fafbff;
}

.adm-upcoming-date {
    font-size: 0.76rem;
    font-weight: 800;
    color: var(--blue-accent);
    width: 36px;
    flex-shrink: 0;
}

.adm-upcoming-info {
    flex: 1;
    min-width: 0;
}

.adm-upcoming-name {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-main);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.adm-upcoming-co {
    font-size: 0.72rem;
    color: var(--text-muted);
    margin-top: 1px;
}

/* ── Tasks ── */
.adm-task-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 18px;
    border-bottom: 1px solid var(--border);
    transition: background 0.12s;
}

.adm-task-row:last-child {
    border-bottom: none;
}

.adm-task-row:hover {
    background: #fafbff;
}

.adm-task-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

.adm-dot-overdue {
    background: #dc2626;
}

.adm-dot-today {
    background: #c8d400;
}

.adm-dot-soon {
    background: #93c5fd;
}

.adm-task-row-info {
    flex: 1;
    min-width: 0;
}

.adm-task-row-title {
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--text-main);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.adm-task-row-sub {
    font-size: 0.72rem;
    color: var(--text-muted);
    margin-top: 1px;
}

.adm-task-tag {
    font-size: 0.65rem;
    font-weight: 800;
    padding: 3px 9px;
    border-radius: 5px;
    white-space: nowrap;
    letter-spacing: 0.03em;
    flex-shrink: 0;
}

.adm-tag-overdue {
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fee2e2;
}

.adm-tag-today {
    background: #E7FF49;
    color: var(--navy);
}

.adm-tag-soon {
    background: #eff6ff;
    color: #2563eb;
    border: 1px solid #dbeafe;
}

.adm-empty-sm {
    padding: 26px 18px;
    text-align: center;
    color: var(--text-muted);
    font-size: 0.83rem;
    font-style: italic;
}

/* ── Agenda card ── */
.adm-card-agenda #dash-agenda {
    overflow-y: auto;
    max-height: 280px;
    padding: 4px 0;
}

/* ── Equipment ring + legend ── */
.adm-eq-visual {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 16px 18px;
}

.adm-eq-ring-wrap {
    position: relative;
    flex-shrink: 0;
}

.adm-eq-ring {
    width: 80px;
    height: 80px;
    transform: rotate(-90deg);
}

.adm-eq-ring-label {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
}

.adm-eq-ring-pct {
    font-size: 1rem;
    font-weight: 900;
    color: var(--text-main);
    letter-spacing: -0.04em;
    line-height: 1;
}

.adm-eq-ring-sub {
    font-size: 0.58rem;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.adm-eq-legend {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.adm-eq-legend-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.77rem;
}

.adm-eq-legend-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.adm-eq-legend-lbl {
    flex: 1;
    color: var(--text-muted);
    font-weight: 500;
}

.adm-eq-legend-val {
    font-weight: 800;
    color: var(--text-main);
}

.adm-eq-locs {
    border-top: 1.5px solid var(--border);
}

.adm-eq-loc-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 18px;
    border-bottom: 1px solid var(--border);
    font-size: 0.79rem;
    color: var(--text-muted);
}

.adm-eq-loc-row:last-child {
    border-bottom: none;
}

.adm-eq-loc-row strong {
    color: var(--text-main);
    font-weight: 800;
}

/* ── Responsive ── */
@media (max-width: 760px) {
    .adm-kpi-row {
        grid-template-columns: repeat(3, 1fr);
    }

    .adm-main-grid {
        grid-template-columns: 1fr;
    }
}

/* ─── PLACEHOLDER (kept for compat) ─── */
.adm-greeting {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    background: var(--navy);
    border-radius: var(--r);
    padding: 22px 26px;
    color: white;
    position: relative;
    overflow: hidden;
}

.adm-greeting::after {
    content: '';
    position: absolute;
    right: -40px;
    top: -40px;
    width: 180px;
    height: 180px;
    background: rgba(255, 255, 255, 0.04);
    border-radius: 50%;
    pointer-events: none;
}

.adm-greet-text {
    font-size: 1.45rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.15;
}

.adm-greet-sub {
    font-size: 0.8rem;
    opacity: 0.5;
    margin-top: 5px;
    font-weight: 400;
    text-transform: capitalize;
}

.adm-badge-icon {
    display: inline-flex;
    align-items: center;
    width: 15px;
    height: 15px;
    margin-right: 6px;
    flex-shrink: 0;
}

.adm-badge-icon svg {
    width: 100%;
    height: 100%;
}

.adm-alert-badge {
    display: flex;
    align-items: center;
    background: rgba(220, 38, 38, 0.85);
    color: white;
    font-size: 0.76rem;
    font-weight: 700;
    padding: 7px 14px;
    border-radius: 8px;
    letter-spacing: 0.01em;
    backdrop-filter: blur(4px);
}

.adm-ok-badge {
    display: flex;
    align-items: center;
    background: rgba(231, 255, 73, 0.12);
    color: #E7FF49;
    font-size: 0.76rem;
    font-weight: 700;
    padding: 7px 14px;
    border-radius: 8px;
    border: 1px solid rgba(231, 255, 73, 0.3);
}

/* ── Stats Row ── */
.adm-stats-row {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 10px;
}

.adm-stat {
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: var(--r);
    padding: 18px 16px 14px;
    box-shadow: var(--shadow-sm);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    position: relative;
    overflow: hidden;
    cursor: default;
}

.adm-stat[data-nav] {
    cursor: pointer;
}

.adm-stat[data-nav]:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(3, 24, 43, 0.1);
}

.adm-stat-icon {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
}

.adm-stat-icon svg {
    width: 18px;
    height: 18px;
}

.adm-icon-a {
    background: #dbeafe;
    color: var(--blue-accent);
}

.adm-icon-b {
    background: #ede9fe;
    color: #7c3aed;
}

.adm-icon-c {
    background: #dcfce7;
    color: #059669;
}

.adm-icon-d {
    background: #fef3c7;
    color: #d97706;
}

.adm-icon-e {
    background: #e0f2fe;
    color: #0891b2;
}

.adm-icon-f {
    background: #f0fdf4;
    color: #16a34a;
}

.adm-stat-val {
    font-size: 1.8rem;
    font-weight: 900;
    color: var(--text-main);
    letter-spacing: -0.05em;
    line-height: 1;
    margin-bottom: 4px;
}

.adm-stat-lbl {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    line-height: 1.3;
}

.adm-stat-sub {
    font-size: 0.68rem;
    font-weight: 600;
    margin-top: 4px;
    color: var(--text-muted);
}

.adm-sub-red {
    color: #dc2626 !important;
}

.adm-sub-orange {
    color: #d97706 !important;
}

/* ── Panels ── */
.adm-mid-row,
.adm-bottom-row {
    display: grid;
    gap: 14px;
}

.adm-mid-row {
    grid-template-columns: 1.5fr 1fr;
}

.adm-bottom-row {
    grid-template-columns: 1.2fr 1fr;
}

.adm-panel {
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: var(--r);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.adm-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 18px 11px;
    border-bottom: 1.5px solid var(--border);
    background: #fafafa;
}

.adm-panel-title {
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--text-muted);
}

.adm-panel-count {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--text-light);
    background: var(--bg-alt);
    border: 1px solid var(--border);
    padding: 2px 8px;
    border-radius: 10px;
}

/* ── Next Event ── */
.adm-next-ev-card {
    display: flex;
    overflow: hidden;
}

.adm-nev-date {
    background: var(--navy);
    color: white;
    padding: 22px 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 80px;
    flex-shrink: 0;
}

.adm-nev-day {
    font-size: 2.6rem;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.04em;
}

.adm-nev-month {
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    opacity: 0.6;
    margin-top: 4px;
}

.adm-nev-year {
    font-size: 0.58rem;
    opacity: 0.35;
    margin-top: 2px;
}

.adm-nev-info {
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
    gap: 7px;
    flex: 1;
    min-width: 0;
}

.adm-nev-name {
    font-size: 1.08rem;
    font-weight: 800;
    color: var(--text-main);
    line-height: 1.2;
    letter-spacing: -0.01em;
}

.adm-nev-co {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.82rem;
    color: var(--text-muted);
    font-weight: 500;
}

.adm-nev-loc {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.78rem;
    color: var(--text-muted);
}

.adm-nev-pin {
    display: inline-flex;
    width: 13px;
    height: 13px;
    opacity: 0.5;
}

.adm-nev-pin svg {
    width: 100%;
    height: 100%;
}

.adm-nev-meta {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 2px;
    align-items: center;
}

.adm-nev-chip {
    font-size: 0.7rem;
    font-weight: 600;
    background: var(--bg-alt);
    color: var(--text-muted);
    padding: 3px 9px;
    border-radius: 5px;
    border: 1px solid var(--border);
}

.adm-ev-today {
    font-size: 0.68rem;
    font-weight: 900;
    background: #E7FF49;
    color: var(--navy);
    padding: 3px 9px;
    border-radius: 5px;
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.adm-ev-cd {
    font-size: 0.7rem;
    font-weight: 700;
    background: #ede9fe;
    color: #6d28d9;
    padding: 3px 9px;
    border-radius: 5px;
    border: 1px solid #ddd6fe;
}

/* Upcoming list */
.adm-upcoming-list {
    border-top: 1.5px solid var(--border);
}

.adm-upcoming-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 9px 18px;
    border-bottom: 1px solid var(--border);
}

.adm-upcoming-row:last-child {
    border-bottom: none;
}

.adm-upcoming-date {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--blue-accent);
    width: 36px;
    flex-shrink: 0;
}

.adm-upcoming-name {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-main);
}

.adm-upcoming-co {
    font-size: 0.74rem;
    color: var(--text-muted);
    margin-top: 1px;
}

.adm-no-next {
    padding: 28px 20px;
    text-align: center;
    color: var(--text-muted);
    font-size: 0.85rem;
    font-style: italic;
}

/* ── Tasks panel ── */
.adm-task-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 18px;
    border-bottom: 1px solid var(--border);
    transition: background 0.12s;
}

.adm-task-row:last-child {
    border-bottom: none;
}

.adm-task-row:hover {
    background: #fafbff;
}

.adm-task-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

.adm-dot-overdue {
    background: #dc2626;
}

.adm-dot-today {
    background: #E7FF49;
    border: 1px solid #bcc500;
}

.adm-dot-soon {
    background: #93c5fd;
}

.adm-task-row-info {
    flex: 1;
    min-width: 0;
}

.adm-task-row-title {
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--text-main);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.adm-task-row-sub {
    font-size: 0.73rem;
    color: var(--text-muted);
    margin-top: 1px;
}

.adm-task-tag {
    font-size: 0.65rem;
    font-weight: 800;
    padding: 3px 9px;
    border-radius: 5px;
    white-space: nowrap;
    letter-spacing: 0.04em;
    flex-shrink: 0;
}

.adm-tag-overdue {
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fee2e2;
}

.adm-tag-today {
    background: #E7FF49;
    color: var(--navy);
    font-weight: 900;
}

.adm-tag-soon {
    background: #eff6ff;
    color: #2563eb;
    border: 1px solid #dbeafe;
}

.adm-empty-sm {
    padding: 26px 20px;
    text-align: center;
    color: var(--text-muted);
    font-size: 0.84rem;
    font-style: italic;
}

/* ── Agenda panel ── */
.adm-panel #dash-agenda {
    flex: 1;
    overflow-y: auto;
    max-height: 300px;
    padding: 4px 0;
}

/* ── Equipment status panel ── */
.adm-eq-summary {
    padding: 16px 18px 6px;
    display: flex;
    align-items: baseline;
    gap: 6px;
}

.adm-eq-total-val {
    font-size: 2rem;
    font-weight: 900;
    color: var(--text-main);
    letter-spacing: -0.04em;
    line-height: 1;
}

.adm-eq-total-lbl {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-muted);
}

.adm-eq-bars {
    padding: 8px 18px 14px;
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.adm-eq-row {
    display: flex;
    align-items: center;
    gap: 9px;
}

.adm-eq-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.adm-eq-label {
    font-size: 0.74rem;
    font-weight: 600;
    color: var(--text-muted);
    width: 106px;
    flex-shrink: 0;
}

.adm-eq-bar-wrap {
    flex: 1;
    height: 6px;
    background: #f0f0f0;
    border-radius: 3px;
    overflow: hidden;
}

.adm-eq-bar {
    height: 100%;
    border-radius: 3px;
    min-width: 3px;
    transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.adm-eq-count {
    font-size: 0.78rem;
    font-weight: 800;
    color: var(--text-main);
    width: 22px;
    text-align: right;
    flex-shrink: 0;
}

.adm-eq-locs {
    border-top: 1.5px solid var(--border);
}

.adm-eq-loc-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 18px;
    border-bottom: 1px solid var(--border);
    font-size: 0.8rem;
    color: var(--text-muted);
}

.adm-eq-loc-row:last-child {
    border-bottom: none;
}

.adm-eq-loc-row strong {
    color: var(--text-main);
    font-weight: 800;
    font-size: 0.86rem;
}

/* ── Responsive ── */
@media (max-width: 720px) {
    .adm-stats-row {
        grid-template-columns: repeat(3, 1fr);
    }

    .adm-mid-row {
        grid-template-columns: 1fr;
    }

    .adm-bottom-row {
        grid-template-columns: 1fr;
    }
}

/* ─── DESIGN SYSTEM GLOBAL ─── */

/* Cabeçalho de painel (igual ao adm-card-head) */
.panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 18px 11px;
    border-bottom: 1.5px solid var(--border);
    background: #fafafa;
}

.panel-title {
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--navy);
}

.panel-meta {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--text-light);
    background: var(--bg-alt);
    border: 1px solid var(--border);
    padding: 3px 9px;
    border-radius: 10px;
}

/* Linha universal de registo */
.rec-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 18px;
    border-bottom: 1px solid var(--border);
    transition: background 0.12s;
    background: #fff;
}

.rec-row:last-child {
    border-bottom: none;
}

.rec-row:hover {
    background: #fafbff;
}

.rec-row-body {
    flex: 1;
    min-width: 0;
}

.rec-row-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-main);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 3px;
}

.rec-row-sub {
    font-size: 0.75rem;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.rec-row-actions {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
}

/* Status dot */
.rec-status-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex-shrink: 0;
}

/* Status badge (igual adm-task-tag) */
.rec-badge {
    display: inline-block;
    font-size: 0.64rem;
    font-weight: 800;
    padding: 2px 8px;
    border-radius: 5px;
    white-space: nowrap;
    letter-spacing: 0.04em;
}

/* ── Equipment KPI strip ──────────────────────────── */
.eq-kpis-strip {
    padding: 14px 18px 0;
}

.eq-kpi-row {
    display: flex;
    gap: 10px;
}

.eq-kpi {
    flex: 1;
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: 10px;
    padding: 12px 14px 10px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.eq-kpi-val {
    font-size: 1.6rem;
    font-weight: 800;
    line-height: 1;
    color: var(--text-main);
}

.eq-kpi-lbl {
    font-size: 0.62rem;
    color: var(--text-light);
    margin-top: 3px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.eq-kpi-pct {
    font-size: 0.65rem;
    font-weight: 700;
    margin-top: 2px;
}

.eq-kpi-green .eq-kpi-val {
    color: #059669;
}

.eq-kpi-green .eq-kpi-pct {
    color: #059669;
}

.eq-kpi-amber .eq-kpi-val {
    color: #d97706;
}

.eq-kpi-blue .eq-kpi-val {
    color: #2563eb;
}

.eq-kpi-red .eq-kpi-val {
    color: #dc2626;
}

/* ── Equipment search input ───────────────────────── */
.eq-search-input {
    flex: 1;
    min-width: 160px;
    height: 32px;
    border: 1px solid var(--border-light);
    border-radius: 8px;
    padding: 0 12px;
    font-size: 0.8rem;
    outline: none;
    background: #f8fafc;
    color: var(--text-main);
}

.eq-search-input:focus {
    border-color: var(--blue-accent);
    background: #fff;
}

/* ── Equipment cards ──────────────────────────────── */
.eq-card-li {
    list-style: none;
    border-bottom: 1px solid #f1f5f9;
}

.eq-card-li:last-child {
    border-bottom: none;
}

.eq-card {
    display: flex;
    align-items: stretch;
    cursor: pointer;
    transition: background 0.12s;
    background: #fff;
}

.eq-card:hover {
    background: #fafbff;
}

.eq-card-stripe {
    width: 4px;
    flex-shrink: 0;
    border-radius: 0;
}

.eq-card-main {
    flex: 1;
    padding: 12px 14px 10px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

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

.eq-card-identity {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.eq-card-id {
    font-size: 0.9rem;
    font-weight: 800;
    color: var(--navy);
}

.eq-card-type {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-main);
}

.eq-card-tpa {
    font-size: 0.72rem;
    color: var(--text-light);
    background: #f1f5f9;
    padding: 1px 6px;
    border-radius: 5px;
}

.eq-card-right {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-shrink: 0;
}

.eq-card-badge {
    font-size: 0.63rem;
    font-weight: 800;
    padding: 2px 8px;
    border-radius: 5px;
    white-space: nowrap;
    letter-spacing: 0.03em;
}

.eq-badge-ok {
    background: #dcfce7;
    color: #059669;
}

.eq-badge-warn {
    background: #fef3c7;
    color: #d97706;
}

.eq-badge-info {
    background: #dbeafe;
    color: #2563eb;
}

.eq-badge-danger {
    background: #fee2e2;
    color: #dc2626;
}

.eq-issues-badge {
    font-size: 0.63rem;
    font-weight: 700;
    background: #fee2e2;
    color: #dc2626;
    padding: 2px 7px;
    border-radius: 5px;
    white-space: nowrap;
}

.eq-card-chevron {
    font-size: 1.1rem;
    color: var(--text-light);
    transition: transform 0.2s;
    user-select: none;
}

.eq-card-sub {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 0.73rem;
    color: var(--text-light);
}

.eq-card-loc::before {
    content: '';
}

.eq-card-date {
    margin-left: auto;
}

.eq-card-actions {
    display: flex;
    gap: 6px;
    margin-top: 4px;
}

.eq-btn-edit,
.eq-btn-del {
    font-size: 0.72rem;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    transition: opacity 0.15s;
}

.eq-btn-edit {
    background: #e0e7ff;
    color: #3730a3;
}

.eq-btn-del {
    background: #fee2e2;
    color: #dc2626;
}

.eq-btn-edit:hover,
.eq-btn-del:hover {
    opacity: 0.8;
}

/* ── Equipment expand (historial) ─────────────────── */
.eq-expand {
    background: #f8fafc;
    border-top: 1px solid #f1f5f9;
    padding: 10px 18px 12px;
}

.eq-expand-title {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-light);
    margin-bottom: 8px;
}

.eq-hist-empty {
    font-size: 0.78rem;
    color: var(--text-light);
}

.eq-hist-row {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 5px 0;
    border-bottom: 1px solid #e9edf3;
}

.eq-hist-row:last-child {
    border-bottom: none;
}

.eq-hist-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 4px;
}

.eq-hist-open .eq-hist-dot {
    background: #dc2626;
}

.eq-hist-ok .eq-hist-dot {
    background: #10b981;
}

.eq-hist-body {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.eq-hist-desc {
    font-size: 0.78rem;
    color: var(--text-main);
}

.eq-hist-loc {
    font-size: 0.68rem;
    color: var(--text-light);
}

.eq-hist-status {
    font-size: 0.63rem;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 5px;
    white-space: nowrap;
    flex-shrink: 0;
}

.eq-hist-open .eq-hist-status {
    background: #fee2e2;
    color: #dc2626;
}

.eq-hist-ok .eq-hist-status {
    background: #d1fae5;
    color: #059669;
}

/* ── Task KPI strip ───────────────────────────────── */
.task-kpis-strip {
    padding: 14px 18px 0;
}

/* ── Task cards ───────────────────────────────────── */
.tcard-li {
    list-style: none;
    border-bottom: 1px solid #f1f5f9;
}

.tcard-li:last-child {
    border-bottom: none;
}

.tcard {
    display: flex;
    align-items: stretch;
    background: #fff;
    transition: background 0.12s;
}

.tcard:hover {
    background: #fafbff;
}

.tcard-done {
    background: #fafffe;
}

.tcard-stripe {
    width: 4px;
    flex-shrink: 0;
}

.tcard-body {
    flex: 1;
    padding: 12px 14px 10px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
}

.tcard-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}

.tcard-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--navy);
    flex: 1;
}

.tcard-done .tcard-title {
    text-decoration: line-through;
    color: var(--text-light);
}

.tcard-badges {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-shrink: 0;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.tcard-desc {
    font-size: 0.77rem;
    color: var(--text-light);
}

.tcard-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.tcard-assignee {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.75rem;
    color: var(--text-main);
    font-weight: 600;
}

.tcard-avatar {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--navy);
    color: var(--accent);
    font-size: 0.65rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.tcard-author {
    font-size: 0.72rem;
    color: var(--text-light);
}

.tcard-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 2px;
}

.tcard-check-label {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-light);
    cursor: pointer;
}

.tcard-check-label input {
    cursor: pointer;
}

.tcard-del-btn {
    font-size: 0.72rem;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    background: #fee2e2;
    color: #dc2626;
    transition: opacity 0.15s;
}

.tcard-del-btn:hover {
    opacity: 0.8;
}

/* ─── Tarefa delegada — info do pedido do cliente ──────────────────── */
.tcard-pedido-info {
    background: #fff8f0;
    border: 1.5px solid #fed7aa;
    border-radius: 10px;
    padding: 10px 12px;
    margin: 6px 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.tcard-pedido-head {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.72rem;
    font-weight: 800;
    color: #9a3412;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 2px;
}

.tcard-pedido-row {
    display: flex;
    gap: 8px;
    font-size: 0.78rem;
    line-height: 1.4;
}

.tcard-pedido-row span {
    color: #92400e;
    min-width: 90px;
    flex-shrink: 0;
    font-weight: 600;
}

.tcard-pedido-row strong {
    color: #1e293b;
    font-weight: 600;
}

.tcard-pedido-anydesk strong {
    font-family: monospace;
    font-size: 0.88rem;
    color: var(--blue-accent);
    letter-spacing: 0.04em;
    font-weight: 800;
}

.tcard-pedido-eqs {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
}

.tcard-pedido-eqs>span {
    font-weight: 600;
    color: #92400e;
}

.tcard-eq-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 3px;
}

.tcard-eq-chip {
    background: #e0e7ff;
    color: #3730a3;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 10px;
}

.tcard-pedido-desc {
    font-size: 0.82rem;
    color: #1e293b;
    background: rgba(255, 255, 255, 0.6);
    border-radius: 7px;
    padding: 7px 9px;
    line-height: 1.45;
    margin-top: 2px;
    border-left: 3px solid #fb923c;
    font-style: italic;
}

.tcard-nivel-badge {
    font-size: 0.65rem;
    font-weight: 800;
    padding: 1px 7px;
    border-radius: 8px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.tcard-nivel-baixo {
    background: #dcfce7;
    color: #166534;
}

.tcard-nivel-medio {
    background: #fef9c3;
    color: #92400e;
}

.tcard-nivel-alto {
    background: #ffedd5;
    color: #9a3412;
}

.tcard-nivel-critico {
    background: #fee2e2;
    color: #991b1b;
}

/* Due date badges */
.tcard-due {
    font-size: 0.65rem;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 5px;
    white-space: nowrap;
}

.tcard-due-ok {
    background: #d1fae5;
    color: #059669;
}

.tcard-due-late {
    background: #fee2e2;
    color: #dc2626;
}

.tcard-due-today {
    background: #fef3c7;
    color: #92400e;
}

.tcard-due-soon {
    background: #fff7ed;
    color: #d97706;
}

.tcard-due-normal {
    background: #eff6ff;
    color: #2563eb;
}

/* State badge */
.tcard-state-badge {
    font-size: 0.63rem;
    font-weight: 800;
    padding: 2px 8px;
    border-radius: 5px;
    white-space: nowrap;
    letter-spacing: 0.03em;
}

.tcard-state-done {
    background: #dcfce7;
    color: #059669;
}

.tcard-state-late {
    background: #fee2e2;
    color: #dc2626;
}

.tcard-state-pend {
    background: #fef9c3;
    color: #a16207;
}

/* Delegated task — unseen highlight */
.tcard-nova-delegada {
    border: 2px solid #f59e0b;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.12);
}

/* "Vista" badge on task card */
.tcard-vista-badge {
    font-size: 0.62rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 5px;
    background: #dcfce7;
    color: #059669;
    white-space: nowrap;
}

/* Client badge on task card */
.tcard-client-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 0.62rem;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 5px;
    background: #e0f2fe;
    color: #0369a1;
    white-space: nowrap;
}

/* "Marcar como vista" button */
.tcard-ver-btn {
    flex: none;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 6px 14px;
    border-radius: 7px;
    background: #f59e0b;
    color: #fff;
    border: none;
    cursor: pointer;
    transition: background 0.15s;
}

.tcard-ver-btn:hover {
    background: #d97706;
}

.rec-badge-ok {
    background: #dcfce7;
    color: #059669;
    border: 1px solid #bbf7d0;
}

.rec-badge-warn {
    background: #fef3c7;
    color: #d97706;
    border: 1px solid #fde68a;
}

.rec-badge-info {
    background: #eff6ff;
    color: #2563eb;
    border: 1px solid #bfdbfe;
}

.rec-badge-danger {
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca;
}

.rec-badge-neutral {
    background: var(--bg-alt);
    color: var(--text-muted);
    border: 1px solid var(--border);
}

.rec-badge-navy {
    background: #dde8ff;
    color: var(--navy);
    border: 1px solid #c0d2f5;
}

/* Card expandido (clientes) */
.rec-card {
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: var(--r);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    margin-bottom: 10px;
    border-top: 3px solid var(--border);
    transition: box-shadow 0.18s;
}

.rec-card:hover {
    box-shadow: 0 4px 16px rgba(3, 24, 43, 0.1);
}

.rec-card-top-rest {
    border-top-color: #e67e22;
}

.rec-card-top-ev {
    border-top-color: var(--blue-accent);
}

.rec-card-top-tech {
    border-top-color: #7c3aed;
}

.rec-card-top-def {
    border-top-color: var(--navy);
}

.rec-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 16px 11px;
    border-bottom: 1.5px solid var(--border);
    gap: 10px;
}

/* Clients — collapsed/expand behaviour */
.rec-card-head-clickable {
    cursor: pointer;
    user-select: none;
    transition: background 0.15s;
}

.rec-card-head-clickable:hover {
    background: #f8faff;
}

.rec-card-collapsed .rec-card-head {
    border-bottom: none;
}

.rec-expand-icon {
    opacity: 0.45;
    flex-shrink: 0;
    transition: transform 0.2s;
}

.rec-card:not(.rec-card-collapsed) .rec-expand-icon {
    transform: rotate(180deg);
    opacity: 0.6;
}

.rec-card-name {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--text-main);
    letter-spacing: -0.01em;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rec-card-body {
    padding: 12px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.rec-field {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 0.82rem;
}

.rec-field-lbl {
    font-size: 0.67rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-light);
    width: 80px;
    flex-shrink: 0;
}

.rec-field-val {
    color: var(--text-main);
    font-weight: 600;
}

.rec-field-block {
    font-size: 0.82rem;
    border-top: 1px solid var(--border);
    padding-top: 8px;
    margin-top: 2px;
}

.rec-field-block .rec-field-lbl {
    display: block;
    width: auto;
    margin-bottom: 4px;
}

.rec-field-text {
    color: var(--text-muted);
    font-weight: 400;
    line-height: 1.55;
}

.rec-anydesk {
    font-family: monospace;
    font-size: 0.88rem;
    color: var(--blue-accent);
    font-weight: 700;
    letter-spacing: 0.04em;
}

.rec-eq-list {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rec-eq-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.78rem;
    background: #f1f5f9;
    border-radius: 6px;
    padding: 4px 8px;
}

.rec-eq-type {
    font-weight: 700;
    color: var(--navy);
    min-width: 80px;
}

.rec-eq-id {
    color: var(--text-muted);
    flex: 1;
    font-size: 0.75rem;
}

.rec-eq-status {
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 2px 7px;
    border-radius: 10px;
    background: #e2e8f0;
    color: #475569;
}

.rec-eq-status-operacional {
    background: #dcfce7;
    color: #15803d;
}

.rec-eq-status-avariado {
    background: #fee2e2;
    color: #dc2626;
}

.rec-eq-status-em-manutenção {
    background: #fef9c3;
    color: #92400e;
}

.rec-eq-status-inativo {
    background: #f1f5f9;
    color: #94a3b8;
}

.rec-field-price {
    font-size: 0.85rem;
    font-weight: 800;
    color: #059669;
    border-top: 1px solid var(--border);
    padding-top: 8px;
    margin-top: 4px;
}

.rec-card-foot {
    display: flex;
    gap: 8px;
    padding: 10px 16px;
    border-top: 1.5px solid var(--border);
    background: #fafafa;
}

.rec-card-foot .btn-edit {
    flex: 1;
    padding: 7px 12px;
    font-size: 0.8rem;
}

.rec-card-foot .btn-delete {
    flex: 1;
    padding: 7px 12px;
    font-size: 0.8rem;
}

/* Botões de ação compactos para linhas */
.btn-icon-action {
    width: 30px;
    height: 30px;
    border-radius: 6px;
    border: 1.5px solid var(--border);
    background: #fff;
    color: var(--text-muted);
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s;
    flex-shrink: 0;
}

.btn-icon-action:hover {
    background: var(--bg-alt);
    color: var(--text-main);
}

.btn-icon-del:hover {
    background: #fef2f2;
    color: #dc2626;
    border-color: #fecaca;
}

/* Formulários como cards — cabeçalho full-width igual ao dashboard */
.task-form-container {
    border-top: 3px solid var(--blue-accent);
    padding: 0;
    overflow: hidden;
}

.task-form-container h3 {
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--navy);
    margin: 0;
    padding: 13px 18px 11px;
    background: #fafafa;
    border-bottom: 1.5px solid var(--border);
}

.task-form-container>form,
.task-form-container>.task-form {
    padding: 18px;
}

/* Cabeçalho da lista de registos */
.task-list-container {
    border-top: 3px solid var(--navy);
}

.task-list-container>h3 {
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--navy);
    padding: 13px 18px 11px;
    border-bottom: 1.5px solid var(--border);
    margin-bottom: 0;
    background: #fafafa;
}

/* Modais — cabeçalho consistente */
.ev-modal-top,
.cal-modal-top {
    background: #fafafa;
    border-bottom: 1.5px solid var(--border);
    padding: 14px 18px;
}

.ev-modal-top span,
.cal-modal-top span {
    font-size: 0.78rem !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--navy) !important;
}

.ev-modal {
    border-top: 3px solid var(--blue-accent);
}

#cal-modal {
    border-top: 3px solid var(--navy);
}

/* Empty state universal */
.empty-state {
    padding: 32px 20px;
    text-align: center;
    color: var(--text-muted);
    font-size: 0.84rem;
    font-style: italic;
}

/* ─── EQUIPAMENTOS: Picker de Cliente e Evento ─── */
.eq-search-wrap {
    position: relative;
}

.eq-search-wrap input {
    width: 100%;
}

.eq-search-results {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border: 1.5px solid var(--blue-accent);
    border-top: none;
    border-radius: 0 0 8px 8px;
    max-height: 220px;
    overflow-y: auto;
    z-index: 200;
    box-shadow: 0 8px 20px rgba(0, 65, 155, 0.12);
}

.eq-search-result-item {
    padding: 10px 14px;
    font-size: 0.88rem;
    cursor: pointer;
    border-bottom: 1px solid var(--border);
    transition: background 0.12s;
    color: var(--text-main);
}

.eq-search-result-item:last-child {
    border-bottom: none;
}

.eq-search-result-item:hover {
    background: #e4eeff;
    color: var(--blue-accent);
}

.eq-selected-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #e4eeff;
    border: 1.5px solid var(--blue-accent);
    color: var(--blue-accent);
    border-radius: 6px;
    padding: 6px 12px;
    font-size: 0.85rem;
    font-weight: 600;
    margin-top: 6px;
    cursor: pointer;
    transition: background 0.14s;
}

.eq-selected-badge::after {
    content: '✕';
    font-size: 0.75rem;
    opacity: 0.7;
}

.eq-selected-badge:hover {
    background: #c5d8ff;
}

#eq-event-picker-container select {
    margin-bottom: 0;
}

/* ─── EVENTOS — Separadores ─── */
.ev-tabs {
    display: flex;
    gap: 6px;
    margin-bottom: 14px;
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: var(--r);
    padding: 6px;
    box-shadow: var(--shadow-sm);
}

.ev-tab {
    flex: 1;
    padding: 9px 14px;
    border-radius: 6px;
    border: none;
    background: transparent;
    color: var(--text-muted);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.18s ease;
    letter-spacing: 0.01em;
}

.ev-tab:hover {
    background: var(--bg-alt);
    color: var(--text-main);
}

.ev-tab.active {
    background: var(--navy);
    color: #E7FF49;
    font-weight: 800;
    box-shadow: var(--shadow-sm);
}

/* ─── EVENTOS — Lista Ativos ─── */
.ev-active-group {
    margin-bottom: 18px;
}

.ev-active-group-title {
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    padding: 0 2px 8px;
    border-bottom: 1.5px solid var(--border);
    margin-bottom: 10px;
}

.ev-active-card {
    display: flex;
    align-items: center;
    gap: 0;
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: var(--r);
    margin-bottom: 8px;
    box-shadow: var(--shadow-sm);
    cursor: pointer;
    overflow: hidden;
    transition: box-shadow 0.18s, transform 0.15s;
}

.ev-active-card:hover {
    box-shadow: 0 4px 16px rgba(0, 65, 155, 0.14);
    transform: translateY(-1px);
}

.ev-active-card-today {
    border-color: #E7FF49;
    border-width: 2px;
    box-shadow: 0 0 0 3px rgba(231, 255, 73, 0.2);
}

.ev-active-date-col {
    background: var(--navy);
    color: white;
    padding: 14px 14px;
    text-align: center;
    min-width: 64px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    flex-shrink: 0;
}

.ev-active-day {
    font-size: 1.5rem;
    font-weight: 900;
    line-height: 1;
}

.ev-active-month {
    font-size: 0.6rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    opacity: 0.75;
    margin-top: 2px;
}

.ev-active-dow {
    font-size: 0.62rem;
    opacity: 0.55;
    margin-top: 1px;
    text-transform: uppercase;
}

.ev-active-info {
    flex: 1;
    padding: 11px 14px;
    min-width: 0;
}

.ev-active-name {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--text-main);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ev-active-company {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    font-size: 0.8rem;
    color: var(--text-muted);
    font-weight: 500;
}

.ev-active-loc {
    font-size: 0.78rem;
    color: var(--text-muted);
    margin-top: 3px;
}

.ev-active-badges {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 5px;
    flex-wrap: wrap;
}

.ev-active-today {
    font-size: 0.68rem;
    font-weight: 900;
    background: #E7FF49;
    color: var(--navy);
    padding: 2px 8px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.ev-active-countdown {
    font-size: 0.7rem;
    font-weight: 700;
    background: #e4eeff;
    color: var(--blue-accent);
    padding: 2px 8px;
    border-radius: 4px;
    border: 1px solid #b0c8f0;
}

.ev-active-arrow {
    font-size: 1.2rem;
    color: var(--text-light);
    padding: 0 12px;
    font-weight: 300;
}

/* ─── EVENTOS ─── */
.ev-top-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    background: #fafafa;
    border: 1.5px solid var(--border);
    border-top: 3px solid var(--navy);
    border-radius: var(--r);
    padding: 13px 16px 11px;
    box-shadow: var(--shadow-sm);
}

.ev-top-bar h3 {
    flex: 1;
    margin: 0;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--navy);
}

.ev-back-btn {
    background: none;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 5px 12px;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-main);
    cursor: pointer;
    transition: background 0.15s;
    white-space: nowrap;
}

.ev-back-btn:hover {
    background: var(--bg-alt);
}

.ev-add-btn {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    border: none;
    background: var(--blue-accent);
    color: white;
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.15s;
}

.ev-add-btn:hover {
    background: #003580;
}

.ev-empty {
    text-align: center;
    padding: 40px 20px;
    color: var(--text-muted);
    font-size: 0.9rem;
    line-height: 1.6;
}

/* Company cards */
.ev-company-card {
    display: flex;
    align-items: center;
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: var(--r);
    margin-bottom: 10px;
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition: box-shadow 0.18s;
}

.ev-company-card:hover {
    box-shadow: 0 4px 14px rgba(0, 65, 155, 0.14);
}

.ev-company-card-main {
    display: flex;
    align-items: center;
    gap: 14px;
    flex: 1;
    padding: 14px 16px;
    cursor: pointer;
}

.ev-company-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: linear-gradient(135deg, #00419B, #03182B);
    color: white;
    font-size: 1.3rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ev-company-info {
    flex: 1;
    min-width: 0;
}

.ev-company-name {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-main);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ev-company-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
}

.ev-type-badge {
    font-size: 0.65rem;
    font-weight: 800;
    color: white;
    padding: 2px 7px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ev-company-count {
    font-size: 0.78rem;
    color: var(--text-muted);
    font-weight: 500;
}

.ev-company-arrow {
    font-size: 1.2rem;
    color: var(--text-muted);
    font-weight: 300;
}

.ev-company-actions {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px 10px;
    border-left: 1px solid var(--border);
    background: #fafbff;
}

.ev-edit-co-btn,
.ev-del-co-btn {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 0.9rem;
    padding: 4px 6px;
    border-radius: 4px;
    transition: background 0.14s;
    line-height: 1;
}

.ev-edit-co-btn {
    color: var(--blue-accent);
}

.ev-edit-co-btn:hover {
    background: #e4eeff;
}

.ev-del-co-btn {
    color: var(--danger);
}

.ev-del-co-btn:hover {
    background: #fff0f0;
}

/* Event date cards */
.ev-date-card {
    display: flex;
    align-items: flex-start;
    gap: 0;
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: var(--r);
    margin-bottom: 10px;
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition: box-shadow 0.18s;
}

.ev-date-card:hover {
    box-shadow: 0 4px 14px rgba(0, 65, 155, 0.10);
}

.ev-date-past {
    opacity: 0.55;
}

.ev-date-left {
    background: var(--navy);
    color: white;
    padding: 14px 16px;
    text-align: center;
    min-width: 70px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
}

.ev-date-day {
    font-size: 1.6rem;
    font-weight: 900;
    line-height: 1;
}

.ev-date-month {
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    opacity: 0.8;
    margin-top: 2px;
}

.ev-date-year {
    font-size: 0.65rem;
    opacity: 0.6;
    margin-top: 1px;
}

.ev-date-center {
    flex: 1;
    padding: 12px 16px;
    min-width: 0;
}

.ev-date-name {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-main);
    line-height: 1.3;
}

.ev-date-dow {
    font-size: 0.78rem;
    color: var(--blue-accent);
    font-weight: 600;
    margin-top: 3px;
}

.ev-date-location {
    font-size: 0.8rem;
    color: var(--text-muted);
    margin-top: 4px;
    font-weight: 500;
}

.ev-date-notes {
    font-size: 0.78rem;
    color: var(--text-muted);
    margin-top: 4px;
    line-height: 1.5;
    font-style: italic;
}

.ev-date-actions {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px 10px;
    border-left: 1px solid var(--border);
    background: #fafbff;
    justify-content: center;
}

.ev-edit-dt-btn,
.ev-del-dt-btn {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 0.9rem;
    padding: 5px 6px;
    border-radius: 4px;
    transition: background 0.14s;
    line-height: 1;
}

.ev-edit-dt-btn {
    color: var(--blue-accent);
}

.ev-edit-dt-btn:hover {
    background: #e4eeff;
}

.ev-del-dt-btn {
    color: var(--danger);
}

.ev-del-dt-btn:hover {
    background: #fff0f0;
}

/* Contadores de data */
.ev-date-counters {
    display: flex;
    gap: 6px;
    margin-top: 5px;
    flex-wrap: wrap;
}

.ev-count-badge {
    font-size: 0.72rem;
    font-weight: 700;
    background: #e4eeff;
    color: var(--blue-accent);
    border: 1px solid #b0c8f0;
    border-radius: 5px;
    padding: 2px 7px;
}

.ev-date-clickable {
    cursor: pointer;
}

.ev-date-clickable:hover {
    background: #f5f8ff;
}

/* Vista de detalhe da data de evento */
.ev-date-detail-header {
    background: var(--navy);
    border-radius: var(--r);
    padding: 14px 18px;
    margin-bottom: 14px;
    color: white;
}

.ev-dd-meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ev-dd-date {
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: -0.01em;
}

.ev-dd-loc {
    font-size: 0.82rem;
    opacity: 0.8;
}

.ev-dd-notes {
    font-size: 0.8rem;
    opacity: 0.65;
    font-style: italic;
}

.ev-detail-block {
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: var(--r);
    border-top: 3px solid var(--blue-accent);
    padding: 0;
    margin-bottom: 12px;
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}

.ev-detail-block-title {
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--navy);
    padding: 13px 18px 11px;
    border-bottom: 1.5px solid var(--border);
    background: #fafafa;
}

.ev-add-assist-btn {
    background: var(--blue-accent);
    color: white;
    border: none;
    border-radius: 6px;
    padding: 4px 10px;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.14s;
}

.ev-add-assist-btn:hover {
    background: #003580;
}

.ev-empty-sm {
    text-align: center;
    padding: 14px 10px;
    color: var(--text-muted);
    font-size: 0.85rem;
}

/* Equipamento no detalhe de evento */
.ev-dd-eq-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 9px 12px;
    border: 1px solid var(--border);
    border-radius: 7px;
    margin-bottom: 6px;
    background: #fafbff;
}

.ev-dd-eq-id {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text-main);
}

.ev-dd-eq-info {
    display: flex;
    gap: 10px;
    font-size: 0.8rem;
    font-weight: 600;
}

/* Assistência no detalhe de evento */
.ev-dd-assist-card {
    border: 1px solid var(--border);
    border-radius: 7px;
    padding: 10px 12px;
    margin-bottom: 8px;
    background: #fafbff;
}

.ev-dd-assist-top {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
    flex-wrap: wrap;
}

.ev-dd-assist-date {
    font-size: 0.78rem;
    font-weight: 800;
    color: var(--navy);
    background: #e8edf8;
    padding: 2px 8px;
    border-radius: 5px;
}

.ev-dd-assist-tech {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-main);
    flex: 1;
}

.ev-dd-assist-actions {
    display: flex;
    gap: 4px;
    margin-left: auto;
}

.ev-edit-assist-btn,
.ev-del-assist-btn {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 0.85rem;
    padding: 3px 5px;
    border-radius: 4px;
    transition: background 0.12s;
}

.ev-edit-assist-btn {
    color: var(--blue-accent);
}

.ev-edit-assist-btn:hover {
    background: #e4eeff;
}

.ev-del-assist-btn {
    color: var(--danger);
}

.ev-del-assist-btn:hover {
    background: #fff0f0;
}

.ev-dd-assist-desc {
    font-size: 0.83rem;
    color: var(--text-main);
    line-height: 1.5;
    padding-left: 2px;
}

.ev-dd-assist-eq {
    font-size: 0.76rem;
    color: var(--blue-accent);
    font-weight: 600;
    margin-bottom: 5px;
    padding-left: 2px;
}

.ev-dd-assist-eq-block {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin: 4px 0 6px;
    padding: 5px 10px;
    background: #f8fafc;
    border-radius: 6px;
    border: 1px solid var(--border-light);
}

.ev-dd-assist-eq-id {
    font-size: 0.72rem;
    font-weight: 700;
    background: var(--navy);
    color: #fff;
    padding: 1px 7px;
    border-radius: 4px;
}

.ev-dd-assist-eq-type {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-main);
}

.ev-dd-assist-eq-tpa {
    font-size: 0.72rem;
    color: var(--text-light);
}

.ev-dd-assist-eq-status {
    font-size: 0.72rem;
    font-weight: 700;
    margin-left: auto;
}

.ev-dd-assist-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 8px;
    flex-wrap: wrap;
    gap: 6px;
}

.ev-dd-resolved-badge {
    font-size: 0.72rem;
    font-weight: 700;
    color: #16a34a;
    background: #dcfce7;
    padding: 3px 9px;
    border-radius: 20px;
    letter-spacing: 0.03em;
}

.ev-dd-pending-badge {
    font-size: 0.72rem;
    font-weight: 700;
    color: #e67e22;
    background: #fff3e0;
    padding: 3px 9px;
    border-radius: 20px;
    letter-spacing: 0.03em;
}

.ev-resolve-assist-btn {
    background: #16a34a;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 5px 12px;
    font-size: 0.75rem;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    letter-spacing: 0.03em;
    transition: background 0.15s;
}

.ev-resolve-assist-btn:hover {
    background: #15803d;
}

.ev-dd-assist-resolved {
    opacity: 0.6;
    background: #f8faf8;
    border-color: #d1fae5;
}

#ev-assist-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(10, 15, 40, 0.55);
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

#ev-assist-modal-overlay.hidden {
    display: none;
}

/* Modais de eventos */
.ev-modal {
    background: #fff;
    border-radius: 12px;
    width: 100%;
    max-width: 400px;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
    animation: modalIn 0.2s ease;
}

.ev-modal-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 18px;
    border-bottom: 1px solid var(--border);
}

.ev-modal-top span {
    font-size: 1rem;
    font-weight: 800;
    color: var(--text-main);
}

.ev-modal-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px 18px;
}

.ev-form-label {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: -4px;
}

#ev-company-modal-overlay,
#ev-date-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(10, 15, 40, 0.55);
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

#ev-company-modal-overlay.hidden,
#ev-date-modal-overlay.hidden {
    display: none;
}

/* ─── CALENDÁRIO VISUAL ─── */
.cal-nav-bar {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.cal-month-label {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--text-main);
    min-width: 110px;
    text-align: center;
}

.cal-nav-btn {
    background: none;
    border: 1px solid var(--border);
    border-radius: 6px;
    width: 32px;
    height: 32px;
    font-size: 1.2rem;
    cursor: pointer;
    color: var(--text-main);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, border-color 0.15s;
    line-height: 1;
    flex-shrink: 0;
}

.cal-nav-btn:hover {
    background: var(--bg-alt);
    border-color: var(--blue-accent);
}

.cal-today-btn {
    font-size: 0.72rem;
    font-weight: 700;
    width: auto;
    padding: 0 10px;
    letter-spacing: 0.03em;
    color: var(--blue-accent);
    border-color: var(--blue-accent);
}

.cal-today-btn:hover {
    background: var(--blue-accent);
    color: #fff;
}

.cal-weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    border-bottom: 1.5px solid var(--border);
}

.cal-weekdays span {
    text-align: center;
    padding: 9px 4px;
    font-size: 0.72rem;
    font-weight: 800;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
}

.cal-cell {
    min-height: 60px;
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    padding: 6px 5px 4px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    transition: background 0.14s;
    position: relative;
}

.cal-cell:nth-child(7n) {
    border-right: none;
}

.cal-cell:hover:not(.cal-cell-empty) {
    background: #f0f6ff;
}

.cal-cell-empty {
    background: #f9fafc;
}

.cal-cell-today .cal-cell-num {
    background: var(--blue-accent);
    color: white;
    border-radius: 50%;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
}

.cal-cell-num {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-main);
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cal-cell-has-entries {
    background: #f0f4ff;
}

/* ─── CALENDÁRIO MOBILE ─── */
@media (max-width: 480px) {
    .cal-cell {
        min-height: 44px;
        padding: 4px 2px 3px;
    }

    .cal-cell-num {
        font-size: 0.78rem;
        width: 22px;
        height: 22px;
    }

    .cal-cell-today .cal-cell-num {
        width: 22px;
        height: 22px;
    }

    .cal-weekdays span {
        font-size: 0.65rem;
        padding: 7px 2px;
    }

    .cal-month-label {
        min-width: 80px;
        font-size: 0.74rem;
    }

    .cal-today-btn {
        padding: 0 7px;
        font-size: 0.68rem;
    }

    .cal-dot-sm {
        width: 5px;
        height: 5px;
    }

    .cal-legend {
        gap: 10px;
        padding: 6px 12px;
    }

    .cal-leg-item {
        font-size: 0.72rem;
    }
}

.cal-dots-row {
    display: flex;
    gap: 3px;
    flex-wrap: wrap;
    justify-content: center;
}

.cal-dot-sm {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

.cal-legend {
    display: flex;
    gap: 16px;
    padding: 8px 16px;
    border-top: 1.5px solid var(--border);
    background: #fafafa;
    flex-wrap: wrap;
}

.cal-leg-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    color: var(--text-muted);
    font-weight: 500;
}

/* ─── MODAL DO CALENDÁRIO ─── */
#cal-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(10, 15, 40, 0.55);
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

#cal-modal-overlay.hidden {
    display: none;
}

/* Calendar "+" new entry button */
#cal-new-btn {
    display: flex;
    align-items: center;
    gap: 5px;
    background: var(--accent);
    color: var(--navy);
    border: none;
    border-radius: 8px;
    font-size: 0.8rem;
    font-weight: 800;
    padding: 6px 12px;
    cursor: pointer;
    transition: opacity 0.15s;
}

#cal-new-btn:hover {
    opacity: 0.85;
}

/* Cal New Modal overlay — same pattern as cal-modal-overlay */
#cal-new-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(10, 15, 40, 0.55);
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

#cal-new-modal-overlay.hidden {
    display: none;
}

#cal-new-modal {
    background: #fff;
    border-radius: 12px;
    width: 100%;
    max-width: 420px;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
    animation: modalIn 0.2s ease;
}

#cal-modal {
    background: #fff;
    border-radius: 12px;
    width: 100%;
    max-width: 420px;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
    animation: modalIn 0.2s ease;
}

@keyframes modalIn {
    from {
        transform: translateY(12px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.cal-modal-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 18px;
    border-bottom: 1px solid var(--border);
}

.cal-modal-top span {
    font-size: 1rem;
    font-weight: 800;
    color: var(--text-main);
}

.cal-modal-close-x {
    background: none;
    border: none;
    font-size: 1.1rem;
    cursor: pointer;
    color: var(--text-muted);
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background 0.15s;
}

.cal-modal-close-x:hover {
    background: var(--bg-alt);
    color: var(--text-main);
}

.cal-modal-entries {
    padding: 12px 18px;
    border-bottom: 1px solid var(--border);
}

.cal-modal-empty {
    font-size: 0.85rem;
    color: var(--text-muted);
    padding: 4px 0;
}

.cal-modal-entry-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid var(--border);
}

.cal-modal-entry-row:last-child {
    border-bottom: none;
}

.cal-modal-entry-info {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    align-items: center;
    flex: 1;
}

.cal-modal-badge {
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    color: white;
    padding: 2px 7px;
    border-radius: 4px;
    letter-spacing: 0.05em;
}

.cal-modal-entry-title {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-main);
}

.cal-modal-entry-names {
    font-size: 0.78rem;
    color: var(--text-muted);
    width: 100%;
    margin-top: 2px;
}

.cal-modal-entry-desc {
    font-size: 0.78rem;
    color: var(--text-muted);
    width: 100%;
    font-style: italic;
}

.cal-modal-del-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--danger);
    font-size: 1rem;
    padding: 2px 4px;
    flex-shrink: 0;
    opacity: 0.7;
    transition: opacity 0.15s;
}

.cal-modal-del-btn:hover {
    opacity: 1;
}

.cal-modal-add-title {
    padding: 12px 18px 6px;
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--text-muted);
    border-top: 1px solid var(--border);
}

.cal-modal-form {
    padding: 6px 18px 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.cal-m-team-label {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--text-muted);
    margin-bottom: 4px;
}

.cal-m-team-list {
    background: var(--bg-alt);
    border: 1px solid var(--border);
    border-radius: var(--r);
    padding: 10px 12px;
    max-height: 150px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.cal-m-team-item {
    display: flex;
    align-items: center;
    gap: 9px;
    cursor: pointer;
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--text-main);
}

.cal-m-team-item input[type="checkbox"] {
    width: auto;
    margin: 0;
    accent-color: var(--blue-accent);
    cursor: pointer;
}

.cal-m-team-item span {
    flex: 1;
}

/* ─── AGENDA (Início) ─── */
.agenda-group {
    border-bottom: 1px solid var(--border);
    padding: 0;
}

.agenda-group:last-child {
    border-bottom: none;
}

.agenda-date-label {
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    padding: 12px 18px 6px;
    background: #f8faff;
    border-bottom: 1px solid var(--border);
}

.agenda-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 11px 18px;
    border-bottom: 1px solid #f0f0f7;
    transition: background 0.13s;
}

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

.agenda-item:hover {
    background: #fafbff;
}

.agenda-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 5px;
}

.agenda-dot-task {
    background: #00419B;
}

.agenda-dot-folga {
    background: #f59e0b;
}

.agenda-dot-event {
    background: #10b981;
}

.agenda-dot-meeting {
    background: #8b5cf6;
}

.agenda-item-title {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-main);
    line-height: 1.3;
}

.agenda-item-sub {
    font-size: 0.78rem;
    color: var(--text-muted);
    margin-top: 2px;
    font-weight: 400;
}

.agenda-empty {
    padding: 20px 18px;
    color: var(--text-muted);
    font-size: 0.88rem;
    text-align: center;
}

/* ─── SCROLLBAR ─── */
::-webkit-scrollbar {
    width: 5px;
    height: 5px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

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

/* ─── MOBILE MEDIA (ecrãs pequenos) ─── */
@media (max-width: 680px) {
    .app-header {
        padding: 14px 18px;
    }

    .app-body {
        padding: 16px;
    }

    .card {
        padding: 28px 22px;
    }

    .task-item {
        flex-direction: column;
        padding: 14px 16px 14px 22px;
    }

    .task-actions {
        width: 100%;
        align-items: stretch;
    }

    .task-actions label {
        justify-content: center;
    }

    .task-form>div {
        width: 100% !important;
    }

    .task-title {
        flex-direction: column;
        align-items: flex-start !important;
    }

    #admin-nav .btn-filter {
        padding: 12px 14px !important;
        font-size: 0.8rem !important;
    }
}

/* ═══════════════════════════════════════════════════
   MODO MOBILE — utilizadores de telemóvel
   ═══════════════════════════════════════════════════ */

/* ── Barra de navegação inferior ── */
#mobile-bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    display: none;
    background: var(--navy);
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    z-index: 200;
    height: 66px;
    justify-content: space-around;
    align-items: stretch;
    padding-bottom: env(safe-area-inset-bottom, 0px);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.25);
}

#mobile-bottom-nav:not(.hidden) {
    display: flex;
}

.mob-nav-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.38);
    font-size: 0.57rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    cursor: pointer;
    transition: color 0.15s, background 0.15s;
    padding: 0;
    min-height: 0;
    border-radius: 0;
    position: relative;
}

.mob-nav-btn::after {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 2px;
    background: var(--accent);
    border-radius: 0 0 2px 2px;
    transition: width 0.2s ease;
}

.mob-nav-btn.active::after {
    width: 40%;
}

.mob-nav-btn svg {
    width: 22px;
    height: 22px;
    stroke-width: 2;
    flex-shrink: 0;
}

.mob-nav-btn.active {
    color: var(--accent);
}

.mob-nav-btn.active svg {
    stroke: var(--accent);
}

/* ── Ajustes gerais no modo mobile ── */
.mobile-mode .app-body {
    padding: 16px 14px;
    padding-bottom: 84px;
    max-width: 560px;
    margin: 0 auto;
}

.mobile-mode #user-info {
    display: none;
}

.mobile-mode .app-header {
    padding: 14px 16px;
}

.mobile-mode #main-title {
    font-size: 1.05rem;
}

/* ── Task items: touch-friendly ── */
.mobile-mode .task-item {
    flex-direction: column;
    padding: 16px 16px 14px;
    gap: 8px;
}

.mobile-mode .task-actions {
    width: 100%;
}

.mobile-mode .task-actions label {
    min-height: 44px;
    justify-content: center;
    font-size: 0.82rem;
}

.mobile-mode .task-form>div {
    width: 100% !important;
}

.mobile-mode .task-form input,
.mobile-mode .task-form select,
.mobile-mode .task-form textarea {
    font-size: 1rem;
    padding: 14px 12px;
    min-height: 48px;
}

.mobile-mode .task-list-container {
    margin-bottom: 16px;
}

.mobile-mode .task-form-container {
    margin-bottom: 16px;
}

/* ── Dashboard mobile (mob-dash) ── */
.mob-dash {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.mob-greeting {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 16px 16px;
    background: var(--navy);
    border-radius: 14px;
    color: #fff;
}

.mob-saud {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.2;
}

.mob-date {
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.55);
    margin-top: 3px;
    font-weight: 500;
}

.mob-quick-stats {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 5px;
    flex-shrink: 0;
}

.mob-qs-pill {
    padding: 4px 10px;
    border-radius: 30px;
    font-size: 0.67rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.mob-qs-danger {
    background: rgba(239, 68, 68, 0.22);
    color: #fca5a5;
}

.mob-qs-warn {
    background: rgba(251, 191, 36, 0.22);
    color: #fcd34d;
}

.mob-qs-ok {
    background: rgba(34, 197, 94, 0.18);
    color: #86efac;
}

/* ── Card base mobile ── */
.mob-card {
    background: #fff;
    border-radius: 12px;
    border-top: 3px solid var(--navy);
    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.07);
    overflow: hidden;
}

.mob-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 16px 11px;
    background: #fafafa;
    border-bottom: 1.5px solid var(--border);
}

.mob-card-title {
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--navy);
}

.mob-card-count {
    min-width: 22px;
    height: 22px;
    background: var(--navy);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    border-radius: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
}

.mob-card-body {
    padding: 4px 0;
}

.mob-card-btn {
    display: block;
    width: 100%;
    padding: 14px;
    background: none;
    border: none;
    border-top: 1px solid var(--border);
    color: var(--blue-accent);
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    cursor: pointer;
    text-align: center;
    transition: background 0.15s;
}

.mob-card-btn:hover {
    background: #f0f4ff;
}

/* ── Task rows in mobile dashboard ── */
.mob-task-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 16px;
    border-bottom: 1px solid var(--border);
    gap: 10px;
}

.mob-task-row:last-child {
    border-bottom: none;
}

.mob-task-title {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--text);
    flex: 1;
    line-height: 1.3;
}

.mob-more-tasks {
    padding: 10px 16px;
    font-size: 0.75rem;
    color: var(--text-muted);
    font-weight: 600;
    text-align: center;
    border-top: 1px solid var(--border);
}

.mob-empty {
    padding: 20px 16px;
    font-size: 0.83rem;
    color: var(--text-muted);
    text-align: center;
}

/* ── Event/Calendar rows ── */
.mob-ev-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 13px 16px;
    border-bottom: 1px solid var(--border-light);
    transition: background 0.12s;
}

.mob-ev-row:last-child {
    border-bottom: none;
}

.mob-ev-row:hover {
    background: #f8faff;
}

.mob-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 5px;
}

.mob-dot-task {
    background: var(--blue-accent);
}

.mob-dot-event {
    background: #8b5cf6;
}

.mob-dot-folga {
    background: #10b981;
}

.mob-dot-meet {
    background: #f59e0b;
}

.mob-ev-title {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--text);
    line-height: 1.3;
}

.mob-ev-sub {
    font-size: 0.72rem;
    color: var(--text-muted);
    font-weight: 500;
    margin-top: 2px;
}

/* ── Botão voltar mobile ── */
.mob-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    color: var(--blue-accent);
    font-size: 0.88rem;
    font-weight: 700;
    cursor: pointer;
    padding: 10px 0 14px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ── Cards de evento na lista mobile ── */
.mob-ev-card {
    background: #fff;
    border-radius: var(--r);
    border-left: 4px solid var(--blue-accent);
    box-shadow: var(--shadow-card);
    margin-bottom: 10px;
    cursor: pointer;
    transition: box-shadow 0.18s, transform 0.15s;
    overflow: hidden;
    border: 1px solid var(--border-light);
    border-left: 4px solid var(--blue-accent);
}

.mob-ev-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-1px);
}

.mob-ev-card:active {
    transform: scale(0.985);
}

.mob-ev-card-past {
    border-left-color: #94a3b8;
    opacity: 0.72;
}

.mob-ev-card-top {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 14px 14px 16px;
}

.mob-ev-card-date {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: var(--navy);
    color: #fff;
    border-radius: 10px;
    padding: 8px 12px;
    min-width: 48px;
}

.mob-ev-card-day {
    font-size: 1.4rem;
    font-weight: 800;
    line-height: 1;
}

.mob-ev-card-month {
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-top: 2px;
    opacity: 0.75;
}

.mob-ev-card-info {
    flex: 1;
    min-width: 0;
}

.mob-ev-card-name {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mob-ev-card-company {
    font-size: 0.75rem;
    color: var(--text-muted);
    font-weight: 500;
    margin-top: 2px;
}

.mob-ev-card-loc {
    font-size: 0.72rem;
    color: var(--text-light);
    margin-top: 1px;
}

.mob-ev-card-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 7px;
}

.mob-ev-card-arrow {
    color: #94a3b8;
    flex-shrink: 0;
}

/* ── Detalhe do evento (mobile) ── */
.mob-ev-detail-meta {
    background: var(--navy);
    color: #fff;
    border-radius: 12px;
    padding: 18px 18px 16px;
    margin-bottom: 14px;
}

.mob-ev-detail-title {
    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1.2;
}

.mob-ev-detail-company {
    font-size: 0.78rem;
    opacity: 0.7;
    margin-top: 3px;
    font-weight: 500;
}

.mob-ev-detail-date {
    font-size: 0.82rem;
    color: var(--accent);
    font-weight: 700;
    margin-top: 6px;
    letter-spacing: 0.02em;
}

.mob-ev-detail-loc {
    font-size: 0.75rem;
    opacity: 0.6;
    margin-top: 4px;
}

/* ── Rows de equipamento no detalhe ── */
.mob-eq-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border);
    gap: 10px;
}

.mob-eq-row:last-child {
    border-bottom: none;
}

.mob-eq-main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    flex: 1;
}

.mob-eq-id {
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--navy);
    font-family: monospace;
}

.mob-eq-type {
    font-size: 0.78rem;
    color: var(--text-muted);
    font-weight: 500;
}

.mob-eq-tpa {
    font-size: 0.7rem;
    color: var(--text-light);
}

.mob-eq-status {
    font-size: 0.75rem;
    font-weight: 700;
    flex-shrink: 0;
}

/* ── Cards de assistência (relatos) ── */
.mob-as-card {
    padding: 12px 16px;
    border-bottom: 1px solid var(--border);
}

.mob-as-card:last-child {
    border-bottom: none;
}

.mob-as-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 4px;
}

.mob-as-tech {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--navy);
}

.mob-as-date {
    font-size: 0.72rem;
    color: var(--text-muted);
    font-weight: 500;
}

.mob-as-eq {
    font-size: 0.72rem;
    color: var(--blue-accent);
    font-weight: 600;
    margin-bottom: 3px;
}

.mob-as-eq-block {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin: 4px 0 5px;
    padding: 5px 8px;
    background: rgba(0, 0, 0, 0.04);
    border-radius: 6px;
}

.mob-as-eq-id {
    font-size: 0.7rem;
    font-weight: 700;
    background: var(--navy);
    color: #fff;
    padding: 1px 6px;
    border-radius: 4px;
}

.mob-as-eq-type {
    font-size: 0.76rem;
    font-weight: 600;
    color: var(--text-main);
}

.mob-as-eq-tpa {
    font-size: 0.7rem;
    color: var(--text-light);
}

.mob-as-eq-status {
    font-size: 0.7rem;
    font-weight: 700;
    margin-left: auto;
}

.mob-as-location {
    font-size: 0.76rem;
    color: #64748b;
    margin-bottom: 4px;
    font-style: italic;
}

.mob-as-desc {
    font-size: 0.83rem;
    color: var(--text);
    line-height: 1.45;
}

.mob-as-resolved {
    display: inline-block;
    margin-top: 6px;
    font-size: 0.68rem;
    font-weight: 700;
    color: #16a34a;
    background: #dcfce7;
    padding: 2px 8px;
    border-radius: 20px;
    letter-spacing: 0.03em;
}

.mob-as-pending {
    display: inline-block;
    margin-top: 6px;
    font-size: 0.68rem;
    font-weight: 700;
    color: #e67e22;
    background: #fff3e0;
    padding: 2px 8px;
    border-radius: 20px;
    letter-spacing: 0.03em;
}

.mob-as-card-resolved {
    opacity: 0.6;
    background: #f8faf8;
}

/* ── Formulário de relato mobile ── */
.mob-report-card {
    border-top-color: #dc2626;
}

.mob-report-form {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.mob-form-group {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.mob-form-label {
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--navy);
}

.mob-form-input {
    font-family: inherit;
    font-size: 0.95rem;
    border: 1.5px solid var(--border);
    border-radius: 8px;
    padding: 12px 14px;
    background: #fff;
    color: var(--text);
    transition: border-color 0.15s;
    width: 100%;
    box-sizing: border-box;
    resize: vertical;
}

.mob-form-input:focus {
    border-color: var(--blue-accent);
    outline: none;
}

.mob-report-submit {
    background: #dc2626;
    color: #fff;
    border: none;
    border-radius: 10px;
    padding: 15px;
    font-size: 0.9rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s;
    margin-top: 2px;
}

.mob-report-submit:active {
    background: #b91c1c;
}

/* ═══════════════════════════════════════════
   MODO EVENTO — Dashboard de Eventos
═══════════════════════════════════════════ */
.ev-dash-wrap {
    padding: 24px 28px;
    max-width: 1100px;
}

.ev-dash-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 22px;
    flex-wrap: wrap;
    gap: 12px;
}

.ev-dash-greeting {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--navy);
}

.ev-dash-date {
    font-size: 0.82rem;
    color: var(--text-muted);
    margin-top: 2px;
}

.ev-dash-mode-badge {
    background: rgba(231, 255, 73, 0.15);
    border: 1px solid rgba(231, 255, 73, 0.5);
    color: #4a5200;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 6px 14px;
    border-radius: 20px;
    letter-spacing: 0.04em;
}

/* KPIs */
.ev-dash-kpis {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 22px;
}

.ev-dash-kpi {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 14px 18px;
    text-align: center;
}

.ev-dash-kpi-warn {
    border-color: #fbbf24;
    background: #fffbeb;
}

.ev-dash-kpi-val {
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--navy);
    line-height: 1;
}

.ev-dash-kpi-warn .ev-dash-kpi-val {
    color: #d97706;
}

.ev-dash-kpi-lbl {
    font-size: 0.7rem;
    color: var(--text-muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-top: 4px;
}

/* Grid principal */
.ev-dash-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.ev-dash-col {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.ev-dash-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
}

.ev-dash-card-warn {
    border-color: #fbbf24;
}

.ev-dash-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border);
    background: #fafbff;
}

.ev-dash-card-title {
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--text-muted);
}

.ev-dash-card-count {
    font-size: 0.7rem;
    font-weight: 700;
    background: var(--navy);
    color: #fff;
    padding: 2px 8px;
    border-radius: 20px;
}

/* Event cards in dashboard */
.ev-dash-ev-list {
    padding: 8px 0;
}

.ev-dash-ev-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--border);
    cursor: pointer;
    transition: background 0.12s;
}

.ev-dash-ev-card:last-child {
    border-bottom: none;
}

.ev-dash-ev-card:hover {
    background: #f8faff;
}

.ev-dash-ev-past {
    cursor: default;
}

.ev-dash-ev-past:hover {
    background: transparent;
}

.ev-dash-ev-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 36px;
    background: var(--navy);
    color: #fff;
    border-radius: 6px;
    padding: 5px 6px;
    flex-shrink: 0;
}

.ev-dash-ev-day {
    font-size: 1rem;
    font-weight: 800;
    line-height: 1;
}

.ev-dash-ev-mon {
    font-size: 0.55rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    opacity: 0.7;
}

.ev-dash-ev-info {
    flex: 1;
    min-width: 0;
}

.ev-dash-ev-name {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ev-dash-ev-co {
    font-size: 0.72rem;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 4px;
}

.ev-dash-ev-loc {
    font-size: 0.7rem;
    color: var(--text-muted);
    margin-bottom: 4px;
}

.ev-dash-ev-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.ev-dash-chip {
    font-size: 0.65rem;
    font-weight: 600;
    background: #f1f5f9;
    color: #64748b;
    padding: 2px 7px;
    border-radius: 20px;
}

.ev-dash-badge {
    font-size: 0.65rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 20px;
}

.ev-dash-today {
    background: #dcfce7;
    color: #16a34a;
}

.ev-dash-tomorrow {
    background: #fff3e0;
    color: #d97706;
}

.ev-dash-soon {
    background: #eff6ff;
    color: #2563eb;
}

/* Equipment list in dashboard */
.ev-dash-eq-list {
    padding: 4px 0;
}

.ev-dash-eq-row {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--border);
    font-size: 0.78rem;
}

.ev-dash-eq-row:last-child {
    border-bottom: none;
}

.ev-dash-eq-id {
    font-weight: 800;
    color: var(--navy);
    font-size: 0.8rem;
}

.ev-dash-eq-type {
    color: var(--text-main);
}

.ev-dash-eq-ev {
    color: var(--text-muted);
    font-size: 0.7rem;
}

.ev-dash-eq-status {
    font-size: 0.68rem;
    font-weight: 700;
}

/* Issues */
.ev-dash-issue-row {
    padding: 10px 16px;
    border-bottom: 1px solid #fef3c7;
}

.ev-dash-issue-row:last-child {
    border-bottom: none;
}

.ev-dash-issue-eq {
    font-size: 0.75rem;
    font-weight: 700;
    color: #d97706;
}

.ev-dash-issue-desc {
    font-size: 0.78rem;
    color: var(--text-main);
    margin-top: 2px;
}

.ev-dash-empty {
    padding: 16px;
    color: var(--text-muted);
    font-size: 0.82rem;
    text-align: center;
}

@media (max-width: 900px) {
    .ev-dash-kpis {
        grid-template-columns: repeat(2, 1fr);
    }

    .ev-dash-grid {
        grid-template-columns: 1fr;
    }

    .ev-dash-wrap {
        padding: 16px;
    }
}

/* ─── SEARCH INPUT em panel-head ─── */
.panel-search-input {
    padding: 6px 11px !important;
    border: 1.5px solid var(--border) !important;
    border-radius: var(--r-sm) !important;
    font-size: 0.8rem !important;
    width: 180px !important;
    font-family: inherit !important;
    outline: none !important;
    background: var(--bg) !important;
    color: var(--text-main) !important;
    transition: border-color 0.18s, box-shadow 0.18s !important;
}

.panel-search-input:focus {
    border-color: var(--blue-accent) !important;
    box-shadow: 0 0 0 3px rgba(0, 65, 155, 0.1) !important;
    background: #fff !important;
}

/* ─── FATURAÇÃO ─── */
.billing-summary-card {
    max-width: 460px;
}

.billing-summary-head {
    padding: 16px 22px 0 !important;
    margin-bottom: 0 !important;
    border-bottom: none !important;
}

.billing-summary-body {
    padding: 24px 22px 28px;
    text-align: center;
}

.billing-summary-label {
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-light);
    margin-bottom: 12px;
}

.billing-summary-value {
    font-size: 3.2rem;
    font-weight: 800;
    color: var(--navy);
    letter-spacing: -0.05em;
    line-height: 1;
    margin-bottom: 14px;
}

.billing-summary-desc {
    font-size: 0.8rem;
    color: var(--text-light);
    line-height: 1.6;
}

/* ─── MODAL ev-modal: mais polido ─── */
.ev-modal {
    border-radius: var(--r-lg) !important;
    overflow: hidden;
}

.ev-modal-form .btn-primary {
    margin-top: 10px;
}

/* ─── ADMINISTRAÇÃO: section panels com head melhorado ─── */
.adm-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 18px;
    background: #fafbfc;
    border-bottom: 1px solid var(--border-light);
}

.adm-section-title {
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-light);
}

/* ─── MELHORIA: Sidebar nav com indicador de secção activa ─── */
#admin-nav .btn-filter.active::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    background: var(--accent);
    border-radius: 50%;
    margin-right: 8px;
    flex-shrink: 0;
    box-shadow: 0 0 0 3px rgba(231, 255, 73, 0.2);
}

/* ─── UTILITY: page section titles ─── */
.page-section-title {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--text-main);
    letter-spacing: -0.02em;
    margin-bottom: 14px;
}

.page-section-sub {
    font-size: 0.85rem;
    color: var(--text-light);
    margin-top: -10px;
    margin-bottom: 16px;
}

/* =====================================================
   SIDEBAR — DATAS DE EVENTO (Modo Evento)
   ===================================================== */
.sidebar-ev-dates-sep {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 16px 6px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--accent);
    text-transform: uppercase;
}

.sidebar-ev-dates-sep::before,
.sidebar-ev-dates-sep::after {
    content: '';
    flex: 1;
    height: 1px;
    background: rgba(231, 255, 73, 0.18);
}

.sidebar-ev-date-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 14px 8px 14px;
    background: transparent;
    border: none;
    border-radius: var(--r-sm);
    cursor: pointer;
    text-align: left;
    transition: background 0.15s;
    margin-bottom: 2px;
}

.sidebar-ev-date-btn:hover {
    background: rgba(255, 255, 255, 0.07);
}

.sidebar-ev-date-btn--active {
    background: rgba(231, 255, 73, 0.13);
    border-left: 3px solid var(--accent);
}

.sidebar-ev-date-btn--past {
    opacity: 0.5;
}

.sed-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 34px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 6px;
    padding: 3px 5px;
    line-height: 1;
}

.sed-day {
    font-size: 1.05rem;
    font-weight: 700;
    color: #fff;
}

.sed-mon {
    font-size: 0.6rem;
    font-weight: 600;
    color: var(--accent);
    letter-spacing: 0.05em;
}

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

.sed-name {
    font-size: 0.8rem;
    font-weight: 600;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sed-co {
    font-size: 0.7rem;
    color: rgba(255, 255, 255, 0.5);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sed-diff {
    font-size: 0.65rem;
    color: var(--accent);
    font-weight: 500;
}

.sed-empty {
    padding: 10px 16px;
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.4);
}

.sed-past-sep {
    padding: 8px 16px 2px;
    font-size: 0.65rem;
    color: rgba(255, 255, 255, 0.3);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

/* =====================================================
   EVENT DAY PANEL v2 — Admin
   ===================================================== */
.evday-wrap {
    padding: 0 0 32px;
    max-width: 960px;
}

/* Hero v2 */
.evday-hero2 {
    background: linear-gradient(135deg, var(--navy) 0%, #0a2540 100%);
    border-radius: 16px;
    padding: 20px 24px 22px;
    margin-bottom: 16px;
    border-left: 5px solid var(--ev-accent, var(--blue-accent));
    box-shadow: 0 4px 24px rgba(3, 24, 43, 0.18);
}

.evday-hero2-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}

.evday-back-btn2 {
    display: flex;
    align-items: center;
    gap: 5px;
    background: rgba(255, 255, 255, 0.1);
    border: none;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.78rem;
    font-weight: 600;
    border-radius: 8px;
    padding: 5px 12px;
    cursor: pointer;
    transition: background 0.15s;
}

.evday-back-btn2:hover {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

.evday-hero2-badges {
    display: flex;
    align-items: center;
    gap: 8px;
}

.evday-live-badge {
    display: flex;
    align-items: center;
    gap: 5px;
    background: #16a34a;
    color: #fff;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    padding: 3px 9px;
    border-radius: 20px;
}

.evday-live-dot {
    width: 7px;
    height: 7px;
    background: #fff;
    border-radius: 50%;
    animation: evday-pulse 1.2s ease-in-out infinite;
}

@keyframes evday-pulse {

    0%,
    100% {
        opacity: 1;
        transform: scale(1)
    }

    50% {
        opacity: 0.4;
        transform: scale(0.7)
    }
}

.evday-hero2-body {
    display: flex;
    align-items: center;
    gap: 20px;
}

.evday-hero2-date {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 10px 16px;
    text-align: center;
    min-width: 64px;
    flex-shrink: 0;
}

.evday-hero2-day {
    font-size: 2.2rem;
    font-weight: 800;
    line-height: 1;
    color: var(--accent);
}

.evday-hero2-mon {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: rgba(255, 255, 255, 0.6);
    text-transform: uppercase;
}

.evday-hero2-info {
    flex: 1;
}

.evday-hero2-name {
    font-size: 1.35rem;
    font-weight: 800;
    color: #fff;
    margin-bottom: 5px;
    line-height: 1.2;
}

.evday-hero2-co {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
    font-size: 0.82rem;
    color: rgba(255, 255, 255, 0.65);
}

.evday-hero2-type-badge {
    font-size: 0.65rem;
    font-weight: 800;
    padding: 2px 8px;
    border-radius: 10px;
    color: #fff;
    letter-spacing: 0.06em;
}

.evday-hero2-loc {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.5);
}

/* KPI strip v2 */
.evday-kpi2-strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 16px;
}

.evday-kpi2 {
    background: #fff;
    border-radius: 14px;
    padding: 14px 16px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 2px;
    border: 1.5px solid var(--border);
}

.evday-kpi2 svg {
    color: var(--text-light);
    margin-bottom: 2px;
}

.evday-kpi2-num {
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--navy);
    line-height: 1;
}

.evday-kpi2-lbl {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-light);
    margin-bottom: 4px;
}

.evday-kpi2-bar {
    width: 100%;
    height: 5px;
    background: #e2e8f0;
    border-radius: 3px;
    overflow: hidden;
    margin-top: 4px;
}

.evday-kpi2-bar-fill {
    height: 100%;
    border-radius: 3px;
    transition: width 0.5s ease;
}

.evday-kpi2-sub {
    font-size: 0.68rem;
    color: var(--text-muted);
    margin-top: 3px;
}

.evday-kpi2-warn {
    border-color: #fca5a5;
    background: #fff8f8;
}

.evday-kpi2-warn .evday-kpi2-num {
    color: #dc2626;
}

.evday-kpi2-critical {
    border-color: #dc2626;
    background: #fff1f1;
    animation: evday-card-pulse 1.5s ease-in-out infinite;
}

.evday-kpi2-critical .evday-kpi2-num {
    color: #dc2626;
}

.evday-kpi2-ok {
    border-color: #bbf7d0;
}

.evday-kpi2-ok .evday-kpi2-num {
    color: #15803d;
}

@keyframes evday-card-pulse {

    0%,
    100% {
        box-shadow: 0 2px 10px rgba(220, 38, 38, 0.15)
    }

    50% {
        box-shadow: 0 2px 20px rgba(220, 38, 38, 0.4)
    }
}

/* Card v2 */
.evday-card2 {
    background: #fff;
    border-radius: 14px;
    border: 1.5px solid var(--border);
    overflow: hidden;
    margin-bottom: 14px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}

.evday-card2-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px 12px;
    border-bottom: 1px solid var(--border);
    background: #fafafa;
}

.evday-card2-title {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--navy);
}

.evday-card2-count {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--text-light);
    background: var(--border);
    padding: 2px 9px;
    border-radius: 10px;
}

.evday-card2-warn {
    border-color: #fed7aa;
}

.evday-card2-warn .evday-card2-head {
    background: #fff7ed;
}

.evday-card2-critical {
    border-color: #fca5a5;
    animation: evday-card-pulse 1.5s ease-in-out infinite;
}

.evday-card2-critical .evday-card2-head {
    background: #fff1f1;
}

.evday-card2-head-right {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}

/* Urgency/status count badges in card head */
.evday-count-badge-warn {
    background: #dc2626;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 800;
    padding: 2px 9px;
    border-radius: 10px;
    letter-spacing: 0.04em;
}

.evday-count-badge-ok {
    background: #dcfce7;
    color: #15803d;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 2px 9px;
    border-radius: 10px;
}

/* Mode card */
.evday-card2-mode {}

.evday-card2-mode-on {
    border-color: #86efac;
}

.evday-card2-mode-on .evday-card2-head {
    background: #f0fdf4;
}

.evday-mode-desc {
    font-size: 0.8rem;
    color: var(--text-muted);
    padding: 12px 18px;
    line-height: 1.5;
}

.evday-mode-desc-on {
    color: #15803d;
}

.evday-mode-on-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    justify-content: center;
    width: calc(100% - 36px);
    margin: 0 18px 16px;
    padding: 11px 0;
    background: var(--accent);
    color: var(--navy);
    border: none;
    border-radius: 10px;
    font-size: 0.88rem;
    font-weight: 800;
    cursor: pointer;
    transition: opacity 0.2s;
}

.evday-mode-on-btn:hover {
    opacity: 0.88;
}

.evday-mode-off-btn {
    display: block;
    width: calc(100% - 36px);
    margin: 0 18px 16px;
    padding: 10px 0;
    background: transparent;
    color: #dc2626;
    border: 1.5px solid #fca5a5;
    border-radius: 10px;
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s;
}

.evday-mode-off-btn:hover {
    background: #fff1f1;
}

/* Report toggle button v2 */
.evday-report-toggle-btn2 {
    display: flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    border: 1.5px dashed var(--blue-accent);
    color: var(--blue-accent);
    border-radius: 9px;
    font-size: 0.8rem;
    font-weight: 700;
    padding: 8px 16px;
    cursor: pointer;
    margin: 12px 18px 8px;
    transition: background 0.15s;
}

.evday-report-toggle-btn2:hover {
    background: #eff6ff;
}

/* Equipment rows v2 */
.evday-eq-row2 {
    display: flex;
    border-bottom: 1px solid var(--border);
    transition: background 0.12s;
}

.evday-eq-row2:last-child {
    border-bottom: none;
}

.evday-eq-row2:hover {
    background: #f8fafc;
}

.evday-eq2-stripe {
    width: 4px;
    flex-shrink: 0;
    background: var(--eq-stripe, #94a3b8);
}

.evday-eq2-body {
    flex: 1;
    padding: 10px 14px;
}

.evday-eq2-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 7px;
}

.evday-eq2-identity {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.evday-eq2-id {
    font-weight: 800;
    font-size: 0.82rem;
    color: var(--navy);
}

.evday-eq2-type {
    font-size: 0.78rem;
    color: var(--text-muted);
}

.evday-eq2-tpa {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--blue-accent);
    background: #eff6ff;
    padding: 1px 7px;
    border-radius: 8px;
}

.evday-eq2-right {
    display: flex;
    align-items: center;
    gap: 8px;
}

.evday-eq2-warn {
    font-size: 0.68rem;
    font-weight: 700;
    color: #dc2626;
    background: #fee2e2;
    padding: 2px 7px;
    border-radius: 8px;
}

.evday-eq2-status-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}

.evday-eq2-actions {
    display: flex;
    gap: 7px;
}

/* Status chips in card header */
.evday-eq-chip {
    font-size: 0.65rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 8px;
}

.evday-eq-chip-op {
    background: #dcfce7;
    color: #15803d;
}

.evday-eq-chip-maint {
    background: #fef9c3;
    color: #92400e;
}

.evday-eq-chip-other {
    background: #f1f5f9;
    color: #475569;
}

/* Issues v2 */
.evday-issues-list {
    max-height: 480px;
    overflow-y: auto;
}

.evday-issue2 {
    display: flex;
    border-bottom: 1px solid var(--border);
    transition: background 0.12s;
    background: #fff;
}

.evday-issue2:last-child {
    border-bottom: none;
}

.evday-issue2-resolved {
    background: #f8fafc;
    opacity: 0.7;
}

.evday-issue2-pulse {
    animation: evday-issue-pulse 2s ease-in-out infinite;
}

@keyframes evday-issue-pulse {

    0%,
    100% {
        background: #fff
    }

    50% {
        background: #fff5f5
    }
}

.evday-issue2-stripe {
    width: 4px;
    flex-shrink: 0;
    background: var(--urg-color, #94a3b8);
}

.evday-issue2-body {
    flex: 1;
    padding: 11px 14px;
}

.evday-issue2-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 7px;
}

.evday-issue2-left {
    display: flex;
    align-items: center;
    gap: 7px;
}

.evday-issue2-urg {
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    padding: 2px 9px;
    border-radius: 10px;
    color: #fff;
}

.evday-issue2-ok {
    font-size: 0.65rem;
    font-weight: 700;
    color: #15803d;
    background: #dcfce7;
    padding: 2px 9px;
    border-radius: 10px;
}

.evday-issue2-meta2 {
    display: flex;
    align-items: center;
    gap: 7px;
}

.evday-issue2-avatar {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--navy);
    color: var(--accent);
    font-size: 0.7rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.evday-issue2-reporter {
    font-size: 0.72rem;
    color: var(--text-muted);
    font-weight: 600;
}

.evday-issue2-ts {
    font-size: 0.68rem;
    color: var(--text-light);
}

.evday-issue2-eq {
    display: flex;
    align-items: center;
    gap: 7px;
    background: #f1f5f9;
    border-radius: 7px;
    padding: 4px 9px;
    margin-bottom: 7px;
    flex-wrap: wrap;
}

.evday-issue2-eq-id {
    font-weight: 800;
    font-size: 0.75rem;
    color: var(--navy);
}

.evday-issue2-eq-type {
    font-size: 0.73rem;
    color: var(--text-muted);
}

.evday-issue2-eq-tpa {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--blue-accent);
}

.evday-issue2-loc {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.73rem;
    color: var(--text-muted);
    margin-bottom: 5px;
}

.evday-issue2-desc {
    font-size: 0.8rem;
    color: #1e293b;
    line-height: 1.45;
    margin-bottom: 8px;
    font-style: italic;
}

.evday-issue2-actions {
    display: flex;
    gap: 8px;
}

.evday-issue2-resolve-btn,
.evday-issue2-del-btn {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.74rem;
    font-weight: 700;
    border: none;
    border-radius: 8px;
    padding: 6px 13px;
    cursor: pointer;
    transition: opacity 0.15s;
}

.evday-issue2-resolve-btn {
    background: #dcfce7;
    color: #15803d;
}

.evday-issue2-del-btn {
    background: #eff6ff;
    color: var(--blue-accent);
}

.evday-issue2-resolve-btn:hover,
.evday-issue2-del-btn:hover {
    opacity: 0.8;
}

/* =====================================================
   EVENT DAY PANEL (Admin — painel do dia de evento)
   ===================================================== */
.evday-wrap {
    padding: 0 0 32px;
    max-width: 900px;
}

.evday-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    padding: 12px 0 0;
}

.evday-back-btn {
    background: none;
    border: 1.5px solid var(--border);
    border-radius: var(--r-sm);
    padding: 6px 14px;
    font-size: 0.82rem;
    color: var(--text-light);
    cursor: pointer;
    transition: all 0.15s;
    font-weight: 500;
}

.evday-back-btn:hover {
    border-color: var(--navy);
    color: var(--navy);
}

.evday-mode-badge {
    font-size: 0.75rem;
    font-weight: 700;
    background: var(--navy);
    color: var(--accent);
    padding: 4px 12px;
    border-radius: 20px;
    letter-spacing: 0.05em;
}

.evday-hero {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    background: var(--navy);
    border-radius: var(--r-lg);
    padding: 24px 28px;
    margin-bottom: 20px;
    color: #fff;
}

.evday-hero-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 68px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 10px 12px;
    gap: 0;
}

.evday-hero-day {
    font-size: 2.4rem;
    font-weight: 800;
    line-height: 1;
    color: var(--accent);
}

.evday-hero-mon {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.7);
    text-transform: uppercase;
}

.evday-hero-year {
    font-size: 0.7rem;
    color: rgba(255, 255, 255, 0.4);
}

.evday-hero-info {
    flex: 1;
}

.evday-hero-name {
    font-size: 1.3rem;
    font-weight: 700;
    margin-bottom: 4px;
}

.evday-hero-co {
    font-size: 0.82rem;
    opacity: 0.75;
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.evday-hero-loc {
    font-size: 0.8rem;
    opacity: 0.6;
    margin-bottom: 8px;
}

.evday-hero-when {
    display: inline-block;
}

.evday-badge {
    font-size: 0.72rem;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 20px;
    letter-spacing: 0.03em;
}

.evday-today {
    background: var(--accent);
    color: var(--navy);
}

.evday-tomorrow {
    background: #d1fae5;
    color: #065f46;
}

.evday-soon {
    background: rgba(255, 255, 255, 0.15);
    color: rgba(255, 255, 255, 0.8);
}

.evday-past {
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.5);
}

.evday-kpis {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 20px;
}

.evday-kpi {
    background: #fff;
    border: 1.5px solid var(--border-light);
    border-radius: 14px;
    padding: 16px 12px 14px;
    text-align: center;
    box-shadow: 0 2px 8px rgba(3, 24, 43, 0.06);
    position: relative;
    overflow: hidden;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.evday-kpi::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    border-radius: 14px 14px 0 0;
}

.evday-kpi-eq::before {
    background: linear-gradient(90deg, #3b82f6, #60a5fa);
}

.evday-kpi-staff::before {
    background: linear-gradient(90deg, #8b5cf6, #a78bfa);
}

.evday-kpi-issues::before {
    background: linear-gradient(90deg, #22c55e, #4ade80);
}

.evday-kpi-warn::before {
    background: linear-gradient(90deg, #f59e0b, #fbbf24);
}

.evday-kpi-icon {
    font-size: 1.1rem;
    line-height: 1;
    margin-bottom: 6px;
}

.evday-kpi-val {
    font-size: 1.9rem;
    font-weight: 900;
    color: var(--navy);
    line-height: 1;
    letter-spacing: -0.04em;
}

.evday-kpi-warn {
    border-color: #fde68a;
    background: #fffbeb;
}

.evday-kpi-warn .evday-kpi-val {
    color: #b45309;
}

.evday-kpi-lbl {
    font-size: 0.68rem;
    color: var(--text-light);
    margin-top: 3px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.evday-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.evday-col {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.evday-card {
    background: #fff;
    border: 1.5px solid var(--border-light);
    border-radius: 14px;
    box-shadow: 0 2px 10px rgba(3, 24, 43, 0.07);
    overflow: hidden;
}

.evday-card-warn {
    border-color: #fde68a;
}

.evday-card-ativar {
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.evday-card-ativo {
    background: #eff6ff;
    border-color: #bfdbfe;
}

.evday-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 16px;
    background: #fafafa;
    border-bottom: 1.5px solid var(--border-light);
}

.evday-card-title {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--navy);
    letter-spacing: -0.01em;
}

.evday-card-count {
    background: var(--bg);
    color: var(--text-light);
    font-size: 0.72rem;
    font-weight: 700;
    padding: 2px 9px;
    border-radius: 20px;
    min-width: 22px;
    text-align: center;
}

.evday-count-warn {
    background: #fef3c7;
    color: #d97706;
}

.evday-eq-list,
.evday-staff-list,
.evday-issues-list {
    padding: 4px 0;
}

.evday-empty-sub {
    padding: 14px 16px;
    font-size: 0.8rem;
    color: var(--text-light);
}

/* Equipment row — redesigned */
.evday-eq-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 14px;
    border-bottom: 1px solid #f0f4f8;
    transition: background 0.12s;
}

.evday-eq-row:last-child {
    border-bottom: none;
}

.evday-eq-row:hover {
    background: #f8fafc;
}

/* Left section of eq row */
.evday-eq-left {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    flex: 1;
}

.evday-eq-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.evday-dot-op {
    background: #16a34a;
    box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.15);
}

.evday-dot-maint {
    background: #d97706;
    box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.15);
}

.evday-dot-none {
    background: #cbd5e1;
}

.evday-eq-info {
    min-width: 0;
}

.evday-eq-main {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 1px;
}

.evday-eq-id {
    font-weight: 700;
    color: var(--navy);
    font-size: 0.8rem;
}

.evday-eq-type {
    font-size: 0.75rem;
    color: var(--text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.evday-eq-issue-cnt {
    background: #fef3c7;
    color: #d97706;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 10px;
}

.evday-staff-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--border-light);
}

.evday-staff-row:last-child {
    border-bottom: none;
}

.evday-staff-avatar {
    width: 30px;
    height: 30px;
    background: var(--navy);
    color: var(--accent);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.85rem;
    flex-shrink: 0;
}

.evday-staff-name {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-main);
}

.evday-issue-row {
    padding: 10px 16px;
    border-bottom: 1px solid var(--border-light);
}

.evday-issue-row:last-child {
    border-bottom: none;
}

.evday-issue-critica {
    background: #fff1f2;
}

.evday-issue-alta {
    background: #fff7ed;
}

.evday-issue-media {
    background: #fefce8;
}

.evday-issue-top {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}

.evday-issue-eq {
    font-weight: 700;
    font-size: 0.8rem;
    color: var(--navy);
}

.evday-issue-urgency {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 10px;
    background: #fef3c7;
    color: #d97706;
}

.evday-issue-critica .evday-issue-urgency {
    background: #ffe4e6;
    color: #e11d48;
}

.evday-issue-alta .evday-issue-urgency {
    background: #ffedd5;
    color: #c2410c;
}

.evday-issue-by {
    font-size: 0.72rem;
    color: var(--text-light);
}

.evday-issue-location {
    font-size: 0.76rem;
    color: #64748b;
    margin-bottom: 4px;
    font-style: italic;
}

.evday-issue-desc {
    font-size: 0.78rem;
    color: var(--text-main);
    margin-bottom: 6px;
}

.evday-issue-resolve {
    font-size: 0.72rem;
    padding: 3px 10px;
    cursor: pointer;
}

.evday-issue-actions {
    display: flex;
    gap: 8px;
    margin-top: 6px;
}

.evday-issue-delegar {
    font-size: 0.72rem;
    padding: 3px 10px;
    cursor: pointer;
}

.evday-delegar-panel {
    margin-top: 8px;
    padding: 10px 12px;
    background: #f0f4ff;
    border-radius: 8px;
    border: 1px solid #c7d4f7;
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.evday-delegar-sel {
    flex: 1;
    min-width: 160px;
    font-size: 0.78rem;
    padding: 5px 8px;
    border-radius: 6px;
    border: 1px solid var(--border-light);
    background: #fff;
}

.evday-delegar-confirm {
    font-size: 0.72rem;
    padding: 5px 12px;
    white-space: nowrap;
}

/* Admin report problem form */
.evday-report-admin {
    padding: 10px 16px 12px;
    border-bottom: 1px solid var(--border-light);
}

.evday-report-form {
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.evday-report-sel,
.evday-report-desc {
    width: 100%;
    font-size: 0.82rem;
    padding: 7px 10px;
    border: 1px solid var(--border-light);
    border-radius: 7px;
    background: #fff;
    box-sizing: border-box;
}

.evday-report-desc {
    resize: vertical;
    min-height: 60px;
}

.evday-report-submit-btn {
    align-self: flex-start;
    font-size: 0.8rem;
    padding: 6px 18px;
}

/* Assistência resolvida */
.evday-issue-resolved {
    opacity: 0.55;
    background: #f8fafc !important;
}

.evday-issue-eq-info {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 5px;
    padding: 5px 0;
    border-bottom: 1px solid var(--border-light);
}

.evday-issue-eq-badge {
    font-size: 0.72rem;
    font-weight: 700;
    background: var(--navy);
    color: #fff;
    padding: 2px 8px;
    border-radius: 6px;
    letter-spacing: 0.02em;
}

.evday-issue-eq-type {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-main);
}

.evday-issue-eq-tpa {
    font-size: 0.72rem;
    color: var(--text-light);
}

.evday-issue-eq-status {
    font-size: 0.72rem;
    font-weight: 700;
    margin-left: auto;
}

.evday-issue-resolved-badge {
    font-size: 0.68rem;
    font-weight: 700;
    background: #dcfce7;
    color: #15803d;
    padding: 2px 8px;
    border-radius: 10px;
    margin-left: auto;
}

.evday-issue-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 6px;
}

.evday-issue-ts {
    font-size: 0.68rem;
    color: var(--text-light);
    margin-left: auto;
}

.evday-card-head-counts {
    display: flex;
    align-items: center;
    gap: 6px;
}

.evday-ativo-badge {
    background: #dbeafe;
    color: #1d4ed8;
    font-size: 0.68rem;
    font-weight: 800;
    padding: 2px 8px;
    border-radius: 10px;
    letter-spacing: 0.05em;
}

.evday-ativo-info {
    padding: 10px 16px;
    font-size: 0.78rem;
    color: var(--text-light);
    line-height: 1.5;
}

.evday-ativar-btn,
.evday-desativar-btn {
    margin: 0 16px 16px;
    width: calc(100% - 32px);
}

.evday-ativar-btn {
    font-weight: 700;
}

@media (max-width: 700px) {
    .evday-grid {
        grid-template-columns: 1fr;
    }

    .evday-kpis {
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }

    .evday-hero {
        padding: 16px;
    }

    .evday-hero-name {
        font-size: 1.1rem;
    }
}

/* =====================================================
   EVENTO STAFF MODE (Staff mobile — evento ativo)
   ===================================================== */
#evento-staff-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    background: #fff;
    border-top: 2px solid var(--accent);
    box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.08);
    z-index: 100;
    padding-bottom: env(safe-area-inset-bottom);
}

#evento-staff-nav .mob-nav-btn {
    color: var(--text-light);
}

#evento-staff-nav .mob-nav-btn.active {
    color: var(--navy);
}

#evento-staff-nav .mob-nav-btn.active::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 28px;
    height: 3px;
    background: var(--accent);
    border-radius: 0 0 3px 3px;
}

/* Employee Event Dashboard v2 */
.evstaff-wrap2 {
    padding: 0 0 40px;
}

.evstaff-hero2 {
    background: linear-gradient(135deg, var(--navy) 0%, #0c2d52 100%);
    border-radius: 0 0 20px 20px;
    padding: 20px 20px 22px;
    margin-bottom: 18px;
    border-bottom: 4px solid var(--ev-color, var(--accent));
}

.evstaff-hero2-greeting {
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.6);
    margin-bottom: 6px;
}

.evstaff-hero2-greeting strong {
    color: rgba(255, 255, 255, 0.9);
    font-weight: 700;
}

.evstaff-hero2-name {
    font-size: 1.4rem;
    font-weight: 800;
    color: #fff;
    margin-bottom: 6px;
    line-height: 1.2;
}

.evstaff-hero2-co {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 10px;
}

.evstaff-hero2-type {
    font-size: 0.65rem;
    font-weight: 800;
    padding: 2px 9px;
    border-radius: 10px;
    color: #fff;
    letter-spacing: 0.05em;
}

.evstaff-hero2-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.evstaff-hero2-date-chip,
.evstaff-hero2-loc-chip,
.evstaff-hero2-when {
    display: flex;
    align-items: center;
    gap: 5px;
    background: rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.72rem;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 20px;
}

.evstaff-hero2-today {
    background: var(--accent) !important;
    color: var(--navy) !important;
    font-weight: 800 !important;
}

/* KPI row for employee */
.evstaff-kpi2-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    padding: 0 16px 16px;
}

.evstaff-kpi2 {
    background: #fff;
    border-radius: 14px;
    border: 1.5px solid var(--border);
    padding: 14px 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 3px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.evstaff-kpi2 svg {
    color: var(--text-light);
}

.evstaff-kpi2-num {
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--navy);
    line-height: 1;
}

.evstaff-kpi2-lbl {
    font-size: 0.62rem;
    font-weight: 700;
    color: var(--text-light);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1.3;
}

.evstaff-kpi2-ok {
    border-color: #bbf7d0;
}

.evstaff-kpi2-ok .evstaff-kpi2-num {
    color: #15803d;
}

.evstaff-kpi2-warn {
    border-color: #fca5a5;
}

.evstaff-kpi2-warn .evstaff-kpi2-num {
    color: #dc2626;
}

/* Equipment summary bar */
.evstaff-eq-summary {
    padding: 0 16px 16px;
}

.evstaff-eq-summary-title {
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--text-light);
    margin-bottom: 8px;
}

.evstaff-eq-summary-bar {
    display: flex;
    height: 8px;
    border-radius: 10px;
    overflow: hidden;
    gap: 2px;
    margin-bottom: 8px;
}

.evstaff-bar-seg {
    border-radius: 10px;
    transition: flex 0.4s ease;
}

.evstaff-bar-op {
    background: #16a34a;
}

.evstaff-bar-maint {
    background: #d97706;
}

.evstaff-bar-other {
    background: #94a3b8;
}

.evstaff-eq-summary-chips {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.evstaff-chip {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 10px;
}

.evstaff-chip-op {
    background: #dcfce7;
    color: #15803d;
}

.evstaff-chip-maint {
    background: #fef9c3;
    color: #92400e;
}

.evstaff-chip-other {
    background: #f1f5f9;
    color: #475569;
}

/* Quick actions */
.evstaff-quick-actions {
    padding: 0 16px;
}

.evstaff-quick-lbl {
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--text-light);
    margin-bottom: 10px;
}

.evstaff-quick-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.evstaff-quick-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: 14px;
    padding: 16px 8px;
    cursor: pointer;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--navy);
    text-align: center;
    line-height: 1.3;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    transition: all 0.15s;
}

.evstaff-quick-btn svg {
    color: var(--blue-accent);
}

.evstaff-quick-btn:hover {
    border-color: var(--blue-accent);
    background: #eff6ff;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
}

.evstaff-quick-btn-report {
    border-color: #fca5a5;
}

.evstaff-quick-btn-report svg {
    color: #dc2626;
}

.evstaff-quick-btn-report:hover {
    border-color: #dc2626;
    background: #fff1f1;
}

/* ── Completion Note Modal ──────────────────────────────── */
.cn-overlay {
    position: fixed;
    inset: 0;
    z-index: 9000;
    background: rgba(3, 24, 43, 0.6);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.cn-overlay.hidden {
    display: none;
}

.cn-modal {
    background: #fff;
    border-radius: 20px;
    padding: 24px 22px 20px;
    width: 100%;
    max-width: 400px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
    animation: cn-slide-up 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes cn-slide-up {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.97);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.cn-modal-header {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1rem;
    font-weight: 800;
    color: var(--navy);
    margin-bottom: 14px;
}

.cn-modal-header svg {
    color: #10b981;
    flex-shrink: 0;
}

.cn-task-title {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-main);
    background: #f8fafc;
    border-radius: 10px;
    padding: 10px 14px;
    margin-bottom: 16px;
    border-left: 3px solid var(--blue-accent);
    line-height: 1.4;
}

.cn-label {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--text-light);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    display: block;
    margin-bottom: 7px;
}

.cn-optional {
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: #94a3b8;
}

.cn-textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1.5px solid var(--border);
    border-radius: 12px;
    padding: 12px 14px;
    font-size: 0.88rem;
    color: var(--text-main);
    font-family: inherit;
    resize: vertical;
    min-height: 90px;
    background: #fafcff;
    outline: none;
    transition: border-color 0.2s;
    margin-bottom: 18px;
}

.cn-textarea:focus {
    border-color: var(--blue-accent);
    background: #fff;
}

.cn-actions {
    display: flex;
    gap: 10px;
}

.cn-btn-cancel {
    flex: 0 0 auto;
    padding: 11px 18px;
    border: 1.5px solid var(--border);
    border-radius: 12px;
    background: #fff;
    color: var(--text-light);
    font-size: 0.85rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.15s;
}

.cn-btn-cancel:hover {
    background: #f1f5f9;
    color: var(--navy);
}

.cn-btn-confirm {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 18px;
    border: none;
    border-radius: 12px;
    background: #10b981;
    color: #fff;
    font-size: 0.85rem;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.15s;
}

.cn-btn-confirm:hover {
    background: #059669;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(16, 185, 129, 0.35);
}

/* Completion note display inside task cards */
.tcard-completion-note {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 10px;
    padding: 9px 12px;
    margin: 8px 0 4px;
    font-size: 0.8rem;
    color: #15803d;
    line-height: 1.5;
}

.tcard-completion-note svg {
    flex-shrink: 0;
    margin-top: 1px;
    color: #10b981;
}

.tcard-completion-note-text {
    font-style: italic;
}

/* Completion note in evstaff task card */
.evstaff-task-note {
    display: flex;
    gap: 7px;
    align-items: flex-start;
    background: #f0fdf4;
    border-radius: 8px;
    padding: 7px 10px;
    margin-top: 6px;
    font-size: 0.75rem;
    color: #15803d;
    font-style: italic;
    line-height: 1.4;
}

.evstaff-task-note svg {
    flex-shrink: 0;
    color: #10b981;
}

/* Completion note in upro user task rows */
.upro-task-note {
    font-size: 0.72rem;
    color: #15803d;
    font-style: italic;
    padding: 4px 0 0 2px;
    line-height: 1.4;
}

.evstaff-wrap {
    padding: 16px 0 32px;
}

.evstaff-greeting {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-main);
    margin-bottom: 14px;
    padding: 0 4px;
}

.evstaff-hero {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    background: var(--navy);
    border-radius: var(--r-lg);
    padding: 18px 20px;
    margin-bottom: 16px;
    color: #fff;
}

.evstaff-hero-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    padding: 8px 10px;
    min-width: 52px;
}

.evstaff-hero-day {
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--accent);
    line-height: 1;
}

.evstaff-hero-mon {
    font-size: 0.68rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.65);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.evstaff-hero-info {
    flex: 1;
    min-width: 0;
}

.evstaff-hero-name {
    font-size: 1.05rem;
    font-weight: 700;
    margin-bottom: 4px;
}

.evstaff-hero-co {
    font-size: 0.78rem;
    opacity: 0.7;
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 3px;
    flex-wrap: wrap;
}

.evstaff-hero-loc {
    font-size: 0.75rem;
    opacity: 0.55;
    margin-bottom: 6px;
}

.evstaff-hero-when {
    font-size: 0.72rem;
    background: rgba(255, 255, 255, 0.15);
    padding: 3px 9px;
    border-radius: 12px;
    display: inline-block;
}

.evstaff-today .evstaff-hero-when {
    background: var(--accent);
    color: var(--navy);
    font-weight: 700;
}

.evstaff-kpis {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 16px;
}

.evstaff-kpi {
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: var(--r);
    padding: 14px;
    text-align: center;
    box-shadow: var(--shadow-card);
}

.evstaff-kpi-warn {
    border-color: #fcd34d;
    background: #fffbeb;
}

.evstaff-kpi-val {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--navy);
    line-height: 1;
}

.evstaff-kpi-warn .evstaff-kpi-val {
    color: #d97706;
}

.evstaff-kpi-lbl {
    font-size: 0.7rem;
    color: var(--text-light);
    margin-top: 3px;
}

.evstaff-info-card {
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: var(--r);
    padding: 14px 16px;
    box-shadow: var(--shadow-card);
}

.evstaff-info-title {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 8px;
}

.evstaff-info-item {
    font-size: 0.78rem;
    color: var(--text-light);
    margin-bottom: 5px;
    padding-left: 2px;
}

.evstaff-empty {
    padding: 32px 16px;
    text-align: center;
    font-size: 0.85rem;
    color: var(--text-light);
    line-height: 1.6;
}

.evstaff-no-ev {
    padding: 40px 20px;
    text-align: center;
    font-size: 0.9rem;
    color: var(--text-light);
}

/* Staff task cards */
.evstaff-tasks-wrap {
    padding: 14px 14px 80px;
}

.evstaff-tasks-section-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--navy);
    margin: 14px 0 6px;
    padding-left: 2px;
}

.evstaff-tasks-section-label--done {
    color: var(--text-light);
}

.evstaff-task-card {
    background: #fff;
    border-radius: 10px;
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-card);
    padding: 12px 14px;
    margin-bottom: 10px;
}

.evstaff-task-done {
    opacity: 0.6;
}

.evstaff-task-top {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 5px;
}

.evstaff-task-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--navy);
    flex: 1;
}

.evstaff-task-badge-pend {
    font-size: 0.65rem;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 8px;
    background: #fef3c7;
    color: #d97706;
    white-space: nowrap;
}

.evstaff-task-badge-done {
    font-size: 0.65rem;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 8px;
    background: #dcfce7;
    color: #15803d;
    white-space: nowrap;
}

.evstaff-task-desc {
    font-size: 0.8rem;
    color: var(--text-light);
    line-height: 1.45;
    margin-bottom: 6px;
}

.evstaff-task-due {
    font-size: 0.72rem;
    color: var(--blue-accent);
    font-weight: 600;
    margin-bottom: 8px;
}

.evstaff-task-done-btn {
    font-size: 0.78rem;
    padding: 6px 14px;
}

.evstaff-eq-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 4px 0;
}

.evstaff-eq-card {
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: var(--r);
    padding: 14px 16px;
    box-shadow: var(--shadow-card);
}

.evstaff-eq-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 4px;
}

.evstaff-eq-id {
    font-weight: 800;
    font-size: 0.85rem;
    color: var(--navy);
}

.evstaff-eq-status {
    font-size: 0.75rem;
    font-weight: 600;
}

.evstaff-eq-type {
    font-size: 0.82rem;
    color: var(--text-main);
    margin-bottom: 2px;
}

.evstaff-eq-notes {
    font-size: 0.75rem;
    color: var(--text-light);
    margin-top: 4px;
}

/* =====================================================
   PROBLEMAS SECTION (Staff — relatar problemas)
   ===================================================== */
.prob-header {
    display: flex;
    align-items: center;
    gap: 14px;
    background: var(--navy);
    border-radius: var(--r-lg);
    padding: 16px 20px;
    margin-bottom: 20px;
    color: #fff;
}

.prob-header-icon {
    font-size: 1.8rem;
    line-height: 1;
}

.prob-header-title {
    font-size: 1rem;
    font-weight: 700;
}

.prob-header-sub {
    font-size: 0.78rem;
    opacity: 0.65;
    margin-top: 2px;
}

.prob-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 20px;
}

.prob-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-main);
    letter-spacing: 0.03em;
}

.prob-form select,
.prob-form textarea,
.prob-location-input {
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: var(--r-sm);
    padding: 9px 12px;
    font-size: 0.85rem;
    font-family: inherit;
    width: 100%;
    box-sizing: border-box;
}

.prob-form textarea {
    resize: vertical;
}

.prob-form select:focus,
.prob-form textarea:focus,
.prob-location-input:focus {
    outline: none;
    border-color: var(--navy);
}

.prob-submit-btn {
    margin-top: 4px;
}

.prob-lista-titulo {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--text-light);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 8px;
    padding-top: 4px;
}

.prob-item {
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: var(--r);
    padding: 12px 14px;
    margin-bottom: 8px;
    box-shadow: var(--shadow-card);
}

.prob-item--resolved {
    opacity: 0.55;
}

.prob-item-top {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}

.prob-item-eq {
    font-weight: 700;
    font-size: 0.8rem;
    color: var(--navy);
}

.prob-item-eq-block {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin: 4px 0 6px;
    padding: 5px 8px;
    background: #f8fafc;
    border-radius: 6px;
    border: 1px solid var(--border-light);
}

.prob-item-eq-id {
    font-size: 0.72rem;
    font-weight: 700;
    background: var(--navy);
    color: #fff;
    padding: 1px 6px;
    border-radius: 4px;
}

.prob-item-eq-type {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-main);
}

.prob-item-eq-tpa {
    font-size: 0.72rem;
    color: var(--text-light);
}

.prob-item-eq-status {
    font-size: 0.72rem;
    font-weight: 700;
    margin-left: auto;
}

.prob-item-urg {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 10px;
    background: #fef3c7;
    color: #d97706;
}

.prob-urg-critica {
    background: #ffe4e6 !important;
    color: #e11d48 !important;
}

.prob-urg-alta {
    background: #ffedd5 !important;
    color: #c2410c !important;
}

.prob-urg-media {
    background: #fef3c7 !important;
    color: #d97706 !important;
}

.prob-item-ok {
    font-size: 0.7rem;
    color: #059669;
    font-weight: 600;
    margin-left: auto;
}

.prob-item-location {
    font-size: 0.76rem;
    color: #64748b;
    margin-bottom: 4px;
    font-style: italic;
}

.prob-item-desc {
    font-size: 0.78rem;
    color: var(--text-main);
    margin-bottom: 4px;
    line-height: 1.4;
}

.prob-item-date {
    font-size: 0.7rem;
    color: var(--text-light);
}

/* =====================================================
   ACESSOS
   ===================================================== */
.acessos-wrap {
    display: flex;
    flex-direction: column;
    gap: 24px;
    max-width: 700px;
}

.acessos-block {
    background: #fff;
    border-radius: 12px;
    border: 1px solid var(--border-light);
    overflow: hidden;
}

.acessos-block-title {
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--text-light);
    padding: 14px 18px 10px;
    border-bottom: 1px solid var(--border-light);
}

.acessos-block-title .acessos-sub {
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
}

.acessos-empty {
    padding: 16px 18px;
    font-size: 0.84rem;
    color: var(--text-light);
}

/* Timeline de acessos */
.acessos-log-list {
    padding: 8px 0;
}

.acessos-log-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 18px;
    border-bottom: 1px solid #f1f5f9;
}

.acessos-log-row:last-child {
    border-bottom: none;
}

.acessos-log-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--navy);
    color: var(--accent);
    font-weight: 700;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.acessos-log-info {
    display: flex;
    flex-direction: column;
}

.acessos-log-name {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-main);
}

.acessos-log-time {
    font-size: 0.74rem;
    color: var(--text-light);
}

/* Utilizadores com tarefas */
.acessos-users-list {
    padding: 0;
}

.acessos-user-card {
    border-bottom: 1px solid #f1f5f9;
}

.acessos-user-card:last-child {
    border-bottom: none;
}

.acessos-user-head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 18px;
    cursor: pointer;
    transition: background 0.15s;
}

.acessos-user-head:hover {
    background: #f8fafc;
}

.acessos-user-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--blue-accent);
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.acessos-user-meta {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.acessos-user-name {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-main);
}

.acessos-user-last {
    font-size: 0.73rem;
    color: var(--text-light);
}

.acessos-user-stats {
    display: flex;
    align-items: baseline;
    gap: 2px;
    font-size: 0.78rem;
    color: var(--text-light);
}

.acessos-stat-done {
    font-weight: 700;
    color: #059669;
    font-size: 0.95rem;
}

.acessos-stat-total {
    font-weight: 700;
    color: var(--text-main);
    font-size: 0.95rem;
}

.acessos-stat-lbl {
    margin-left: 4px;
}

.acessos-chevron {
    font-size: 1.3rem;
    color: var(--text-light);
    transition: transform 0.2s;
    line-height: 1;
}

/* Lista de tarefas por utilizador */
.acessos-user-tasks {
    padding: 8px 18px 12px 66px;
    background: #f8fafc;
    border-top: 1px solid #f1f5f9;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.acessos-user-notasks {
    font-size: 0.82rem;
    color: var(--text-light);
    padding: 4px 0;
}

.acessos-task-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 10px;
    border-radius: 7px;
    background: #fff;
    border: 1px solid var(--border-light);
}

.acessos-task-done .acessos-task-status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #10b981;
    flex-shrink: 0;
}

.acessos-task-pend .acessos-task-status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #f59e0b;
    flex-shrink: 0;
}

.acessos-task-info {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.acessos-task-title {
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--text-main);
}

.acessos-task-done .acessos-task-title {
    text-decoration: line-through;
    color: var(--text-light);
}

.acessos-task-due {
    font-size: 0.7rem;
    color: var(--text-light);
}

.acessos-task-badge {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 10px;
    white-space: nowrap;
}

.acessos-task-done .acessos-task-badge {
    background: #d1fae5;
    color: #059669;
}

.acessos-task-pend .acessos-task-badge {
    background: #fef3c7;
    color: #d97706;
}

/* =====================================================
   USER PROFILE (Acessos → detalhe)
   ===================================================== */
.upro-wrap {
    display: flex;
    flex-direction: column;
    gap: 18px;
    max-width: 900px;
}

.upro-back-btn {
    background: none;
    border: none;
    color: var(--blue-accent);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0;
    width: fit-content;
    display: flex;
    align-items: center;
    gap: 4px;
}

.upro-back-btn:hover {
    text-decoration: underline;
}

/* Header */
.upro-header {
    display: flex;
    align-items: center;
    gap: 16px;
    background: var(--navy);
    color: #fff;
    border-radius: 14px;
    padding: 20px 24px;
}

.upro-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--accent);
    color: var(--navy);
    font-weight: 900;
    font-size: 1.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.upro-header-info {
    flex: 1;
}

.upro-name {
    font-size: 1.15rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 8px;
}

.upro-online-badge {
    font-size: 0.68rem;
    background: #10b981;
    color: #fff;
    padding: 2px 8px;
    border-radius: 20px;
    font-weight: 600;
}

.upro-email {
    font-size: 0.8rem;
    opacity: 0.6;
    margin-top: 2px;
}

.upro-last {
    font-size: 0.78rem;
    opacity: 0.75;
    margin-top: 4px;
}

/* KPIs */
.upro-kpis {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 10px;
}

@media(max-width:700px) {
    .upro-kpis {
        grid-template-columns: repeat(3, 1fr);
    }
}

.upro-kpi {
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: 10px;
    padding: 14px 10px 10px;
    text-align: center;
}

.upro-kpi-val {
    font-size: 1.6rem;
    font-weight: 800;
    line-height: 1;
}

.upro-kpi-lbl {
    font-size: 0.68rem;
    color: var(--text-light);
    margin-top: 4px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.upro-kpi-green .upro-kpi-val {
    color: #059669;
}

.upro-kpi-amber .upro-kpi-val {
    color: #d97706;
}

.upro-kpi-blue .upro-kpi-val {
    color: var(--blue-accent);
}

.upro-kpi-yellow .upro-kpi-val {
    color: #ca8a04;
}

.upro-kpi-red .upro-kpi-val {
    color: #dc2626;
}

.upro-kpi-navy .upro-kpi-val {
    color: var(--navy);
}

/* HR Insights strip */
.upro-insights {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

@media(max-width:640px) {
    .upro-insights {
        grid-template-columns: repeat(2, 1fr);
    }
}

.upro-ins-card {
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: 11px;
    padding: 14px 16px;
    display: flex;
    align-items: stretch;
    gap: 12px;
}

.upro-ins-accent {
    width: 3px;
    border-radius: 99px;
    flex-shrink: 0;
    align-self: stretch;
}

.upro-ins-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.upro-ins-label {
    font-size: 0.68rem;
    color: var(--text-light);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.upro-ins-val {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--text-main);
    line-height: 1.1;
}

.upro-ins-bar {
    height: 5px;
    background: #f1f5f9;
    border-radius: 99px;
    overflow: hidden;
    margin-top: 4px;
}

.upro-ins-fill {
    height: 100%;
    border-radius: 99px;
    transition: width 0.5s ease;
}

/* Folgas zip bar */
.upro-folgas-bar {
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 9px;
    padding: 12px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 0.83rem;
}

.upro-folgas-bar-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.upro-folgas-label {
    font-weight: 700;
    color: #92400e;
    font-size: 0.8rem;
}

.upro-folgas-count {
    font-size: 0.75rem;
    font-weight: 700;
    background: #f59e0b;
    color: #fff;
    padding: 2px 8px;
    border-radius: 20px;
}

.upro-zip-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 3px;
}

.upro-zip-strip span {
    width: 22px;
    height: 22px;
    border-radius: 5px;
    font-size: 0.65rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: default;
}

.zip-day {
    background: #fef9ee;
    color: #a16207;
    border: 1px solid #fde68a;
}

.zip-folga {
    background: #f59e0b;
    color: #fff;
    border: 1px solid #d97706;
}

.zip-today {
    background: var(--navy);
    color: var(--accent);
    border: 1px solid var(--navy);
}

/* Two-column layout */
.upro-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

@media(max-width:640px) {
    .upro-cols {
        grid-template-columns: 1fr;
    }
}

.upro-col {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.upro-card {
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    overflow: hidden;
}

.upro-card-title {
    font-size: 0.74rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--text-light);
    padding: 12px 16px 8px;
    border-bottom: 1px solid var(--border-light);
}

.upro-empty {
    padding: 12px 16px;
    font-size: 0.82rem;
    color: var(--text-light);
}

/* Tasks */
.upro-task-list {
    display: flex;
    flex-direction: column;
}

.upro-task-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 14px;
    border-bottom: 1px solid #f1f5f9;
}

.upro-task-row:last-child {
    border-bottom: none;
}

.upro-task-done .upro-task-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #10b981;
    flex-shrink: 0;
}

.upro-task-pend .upro-task-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #f59e0b;
    flex-shrink: 0;
}

.upro-task-body {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.upro-task-title {
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--text-main);
}

.upro-task-done .upro-task-title {
    text-decoration: line-through;
    color: var(--text-light);
}

.upro-task-due {
    font-size: 0.7rem;
    color: var(--text-light);
}

.upro-task-badge {
    font-size: 0.65rem;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 10px;
    white-space: nowrap;
}

.upro-task-done .upro-task-badge {
    background: #d1fae5;
    color: #059669;
}

.upro-task-pend .upro-task-badge {
    background: #fef3c7;
    color: #d97706;
}

/* Calendar */
.upro-cal-list {
    display: flex;
    flex-direction: column;
}

.upro-cal-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 14px;
    border-bottom: 1px solid #f1f5f9;
}

.upro-cal-row:last-child {
    border-bottom: none;
}

.upro-cal-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.upro-cal-info {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.upro-cal-title {
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--text-main);
}

.upro-cal-date {
    font-size: 0.7rem;
    color: var(--text-light);
}

.upro-cal-type {
    font-size: 0.68rem;
    font-weight: 700;
}

/* Login history */
.upro-log-list {
    display: flex;
    flex-direction: column;
}

.upro-log-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 16px;
    border-bottom: 1px solid #f1f5f9;
    font-size: 0.8rem;
}

.upro-log-row:last-child {
    border-bottom: none;
}

.upro-log-date {
    color: var(--text-main);
    font-weight: 500;
}

.upro-log-time {
    color: var(--text-light);
}

/* Reports */
.upro-report-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 14px;
    border-bottom: 1px solid #f1f5f9;
}

.upro-report-row:last-child {
    border-bottom: none;
}

.upro-report-desc {
    font-size: 0.8rem;
    color: var(--text-main);
    flex: 1;
}

.upro-report-badge {
    font-size: 0.65rem;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 10px;
    white-space: nowrap;
    background: #fee2e2;
    color: #dc2626;
}

.upro-report-ok .upro-report-badge {
    background: #d1fae5;
    color: #059669;
}

/* =====================================================
   TOAST
   ===================================================== */
.app-toast {
    position: fixed;
    bottom: 80px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    background: var(--navy);
    color: #fff;
    padding: 10px 20px;
    border-radius: 24px;
    font-size: 0.82rem;
    font-weight: 500;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
    z-index: 9999;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.25s, transform 0.25s;
    white-space: nowrap;
    max-width: 90vw;
    text-align: center;
}

.app-toast--visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* =====================================================
   EVENT DAY PANEL — Staff add/remove
   ===================================================== */
.evday-staff-row {
    justify-content: flex-start;
    position: relative;
}

.evday-staff-tag {
    font-size: 0.62rem;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: 8px;
    vertical-align: middle;
    margin-left: 4px;
}

.evday-staff-tag-cal {
    background: #dbeafe;
    color: #1d4ed8;
}

.evday-staff-remove {
    margin-left: auto;
    background: none;
    border: 1px solid var(--border);
    border-radius: 50%;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    color: #94a3b8;
    cursor: pointer;
    transition: all 0.15s;
    flex-shrink: 0;
    padding: 0;
}

.evday-staff-remove:hover {
    border-color: #e11d48;
    color: #e11d48;
    background: #fff1f2;
}

.evday-add-staff {
    display: flex;
    gap: 8px;
    padding: 10px 12px;
    border-top: 1px solid var(--border-light);
    align-items: center;
}

.evday-add-staff-sel {
    flex: 1;
    min-width: 0;
    padding: 7px 10px;
    border: 1.5px solid var(--border);
    border-radius: var(--r-sm);
    font-size: 0.8rem;
    background: #fff;
    font-family: inherit;
    color: var(--text-main);
}

.evday-add-staff-sel:focus {
    outline: none;
    border-color: var(--navy);
}

.evday-add-staff-btn {
    white-space: nowrap;
    font-size: 0.78rem;
    padding: 7px 14px;
}

/* =====================================================
   ECRÃ DE CARREGAMENTO / SINCRONIZAÇÃO
   ===================================================== */
.loading-screen {
    position: fixed;
    inset: 0;
    background: var(--navy);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 99999;
    transition: opacity 0.3s;
}

.loading-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.loading-logo {
    width: 72px;
    height: 72px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.08);
    padding: 10px;
    object-fit: contain;
}

.loading-spinner {
    width: 32px;
    height: 32px;
    border: 3px solid rgba(231, 255, 73, 0.2);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.loading-msg {
    font-size: 0.82rem;
    color: rgba(255, 255, 255, 0.5);
    letter-spacing: 0.03em;
}

/* =====================================================
   DASHBOARD MOBILE MELHORADO (mdb-*)
   ===================================================== */
.mdb-wrap {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-bottom: 24px;
}

/* Hero / saudação */
.mdb-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(135deg, var(--navy) 0%, var(--blue-accent) 100%);
    border-radius: var(--r-lg);
    padding: 18px 16px;
    color: #fff;
}

.mdb-hero-greeting {
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.3;
}

.mdb-hero-greeting strong {
    font-weight: 800;
}

.mdb-hero-date {
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.65);
    margin-top: 3px;
}

.mdb-hero-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--accent);
    color: var(--navy);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    font-weight: 800;
    flex-shrink: 0;
}

/* Barra de estado */
.mdb-status-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: var(--r);
    font-size: 0.85rem;
    font-weight: 600;
}

.mdb-status-icon {
    font-size: 1rem;
}

.mdb-status-ok {
    background: #dcfce7;
    color: #166534;
}

.mdb-status-warn {
    background: #fef9c3;
    color: #854d0e;
}

.mdb-status-danger {
    background: #fee2e2;
    color: #991b1b;
}

/* Barra de progresso */
.mdb-progress-card {
    background: #fff;
    border-radius: var(--r);
    padding: 12px 14px;
    box-shadow: var(--shadow-card);
    border: 1px solid var(--border-light);
}

.mdb-progress-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.mdb-progress-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-muted);
}

.mdb-progress-pct {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--navy);
}

.mdb-progress-bar-bg {
    height: 7px;
    background: #e2e8f0;
    border-radius: 10px;
    overflow: hidden;
}

.mdb-progress-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--blue-accent), #3b82f6);
    border-radius: 10px;
    transition: width 0.5s ease;
    min-width: 2px;
}

/* Cards */
.mdb-card {
    background: #fff;
    border-radius: var(--r);
    box-shadow: var(--shadow-card);
    border: 1px solid var(--border-light);
    overflow: hidden;
}

.mdb-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 14px 10px;
    border-bottom: 1px solid var(--border-light);
    background: #fafbff;
}

.mdb-card-title {
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--navy);
}

.mdb-card-badge {
    background: #e8edf8;
    color: var(--blue-accent);
    font-size: 0.72rem;
    font-weight: 800;
    padding: 2px 8px;
    border-radius: 20px;
    min-width: 22px;
    text-align: center;
}

.mdb-card-badge-danger {
    background: #fee2e2;
    color: #991b1b;
}

.mdb-card-body {
    padding: 4px 0;
}

.mdb-card-link {
    display: block;
    width: 100%;
    text-align: center;
    padding: 11px 14px;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--blue-accent);
    background: none;
    border: none;
    border-top: 1px solid var(--border-light);
    cursor: pointer;
    letter-spacing: 0.02em;
    transition: background 0.15s;
}

.mdb-card-link:hover {
    background: #f0f4ff;
}

/* Tarefa row */
.mdb-task-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-left: 3px solid transparent;
    border-bottom: 1px solid var(--border-light);
    min-height: 52px;
    transition: background 0.12s;
}

.mdb-task-row:last-child {
    border-bottom: none;
}

.mdb-task-row:active {
    background: #f8faff;
}

.mdb-task-check {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: none;
    background: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    color: #94a3b8;
    transition: color 0.2s, background 0.2s;
    -webkit-tap-highlight-color: transparent;
}

.mdb-task-check:active {
    background: #f0f9ff;
    color: var(--blue-accent);
}

.mdb-task-info {
    flex: 1;
    min-width: 0;
}

.mdb-task-title {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--text-main);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mdb-task-desc {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Badges de tarefa */
.mdb-badge {
    font-size: 0.7rem;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 20px;
    white-space: nowrap;
    flex-shrink: 0;
}

.mdb-badge-danger {
    background: #fee2e2;
    color: #991b1b;
}

.mdb-badge-warn {
    background: #fef9c3;
    color: #854d0e;
}

.mdb-badge-neutral {
    background: #e8edf8;
    color: #475569;
}

/* "mais tarefas" row */
.mdb-more-row {
    padding: 10px 14px;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--blue-accent);
    text-align: center;
    border-top: 1px solid var(--border-light);
}

/* Mensagem vazia */
.mdb-empty-msg {
    padding: 16px 14px;
    font-size: 0.85rem;
    color: var(--text-muted);
    text-align: center;
}

/* Calendário row */
.mdb-cal-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 14px;
    border-left: 3px solid transparent;
    border-bottom: 1px solid var(--border-light);
    min-height: 50px;
}

.mdb-cal-row:last-child {
    border-bottom: none;
}

.mdb-cal-icon {
    width: 36px;
    height: 36px;
    border-radius: var(--r-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
}

.mdb-cal-info {
    flex: 1;
    min-width: 0;
}

.mdb-cal-title {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--text-main);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mdb-cal-type {
    font-size: 0.74rem;
    color: var(--text-muted);
    margin-top: 2px;
}

/* KPI strip do dashboard de utilizador */
.mdb-kpi-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}

.mdb-kpi {
    border-radius: var(--r);
    padding: 12px 8px 10px;
    text-align: center;
    box-shadow: var(--shadow-card);
    border: 1px solid transparent;
}

.mdb-kpi-val {
    font-size: 1.4rem;
    font-weight: 900;
    line-height: 1;
    margin-bottom: 4px;
}

.mdb-kpi-lbl {
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    opacity: 0.75;
    line-height: 1.2;
}

.mdb-kpi-amber {
    background: #fffbeb;
    color: #92400e;
    border-color: #fde68a;
}

.mdb-kpi-green {
    background: #f0fdf4;
    color: #166534;
    border-color: #bbf7d0;
}

.mdb-kpi-folga {
    background: #f0fdfa;
    color: #0f766e;
    border-color: #99f6e4;
}

.mdb-kpi-navy {
    background: #eff6ff;
    color: #1e40af;
    border-color: #bfdbfe;
}

/* Próximo evento card */
.mdb-card-event {
    border-left: 4px solid var(--blue-accent);
}

.mdb-ev-countdown {
    font-size: 0.72rem;
    font-weight: 700;
    padding: 3px 9px;
    border-radius: 20px;
    flex-shrink: 0;
}

.mdb-ev-badge-urgent {
    background: #fee2e2;
    color: #991b1b;
}

.mdb-ev-badge-soon {
    background: #fef9c3;
    color: #854d0e;
}

.mdb-ev-badge-normal {
    background: #e8edf8;
    color: #1e40af;
}

.mdb-ev-detail {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 14px 16px;
}

.mdb-ev-date-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--navy);
    color: #fff;
    border-radius: var(--r-sm);
    min-width: 46px;
    padding: 8px 6px;
    flex-shrink: 0;
}

.mdb-ev-day {
    font-size: 1.4rem;
    font-weight: 900;
    line-height: 1;
}

.mdb-ev-mon {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    opacity: 0.75;
    margin-top: 2px;
}

.mdb-ev-info {
    flex: 1;
    min-width: 0;
}

.mdb-ev-name {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-main);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mdb-ev-co {
    font-size: 0.78rem;
    color: var(--text-muted);
    margin-top: 3px;
}

.mdb-ev-loc {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: 2px;
}

/* Agenda list */
.mdb-agenda-list {
    padding: 4px 0;
}

.mdb-agenda-row {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 10px 14px;
    border-bottom: 1px solid var(--border-light);
    min-height: 50px;
}

.mdb-agenda-row:last-child {
    border-bottom: none;
}

.mdb-agenda-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 32px;
    flex-shrink: 0;
    position: relative;
}

.mdb-agenda-day {
    font-size: 1rem;
    font-weight: 800;
    color: var(--text-main);
    line-height: 1;
}

.mdb-agenda-mon {
    font-size: 0.62rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-top: 1px;
}

.mdb-agenda-today-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--blue-accent);
    position: absolute;
    top: -3px;
    right: -2px;
}

.mdb-agenda-stripe {
    width: 3px;
    align-self: stretch;
    border-radius: 10px;
    background: var(--row-color, #3b82f6);
    opacity: 0.85;
    margin: 2px 12px;
    flex-shrink: 0;
}

.mdb-agenda-body {
    flex: 1;
    min-width: 0;
}

.mdb-agenda-title {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--text-main);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mdb-agenda-type {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-top: 2px;
    display: block;
}

/* Atalhos rápidos */
.mdb-quick-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.mdb-quick-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 14px 8px;
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: var(--r);
    box-shadow: var(--shadow-card);
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--navy);
    cursor: pointer;
    transition: background 0.15s, transform 0.1s;
    -webkit-tap-highlight-color: transparent;
}

.mdb-quick-btn:active {
    background: #f0f4ff;
    transform: scale(0.97);
}

.mdb-quick-btn svg {
    color: var(--blue-accent);
}

/* ─── Pedidos de Ajuda — Admin Dashboard ─────────────────────────── */
.adm-pedidos-card {
    background: #fff;
    border-radius: var(--r);
    border: 2px solid #fca5a5;
    box-shadow: 0 2px 12px rgba(239, 68, 68, 0.1);
    overflow: hidden;
    margin-bottom: 4px;
}

/* New pedidos card on admin dashboard */
.adm-pedidos-card-new {
    border-color: #e2e8f0;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.07);
}

.adm-pedidos-card-new .adm-pedidos-head {
    background: linear-gradient(135deg, var(--navy) 0%, #00419B 100%);
}

.adm-pedidos-list {
    display: flex;
    flex-direction: column;
}

.adm-ped-row {
    display: flex;
    align-items: stretch;
    gap: 0;
    border-bottom: 1px solid #f1f5f9;
}

.adm-ped-row:last-child {
    border-bottom: none;
}

.adm-ped-stripe {
    width: 4px;
    flex-shrink: 0;
}

.adm-ped-body {
    flex: 1;
    min-width: 0;
    padding: 12px 12px 10px 12px;
}

.adm-ped-top {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    margin-bottom: 5px;
}

.adm-ped-badge {
    font-size: 0.63rem;
    font-weight: 800;
    padding: 2px 7px;
    border-radius: 4px;
    color: #fff;
    white-space: nowrap;
}

.adm-ped-client {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-main);
}

.adm-ped-author {
    font-size: 0.76rem;
    color: var(--text-light);
}

.adm-ped-time {
    font-size: 0.72rem;
    color: var(--text-light);
    margin-left: auto;
}

.adm-ped-text {
    font-size: 0.85rem;
    color: var(--text-main);
    line-height: 1.4;
}

.adm-ped-contact {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.75rem;
    color: var(--text-light);
    margin-top: 4px;
}

.adm-ped-actions {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    padding: 10px 12px 10px 0;
    flex-shrink: 0;
}

.adm-ped-resolve-btn {
    font-size: 0.73rem;
    font-weight: 700;
    padding: 5px 11px;
    border-radius: 7px;
    background: var(--navy);
    color: #fff;
    border: none;
    cursor: pointer;
    white-space: nowrap;
    transition: opacity 0.15s;
}

.adm-ped-resolve-btn:hover {
    opacity: 0.82;
}

.adm-pedidos-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 11px 16px;
    background: linear-gradient(135deg, #c0392b 0%, #e74c3c 100%);
    color: #fff;
}

.adm-pedidos-title {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.adm-pedidos-count {
    font-size: 0.75rem;
    font-weight: 700;
    background: rgba(255, 255, 255, 0.25);
    padding: 3px 10px;
    border-radius: 20px;
}

.adm-pedido-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid #fef2f2;
}

.adm-pedido-row:last-child {
    border-bottom: none;
}

.adm-pedido-left {
    flex: 1;
    min-width: 0;
}

.adm-pedido-desc {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-main);
    line-height: 1.4;
    margin-bottom: 5px;
}

.adm-pedido-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.adm-pedido-who {
    font-size: 0.75rem;
    font-weight: 700;
    color: #c0392b;
    background: #fef2f2;
    padding: 2px 8px;
    border-radius: 10px;
}

.adm-pedido-time {
    font-size: 0.72rem;
    color: var(--text-muted);
}

.adm-pedido-delegado {
    font-size: 0.7rem;
    font-weight: 700;
    color: #7c3aed;
    background: #f5f3ff;
    padding: 2px 8px;
    border-radius: 10px;
}

.adm-task-status {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 10px;
    white-space: nowrap;
}

.adm-task-aguarda {
    background: #fff7ed;
    color: #d97706;
}

.adm-task-vista {
    background: #eff6ff;
    color: #2563eb;
}

.adm-task-concluida {
    background: #dcfce7;
    color: #059669;
}

.adm-pedido-resolvido {
    opacity: 0.6;
    background: #f8fdf9;
    border-left: 3px solid #10b981;
}

.adm-pedido-resolvido .adm-pedido-desc {
    text-decoration: line-through;
    color: var(--text-muted);
}

.adm-pedido-ficha {
    background: #f8faff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 8px 10px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.adm-pedido-ficha-row {
    display: flex;
    gap: 8px;
    font-size: 0.75rem;
}

.adm-pedido-ficha-row span {
    color: var(--text-muted);
    min-width: 70px;
    flex-shrink: 0;
}

.adm-pedido-ficha-row strong {
    color: var(--text-main);
    font-weight: 600;
}

.adm-pedido-actions {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex-shrink: 0;
}

.adm-pedido-btn {
    font-size: 0.72rem;
    font-weight: 700;
    padding: 6px 12px;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    white-space: nowrap;
    transition: opacity 0.15s;
}

.adm-pedido-resolve {
    background: #dcfce7;
    color: #166534;
}

.adm-pedido-resolve:hover {
    opacity: 0.8;
}

.adm-pedido-delegar {
    background: #ede9fe;
    color: #5b21b6;
}

.adm-pedido-delegar:hover {
    opacity: 0.8;
}

/* ─── Modal Delegar ─────────────────────────────────────────────── */
.delegar-overlay {
    position: fixed;
    inset: 0;
    background: rgba(10, 15, 40, 0.55);
    z-index: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.delegar-modal {
    background: #fff;
    border-radius: 14px;
    width: 100%;
    max-width: 360px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2);
    overflow: hidden;
    animation: modalIn 0.18s ease;
}

.delegar-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    background: var(--navy);
    color: #fff;
    font-size: 0.95rem;
    font-weight: 800;
}

.delegar-close {
    background: rgba(255, 255, 255, 0.15);
    border: none;
    color: #fff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.delegar-desc {
    padding: 12px 16px 8px;
    font-size: 0.82rem;
    color: var(--text-muted);
    border-bottom: 1px solid var(--border-light);
    font-style: italic;
}

.delegar-users {
    display: flex;
    flex-direction: column;
    gap: 0;
    max-height: 300px;
    overflow-y: auto;
    padding: 6px 0;
}

.delegar-user-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: none;
    border: none;
    cursor: pointer;
    transition: background 0.12s;
    text-align: left;
    border-bottom: 1px solid var(--border-light);
}

.delegar-user-btn:last-child {
    border-bottom: none;
}

.delegar-user-btn:hover {
    background: #f0f4ff;
}

.delegar-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--blue-accent);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 0.9rem;
    flex-shrink: 0;
}

.delegar-uname {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-main);
}

/* Botão de pedir ajuda no dashboard */
.mdb-ajuda-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 16px;
    background: linear-gradient(135deg, #c0392b 0%, #e74c3c 100%);
    color: #fff;
    font-size: 0.95rem;
    font-weight: 800;
    border: none;
    border-radius: var(--r);
    cursor: pointer;
    letter-spacing: 0.02em;
    box-shadow: 0 4px 14px rgba(192, 57, 43, 0.35);
    transition: opacity 0.15s, transform 0.12s, box-shadow 0.15s;
    -webkit-tap-highlight-color: transparent;
}

.mdb-ajuda-btn:active {
    opacity: 0.9;
    transform: scale(0.98);
    box-shadow: 0 2px 6px rgba(192, 57, 43, 0.25);
}

/* Modal Pedir Ajuda */
#pedido-ajuda-overlay {
    position: fixed;
    inset: 0;
    background: rgba(10, 15, 40, 0.6);
    z-index: 600;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 0;
}

#pedido-ajuda-overlay.hidden {
    display: none;
}

.paj-modal {
    background: #fff;
    border-radius: 20px 20px 0 0;
    width: 100%;
    max-width: 520px;
    max-height: 88vh;
    overflow-y: auto;
    box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.2);
    animation: slideUpModal 0.25s ease;
}

@keyframes slideUpModal {
    from {
        transform: translateY(100%);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.paj-modal-top {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 18px 16px;
    border-bottom: 1px solid #f0f0f5;
    background: linear-gradient(135deg, #c0392b 0%, #e74c3c 100%);
    border-radius: 20px 20px 0 0;
}

.paj-modal-top span {
    flex: 1;
    font-size: 1.05rem;
    font-weight: 800;
    color: #fff;
}

.paj-modal-icon {
    width: 36px;
    height: 36px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.paj-close-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    font-size: 0.9rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.15s;
}

.paj-close-btn:hover {
    background: rgba(255, 255, 255, 0.35);
}

.paj-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 20px 18px 28px;
}

.paj-label {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #64748b;
    margin-bottom: -6px;
}

.paj-required {
    color: #e74c3c;
}

.paj-form select,
.paj-form textarea,
.paj-form input[type="text"] {
    width: 100%;
    border: 1.5px solid #e2e8f0;
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 0.92rem;
    font-family: inherit;
    color: var(--text-main);
    background: #f8faff;
    resize: vertical;
    transition: border-color 0.15s;
    box-sizing: border-box;
}

.paj-form textarea:focus,
.paj-form input[type="text"]:focus {
    outline: none;
    border-color: #e74c3c;
    background: #fff;
}

.paj-submit-btn {
    width: 100%;
    padding: 15px;
    background: linear-gradient(135deg, #c0392b 0%, #e74c3c 100%);
    color: #fff;
    font-size: 1rem;
    font-weight: 800;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    margin-top: 6px;
    box-shadow: 0 4px 14px rgba(192, 57, 43, 0.3);
    transition: opacity 0.15s, transform 0.12s;
}

.paj-submit-btn:active {
    opacity: 0.9;
    transform: scale(0.98);
}

/* Paj modal — step selector */
.paj-step-intro {
    font-size: 0.9rem;
    color: var(--text-light);
    margin: 0 0 14px 0;
    padding: 0 18px;
}

.paj-type-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    padding: 0 18px 20px;
}

.paj-type-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    background: #fff;
    border: 2px solid #e2e8f0;
    border-radius: 14px;
    padding: 20px 12px;
    cursor: pointer;
    text-align: center;
    transition: border-color 0.15s, box-shadow 0.15s;
    color: var(--text-main);
}

.paj-type-card:hover {
    border-color: #c0392b;
    box-shadow: 0 4px 14px rgba(192, 57, 43, 0.12);
}

.paj-type-name {
    font-size: 0.9rem;
    font-weight: 800;
}

.paj-type-desc {
    font-size: 0.72rem;
    color: var(--text-light);
    line-height: 1.3;
}

/* Evento card: spans full width when it's the 3rd (odd) card */
.paj-type-card-evento:not(.hidden) {
    grid-column: 1 / -1;
    flex-direction: row;
    justify-content: center;
    gap: 14px;
    padding: 16px 20px;
}

.paj-type-card-evento {
    border-color: #bfdbfe;
    color: #1d4ed8;
}

.paj-type-card-evento:hover {
    border-color: #1d4ed8;
    box-shadow: 0 4px 14px rgba(29, 78, 216, 0.12);
}

.paj-select {
    width: 100%;
    border: 1.5px solid #e2e8f0;
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 0.92rem;
    font-family: inherit;
    color: var(--text-main);
    background: #f8faff;
    box-sizing: border-box;
    transition: border-color 0.15s;
    appearance: none;
}

.paj-select:focus {
    border-color: #c0392b;
    outline: none;
    background: #fff;
}

/* Paj back button */
.paj-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.8rem;
    font-weight: 600;
    color: #c0392b;
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px 18px 10px;
    margin: 0;
}

.paj-back-btn:hover {
    opacity: 0.75;
}

/* Paj rolo tipo buttons */
.paj-rolo-tipo-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 4px;
}

.paj-rolo-tipo-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    background: #f8faff;
    border: 2px solid #e2e8f0;
    border-radius: 12px;
    padding: 16px 10px;
    cursor: pointer;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--text-main);
    transition: border-color 0.15s, background 0.15s;
}

.paj-rolo-tipo-btn:hover {
    border-color: #c0392b;
    background: #fff5f5;
}

.paj-rolo-tipo-btn.active {
    border-color: #c0392b;
    background: #fff0ef;
    color: #c0392b;
}

/* Paj number/text input outside form[type="text"] */
.paj-input {
    width: 100%;
    border: 1.5px solid #e2e8f0;
    border-radius: 10px;
    padding: 13px 14px;
    font-size: 0.95rem;
    font-family: inherit;
    background: #f8faff;
    box-sizing: border-box;
    transition: border 0.15s;
}

.paj-input:focus {
    border-color: #c0392b;
    outline: none;
    background: #fff;
}

/* Pesquisa de cliente no modal pedir ajuda */
.paj-search-wrap {
    position: relative;
}

.paj-search-wrap input[type="text"] {
    width: 100%;
    border: 1.5px solid #e2e8f0;
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 0.92rem;
    font-family: inherit;
    background: #f8faff;
    transition: border 0.15s;
    box-sizing: border-box;
}

.paj-search-wrap input[type="text"]:focus {
    border-color: var(--blue-accent);
    outline: none;
    background: #fff;
}

.paj-results {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1.5px solid #cbd5e1;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    z-index: 900;
    overflow: hidden;
    max-height: 200px;
    overflow-y: auto;
}

.paj-result-item {
    padding: 11px 14px;
    font-size: 0.9rem;
    cursor: pointer;
    color: var(--text-main);
    border-bottom: 1px solid #f1f5f9;
    transition: background 0.1s;
}

.paj-result-item:last-child {
    border-bottom: none;
}

.paj-result-item:hover {
    background: #f0f4ff;
}

.paj-result-empty {
    padding: 11px 14px;
    font-size: 0.85rem;
    color: var(--text-muted);
}

/* ─── Inline client search (task form, calendar modal) ─── */
.inline-client-search-wrap {
    position: relative;
}

.inline-client-search-inp {
    width: 100%;
    border: 1.5px solid #e2e8f0;
    border-radius: var(--r-sm);
    padding: 10px 12px;
    font-size: 0.9rem;
    font-family: inherit;
    background: #f8faff;
    box-sizing: border-box;
    transition: border 0.15s;
}

.inline-client-search-inp:focus {
    border-color: var(--blue-accent);
    outline: none;
    background: #fff;
}

.inline-client-results {
    position: absolute;
    top: calc(100% + 3px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1.5px solid #cbd5e1;
    border-radius: 9px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    z-index: 900;
    overflow: hidden;
    max-height: 200px;
    overflow-y: auto;
}

.inline-client-results.hidden {
    display: none;
}

.inline-client-result-item {
    padding: 10px 13px;
    font-size: 0.88rem;
    cursor: pointer;
    color: var(--text-main);
    border-bottom: 1px solid #f1f5f9;
    transition: background 0.1s;
}

.inline-client-result-item:last-child {
    border-bottom: none;
}

.inline-client-result-item:hover {
    background: #f0f4ff;
}

.inline-client-result-empty {
    padding: 10px 13px;
    font-size: 0.85rem;
    color: var(--text-muted);
}

.inline-client-selected {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 5px;
    background: #e0f2fe;
    color: #0369a1;
    font-size: 0.82rem;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 6px;
    cursor: pointer;
}

.inline-client-selected::after {
    content: '×';
    font-size: 0.95rem;
    opacity: 0.7;
}

.inline-client-selected.hidden {
    display: none;
}

/* Pedidos client search — reuse paj pattern for new class names */
.paj-client-search-inp {
    width: 100%;
    border: 1.5px solid #e2e8f0;
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 0.92rem;
    font-family: inherit;
    background: #f8faff;
    transition: border 0.15s;
    box-sizing: border-box;
}

.paj-client-search-inp:focus {
    border-color: var(--blue-accent);
    outline: none;
    background: #fff;
}

.paj-client-results {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1.5px solid #cbd5e1;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    z-index: 900;
    overflow: hidden;
    max-height: 200px;
    overflow-y: auto;
}

.paj-client-results.hidden {
    display: none;
}

.paj-client-selected {
    display: inline-block;
    margin-top: 6px;
    background: #e0f2fe;
    color: #0369a1;
    font-size: 0.82rem;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 6px;
}

.paj-client-selected.hidden {
    display: none;
}

/* ─── PEDIDOS SECTION ─── */
.pedidos-admin-toolbar {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 16px;
}

.pedidos-intro {
    font-size: 0.92rem;
    color: var(--text-light);
    margin-bottom: 16px;
}

.pedidos-type-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 20px;
}

.pedidos-type-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: 12px;
    padding: 20px 14px;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s;
    text-align: center;
}

.pedidos-type-card:hover {
    border-color: var(--blue-accent);
    box-shadow: 0 4px 14px rgba(0, 65, 155, 0.1);
}

.pedidos-type-icon {
    color: var(--blue-accent);
}

.pedidos-type-name {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--text-main);
}

.pedidos-type-desc {
    font-size: 0.75rem;
    color: var(--text-light);
    line-height: 1.4;
}

.pedidos-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--blue-accent);
    background: none;
    border: none;
    cursor: pointer;
    margin-bottom: 14px;
    padding: 0;
}

.pedidos-form-title {
    font-size: 1rem;
    font-weight: 800;
    color: var(--text-main);
    margin-bottom: 14px;
}

.pedidos-meus-titulo {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-light);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 8px;
    margin-top: 20px;
}

.pedidos-empty {
    padding: 28px;
    text-align: center;
    color: var(--text-light);
    font-size: 0.9rem;
    list-style: none;
}

.pedidos-file-input {
    font-size: 0.85rem;
    padding: 8px 0;
}

.pedido-item {
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: 10px;
    padding: 12px 14px;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.pedido-item-mini {
    flex-direction: row;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    padding: 8px 12px;
}

.pedido-item-header {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.pedido-tipo-badge {
    font-size: 0.65rem;
    font-weight: 800;
    padding: 2px 8px;
    border-radius: 5px;
    color: #fff;
    white-space: nowrap;
}

.pedido-author {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text-main);
}

.pedido-client {
    font-size: 0.8rem;
    color: var(--blue-accent);
    font-weight: 600;
}

.pedido-date {
    font-size: 0.75rem;
    color: var(--text-light);
    margin-left: auto;
}

.pedido-status-ok {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 5px;
    background: #dcfce7;
    color: #059669;
}

.pedido-status-pend {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 5px;
    background: #fef9c3;
    color: #a16207;
}

.pedido-extra {
    font-size: 0.82rem;
    color: var(--text-main);
    padding-left: 2px;
}

.pedido-resolved-by {
    font-size: 0.75rem;
    color: var(--text-light);
}

.pedido-actions {
    display: flex;
    justify-content: flex-end;
}

.pedido-resolve-btn {
    font-size: 0.76rem;
    font-weight: 700;
    padding: 5px 12px;
    border-radius: 7px;
    background: var(--navy);
    color: #fff;
    border: none;
    cursor: pointer;
    transition: opacity 0.15s;
}

.pedido-resolve-btn:hover {
    opacity: 0.82;
}

.paj-selected-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    background: #e0f2fe;
    color: #0369a1;
    font-size: 0.82rem;
    font-weight: 700;
    padding: 6px 12px;
    border-radius: 20px;
    cursor: pointer;
}

.paj-selected-tag::after {
    content: ' ×';
    font-size: 1rem;
    opacity: 0.6;
}

/* Nível de urgência */
.paj-nivel-group {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
}

.paj-nivel-opt {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 10px 6px;
    border: 2px solid #e2e8f0;
    border-radius: 10px;
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 700;
    transition: all 0.15s;
    background: #f8faff;
}

.paj-nivel-opt input {
    display: none;
}

.paj-nivel-opt:has(input:checked) {
    border-color: currentColor;
}

.paj-nivel-baixo {
    color: #16a34a;
}

.paj-nivel-baixo:has(input:checked) {
    background: #dcfce7;
}

.paj-nivel-medio {
    color: #d97706;
}

.paj-nivel-medio:has(input:checked) {
    background: #fef9c3;
}

.paj-nivel-alto {
    color: #ea580c;
}

.paj-nivel-alto:has(input:checked) {
    background: #ffedd5;
}

.paj-nivel-critico {
    color: #dc2626;
}

.paj-nivel-critico:has(input:checked) {
    background: #fee2e2;
}

/* Nível badge nos cards admin */
.adm-pedido-nivel {
    font-size: 0.7rem;
    font-weight: 800;
    padding: 2px 9px;
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.adm-nivel-baixo {
    background: #dcfce7;
    color: #166534;
}

.adm-nivel-medio {
    background: #fef9c3;
    color: #92400e;
}

.adm-nivel-alto {
    background: #ffedd5;
    color: #9a3412;
}

.adm-nivel-critico {
    background: #fee2e2;
    color: #991b1b;
}

/* ─── Avenças — grelha de meses na ficha do cliente ────────────────── */
.rec-avencas {
    border-top: 2px solid #e2e8f0;
    background: #f8faff;
    padding: 10px 14px 12px;
}

.rec-avencas-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--blue-accent);
    margin-bottom: 10px;
}

.avenca-nav {
    display: flex;
    align-items: center;
    gap: 4px;
}

.avenca-year-label {
    font-size: 0.75rem;
    font-weight: 800;
    color: var(--blue-accent);
    min-width: 80px;
    text-align: center;
}

.avenca-arrow {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1.5px solid var(--blue-accent);
    background: #fff;
    color: var(--blue-accent);
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.12s, color 0.12s;
    font-weight: 700;
    padding: 0;
}

.avenca-arrow:hover:not(:disabled) {
    background: var(--blue-accent);
    color: #fff;
}

.avenca-arrow-off,
.avenca-arrow:disabled {
    opacity: 0.25;
    cursor: default;
    pointer-events: none;
}

.avenca-divida-total {
    font-size: 0.78rem;
    font-weight: 800;
    color: #dc2626;
    background: #fee2e2;
    padding: 3px 10px;
    border-radius: 12px;
}

.avenca-ok-total {
    font-size: 0.78rem;
    font-weight: 800;
    color: #16a34a;
    background: #dcfce7;
    padding: 3px 10px;
    border-radius: 12px;
}

.avenca-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 5px;
}

.avenca-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    border-radius: 8px;
    padding: 7px 4px;
    cursor: pointer;
    transition: transform 0.12s, opacity 0.12s;
    min-height: 50px;
    text-align: center;
    border: 1.5px solid transparent;
}

.avenca-block:hover {
    transform: scale(1.04);
    opacity: 0.9;
}

.avenca-pago {
    background: #dcfce7;
    border-color: #86efac;
}

.avenca-divida {
    background: #fee2e2;
    border-color: #fca5a5;
}

.avenca-futuro {
    background: #f1f5f9;
    border-color: #e2e8f0;
    cursor: default;
    opacity: 0.5;
}

.avenca-futuro:hover {
    transform: none;
    opacity: 0.5;
}

.avenca-mes {
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: inherit;
}

.avenca-pago .avenca-mes {
    color: #166534;
}

.avenca-divida .avenca-mes {
    color: #991b1b;
}

.avenca-futuro .avenca-mes {
    color: #94a3b8;
}

.avenca-icon {
    font-size: 1rem;
    color: #16a34a;
    line-height: 1;
}

.avenca-valor {
    font-size: 0.68rem;
    font-weight: 800;
    color: #dc2626;
    line-height: 1;
}

/* ─── Assistências na ficha do cliente ─────────────────────────────── */
.rec-assists {
    border-top: 2px solid #e2e8f0;
    background: #f8faff;
}

.rec-assists-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px 8px;
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--blue-accent);
}

.rec-assists-count {
    background: var(--blue-accent);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 800;
    padding: 1px 7px;
    border-radius: 20px;
}

.rec-assist-row {
    padding: 8px 14px;
    border-top: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.rec-assist-top {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.rec-assist-date {
    font-size: 0.73rem;
    color: var(--text-muted);
    font-weight: 600;
}

.rec-assist-nivel {
    font-size: 0.68rem;
    font-weight: 800;
    padding: 1px 7px;
    border-radius: 8px;
    text-transform: uppercase;
}

.rec-nivel-baixo {
    background: #dcfce7;
    color: #166534;
}

.rec-nivel-medio {
    background: #fef9c3;
    color: #92400e;
}

.rec-nivel-alto {
    background: #ffedd5;
    color: #9a3412;
}

.rec-nivel-critico {
    background: #fee2e2;
    color: #991b1b;
}

.rec-assist-resolved {
    font-size: 0.72rem;
    font-weight: 700;
    color: #166534;
    background: #dcfce7;
    padding: 1px 8px;
    border-radius: 8px;
}

.rec-assist-pending {
    font-size: 0.72rem;
    font-weight: 700;
    color: #92400e;
    background: #fef9c3;
    padding: 1px 8px;
    border-radius: 8px;
}

.rec-assist-desc {
    font-size: 0.83rem;
    color: var(--text-main);
    line-height: 1.4;
}

.rec-assist-resp {
    font-size: 0.72rem;
    color: var(--text-muted);
}

/* =====================================================
   BOTÕES DE ESTADO DE EQUIPAMENTOS NO PAINEL DE EVENTO
   ===================================================== */
.evday-eq-clickable {
    cursor: default;
}

/* Segmented control for equipment status */
.evday-eq-status-row {
    display: flex;
    background: #f1f5f9;
    border-radius: 20px;
    padding: 3px;
    gap: 0;
    flex-shrink: 0;
    border: 1.5px solid #e2e8f0;
}

.evday-status-btn {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 4px 9px;
    border-radius: 16px;
    border: none;
    cursor: pointer;
    transition: all 0.18s ease;
    background: transparent;
    color: #94a3b8;
    white-space: nowrap;
    letter-spacing: 0.01em;
    line-height: 1;
}

.evday-status-btn:hover {
    color: #64748b;
}

.evday-status-op.active {
    background: #16a34a;
    color: #fff;
    box-shadow: 0 2px 6px rgba(22, 163, 74, 0.35);
}

.evday-status-maint.active {
    background: #d97706;
    color: #fff;
    box-shadow: 0 2px 6px rgba(217, 119, 6, 0.35);
}


/* ╔══════════════════════════════════════════════════════════════╗
   ║           REDESIGN COMPLETO — CONTACTO DIGITAL               ║
   ╚══════════════════════════════════════════════════════════════╝ */

/* ── Background global mais refinado ── */
body {
    background: #EEF0F4;
}

/* ════════════════════════════════════════════════════════════════
   1. ADMIN DESKTOP — SIDEBAR PERMANENTE
   ════════════════════════════════════════════════════════════════ */
@media (min-width: 1100px) {
    body.is-admin #sidebar-panel {
        transform: translateX(0) !important;
        width: 270px;
        box-shadow: none;
        border-right: 1px solid rgba(255, 255, 255, 0.05);
        background: #03182B;
    }

    body.is-admin #sidebar-overlay {
        display: none !important;
        pointer-events: none !important;
    }

    body.is-admin #app-screen {
        margin-left: 270px;
        transition: margin-left 0.3s ease;
    }

    body.is-admin #hamburger-btn {
        display: none !important;
    }

    body.is-admin .btn-close-sidebar {
        display: none !important;
    }

    body.is-admin .app-body {
        max-width: 1120px;
        padding: 28px 36px 40px;
    }

    body.is-admin .app-header {
        padding: 0 36px;
        height: 62px;
    }

    body.is-admin .app-header h2 {
        font-size: 1.05rem;
    }
}

@media (max-width: 1099px) {
    body.is-admin #sidebar-panel {
        transform: translateX(-100%);
        width: 270px;
    }

    body.is-admin #sidebar-panel.is-open {
        transform: translateX(0);
    }

    body.is-admin #app-screen {
        margin-left: 0;
    }

    body.is-admin #hamburger-btn {
        display: flex !important;
    }
}


/* ════════════════════════════════════════════════════════════════
   2. SIDEBAR — DESIGN PREMIUM
   ════════════════════════════════════════════════════════════════ */
#sidebar-panel {
    background: #03182B;
    width: 270px;
}

/* Brand row */
.sidebar-top {
    padding: 20px 18px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    background: rgba(0, 0, 0, 0.12);
}

.sidebar-brand-row {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    flex: 1;
}

.sidebar-logo {
    width: 38px;
    height: 38px;
    object-fit: contain;
    border-radius: 8px;
    flex-shrink: 0;
}

.sidebar-brand-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 1px;
}

.sidebar-brand-name {
    font-size: 0.88rem;
    font-weight: 700;
    color: #ffffff;
    letter-spacing: -0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sidebar-brand-sub {
    font-size: 0.66rem;
    color: rgba(255, 255, 255, 0.38);
    font-weight: 500;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.btn-close-sidebar {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, 0.45);
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.18s;
    flex-shrink: 0;
}

.btn-close-sidebar:hover {
    background: rgba(255, 255, 255, 0.1);
    color: white;
}

/* Section labels inside nav */
.sidebar-nav-section-label {
    font-size: 0.59rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.28);
    padding: 16px 16px 5px;
    pointer-events: none;
    user-select: none;
}

/* Nav items with icons */
#admin-nav {
    padding: 10px 10px 6px !important;
    gap: 2px !important;
}

#admin-nav .btn-filter {
    display: flex !important;
    align-items: center !important;
    gap: 11px !important;
    padding: 10px 14px !important;
    border-radius: 8px !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    color: rgba(255, 255, 255, 0.58) !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    text-align: left !important;
    justify-content: flex-start !important;
    transition: all 0.18s ease !important;
    width: 100% !important;
    letter-spacing: 0.005em !important;
    position: relative;
}

#admin-nav .btn-filter svg {
    flex-shrink: 0;
    opacity: 0.75;
    transition: opacity 0.18s;
}

#admin-nav .btn-filter:hover {
    color: rgba(255, 255, 255, 0.9) !important;
    background: rgba(255, 255, 255, 0.07) !important;
    transform: none !important;
}

#admin-nav .btn-filter:hover svg {
    opacity: 1;
}

#admin-nav .btn-filter.active {
    color: #E7FF49 !important;
    background: rgba(231, 255, 73, 0.1) !important;
    font-weight: 700 !important;
    border-left: none !important;
    padding-left: 14px !important;
    border-radius: 8px !important;
}

#admin-nav .btn-filter.active svg {
    opacity: 1;
    filter: brightness(1.3);
}

#admin-nav .btn-filter.active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 20%;
    bottom: 20%;
    width: 3px;
    background: #E7FF49;
    border-radius: 0 3px 3px 0;
}

/* User badge at sidebar bottom */
.sidebar-user-badge {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 14px 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    flex-shrink: 0;
    margin-top: auto;
    background: rgba(0, 0, 0, 0.1);
}

.sidebar-user-avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(231, 255, 73, 0.13);
    border: 1.5px solid rgba(231, 255, 73, 0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.88rem;
    font-weight: 800;
    color: #E7FF49;
    flex-shrink: 0;
    letter-spacing: -0.01em;
}

.sidebar-user-info {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.sidebar-user-name {
    font-size: 0.83rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.88);
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sidebar-user-role {
    font-size: 0.63rem;
    color: rgba(255, 255, 255, 0.36);
    font-weight: 500;
    display: block;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* Sidebar bottom (Modo Evento) */
#sidebar-bottom {
    padding: 10px 10px 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    flex-shrink: 0;
}

.modo-evento-btn {
    gap: 10px;
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 0.85rem;
}

/* Ev dates separator */
.sidebar-ev-dates-sep {
    font-size: 0.59rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.28);
    padding: 14px 14px 6px;
}


/* ════════════════════════════════════════════════════════════════
   3. HEADER — DESIGN REFINADO
   ════════════════════════════════════════════════════════════════ */
.app-header {
    background: var(--navy);
    padding: 0 22px;
    height: 58px;
    display: flex;
    align-items: center;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05), 0 2px 12px rgba(0, 0, 0, 0.22);
}

.app-header::after {
    height: 1px;
    background: linear-gradient(90deg, var(--blue-accent) 0%, rgba(0, 65, 155, 0.4) 50%, transparent 100%);
    opacity: 0.7;
}

.header-left {
    gap: 14px;
}

.btn-hamburger {
    width: 36px;
    height: 36px;
    gap: 4px;
    padding: 7px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 7px;
}

.btn-hamburger span {
    height: 1.8px;
}

.app-header h2 {
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.015em;
}

#user-info {
    font-size: 0.72rem;
    color: rgba(255, 255, 255, 0.4);
    font-weight: 500;
}

.btn-logout {
    font-size: 0.77rem;
    padding: 7px 14px;
    border-radius: 6px;
    font-weight: 600;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.11);
}

.btn-logout:hover {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.2);
}


/* ════════════════════════════════════════════════════════════════
   4. CONTENT BODY — MELHOR ESPAÇAMENTO
   ════════════════════════════════════════════════════════════════ */
.app-body {
    max-width: 940px;
    padding: 24px 24px 40px;
}

@media (max-width: 760px) {
    .app-body {
        padding: 16px 15px 80px;
    }
}


/* ════════════════════════════════════════════════════════════════
   5. MOBILE BOTTOM NAV — DESIGN PREMIUM
   ════════════════════════════════════════════════════════════════ */
#mobile-bottom-nav,
#evento-staff-nav,
#admin-mobile-nav {
    background: #ffffff;
    border-top: 1px solid #e5e9f0;
    box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.07);
    height: 64px;
    padding: 0;
    z-index: 90;
}

/* Admin mobile nav — 8 secções, scroll horizontal */
#admin-mobile-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    display: none;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

#admin-mobile-nav::-webkit-scrollbar {
    display: none;
}

#admin-mobile-nav:not(.hidden) {
    display: flex;
}

#admin-mobile-nav .mob-nav-btn {
    flex: 0 0 auto;
    min-width: 68px;
    width: 68px;
    padding: 8px 2px 6px;
    font-size: 0.56rem;
}

#admin-mobile-nav .mob-nav-btn svg {
    width: 20px;
    height: 20px;
}

.mob-nav-btn {
    color: #A0AEC0;
    font-size: 0.65rem;
    font-weight: 600;
    padding: 8px 4px 6px;
    gap: 4px;
    border-radius: 0;
    letter-spacing: 0.02em;
    text-transform: none;
    position: relative;
    transition: color 0.18s ease;
}

.mob-nav-btn svg {
    width: 22px;
    height: 22px;
    stroke-width: 1.8;
    transition: transform 0.15s ease;
}

.mob-nav-btn:hover {
    color: var(--blue-accent);
    background: transparent;
}

.mob-nav-btn:hover svg {
    transform: translateY(-1px);
}

.mob-nav-btn.active {
    color: var(--blue-accent);
    font-weight: 700;
}

.mob-nav-btn.active::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 50%;
    transform: translateX(-50%);
    width: 28px;
    height: 2px;
    background: var(--blue-accent);
    border-radius: 2px 2px 0 0;
}

.mob-nav-btn.active svg {
    stroke-width: 2.2;
}


/* ════════════════════════════════════════════════════════════════
   6. CARDS E PAINÉIS — SISTEMA MAIS REFINADO
   ════════════════════════════════════════════════════════════════ */
.task-list-container,
.task-form-container,
.client-form-container,
.equipment-form-container {
    border-radius: 12px;
    border: 1px solid #E4E8EF;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06), 0 4px 16px rgba(0, 0, 0, 0.04);
}

/* Section headings */
.section-heading {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--text-main);
    letter-spacing: -0.02em;
    margin-bottom: 20px;
    padding-bottom: 0;
    border-bottom: none;
}

.section-heading::before {
    display: none;
}

/* H2 inside app sections */
#dashboard-section h2,
#tasks-section h2,
#clients-section h2,
#equipments-section h2,
#calendar-section h2,
#events-section h2,
#billing-section h2,
#acessos-section h2 {
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--text-main);
    margin-bottom: 22px;
    padding-bottom: 0;
    border-bottom: none;
}

#dashboard-section h2::before,
#tasks-section h2::before,
#clients-section h2::before,
#equipments-section h2::before,
#calendar-section h2::before,
#events-section h2::before,
#billing-section h2::before,
#acessos-section h2::before {
    display: none;
}

/* Task items */
.task-item {
    padding: 14px 18px;
    border-left-width: 3px;
    transition: background 0.12s ease, border-left-color 0.12s ease;
}

.task-item:hover {
    background: #F7F9FF;
    border-left-color: var(--blue-accent);
}

.task-title {
    font-size: 0.92rem;
}

/* Better filter pills for equipment */
#eq-filters {
    gap: 6px;
    padding-bottom: 12px;
    border-bottom: 1px solid #E8EBF0;
}

.btn-filter {
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
    padding: 7px 16px;
    border: 1.5px solid #DDE2EC;
    background: #fff;
    color: var(--text-muted);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.btn-filter:hover {
    background: #EEF3FF;
    border-color: #C0D0F5;
    color: var(--blue-accent);
    transform: none;
}

.btn-filter.active {
    background: var(--blue-accent);
    color: #fff;
    border-color: var(--blue-accent);
    box-shadow: 0 2px 8px rgba(0, 65, 155, 0.25);
}


/* ════════════════════════════════════════════════════════════════
   7. FORM ELEMENTS — MAIS POLIDOS
   ════════════════════════════════════════════════════════════════ */
input[type="email"],
input[type="password"],
input[type="text"],
input[type="tel"],
input[type="number"],
textarea,
select {
    border: 1.5px solid #DDE2EC;
    border-radius: 8px;
    padding: 10px 13px;
    font-size: 0.9rem;
    background: #FAFBFD;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}

input:focus,
textarea:focus,
select:focus {
    background: #fff;
    border-color: #6699DD;
    box-shadow: 0 0 0 3px rgba(0, 65, 155, 0.08);
}

label {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    color: #6B7280;
    margin-bottom: 5px;
}


/* ════════════════════════════════════════════════════════════════
   8. DASHBOARD CARDS — STATS PREMIUM
   ════════════════════════════════════════════════════════════════ */
.dash-kpi-card {
    border-radius: 12px;
    border: 1px solid #E4E8EF;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.dash-kpi-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.09);
}

/* Agenda items */
.dash-agenda-item {
    border-radius: 8px;
    transition: background 0.12s;
}

.dash-agenda-item:hover {
    background: #F5F7FF;
}

/* Client cards */
.client-card {
    border-radius: 12px;
    border: 1px solid #E4E8EF;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.client-card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.09);
    transform: translateY(-1px);
}

/* Equipment cards */
.eq-card {
    border-radius: 12px;
    border: 1px solid #E4E8EF;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.eq-card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.09);
    transform: translateY(-1px);
}


/* ════════════════════════════════════════════════════════════════
   9. BUTTONS — REFINAMENTOS
   ════════════════════════════════════════════════════════════════ */
.btn-primary {
    border-radius: 10px;
    padding: 13px 20px;
    font-size: 0.93rem;
    letter-spacing: 0.005em;
}

.btn-accent {
    border-radius: 10px;
    padding: 13px 20px;
    font-size: 0.93rem;
}

.btn-secondary {
    border-radius: 8px;
    border: 1.5px solid #DDE2EC;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.btn-secondary:hover {
    background: #F4F6FA;
    border-color: #B8C4DC;
    transform: none;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}


/* ════════════════════════════════════════════════════════════════
   10. EVENT STAFF MOBILE — REFINAMENTOS
   ════════════════════════════════════════════════════════════════ */
.evstaff-hero2 {
    border-radius: 14px;
    overflow: hidden;
}

.evstaff-wrap2 {
    padding-bottom: 76px;
}


/* ════════════════════════════════════════════════════════════════
   11. LOGIN SCREEN — REFINAMENTOS
   ════════════════════════════════════════════════════════════════ */
.login-card {
    border-radius: 18px;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.06);
}


/* ════════════════════════════════════════════════════════════════
   12. SCROLLBAR GLOBAL REFINADA
   ════════════════════════════════════════════════════════════════ */
::-webkit-scrollbar {
    width: 5px;
    height: 5px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: #C8D0DF;
    border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
    background: #A0AABF;
}


/* ════════════════════════════════════════════════════════════════
   13. TYPOGRAPHY — REFINAMENTOS GLOBAIS
   ════════════════════════════════════════════════════════════════ */
h3 {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    color: #8A96A8;
    margin-bottom: 12px;
}

/* Completion note display */
.completion-note-display {
    border-radius: 6px;
    border-left: 3px solid #10B981;
}

/* Admin desktop — wider content max width */
@media (min-width: 1400px) {
    body.is-admin .app-body {
        max-width: 1260px;
    }
}



/* ╔══════════════════════════════════════════════════════════════════╗
   ║     UNIFICAÇÃO VISUAL — ESTILOS PREMIUM PARA TODA A APP          ║
   ╚══════════════════════════════════════════════════════════════════╝ */

/* ── Variáveis refinadas (overrides) ── */
:root {
    --shadow-card: 0 1px 4px rgba(0, 0, 0, 0.06), 0 4px 16px rgba(0, 0, 0, 0.04);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.07), 0 2px 8px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.09), 0 1px 4px rgba(0, 0, 0, 0.05);
    --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.06);
    --border: #E2E6EE;
    --border-light: #EDF0F5;
    --r: 12px;
    --r-sm: 8px;
    --r-lg: 16px;
}


/* ════════════════════════════════════════════════════════════════════
   ADMIN DASHBOARD — REFINAMENTOS
   ════════════════════════════════════════════════════════════════════ */

/* Top banner do admin dashboard */
.adm-topbar {
    border-radius: 14px;
    padding: 20px 24px;
    box-shadow: 0 6px 24px rgba(3, 24, 43, 0.22);
    border: none;
}

.adm-topbar-brand {
    font-size: 0.7rem;
    opacity: 0.45;
}

.adm-topbar-date {
    font-size: 1.2rem;
    font-weight: 800;
    letter-spacing: -0.025em;
    margin-top: 5px;
}

/* KPI strip do admin */
.adm-kpi-row {
    gap: 12px;
}

.adm-kpi {
    border-radius: 12px;
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-card);
    padding: 16px 14px 12px;
    background: #fff;
}

.adm-kpi[data-nav]:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
    border-color: #cdd4e6;
}

.adm-kpi-label {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    color: #8A96A8;
    margin-bottom: 6px;
}

.adm-kpi-val {
    font-size: 2.1rem;
    font-weight: 900;
    letter-spacing: -0.04em;
    color: var(--text-main);
}

/* Main grid */
.adm-main-grid {
    gap: 16px;
}

.adm-col-left,
.adm-col-right {
    gap: 16px;
}

/* Admin cards */
.adm-card {
    border-radius: 12px;
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-card);
    background: #fff;
}

.adm-card-head {
    padding: 14px 18px 12px;
    border-bottom: 1px solid var(--border-light);
    background: #FAFBFD;
}

.adm-card-title {
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #7B8698;
}

.adm-card-meta {
    font-size: 0.67rem;
    font-weight: 700;
    background: #EEF2FA;
    border: 1px solid #DDE4F5;
    color: var(--blue-accent);
    padding: 3px 9px;
    border-radius: 12px;
}

/* Next event card */
.adm-next-ev-card {
    border-radius: 0 0 12px 12px;
    overflow: hidden;
}

.adm-nev-date {
    background: var(--navy);
    min-width: 76px;
}

.adm-nev-day {
    font-size: 2.4rem;
}

.adm-nev-month {
    font-size: 0.6rem;
    opacity: 0.55;
}

.adm-nev-name {
    font-size: 1rem;
    font-weight: 800;
}

/* Task rows in admin dashboard */
.adm-task-row {
    padding: 12px 18px;
    border-bottom: 1px solid var(--border-light);
    transition: background 0.12s;
}

.adm-task-row:hover {
    background: #F7F9FF;
}

.adm-task-row:last-child {
    border-bottom: none;
}

/* Team agenda rows */
.adm-agenda-row {
    padding: 10px 18px;
    border-bottom: 1px solid var(--border-light);
    transition: background 0.12s;
}

.adm-agenda-row:last-child {
    border-bottom: none;
}

.adm-agenda-row:hover {
    background: #F7F9FF;
}

/* Staff list rows */
.adm-staff-row {
    padding: 12px 18px;
    border-bottom: 1px solid var(--border-light);
    display: flex;
    align-items: center;
    gap: 12px;
    transition: background 0.12s;
}

.adm-staff-row:last-child {
    border-bottom: none;
}

/* KPI icon layout */
.adm-kpi-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 6px;
    margin-bottom: 8px;
}

.adm-kpi-top .adm-kpi-label {
    margin-bottom: 0;
}

.adm-kpi-ico {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    opacity: 0.85;
}

.adm-kpi-ico svg {
    width: 15px;
    height: 15px;
}

.adm-kpi-ico-1 {
    background: rgba(0, 65, 155, 0.1);
    color: #00419B;
}

.adm-kpi-ico-2 {
    background: rgba(124, 58, 237, 0.1);
    color: #7c3aed;
}

.adm-kpi-ico-3 {
    background: rgba(5, 150, 105, 0.1);
    color: #059669;
}

.adm-kpi-ico-4 {
    background: rgba(217, 119, 6, 0.1);
    color: #d97706;
}

.adm-kpi-ico-5 {
    background: rgba(8, 145, 178, 0.1);
    color: #0891b2;
}

.adm-kpi-ico-6 {
    background: rgba(231, 255, 73, 0.18);
    color: #9aaa1a;
}

/* Equipa card */
.adm-team-list {
    padding: 4px 0;
}

.adm-team-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 18px;
    border-bottom: 1px solid var(--border-light);
    transition: background 0.12s;
}

.adm-team-row:hover {
    background: #F7F9FF;
}

.adm-team-row:last-child {
    border-bottom: none;
}

.adm-team-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #EEF2FA;
    border: 1.5px solid #DDE4F5;
    color: var(--blue-accent);
    font-size: 0.75rem;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.adm-team-info {
    flex: 1;
    min-width: 0;
}

.adm-team-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 5px;
}

.adm-team-name {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-main);
}

.adm-team-stats {
    display: flex;
    align-items: center;
    gap: 5px;
}

.adm-team-pending {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--text-muted);
}

.adm-team-overdue {
    font-size: 0.65rem;
    font-weight: 700;
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca;
    padding: 1px 6px;
    border-radius: 6px;
}

.adm-team-done {
    font-size: 0.65rem;
    font-weight: 700;
    background: #f0fdf4;
    color: #059669;
    border: 1px solid #bbf7d0;
    padding: 1px 6px;
    border-radius: 6px;
}

.adm-team-bar-wrap {
    height: 4px;
    background: #F0F2F7;
    border-radius: 3px;
    overflow: hidden;
}

.adm-team-bar {
    height: 100%;
    border-radius: 3px;
    min-width: 3px;
    transition: width 0.5s ease;
}

/* Equipment location bar in admin dashboard */
.adm-eq-loc-row {
    display: grid;
    grid-template-columns: 80px 1fr 28px;
    align-items: center;
    gap: 10px;
    padding: 7px 18px;
    border-bottom: 1px solid var(--border-light);
    font-size: 0.77rem;
}

.adm-eq-loc-row:last-child {
    border-bottom: none;
}

.adm-eq-loc-row span {
    color: var(--text-muted);
    font-size: 0.73rem;
    font-weight: 500;
}

.adm-eq-loc-row strong {
    font-size: 0.8rem;
    font-weight: 800;
    color: var(--text-main);
    text-align: right;
}

.adm-eq-loc-bar-wrap {
    height: 5px;
    background: #F0F2F7;
    border-radius: 3px;
    overflow: hidden;
}

.adm-eq-loc-bar {
    height: 100%;
    border-radius: 3px;
    min-width: 3px;
    transition: width 0.4s ease;
}


/* ════════════════════════════════════════════════════════════════════
   EVENTO DASHBOARD (modo evento admin)
   ════════════════════════════════════════════════════════════════════ */

.ev-dash-wrap {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.ev-dash-header {
    background: linear-gradient(135deg, var(--navy) 60%, #0a3d6b);
    border-radius: 14px;
    padding: 20px 24px;
    color: white;
    box-shadow: 0 6px 24px rgba(3, 24, 43, 0.22);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.ev-dash-greeting {
    font-size: 1.2rem;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.ev-dash-date {
    font-size: 0.82rem;
    color: rgba(255, 255, 255, 0.55);
    margin-top: 4px;
}

.ev-dash-mode-badge {
    background: rgba(231, 255, 73, 0.12);
    border: 1px solid rgba(231, 255, 73, 0.3);
    color: #E7FF49;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 7px 13px;
    border-radius: 20px;
    white-space: nowrap;
}

.ev-dash-kpis {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}

.ev-dash-kpi {
    background: #fff;
    border-radius: 12px;
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-card);
    padding: 16px 14px 13px;
    text-align: center;
}

.ev-dash-kpi-warn {
    background: #fffbeb;
    border-color: #fde68a;
}

.ev-dash-kpi-val {
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: -0.04em;
    color: var(--text-main);
    line-height: 1;
    margin-bottom: 6px;
}

.ev-dash-kpi-warn .ev-dash-kpi-val {
    color: #d97706;
}

.ev-dash-kpi-lbl {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #8A96A8;
}

.ev-dash-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    align-items: start;
}

.ev-dash-card {
    background: #fff;
    border-radius: 12px;
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-card);
    overflow: hidden;
}

.ev-dash-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 18px 11px;
    border-bottom: 1px solid var(--border-light);
    background: #FAFBFD;
}

.ev-dash-card-title {
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #7B8698;
}

.ev-dash-card-count {
    font-size: 0.72rem;
    font-weight: 800;
    background: #EEF2FA;
    color: var(--blue-accent);
    padding: 2px 9px;
    border-radius: 12px;
    border: 1px solid #DDE4F5;
}

/* Event cards in list */
.ev-dash-ev-card {
    display: flex;
    gap: 14px;
    padding: 12px 18px;
    border-bottom: 1px solid var(--border-light);
    transition: background 0.12s;
    cursor: pointer;
}

.ev-dash-ev-card:last-child {
    border-bottom: none;
}

.ev-dash-ev-card:hover {
    background: #F7F9FF;
}

.ev-dash-ev-date {
    background: var(--navy);
    color: white;
    border-radius: 8px;
    padding: 6px 10px;
    text-align: center;
    min-width: 44px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.ev-dash-ev-day {
    font-size: 1.4rem;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.03em;
}

.ev-dash-ev-mon {
    font-size: 0.58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    opacity: 0.6;
}

.ev-dash-ev-info {
    flex: 1;
    min-width: 0;
}

.ev-dash-ev-name {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ev-dash-ev-co {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-bottom: 3px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.ev-dash-ev-loc {
    font-size: 0.73rem;
    color: var(--text-muted);
    margin-bottom: 4px;
}

.ev-dash-ev-meta {
    display: flex;
    align-items: center;
    gap: 6px;
}

.ev-dash-chip {
    font-size: 0.68rem;
    font-weight: 600;
    background: #EEF2FA;
    color: var(--blue-accent);
    padding: 2px 8px;
    border-radius: 12px;
}

.ev-dash-badge {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 12px;
}

.ev-dash-today {
    background: #dcfce7;
    color: #166534;
}

.ev-dash-tomorrow {
    background: #fef9c3;
    color: #854d0e;
}

.ev-dash-soon {
    background: #EEF2FA;
    color: var(--blue-accent);
}

.ev-dash-empty {
    padding: 20px 18px;
    font-size: 0.85rem;
    color: var(--text-muted);
    text-align: center;
}

/* Equipment rows in event dash */
.ev-dash-eq-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 18px;
    border-bottom: 1px solid var(--border-light);
    font-size: 0.82rem;
}

.ev-dash-eq-row:last-child {
    border-bottom: none;
}

.ev-dash-eq-id {
    font-weight: 800;
    color: var(--navy);
    min-width: 40px;
    font-size: 0.75rem;
}

.ev-dash-eq-type {
    flex: 1;
    color: var(--text-main);
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ev-dash-eq-ev {
    font-size: 0.73rem;
    color: var(--text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 120px;
}

.ev-dash-eq-status {
    font-size: 0.73rem;
    font-weight: 700;
    white-space: nowrap;
}


/* ════════════════════════════════════════════════════════════════════
   MOBILE USER DASHBOARD — REFINAMENTOS
   ════════════════════════════════════════════════════════════════════ */

.mdb-wrap {
    gap: 14px;
}

/* Hero banner */
.mdb-hero {
    border-radius: 16px;
    padding: 20px 18px;
    background: linear-gradient(135deg, var(--navy) 0%, #104070 100%);
    box-shadow: 0 6px 24px rgba(3, 24, 43, 0.2);
}

.mdb-hero-greeting {
    font-size: 1.1rem;
    font-weight: 600;
}

.mdb-hero-avatar {
    width: 46px;
    height: 46px;
    background: rgba(231, 255, 73, 0.18);
    border: 2px solid rgba(231, 255, 73, 0.35);
    color: #E7FF49;
    font-size: 1.1rem;
    border-radius: 50%;
}

/* KPI tiles */
.mdb-kpi-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}

.mdb-kpi {
    border-radius: 12px;
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-card);
    padding: 14px 10px 12px;
    text-align: center;
    background: #fff;
}

.mdb-kpi-val {
    font-size: 1.7rem;
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1;
    margin-bottom: 4px;
}

.mdb-kpi-lbl {
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #8A96A8;
}

.mdb-kpi-amber {
    border-top: 3px solid #f59e0b;
}

.mdb-kpi-amber .mdb-kpi-val {
    color: #d97706;
}

.mdb-kpi-green {
    border-top: 3px solid #10b981;
}

.mdb-kpi-green .mdb-kpi-val {
    color: #059669;
}

.mdb-kpi-folga {
    border-top: 3px solid #8b5cf6;
}

.mdb-kpi-folga .mdb-kpi-val {
    color: #7c3aed;
}

.mdb-kpi-navy {
    border-top: 3px solid var(--blue-accent);
}

.mdb-kpi-navy .mdb-kpi-val {
    color: var(--blue-accent);
}

/* Status bar */
.mdb-status-bar {
    border-radius: 10px;
    padding: 11px 14px;
    font-size: 0.84rem;
    font-weight: 600;
}

.mdb-status-ok {
    background: #ECFDF5;
    color: #065f46;
    border: 1px solid #A7F3D0;
}

.mdb-status-warn {
    background: #FFFBEB;
    color: #92400e;
    border: 1px solid #FDE68A;
}

.mdb-status-danger {
    background: #FEF2F2;
    color: #991b1b;
    border: 1px solid #FECACA;
}

/* Progress card */
.mdb-progress-card {
    border-radius: 12px;
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-card);
    padding: 14px 16px;
}

.mdb-progress-bar-bg {
    height: 8px;
    border-radius: 10px;
    background: #E8EEF8;
}

/* Cards (event, tasks, agenda) */
.mdb-card {
    border-radius: 12px;
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-card);
}

.mdb-card-head {
    border-bottom: 1px solid var(--border-light);
    background: #FAFBFD;
    padding: 12px 16px 10px;
    border-radius: 12px 12px 0 0;
}

.mdb-card-title {
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #7B8698;
}

/* Event detail in user dash */
.mdb-card-event .mdb-ev-detail {
    display: flex;
    gap: 14px;
    padding: 14px 16px;
    align-items: flex-start;
}

.mdb-ev-date-col {
    background: var(--navy);
    color: white;
    border-radius: 8px;
    padding: 8px 12px;
    text-align: center;
    min-width: 48px;
    flex-shrink: 0;
}

.mdb-ev-day {
    font-size: 1.5rem;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.03em;
}

.mdb-ev-mon {
    font-size: 0.6rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    opacity: 0.55;
    margin-top: 2px;
}

.mdb-ev-name {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 3px;
}

.mdb-ev-co {
    font-size: 0.78rem;
    color: var(--text-muted);
    margin-bottom: 2px;
}

.mdb-ev-loc {
    font-size: 0.75rem;
    color: var(--text-muted);
}

.mdb-ev-countdown {
    font-size: 0.72rem;
    font-weight: 700;
    padding: 3px 9px;
    border-radius: 12px;
}

.mdb-ev-badge-urgent {
    background: #FEE2E2;
    color: #991B1B;
}

.mdb-ev-badge-soon {
    background: #FFFBEB;
    color: #92400E;
}

.mdb-ev-badge-normal {
    background: #EEF2FA;
    color: var(--blue-accent);
}

/* Task rows */
.mdb-task-row {
    border-bottom: 1px solid var(--border-light);
    padding: 13px 16px;
}

.mdb-task-row:last-child {
    border-bottom: none;
}

.mdb-task-row:hover {
    background: #F7F9FF;
}

.mdb-task-title {
    font-size: 0.9rem;
    font-weight: 600;
}

/* Agenda rows */
.mdb-agenda-row {
    padding: 11px 16px;
    border-bottom: 1px solid var(--border-light);
    display: flex;
    align-items: center;
    gap: 12px;
    transition: background 0.12s;
}

.mdb-agenda-row:last-child {
    border-bottom: none;
}

.mdb-agenda-row:hover {
    background: #F7F9FF;
}

.mdb-agenda-date {
    text-align: center;
    min-width: 36px;
}

.mdb-agenda-day {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--text-main);
    display: block;
    line-height: 1;
}

.mdb-agenda-mon {
    font-size: 0.62rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--text-muted);
    display: block;
}

.mdb-agenda-stripe {
    width: 3px;
    height: 32px;
    border-radius: 2px;
    background: var(--row-color, var(--blue-accent));
    flex-shrink: 0;
    opacity: 0.8;
}

.mdb-agenda-title {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--text-main);
}

.mdb-agenda-type {
    font-size: 0.7rem;
    font-weight: 700;
    margin-top: 1px;
}

.mdb-agenda-today-dot {
    display: block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--blue-accent);
    margin: 2px auto 0;
}

/* Quick action buttons */
.mdb-quick-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.mdb-quick-btn {
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: 12px;
    padding: 14px 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--navy);
    box-shadow: var(--shadow-xs);
    cursor: pointer;
    transition: all 0.15s;
    font-family: inherit;
}

.mdb-quick-btn:hover {
    background: #EEF3FF;
    border-color: #B8CFF5;
    color: var(--blue-accent);
    transform: translateY(-2px);
    box-shadow: var(--shadow-sm);
}

.mdb-quick-btn svg {
    color: var(--blue-accent);
}


/* ════════════════════════════════════════════════════════════════════
   CLIENTS (rec-card) — REFINAMENTOS
   ════════════════════════════════════════════════════════════════════ */

.rec-card {
    border-radius: 12px;
    border: 1px solid var(--border-light);
    border-top: 3px solid var(--border-light);
    box-shadow: var(--shadow-card);
    margin-bottom: 14px;
}

.rec-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-1px);
}

.rec-card-top-rest {
    border-top-color: #f97316;
}

.rec-card-top-ev {
    border-top-color: var(--blue-accent);
}

.rec-card-top-tech {
    border-top-color: #8b5cf6;
}

.rec-card-top-def {
    border-top-color: var(--navy);
}

.rec-card-head {
    background: #FAFBFD;
    border-bottom: 1px solid var(--border-light);
    padding: 14px 18px 12px;
    border-radius: 9px 9px 0 0;
}

.rec-card-name {
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: -0.015em;
}

.rec-badge {
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    padding: 3px 9px;
    border-radius: 12px;
    text-transform: uppercase;
    flex-shrink: 0;
}

.rec-badge-warn {
    background: #FFF7ED;
    color: #c2410c;
    border: 1px solid #fed7aa;
}

.rec-badge-info {
    background: #EEF2FA;
    color: var(--blue-accent);
    border: 1px solid #C7D9F5;
}

.rec-badge-navy {
    background: #EEF0F8;
    color: var(--navy);
    border: 1px solid #CBD5E8;
}

.rec-card-body {
    padding: 14px 18px;
    gap: 8px;
}

.rec-field {
    font-size: 0.85rem;
}

.rec-field-lbl {
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    color: #9CA3AF;
    width: 80px;
}

.rec-field-block {
    border-top: 1px solid var(--border-light);
    padding-top: 10px;
    margin-top: 4px;
}

.rec-eq-row {
    background: #F4F6FA;
    border-radius: 8px;
    padding: 5px 10px;
}

.rec-field-price {
    font-size: 1rem;
    font-weight: 800;
    color: var(--navy);
    background: linear-gradient(90deg, rgba(0, 65, 155, 0.06), transparent);
    padding: 10px 18px;
    margin: 0 -18px;
    border-top: 1px solid var(--border-light);
}

/* Avenças grid */
.rec-avencas {
    padding: 14px 18px;
    border-top: 1px solid var(--border-light);
}

.rec-avencas-head {
    margin-bottom: 10px;
}

.avenca-nav {
    gap: 10px;
}

.avenca-year-label {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-main);
}

.avenca-arrow {
    width: 26px;
    height: 26px;
    border-radius: 6px;
    border: 1px solid var(--border);
    background: #fff;
    color: var(--text-muted);
    font-size: 1rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s;
}

.avenca-arrow:hover {
    background: #EEF3FF;
    border-color: #C0D0F5;
    color: var(--blue-accent);
}

.avenca-block {
    border-radius: 7px;
}

.avenca-pago {
    background: #ECFDF5;
    border: 1px solid #A7F3D0;
}

.avenca-divida {
    background: #FEF2F2;
    border: 1px solid #FECACA;
}

.avenca-futuro {
    background: #F4F6FA;
    border: 1px solid var(--border-light);
}

.avenca-divida-total {
    background: #FEF2F2;
    color: #991b1b;
    border: 1px solid #FECACA;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 3px 9px;
    border-radius: 10px;
}

.avenca-ok-total {
    background: #ECFDF5;
    color: #065f46;
    border: 1px solid #A7F3D0;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 3px 9px;
    border-radius: 10px;
}


/* ════════════════════════════════════════════════════════════════════
   EQUIPMENT CARDS — REFINAMENTOS
   ════════════════════════════════════════════════════════════════════ */

.eq-card {
    border-radius: 12px;
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-card);
    background: #fff;
    margin-bottom: 12px;
    transition: box-shadow 0.15s, transform 0.15s;
}

.eq-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.eq-card-head {
    padding: 14px 18px 12px;
    border-bottom: 1px solid var(--border-light);
    background: #FAFBFD;
    border-radius: 12px 12px 0 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.eq-card-id {
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--blue-accent);
    background: #EEF2FA;
    border: 1px solid #C7D9F5;
    padding: 2px 8px;
    border-radius: 8px;
}

.eq-card-type {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--text-main);
}

.eq-card-body {
    padding: 12px 18px;
}


/* ════════════════════════════════════════════════════════════════════
   CALENDAR SECTION — REFINAMENTOS
   ════════════════════════════════════════════════════════════════════ */

.cal-grid {
    background: #fff;
    border-radius: 12px;
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-card);
    overflow: hidden;
}

.cal-header {
    background: var(--navy);
    color: white;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.cal-title {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.cal-nav-btn {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s;
}

.cal-nav-btn:hover {
    background: rgba(255, 255, 255, 0.2);
}

.cal-day-header {
    background: #F4F6FA;
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #8A96A8;
    padding: 8px 0;
    text-align: center;
    border-bottom: 1px solid var(--border-light);
}

.cal-day-cell {
    min-height: 56px;
    padding: 6px 8px;
    border: 1px solid var(--border-light);
    font-size: 0.8rem;
    cursor: pointer;
    transition: background 0.12s;
}

.cal-day-cell:hover {
    background: #F0F4FF;
}

.cal-day-today {
    background: #EEF2FF;
    font-weight: 800;
    color: var(--blue-accent);
}

.cal-day-num {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 2px;
}


/* ════════════════════════════════════════════════════════════════════
   EVENTS SECTION — REFINAMENTOS
   ════════════════════════════════════════════════════════════════════ */

.ev-company-card {
    background: #fff;
    border-radius: 12px;
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-card);
    padding: 16px 18px;
    margin-bottom: 12px;
    cursor: pointer;
    transition: box-shadow 0.15s, transform 0.15s;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.ev-company-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

/* Event day panel */
.evday-panel {
    background: #fff;
    border-radius: 12px;
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-card);
    overflow: hidden;
}

.evday-header {
    background: linear-gradient(135deg, var(--navy) 60%, #0a3d6b);
    color: white;
    padding: 18px 22px;
}


/* ════════════════════════════════════════════════════════════════════
   MODAIS — DESIGN PREMIUM CONSISTENTE
   ════════════════════════════════════════════════════════════════════ */

/* Overlay geral de todos os modais */
.modal-overlay,
#ev-assist-modal-overlay,
#ev-date-modal-overlay,
#cal-modal-overlay,
.cn-overlay,
#pedido-ajuda-overlay {
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    background: rgba(0, 0, 0, 0.45) !important;
}

/* Modal content box */
.modal-box,
.modal-content,
.ev-modal-box {
    border-radius: 16px !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.22), 0 6px 16px rgba(0, 0, 0, 0.1) !important;
    overflow: hidden;
}

/* Modal header */
.modal-header,
.ev-modal-header {
    background: var(--navy) !important;
    color: white !important;
    padding: 18px 22px !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.modal-close-btn,
.ev-modal-close {
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 6px !important;
    color: rgba(255, 255, 255, 0.8) !important;
    width: 30px !important;
    height: 30px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer;
    transition: background 0.15s;
}

.modal-close-btn:hover,
.ev-modal-close:hover {
    background: rgba(255, 255, 255, 0.2) !important;
    color: white !important;
}

/* Modal body */
.modal-body,
.ev-modal-body {
    padding: 22px !important;
}

/* Completion note modal */
.cn-modal {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.22);
}

.cn-modal-head {
    background: var(--navy);
    color: white;
    padding: 16px 22px;
    font-weight: 700;
}

.cn-modal-body {
    padding: 20px 22px;
}


/* ════════════════════════════════════════════════════════════════════
   ACESSOS — REFINAMENTOS
   ════════════════════════════════════════════════════════════════════ */

.acesso-card,
.user-card {
    background: #fff;
    border-radius: 12px;
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-card);
    padding: 16px 18px;
    margin-bottom: 12px;
    transition: box-shadow 0.15s;
}

.acesso-card:hover,
.user-card:hover {
    box-shadow: var(--shadow-md);
}


/* ════════════════════════════════════════════════════════════════════
   BILLING — REFINAMENTOS
   ════════════════════════════════════════════════════════════════════ */

.billing-card,
.fatura-card {
    background: #fff;
    border-radius: 12px;
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-card);
    overflow: hidden;
    margin-bottom: 12px;
}

.billing-card-head,
.fatura-header {
    background: #FAFBFD;
    border-bottom: 1px solid var(--border-light);
    padding: 14px 18px 12px;
}


/* ════════════════════════════════════════════════════════════════════
   EMPTY STATES — DESIGN CONSISTENTE
   ════════════════════════════════════════════════════════════════════ */

.empty-state {
    text-align: center;
    padding: 40px 20px;
    color: var(--text-muted);
    font-size: 0.88rem;
    font-weight: 500;
    line-height: 1.6;
    background: #FAFBFD;
    border-radius: 12px;
    border: 1px dashed #C8D0DC;
}

.mdb-empty-msg {
    padding: 20px 16px;
    text-align: center;
    font-size: 0.84rem;
    color: var(--text-muted);
    font-weight: 500;
}

.mdb-more-row {
    text-align: center;
    padding: 10px 16px;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--blue-accent);
    border-top: 1px solid var(--border-light);
    cursor: pointer;
}

.mdb-more-row:hover {
    background: #F0F4FF;
}


/* ════════════════════════════════════════════════════════════════════
   SEARCH INPUTS — DESIGN CONSISTENTE
   ════════════════════════════════════════════════════════════════════ */

.search-input-wrap {
    position: relative;
    margin-bottom: 14px;
}

.search-input-wrap input {
    padding-left: 38px;
    border-radius: 10px;
    background: #fff;
    border: 1.5px solid var(--border);
}

.search-input-wrap svg {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-light);
    pointer-events: none;
}


/* ════════════════════════════════════════════════════════════════════
   TABLETS — AJUSTE LAYOUT ADMIN
   ════════════════════════════════════════════════════════════════════ */

@media (max-width: 900px) {
    .adm-kpi-row {
        grid-template-columns: repeat(3, 1fr);
    }

    .adm-main-grid {
        grid-template-columns: 1fr;
    }

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

    .ev-dash-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .adm-kpi-row {
        grid-template-columns: repeat(2, 1fr);
    }

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

    .mdb-quick-row {
        grid-template-columns: repeat(3, 1fr);
    }
}



/* ╔══════════════════════════════════════════════════════════════════╗
   ║         SECÇÃO CLIENTES — REDESIGN PREMIUM                       ║
   ╚══════════════════════════════════════════════════════════════════╝ */

/* ── Cabeçalho da secção ── */
.cl-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}

.cl-head-left {
    display: flex;
    align-items: center;
    gap: 10px;
}

.cl-section-title {
    font-size: 1.45rem;
    font-weight: 800;
    color: var(--text-main);
    letter-spacing: -0.025em;
}

.cl-count-badge {
    font-size: 0.72rem;
    font-weight: 800;
    background: #EEF2FA;
    color: var(--blue-accent);
    border: 1px solid #C7D9F5;
    padding: 3px 10px;
    border-radius: 20px;
    min-width: 28px;
    text-align: center;
}

/* ── Botão novo cliente ── */
.cl-add-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--navy);
    color: #fff;
    border: none;
    border-radius: 10px;
    padding: 10px 18px;
    font-size: 0.875rem;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    letter-spacing: 0.005em;
    transition: background 0.18s, transform 0.15s, box-shadow 0.18s;
    box-shadow: 0 4px 14px rgba(3, 24, 43, 0.25);
}

.cl-add-btn:hover {
    background: var(--navy-mid);
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(3, 24, 43, 0.3);
}

.cl-add-btn:active {
    transform: translateY(0);
}

/* ── Barra de pesquisa ── */
.cl-search-wrap {
    position: relative;
    margin-bottom: 18px;
}

.cl-search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #A0AEC0;
    pointer-events: none;
}

.cl-search-input {
    width: 100%;
    padding: 11px 14px 11px 40px !important;
    border: 1.5px solid var(--border) !important;
    border-radius: 10px !important;
    font-size: 0.9rem !important;
    background: #fff !important;
    color: var(--text-main);
    font-family: inherit;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.cl-search-input:focus {
    outline: none;
    border-color: #6699DD !important;
    box-shadow: 0 0 0 3px rgba(0, 65, 155, 0.08) !important;
}

.cl-search-input::placeholder {
    color: #B0BAC8;
}

/* ── Painel de formulário (colapsável) ── */
.cl-form-panel {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08), 0 1px 4px rgba(0, 0, 0, 0.05);
    margin-bottom: 20px;
    overflow: hidden;
    animation: cl-panel-in 0.22s ease;
}

@keyframes cl-panel-in {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.cl-form-panel.hidden {
    display: none;
}

.cl-form-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    background: linear-gradient(135deg, var(--navy) 0%, #052a4a 100%);
    color: white;
}

.cl-form-panel-title {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: -0.005em;
}

.cl-form-panel-title svg {
    opacity: 0.8;
}

.cl-form-close {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 6px;
    color: rgba(255, 255, 255, 0.8);
    cursor: pointer;
    transition: background 0.15s;
    font-family: inherit;
}

.cl-form-close:hover {
    background: rgba(255, 255, 255, 0.2);
    color: white;
}

.cl-form-body {
    padding: 22px 24px 24px;
}

/* Grid de campos do formulário */
.cl-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.cl-field-full {
    grid-column: 1 / -1;
}

.cl-field-half {
    grid-column: span 1;
}

.cl-form-grid label {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #6B7280;
    margin-bottom: 6px;
}

.cl-form-grid input,
.cl-form-grid textarea,
.cl-form-grid select {
    width: 100%;
    padding: 10px 13px;
    border: 1.5px solid var(--border);
    border-radius: 8px;
    font-size: 0.9rem;
    font-family: inherit;
    background: #FAFBFD;
    color: var(--text-main);
    transition: border-color 0.15s, box-shadow 0.15s;
    -webkit-appearance: none;
    appearance: none;
}

.cl-form-grid textarea {
    resize: vertical;
    min-height: 72px;
    line-height: 1.5;
}

.cl-form-grid select {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M0 0l5 6 5-6z' fill='%234B5563'/></svg>");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 34px;
    cursor: pointer;
}

.cl-form-grid input:focus,
.cl-form-grid textarea:focus,
.cl-form-grid select:focus {
    outline: none;
    border-color: #6699DD;
    box-shadow: 0 0 0 3px rgba(0, 65, 155, 0.08);
    background: #fff;
}

.cl-form-grid input::placeholder,
.cl-form-grid textarea::placeholder {
    color: #B8C1CC;
    font-weight: 400;
}

/* Acções do formulário */
.cl-form-actions {
    grid-column: 1 / -1;
    display: flex;
    gap: 10px;
    margin-top: 4px;
    padding-top: 16px;
    border-top: 1px solid var(--border-light);
}

.cl-btn-save {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--navy);
    color: #fff;
    border: none;
    border-radius: 10px;
    padding: 11px 20px;
    font-size: 0.9rem;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    transition: background 0.18s, box-shadow 0.18s, transform 0.15s;
    box-shadow: 0 3px 12px rgba(3, 24, 43, 0.22);
}

.cl-btn-save:hover {
    background: var(--navy-mid);
    transform: translateY(-1px);
    box-shadow: 0 5px 16px rgba(3, 24, 43, 0.28);
}

.cl-btn-cancel {
    background: #fff;
    color: var(--text-muted);
    border: 1.5px solid var(--border);
    border-radius: 10px;
    padding: 11px 18px;
    font-size: 0.9rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

.cl-btn-cancel:hover {
    background: #F4F6FA;
    border-color: #B8C4DC;
    color: var(--text-main);
}

/* ── Lista de clientes ── */
.cl-client-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* ── Estado vazio ── */
.cl-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 52px 20px;
    text-align: center;
    color: var(--text-muted);
    font-size: 0.92rem;
    font-weight: 500;
    background: #FAFBFD;
    border-radius: 14px;
    border: 1.5px dashed #C8D0DC;
}

/* ── Responsive ── */
@media (max-width: 680px) {
    .cl-form-grid {
        grid-template-columns: 1fr;
    }

    .cl-field-half {
        grid-column: 1 / -1;
    }

    .cl-section-title {
        font-size: 1.2rem;
    }

    .cl-add-btn {
        padding: 10px 14px;
        font-size: 0.82rem;
    }

    .cl-form-body {
        padding: 18px 16px 20px;
    }
}


/* ── Cabeçalhos de grupo na lista de clientes ── */
.cl-group-hdr {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 8px;
    margin-bottom: 4px;
    list-style: none;
}

.cl-group-hdr:first-child {
    margin-top: 0;
}

.cl-group-hdr--atrasado {
    background: #FFF1F0;
    color: #C0392B;
    border: 1px solid #FDB9B2;
}

.cl-group-hdr--em-dia {
    background: #F0FFF5;
    color: #1E7C4A;
    border: 1px solid #A7E6C0;
}

.cl-group-hdr--geral {
    background: #F3F5FA;
    color: #4B5675;
    border: 1px solid #D8DCE8;
}

.cl-group-cnt {
    margin-left: auto;
    font-size: 0.7rem;
    font-weight: 900;
    background: rgba(0, 0, 0, 0.08);
    border-radius: 20px;
    padding: 2px 9px;
    min-width: 22px;
    text-align: center;
}

/* ── Filtros de grupo de clientes ── */
.cl-filters {
    display: flex;
    gap: 6px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}

.cl-filter-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 7px 14px;
    border-radius: 20px;
    border: 1.5px solid var(--border);
    background: #fff;
    color: var(--text-muted);
    font-size: 0.8rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;
    white-space: nowrap;
}

.cl-filter-btn:hover {
    background: #F3F5FA;
    border-color: #B8C4DC;
    color: var(--text-main);
}

/* Todos — ativo */
.cl-filter-btn.active {
    background: var(--navy);
    color: #fff;
    border-color: var(--navy);
    box-shadow: 0 2px 8px rgba(3, 24, 43, 0.2);
}

/* Atrasado — ativo */
.cl-filter-btn.cl-filter-atrasado.active {
    background: #C0392B;
    border-color: #C0392B;
    color: #fff;
    box-shadow: 0 2px 8px rgba(192, 57, 43, 0.28);
}

/* Em Dia — ativo */
.cl-filter-btn.cl-filter-em-dia.active {
    background: #1E7C4A;
    border-color: #1E7C4A;
    color: #fff;
    box-shadow: 0 2px 8px rgba(30, 124, 74, 0.28);
}

/* Geral — ativo */
.cl-filter-btn.cl-filter-geral.active {
    background: #4B5675;
    border-color: #4B5675;
    color: #fff;
    box-shadow: 0 2px 8px rgba(75, 86, 117, 0.24);
}

/* ── Faixa lateral colorida nos cards por grupo de pagamento ── */
.rec-card--atrasado {
    border-left: 4px solid #E74C3C !important;
}

.rec-card--em-dia {
    border-left: 4px solid #27AE60 !important;
}

/* ── Pill de estado no cabeçalho do card ── */
.cl-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.66rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 3px 8px;
    border-radius: 20px;
    white-space: nowrap;
}

.cl-status-pill--atrasado {
    background: #FDECEA;
    color: #C0392B;
    border: 1px solid #F5C2BD;
}

.cl-status-pill--em-dia {
    background: #EAFAF1;
    color: #1E7C4A;
    border: 1px solid #A9DFBF;
}


/* ═══════════════════════════════════════════════════════
   REDESIGN 2.0 — Sistema de Design Unificado sec-*
   ═══════════════════════════════════════════════════════ */

/* ─── Cabeçalho de Secção ─── */
.sec-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 22px 20px 12px;
    gap: 10px;
}

.sec-head-left {
    display: flex;
    align-items: center;
    gap: 10px;
}

.sec-head-icon {
    color: var(--blue-accent);
    opacity: 0.85;
    flex-shrink: 0;
}

.sec-title {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--navy);
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.sec-count {
    background: var(--navy);
    color: var(--accent);
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    padding: 3px 9px;
    border-radius: 20px;
    line-height: 1.4;
    min-width: 24px;
    text-align: center;
}

/* ─── Toolbar (filtros + pesquisa) ─── */
.sec-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 20px 14px;
    flex-wrap: nowrap;
}

.sec-toolbar--wrap {
    flex-wrap: wrap;
}

/* ─── Pills de filtro ─── */
.sec-pills {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    flex: 1;
}

.sec-pill {
    background: #fff;
    border: 1.5px solid var(--border);
    color: var(--text-muted);
    font-size: 0.75rem;
    font-weight: 700;
    padding: 5px 12px;
    border-radius: 20px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

.sec-pill:hover {
    border-color: var(--blue-accent);
    color: var(--blue-accent);
    background: rgba(0, 65, 155, 0.05);
}

.sec-pill.active {
    background: var(--navy);
    border-color: var(--navy);
    color: var(--accent);
}

/* ─── Pesquisa ─── */
.sec-search-wrap {
    position: relative;
    flex-shrink: 0;
    min-width: 0;
}

.sec-search-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted);
    pointer-events: none;
}

.sec-search-input {
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: 22px;
    padding: 7px 12px 7px 32px;
    font-size: 0.8rem;
    color: var(--text-main);
    width: 200px;
    max-width: 100%;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.sec-search-input:focus {
    border-color: var(--blue-accent);
    box-shadow: 0 0 0 3px rgba(0, 65, 155, 0.09);
}

/* ─── Painel de Formulário ─── */
.sec-form-panel {
    background: #fff;
    border-radius: 14px;
    border: 1.5px solid var(--border);
    margin: 0 16px 16px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(3, 24, 43, 0.06);
}

.sec-form-panel-head {
    background: var(--navy);
    padding: 14px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.sec-form-panel-title {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #fff;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.sec-form-panel-title svg {
    color: var(--accent);
}

.sec-form-panel-body {
    padding: 18px 18px 16px;
}

/* ─── Grid de Formulário ─── */
.sec-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.sec-field-full {
    grid-column: 1 / -1;
}

.sec-field-half {
    grid-column: span 1;
}

.sec-form-grid label {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 6px;
}

.sec-form-grid input,
.sec-form-grid select,
.sec-form-grid textarea {
    width: 100%;
    border: 1.5px solid var(--border);
    border-radius: 8px;
    padding: 9px 12px;
    font-size: 0.88rem;
    color: var(--text-main);
    background: var(--bg);
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
    box-sizing: border-box;
    font-family: inherit;
}

.sec-form-grid input:focus,
.sec-form-grid select:focus,
.sec-form-grid textarea:focus {
    border-color: var(--blue-accent);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(0, 65, 155, 0.08);
}

.sec-form-grid textarea {
    resize: vertical;
    min-height: 80px;
}

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

.sec-btn-save {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: var(--navy);
    color: var(--accent);
    border: none;
    border-radius: 8px;
    padding: 10px 18px;
    font-size: 0.85rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s, opacity 0.15s;
    letter-spacing: 0.01em;
}

.sec-btn-save:hover {
    background: #041e35;
}

.sec-btn-save svg {
    color: var(--accent);
}

.sec-btn-cancel {
    background: transparent;
    border: 1.5px solid var(--border);
    color: var(--text-muted);
    border-radius: 8px;
    padding: 10px 16px;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

.sec-btn-cancel:hover {
    border-color: #aaa;
    background: var(--bg);
}

/* ─── Lista ─── */
.sec-list {
    list-style: none;
    padding: 0 16px 20px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* ═══════════════════════════════════════════════════════
   CALENDÁRIO — redesign
   ═══════════════════════════════════════════════════════ */
.cal-card {
    background: #fff;
    border-radius: 14px;
    border: 1.5px solid var(--border);
    margin: 0 16px 20px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(3, 24, 43, 0.06);
    padding-bottom: 8px;
}

.cal-card .cal-weekdays {
    border-bottom: 1px solid var(--border-light);
}

#calendar-section .sec-head {
    padding-bottom: 16px;
}

.cal-nav-bar {
    display: flex;
    align-items: center;
    gap: 6px;
}

.cal-nav-btn {
    background: #fff;
    border: 1.5px solid var(--border);
    border-radius: 8px;
    padding: 5px 10px;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--navy);
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    line-height: 1.2;
}

.cal-nav-btn:hover {
    background: var(--bg);
    border-color: var(--blue-accent);
}

.cal-today-btn {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    background: var(--navy);
    color: var(--accent);
    border-color: var(--navy);
}

.cal-today-btn:hover {
    background: #041e35;
    border-color: #041e35;
    color: var(--accent);
}

.cal-month-label {
    font-weight: 700;
    font-size: 0.88rem;
    color: var(--navy);
    min-width: 100px;
    text-align: center;
    letter-spacing: -0.01em;
}

/* ═══════════════════════════════════════════════════════
   FATURAÇÃO — redesign
   ═══════════════════════════════════════════════════════ */
.billing-hero {
    background: var(--navy);
    border-radius: 16px;
    margin: 4px 16px 20px;
    padding: 28px 24px;
    text-align: center;
    box-shadow: 0 4px 20px rgba(3, 24, 43, 0.18);
    position: relative;
    overflow: hidden;
}

.billing-hero::before {
    content: '';
    position: absolute;
    top: -40px;
    right: -40px;
    width: 160px;
    height: 160px;
    background: rgba(231, 255, 73, 0.07);
    border-radius: 50%;
    pointer-events: none;
}

.billing-hero-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: rgba(255, 255, 255, 0.55);
    margin-bottom: 10px;
}

.billing-hero-value {
    font-size: 2.6rem;
    font-weight: 900;
    color: var(--accent);
    letter-spacing: -0.03em;
    line-height: 1.1;
    margin-bottom: 10px;
}

.billing-hero-desc {
    font-size: 0.76rem;
    color: rgba(255, 255, 255, 0.45);
    line-height: 1.5;
}

/* ═══════════════════════════════════════════════════════
   EVENTOS — redesign
   ═══════════════════════════════════════════════════════ */
.ev-top-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 20px 10px;
    gap: 10px;
}

.ev-top-bar-center {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    justify-content: center;
}

.ev-top-bar-center .sec-head-icon {
    color: var(--blue-accent);
}

.ev-top-bar h3,
.ev-top-bar-center h3 {
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--navy);
    margin: 0;
    letter-spacing: -0.02em;
}

.ev-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    border: 1.5px solid var(--border);
    border-radius: 8px;
    padding: 7px 12px;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--navy);
    cursor: pointer;
    transition: background 0.15s;
    white-space: nowrap;
}

.ev-back-btn:hover {
    background: var(--bg);
}

.ev-add-btn {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--navy);
    color: var(--accent);
    border: none;
    border-radius: 10px;
    cursor: pointer;
    transition: background 0.15s;
    flex-shrink: 0;
}

.ev-add-btn:hover {
    background: #041e35;
}

.ev-tabs {
    display: flex;
    gap: 0;
    padding: 0 16px 14px;
    border-bottom: none;
}

.ev-tabs-inner {
    display: flex;
    background: var(--bg);
    border-radius: 10px;
    padding: 3px;
    width: 100%;
    gap: 4px;
}

.ev-tab {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 12px;
    border-radius: 8px;
    border: none;
    background: transparent;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--text-muted);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
    letter-spacing: 0.01em;
}

.ev-tab:hover {
    color: var(--navy);
}

.ev-tab.active {
    background: var(--navy);
    color: var(--accent);
    box-shadow: 0 2px 6px rgba(3, 24, 43, 0.2);
}

/* ═══════════════════════════════════════════════════════
   PROBLEMAS — redesign
   ═══════════════════════════════════════════════════════ */
.prob-header {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #fff3cd;
    border: 1.5px solid #ffd07a;
    border-radius: 14px;
    padding: 16px 18px;
    margin: 16px 16px 0;
}

.prob-header-icon {
    width: 44px;
    height: 44px;
    background: #fff;
    border-radius: 12px;
    border: 1.5px solid #ffd07a;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #c07000;
    flex-shrink: 0;
}

.prob-header-title {
    font-size: 1rem;
    font-weight: 800;
    color: var(--navy);
}

.prob-header-sub {
    font-size: 0.78rem;
    color: var(--text-muted);
    margin-top: 2px;
}

.prob-form {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.prob-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted);
    display: block;
}

.prob-form select,
.prob-form input,
.prob-form textarea {
    width: 100%;
    border: 1.5px solid var(--border);
    border-radius: 8px;
    padding: 9px 12px;
    font-size: 0.88rem;
    color: var(--text-main);
    background: #fff;
    outline: none;
    font-family: inherit;
    box-sizing: border-box;
    transition: border-color 0.15s;
}

.prob-form select:focus,
.prob-form input:focus,
.prob-form textarea:focus {
    border-color: var(--blue-accent);
}

.prob-submit-btn {
    margin-top: 4px;
    width: 100%;
}

/* ═══════════════════════════════════════════════════════
   APP HEADER — melhoria polida
   ═══════════════════════════════════════════════════════ */
body.is-admin .app-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25), 0 2px 12px rgba(3, 24, 43, 0.3);
}

.app-header #main-title {
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: -0.01em;
}

.app-header #user-info {
    font-size: 0.7rem;
    opacity: 0.55;
    margin-top: 1px;
}

.btn-logout {
    font-size: 0.72rem;
    font-weight: 700;
    padding: 6px 12px;
    border-radius: 8px;
    border: 1.5px solid rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.75);
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    letter-spacing: 0.02em;
}

.btn-logout:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.35);
    color: #fff;
}

/* ═══════════════════════════════════════════════════════
   MODO EVENTO BANNER — redesign
   ═══════════════════════════════════════════════════════ */
.modo-evento-banner {
    display: flex;
    align-items: center;
    gap: 10px;
    background: linear-gradient(135deg, #001a3a, #00419B);
    border-radius: 12px;
    margin: 16px 16px 0;
    padding: 12px 16px;
    color: #fff;
    font-size: 0.82rem;
    font-weight: 600;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.modo-evento-banner svg {
    color: var(--accent);
    flex-shrink: 0;
}

.modo-evento-banner strong {
    color: var(--accent);
}

/* ═══════════════════════════════════════════════════════
   MOBILE — ajustes de responsividade
   ═══════════════════════════════════════════════════════ */
@media (max-width: 600px) {
    .sec-head {
        padding: 18px 14px 10px;
    }

    .sec-toolbar {
        padding: 0 14px 12px;
    }

    .sec-form-panel {
        margin: 0 12px 14px;
    }

    .sec-list {
        padding: 0 12px 16px;
    }

    .sec-search-input {
        width: 140px;
    }

    .sec-toolbar:not(.sec-toolbar--wrap) {
        flex-wrap: wrap;
    }

    .billing-hero {
        margin: 4px 12px 16px;
        padding: 22px 18px;
    }

    .billing-hero-value {
        font-size: 2rem;
    }

    .prob-header {
        margin: 12px 12px 0;
    }

    .ev-top-bar {
        padding: 16px 14px 8px;
    }

    .ev-tabs {
        padding: 0 12px 12px;
    }
}


/* ─── Eventos tabs — segmented control ─── */
#ev-tabs.ev-tabs {
    background: var(--bg);
    border-radius: 10px;
    padding: 3px;
    margin: 0 16px 12px;
    gap: 3px;
    border-bottom: none;
}

#ev-tabs.ev-tabs .ev-tab {
    border-radius: 8px;
    flex: 1;
}


/* ══════════════════════════════════════════════════════════════════════
   HEADER ICON BUTTONS
   ══════════════════════════════════════════════════════════════════════ */
.hdr-icon-btn {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: rgba(255, 255, 255, 0.85);
    transition: background 0.15s, color 0.15s;
    position: relative;
    flex-shrink: 0;
}

.hdr-icon-btn:hover {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
}

.hdr-notif-btn {
    position: relative;
}

/* Notification badge */
.notif-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    background: #ef4444;
    color: #fff;
    font-size: 0.6rem;
    font-weight: 800;
    border-radius: 20px;
    min-width: 16px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    border: 2px solid var(--navy);
    pointer-events: none;
}

.notif-badge.hidden {
    display: none;
}

/* Notification dropdown */
.notif-dropdown {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 340px;
    max-width: 95vw;
    background: var(--bg-card);
    border: 1px solid var(--border-light);
    border-radius: 14px;
    box-shadow: 0 16px 48px rgba(3, 24, 43, 0.18);
    z-index: 1200;
    overflow: hidden;
}

.app-header {
    position: relative;
}

.notif-dropdown.hidden {
    display: none;
}

.notif-drop-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px 10px;
    border-bottom: 1px solid var(--border-light);
}

.notif-drop-title {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-main);
}

.notif-mark-all {
    font-size: 0.72rem;
    color: var(--blue-accent);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    font-family: inherit;
}

.notif-mark-all:hover {
    text-decoration: underline;
}

.notif-drop-list {
    max-height: 360px;
    overflow-y: auto;
}

.notif-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border-light);
    cursor: pointer;
    transition: background 0.12s;
}

.notif-row:last-child {
    border-bottom: none;
}

.notif-row:hover {
    background: #f8faff;
}

.notif-row-read {
    opacity: 0.6;
}

.notif-row-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--blue-accent);
    flex-shrink: 0;
    margin-top: 4px;
}

.notif-row-dot-read {
    background: transparent;
}

.notif-row-body {
    flex: 1;
    min-width: 0;
}

.notif-row-title {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-main);
}

.notif-row-sub {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: 2px;
}

.notif-row-time {
    font-size: 0.7rem;
    color: var(--text-light);
    white-space: nowrap;
    flex-shrink: 0;
    margin-top: 2px;
}

.notif-empty {
    padding: 24px 16px;
    text-align: center;
    color: var(--text-light);
    font-size: 0.83rem;
}

/* ══════════════════════════════════════════════════════════════════════
   PESQUISA GLOBAL
   ══════════════════════════════════════════════════════════════════════ */
.gs-overlay {
    position: fixed;
    inset: 0;
    background: rgba(3, 24, 43, 0.6);
    z-index: 2000;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 80px 20px 20px;
    backdrop-filter: blur(4px);
}

.gs-overlay.hidden {
    display: none;
}

.gs-modal {
    background: var(--bg-card);
    border-radius: 16px;
    width: 100%;
    max-width: 580px;
    box-shadow: 0 24px 80px rgba(3, 24, 43, 0.28);
    overflow: hidden;
    animation: ccFadeIn 0.15s ease;
}

.gs-input-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--border-light);
}

.gs-icon {
    color: var(--text-light);
    flex-shrink: 0;
}

.gs-input {
    flex: 1;
    border: none;
    outline: none;
    font-size: 1rem;
    font-family: inherit;
    color: var(--text-main);
    background: transparent;
}

.gs-esc {
    font-size: 0.7rem;
    background: var(--border-light);
    color: var(--text-muted);
    padding: 2px 7px;
    border-radius: 5px;
    font-family: monospace;
    border: 1px solid var(--border);
}

.gs-results {
    max-height: 440px;
    overflow-y: auto;
    padding: 8px 0;
}

.gs-group {}

.gs-group-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-light);
    padding: 8px 16px 4px;
}

.gs-hit {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 16px;
    cursor: pointer;
    transition: background 0.1s;
}

.gs-hit:hover {
    background: #f0f4ff;
}

.gs-hit-label {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--text-main);
    flex: 1;
}

.gs-hit-sub {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-left: 4px;
}

.gs-empty {
    padding: 24px 16px;
    text-align: center;
    color: var(--text-muted);
    font-size: 0.85rem;
}

/* ══════════════════════════════════════════════════════════════════════
   CLIENT INTERACTION HISTORY
   ══════════════════════════════════════════════════════════════════════ */
.cl-interactions {
    padding: 12px 16px 8px;
    border-top: 1px solid var(--border-light);
}

.cl-int-head-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}

.cl-int-add-btn {
    font-size: 0.73rem;
    font-weight: 700;
    color: var(--blue-accent);
    background: #eff4ff;
    border: 1px solid #c7d7f9;
    border-radius: 6px;
    padding: 3px 10px;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.12s;
}

.cl-int-add-btn:hover {
    background: #dce8ff;
}

.cl-int-form {
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: #f8faff;
    border: 1px solid var(--border-light);
    border-radius: 9px;
    padding: 12px;
    margin-bottom: 10px;
}

.cl-int-form.hidden {
    display: none;
}

.cl-int-select,
.cl-int-textarea {
    width: 100%;
    border: 1.5px solid var(--border);
    border-radius: 7px;
    padding: 7px 10px;
    font-size: 0.83rem;
    font-family: inherit;
    background: #fff;
    color: var(--text-main);
    outline: none;
    transition: border-color 0.15s;
}

.cl-int-select:focus,
.cl-int-textarea:focus {
    border-color: var(--blue-accent);
}

.cl-int-save-btn {
    padding: 7px 16px;
    background: var(--blue-accent);
    color: #fff;
    border: none;
    border-radius: 7px;
    font-family: inherit;
    font-size: 0.8rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s;
}

.cl-int-save-btn:hover {
    background: #0052c8;
}

.cl-int-cancel-btn {
    padding: 7px 14px;
    background: #f1f5f9;
    color: var(--text-muted);
    border: 1px solid var(--border);
    border-radius: 7px;
    font-family: inherit;
    font-size: 0.8rem;
    cursor: pointer;
    transition: background 0.15s;
}

.cl-int-cancel-btn:hover {
    background: #e5e9ef;
}

.cl-int-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.cl-int-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.cl-int-icon {
    font-size: 1rem;
    flex-shrink: 0;
    margin-top: 1px;
}

.cl-int-body {
    flex: 1;
    min-width: 0;
}

.cl-int-head {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 2px;
}

.cl-int-tipo {
    font-size: 0.73rem;
    font-weight: 700;
    background: #eff4ff;
    color: var(--blue-accent);
    padding: 1px 8px;
    border-radius: 20px;
}

.cl-int-date {
    font-size: 0.71rem;
    color: var(--text-light);
}

.cl-int-by {
    font-size: 0.71rem;
    color: var(--text-light);
    margin-left: auto;
}

.cl-int-nota {
    font-size: 0.8rem;
    color: var(--text-muted);
    line-height: 1.4;
}

.cl-int-empty {
    font-size: 0.8rem;
    color: var(--text-light);
    padding: 4px 0;
}

/* Invoice button */
.rec-card-foot {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.btn-invoice {
    padding: 7px 14px;
    background: #f0fdf4;
    color: #059669;
    border: 1px solid #bbf7d0;
    border-radius: 8px;
    font-family: inherit;
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s;
}

.btn-invoice:hover {
    background: #dcfce7;
}

/* ══════════════════════════════════════════════════════════════════════
   PER-EQUIPMENT BILLING (evento pós-evento)
   ══════════════════════════════════════════════════════════════════════ */
.ev-eq-billing-row {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed #e2e8f0;
}

.ev-eq-billing-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
    min-width: 120px;
}

.ev-eq-billing-label {
    font-size: 0.7rem;
    font-weight: 600;
    color: #64748b;
}

.ev-eq-billing-inp {
    border: 1.5px solid #e2e8f0;
    border-radius: 7px;
    padding: 7px 10px;
    font-size: 0.83rem;
    font-family: inherit;
    background: #f8faff;
    color: #1a2236;
    outline: none;
    transition: border-color 0.15s;
}

.ev-eq-billing-inp:focus {
    border-color: var(--blue-accent);
    background: #fff;
}

.ev-eq-billing-save {
    padding: 7px 14px;
    background: var(--blue-accent);
    color: #fff;
    border: none;
    border-radius: 7px;
    font-family: inherit;
    font-size: 0.78rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s;
    white-space: nowrap;
    height: fit-content;
}

.ev-eq-billing-save:hover {
    background: #0052c8;
}

/* ══════════════════════════════════════════════════════════════════════
   DARK MODE
   ══════════════════════════════════════════════════════════════════════ */
.dark-mode {
    --bg: #0f172a;
    --bg-alt: #1e293b;
    --bg-card: #1e293b;
    --text-main: #f1f5f9;
    --text-muted: #94a3b8;
    --text-light: #64748b;
    --border: #334155;
    --border-light: #1e293b;
    --success-bg: #052e16;
    --warning-bg: #1c1400;
    --danger-bg: #1f0707;
    --info-bg: #0c1a3d;
}

.dark-mode body {
    background: var(--bg);
    color: var(--text-main);
}

.dark-mode .app-body {
    background: var(--bg);
}

.dark-mode .rec-card,
.dark-mode .task-item,
.dark-mode .eq-item,
.dark-mode .ev-date-card,
.dark-mode .ev-dd-eq-card,
.dark-mode .ev-dd-assist-card,
.dark-mode .adm-card,
.dark-mode .adm-next-ev-card,
.dark-mode .upro-card,
.dark-mode .acessos-block,
.dark-mode .ev-detail-block,
.dark-mode .ev-postevent-block,
.dark-mode .cl-int-form,
.dark-mode .panel-body,
.dark-mode .sec-card {
    background: #1e293b !important;
    border-color: #334155 !important;
    color: var(--text-main) !important;
}

.dark-mode .rec-card-head {
    background: #253348 !important;
}

.dark-mode .rec-card-detail {
    background: #1e293b !important;
}

.dark-mode input,
.dark-mode textarea,
.dark-mode select {
    background: #0f172a !important;
    border-color: #334155 !important;
    color: #f1f5f9 !important;
}

.dark-mode input::placeholder,
.dark-mode textarea::placeholder {
    color: #475569 !important;
}

.dark-mode .adm-kpi {
    background: #1e293b !important;
    border-color: #334155 !important;
}

.dark-mode .adm-topbar,
.dark-mode .sidebar-panel {
    background: #0a1628 !important;
}

.dark-mode .adm-kpi-val {
    color: #f1f5f9 !important;
}

.dark-mode .adm-kpi-label {
    color: #64748b !important;
}

.dark-mode .avenca-block {
    background: #253348 !important;
    border-color: #334155 !important;
}

.dark-mode .avenca-pago {
    background: #052e16 !important;
    border-color: #166534 !important;
}

.dark-mode .avenca-divida {
    background: #1f0707 !important;
    border-color: #991b1b !important;
}

.dark-mode .ev-oc-card {
    background: #1c1400 !important;
    border-color: #78350f !important;
}

.dark-mode .gs-modal,
.dark-mode .notif-dropdown,
.dark-mode .custom-confirm-modal,
.dark-mode .welcome-modal {
    background: #1e293b !important;
    border-color: #334155 !important;
}

.dark-mode .gs-input {
    color: #f1f5f9 !important;
    background: transparent !important;
}

.dark-mode .gs-hit:hover {
    background: #253348 !important;
}

.dark-mode .notif-row:hover {
    background: #253348 !important;
}

.dark-mode .cl-int-select,
.dark-mode .cl-int-textarea,
.dark-mode .ev-eq-billing-inp,
.dark-mode .ev-postevent-input,
.dark-mode .ev-postevent-input-full {
    background: #0f172a !important;
    border-color: #334155 !important;
    color: #f1f5f9 !important;
}

.dark-mode .app-toast {
    background: #1e293b !important;
    color: #f1f5f9 !important;
    border-color: #334155 !important;
}

.dark-mode .sec-head {
    background: #1e293b !important;
    border-bottom-color: #334155 !important;
}

.dark-mode .btn-filter {
    color: #94a3b8 !important;
}

.dark-mode .btn-filter.active,
.dark-mode .btn-filter:hover {
    color: #f1f5f9 !important;
    background: #253348 !important;
}

/* ══════════════════════════════════════════════════════════════════════
   SECÇÃO PÓS-EVENTO
   ══════════════════════════════════════════════════════════════════════ */
.ev-postevent-wrap {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 8px;
    padding-top: 4px;
}

/* Separador visual */
.ev-postevent-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
}

.ev-postevent-divider::before,
.ev-postevent-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: linear-gradient(to right, transparent, #cbd5e1, transparent);
}

.ev-postevent-divider-label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: #64748b;
    white-space: nowrap;
}

.ev-postevent-divider-label svg {
    opacity: 0.7;
}

/* Blocos */
.ev-postevent-block {
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    overflow: hidden;
}

.ev-postevent-block-internal {
    border-color: #fde68a;
    background: #fffdf0;
}

.ev-postevent-block-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #475569;
    padding: 13px 18px 11px;
    border-bottom: 1px solid var(--border-light);
    background: #f8faff;
}

.ev-postevent-block-internal .ev-postevent-block-title {
    background: #fffbeb;
    border-bottom-color: #fde68a;
    color: #92400e;
}

/* Badge "apenas interno" */
.ev-oc-internal-badge {
    margin-left: auto;
    font-size: 0.68rem;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    background: #fef3c7;
    color: #b45309;
    border-radius: 20px;
    padding: 2px 10px;
    white-space: nowrap;
}

/* Campos financeiros */
.ev-postevent-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    padding: 18px 18px 6px;
}

.ev-postevent-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.ev-postevent-label {
    font-size: 0.73rem;
    font-weight: 600;
    color: #475569;
}

.ev-postevent-input-wrap {
    display: flex;
    align-items: center;
    border: 1.5px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
    background: #f8faff;
    transition: border-color 0.15s;
}

.ev-postevent-input-wrap:focus-within {
    border-color: var(--blue-accent);
    background: #fff;
}

.ev-postevent-prefix {
    padding: 0 10px;
    font-size: 0.85rem;
    color: #94a3b8;
    font-weight: 600;
    border-right: 1px solid #e2e8f0;
    background: #f1f5f9;
    align-self: stretch;
    display: flex;
    align-items: center;
}

.ev-postevent-input {
    border: none;
    outline: none;
    padding: 9px 12px;
    font-size: 0.88rem;
    font-family: inherit;
    background: transparent;
    color: #1a2236;
    width: 100%;
}

.ev-postevent-input-full {
    border: 1.5px solid #e2e8f0;
    border-radius: 8px;
    padding: 9px 12px;
    font-size: 0.88rem;
    font-family: inherit;
    color: #1a2236;
    background: #f8faff;
    width: 100%;
    outline: none;
    transition: border-color 0.15s;
}

.ev-postevent-input-full:focus {
    border-color: var(--blue-accent);
    background: #fff;
}

.ev-postevent-field:last-child {
    grid-column: 1 / -1;
}

/* Botão guardar */
.ev-postevent-save-btn {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 14px 18px 16px;
    padding: 9px 18px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-family: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    background: var(--blue-accent);
    color: #fff;
    transition: background 0.15s, transform 0.1s;
}

.ev-postevent-save-btn:hover {
    background: #0052c8;
}

.ev-postevent-save-btn:active {
    transform: scale(0.97);
}

/* Ocorrências internas */
.ev-oc-list {
    padding: 12px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ev-oc-card {
    background: #fff8e1;
    border: 1px solid #fde68a;
    border-left: 3px solid #f59e0b;
    border-radius: 8px;
    padding: 10px 14px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ev-oc-card-resolved {
    background: #f0fdf4;
    border-color: #bbf7d0;
    border-left-color: #22c55e;
    opacity: 0.8;
}

.ev-oc-head {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.ev-oc-date {
    font-size: 0.75rem;
    font-weight: 700;
    color: #92400e;
}

.ev-oc-card-resolved .ev-oc-date {
    color: #15803d;
}

.ev-oc-tech {
    font-size: 0.75rem;
    color: #78716c;
}

.ev-oc-resolved {
    font-size: 0.7rem;
    background: #dcfce7;
    color: #15803d;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 20px;
    margin-left: auto;
}

.ev-oc-pending {
    font-size: 0.7rem;
    background: #fef3c7;
    color: #b45309;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 20px;
    margin-left: auto;
}

.ev-oc-desc {
    font-size: 0.82rem;
    color: #44403c;
    line-height: 1.45;
}

/* Botão exportar */
.ev-postevent-export-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 4px 2px 8px;
    flex-wrap: wrap;
}

.ev-postevent-export-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 22px;
    border: none;
    border-radius: 9px;
    cursor: pointer;
    font-family: inherit;
    font-size: 0.85rem;
    font-weight: 700;
    background: #03182B;
    color: #fff;
    transition: background 0.15s, transform 0.1s;
    white-space: nowrap;
}

.ev-postevent-export-btn:hover {
    background: #0a2a4a;
}

.ev-postevent-export-btn:active {
    transform: scale(0.97);
}

.ev-postevent-export-note {
    font-size: 0.72rem;
    color: #94a3b8;
    flex: 1;
    min-width: 0;
}

/* Reset password card em showUserProfile */
.upro-reset-card {
    margin-top: 4px;
}

.upro-reset-row {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 14px 16px;
    flex-wrap: wrap;
}

.upro-pw-inp {
    flex: 1;
    min-width: 220px;
    padding: 9px 13px;
    border: 1.5px solid #e2e8f0;
    border-radius: 8px;
    font-size: 0.88rem;
    font-family: inherit;
    outline: none;
    transition: border-color 0.15s;
}

.upro-pw-inp:focus {
    border-color: var(--blue-accent);
}

.upro-reset-btn {
    padding: 9px 18px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-family: inherit;
    font-size: 0.83rem;
    font-weight: 700;
    background: #ef4444;
    color: #fff;
    transition: background 0.15s;
    white-space: nowrap;
}

.upro-reset-btn:hover {
    background: #dc2626;
}

/* Activity log no Acessos */
.acessos-block-full {
    max-width: 100%;
}

.act-log-list {
    display: flex;
    flex-direction: column;
}

.act-log-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 18px;
    border-bottom: 1px solid var(--border-light);
    transition: background 0.12s;
}

.act-log-row:last-child {
    border-bottom: none;
}

.act-log-row:hover {
    background: #f8faff;
}

.act-log-avatar {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--blue-accent);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.act-log-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.act-log-action {
    font-size: 0.82rem;
    font-weight: 600;
    color: #1a2236;
}

.act-log-detail {
    font-size: 0.75rem;
    color: #64748b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.act-log-time {
    font-size: 0.72rem;
    color: #94a3b8;
    white-space: nowrap;
    flex-shrink: 0;
}

.acessos-empty {
    padding: 20px 18px;
    color: #94a3b8;
    font-size: 0.83rem;
}

/* Custom confirm overlay */
.custom-confirm-overlay {
    position: fixed;
    inset: 0;
    background: rgba(3, 24, 43, 0.55);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    backdrop-filter: blur(2px);
}

.custom-confirm-overlay.hidden {
    display: none;
}

.custom-confirm-modal {
    background: #fff;
    border-radius: 16px;
    padding: 32px 28px 24px;
    max-width: 360px;
    width: 100%;
    box-shadow: 0 20px 60px rgba(3, 24, 43, 0.25);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    animation: ccFadeIn 0.15s ease;
}

@keyframes ccFadeIn {
    from {
        opacity: 0;
        transform: scale(0.94) translateY(8px);
    }

    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.custom-confirm-icon {
    color: #f59e0b;
}

.custom-confirm-msg {
    font-size: 0.97rem;
    font-weight: 600;
    color: #1a2236;
    text-align: center;
    line-height: 1.5;
}

.custom-confirm-actions {
    display: flex;
    gap: 10px;
    width: 100%;
}

.custom-confirm-cancel {
    flex: 1;
    padding: 10px;
    border: 1.5px solid #e2e8f0;
    border-radius: 9px;
    background: #f8faff;
    color: #475569;
    font-family: inherit;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}

.custom-confirm-cancel:hover {
    background: #f1f5f9;
}

.custom-confirm-ok {
    flex: 1;
    padding: 10px;
    border: none;
    border-radius: 9px;
    background: #ef4444;
    color: #fff;
    font-family: inherit;
    font-size: 0.88rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s;
}

.custom-confirm-ok:hover {
    background: #dc2626;
}

/* Welcome modal */
.welcome-overlay {
    position: fixed;
    inset: 0;
    background: rgba(3, 24, 43, 0.65);
    z-index: 9998;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    backdrop-filter: blur(4px);
}

.welcome-overlay.hidden {
    display: none;
}

.welcome-modal {
    background: #fff;
    border-radius: 20px;
    padding: 36px 32px 28px;
    max-width: 420px;
    width: 100%;
    box-shadow: 0 24px 80px rgba(3, 24, 43, 0.3);
    display: flex;
    flex-direction: column;
    gap: 24px;
    animation: ccFadeIn 0.2s ease;
}

.welcome-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
}

.welcome-logo {
    width: 52px;
    height: 52px;
    object-fit: contain;
}

.welcome-title {
    font-size: 1.2rem;
    font-weight: 800;
    color: #03182B;
    letter-spacing: -0.5px;
}

.welcome-sub {
    font-size: 0.83rem;
    color: #64748b;
}

.welcome-steps {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.welcome-step {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    background: #f8faff;
    border-radius: 10px;
    border: 1px solid var(--border-light);
}

.welcome-step-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

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

.welcome-step-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: #1a2236;
}

.welcome-step-desc {
    font-size: 0.77rem;
    color: #64748b;
}

.welcome-btn {
    width: 100%;
    padding: 12px;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    background: #03182B;
    color: #fff;
    font-family: inherit;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: -0.2px;
    transition: background 0.15s;
}

.welcome-btn:hover {
    background: #0a2a4a;
}

/* Esqueci senha */
.login-footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

/* Responsivo pós-evento */
@media (max-width: 540px) {
    .ev-postevent-fields {
        grid-template-columns: 1fr;
    }

    .ev-postevent-field:last-child {
        grid-column: 1;
    }

    .ev-postevent-export-row {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ─── Task-items e Eq-items como cards dentro do sec-list ─── */
.sec-list .task-item {
    border-radius: 12px;
    border: 1.5px solid var(--border);
    border-left: 3px solid transparent;
    border-bottom: none;
    box-shadow: 0 1px 4px rgba(3, 24, 43, 0.05);
    margin: 0;
}

.sec-list .task-item:last-child {
    border-bottom: none;
}

.sec-list .task-item:hover {
    border-left-color: var(--blue-accent);
    box-shadow: 0 2px 8px rgba(0, 65, 155, 0.10);
    background: #f7f9ff;
}

.sec-list .task-item.completed {
    border-left-color: #10b981 !important;
}

/* ─── Equipamentos items como cards ─── */
.sec-list li.eq-item {
    border-radius: 12px;
    border: 1.5px solid var(--border);
    border-bottom: 1px solid var(--border);
    box-shadow: 0 1px 4px rgba(3, 24, 43, 0.05);
    overflow: hidden;
    background: #fff;
}

.sec-list li.eq-item:hover {
    box-shadow: 0 2px 8px rgba(0, 65, 155, 0.10);
}

/* ─── KPI strips — polished ─── */
.task-kpis-strip,
.eq-kpis-strip {
    padding: 0 16px 14px;
}


/* ─── sec-form-grid responsivo em mobile ─── */
@media (max-width: 540px) {
    .sec-form-grid {
        grid-template-columns: 1fr;
    }

    .sec-field-half {
        grid-column: 1 / -1;
    }
}
/* ═══════════════════════════════════════════════════════════════════════════
   NOVOS ESTILOS — Alterações julho 2026
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Pesquisa de equipamento no formulário de problema ─────────────────────── */
.prob-eq-search-wrap {
    position: relative;
    width: 100%;
}

.prob-eq-results {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 200;
    background: #fff;
    border: 1.5px solid #cbd5e1;
    border-top: none;
    border-radius: 0 0 8px 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
    max-height: 220px;
    overflow-y: auto;
}

.prob-eq-result-item {
    padding: 10px 14px;
    cursor: pointer;
    font-size: 0.9rem;
    color: #1e293b;
    border-bottom: 1px solid #f1f5f9;
    transition: background 0.12s;
}
.prob-eq-result-item:last-child { border-bottom: none; }
.prob-eq-result-item:hover { background: #eff6ff; color: #00419B; }

.prob-eq-selected {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    padding: 6px 12px;
    background: #eff6ff;
    border: 1.5px solid #bfdbfe;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
    color: #1d4ed8;
    cursor: pointer;
}
.prob-eq-selected:hover { background: #dbeafe; }
.prob-eq-selected::after { content: "×"; margin-left: 4px; font-size: 1rem; opacity: 0.6; }

/* ── Campo resolução ────────────────────────────────────────────────────────── */
.prob-resolucao-hint {
    font-size: 0.8rem;
    color: #64748b;
    font-weight: 400;
}

/* ── Item lista de problemas — campo resolução ──────────────────────────────── */
.prob-item-resolucao {
    font-size: 0.82rem;
    color: #16a34a;
    background: #f0fdf4;
    border-left: 3px solid #16a34a;
    border-radius: 0 6px 6px 0;
    padding: 6px 10px;
    margin-top: 4px;
}

/* ── Botão importar Excel ────────────────────────────────────────────────────── */
.sec-btn-import {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    background: #fff;
    border: 1.5px solid #cbd5e1;
    border-radius: 8px;
    font-size: 0.82rem;
    font-weight: 500;
    color: #475569;
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
}
.sec-btn-import:hover {
    border-color: #00419B;
    color: #00419B;
    background: #eff6ff;
}

/* ── Modal de importação ─────────────────────────────────────────────────────── */
.eq-import-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}
.eq-import-modal.hidden { display: none; }

.eq-import-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.45);
    backdrop-filter: blur(2px);
}

.eq-import-dialog {
    position: relative;
    z-index: 1001;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.25);
    width: min(480px, calc(100vw - 32px));
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.eq-import-dialog-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid #e2e8f0;
    font-weight: 600;
    font-size: 0.95rem;
    color: #1e293b;
}

.eq-import-close {
    background: none;
    border: none;
    font-size: 1.1rem;
    color: #94a3b8;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 6px;
    transition: color 0.15s, background 0.15s;
}
.eq-import-close:hover { color: #dc2626; background: #fef2f2; }

.eq-import-dialog-body {
    padding: 20px;
    overflow-y: auto;
    flex: 1;
}

.eq-import-step.hidden { display: none; }

.eq-import-info {
    font-size: 0.87rem;
    color: #475569;
    margin: 0 0 14px;
    line-height: 1.5;
}

.eq-import-label {
    display: block;
    font-size: 0.82rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 5px;
}

.eq-import-select {
    width: 100%;
    padding: 9px 12px;
    border: 1.5px solid #cbd5e1;
    border-radius: 8px;
    font-size: 0.9rem;
    color: #1e293b;
    background: #fff;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%2364748b'%3E%3Cpath d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 16px;
    cursor: pointer;
}
.eq-import-select:focus { outline: none; border-color: #00419B; box-shadow: 0 0 0 3px rgba(0,65,155,0.1); }

.eq-import-btn-primary {
    display: block;
    width: 100%;
    padding: 10px 20px;
    background: #00419B;
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}
.eq-import-btn-primary:hover { background: #0056d6; }

.eq-import-btn-secondary {
    display: block;
    width: 100%;
    margin-top: 8px;
    padding: 9px 20px;
    background: #fff;
    color: #475569;
    border: 1.5px solid #cbd5e1;
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s;
}
.eq-import-btn-secondary:hover { border-color: #94a3b8; background: #f8fafc; }

.eq-import-file-input {
    display: block;
    width: 100%;
    margin-bottom: 14px;
    padding: 10px;
    border: 2px dashed #cbd5e1;
    border-radius: 8px;
    font-size: 0.85rem;
    color: #475569;
    cursor: pointer;
    background: #f8fafc;
    box-sizing: border-box;
}
.eq-import-file-input:hover { border-color: #00419B; }

.eq-import-event-label {
    font-size: 0.85rem;
    font-weight: 600;
    color: #00419B;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    padding: 8px 12px;
    margin-bottom: 14px;
}

.eq-import-preview {
    margin-bottom: 14px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
}
.eq-import-preview.hidden { display: none; }

.eq-import-preview-title {
    font-size: 0.8rem;
    font-weight: 600;
    color: #475569;
    padding: 8px 12px;
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
}

.eq-import-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.78rem;
}
.eq-import-table th {
    background: #f1f5f9;
    padding: 6px 10px;
    text-align: left;
    font-weight: 600;
    color: #374151;
    border-bottom: 1px solid #e2e8f0;
}
.eq-import-table td {
    padding: 5px 10px;
    color: #1e293b;
    border-bottom: 1px solid #f1f5f9;
}
.eq-import-table tr:last-child td { border-bottom: none; }

.eq-import-preview-more {
    font-size: 0.78rem;
    color: #64748b;
    padding: 6px 12px;
    text-align: center;
    background: #f8fafc;
}

.eq-import-actions.hidden { display: none; }

/* ── Equipamentos staff — card crítico (≥3 ocorrências) ───────────────────── */
.evstaff-eq-card {
    transition: box-shadow 0.15s, transform 0.1s;
}
.evstaff-eq-card:hover {
    box-shadow: 0 4px 12px rgba(0,65,155,0.12);
    transform: translateY(-1px);
}

.evstaff-eq-card--critical {
    border: 2px solid #dc2626 !important;
    background: #fff5f5 !important;
}
.evstaff-eq-card--critical .evstaff-eq-id {
    color: #dc2626;
}

.evstaff-eq-top-right {
    display: flex;
    align-items: center;
    gap: 8px;
}

.evstaff-eq-alert-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #dc2626;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 20px;
    letter-spacing: 0.01em;
}

.evstaff-eq-occ-badge {
    display: inline-flex;
    align-items: center;
    background: #f97316;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 20px;
}

.evstaff-eq-resp {
    font-size: 0.78rem;
    color: #475569;
    margin-top: 3px;
}

.evstaff-eq-hint {
    font-size: 0.75rem;
    color: #00419B;
    margin-top: 5px;
    font-weight: 500;
    opacity: 0.8;
}

/* ── Vista de ocorrências por equipamento (staff) ────────────────────────── */
.evstaff-occ-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: 1.5px solid #e2e8f0;
    border-radius: 8px;
    padding: 7px 14px;
    font-size: 0.85rem;
    font-weight: 500;
    color: #475569;
    cursor: pointer;
    margin-bottom: 14px;
    transition: all 0.15s;
}
.evstaff-occ-back-btn:hover { border-color: #00419B; color: #00419B; background: #eff6ff; }

.evstaff-occ-eq-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.evstaff-occ-eq-id {
    font-size: 1.05rem;
    font-weight: 700;
    color: #1e293b;
}
.evstaff-occ-eq-type {
    font-size: 0.9rem;
    color: #475569;
}
.evstaff-occ-eq-status {
    font-size: 0.8rem;
    font-weight: 600;
}

.evstaff-occ-count-label {
    font-size: 0.8rem;
    color: #64748b;
    margin-bottom: 12px;
    font-weight: 500;
}

.evstaff-occ-empty {
    text-align: center;
    color: #94a3b8;
    font-size: 0.88rem;
    padding: 24px 16px;
    background: #f8fafc;
    border-radius: 10px;
}

.evstaff-occ-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.evstaff-occ-item {
    background: #fff;
    border: 1.5px solid #e2e8f0;
    border-radius: 10px;
    padding: 12px 14px;
}

.evstaff-occ-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.evstaff-occ-by {
    font-weight: 600;
    font-size: 0.85rem;
    color: #1e293b;
}
.evstaff-occ-date {
    font-size: 0.78rem;
    color: #64748b;
}
.evstaff-occ-urg {
    font-size: 0.7rem;
    font-weight: 700;
    color: #fff;
    padding: 2px 8px;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.evstaff-occ-desc {
    font-size: 0.87rem;
    color: #334155;
    line-height: 1.5;
    margin-bottom: 4px;
}

.evstaff-occ-resolucao {
    font-size: 0.82rem;
    color: #16a34a;
    background: #f0fdf4;
    border-left: 3px solid #16a34a;
    border-radius: 0 6px 6px 0;
    padding: 5px 10px;
    margin-top: 6px;
}

.evstaff-occ-loc {
    font-size: 0.78rem;
    color: #64748b;
    margin-top: 4px;
}

/* ── Responsável no display de equipamentos (mob-event detail) ─────────────── */
.mob-eq-resp {
    font-size: 0.78rem;
    color: #64748b;
    margin-top: 2px;
}

/* ── Campo resolução ocorrência na vista mobile do evento ──────────────────── */
.mob-as-resolucao {
    font-size: 0.82rem;
    color: #16a34a;
    background: #f0fdf4;
    border-left: 3px solid #16a34a;
    border-radius: 0 5px 5px 0;
    padding: 5px 9px;
    margin-top: 5px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   NOVOS ESTILOS — Funcionalidades Zonas, Histórico Equip, Sugestões
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Equipamento crítico (≥3 ocorrências) na lista admin ─────────────────── */
.evday-eq-critical {
    border: 2px solid #dc2626 !important;
    background: #fff5f5 !important;
    order: -1;
}
.evday-eq-critical .evday-eq2-id { color: #dc2626; }

.evday-eq2-critical-badge {
    display: inline-flex;
    align-items: center;
    background: #dc2626;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 20px;
    letter-spacing: 0.02em;
    gap: 3px;
}

.evday-eq2-resp {
    font-size: 0.78rem;
    color: #475569;
    margin-top: 3px;
    font-weight: 500;
}

.evday-eq2-zone {
    font-size: 0.75rem;
    color: #7c3aed;
    margin-top: 2px;
    font-weight: 500;
}

.evday-eq2-click-hint {
    font-size: 0.72rem;
    color: #00419B;
    margin-top: 4px;
    opacity: 0.7;
    font-weight: 500;
}
.evday-eq-row2:hover .evday-eq2-click-hint { opacity: 1; }

/* ── Painel de histórico de ocorrências do equipamento (admin) ──────────── */
.eqpanel-wrap {
    max-width: 720px;
    margin: 0 auto;
    padding: 0 0 40px;
}

.eqpanel-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: 1.5px solid #e2e8f0;
    border-radius: 8px;
    padding: 8px 14px;
    font-size: 0.85rem;
    font-weight: 500;
    color: #475569;
    cursor: pointer;
    margin-bottom: 18px;
    transition: all 0.15s;
}
.eqpanel-back-btn:hover { border-color: #00419B; color: #00419B; background: #eff6ff; }

.eqpanel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    background: #fff;
    border: 1.5px solid #e2e8f0;
    border-radius: 12px;
    padding: 16px 18px;
    margin-bottom: 12px;
}

.eqpanel-header-left {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.eqpanel-eq-id {
    font-size: 1.3rem;
    font-weight: 800;
    color: #1e293b;
}

.eqpanel-eq-type {
    font-size: 0.95rem;
    color: #475569;
}

.eqpanel-eq-resp {
    font-size: 0.82rem;
    color: #475569;
    background: #f1f5f9;
    border-radius: 20px;
    padding: 2px 10px;
}

.eqpanel-eq-status {
    font-size: 0.82rem;
    font-weight: 600;
    white-space: nowrap;
}

.eqpanel-stats {
    display: flex;
    gap: 12px;
    margin-bottom: 18px;
}

.eqpanel-stat {
    flex: 1;
    background: #f8fafc;
    border: 1.5px solid #e2e8f0;
    border-radius: 10px;
    padding: 12px 16px;
    text-align: center;
}
.eqpanel-stat--warn {
    background: #fff7ed;
    border-color: #fed7aa;
}
.eqpanel-stat--ok {
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.eqpanel-stat-num {
    display: block;
    font-size: 1.6rem;
    font-weight: 800;
    color: #1e293b;
    line-height: 1;
    margin-bottom: 4px;
}
.eqpanel-stat--warn .eqpanel-stat-num { color: #ea580c; }
.eqpanel-stat--ok .eqpanel-stat-num { color: #16a34a; }

.eqpanel-stat-lbl {
    font-size: 0.78rem;
    color: #64748b;
    font-weight: 500;
}

.eqpanel-empty {
    text-align: center;
    color: #94a3b8;
    font-size: 0.9rem;
    padding: 32px 16px;
    background: #f8fafc;
    border-radius: 10px;
    border: 1.5px dashed #e2e8f0;
}

.eqpanel-issues-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.eqpanel-issue {
    background: #fff;
    border: 1.5px solid #e2e8f0;
    border-radius: 12px;
    padding: 14px 16px;
}
.eqpanel-issue--resolved {
    opacity: 0.75;
    background: #f8fafc;
}

.eqpanel-issue-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}

.eqpanel-issue-who {
    display: flex;
    align-items: center;
    gap: 8px;
}

.eqpanel-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #dbeafe;
    color: #1d4ed8;
    font-weight: 700;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.eqpanel-reporter {
    font-weight: 600;
    font-size: 0.88rem;
    color: #1e293b;
}

.eqpanel-issue-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.eqpanel-ts {
    font-size: 0.78rem;
    color: #64748b;
    background: #f1f5f9;
    padding: 2px 8px;
    border-radius: 4px;
    font-variant-numeric: tabular-nums;
}

.eqpanel-urg {
    font-size: 0.7rem;
    font-weight: 700;
    color: #fff;
    padding: 2px 8px;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.eqpanel-resolved-badge {
    font-size: 0.75rem;
    color: #16a34a;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 20px;
    padding: 2px 8px;
    font-weight: 600;
}

.eqpanel-open-badge {
    font-size: 0.75rem;
    color: #ea580c;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 20px;
    padding: 2px 8px;
    font-weight: 600;
}

.eqpanel-loc {
    font-size: 0.78rem;
    color: #64748b;
    margin-bottom: 4px;
}

.eqpanel-desc {
    font-size: 0.9rem;
    color: #334155;
    line-height: 1.5;
    margin-bottom: 6px;
}

.eqpanel-resolucao {
    font-size: 0.83rem;
    color: #16a34a;
    background: #f0fdf4;
    border-left: 3px solid #16a34a;
    border-radius: 0 6px 6px 0;
    padding: 6px 10px;
    margin-top: 4px;
}
.eqpanel-resolucao-label {
    font-weight: 700;
}

/* ── Zonas de Evento — card ───────────────────────────────────────────────── */
.evday-card2-zones {}

.evday-zones-add {
    display: flex;
    gap: 8px;
    padding: 10px 0 8px;
    border-bottom: 1px solid #f1f5f9;
    margin-bottom: 10px;
}

.evday-zone-input {
    flex: 1;
    padding: 8px 12px;
    border: 1.5px solid #cbd5e1;
    border-radius: 8px;
    font-size: 0.88rem;
    color: #1e293b;
    transition: border-color 0.15s;
}
.evday-zone-input:focus { outline: none; border-color: #00419B; }

.evday-zone-add-btn {
    padding: 8px 16px;
    background: #00419B;
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s;
}
.evday-zone-add-btn:hover { background: #0056d6; }

.evday-zones-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 12px;
}

.evday-zone-item {
    background: #f8fafc;
    border: 1.5px solid #e2e8f0;
    border-radius: 10px;
    padding: 10px 12px;
}

.evday-zone-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.evday-zone-name {
    font-weight: 700;
    font-size: 0.9rem;
    color: #1e293b;
    flex: 1;
}

.evday-zone-count {
    font-size: 0.75rem;
    color: #64748b;
    background: #e2e8f0;
    padding: 2px 8px;
    border-radius: 20px;
}

.evday-zone-del-btn {
    background: none;
    border: none;
    color: #94a3b8;
    cursor: pointer;
    font-size: 0.85rem;
    padding: 2px 6px;
    border-radius: 4px;
    transition: color 0.15s, background 0.15s;
}
.evday-zone-del-btn:hover { color: #dc2626; background: #fee2e2; }

.evday-zone-eqs {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.evday-zone-eq-chip {
    background: #dbeafe;
    color: #1d4ed8;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 2px 9px;
    border-radius: 20px;
}

.evday-zone-empty {
    font-size: 0.78rem;
    color: #94a3b8;
    font-style: italic;
}

.evday-zone-assign-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    padding-top: 10px;
    border-top: 1px solid #f1f5f9;
    margin-top: 4px;
}

.evday-zone-assign-label {
    font-size: 0.8rem;
    color: #64748b;
    font-weight: 500;
    width: 100%;
}

.evday-zone-eq-sel,
.evday-zone-target-sel {
    flex: 1;
    min-width: 120px;
    padding: 7px 10px;
    border: 1.5px solid #cbd5e1;
    border-radius: 8px;
    font-size: 0.83rem;
    color: #1e293b;
    background: #fff;
    cursor: pointer;
}
.evday-zone-eq-sel:focus,
.evday-zone-target-sel:focus { outline: none; border-color: #00419B; }

.evday-zone-assign-btn {
    padding: 7px 14px;
    background: #7c3aed;
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 0.83rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s;
}
.evday-zone-assign-btn:hover { background: #6d28d9; }

/* ── Definições — Sugestões de Problema ─────────────────────────────────── */
.def-card {
    background: #fff;
    border: 1.5px solid #e2e8f0;
    border-radius: 14px;
    padding: 20px;
    margin: 16px 0;
}

.def-card-head {
    margin-bottom: 16px;
}

.def-card-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1rem;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 5px;
}

.def-card-desc {
    font-size: 0.83rem;
    color: #64748b;
    line-height: 1.5;
}

.def-add-row {
    display: flex;
    gap: 8px;
    margin-bottom: 14px;
}

.def-input {
    flex: 1;
    padding: 9px 12px;
    border: 1.5px solid #cbd5e1;
    border-radius: 8px;
    font-size: 0.88rem;
    color: #1e293b;
    transition: border-color 0.15s;
}
.def-input:focus { outline: none; border-color: #00419B; box-shadow: 0 0 0 3px rgba(0,65,155,0.1); }

.def-btn-add {
    padding: 9px 18px;
    background: #00419B;
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s;
}
.def-btn-add:hover { background: #0056d6; }

.def-sug-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.def-empty {
    font-size: 0.85rem;
    color: #94a3b8;
    text-align: center;
    padding: 20px 0;
    font-style: italic;
}

.def-sug-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 10px 14px;
    gap: 10px;
}

.def-sug-text {
    font-size: 0.88rem;
    color: #334155;
    flex: 1;
}

.def-sug-del {
    background: none;
    border: none;
    color: #94a3b8;
    cursor: pointer;
    font-size: 0.9rem;
    padding: 3px 7px;
    border-radius: 5px;
    transition: color 0.15s, background 0.15s;
    flex-shrink: 0;
}
.def-sug-del:hover { color: #dc2626; background: #fee2e2; }

/* ── Chips de sugestão no formulário de ocorrência ──────────────────────── */
.prob-suggestions-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 8px;
    padding: 8px 0 2px;
}
.prob-suggestions-wrap.hidden { display: none; }

.prob-sug-label {
    width: 100%;
    font-size: 0.75rem;
    color: #64748b;
    font-weight: 500;
    margin-bottom: 2px;
}

.prob-sug-chip {
    display: inline-flex;
    align-items: center;
    background: #eff6ff;
    border: 1.5px solid #bfdbfe;
    color: #1d4ed8;
    font-size: 0.78rem;
    font-weight: 500;
    padding: 4px 12px;
    border-radius: 20px;
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
}
.prob-sug-chip:hover {
    background: #dbeafe;
    border-color: #93c5fd;
    color: #1e40af;
    transform: translateY(-1px);
    box-shadow: 0 2px 6px rgba(0,65,155,0.12);
}
.prob-sug-chip:active { transform: none; }

/* ═══════════════════════════════════════════════════════════════════════════
   ZONAS — ev-date-detail-view
   ═══════════════════════════════════════════════════════════════════════════ */

.ev-zones-head { display: flex; align-items: center; justify-content: space-between; }

.ev-zone-new-btn {
    display: inline-flex; align-items: center; gap: 5px;
    background: #00419B; color: #fff; border: none; border-radius: 7px;
    padding: 6px 13px; font-size: 0.82rem; font-weight: 600; cursor: pointer;
    transition: background 0.15s;
}
.ev-zone-new-btn:hover { background: #0056d6; }

.ev-zones-create-row {
    display: flex; gap: 8px; align-items: center;
    padding: 12px 14px; background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
}
.ev-zones-create-row.hidden { display: none; }

.ev-zone-name-input {
    flex: 1; padding: 8px 11px; border: 1.5px solid #cbd5e1;
    border-radius: 7px; font-size: 0.87rem; color: #1e293b;
}
.ev-zone-name-input:focus { outline: none; border-color: #00419B; }

.ev-zone-save-btn {
    padding: 8px 16px; background: #00419B; color: #fff;
    border: none; border-radius: 7px; font-size: 0.85rem; font-weight: 600;
    cursor: pointer; white-space: nowrap;
}
.ev-zone-save-btn:hover { background: #0056d6; }

.ev-zone-cancel-btn {
    padding: 8px 12px; background: none; color: #64748b;
    border: 1.5px solid #e2e8f0; border-radius: 7px;
    font-size: 0.83rem; cursor: pointer;
}
.ev-zone-cancel-btn:hover { border-color: #94a3b8; color: #1e293b; }

.ev-zones-empty {
    padding: 20px 14px; font-size: 0.85rem; color: #94a3b8;
    text-align: center; font-style: italic;
}

#ev-zones-list { display: flex; flex-direction: column; gap: 8px; padding: 10px 0 4px; }

.ev-zone-card {
    background: #fff; border: 1.5px solid #e2e8f0; border-radius: 10px;
    padding: 12px 14px; transition: border-color 0.15s;
}
.ev-zone-card:hover { border-color: #7c3aed44; }

.ev-zone-card-header {
    display: flex; align-items: center; justify-content: space-between;
    gap: 8px; margin-bottom: 8px; flex-wrap: wrap;
}

.ev-zone-card-left {
    display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
}

.ev-zone-card-name {
    font-weight: 700; font-size: 0.95rem; color: #1e293b;
}

.ev-zone-card-count {
    font-size: 0.75rem; color: #64748b; background: #f1f5f9;
    padding: 2px 8px; border-radius: 20px;
}

.ev-zone-card-actions { display: flex; align-items: center; gap: 8px; }

.ev-zone-manage-btn {
    display: inline-flex; align-items: center; gap: 5px;
    background: #f5f3ff; color: #7c3aed; border: 1.5px solid #ddd6fe;
    border-radius: 7px; padding: 5px 11px; font-size: 0.78rem; font-weight: 600;
    cursor: pointer; white-space: nowrap; transition: all 0.15s;
}
.ev-zone-manage-btn:hover { background: #ede9fe; border-color: #7c3aed; }

.ev-zone-del-btn {
    background: none; border: none; color: #94a3b8; cursor: pointer;
    font-size: 0.9rem; padding: 4px 7px; border-radius: 5px;
    transition: color 0.15s, background 0.15s;
}
.ev-zone-del-btn:hover { color: #dc2626; background: #fee2e2; }

.ev-zone-eq-list {
    display: flex; flex-wrap: wrap; gap: 5px;
    min-height: 22px;
}

.ev-zone-eq-chip {
    background: #ede9fe; color: #6d28d9; font-size: 0.75rem;
    font-weight: 600; padding: 3px 10px; border-radius: 20px;
}

.ev-zone-no-eq {
    font-size: 0.78rem; color: #94a3b8; font-style: italic;
}

/* ═══════════════════════════════════════════════════════════════════════════
   PICKER DE EQUIPAMENTOS POR ZONA
   ═══════════════════════════════════════════════════════════════════════════ */

.zp-wrap { max-width: 640px; margin: 0 auto; padding-bottom: 40px; }

.zp-back-btn {
    display: inline-flex; align-items: center; gap: 6px;
    background: none; border: 1.5px solid #e2e8f0; border-radius: 8px;
    padding: 7px 13px; font-size: 0.84rem; font-weight: 500; color: #475569;
    cursor: pointer; margin-bottom: 16px; transition: all 0.15s;
}
.zp-back-btn:hover { border-color: #7c3aed; color: #7c3aed; background: #f5f3ff; }

.zp-header {
    display: flex; align-items: flex-start; gap: 11px;
    background: #f5f3ff; border: 1.5px solid #ddd6fe; border-radius: 12px;
    padding: 14px 16px; margin-bottom: 14px; color: #6d28d9;
}

.zp-header-zone { font-size: 1.1rem; font-weight: 800; color: #1e293b; line-height: 1.2; }
.zp-header-sub  { font-size: 0.8rem; color: #64748b; margin-top: 2px; }

.zp-search-row { margin-bottom: 10px; }

.zp-search {
    width: 100%; padding: 9px 13px; border: 1.5px solid #cbd5e1;
    border-radius: 8px; font-size: 0.88rem; color: #1e293b; box-sizing: border-box;
}
.zp-search:focus { outline: none; border-color: #7c3aed; box-shadow: 0 0 0 3px rgba(124,58,237,0.1); }

.zp-list { display: flex; flex-direction: column; gap: 7px; }

.zp-eq-row {
    display: flex; align-items: center; justify-content: space-between;
    gap: 10px; background: #fff; border: 1.5px solid #e2e8f0;
    border-radius: 10px; padding: 11px 13px; transition: border-color 0.15s;
}
.zp-eq-row--in { border-color: #7c3aed; background: #f5f3ff; }
.zp-eq-row:hover { border-color: #a78bfa; }

.zp-eq-info { flex: 1; min-width: 0; }

.zp-eq-top {
    display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
    margin-bottom: 3px;
}

.zp-eq-id   { font-weight: 800; font-size: 0.95rem; color: #1e293b; }
.zp-eq-type { font-size: 0.85rem; color: #475569; }
.zp-eq-tpa  { font-size: 0.78rem; color: #64748b; background: #f1f5f9; padding: 1px 7px; border-radius: 5px; }
.zp-eq-status { font-size: 0.78rem; font-weight: 700; }
.zp-eq-resp { font-size: 0.78rem; color: #64748b; margin-bottom: 4px; }
.zp-eq-badges { display: flex; flex-wrap: wrap; gap: 4px; }

.zp-badge {
    font-size: 0.7rem; font-weight: 600; padding: 2px 8px;
    border-radius: 20px; white-space: nowrap;
}
.zp-badge-in    { background: #ede9fe; color: #7c3aed; border: 1px solid #c4b5fd; }
.zp-badge-other { background: #fef9c3; color: #92400e; border: 1px solid #fde68a; }
.zp-badge-event { background: #dbeafe; color: #1d4ed8; border: 1px solid #bfdbfe; }

.zp-btn {
    padding: 7px 14px; border: none; border-radius: 8px;
    font-size: 0.82rem; font-weight: 700; cursor: pointer;
    white-space: nowrap; flex-shrink: 0; transition: all 0.15s;
}
.zp-btn-add    { background: #7c3aed; color: #fff; }
.zp-btn-add:hover { background: #6d28d9; }
.zp-btn-remove { background: #fee2e2; color: #dc2626; border: 1.5px solid #fca5a5; }
.zp-btn-remove:hover { background: #fecaca; }

.zp-empty { text-align: center; color: #94a3b8; font-size: 0.88rem; padding: 24px 0; font-style: italic; }

/* ═══════════════════════════════════════════════════════════════════════════
   PAINEL DE OCORRÊNCIAS v2 (eqp2-*)
   ═══════════════════════════════════════════════════════════════════════════ */

.eqp2-wrap {
    max-width: 680px;
    margin: 0 auto;
    padding-bottom: 48px;
}

.eqp2-back {
    display: inline-flex; align-items: center; gap: 6px;
    background: none; border: 1.5px solid #e2e8f0; border-radius: 9px;
    padding: 7px 14px; font-size: 0.83rem; font-weight: 600; color: #64748b;
    cursor: pointer; margin-bottom: 18px; transition: all 0.15s;
}
.eqp2-back:hover { border-color: #00419B; color: #00419B; background: #eff6ff; }

/* ── Identity card ── */
.eqp2-id-card {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 14px; background: #fff; border: 1.5px solid #e2e8f0;
    border-radius: 16px; padding: 18px 20px; margin-bottom: 12px;
    border-left: 4px solid var(--eq-status-color, #64748b);
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}

.eqp2-id-num {
    font-size: 2rem; font-weight: 900; color: #0f172a; line-height: 1;
    letter-spacing: -0.03em; margin-bottom: 4px;
}

.eqp2-id-type {
    font-size: 0.95rem; color: #475569; font-weight: 500;
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    margin-bottom: 10px;
}

.eqp2-tpa {
    font-size: 0.75rem; background: #f1f5f9; color: #475569;
    padding: 2px 8px; border-radius: 5px; font-weight: 600;
}

.eqp2-id-meta { display: flex; flex-wrap: wrap; gap: 6px; }

.eqp2-meta-chip {
    display: inline-flex; align-items: center; gap: 5px;
    background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 20px;
    padding: 3px 10px; font-size: 0.78rem; color: #475569;
}
.eqp2-meta-chip--zone  { background: #f5f3ff; border-color: #ddd6fe; color: #7c3aed; }
.eqp2-meta-chip--event { background: #eff6ff; border-color: #bfdbfe; color: #1d4ed8; }

.eqp2-status-pill {
    display: inline-flex; align-items: center; gap: 5px;
    background: var(--eq-status-bg, #f8fafc);
    color: var(--eq-status-color, #64748b);
    border: 1.5px solid currentColor; border-radius: 20px;
    padding: 5px 13px; font-size: 0.8rem; font-weight: 700;
    white-space: nowrap; opacity: 0.9;
}

/* ── Stats ── */
.eqp2-stats {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 8px; margin-bottom: 20px;
}

.eqp2-stat {
    background: #f8fafc; border: 1.5px solid #e2e8f0;
    border-radius: 12px; padding: 14px 16px; text-align: center;
}
.eqp2-stat--warn     { background: #fff7ed; border-color: #fed7aa; }
.eqp2-stat--ok       { background: #f0fdf4; border-color: #bbf7d0; }
.eqp2-stat--resolved { background: #f0fdf4; border-color: #bbf7d0; }
.eqp2-stat--total    { background: #eff6ff; border-color: #bfdbfe; }

.eqp2-stat-n {
    display: block; font-size: 1.75rem; font-weight: 900;
    color: #0f172a; line-height: 1; margin-bottom: 5px;
}
.eqp2-stat--warn .eqp2-stat-n     { color: #ea580c; }
.eqp2-stat--ok .eqp2-stat-n       { color: #16a34a; }
.eqp2-stat--resolved .eqp2-stat-n { color: #16a34a; }
.eqp2-stat--total .eqp2-stat-n    { color: #1d4ed8; }

.eqp2-stat-l {
    font-size: 0.75rem; color: #64748b; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.04em;
}

/* ── Timeline label ── */
.eqp2-timeline-label {
    font-size: 0.72rem; font-weight: 700; color: #94a3b8;
    text-transform: uppercase; letter-spacing: 0.08em;
    margin-bottom: 10px; padding-left: 4px;
}

/* ── Issues list ── */
.eqp2-issues-list { display: flex; flex-direction: column; gap: 0; }

.eqp2-issue {
    display: flex; gap: 0; position: relative;
}

.eqp2-issue-side {
    display: flex; flex-direction: column; align-items: center;
    flex-shrink: 0; width: 36px; padding-top: 14px;
}

.eqp2-num {
    width: 26px; height: 26px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 0.72rem; font-weight: 800; flex-shrink: 0; z-index: 1;
    background: #e2e8f0; color: #475569;
}
.eqp2-issue--open .eqp2-num  { background: #fef9c3; color: #92400e; border: 2px solid #fde68a; }
.eqp2-issue--resolved .eqp2-num { background: #f0fdf4; color: #166534; border: 2px solid #bbf7d0; }

.eqp2-timeline-line {
    flex: 1; width: 2px; background: #f1f5f9; min-height: 20px; margin-top: 4px;
}
.eqp2-issue:last-child .eqp2-timeline-line { display: none; }

.eqp2-issue-body {
    flex: 1; min-width: 0;
    background: #fff; border: 1.5px solid #e2e8f0; border-radius: 12px;
    padding: 13px 15px; margin: 8px 0 8px 8px;
    transition: border-color 0.15s;
}
.eqp2-issue--open .eqp2-issue-body   { border-color: #fed7aa; }
.eqp2-issue--resolved .eqp2-issue-body { border-color: #bbf7d0; opacity: 0.8; }

.eqp2-issue-top {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 8px; margin-bottom: 8px; flex-wrap: wrap;
}

.eqp2-issue-who { display: flex; align-items: center; gap: 8px; }

.eqp2-avatar {
    width: 28px; height: 28px; border-radius: 50%;
    background: #dbeafe; color: #1d4ed8; font-weight: 800;
    font-size: 0.75rem; display: flex; align-items: center;
    justify-content: center; flex-shrink: 0;
}
.eqp2-issue--resolved .eqp2-avatar { background: #dcfce7; color: #166534; }

.eqp2-reporter { font-weight: 700; font-size: 0.88rem; color: #1e293b; }

.eqp2-issue-badges {
    display: flex; align-items: center; gap: 5px; flex-wrap: wrap;
}

.eqp2-ts {
    font-size: 0.75rem; color: #64748b; background: #f1f5f9;
    padding: 2px 8px; border-radius: 5px; font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.eqp2-urg {
    font-size: 0.68rem; font-weight: 800; padding: 2px 8px;
    border-radius: 20px; text-transform: uppercase; letter-spacing: 0.06em;
    white-space: nowrap;
}

.eqp2-badge {
    font-size: 0.72rem; font-weight: 700; padding: 2px 9px;
    border-radius: 20px; white-space: nowrap;
}
.eqp2-badge--ok   { color: #16a34a; background: #f0fdf4; border: 1px solid #bbf7d0; }
.eqp2-badge--open { color: #ea580c; background: #fff7ed; border: 1px solid #fed7aa; }

.eqp2-loc {
    font-size: 0.78rem; color: #64748b; margin-bottom: 5px;
}

.eqp2-desc {
    font-size: 0.9rem; color: #334155; line-height: 1.55;
    margin-bottom: 8px;
}

.eqp2-resolucao {
    display: flex; gap: 10px; align-items: flex-start;
    background: #f0fdf4; border: 1px solid #bbf7d0;
    border-left: 3px solid #16a34a; border-radius: 0 8px 8px 0;
    padding: 9px 12px; margin-top: 4px;
}
.eqp2-resolucao-icon {
    color: #16a34a; font-size: 0.85rem; font-weight: 900;
    flex-shrink: 0; margin-top: 1px;
}
.eqp2-resolucao-label {
    display: block; font-size: 0.72rem; font-weight: 800;
    color: #166534; text-transform: uppercase; letter-spacing: 0.05em;
    margin-bottom: 2px;
}
.eqp2-resolucao-text {
    margin: 0; font-size: 0.87rem; color: #166534; line-height: 1.4;
}

.eqp2-empty {
    text-align: center; padding: 40px 16px; color: #94a3b8;
    background: #f8fafc; border-radius: 12px;
    border: 1.5px dashed #e2e8f0;
}
.eqp2-empty p { margin: 12px 0 0; font-size: 0.88rem; }

/* ═══════════════════════════════════════════════════════════════════════════
   ZONAS SUMMARY no Dashboard de Evento
   ═══════════════════════════════════════════════════════════════════════════ */

.evday-zones-summary {
    background: #fff; border: 1.5px solid #e2e8f0; border-radius: 14px;
    padding: 0; overflow: hidden; margin-top: 16px;
}

.evday-zones-summary-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 13px 16px; border-bottom: 1px solid #f1f5f9;
    background: #fafafa;
}

.evday-zones-summary-title {
    display: flex; align-items: center; gap: 7px;
    font-size: 0.88rem; font-weight: 700; color: #334155;
}

.evday-zones-summary-count {
    font-size: 0.78rem; color: #64748b; background: #f1f5f9;
    padding: 2px 10px; border-radius: 20px;
}

.evday-zones-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 1px; background: #f1f5f9;
}

.evday-zone-summary-card {
    background: #fff; padding: 13px 15px;
    transition: background 0.15s;
}
.evday-zone-summary-card--warn { background: #fffbeb; }
.evday-zone-summary-card:hover { background: #f8fafc; }

.evday-zscard-top {
    display: flex; align-items: center; justify-content: space-between;
    gap: 6px; margin-bottom: 6px; flex-wrap: wrap;
}

.evday-zscard-name {
    font-weight: 700; font-size: 0.88rem; color: #1e293b;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    max-width: 100px;
}

.evday-zscard-bottom {
    display: flex; align-items: center; gap: 5px; flex-wrap: wrap;
}

.evday-zsstat {
    display: inline-flex; align-items: center;
    font-size: 0.72rem; font-weight: 600; padding: 2px 8px;
    border-radius: 20px; white-space: nowrap;
}
.evday-zsstat--open   { background: #fef2f2; color: #dc2626; border: 1px solid #fca5a5; }
.evday-zsstat--ok     { background: #f0fdf4; color: #16a34a; border: 1px solid #bbf7d0; }
.evday-zsstat--none   { background: #f8fafc; color: #94a3b8; border: 1px solid #e2e8f0; }
.evday-zsstat--eq     { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; }
.evday-zsstat--total  { background: #f5f3ff; color: #7c3aed; border: 1px solid #ddd6fe; }

/* ═══════════════════════════════════════════════════════════════════════════
   DEFINIÇÕES — Toggle Switch + Tipo de Equipamento
   ═══════════════════════════════════════════════════════════════════════════ */

.def-toggle-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0 6px;
    border-top: 1px solid #f1f5f9;
    margin-top: 10px;
}

.def-toggle-label {
    font-size: 0.88rem;
    color: #334155;
    font-weight: 500;
    flex: 1;
}

/* Toggle switch */
.def-toggle-switch {
    position: relative;
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    flex-shrink: 0;
}

.def-toggle-switch input {
    opacity: 0;
    width: 0;
    height: 0;
    position: absolute;
}

.def-toggle-slider {
    display: block;
    width: 42px;
    height: 24px;
    background: #cbd5e1;
    border-radius: 24px;
    transition: background 0.2s;
    position: relative;
}

.def-toggle-slider::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,0.18);
    transition: transform 0.2s;
}

.def-toggle-switch input:checked + .def-toggle-slider {
    background: #00419B;
}

.def-toggle-switch input:checked + .def-toggle-slider::after {
    transform: translateX(18px);
}

/* Type options area */
.def-type-options {
    padding-top: 6px;
    border-top: 1px solid #f1f5f9;
    margin-top: 8px;
}
.def-type-options.hidden { display: none; }

.def-type-hint {
    font-size: 0.78rem;
    color: #64748b;
    margin: 6px 0 10px;
}

/* eq-type-text input (text mode) */
#eq-type-text {
    width: 100%;
    padding: 9px 12px;
    border: 1.5px solid #cbd5e1;
    border-radius: 8px;
    font-size: 0.9rem;
    color: #1e293b;
    box-sizing: border-box;
    transition: border-color 0.15s;
}
#eq-type-text:focus {
    outline: none;
    border-color: #00419B;
    box-shadow: 0 0 0 3px rgba(0,65,155,0.1);
}
#eq-type-text.hidden { display: none; }
#eq-type-select.hidden { display: none; }

/* ═══════════════════════════════════════════════════════════════════════════
   LAZY REVEAL — paginação por scroll (10 items de cada vez)
   ═══════════════════════════════════════════════════════════════════════════ */
.eq-lazy-hidden {
    display: none !important;
}
.eq-lazy-sentinel {
    height: 1px;
    width: 100%;
    pointer-events: none;
}

/* ═══════════════════════════════════════════════════════════════════════════
   TOP 5 EQUIPAMENTOS COM PROBLEMAS
   ═══════════════════════════════════════════════════════════════════════════ */
.evday-top5-card {
    background: #fff;
    border-radius: 14px;
    border: 1px solid #fecaca;
    box-shadow: 0 1px 6px rgba(220,38,38,.08);
    margin: 0 0 18px 0;
    overflow: hidden;
}
.evday-top5-head {
    display: flex;
    align-items: center;
    gap: 7px;
    font-weight: 700;
    font-size: 0.82rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #dc2626;
    padding: 12px 16px 10px;
    border-bottom: 1px solid #fee2e2;
    background: #fff7f7;
}
.evday-top5-list {
    padding: 4px 0;
}
.evday-top5-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 16px;
    border-bottom: 1px solid #f1f5f9;
    transition: background .12s;
}
.evday-top5-row:last-child { border-bottom: none; }
.evday-top5-row:hover { background: #fef2f2; }
.evday-top5-rank {
    font-size: 1.05rem;
    font-weight: 800;
    width: 20px;
    flex-shrink: 0;
    text-align: center;
}
.evday-top5-info {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    min-width: 0;
}
.evday-top5-id {
    font-weight: 700;
    font-size: 0.88rem;
    color: #1e293b;
}
.evday-top5-type {
    font-size: 0.78rem;
    color: #64748b;
    background: #f1f5f9;
    border-radius: 4px;
    padding: 1px 6px;
}
.evday-top5-tpa {
    font-size: 0.74rem;
    color: #94a3b8;
}
.evday-top5-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    flex-shrink: 0;
}
.evday-top5-open {
    font-size: 0.75rem;
    font-weight: 700;
    color: #dc2626;
    background: #fee2e2;
    border-radius: 5px;
    padding: 1px 7px;
}
.evday-top5-resolved {
    font-size: 0.75rem;
    font-weight: 600;
    color: #16a34a;
}
.evday-top5-total {
    font-size: 0.72rem;
    color: #94a3b8;
}

/* ═══════════════════════════════════════════════════════════════════════════
   VER TODOS — modal de todos os equipamentos do evento
   ═══════════════════════════════════════════════════════════════════════════ */
.evday-top5-footer {
    padding: 8px 12px 12px;
    display: flex;
    justify-content: center;
}
.evday-ver-todos-btn {
    background: none;
    border: 1.5px solid #e2e8f0;
    border-radius: 20px;
    padding: 6px 20px;
    font-size: 0.8rem;
    font-weight: 600;
    color: #475569;
    cursor: pointer;
    transition: all .15s;
}
.evday-ver-todos-btn:hover { background: #f8fafc; border-color: #94a3b8; color: #1e293b; }

.evday-todos-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15,23,42,.45);
    z-index: 9000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}
.evday-todos-overlay.hidden { display: none; }
.evday-todos-modal {
    background: #fff;
    border-radius: 16px;
    width: 100%;
    max-width: 560px;
    max-height: 72vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 8px 40px rgba(0,0,0,.22);
}
.evday-todos-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border-bottom: 1px solid #f1f5f9;
    flex-shrink: 0;
}
.evday-todos-title {
    font-weight: 700;
    font-size: 0.9rem;
    color: #1e293b;
}
.evday-todos-close {
    background: #f1f5f9;
    border: none;
    border-radius: 50%;
    width: 28px; height: 28px;
    font-size: 0.8rem;
    cursor: pointer;
    color: #64748b;
    display: flex; align-items: center; justify-content: center;
}
.evday-todos-list {
    overflow-y: auto;
    padding: 6px 0 16px;
}
.evday-todos-row {
    padding: 10px 18px;
    border-bottom: 1px solid #f8fafc;
    cursor: default;
}
.evday-todos-row:hover { background: #f8fafc; }
.evday-todos-row-main {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.evday-todos-row-id {
    font-weight: 700;
    font-size: 0.9rem;
    color: #1e293b;
}
.evday-todos-row-resp {
    font-size: 0.82rem;
    color: #475569;
}
.evday-todos-row-sub {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 3px;
    flex-wrap: wrap;
}
.evday-todos-row-tpa {
    font-size: 0.76rem;
    font-weight: 700;
    color: #2563eb;
    background: #eff6ff;
    border-radius: 4px;
    padding: 1px 6px;
}
.evday-todos-row-type { font-size: 0.76rem; color: #64748b; }
.evday-todos-row-status { font-size: 0.76rem; font-weight: 600; }
.evday-todos-row-iss {
    font-size: 0.74rem;
    color: #dc2626;
    background: #fee2e2;
    border-radius: 4px;
    padding: 1px 5px;
}

/* ── ID + Responsável como principal em todos os cards ── */
.evday-eq2-secondary,
.eq-card-secondary {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 2px;
}
.evday-eq2-resp-inline,
.eq-card-resp-inline,
.evstaff-eq-resp-inline {
    font-size: 0.8rem;
    color: #475569;
}
.evstaff-eq-top-left {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    flex: 1;
    min-width: 0;
}

/* ── Modo Evento: esconder abas que não fazem parte do fluxo de evento ── */
body.modo-evento-ativo #admin-nav .btn-filter[data-target="tasks-section"],
body.modo-evento-ativo #admin-nav .btn-filter[data-target="calendar-section"],
body.modo-evento-ativo #admin-nav .btn-filter[data-target="events-section"],
body.modo-evento-ativo #admin-nav .btn-filter[data-target="clients-section"],
body.modo-evento-ativo #admin-nav .btn-filter[data-target="billing-section"],
body.modo-evento-ativo #admin-nav .btn-filter[data-target="acessos-section"],
body.modo-evento-ativo #admin-nav .btn-filter[data-target="pedidos-section"],
body.modo-evento-ativo #admin-nav .sidebar-nav-section-label,
body.modo-evento-ativo #admin-mobile-nav .mob-nav-btn[data-amn-target="tasks-section"],
body.modo-evento-ativo #admin-mobile-nav .mob-nav-btn[data-amn-target="calendar-section"],
body.modo-evento-ativo #admin-mobile-nav .mob-nav-btn[data-amn-target="events-section"],
body.modo-evento-ativo #admin-mobile-nav .mob-nav-btn[data-amn-target="clients-section"],
body.modo-evento-ativo #admin-mobile-nav .mob-nav-btn[data-amn-target="billing-section"],
body.modo-evento-ativo #admin-mobile-nav .mob-nav-btn[data-amn-target="acessos-section"],
body.modo-evento-ativo #admin-mobile-nav .mob-nav-btn[data-amn-target="pedidos-section"] {
    display: none !important;
}

/* ── Definições — card de perigo ── */
.def-card-danger { border: 1.5px solid #fca5a5; background: #fff5f5; }
.def-card-title-danger { color: #dc2626; }
.def-btn-danger {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 9px 18px; border-radius: 8px;
    background: #dc2626; color: #fff; font-size: 13.5px; font-weight: 600;
    border: none; cursor: pointer; transition: background .15s;
}
.def-btn-danger:hover { background: #b91c1c; }

/* ── Modal Reiniciar ── */
.reiniciar-overlay {
    position: fixed; inset: 0;
    background: rgba(15,23,42,.55);
    z-index: 9900;
    display: flex; align-items: center; justify-content: center;
    padding: 20px;
}
.reiniciar-overlay.hidden { display: none; }
.reiniciar-modal {
    background: #fff; border-radius: 18px;
    width: 100%; max-width: 480px;
    padding: 32px 28px 28px;
    box-shadow: 0 12px 48px rgba(0,0,0,.22);
    display: flex; flex-direction: column; align-items: center; gap: 0;
}
.reiniciar-icon { font-size: 40px; margin-bottom: 10px; line-height: 1; }
.reiniciar-icon-warn { filter: drop-shadow(0 0 6px #fbbf2488); }
.reiniciar-title {
    font-size: 18px; font-weight: 700; color: #0f172a;
    margin: 0 0 6px; text-align: center;
}
.reiniciar-title-warn { color: #b45309; }
.reiniciar-sub {
    font-size: 13.5px; color: #64748b; text-align: center;
    margin: 0 0 18px; line-height: 1.5;
}
.reiniciar-pw-input {
    width: 100%; padding: 10px 14px; border-radius: 9px;
    border: 1.5px solid #e2e8f0; font-size: 14px;
    outline: none; margin-bottom: 6px; box-sizing: border-box;
}
.reiniciar-pw-input:focus { border-color: #6366f1; }
.reiniciar-pw-error {
    font-size: 12.5px; color: #dc2626; width: 100%;
    margin-bottom: 14px; text-align: left;
}
.reiniciar-pw-error.hidden { display: none; }
.reiniciar-btns {
    display: flex; gap: 10px; width: 100%; margin-top: 20px;
    justify-content: flex-end;
}
.reiniciar-btn-cancel {
    padding: 9px 18px; border-radius: 8px; border: 1.5px solid #e2e8f0;
    background: #fff; color: #475569; font-size: 13.5px; font-weight: 600;
    cursor: pointer; transition: background .15s;
}
.reiniciar-btn-cancel:hover { background: #f1f5f9; }
.reiniciar-btn-next {
    padding: 9px 18px; border-radius: 8px; border: none;
    background: #6366f1; color: #fff; font-size: 13.5px; font-weight: 600;
    cursor: pointer; transition: background .15s;
}
.reiniciar-btn-next:hover { background: #4f46e5; }
.reiniciar-btn-danger {
    padding: 9px 18px; border-radius: 8px; border: none;
    background: #dc2626; color: #fff; font-size: 13.5px; font-weight: 600;
    cursor: pointer; transition: background .15s, opacity .15s;
}
.reiniciar-btn-danger:disabled {
    background: #fca5a5; cursor: not-allowed; opacity: .7;
}
.reiniciar-btn-danger:not(:disabled):hover { background: #b91c1c; }
.reiniciar-aviso {
    background: #fff7ed; border: 1.5px solid #fed7aa;
    border-radius: 10px; padding: 16px 18px;
    font-size: 13px; color: #431407; line-height: 1.6;
    width: 100%; box-sizing: border-box; margin-bottom: 4px;
}
.reiniciar-aviso ul { margin: 8px 0; padding-left: 4px; list-style: none; }
.reiniciar-aviso ul li { margin-bottom: 4px; }
.reiniciar-aviso-final { margin-top: 10px; color: #991b1b; font-weight: 600; }
.reiniciar-countdown-wrap {
    font-size: 13px; color: #64748b; margin-top: 12px;
    text-align: center; width: 100%;
}
.reiniciar-countdown-wrap strong { color: #dc2626; font-size: 16px; }

.reiniciar-aviso-keep {
    margin-top: 8px; color: #166534; font-weight: 600;
}

/* ── Def: alterar senha ── */
.def-pw-form { display: flex; flex-direction: column; gap: 8px; }
.def-pw-msg { font-size: 12.5px; padding: 7px 10px; border-radius: 7px; margin-top: 2px; }
.def-pw-msg.hidden { display: none; }
.def-pw-msg--ok { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.def-pw-msg--err { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }

/* ── Def: cargos + urgências shared ── */
.def-color-input {
    width: 36px; height: 32px; border: 1.5px solid #e2e8f0; border-radius: 7px;
    padding: 2px; cursor: pointer; background: none;
}
.form-select-cargo {
    width: 100%; padding: 9px 12px; border-radius: 9px;
    border: 1.5px solid #e2e8f0; font-size: 14px;
    background: #fff; color: #0f172a; outline: none;
}
.form-select-cargo:focus { border-color: #6366f1; }

/* ── Def: urgência list ── */
.def-urg-item {
    display: flex; align-items: center; gap: 8px;
    padding: 7px 4px; border-bottom: 1px solid #f1f5f9;
}
.def-urg-item:last-child { border-bottom: none; }
.def-urg-badge {
    padding: 3px 10px; border-radius: 20px; font-size: 12px;
    font-weight: 700; color: #fff; min-width: 70px; text-align: center;
}
.def-urg-critical-tag {
    font-size: 10.5px; color: #dc2626; font-weight: 600;
    background: #fef2f2; border-radius: 5px; padding: 2px 6px;
}
.def-urg-actions { display: flex; align-items: center; gap: 5px; margin-left: auto; }
.def-urg-up, .def-urg-down {
    padding: 3px 7px; border-radius: 5px; border: 1.5px solid #e2e8f0;
    background: #f8fafc; font-size: 13px; cursor: pointer;
    color: #475569; transition: background .12s;
}
.def-urg-up:hover, .def-urg-down:hover { background: #e2e8f0; }
.def-urg-add-row { align-items: center; }

/* ── User cargo tag ── */
.upro-cargo-tag {
    display: inline-block; padding: 2px 9px; border-radius: 20px;
    background: #f0f9ff; color: #0369a1; font-size: 12px; font-weight: 600;
    border: 1px solid #bae6fd; margin-bottom: 2px;
}
.acessos-user-cargo {
    font-size: 11.5px; color: #0369a1; font-weight: 600;
    background: #f0f9ff; border-radius: 5px; padding: 1px 6px;
    display: block;
}

/* ── Exportar Relatório Excel (Event Day Panel) ── */
.evday-export-row {
    display: flex; align-items: center; gap: 12px;
    margin-top: 16px; padding: 14px 18px;
    background: #f8faff; border: 1.5px solid #dbeafe;
    border-radius: 14px;
}

.evday-export-report-btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 9px 18px; border-radius: 8px;
    background: #1d4ed8; color: #fff;
    border: none; cursor: pointer;
    font-size: 0.88rem; font-weight: 700;
    letter-spacing: -0.01em;
    transition: background 0.15s, transform 0.1s;
    white-space: nowrap; flex-shrink: 0;
}
.evday-export-report-btn:hover { background: #1e40af; }
.evday-export-report-btn:active { transform: scale(0.97); }

.evday-export-row-note {
    font-size: 0.78rem; color: #64748b; line-height: 1.4;
}

/* ── Problemas export button ── */
.evday-export-problems-btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 9px 18px; border-radius: 8px;
    background: #dc2626; color: #fff;
    border: none; cursor: pointer;
    font-size: 0.88rem; font-weight: 700;
    letter-spacing: -0.01em;
    transition: background 0.15s, transform 0.1s;
    white-space: nowrap; flex-shrink: 0;
}
.evday-export-problems-btn:hover { background: #b91c1c; }
.evday-export-problems-btn:active { transform: scale(0.97); }

.evday-export-row-note-line {
    font-size: 0.75rem; color: #64748b; line-height: 1.4;
    margin-top: 6px; padding: 0 2px;
}

/* ── Solution display in issue cards ── */
.evday-issue2-solution {
    display: flex; align-items: flex-start; gap: 5px;
    font-size: 0.81rem; color: #15803d;
    background: #f0fdf4; border: 1px solid #bbf7d0;
    border-radius: 6px; padding: 5px 8px;
    margin-top: 4px; line-height: 1.4;
}
.evday-issue2-solution svg { flex-shrink: 0; margin-top: 2px; stroke: #16a34a; }

.ev-dd-assist-solution {
    display: flex; align-items: flex-start; gap: 5px;
    font-size: 0.81rem; color: #15803d;
    background: #f0fdf4; border: 1px solid #bbf7d0;
    border-radius: 6px; padding: 5px 8px;
    margin: 4px 0; line-height: 1.4;
}
.ev-dd-assist-solution svg { flex-shrink: 0; margin-top: 2px; stroke: #16a34a; }

.ev-oc-solution {
    display: flex; align-items: flex-start; gap: 5px;
    font-size: 0.8rem; color: #15803d;
    background: #f0fdf4; border: 1px solid #bbf7d0;
    border-radius: 6px; padding: 4px 8px;
    margin-top: 4px; line-height: 1.4;
}
.ev-oc-solution svg { flex-shrink: 0; margin-top: 2px; stroke: #16a34a; }

/* ── Post-event problems button ── */
.ev-postevent-export-btn-problems {
    background: #dc2626;
}
.ev-postevent-export-btn-problems:hover { background: #b91c1c; }

/* ── Admin report form — rich version ── */
.evday-rf-label {
    font-size: 0.78rem; font-weight: 700; color: #374151;
    text-transform: uppercase; letter-spacing: 0.05em;
    margin: 10px 0 4px;
}
.evday-rf-label:first-child { margin-top: 0; }
.evday-rf-label-opt {
    font-weight: 400; text-transform: none; color: #9ca3af;
    letter-spacing: 0;
}
.evday-rf-eq-wrap { position: relative; }
.evday-rf-search {
    width: 100%; box-sizing: border-box;
    padding: 8px 11px; border-radius: 7px;
    border: 1.5px solid #e2e8f0; font-size: 0.88rem;
    background: #fff; outline: none;
    transition: border-color 0.15s;
}
.evday-rf-search:focus { border-color: #3b82f6; }
.evday-rf-results {
    position: absolute; top: calc(100% + 3px); left: 0; right: 0;
    background: #fff; border: 1.5px solid #dbeafe;
    border-radius: 8px; z-index: 40;
    box-shadow: 0 4px 14px rgba(0,0,0,0.10);
    max-height: 200px; overflow-y: auto;
}
.evday-rf-selected {
    margin-top: 5px; padding: 5px 10px;
    background: #eff6ff; border: 1.5px solid #bfdbfe;
    border-radius: 6px; font-size: 0.82rem; color: #1d4ed8;
    cursor: pointer; font-weight: 600;
}
.evday-rf-selected:hover { background: #dbeafe; }
.evday-rf-sug-wrap {
    display: flex; flex-wrap: wrap; gap: 6px;
    margin-bottom: 6px;
}
.evday-rf-row2 {
    display: flex; gap: 8px; margin-top: 6px;
}
.evday-rf-row2 .evday-report-sel { flex: 1; }
