/* =====================================================
   Sistema de Inventário TI - Invy
   Desenvolvido por Diogo
===================================================== */

/* ================= RESET / BASE ================= */

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

:root {
    --bg: #05070c;
    --bg-2: #080d16;
    --panel: #0b1017;
    --panel-2: #0f1623;
    --border: #1f2937;
    --border-soft: rgba(255,255,255,0.08);
    --text: #f5f7fb;
    --muted: #a7b0bd;
    --red: #e01919;
    --red-dark: #9f1111;
    --red-soft: #ff4d4d;
    --green: #22c55e;
    --shadow: 0 18px 40px rgba(0,0,0,0.35);
    --radius: 18px;
    --radius-lg: 24px;
}

html {
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    font-family: Arial, Helvetica, sans-serif;
    background:
        radial-gradient(circle at top left, rgba(224,25,25,0.09), transparent 28%),
        radial-gradient(circle at top right, rgba(30,41,59,0.9), transparent 30%),
        linear-gradient(135deg, #020617 0%, var(--bg) 45%, #020617 100%);
    color: var(--text);
}

a {
    color: inherit;
}

img {
    max-width: 100%;
}

/* ================= LAYOUT PRINCIPAL ================= */

.layout {
    display: flex;
    min-height: 100vh;
}

.sidebar {
    width: 290px;
    background:
        radial-gradient(circle at top, rgba(224,25,25,0.08), transparent 30%),
        linear-gradient(180deg, #070b12 0%, #05080d 100%);
    border-right: 1px solid rgba(255,255,255,0.06);
    padding: 28px 18px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: sticky;
    top: 0;
    height: 100vh;
}

.logo {
    margin-bottom: 28px;
    padding: 14px 10px;
}

.logo-invy {
    font-size: 68px;
    font-weight: 900;
    line-height: 0.95;
    letter-spacing: 2px;
    color: #ffffff;
    text-shadow: 0 0 24px rgba(224,25,25,0.14);
}

.logo-invy .m {
    color: var(--red);
}

.logo-sub {
    font-size: 12px;
    letter-spacing: 2px;
    color: #d7dce4;
    margin-top: 8px;
}

.menu-title {
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 12px;
    margin: 16px 10px 10px;
}

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

.menu a {
    color: #eef2f8;
    text-decoration: none;
    padding: 14px 16px;
    border-radius: 14px;
    border: 1px solid transparent;
    display: flex;
    align-items: center;
    gap: 12px;
    transition: 0.22s ease;
    background: rgba(255,255,255,0.02);
}

.menu a:hover,
.menu a.active {
    background: linear-gradient(90deg, rgba(224,25,25,0.20), rgba(224,25,25,0.07));
    border-color: rgba(224,25,25,0.55);
    box-shadow: 0 10px 24px rgba(224,25,25,0.08);
    transform: translateX(2px);
}

.nav-mark {
    width: 28px;
    height: 28px;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 8px;
    background: rgba(255,255,255,0.06);
    color: #fecaca;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.4px;
}

.menu a.active .nav-mark,
.menu a:hover .nav-mark {
    background: rgba(224,25,25,0.22);
    color: #ffffff;
}

.creator-box {
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 18px;
    padding: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.012));
    box-shadow: 0 18px 34px rgba(0,0,0,0.22);
}

.creator-box .small {
    color: var(--muted);
    font-size: 13px;
    margin-bottom: 8px;
}

.creator-box .name {
    color: var(--red-soft);
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 6px;
}

.creator-box .version {
    color: #cdd4df;
    font-size: 13px;
}

.content {
    flex: 1;
    padding: 32px;
}

.topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}

h1 {
    font-size: 38px;
    margin-bottom: 8px;
    letter-spacing: -0.8px;
}

.subtitle {
    color: var(--muted);
    font-size: 17px;
}

.muted {
    color: var(--muted);
    font-size: 13px;
}

/* ================= BOTÕES ================= */

.btn,
button {
    border: none;
    text-decoration: none;
    cursor: pointer;
    border-radius: 14px;
    padding: 13px 18px;
    font-weight: bold;
    font-size: 15px;
    transition: 0.2s ease;
    display: inline-block;
}

.btn:hover,
button:hover {
    transform: translateY(-1px);
}

.btn-primary {
    background: linear-gradient(135deg, #ff1f1f, #b90f0f);
    color: #fff;
    box-shadow: 0 12px 24px rgba(224,25,25,0.18);
}

.btn-primary:hover {
    box-shadow: 0 16px 30px rgba(224,25,25,0.32);
}

.btn-secondary {
    background: #293140;
    color: #fff;
}

.btn-danger {
    background: #7f1616;
    color: #fff;
}

.btn-outline {
    background: transparent;
    color: var(--red-soft);
    border: 1px solid rgba(224,25,25,0.65);
}

/* ================= PAINÉIS / CARDS ================= */

.panel {
    border: 1px solid rgba(224,25,25,0.45);
    border-radius: 24px;
    padding: 24px;
    background:
        linear-gradient(180deg, rgba(15,21,32,0.96), rgba(10,14,22,0.98));
    box-shadow: 0 20px 45px rgba(0,0,0,0.24);
}

.section-title {
    color: var(--red-soft);
    font-size: 22px;
    font-weight: bold;
    margin-bottom: 18px;
}

.section-spacer {
    margin-top: 28px;
}

/* ================= GRIDS ================= */

.grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(180px, 1fr));
    gap: 16px;
}

.grid-3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    gap: 16px;
}

.grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(180px, 1fr));
    gap: 16px;
}

.full {
    grid-column: 1 / -1;
}

/* ================= FORMULÁRIOS ================= */

label {
    display: block;
    margin-bottom: 8px;
    color: #eef2f8;
    font-size: 14px;
    font-weight: 600;
}

input,
select,
textarea {
    width: 100%;
    background: #0b1018;
    border: 1px solid #2d3748;
    border-radius: 14px;
    padding: 14px;
    color: white;
    font-size: 15px;
    outline: none;
    transition: 0.2s ease;
}

input::placeholder,
textarea::placeholder {
    color: rgba(203,213,225,0.58);
}

input:focus,
select:focus,
textarea:focus {
    border-color: rgba(224,25,25,0.9);
    box-shadow: 0 0 0 4px rgba(224,25,25,0.11);
}

textarea {
    min-height: 110px;
    resize: vertical;
}

.actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid rgba(255,255,255,0.08);
}

/* ================= BUSCA / FILTROS ================= */

.search-box {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 22px;
}

.search-box input,
.search-box select {
    min-width: 190px;
    flex: 1;
}

/* ================= DASHBOARD / STATS ================= */

.stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(160px, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}

.stat-box {
    background:
        radial-gradient(circle at top right, rgba(224,25,25,0.10), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.015));
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 18px;
    padding: 18px;
    box-shadow: 0 16px 30px rgba(0,0,0,0.18);
}

.stat-box h3 {
    color: var(--red-soft);
    font-size: 30px;
    margin-bottom: 6px;
}

/* ================= TABELAS ================= */

table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 10px;
}

th,
td {
    padding: 14px 10px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    text-align: left;
    vertical-align: top;
    font-size: 14px;
}

th {
    color: #ff6767;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

tbody tr {
    transition: 0.18s ease;
}

tbody tr:hover {
    background: rgba(255,255,255,0.025);
}

/* ================= FOTOS ================= */

.thumb-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin-top: 14px;
}

.thumb-card {
    background: #0b1018;
    border: 1px solid #2d3748;
    border-radius: 14px;
    padding: 10px;
}

.thumb-card img {
    width: 100%;
    height: 220px;
    object-fit: contain;
    background: #070b12;
    border-radius: 10px;
    display: block;
    padding: 6px;
}

.photo-action-badge {
    display: inline-block;
    margin-top: 8px;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: bold;
    border: 1px solid rgba(255,255,255,0.12);
    background: rgba(255,255,255,0.06);
}

/* ================= HISTÓRICO / LOGS ================= */

.history-card {
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 18px;
    padding: 18px;
    margin-bottom: 16px;
    background: rgba(255,255,255,0.02);
}

.history-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.history-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    gap: 12px;
}

.badge {
    display: inline-block;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid rgba(224,25,25,0.55);
    background: rgba(224,25,25,0.16);
    font-size: 13px;
    font-weight: bold;
}

/* ================= AÇÕES INLINE ================= */

.inline-action-form {
    display: inline-flex;
    margin: 0;
}

.inline-action-form button {
    font: inherit;
}

/* ================= AVISOS DO SISTEMA ================= */

.toast-stack {
    position: fixed;
    top: 22px;
    right: 24px;
    z-index: 9999;
    width: min(420px, calc(100vw - 32px));
    display: grid;
    gap: 12px;
    pointer-events: none;
}

.toast-message {
    position: relative;
    display: grid;
    grid-template-columns: 42px 1fr 34px;
    gap: 12px;
    align-items: center;
    min-height: 74px;
    padding: 14px 12px 16px 14px;
    border-radius: 16px;
    background:
        linear-gradient(180deg, rgba(15,23,42,0.98), rgba(7,11,18,0.98));
    border: 1px solid rgba(148,163,184,0.18);
    box-shadow:
        0 22px 60px rgba(0,0,0,0.45),
        inset 0 1px 0 rgba(255,255,255,0.05);
    overflow: hidden;
    opacity: 0;
    transform: translateX(28px);
    animation: toastIn 0.28s ease forwards;
    pointer-events: auto;
}

.toast-message::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: #94a3b8;
}

.toast-success::before {
    background: var(--green);
}

.toast-error::before {
    background: var(--red);
}

.toast-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: rgba(148,163,184,0.12);
    color: #dbeafe;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.3px;
}

.toast-success .toast-icon {
    background: rgba(34,197,94,0.14);
    color: #86efac;
}

.toast-error .toast-icon {
    background: rgba(224,25,25,0.16);
    color: #fca5a5;
}

.toast-body {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.toast-body strong {
    color: #f8fafc;
    font-size: 14px;
    line-height: 1.2;
}

.toast-body span {
    color: #cbd5e1;
    font-size: 14px;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.toast-close {
    width: 30px;
    height: 30px;
    padding: 0;
    border-radius: 10px;
    background: rgba(255,255,255,0.06);
    color: #cbd5e1;
    font-size: 22px;
    line-height: 1;
    display: grid;
    place-items: center;
}

.toast-close:hover {
    background: rgba(255,255,255,0.12);
    transform: none;
}

.toast-progress {
    position: absolute;
    left: 4px;
    right: 0;
    bottom: 0;
    height: 3px;
    background: linear-gradient(90deg, rgba(255,255,255,0.6), rgba(255,255,255,0.08));
    transform-origin: left;
    animation: toastProgress 5.2s linear forwards;
}

.toast-message.is-hiding {
    animation: toastOut 0.22s ease forwards;
}

/* =====================================================
   LOGIN FINAL - Invy (LIMPO, COMPATÍVEL COM LUCIDE)
===================================================== */

.login-page {
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 20px;
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 0% 28%, rgba(224,25,25,0.46), transparent 24%),
        radial-gradient(circle at 88% 80%, rgba(224,25,25,0.34), transparent 30%),
        radial-gradient(circle at 56% 42%, rgba(224,25,25,0.12), transparent 22%),
        linear-gradient(135deg, #020617 0%, #060a12 46%, #0f172a 100%);
}

.login-page::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background-image:
        radial-gradient(circle, rgba(255,255,255,0.105) 1px, transparent 1.5px),
        linear-gradient(135deg, transparent 0 44%, rgba(224,25,25,0.20) 44.4% 44.8%, transparent 45.2%),
        linear-gradient(135deg, transparent 0 60%, rgba(224,25,25,0.13) 60.3% 60.7%, transparent 61.1%);
    background-size: 32px 32px, 520px 520px, 720px 720px;
    background-position: -8px -8px, -210px 180px, 780px -40px;
    opacity: 0.42;
    animation: bgMove 18s linear infinite;
}

.login-page::after {
    content: "";
    position: fixed;
    width: 520px;
    height: 520px;
    right: -170px;
    bottom: -210px;
    background: rgba(224,25,25,0.26);
    filter: blur(95px);
    border-radius: 999px;
    pointer-events: none;
    animation: redGlowMove 6s ease-in-out infinite alternate;
}

.login-card {
    width: 100%;
    max-width: 640px;
    min-height: auto;
    margin: 0 auto;
    padding: 42px 58px 36px;
    border-radius: 26px;
    background:
        radial-gradient(circle at 50% 0%, rgba(255,255,255,0.055), transparent 36%),
        rgba(11,16,23,0.88);
    border: 1px solid rgba(224,25,25,0.82);
    box-shadow:
        0 0 0 1px rgba(255,255,255,0.035),
        0 0 45px rgba(224,25,25,0.24),
        0 30px 82px rgba(0,0,0,0.74);
    backdrop-filter: blur(16px);
    position: relative;
    z-index: 2;
    animation: cardEnter 0.75s ease forwards;
}

.login-card::before {
    content: none !important;
}

.login-icon {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 14px;
    animation: iconFloat 4s ease-in-out infinite;
}

/* Ícone principal Lucide: shield-user */
.shield-icon {
    width: 70px;
    height: 70px;
    fill: none !important;
    stroke: #ff2b2b;
    color: #ff2b2b;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
    filter: none;
    animation: none;
    transition: 0.2s ease;
}

.shield-icon:hover {
    transform: scale(1.06);
    filter:
        drop-shadow(0 0 12px rgba(255,43,43,1))
        drop-shadow(0 0 25px rgba(255,43,43,0.62));
}

/* Evita SVG quebrado/preto dentro do login */
.login-card svg {
    display: block;
    max-width: none;
    fill: none !important;
}

.login-card svg path,
.login-card svg circle,
.login-card svg rect,
.login-card svg line {
    fill: none !important;
    stroke: currentColor;
}

.login-header {
    text-align: center;
}

.login-card h1 {
    font-size: 42px;
    line-height: 1.08;
    text-align: center;
    margin-bottom: 10px;
    letter-spacing: -1px;
    color: #ffffff;
    text-shadow: 0 10px 28px rgba(0,0,0,0.38);
}

.login-card .subtitle {
    text-align: center;
    margin-bottom: 30px;
    color: #cbd5e1;
    font-size: 18px;
}

.login-field {
    margin-bottom: 20px;
}

.login-card label {
    font-weight: 700;
    font-size: 15px;
    margin-bottom: 10px;
}

.input-icon {
    position: relative;
}

.field-icon {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    color: #cbd5e1;
    fill: none !important;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: 0.88;
    pointer-events: none;
    transition: 0.2s ease;
}

.input-icon:hover .field-icon {
    color: #ff3131;
}

.input-icon input,
.login-card input {
    width: 100%;
    height: 58px;
    background: rgba(11,16,28,0.72);
    border: 1px solid rgba(148,163,184,0.28);
    border-radius: 13px;
    padding: 0 58px 0 58px;
    color: #fff;
    font-size: 16px;
    outline: none;
    transition: 0.25s ease;
}

.input-icon input::placeholder,
.login-card input::placeholder {
    color: rgba(203,213,225,0.58);
}

.input-icon input:focus,
.login-card input:focus {
    border-color: rgba(255,49,49,0.9);
    box-shadow:
        0 0 0 4px rgba(224,25,25,0.14),
        0 0 18px rgba(224,25,25,0.16);
    transform: translateY(-1px);
}

/* Campo senha com olho à direita */
#password {
    padding-right: 56px !important;
}

.toggle-password {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    cursor: pointer;
    opacity: 0.65;
    transition: 0.2s ease;
    color: #94a3b8;
}

.toggle-password:hover {
    opacity: 1;
}

.toggle-password svg,
.eye-icon {
    width: 20px;
    height: 20px;
    fill: none !important;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.toggle-password:hover svg {
    color: #ff3131;
    filter: drop-shadow(0 0 5px rgba(255,49,49,0.5));
}

.login-actions,
.login-card .actions {
    margin-top: 22px;
    border-top: none;
    padding-top: 0;
}

.login-card .btn,
.login-card button,
.login-card input[type="submit"] {
    width: 100%;
    height: 60px;
    border-radius: 13px;
    background: linear-gradient(135deg, #ff2323 0%, #e01919 44%, #970f0f 100%);
    color: #fff;
    font-size: 17px;
    font-weight: 800;
    box-shadow:
        0 16px 34px rgba(224,25,25,0.30),
        inset 0 1px 0 rgba(255,255,255,0.18);
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.login-card .btn:hover,
.login-card button:hover,
.login-card input[type="submit"]:hover {
    transform: translateY(-2px);
    box-shadow:
        0 22px 44px rgba(224,25,25,0.46),
        inset 0 1px 0 rgba(255,255,255,0.18);
}

.login-card button::before {
    content: "";
    position: absolute;
    top: 0;
    left: -120%;
    width: 70%;
    height: 100%;
    background: linear-gradient(120deg, transparent, rgba(255,255,255,0.35), transparent);
    transform: skewX(-20deg);
}

.login-card button:hover::before {
    animation: buttonShine 0.8s ease;
}

.login-card button::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent, rgba(255,255,255,0.20), transparent);
    opacity: 0;
    transition: 0.35s;
}

.login-card button:hover::after {
    opacity: 1;
}

.btn-arrow {
    position: absolute;
    right: 24px;
    font-size: 26px;
    line-height: 1;
}

.footer-brand {
    text-align: center;
    margin-top: 34px;
    padding-top: 24px;
    border-top: 1px solid rgba(255,255,255,0.12);
    color: #d2d8e1;
    font-size: 14px;
}

.footer-brand strong {
    display: block;
    margin: 0 0 10px;
    color: var(--red-soft);
    font-size: 40px;
    line-height: 1;
    letter-spacing: 2px;
    text-shadow: 0 0 24px rgba(224,25,25,0.24);
}

.footer-brand span,
.footer-brand small {
    display: block;
}

.footer-brand small {
    margin-top: 4px;
    color: #cbd5e1;
}

.footer-brand b {
    color: var(--red-soft);
}

/* ================= ANIMAÇÕES ================= */

@keyframes toastIn {
    from {
        opacity: 0;
        transform: translateX(28px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes toastOut {
    to {
        opacity: 0;
        transform: translateX(28px);
    }
}

@keyframes toastProgress {
    to {
        transform: scaleX(0);
    }
}

@keyframes cardEnter {
    from {
        opacity: 0;
        transform: translateY(22px) scale(0.96);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes iconFloat {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-4px);
    }
}

@keyframes shieldGlow {
    0%, 100% {
        filter:
            drop-shadow(0 0 8px rgba(255,49,49,0.55))
            drop-shadow(0 0 18px rgba(255,49,49,0.35));
    }
    50% {
        filter:
            drop-shadow(0 0 14px rgba(255,49,49,0.95))
            drop-shadow(0 0 32px rgba(255,49,49,0.65));
    }
}

@keyframes redGlowMove {
    from {
        transform: translate(0, 0) scale(1);
        opacity: 0.75;
    }
    to {
        transform: translate(-80px, -40px) scale(1.15);
        opacity: 1;
    }
}

@keyframes bgMove {
    from {
        background-position: -8px -8px, -210px 180px, 780px -40px;
    }
    to {
        background-position: 80px 80px, -90px 300px, 650px 90px;
    }
}

@keyframes buttonShine {
    from {
        left: -120%;
    }
    to {
        left: 130%;
    }
}

/* ================= RESPONSIVO ================= */

@media (max-width: 1200px) {
    .grid,
    .grid-3,
    .grid-2,
    .stats,
    .history-grid {
        grid-template-columns: repeat(2, minmax(180px, 1fr));
    }
}

@media (max-width: 900px) {
    .layout {
        flex-direction: column;
    }

    .sidebar {
        width: 100%;
        position: relative;
        height: auto;
        border-right: none;
        border-bottom: 1px solid rgba(255,255,255,0.08);
    }

    .content {
        padding: 24px;
    }
}

@media (max-width: 700px) {
    h1 {
        font-size: 30px;
    }

    .grid,
    .grid-3,
    .grid-2,
    .stats,
    .history-grid {
        grid-template-columns: 1fr;
    }

    table,
    thead,
    tbody,
    th,
    td,
    tr {
        display: block;
    }

    thead {
        display: none;
    }

    tr {
        border: 1px solid rgba(255,255,255,0.08);
        border-radius: 14px;
        margin-bottom: 12px;
        overflow: hidden;
    }

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

    td::before {
        content: attr(data-label);
        display: block;
        color: #ff6767;
        font-weight: bold;
        margin-bottom: 6px;
    }

    .login-page {
        padding: 24px 14px;
        overflow-y: auto;
    }

    .login-card {
        max-width: 100%;
        padding: 30px 24px;
        border-radius: 22px;
    }

    .login-icon {
        margin-bottom: 14px;
        
    }

    .shield-icon {
        width: 68px;
        height: 68px;
    }

    .login-card h1 {
        font-size: 32px;
    }

    .login-card .subtitle {
        font-size: 15px;
        margin-bottom: 22px;
    }

    .toast-stack {
        top: 14px;
        right: 14px;
        left: 14px;
        width: auto;
    }

    .toast-message {
        grid-template-columns: 36px 1fr 30px;
        min-height: 68px;
    }
}

@media (max-width: 420px) {
    .login-card {
        padding: 26px 18px;
    }

    .login-card h1 {
        font-size: 28px;
    }

    .footer-brand strong {
        font-size: 34px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .login-card,
    .login-icon,
    .shield-icon,
    .login-page::before,
    .login-page::after,
    .login-card button::before,
    .toast-message,
    .toast-progress {
        animation: none !important;
    }
}
/* ===== REFINO FINAL LOGIN ===== */

.login-card {
    max-width: 580px !important;
    padding: 44px 54px 38px !important;
}

.shield-icon {
    width: 68px !important;
    height: 68px !important;
}

.login-card h1 {
    font-size: 38px !important;
}

.login-card .subtitle {
    font-size: 16px !important;
    margin-bottom: 30px !important;
}

.input-icon input {
    height: 56px !important;
    font-size: 15px !important;
}

.login-card button {
    height: 58px !important;
    font-size: 16px !important;
}

/* ===== RODAPÉ LOGIN MAIS PROFISSIONAL ===== */


.footer-brand {
    margin-top: 30px;
    padding-top: 18px;
    border-top: 1px solid rgba(255,255,255,0.06);
    text-align: center;
}

.footer-brand span {
    display: block;
    font-size: 13px;
    color: #9ca3af;
}

.footer-brand small {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    color: #6b7280;
}

/* =====================================================
   LOGIN EMPRESARIAL - Invy
===================================================== */

body.login-page {
    min-height: 100vh;
    min-height: 100svh;
    display: grid;
    place-items: center;
    padding: 28px;
    overflow: auto;
    background:
        linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px),
        linear-gradient(135deg, #05070c 0%, #080d16 46%, #111827 100%);
    background-size: 44px 44px, 44px 44px, auto;
}

body.login-page::before,
body.login-page::after {
    content: none;
}

.login-shell {
    width: min(1120px, 100%);
    min-height: 680px;
    display: grid;
    grid-template-columns: minmax(360px, 0.95fr) minmax(420px, 1.05fr);
    overflow: hidden;
    border: 1px solid rgba(148,163,184,0.18);
    border-radius: 22px;
    background: rgba(7,11,18,0.94);
    box-shadow:
        0 26px 80px rgba(0,0,0,0.58),
        inset 0 1px 0 rgba(255,255,255,0.05);
}

.login-visual {
    position: relative;
    display: grid;
    grid-template-rows: auto 1fr auto;
    min-height: 100%;
    padding: 34px;
    background:
        linear-gradient(180deg, rgba(224,25,25,0.13), rgba(224,25,25,0.02) 42%),
        linear-gradient(135deg, #070b12 0%, #0c111d 100%);
    border-right: 1px solid rgba(148,163,184,0.14);
}

.login-visual::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(135deg, transparent 0 48%, rgba(255,255,255,0.045) 48% 48.4%, transparent 48.8%),
        linear-gradient(45deg, transparent 0 66%, rgba(224,25,25,0.14) 66% 66.4%, transparent 66.8%);
    background-size: 360px 360px, 460px 460px;
    opacity: 0.56;
}

.login-brand,
.login-art,
.login-visual-footer {
    position: relative;
    z-index: 1;
}

.login-brand {
    display: grid;
    gap: 8px;
}

.login-logo {
    color: #ffffff;
    font-size: 56px;
    font-weight: 900;
    line-height: 0.9;
    letter-spacing: 1px;
}

.login-logo span {
    color: var(--red);
}

.login-system {
    color: #cbd5e1;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.login-art {
    display: grid;
    place-items: center;
    padding: 26px 0;
}

.login-art img {
    width: min(360px, 86%);
    aspect-ratio: 1;
    object-fit: contain;
    opacity: 0.92;
    filter:
        drop-shadow(0 22px 42px rgba(0,0,0,0.55))
        drop-shadow(0 0 26px rgba(224,25,25,0.20));
}

.login-visual-footer {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-top: 20px;
    border-top: 1px solid rgba(148,163,184,0.12);
    color: #94a3b8;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
}

.login-panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 58px;
    background:
        linear-gradient(180deg, rgba(15,23,42,0.96), rgba(9,13,22,0.98));
}

.login-panel-head {
    margin-bottom: 30px;
}

.login-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 6px 10px;
    margin-bottom: 18px;
    border-radius: 999px;
    border: 1px solid rgba(224,25,25,0.36);
    background: rgba(224,25,25,0.10);
    color: #fecaca;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.7px;
}

.login-panel h1 {
    margin: 0 0 10px;
    color: #f8fafc;
    font-size: 36px;
    line-height: 1.12;
    letter-spacing: 0;
}

.login-panel p {
    max-width: 420px;
    color: #a7b0bd;
    font-size: 15px;
    line-height: 1.55;
}

.login-form {
    display: grid;
    gap: 18px;
}

.login-field {
    display: grid;
    gap: 9px;
    margin: 0;
}

.login-panel label {
    margin: 0;
    color: #e5e7eb;
    font-size: 13px;
    font-weight: 800;
}

.login-input-wrap {
    position: relative;
}

.login-input-wrap input {
    width: 100%;
    height: 56px;
    padding: 0 54px;
    border-radius: 12px;
    border: 1px solid rgba(148,163,184,0.26);
    background: rgba(2,6,23,0.54);
    color: #f8fafc;
    font-size: 15px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
}

.login-input-wrap input:hover {
    border-color: rgba(148,163,184,0.42);
}

.login-input-wrap input:focus {
    border-color: rgba(224,25,25,0.86);
    box-shadow:
        0 0 0 4px rgba(224,25,25,0.13),
        inset 0 1px 0 rgba(255,255,255,0.04);
    transform: none;
}

.login-input-wrap .field-icon {
    position: absolute;
    left: 17px;
    top: 50%;
    width: 21px;
    height: 21px;
    transform: translateY(-50%);
    color: #94a3b8;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
    pointer-events: none;
}

.login-input-wrap:focus-within .field-icon {
    color: #ff6b6b;
}

.login-panel .toggle-password {
    position: absolute;
    right: 12px;
    top: 50%;
    width: 34px;
    height: 34px;
    padding: 0;
    display: grid;
    place-items: center;
    transform: translateY(-50%);
    border-radius: 10px;
    background: transparent;
    color: #94a3b8;
    box-shadow: none;
    opacity: 1;
}

.login-panel .toggle-password:hover {
    background: rgba(255,255,255,0.06);
    color: #f8fafc;
    transform: translateY(-50%);
}

.login-panel .eye-icon {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.login-submit {
    width: 100%;
    height: 56px;
    margin-top: 8px;
    padding: 0 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border-radius: 12px;
    background: linear-gradient(135deg, #e01919, #a70f0f);
    color: #ffffff;
    font-size: 15px;
    font-weight: 900;
    box-shadow: 0 16px 34px rgba(224,25,25,0.24);
}

.login-submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 20px 42px rgba(224,25,25,0.34);
}

.login-submit svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.login-footer {
    margin-top: 34px;
    padding-top: 22px;
    border-top: 1px solid rgba(148,163,184,0.12);
    display: grid;
    gap: 5px;
    color: #94a3b8;
    font-size: 13px;
}

.login-footer small {
    color: #64748b;
    font-size: 12px;
}

@media (max-width: 980px) {
    body.login-page {
        padding: 18px;
    }

    .login-shell {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .login-visual {
        min-height: 260px;
        border-right: 0;
        border-bottom: 1px solid rgba(148,163,184,0.14);
    }

    .login-art {
        position: absolute;
        inset: 20px 30px 20px auto;
        width: 220px;
        opacity: 0.34;
        padding: 0;
    }

    .login-art img {
        width: 220px;
    }

    .login-visual-footer {
        margin-top: 80px;
    }

    .login-panel {
        padding: 42px;
    }
}

@media (max-width: 560px) {
    body.login-page {
        padding: 12px;
        place-items: start center;
    }

    .login-shell {
        border-radius: 16px;
    }

    .login-visual {
        min-height: 210px;
        padding: 24px;
    }

    .login-logo {
        font-size: 44px;
    }

    .login-art {
        right: 10px;
        width: 170px;
    }

    .login-art img {
        width: 170px;
    }

    .login-visual-footer {
        margin-top: 54px;
        flex-direction: column;
        gap: 6px;
    }

    .login-panel {
        padding: 30px 22px 26px;
    }

    .login-panel h1 {
        font-size: 30px;
    }

    .login-panel p {
        font-size: 14px;
    }
}

/* =====================================================
   Invy UI 2026 - Login, Toasts e Dashboard refinados
===================================================== */

.login-v2-page {
    min-height: 100vh;
    min-height: 100svh;
    display: grid;
    place-items: center;
    padding: 28px;
    overflow: auto;
    background:
        linear-gradient(rgba(255,255,255,0.024) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.024) 1px, transparent 1px),
        linear-gradient(135deg, #05070c 0%, #0b1017 50%, #121826 100%);
    background-size: 42px 42px, 42px 42px, auto;
}

.login-v2-page::before,
.login-v2-page::after {
    content: none;
}

.login-v2-shell {
    width: min(1080px, 100%);
    min-height: 640px;
    display: grid;
    grid-template-columns: minmax(360px, 0.92fr) minmax(420px, 1.08fr);
    overflow: hidden;
    border: 1px solid rgba(148,163,184,0.18);
    border-radius: 20px;
    background: rgba(7,11,18,0.96);
    box-shadow:
        0 28px 90px rgba(0,0,0,0.62),
        inset 0 1px 0 rgba(255,255,255,0.055);
}

.login-v2-visual {
    position: relative;
    display: grid;
    grid-template-rows: auto 1fr auto;
    padding: 34px;
    min-height: 100%;
    border-right: 1px solid rgba(148,163,184,0.14);
    background:
        linear-gradient(180deg, rgba(224,25,25,0.12), transparent 44%),
        linear-gradient(135deg, #070b12 0%, #0e1726 100%);
    isolation: isolate;
}

.login-v2-visual::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(135deg, transparent 0 48%, rgba(255,255,255,0.045) 48.2% 48.6%, transparent 48.8%),
        linear-gradient(45deg, transparent 0 64%, rgba(224,25,25,0.12) 64.2% 64.6%, transparent 64.9%);
    background-size: 340px 340px, 460px 460px;
    animation: loginGridDrift 16s linear infinite;
    opacity: 0.75;
}

.login-v2-brand {
    display: flex;
    align-items: center;
    gap: 16px;
}

.login-v2-logo {
    color: #ffffff;
    font-size: 58px;
    font-weight: 900;
    line-height: 0.9;
    letter-spacing: 1px;
}

.login-v2-logo span {
    color: var(--red);
}

.login-v2-brand strong,
.login-v2-brand small {
    display: block;
}

.login-v2-brand strong {
    color: #f8fafc;
    font-size: 16px;
    line-height: 1.2;
}

.login-v2-brand small {
    margin-top: 4px;
    color: #94a3b8;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

.login-v2-monitor {
    align-self: center;
    width: min(420px, 100%);
    margin: 36px auto;
    padding: 18px;
    border: 1px solid rgba(148,163,184,0.16);
    border-radius: 18px;
    background:
        linear-gradient(180deg, rgba(15,23,42,0.86), rgba(2,6,23,0.78));
    box-shadow:
        0 22px 58px rgba(0,0,0,0.44),
        inset 0 1px 0 rgba(255,255,255,0.055);
}

.monitor-head {
    display: flex;
    gap: 7px;
    margin-bottom: 16px;
}

.monitor-head span {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #334155;
}

.monitor-head span:first-child {
    background: #e01919;
}

.monitor-head span:nth-child(2) {
    background: #f59e0b;
}

.monitor-head span:nth-child(3) {
    background: #22c55e;
}

.monitor-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.monitor-card {
    min-height: 110px;
    padding: 14px;
    border-radius: 14px;
    border: 1px solid rgba(148,163,184,0.12);
    background: rgba(15,23,42,0.58);
}

.monitor-card-main {
    grid-column: 1 / -1;
    min-height: 128px;
    background:
        linear-gradient(90deg, rgba(224,25,25,0.15), rgba(15,23,42,0.58));
}

.monitor-label {
    display: block;
    margin-bottom: 10px;
    color: #94a3b8;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.9px;
}

.monitor-card strong {
    display: block;
    color: #f8fafc;
    font-size: 18px;
    line-height: 1.25;
}

.monitor-line {
    width: 88%;
    height: 8px;
    margin-top: 22px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(224,25,25,0.95), rgba(248,113,113,0.22));
    animation: loginDataPulse 2.4s ease-in-out infinite;
}

.monitor-line.short {
    width: 58%;
    margin-top: 10px;
    opacity: 0.68;
    animation-delay: 0.5s;
}

.meter {
    height: 8px;
    margin-top: 24px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(148,163,184,0.14);
}

.meter span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #22c55e, #86efac);
    animation: loginMeterFill 1.2s ease both;
}

.meter.amber span {
    background: linear-gradient(90deg, #f59e0b, #fde68a);
}

.network-map {
    position: relative;
    height: 170px;
    margin-top: 18px;
    border-radius: 14px;
    border: 1px solid rgba(148,163,184,0.10);
    background:
        linear-gradient(rgba(255,255,255,0.028) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.028) 1px, transparent 1px),
        rgba(2,6,23,0.38);
    background-size: 24px 24px;
}

.node {
    position: absolute;
    width: 13px;
    height: 13px;
    border-radius: 999px;
    background: #f8fafc;
    box-shadow: 0 0 0 6px rgba(224,25,25,0.12), 0 0 18px rgba(224,25,25,0.5);
    animation: loginNodePulse 2.2s ease-in-out infinite;
}

.node-a { left: 16%; top: 48%; }
.node-b { left: 38%; top: 25%; animation-delay: 0.2s; }
.node-c { left: 58%; top: 54%; animation-delay: 0.35s; }
.node-d { left: 78%; top: 30%; animation-delay: 0.5s; }
.node-e { left: 78%; top: 74%; animation-delay: 0.65s; }

.connection {
    position: absolute;
    height: 1px;
    transform-origin: left center;
    background: linear-gradient(90deg, rgba(224,25,25,0.95), rgba(224,25,25,0.04));
    opacity: 0.62;
}

.connection-1 { left: 18%; top: 51%; width: 132px; transform: rotate(-30deg); }
.connection-2 { left: 40%; top: 31%; width: 130px; transform: rotate(28deg); }
.connection-3 { left: 60%; top: 58%; width: 96px; transform: rotate(-28deg); }
.connection-4 { left: 61%; top: 60%; width: 92px; transform: rotate(28deg); }

.login-v2-footer {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-top: 20px;
    border-top: 1px solid rgba(148,163,184,0.12);
    color: #94a3b8;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.8px;
}

.login-v2-panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 58px;
    background:
        linear-gradient(180deg, rgba(15,23,42,0.97), rgba(9,13,22,0.99));
}

.login-v2-heading {
    margin-bottom: 30px;
}

.login-v2-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 6px 10px;
    margin-bottom: 18px;
    border-radius: 999px;
    border: 1px solid rgba(224,25,25,0.36);
    background: rgba(224,25,25,0.10);
    color: #fecaca;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.7px;
    text-transform: uppercase;
}

.login-v2-heading h1 {
    margin: 0 0 10px;
    color: #f8fafc;
    font-size: 36px;
    line-height: 1.12;
    letter-spacing: 0;
}

.login-v2-heading p {
    max-width: 430px;
    color: #a7b0bd;
    font-size: 15px;
    line-height: 1.55;
}

.login-v2-form {
    display: grid;
    gap: 18px;
}

.login-v2-field {
    display: grid;
    gap: 9px;
}

.login-v2-field label {
    margin: 0;
    color: #e5e7eb;
    font-size: 13px;
    font-weight: 800;
}

.login-v2-input {
    position: relative;
}

.login-v2-input > svg {
    position: absolute;
    left: 17px;
    top: 50%;
    width: 21px;
    height: 21px;
    transform: translateY(-50%);
    color: #94a3b8;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
    pointer-events: none;
}

.login-v2-input input {
    width: 100%;
    height: 56px;
    padding: 0 54px;
    border-radius: 12px;
    border: 1px solid rgba(148,163,184,0.26);
    background: rgba(2,6,23,0.54);
    color: #f8fafc;
    font-size: 15px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
}

.login-v2-input input:hover {
    border-color: rgba(148,163,184,0.42);
}

.login-v2-input input:focus {
    border-color: rgba(224,25,25,0.86);
    box-shadow:
        0 0 0 4px rgba(224,25,25,0.13),
        inset 0 1px 0 rgba(255,255,255,0.04);
    transform: none;
}

.login-v2-input:focus-within > svg {
    color: #ff6b6b;
}

.login-v2-toggle {
    position: absolute;
    right: 12px;
    top: 50%;
    width: 34px;
    height: 34px;
    padding: 0;
    display: grid;
    place-items: center;
    transform: translateY(-50%);
    border-radius: 10px;
    background: transparent;
    color: #94a3b8;
    box-shadow: none;
}

.login-v2-toggle:hover {
    background: rgba(255,255,255,0.06);
    color: #f8fafc;
    transform: translateY(-50%);
}

.login-v2-toggle svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.login-v2-submit {
    width: 100%;
    height: 56px;
    margin-top: 8px;
    padding: 0 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border-radius: 12px;
    background: linear-gradient(135deg, #e01919, #a70f0f);
    color: #ffffff;
    font-size: 15px;
    font-weight: 900;
    box-shadow: 0 16px 34px rgba(224,25,25,0.24);
}

.login-v2-submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 20px 42px rgba(224,25,25,0.34);
}

.login-v2-submit svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.login-v2-panel-footer {
    margin-top: 34px;
    padding-top: 22px;
    border-top: 1px solid rgba(148,163,184,0.12);
    display: grid;
    gap: 5px;
    color: #94a3b8;
    font-size: 13px;
}

.login-v2-panel-footer small {
    color: #64748b;
    font-size: 12px;
}

.toast-stack {
    top: 20px;
    right: 20px;
    width: min(430px, calc(100vw - 32px));
}

.toast-message {
    grid-template-columns: 40px 1fr 32px;
    min-height: 72px;
    padding: 14px 12px 16px 14px;
    border-radius: 14px;
    background:
        linear-gradient(180deg, rgba(15,23,42,0.98), rgba(8,12,20,0.99));
    border-color: rgba(148,163,184,0.20);
}

.toast-icon {
    width: 36px;
    height: 36px;
    border-radius: 11px;
}

.toast-icon svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.toast-success {
    border-color: rgba(34,197,94,0.26);
}

.toast-error {
    border-color: rgba(224,25,25,0.34);
}

.toast-close {
    border-radius: 9px;
}

.toast-body span {
    color: #d4dbe7;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(320px, 0.7fr);
    gap: 18px;
    align-items: start;
}

.dashboard-panel {
    min-height: 100%;
}

.dashboard-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.stat-box.accent-green h3 { color: #86efac; }
.stat-box.accent-amber h3 { color: #fbbf24; }
.stat-box.accent-blue h3 { color: #93c5fd; }

.status-list,
.insight-list {
    display: grid;
    gap: 10px;
}

.status-row,
.insight-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}

.status-row:last-child,
.insight-row:last-child {
    border-bottom: 0;
}

.status-row span,
.insight-row span {
    color: #cbd5e1;
    font-size: 14px;
}

.status-row strong,
.insight-row strong {
    color: #f8fafc;
    font-size: 18px;
}

.mini-progress {
    flex: 1;
    height: 7px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(148,163,184,0.14);
}

.mini-progress span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, rgba(224,25,25,0.92), rgba(248,113,113,0.55));
}

.equipment-link {
    color: #f8fafc;
    font-weight: 800;
    text-decoration: none;
}

.equipment-link:hover {
    color: var(--red-soft);
}

.quick-search-panel {
    display: grid;
    gap: 12px;
}

.quick-search-form {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto auto;
    gap: 10px;
    align-items: center;
}

.result-list {
    display: grid;
    gap: 16px;
}

.equipment-result-card {
    border: 1px solid rgba(148,163,184,0.14);
    border-radius: 18px;
    padding: 20px;
    background:
        linear-gradient(180deg, rgba(15,23,42,0.88), rgba(7,11,18,0.96));
    box-shadow: 0 18px 42px rgba(0,0,0,0.22);
}

.equipment-result-card.is-primary {
    border-color: rgba(224,25,25,0.55);
    background:
        radial-gradient(circle at top right, rgba(224,25,25,0.16), transparent 34%),
        linear-gradient(180deg, rgba(15,23,42,0.94), rgba(7,11,18,0.98));
}

.equipment-result-head {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
    margin-bottom: 18px;
}

.result-kicker {
    display: block;
    margin-bottom: 7px;
    color: #fca5a5;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.8px;
    text-transform: uppercase;
}

.equipment-result-head h2 {
    margin: 0 0 5px;
    color: #f8fafc;
    font-size: 28px;
    letter-spacing: 0;
}

.equipment-result-head p {
    color: #a7b0bd;
    font-size: 14px;
}

.status-pill {
    flex: 0 0 auto;
    padding: 8px 11px;
    border-radius: 999px;
    border: 1px solid rgba(148,163,184,0.18);
    background: rgba(255,255,255,0.05);
    color: #e5e7eb;
    font-size: 12px;
    font-weight: 900;
}

.result-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    gap: 12px;
}

.result-grid div {
    min-height: 74px;
    padding: 12px;
    border-radius: 12px;
    background: rgba(2,6,23,0.32);
    border: 1px solid rgba(148,163,184,0.10);
}

.result-grid span {
    display: block;
    margin-bottom: 7px;
    color: #94a3b8;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.6px;
}

.result-grid strong {
    color: #f8fafc;
    font-size: 14px;
    line-height: 1.35;
}

.result-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 16px;
}

.result-photo-strip {
    display: flex;
    gap: 10px;
    margin-top: 16px;
    overflow-x: auto;
}

.result-photo-strip img {
    width: 112px;
    height: 84px;
    object-fit: cover;
    border-radius: 10px;
    border: 1px solid rgba(148,163,184,0.16);
    background: #020617;
}

@keyframes loginGridDrift {
    from { background-position: 0 0, 0 0; }
    to { background-position: 120px 120px, -140px 140px; }
}

@keyframes loginDataPulse {
    0%, 100% { opacity: 0.58; transform: scaleX(0.76); transform-origin: left; }
    50% { opacity: 1; transform: scaleX(1); transform-origin: left; }
}

@keyframes loginMeterFill {
    from { transform: scaleX(0); transform-origin: left; }
    to { transform: scaleX(1); transform-origin: left; }
}

@keyframes loginNodePulse {
    0%, 100% { transform: scale(0.9); opacity: 0.74; }
    50% { transform: scale(1.12); opacity: 1; }
}

@media (max-width: 1080px) {
    .login-v2-shell {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .login-v2-visual {
        min-height: 360px;
        border-right: 0;
        border-bottom: 1px solid rgba(148,163,184,0.14);
    }

    .login-v2-monitor {
        width: min(520px, 100%);
        margin: 26px auto 22px;
    }

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

@media (max-width: 680px) {
    .login-v2-page {
        padding: 12px;
        place-items: start center;
    }

    .login-v2-shell {
        border-radius: 16px;
    }

    .login-v2-visual {
        min-height: auto;
        padding: 24px;
    }

    .login-v2-brand {
        align-items: flex-start;
    }

    .login-v2-logo {
        font-size: 44px;
    }

    .login-v2-monitor {
        margin: 24px 0;
        padding: 14px;
    }

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

    .network-map {
        height: 126px;
    }

    .login-v2-footer {
        flex-direction: column;
        gap: 6px;
    }

    .login-v2-panel {
        padding: 30px 22px 26px;
    }

    .login-v2-heading h1 {
        font-size: 30px;
    }

    .login-v2-heading p {
        font-size: 14px;
    }

    .toast-stack {
        top: 12px;
        right: 12px;
        left: 12px;
        width: auto;
    }

    .quick-search-form {
        grid-template-columns: 1fr;
    }

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

    .equipment-result-head {
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    .login-v2-visual::before,
    .monitor-line,
    .meter span,
    .node {
        animation: none !important;
    }
}

/* =====================================================
   Invy Professional UI - camada final do sistema interno
===================================================== */

.meter-fill-assets {
    width: 72%;
}

.meter-fill-support {
    width: 38%;
}

body.app-body {
    --app-bg: #070a0f;
    --app-sidebar: #090d13;
    --app-panel: #0d131c;
    --app-panel-2: #101823;
    --app-panel-3: #121b27;
    --app-border: #253142;
    --app-border-soft: rgba(148,163,184,0.16);
    --app-text: #eef2f7;
    --app-muted: #9aa6b5;
    --app-muted-2: #708095;
    --app-red: #d71920;
    --app-red-dark: #a91218;
    --app-blue: #60a5fa;
    --app-green: #34d399;
    --app-amber: #fbbf24;
    background: var(--app-bg);
    color: var(--app-text);
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.45;
}

body.app-body .layout {
    min-height: 100vh;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.015), transparent 230px),
        var(--app-bg);
}

body.app-body .sidebar {
    width: 268px;
    padding: 22px 14px;
    background: var(--app-sidebar);
    border-right: 1px solid var(--app-border);
    box-shadow: none;
}

body.app-body .logo {
    margin-bottom: 20px;
    padding: 10px;
}

body.app-body .logo-invy {
    font-size: 50px;
    line-height: 0.95;
    letter-spacing: 0;
    text-shadow: none;
}

body.app-body .logo-sub {
    margin-top: 7px;
    color: #aeb8c6;
    font-size: 11px;
    letter-spacing: 0.8px;
}

body.app-body .menu-title {
    margin: 12px 10px 8px;
    color: var(--app-muted-2);
    font-size: 11px;
    letter-spacing: 0.6px;
}

body.app-body .menu {
    gap: 6px;
}

body.app-body .menu a {
    min-height: 42px;
    padding: 9px 10px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    color: #dbe3ee;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    box-shadow: none;
}

body.app-body .menu a:hover,
body.app-body .menu a.active {
    transform: none;
    background: #111924;
    border-color: #354154;
    color: #ffffff;
    box-shadow: none;
}

body.app-body .menu a.active {
    border-left: 3px solid var(--app-red);
}

body.app-body .nav-mark {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    background: #141d29;
    color: #cbd5e1;
    font-size: 10px;
    letter-spacing: 0;
}

body.app-body .menu a.active .nav-mark,
body.app-body .menu a:hover .nav-mark {
    background: var(--app-red);
    color: #ffffff;
}

body.app-body .creator-box {
    border-radius: 8px;
    border: 1px solid var(--app-border);
    background: #0b1119;
    box-shadow: none;
    padding: 14px;
}

body.app-body .creator-box .small,
body.app-body .creator-box .version {
    color: var(--app-muted);
    font-size: 12px;
}

body.app-body .creator-box .name {
    color: #ffffff;
    font-size: 16px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

body.app-body .content {
    min-width: 0;
    padding: 26px;
}

body.app-body .topbar {
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--app-border);
}

body.app-body h1 {
    margin: 0 0 5px;
    color: #ffffff;
    font-size: 30px;
    line-height: 1.15;
    letter-spacing: 0;
}

body.app-body h2 {
    color: #ffffff;
    letter-spacing: 0;
}

body.app-body .subtitle {
    color: var(--app-muted);
    font-size: 14px;
    line-height: 1.5;
}

body.app-body .page-actions,
body.app-body .dashboard-actions,
body.app-body .action-row,
body.app-body .thumb-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

body.app-body .panel {
    border: 1px solid var(--app-border);
    border-radius: 8px;
    padding: 18px;
    background: var(--app-panel);
    box-shadow: none;
}

body.app-body .dashboard-panel {
    min-height: 100%;
}

body.app-body .section-title {
    margin-bottom: 14px;
    color: #f8fafc;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: 0;
}

body.app-body .section-spacer {
    margin-top: 18px;
}

body.app-body .section-note,
body.app-body .table-note,
body.app-body .field-hint,
body.app-body .muted {
    color: var(--app-muted);
    font-size: 13px;
    line-height: 1.45;
}

body.app-body .section-note {
    margin: -4px 0 14px;
}

body.app-body .table-note {
    margin: 14px 0 10px;
    padding: 10px 12px;
    border: 1px solid var(--app-border-soft);
    border-radius: 8px;
    background: #0a1018;
}

body.app-body .field-hint {
    margin-top: 8px;
}

body.app-body .stats {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

body.app-body .stat-box {
    position: relative;
    overflow: hidden;
    min-height: 96px;
    padding: 16px;
    border: 1px solid var(--app-border);
    border-radius: 8px;
    background: var(--app-panel);
    box-shadow: none;
}

body.app-body .stat-box::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: var(--app-red);
}

body.app-body .stat-box.accent-blue::before,
body.app-body .stats .stat-box:nth-child(2)::before {
    background: var(--app-blue);
}

body.app-body .stat-box.accent-green::before,
body.app-body .stats .stat-box:nth-child(3)::before {
    background: var(--app-green);
}

body.app-body .stat-box.accent-amber::before,
body.app-body .stats .stat-box:nth-child(4)::before {
    background: var(--app-amber);
}

body.app-body .stat-box h3 {
    margin-bottom: 4px;
    color: #ffffff;
    font-size: 28px;
    line-height: 1;
    letter-spacing: 0;
}

body.app-body .stat-box.accent-blue h3 {
    color: #bfdbfe;
}

body.app-body .stat-box.accent-green h3 {
    color: #bbf7d0;
}

body.app-body .stat-box.accent-amber h3 {
    color: #fde68a;
}

body.app-body .stat-box p {
    color: var(--app-muted);
    font-size: 13px;
    line-height: 1.35;
}

body.app-body .btn,
body.app-body button {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 9px 13px;
    border-radius: 8px;
    border: 1px solid transparent;
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    box-shadow: none;
    white-space: nowrap;
}

body.app-body .btn:hover,
body.app-body button:hover {
    transform: none;
}

body.app-body .btn-primary {
    border-color: #ef4444;
    background: var(--app-red);
    color: #ffffff;
}

body.app-body .btn-primary:hover {
    background: var(--app-red-dark);
    box-shadow: none;
}

body.app-body .btn-secondary {
    border-color: #334155;
    background: #172232;
    color: #e5edf7;
}

body.app-body .btn-secondary:hover {
    border-color: #475569;
    background: #1f2c3f;
}

body.app-body .btn-outline {
    border-color: #475569;
    background: transparent;
    color: #e5edf7;
}

body.app-body .btn-outline:hover {
    border-color: #64748b;
    background: #111924;
}

body.app-body .btn-danger {
    border-color: #991b1b;
    background: #7f1d1d;
    color: #ffffff;
}

body.app-body .btn-danger:hover {
    background: #991b1b;
}

body.app-body td .btn,
body.app-body td button {
    min-height: 32px;
    padding: 7px 10px;
    font-size: 12px;
}

body.app-body label {
    margin-bottom: 7px;
    color: #d9e2ee;
    font-size: 13px;
    font-weight: 800;
}

body.app-body input,
body.app-body select,
body.app-body textarea {
    min-height: 42px;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid #334155;
    background: #080d14;
    color: #f8fafc;
    font-size: 14px;
    box-shadow: none;
}

body.app-body input:hover,
body.app-body select:hover,
body.app-body textarea:hover {
    border-color: #475569;
}

body.app-body input:focus,
body.app-body select:focus,
body.app-body textarea:focus {
    border-color: #ef4444;
    box-shadow: 0 0 0 3px rgba(215,25,32,0.16);
    transform: none;
}

body.app-body input[readonly],
body.app-body textarea[readonly] {
    color: #cbd5e1;
    background: #0b1119;
    border-color: #273244;
}

body.app-body input[type="file"] {
    padding: 9px;
}

body.app-body textarea {
    min-height: 104px;
}

body.app-body .grid,
body.app-body .grid-3,
body.app-body .grid-2 {
    gap: 14px;
}

body.app-body .form-panel {
    max-width: 1320px;
}

body.app-body .actions {
    gap: 8px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--app-border);
}

.is-hidden {
    display: none !important;
}

body.app-body .search-box {
    align-items: end;
    gap: 10px;
    margin-bottom: 16px;
}

body.app-body .search-box input,
body.app-body .search-box select {
    min-width: 200px;
}

body.app-body .quick-search-form {
    grid-template-columns: minmax(280px, 1fr) auto auto;
    gap: 10px;
}

body.app-body .quick-search-panel {
    gap: 12px;
}

body.app-body .dashboard-grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(310px, 0.65fr);
    gap: 16px;
}

body.app-body .status-list,
body.app-body .insight-list {
    gap: 0;
}

body.app-body .status-row,
body.app-body .insight-row {
    padding: 11px 0;
    border-bottom-color: var(--app-border-soft);
}

body.app-body .status-row span,
body.app-body .insight-row span {
    color: #cbd5e1;
    font-size: 13px;
}

body.app-body .status-row strong,
body.app-body .insight-row strong {
    color: #ffffff;
    font-size: 16px;
}

body.app-body .mini-progress {
    flex: 1;
    width: 100%;
    height: 6px;
    overflow: hidden;
    border: 0;
    border-radius: 999px;
    background: #1d2938;
    appearance: none;
}

body.app-body .mini-progress span {
    background: #ef4444;
}

body.app-body progress.mini-progress::-webkit-progress-bar {
    border-radius: 999px;
    background: #1d2938;
}

body.app-body progress.mini-progress::-webkit-progress-value {
    border-radius: 999px;
    background: #ef4444;
}

body.app-body progress.mini-progress::-moz-progress-bar {
    border-radius: 999px;
    background: #ef4444;
}

body.app-body .table-wrap {
    width: 100%;
    margin-top: 14px;
    overflow-x: auto;
    border: 1px solid var(--app-border);
    border-radius: 8px;
    background: #0a1018;
}

body.app-body .panel > .table-wrap:first-child,
body.app-body .section-title + .table-wrap {
    margin-top: 0;
}

body.app-body table {
    width: 100%;
    min-width: 900px;
    margin: 0;
    border-collapse: collapse;
}

body.app-body th,
body.app-body td {
    padding: 11px 12px;
    border-bottom: 1px solid var(--app-border-soft);
    color: #dbe3ee;
    font-size: 13px;
    line-height: 1.35;
    vertical-align: middle;
}

body.app-body th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #111924;
    color: #aeb8c6;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.3px;
}

body.app-body tbody tr {
    transition: background-color 0.15s ease;
}

body.app-body tbody tr:hover {
    background: rgba(96,165,250,0.045);
}

body.app-body tbody tr:last-child td {
    border-bottom: 0;
}

body.app-body .asset-code,
body.app-body .service-code {
    color: #f8fafc;
    font-family: "Consolas", "Courier New", monospace;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0;
}

body.app-body .service-code {
    color: #cbd5e1;
}

body.app-body .equipment-link {
    color: #f8fafc;
}

body.app-body .equipment-link:hover {
    color: #fecaca;
}

body.app-body .status-pill,
body.app-body .badge {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 5px 9px;
    border-radius: 999px;
    border: 1px solid #354154;
    background: #111924;
    color: #e5edf7;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
}

body.app-body .badge {
    border-color: rgba(215,25,32,0.55);
    background: rgba(215,25,32,0.13);
    color: #fecaca;
}

body.app-body .inline-action-form {
    display: inline-flex;
    margin: 0;
}

body.app-body .equipment-result-card {
    border: 1px solid var(--app-border);
    border-radius: 8px;
    padding: 18px;
    background: var(--app-panel);
    box-shadow: none;
}

body.app-body .equipment-result-card.is-primary {
    border-color: rgba(215,25,32,0.65);
    background: #101720;
}

body.app-body .equipment-result-head {
    margin-bottom: 14px;
}

body.app-body .result-kicker {
    color: #fca5a5;
    font-size: 11px;
    letter-spacing: 0.5px;
}

body.app-body .equipment-result-head h2 {
    color: #ffffff;
    font-size: 26px;
    letter-spacing: 0;
}

body.app-body .equipment-result-head p {
    color: var(--app-muted);
}

body.app-body .result-grid {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    gap: 10px;
}

body.app-body .result-grid div {
    min-height: 68px;
    padding: 11px;
    border-radius: 8px;
    border: 1px solid var(--app-border-soft);
    background: #0a1018;
}

body.app-body .result-grid span {
    margin-bottom: 6px;
    color: var(--app-muted);
    font-size: 10px;
    letter-spacing: 0.4px;
}

body.app-body .result-grid strong {
    color: #f8fafc;
    font-size: 13px;
}

body.app-body .result-actions {
    gap: 8px;
}

body.app-body .result-photo-strip img,
body.app-body .thumb-card img {
    border-radius: 6px;
    border: 1px solid var(--app-border-soft);
}

body.app-body .thumb-grid {
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 12px;
}

body.app-body .thumb-card {
    border-radius: 8px;
    border: 1px solid var(--app-border);
    background: #0a1018;
    padding: 9px;
}

body.app-body .thumb-card img {
    height: 190px;
    background: #060a10;
}

body.app-body .thumb-actions {
    margin-top: 8px;
}

body.app-body .photo-action-badge {
    border-color: var(--app-border-soft);
    background: #111924;
    color: #cbd5e1;
}

body.app-body .history-card {
    position: relative;
    margin-bottom: 12px;
    padding: 16px;
    border: 1px solid var(--app-border);
    border-radius: 8px;
    background: #0a1018;
}

body.app-body .history-head {
    align-items: flex-start;
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--app-border-soft);
}

body.app-body .history-head strong,
body.app-body .history-grid strong {
    color: #ffffff;
}

body.app-body .history-grid {
    gap: 10px;
}

body.app-body .history-grid > div {
    min-height: 42px;
    padding: 10px;
    border-radius: 8px;
    border: 1px solid var(--app-border-soft);
    background: #0d131c;
    color: #cbd5e1;
    font-size: 13px;
}

body.app-body .history-card .section-spacer {
    margin-top: 13px;
    color: #cbd5e1;
    font-size: 13px;
}

body.app-body .readonly-grid input {
    cursor: default;
}

.toast-message {
    border-radius: 8px;
}

.toast-icon,
.toast-close {
    border-radius: 8px;
}

@media (max-width: 1180px) {
    body.app-body .stats {
        grid-template-columns: repeat(2, minmax(160px, 1fr));
    }

    body.app-body .dashboard-grid {
        grid-template-columns: 1fr;
    }

    body.app-body .result-grid {
        grid-template-columns: repeat(2, minmax(150px, 1fr));
    }
}

@media (max-width: 980px) {
    body.app-body .layout {
        flex-direction: column;
    }

    body.app-body .sidebar {
        position: relative;
        width: 100%;
        height: auto;
        padding: 16px;
        border-right: 0;
        border-bottom: 1px solid var(--app-border);
    }

    body.app-body .menu {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 8px;
    }

    body.app-body .menu a {
        justify-content: flex-start;
    }

    body.app-body .creator-box {
        margin-top: 14px;
    }

    body.app-body .content {
        padding: 20px;
    }

    body.app-body .quick-search-form {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    body.app-body .content {
        padding: 16px;
    }

    body.app-body .topbar {
        margin-bottom: 16px;
    }

    body.app-body h1 {
        font-size: 26px;
    }

    body.app-body .menu {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.app-body .grid,
    body.app-body .grid-3,
    body.app-body .grid-2,
    body.app-body .stats,
    body.app-body .history-grid,
    body.app-body .result-grid {
        grid-template-columns: 1fr;
    }

    body.app-body .panel {
        padding: 14px;
    }

    body.app-body .search-box {
        display: grid;
        grid-template-columns: 1fr;
    }

    body.app-body .search-box input,
    body.app-body .search-box select {
        min-width: 0;
    }

    body.app-body .table-wrap {
        overflow: visible;
        border: 0;
        background: transparent;
    }

    body.app-body .table-wrap table {
        min-width: 0;
    }

    body.app-body .table-wrap table,
    body.app-body .table-wrap thead,
    body.app-body .table-wrap tbody,
    body.app-body .table-wrap th,
    body.app-body .table-wrap td,
    body.app-body .table-wrap tr {
        display: block;
    }

    body.app-body .table-wrap thead {
        display: none;
    }

    body.app-body .table-wrap tr {
        margin-bottom: 10px;
        overflow: hidden;
        border: 1px solid var(--app-border);
        border-radius: 8px;
        background: #0a1018;
    }

    body.app-body .table-wrap td {
        display: grid;
        grid-template-columns: minmax(110px, 42%) minmax(0, 1fr);
        gap: 10px;
        align-items: start;
        border-bottom: 1px solid var(--app-border-soft);
    }

    body.app-body .table-wrap td::before {
        content: attr(data-label);
        display: block;
        margin: 0;
        color: var(--app-muted);
        font-size: 11px;
        font-weight: 900;
        line-height: 1.35;
    }

    body.app-body .table-wrap td[data-label="Ações"],
    body.app-body .table-wrap td[data-label="Histórico"],
    body.app-body .table-wrap td[data-label="Mais"] {
        display: block;
    }

    body.app-body .table-wrap td[data-label="Ações"]::before,
    body.app-body .table-wrap td[data-label="Histórico"]::before,
    body.app-body .table-wrap td[data-label="Mais"]::before {
        margin-bottom: 8px;
    }
}

@media (max-width: 520px) {
    body.app-body .menu {
        grid-template-columns: 1fr;
    }

    body.app-body .stats {
        gap: 10px;
    }

    body.app-body .stat-box {
        min-height: 84px;
    }

    body.app-body .page-actions,
    body.app-body .dashboard-actions,
    body.app-body .actions,
    body.app-body .action-row {
        width: 100%;
    }

    body.app-body .btn,
    body.app-body button,
    body.app-body .action-row .btn,
    body.app-body .action-row button {
        width: 100%;
    }
}

/* =====================================================
   Invy Brand Layer - identidade vermelha profissional
===================================================== */

body.app-body {
    --invy-red: #e01919;
    --invy-red-2: #ff3434;
    --invy-red-dark: #9f1111;
    --invy-glow: rgba(224,25,25,0.28);
    background:
        radial-gradient(circle at 8% 0%, rgba(224,25,25,0.18), transparent 28%),
        radial-gradient(circle at 92% 12%, rgba(224,25,25,0.10), transparent 30%),
        linear-gradient(135deg, #05070c 0%, #080d14 46%, #070a0f 100%);
}

body.app-body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        linear-gradient(110deg, transparent 0 32%, rgba(224,25,25,0.08) 42%, transparent 54%),
        linear-gradient(rgba(255,255,255,0.018) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.014) 1px, transparent 1px);
    background-size: 680px 100%, 38px 38px, 38px 38px;
    opacity: 0.72;
    animation: invyAmbientSweep 12s linear infinite;
}

body.app-body .layout,
body.app-body .sidebar,
body.app-body .content {
    position: relative;
    z-index: 1;
}

body.app-body .sidebar {
    background:
        linear-gradient(180deg, rgba(224,25,25,0.13), transparent 24%),
        linear-gradient(180deg, #090b11 0%, #05080d 100%);
    border-right-color: rgba(224,25,25,0.34);
}

body.app-body .sidebar::after {
    content: "";
    position: absolute;
    top: 0;
    right: -1px;
    width: 1px;
    height: 100%;
    background: linear-gradient(180deg, transparent, rgba(255,52,52,0.9), transparent);
    animation: invyVerticalScan 4.8s ease-in-out infinite;
}

body.app-body .logo-invy {
    color: #ffffff;
    filter: drop-shadow(0 10px 26px rgba(224,25,25,0.20));
}

body.app-body .logo-invy .m {
    color: var(--invy-red-2);
    animation: invyRedPulse 3.6s ease-in-out infinite;
}

body.app-body .logo-sub {
    color: #fecaca;
}

body.app-body .menu a {
    border-color: rgba(255,255,255,0.03);
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

body.app-body .menu a:hover,
body.app-body .menu a.active {
    transform: translateX(2px);
    border-color: rgba(224,25,25,0.62);
    background:
        linear-gradient(90deg, rgba(224,25,25,0.30), rgba(224,25,25,0.08)),
        #111924;
}

body.app-body .menu a.active {
    box-shadow: inset 3px 0 0 var(--invy-red-2), 0 10px 30px rgba(224,25,25,0.08);
}

body.app-body .nav-mark {
    border: 1px solid rgba(224,25,25,0.22);
    background: rgba(224,25,25,0.10);
    color: #fecaca;
}

body.app-body .menu a.active .nav-mark,
body.app-body .menu a:hover .nav-mark {
    border-color: rgba(255,255,255,0.16);
    background: linear-gradient(135deg, var(--invy-red-2), var(--invy-red-dark));
    box-shadow: 0 0 18px rgba(224,25,25,0.24);
}

body.app-body .creator-box {
    border-color: rgba(224,25,25,0.26);
    background:
        linear-gradient(180deg, rgba(224,25,25,0.08), transparent 52%),
        #0b1119;
}

body.app-body .creator-box .name {
    color: #fecaca;
}

body.app-body .topbar {
    position: relative;
    border-bottom-color: rgba(224,25,25,0.26);
}

body.app-body .topbar::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: min(360px, 52vw);
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--invy-red-2), rgba(224,25,25,0));
    animation: invyLineGlow 3.2s ease-in-out infinite;
}

body.app-body h1 {
    text-shadow: 0 10px 34px rgba(224,25,25,0.12);
}

body.app-body .subtitle {
    color: #b8c2cf;
}

body.app-body .panel,
body.app-body .stat-box,
body.app-body .equipment-result-card,
body.app-body .history-card {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(224,25,25,0.055), transparent 34%),
        linear-gradient(180deg, rgba(17,24,39,0.96), rgba(9,13,20,0.98));
    border-color: rgba(224,25,25,0.26);
    box-shadow:
        0 18px 44px rgba(0,0,0,0.20),
        inset 0 1px 0 rgba(255,255,255,0.035);
    animation: invySoftRise 0.34s ease both;
}

body.app-body .panel::before,
body.app-body .equipment-result-card::before,
body.app-body .history-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--invy-red-2), transparent);
    opacity: 0.72;
}

body.app-body .panel:hover,
body.app-body .equipment-result-card:hover,
body.app-body .history-card:hover {
    border-color: rgba(224,25,25,0.48);
}

body.app-body .section-title {
    color: #fecaca;
}

body.app-body .section-title::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 8px;
    border-radius: 999px;
    background: var(--invy-red-2);
    box-shadow: 0 0 16px rgba(224,25,25,0.55);
    vertical-align: 1px;
}

body.app-body .stat-box {
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

body.app-body .stat-box:hover {
    transform: translateY(-2px);
    border-color: rgba(224,25,25,0.46);
    box-shadow: 0 20px 48px rgba(0,0,0,0.24), 0 0 0 1px rgba(224,25,25,0.10);
}

body.app-body .stat-box::before {
    width: 4px;
    background: linear-gradient(180deg, var(--invy-red-2), var(--invy-red-dark));
    box-shadow: 0 0 18px rgba(224,25,25,0.42);
}

body.app-body .stat-box h3 {
    color: #ffffff;
}

body.app-body .btn-primary {
    border-color: rgba(255,118,118,0.70);
    background: linear-gradient(135deg, var(--invy-red-2), var(--invy-red), var(--invy-red-dark));
    box-shadow: 0 14px 30px rgba(224,25,25,0.22);
}

body.app-body .btn-primary:hover {
    background: linear-gradient(135deg, #ff4a4a, var(--invy-red), #870d0d);
    box-shadow: 0 18px 38px rgba(224,25,25,0.34);
}

body.app-body .btn-secondary {
    border-color: rgba(224,25,25,0.24);
    background: linear-gradient(180deg, #1a2638, #141d2a);
}

body.app-body .btn-secondary:hover {
    border-color: rgba(224,25,25,0.44);
    background: linear-gradient(180deg, #263449, #182333);
}

body.app-body .btn-outline {
    border-color: rgba(224,25,25,0.54);
    color: #fecaca;
}

body.app-body .btn-outline:hover {
    background: rgba(224,25,25,0.12);
    border-color: rgba(255,52,52,0.84);
}

body.app-body input:focus,
body.app-body select:focus,
body.app-body textarea:focus {
    border-color: rgba(255,52,52,0.95);
    box-shadow: 0 0 0 3px rgba(224,25,25,0.18), 0 0 18px rgba(224,25,25,0.10);
}

body.app-body .table-wrap {
    border-color: rgba(224,25,25,0.28);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.025);
}

body.app-body th {
    background:
        linear-gradient(180deg, rgba(224,25,25,0.13), transparent),
        #111924;
    color: #fecaca;
}

body.app-body tbody tr:hover {
    background: rgba(224,25,25,0.055);
}

body.app-body .asset-code {
    color: #fecaca;
}

body.app-body .service-code {
    color: #e2e8f0;
}

body.app-body .status-pill,
body.app-body .badge,
body.app-body .photo-action-badge {
    border-color: rgba(224,25,25,0.28);
    background: rgba(224,25,25,0.11);
    color: #fecaca;
}

body.app-body progress.mini-progress::-webkit-progress-value {
    background: linear-gradient(90deg, var(--invy-red-dark), var(--invy-red-2));
}

body.app-body progress.mini-progress::-moz-progress-bar {
    background: linear-gradient(90deg, var(--invy-red-dark), var(--invy-red-2));
}

body.app-body .security-callout {
    display: grid;
    gap: 5px;
    margin-bottom: 16px;
    padding: 13px 14px;
    border: 1px solid rgba(224,25,25,0.38);
    border-radius: 8px;
    background:
        linear-gradient(90deg, rgba(224,25,25,0.14), rgba(224,25,25,0.04)),
        #0a1018;
    color: #cbd5e1;
}

body.app-body .security-callout strong {
    color: #ffffff;
    font-size: 14px;
}

body.app-body .security-callout span {
    color: #b8c2cf;
    font-size: 13px;
    line-height: 1.45;
}

body.app-body code {
    padding: 2px 5px;
    border-radius: 5px;
    background: rgba(224,25,25,0.14);
    color: #fecaca;
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.92em;
}

body.app-body .master-code-field input {
    border-color: rgba(224,25,25,0.40);
    background:
        linear-gradient(90deg, rgba(224,25,25,0.055), transparent),
        #080d14;
}

.toast-message {
    border-color: rgba(224,25,25,0.30);
    box-shadow: 0 22px 60px rgba(0,0,0,0.45), 0 0 0 1px rgba(224,25,25,0.06);
}

@keyframes invyAmbientSweep {
    from {
        background-position: -680px 0, 0 0, 0 0;
    }
    to {
        background-position: 680px 0, 38px 38px, -38px 38px;
    }
}

@keyframes invyVerticalScan {
    0%, 100% {
        opacity: 0.25;
        transform: scaleY(0.18);
        transform-origin: top;
    }
    50% {
        opacity: 0.9;
        transform: scaleY(1);
        transform-origin: center;
    }
}

@keyframes invyRedPulse {
    0%, 100% {
        filter: drop-shadow(0 0 0 rgba(224,25,25,0));
    }
    50% {
        filter: drop-shadow(0 0 14px rgba(224,25,25,0.62));
    }
}

@keyframes invyLineGlow {
    0%, 100% {
        opacity: 0.55;
        transform: scaleX(0.82);
        transform-origin: left;
    }
    50% {
        opacity: 1;
        transform: scaleX(1);
        transform-origin: left;
    }
}

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

@media (prefers-reduced-motion: reduce) {
    body.app-body::before,
    body.app-body .sidebar::after,
    body.app-body .logo-invy .m,
    body.app-body .topbar::after,
    body.app-body .panel,
    body.app-body .stat-box,
    body.app-body .equipment-result-card,
    body.app-body .history-card {
        animation: none !important;
    }
}

/* =====================================================
   Invy Neo Interface 2026 - moderno, limpo e proprietario
===================================================== */

body.app-body {
    --neo-red: #ff2a2f;
    --neo-red-soft: #ff6b6b;
    --neo-red-dark: #8f1014;
    --neo-ink: #06080d;
    --neo-panel: rgba(12,17,25,0.86);
    --neo-panel-strong: rgba(15,22,32,0.94);
    --neo-line: rgba(255,255,255,0.085);
    --neo-red-line: rgba(255,42,47,0.34);
    --neo-glow: rgba(255,42,47,0.26);
    background:
        linear-gradient(115deg, rgba(255,42,47,0.13), transparent 18% 68%, rgba(255,42,47,0.08)),
        repeating-linear-gradient(90deg, rgba(255,255,255,0.018) 0 1px, transparent 1px 78px),
        repeating-linear-gradient(0deg, rgba(255,255,255,0.014) 0 1px, transparent 1px 78px),
        linear-gradient(135deg, #05070b 0%, #0b1018 44%, #05070b 100%);
    background-attachment: fixed;
}

body.app-body::before {
    opacity: 1;
    background:
        linear-gradient(118deg, transparent 0 28%, rgba(255,42,47,0.13) 36%, transparent 45% 100%),
        linear-gradient(70deg, transparent 0 58%, rgba(255,255,255,0.035) 62%, transparent 68% 100%),
        repeating-linear-gradient(135deg, transparent 0 18px, rgba(255,255,255,0.018) 18px 19px, transparent 19px 62px);
    background-size: 980px 100%, 760px 100%, 240px 240px;
    mix-blend-mode: screen;
    animation: neoAtmosphere 18s linear infinite;
}

body.app-body::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        linear-gradient(180deg, transparent, rgba(255,42,47,0.055) 48%, transparent 49%),
        linear-gradient(90deg, transparent, rgba(255,255,255,0.025), transparent);
    background-size: 100% 180px, 420px 100%;
    opacity: 0.46;
    animation: neoScan 9s linear infinite;
}

body.app-body .sidebar {
    width: 276px;
    padding: 20px 14px;
    background:
        linear-gradient(135deg, rgba(255,42,47,0.18), transparent 30%),
        linear-gradient(180deg, rgba(12,17,25,0.98), rgba(4,7,12,0.98));
    backdrop-filter: blur(18px);
}

body.app-body .logo {
    position: relative;
    margin-bottom: 18px;
    padding: 12px 10px 18px;
    border-bottom: 1px solid rgba(255,42,47,0.18);
}

body.app-body .logo::after {
    content: "";
    position: absolute;
    left: 10px;
    right: 34px;
    bottom: -1px;
    height: 1px;
    background: linear-gradient(90deg, var(--neo-red), transparent);
    animation: neoLogoLine 3s ease-in-out infinite;
}

body.app-body .logo-invy {
    font-size: 54px;
    letter-spacing: 0;
}

body.app-body .logo-sub {
    font-size: 10px;
    letter-spacing: 1.3px;
}

body.app-body .menu {
    gap: 7px;
}

body.app-body .menu a {
    position: relative;
    min-height: 46px;
    padding: 10px 11px;
    overflow: hidden;
    border-radius: 8px;
    border-color: rgba(255,255,255,0.055);
    background: rgba(255,255,255,0.018);
    color: #dbe4ef;
}

body.app-body .menu a::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0;
    background:
        linear-gradient(90deg, rgba(255,42,47,0.28), transparent 62%),
        linear-gradient(135deg, rgba(255,255,255,0.06), transparent 40%);
    transition: opacity 0.2s ease;
}

body.app-body .menu a::after {
    content: "";
    position: absolute;
    left: 0;
    top: 8px;
    bottom: 8px;
    width: 3px;
    border-radius: 999px;
    background: var(--neo-red);
    opacity: 0;
    transform: scaleY(0.35);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

body.app-body .menu a > span {
    position: relative;
    z-index: 1;
}

body.app-body .menu a:hover,
body.app-body .menu a.active {
    transform: translateX(4px);
    border-color: rgba(255,42,47,0.46);
    color: #ffffff;
    background: rgba(255,42,47,0.08);
}

body.app-body .menu a:hover::before,
body.app-body .menu a.active::before,
body.app-body .menu a.active::after {
    opacity: 1;
}

body.app-body .menu a.active::after {
    transform: scaleY(1);
}

body.app-body .nav-mark {
    width: 31px;
    height: 31px;
    border-radius: 8px;
    background:
        linear-gradient(145deg, rgba(255,42,47,0.16), rgba(255,255,255,0.035));
    color: #ffb4b4;
}

body.app-body .nav-icon {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform 0.22s ease, color 0.22s ease, filter 0.22s ease;
}

body.app-body .menu a:hover .nav-icon,
body.app-body .menu a.active .nav-icon {
    transform: scale(1.08);
    color: #ffffff;
    filter: drop-shadow(0 0 8px rgba(255,42,47,0.68));
}

body.app-body .creator-box {
    background:
        linear-gradient(135deg, rgba(255,42,47,0.12), transparent 48%),
        rgba(10,15,22,0.82);
    backdrop-filter: blur(14px);
}

body.app-body .content {
    padding: 28px;
}

body.app-body .topbar {
    min-height: 92px;
    align-items: center;
    padding: 18px 20px;
    border: 1px solid rgba(255,42,47,0.22);
    border-radius: 8px;
    background:
        linear-gradient(115deg, rgba(255,42,47,0.12), transparent 36%),
        linear-gradient(180deg, rgba(255,255,255,0.055), rgba(255,255,255,0.018));
    backdrop-filter: blur(16px);
    box-shadow: 0 22px 60px rgba(0,0,0,0.22);
}

body.app-body .topbar::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        repeating-linear-gradient(90deg, transparent 0 46px, rgba(255,255,255,0.035) 46px 47px),
        linear-gradient(90deg, transparent, rgba(255,42,47,0.12), transparent);
    opacity: 0.34;
    animation: neoPanelTrace 8s linear infinite;
}

body.app-body h1 {
    font-size: 32px;
    font-weight: 900;
}

body.app-body .subtitle {
    color: #b9c4d3;
}

body.app-body .panel,
body.app-body .equipment-result-card,
body.app-body .history-card {
    border-color: rgba(255,42,47,0.22);
    background:
        linear-gradient(135deg, rgba(255,42,47,0.075), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,0.052), rgba(255,255,255,0.018)),
        var(--neo-panel);
    backdrop-filter: blur(16px);
    box-shadow:
        0 22px 58px rgba(0,0,0,0.24),
        inset 0 1px 0 rgba(255,255,255,0.052);
    transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

body.app-body .panel::after,
body.app-body .equipment-result-card::after,
body.app-body .history-card::after,
body.app-body .stat-box::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    background: linear-gradient(110deg, transparent 0 34%, rgba(255,255,255,0.12) 45%, transparent 57%);
    transform: translateX(-70%);
    transition: opacity 0.2s ease;
}

body.app-body .panel:hover,
body.app-body .equipment-result-card:hover,
body.app-body .history-card:hover {
    transform: translateY(-2px);
    border-color: rgba(255,42,47,0.44);
    box-shadow:
        0 26px 70px rgba(0,0,0,0.30),
        0 0 0 1px rgba(255,42,47,0.08),
        inset 0 1px 0 rgba(255,255,255,0.065);
}

body.app-body .panel:hover::after,
body.app-body .equipment-result-card:hover::after,
body.app-body .history-card:hover::after,
body.app-body .stat-box:hover::after {
    opacity: 1;
    animation: neoSheen 0.95s ease;
}

body.app-body .stats {
    gap: 14px;
}

body.app-body .stat-box {
    min-height: 112px;
    border-color: rgba(255,42,47,0.22);
    background:
        linear-gradient(135deg, rgba(255,42,47,0.12), transparent 46%),
        linear-gradient(180deg, rgba(255,255,255,0.055), rgba(255,255,255,0.018)),
        rgba(12,17,25,0.86);
    backdrop-filter: blur(14px);
}

body.app-body .stat-box h3 {
    font-size: 34px;
    line-height: 0.95;
    background: linear-gradient(180deg, #ffffff, #ffb4b4);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

body.app-body .stat-box p {
    margin-top: 8px;
    color: #b9c4d3;
    font-weight: 700;
}

body.app-body .btn,
body.app-body button {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, background-color 0.18s ease;
}

body.app-body .btn::after,
body.app-body button::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(110deg, transparent 0 35%, rgba(255,255,255,0.23) 46%, transparent 58%);
    transform: translateX(-120%);
}

body.app-body .btn:hover,
body.app-body button:hover {
    transform: translateY(-1px);
}

body.app-body .btn:hover::after,
body.app-body button:hover::after {
    animation: neoButtonSweep 0.7s ease;
}

body.app-body input,
body.app-body select,
body.app-body textarea {
    background:
        linear-gradient(180deg, rgba(255,255,255,0.032), transparent),
        rgba(5,8,13,0.86);
    border-color: rgba(255,255,255,0.13);
}

body.app-body input:focus,
body.app-body select:focus,
body.app-body textarea:focus {
    background:
        linear-gradient(90deg, rgba(255,42,47,0.08), transparent),
        rgba(7,10,16,0.94);
}

body.app-body .search-box input {
    min-height: 46px;
}

body.app-body .table-wrap {
    background:
        linear-gradient(180deg, rgba(255,42,47,0.055), transparent 28%),
        rgba(6,10,16,0.76);
    backdrop-filter: blur(12px);
}

body.app-body th {
    height: 42px;
    background:
        linear-gradient(90deg, rgba(255,42,47,0.18), transparent),
        rgba(15,22,32,0.94);
}

body.app-body td {
    transition: background-color 0.16s ease, color 0.16s ease;
}

body.app-body tbody tr {
    animation: neoRowIn 0.36s ease both;
}

body.app-body tbody tr:nth-child(2) { animation-delay: 35ms; }
body.app-body tbody tr:nth-child(3) { animation-delay: 70ms; }
body.app-body tbody tr:nth-child(4) { animation-delay: 105ms; }
body.app-body tbody tr:nth-child(5) { animation-delay: 140ms; }
body.app-body tbody tr:nth-child(6) { animation-delay: 175ms; }
body.app-body tbody tr:nth-child(7) { animation-delay: 210ms; }
body.app-body tbody tr:nth-child(8) { animation-delay: 245ms; }

body.app-body .status-pill,
body.app-body .badge {
    background:
        linear-gradient(135deg, rgba(255,42,47,0.20), rgba(255,255,255,0.045));
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
}

body.app-body .mini-progress {
    height: 8px;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.045);
}

body.app-body progress.mini-progress::-webkit-progress-value {
    animation: neoProgressPulse 2.4s ease-in-out infinite;
}

body.app-body progress.mini-progress::-moz-progress-bar {
    animation: neoProgressPulse 2.4s ease-in-out infinite;
}

body.app-body .ui-reveal {
    opacity: 0;
    transform: translateY(14px) scale(0.992);
}

body.app-body .ui-reveal.is-visible,
body.app-body.is-ready .ui-reveal.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    transition:
        opacity 0.52s ease var(--reveal-delay, 0ms),
        transform 0.52s cubic-bezier(.2,.8,.2,1) var(--reveal-delay, 0ms);
}

@keyframes neoAtmosphere {
    from { background-position: -980px 0, 760px 0, 0 0; }
    to { background-position: 980px 0, -760px 0, 240px 240px; }
}

@keyframes neoScan {
    from { background-position: 0 -180px, -420px 0; }
    to { background-position: 0 180px, 420px 0; }
}

@keyframes neoLogoLine {
    0%, 100% { opacity: 0.42; transform: scaleX(0.62); transform-origin: left; }
    50% { opacity: 1; transform: scaleX(1); transform-origin: left; }
}

@keyframes neoPanelTrace {
    from { background-position: -240px 0, -520px 0; }
    to { background-position: 240px 0, 520px 0; }
}

@keyframes neoSheen {
    from { transform: translateX(-70%); }
    to { transform: translateX(70%); }
}

@keyframes neoButtonSweep {
    from { transform: translateX(-120%); }
    to { transform: translateX(120%); }
}

@keyframes neoRowIn {
    from { opacity: 0; transform: translateX(-8px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes neoProgressPulse {
    0%, 100% { filter: brightness(0.94); }
    50% { filter: brightness(1.28); }
}

@media (max-width: 980px) {
    body.app-body .topbar {
        min-height: auto;
    }

    body.app-body .menu a:hover,
    body.app-body .menu a.active {
        transform: none;
    }
}

@media (max-width: 760px) {
    body.app-body .content {
        padding: 14px;
    }

    body.app-body .topbar {
        padding: 15px;
    }

    body.app-body h1 {
        font-size: 26px;
    }

    body.app-body .stat-box h3 {
        font-size: 30px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-body::before,
    body.app-body::after,
    body.app-body .logo::after,
    body.app-body .topbar::before,
    body.app-body tbody tr,
    body.app-body progress.mini-progress::-webkit-progress-value,
    body.app-body progress.mini-progress::-moz-progress-bar {
        animation: none !important;
    }

    body.app-body .ui-reveal,
    body.app-body .ui-reveal.is-visible {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* =====================================================
   Invy Command Center - direcao visual inspirada em Resn/Zentry
===================================================== */

body.app-body {
    --cmd-bg: #030509;
    --cmd-surface: rgba(9,13,20,0.88);
    --cmd-surface-2: rgba(14,20,30,0.92);
    --cmd-red: #f01922;
    --cmd-red-hot: #ff4b4f;
    --cmd-red-deep: #7d0d12;
    --cmd-text: #f8fafc;
    --cmd-soft: #b7c1d0;
    --cmd-dim: #748094;
    --cmd-line: rgba(255,255,255,0.10);
    --cmd-red-line: rgba(240,25,34,0.38);
    min-height: 100vh;
    overflow-x: hidden;
    background:
        linear-gradient(135deg, rgba(240,25,34,0.16), transparent 22%),
        linear-gradient(315deg, rgba(240,25,34,0.12), transparent 24%),
        repeating-linear-gradient(90deg, rgba(255,255,255,0.018) 0 1px, transparent 1px 96px),
        repeating-linear-gradient(0deg, rgba(255,255,255,0.014) 0 1px, transparent 1px 96px),
        var(--cmd-bg);
    color: var(--cmd-text);
}

body.app-body::before {
    content: "";
    position: fixed;
    inset: -20vh -16vw;
    z-index: 0;
    pointer-events: none;
    opacity: 0.82;
    background:
        conic-gradient(from 135deg at 76% 18%, transparent 0 17%, rgba(240,25,34,0.28) 18% 21%, transparent 22% 47%, rgba(255,255,255,0.08) 48% 50%, transparent 51%),
        conic-gradient(from 315deg at 12% 86%, transparent 0 24%, rgba(240,25,34,0.22) 25% 29%, transparent 30% 64%, rgba(255,255,255,0.055) 65% 67%, transparent 68%),
        linear-gradient(112deg, transparent 0 38%, rgba(240,25,34,0.11) 42%, transparent 48% 100%);
    animation: commandPortalDrift 22s linear infinite;
}

body.app-body::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: 0.45;
    background:
        linear-gradient(180deg, transparent 0 48%, rgba(255,75,79,0.18) 49%, transparent 50% 100%),
        repeating-linear-gradient(0deg, transparent 0 5px, rgba(255,255,255,0.018) 5px 6px);
    background-size: 100% 280px, 100% 6px;
    animation: commandScan 8s linear infinite;
}

body.app-body .layout {
    background: transparent;
}

body.app-body .sidebar {
    width: 286px;
    border-right: 1px solid var(--cmd-red-line);
    background:
        linear-gradient(180deg, rgba(240,25,34,0.20), transparent 28%),
        linear-gradient(135deg, rgba(255,255,255,0.055), transparent 42%),
        rgba(4,7,12,0.92);
    box-shadow: 18px 0 60px rgba(0,0,0,0.26);
    backdrop-filter: blur(18px);
}

body.app-body .sidebar::before {
    content: "";
    position: absolute;
    inset: 12px;
    pointer-events: none;
    border: 1px solid rgba(255,255,255,0.055);
    border-radius: 8px;
    clip-path: polygon(0 0, 72% 0, 100% 28%, 100% 100%, 0 100%);
}

body.app-body .sidebar::after {
    width: 2px;
    background: linear-gradient(180deg, transparent, var(--cmd-red-hot), transparent);
    filter: drop-shadow(0 0 12px rgba(240,25,34,0.72));
    animation: commandRail 4.4s ease-in-out infinite;
}

body.app-body .logo {
    margin-bottom: 16px;
    padding: 16px 12px 18px;
    border: 1px solid rgba(240,25,34,0.22);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(240,25,34,0.18), transparent 48%),
        rgba(255,255,255,0.025);
    clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 28px, 100% 100%, 0 100%);
}

body.app-body .logo-invy {
    font-size: 56px;
    font-weight: 900;
    line-height: 0.9;
    text-shadow: 0 18px 42px rgba(240,25,34,0.24);
}

body.app-body .logo-invy .m {
    color: var(--cmd-red-hot);
    animation: commandPulse 3s ease-in-out infinite;
}

body.app-body .logo-sub {
    color: #ffd0d0;
    font-size: 11px;
    font-weight: 900;
}

body.app-body .menu-title {
    color: var(--cmd-dim);
}

body.app-body .menu {
    gap: 8px;
}

body.app-body .menu a {
    min-height: 48px;
    padding: 10px 12px;
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 8px;
    background:
        linear-gradient(90deg, rgba(255,255,255,0.035), transparent),
        rgba(255,255,255,0.018);
    color: #dce5f2;
    font-size: 14px;
    font-weight: 800;
    transform: translateX(0);
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
}

body.app-body .menu a::before {
    background:
        linear-gradient(90deg, rgba(240,25,34,0.42), rgba(240,25,34,0.08) 56%, transparent),
        repeating-linear-gradient(90deg, transparent 0 26px, rgba(255,255,255,0.055) 26px 27px);
}

body.app-body .menu a::after {
    left: 0;
    top: 0;
    bottom: 0;
    width: 2px;
    border-radius: 0;
}

body.app-body .menu a:hover,
body.app-body .menu a.active {
    transform: translateX(5px);
    border-color: rgba(255,75,79,0.58);
    color: #ffffff;
    box-shadow: 0 16px 38px rgba(0,0,0,0.20), 0 0 0 1px rgba(240,25,34,0.08);
}

body.app-body .menu a.active {
    background:
        linear-gradient(90deg, rgba(240,25,34,0.34), rgba(240,25,34,0.10)),
        rgba(255,255,255,0.03);
}

body.app-body .nav-mark {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border-color: rgba(255,75,79,0.34);
    background:
        linear-gradient(135deg, rgba(240,25,34,0.24), rgba(255,255,255,0.035));
}

body.app-body .nav-icon {
    width: 18px;
    height: 18px;
}

body.app-body .content {
    padding: 28px;
}

body.app-body .topbar {
    min-height: 112px;
    margin-bottom: 22px;
    padding: 22px;
    border: 1px solid rgba(255,75,79,0.28);
    border-radius: 8px;
    background:
        linear-gradient(115deg, rgba(240,25,34,0.18), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,0.075), rgba(255,255,255,0.018)),
        rgba(8,12,18,0.78);
    box-shadow: 0 28px 90px rgba(0,0,0,0.34);
    backdrop-filter: blur(18px);
    clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 34px, 100% 100%, 0 100%);
}

body.app-body .topbar::before {
    opacity: 0.55;
    background:
        linear-gradient(110deg, transparent 0 32%, rgba(255,255,255,0.12) 44%, transparent 56%),
        repeating-linear-gradient(90deg, transparent 0 38px, rgba(255,255,255,0.05) 38px 39px);
    animation: commandSurfaceTrace 7s linear infinite;
}

body.app-body .topbar::after {
    width: min(520px, 62vw);
    height: 3px;
    background: linear-gradient(90deg, var(--cmd-red-hot), rgba(240,25,34,0.42), transparent);
    animation: commandLineCharge 2.6s ease-in-out infinite;
}

body.app-body h1 {
    color: #ffffff;
    font-size: 36px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    text-shadow: 0 18px 56px rgba(240,25,34,0.24);
}

body.app-body .subtitle {
    max-width: 760px;
    color: var(--cmd-soft);
    font-size: 14px;
}

body.app-body .panel,
body.app-body .stat-box,
body.app-body .equipment-result-card,
body.app-body .history-card {
    border: 1px solid rgba(255,75,79,0.22);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(240,25,34,0.10), transparent 36%),
        linear-gradient(180deg, rgba(255,255,255,0.060), rgba(255,255,255,0.018)),
        var(--cmd-surface);
    box-shadow:
        0 24px 68px rgba(0,0,0,0.27),
        inset 0 1px 0 rgba(255,255,255,0.06);
    backdrop-filter: blur(16px);
}

body.app-body .panel::before,
body.app-body .equipment-result-card::before,
body.app-body .history-card::before {
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,75,79,0.88), transparent);
}

body.app-body .panel::after,
body.app-body .equipment-result-card::after,
body.app-body .history-card::after,
body.app-body .stat-box::after {
    background:
        linear-gradient(112deg, transparent 0 38%, rgba(255,255,255,0.16) 48%, transparent 58%),
        linear-gradient(90deg, transparent, rgba(240,25,34,0.08), transparent);
}

body.app-body .panel:hover,
body.app-body .equipment-result-card:hover,
body.app-body .history-card:hover,
body.app-body .stat-box:hover {
    transform: translateY(-3px);
    border-color: rgba(255,75,79,0.52);
    box-shadow:
        0 34px 92px rgba(0,0,0,0.34),
        0 0 0 1px rgba(240,25,34,0.10),
        inset 0 1px 0 rgba(255,255,255,0.08);
}

body.app-body .section-title {
    color: #fff1f1;
    font-size: 17px;
    text-transform: uppercase;
}

body.app-body .section-title::before {
    width: 20px;
    height: 8px;
    border-radius: 0;
    background: linear-gradient(90deg, var(--cmd-red-hot), transparent);
    clip-path: polygon(0 0, 100% 0, 76% 100%, 0 100%);
}

body.app-body .stats {
    gap: 16px;
}

body.app-body .stat-box {
    min-height: 128px;
    padding: 18px;
    clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 24px, 100% 100%, 0 100%);
}

body.app-body .stat-box::before {
    width: 5px;
    background: linear-gradient(180deg, var(--cmd-red-hot), var(--cmd-red-deep));
}

body.app-body .stat-box h3 {
    font-size: 38px;
    background: linear-gradient(180deg, #ffffff, #ffb7b7 72%, var(--cmd-red-hot));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: commandNumberGlow 3.2s ease-in-out infinite;
}

body.app-body .stat-box p {
    color: var(--cmd-soft);
    font-weight: 800;
}

body.app-body .btn,
body.app-body button {
    min-height: 40px;
    border-radius: 8px;
    clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%);
}

body.app-body .btn-primary {
    border-color: rgba(255,148,148,0.78);
    background:
        linear-gradient(135deg, var(--cmd-red-hot), var(--cmd-red), var(--cmd-red-deep));
    box-shadow: 0 18px 42px rgba(240,25,34,0.28);
}

body.app-body .btn-secondary,
body.app-body .btn-outline {
    border-color: rgba(255,75,79,0.34);
    background:
        linear-gradient(135deg, rgba(240,25,34,0.15), rgba(255,255,255,0.035)),
        rgba(14,20,30,0.86);
}

body.app-body input,
body.app-body select,
body.app-body textarea {
    border-radius: 8px;
    border-color: rgba(255,255,255,0.14);
    background:
        linear-gradient(90deg, rgba(240,25,34,0.055), transparent 46%),
        rgba(4,7,12,0.86);
}

body.app-body input:focus,
body.app-body select:focus,
body.app-body textarea:focus {
    border-color: rgba(255,75,79,0.90);
    box-shadow: 0 0 0 3px rgba(240,25,34,0.18), 0 0 34px rgba(240,25,34,0.10);
}

body.app-body .table-wrap {
    border-color: rgba(255,75,79,0.24);
    background:
        linear-gradient(180deg, rgba(240,25,34,0.08), transparent 32%),
        rgba(4,7,12,0.72);
    backdrop-filter: blur(14px);
}

body.app-body th {
    height: 44px;
    color: #ffd4d4;
    background:
        linear-gradient(90deg, rgba(240,25,34,0.23), transparent 72%),
        rgba(13,19,29,0.96);
}

body.app-body td {
    color: #dce5f2;
}

body.app-body tbody tr:hover {
    background: rgba(240,25,34,0.075);
}

body.app-body .asset-code {
    color: #ffd0d0;
    text-shadow: 0 0 16px rgba(240,25,34,0.16);
}

body.app-body .status-pill,
body.app-body .badge,
body.app-body .photo-action-badge {
    border-color: rgba(255,75,79,0.34);
    background:
        linear-gradient(135deg, rgba(240,25,34,0.24), rgba(255,255,255,0.045));
    color: #ffd4d4;
}

body.app-body .mini-progress {
    height: 9px;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
}

body.app-body progress.mini-progress::-webkit-progress-value {
    background: linear-gradient(90deg, var(--cmd-red-deep), var(--cmd-red), var(--cmd-red-hot));
}

body.app-body progress.mini-progress::-moz-progress-bar {
    background: linear-gradient(90deg, var(--cmd-red-deep), var(--cmd-red), var(--cmd-red-hot));
}

body.app-body .toast-message {
    border-color: rgba(255,75,79,0.36);
}

body.app-body .ui-reveal {
    opacity: 0;
    transform: translateY(18px) scale(0.985);
    filter: blur(5px);
}

body.app-body .ui-reveal.is-visible,
body.app-body.is-ready .ui-reveal.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
    transition:
        opacity 0.62s ease var(--reveal-delay, 0ms),
        transform 0.62s cubic-bezier(.16,.9,.2,1) var(--reveal-delay, 0ms),
        filter 0.62s ease var(--reveal-delay, 0ms);
}

@keyframes commandPortalDrift {
    from { transform: translate3d(-1.5%, -1%, 0) rotate(0deg); }
    to { transform: translate3d(1.5%, 1%, 0) rotate(360deg); }
}

@keyframes commandScan {
    from { background-position: 0 -280px, 0 0; }
    to { background-position: 0 280px, 0 24px; }
}

@keyframes commandRail {
    0%, 100% { opacity: 0.25; transform: scaleY(0.16); transform-origin: top; }
    50% { opacity: 1; transform: scaleY(1); transform-origin: center; }
}

@keyframes commandPulse {
    0%, 100% { filter: drop-shadow(0 0 0 rgba(240,25,34,0)); }
    50% { filter: drop-shadow(0 0 18px rgba(240,25,34,0.74)); }
}

@keyframes commandSurfaceTrace {
    from { background-position: -520px 0, -760px 0; }
    to { background-position: 520px 0, 760px 0; }
}

@keyframes commandLineCharge {
    0%, 100% { opacity: 0.48; transform: scaleX(0.68); transform-origin: left; }
    50% { opacity: 1; transform: scaleX(1); transform-origin: left; }
}

@keyframes commandNumberGlow {
    0%, 100% { filter: drop-shadow(0 0 0 rgba(240,25,34,0)); }
    50% { filter: drop-shadow(0 0 12px rgba(240,25,34,0.34)); }
}

@media (max-width: 980px) {
    body.app-body .sidebar {
        width: 100%;
    }

    body.app-body .sidebar::before,
    body.app-body .sidebar::after {
        display: none;
    }

    body.app-body .menu a,
    body.app-body .topbar,
    body.app-body .stat-box {
        clip-path: none;
    }
}

@media (max-width: 760px) {
    body.app-body .content {
        padding: 14px;
    }

    body.app-body .topbar {
        min-height: auto;
        padding: 16px;
        clip-path: none;
    }

    body.app-body h1 {
        font-size: 27px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-body::before,
    body.app-body::after,
    body.app-body .sidebar::after,
    body.app-body .logo-invy .m,
    body.app-body .topbar::before,
    body.app-body .topbar::after,
    body.app-body .stat-box h3 {
        animation: none !important;
    }
}

/* =====================================================
   Invy FIAP REDESIGN - preto, vermelho e movimento contido
   Organizacao: base, layout, componentes, telas especificas e responsivo.
===================================================== */

:root {
    --invy-black: #050505;
    --invy-black-2: #0a0a0b;
    --invy-surface: #111113;
    --invy-surface-2: #171719;
    --invy-line: rgba(255,255,255,0.10);
    --invy-line-strong: rgba(237,20,43,0.48);
    --invy-text: #f7f7f8;
    --invy-muted: #a7aab1;
    --invy-red: #ed142b;
    --invy-red-2: #b90f20;
    --invy-red-soft: #ff4a5d;
    --invy-shadow: 0 22px 52px rgba(0,0,0,0.38);
    --invy-radius: 8px;
}

body.app-body *,
body.app-body *::before,
body.app-body *::after,
.login-v2-page *,
.login-v2-page *::before,
.login-v2-page *::after {
    letter-spacing: 0 !important;
}

body.app-body {
    min-height: 100vh;
    font-family: Arial, Helvetica, sans-serif;
    color: var(--invy-text);
    background:
        linear-gradient(120deg, rgba(237,20,43,0.16), transparent 30%),
        linear-gradient(180deg, rgba(255,255,255,0.035), transparent 320px),
        var(--invy-black);
}

body.app-body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: 0.55;
    background:
        linear-gradient(135deg, transparent 0 52%, rgba(237,20,43,0.18) 52.2%, transparent 52.8%),
        linear-gradient(135deg, transparent 0 68%, rgba(255,255,255,0.06) 68.1%, transparent 68.4%),
        repeating-linear-gradient(90deg, rgba(255,255,255,0.025) 0 1px, transparent 1px 120px);
    animation: none !important;
}

body.app-body::after {
    content: none !important;
    display: none !important;
}

body.app-body .layout {
    position: relative;
    z-index: 1;
    background: transparent;
}

body.app-body .sidebar {
    width: 288px;
    padding: 28px 18px;
    border-right: 1px solid var(--invy-line);
    background:
        linear-gradient(180deg, rgba(237,20,43,0.16), transparent 230px),
        rgba(7,7,8,0.96);
    box-shadow: 18px 0 40px rgba(0,0,0,0.28);
    backdrop-filter: blur(14px);
}

body.app-body .sidebar::before,
body.app-body .sidebar::after,
body.app-body .logo::after,
body.app-body .topbar::before,
body.app-body .topbar::after,
body.app-body .menu a::before,
body.app-body .menu a::after,
body.app-body .panel::after,
body.app-body .stat-box::after,
body.app-body .equipment-result-card::after,
body.app-body .history-card::after,
body.app-body .btn::after,
body.app-body button::after,
body.app-body .btn::before,
body.app-body button::before {
    content: none !important;
    display: none !important;
    animation: none !important;
}

body.app-body .logo {
    margin-bottom: 24px;
    padding: 18px 14px;
    border: 1px solid rgba(237,20,43,0.38);
    border-radius: var(--invy-radius);
    background:
        linear-gradient(135deg, rgba(237,20,43,0.18), transparent 58%),
        rgba(255,255,255,0.035);
    clip-path: none;
}

body.app-body .logo-invy {
    font-size: 58px;
    line-height: 0.92;
    color: #ffffff;
    text-shadow: none;
}

body.app-body .logo-invy .m {
    color: var(--invy-red);
    animation: none !important;
    filter: none;
}

body.app-body .logo-sub,
body.app-body .menu-title {
    color: var(--invy-muted);
    font-weight: 800;
    text-transform: uppercase;
}

body.app-body .menu {
    gap: 8px;
}

body.app-body .menu a {
    min-height: 48px;
    padding: 11px 12px;
    border: 1px solid transparent;
    border-radius: var(--invy-radius);
    background: transparent;
    color: #d9dbe1;
    font-size: 14px;
    font-weight: 800;
    clip-path: none;
    box-shadow: none;
    transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
}

body.app-body .menu a:hover,
body.app-body .menu a.active {
    transform: translateX(3px);
    color: #ffffff;
    border-color: rgba(237,20,43,0.46);
    background:
        linear-gradient(90deg, rgba(237,20,43,0.26), rgba(237,20,43,0.06)),
        rgba(255,255,255,0.035);
    box-shadow: none;
}

body.app-body .nav-mark {
    width: 32px;
    height: 32px;
    border-radius: 6px;
    border: 1px solid rgba(255,255,255,0.10);
    background: #151517;
    color: #ffffff;
}

body.app-body .menu a:hover .nav-mark,
body.app-body .menu a.active .nav-mark {
    border-color: rgba(237,20,43,0.72);
    background: var(--invy-red);
}

body.app-body .nav-icon {
    width: 17px;
    height: 17px;
    stroke: currentColor;
    stroke-width: 1.9;
    fill: none;
    filter: none;
}

body.app-body .creator-box {
    border: 1px solid var(--invy-line);
    border-radius: var(--invy-radius);
    background: rgba(255,255,255,0.035);
    box-shadow: none;
}

body.app-body .creator-box .small,
body.app-body .creator-box .version {
    color: var(--invy-muted);
}

body.app-body .creator-box .name {
    color: #ffffff;
    font-size: 20px;
}

body.app-body .content {
    padding: 30px;
}

body.app-body .topbar {
    min-height: auto;
    margin-bottom: 22px;
    padding: 24px;
    border: 1px solid var(--invy-line);
    border-left: 4px solid var(--invy-red);
    border-radius: var(--invy-radius);
    background:
        linear-gradient(115deg, rgba(237,20,43,0.18), transparent 36%),
        rgba(13,13,15,0.88);
    box-shadow: var(--invy-shadow);
    clip-path: none;
    backdrop-filter: blur(12px);
}

body.app-body h1 {
    color: #ffffff;
    font-size: 34px;
    line-height: 1.08;
    font-weight: 900;
    text-transform: uppercase;
    text-shadow: none;
}

body.app-body h2 {
    color: #ffffff;
}

body.app-body .subtitle,
body.app-body .muted,
body.app-body .section-note,
body.app-body .table-note,
body.app-body .field-hint {
    color: var(--invy-muted);
}

body.app-body .panel,
body.app-body .stat-box,
body.app-body .equipment-result-card,
body.app-body .history-card,
body.app-body .thumb-card,
body.app-body .history-grid > div,
body.app-body .result-grid div {
    position: relative;
    border: 1px solid var(--invy-line);
    border-radius: var(--invy-radius);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.055), rgba(255,255,255,0.018)),
        var(--invy-surface);
    box-shadow: 0 18px 44px rgba(0,0,0,0.28);
    clip-path: none;
    animation: none !important;
    transform: none;
}

body.app-body .panel,
body.app-body .equipment-result-card,
body.app-body .history-card {
    padding: 22px;
}

body.app-body .panel::before,
body.app-body .equipment-result-card::before,
body.app-body .history-card::before,
body.app-body .stat-box::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    height: auto;
    border-radius: var(--invy-radius) 0 0 var(--invy-radius);
    background: var(--invy-red);
    opacity: 0.86;
    pointer-events: none;
}

body.app-body .panel:hover,
body.app-body .equipment-result-card:hover,
body.app-body .history-card:hover,
body.app-body .stat-box:hover {
    transform: translateY(-1px);
    border-color: rgba(237,20,43,0.34);
    box-shadow: 0 22px 48px rgba(0,0,0,0.34);
}

body.app-body .section-title {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #ffffff;
    font-size: 18px;
    line-height: 1.2;
    font-weight: 900;
    text-transform: uppercase;
}

body.app-body .section-title::before {
    content: "";
    display: inline-block;
    width: 22px;
    height: 3px;
    border-radius: 999px;
    background: var(--invy-red);
    clip-path: none;
}

body.app-body .stats {
    grid-template-columns: repeat(4, minmax(160px, 1fr));
    gap: 14px;
}

body.app-body .stat-box {
    position: relative;
    min-height: 118px;
    padding: 18px 18px 18px 20px;
}

body.app-body .stat-box h3,
body.app-body .stat-box.accent-blue h3,
body.app-body .stat-box.accent-green h3,
body.app-body .stat-box.accent-amber h3 {
    color: #ffffff;
    font-size: 36px;
    line-height: 1;
    background: none;
    -webkit-background-clip: initial;
    background-clip: initial;
    animation: none !important;
    filter: none;
}

body.app-body .stat-box p {
    color: var(--invy-muted);
    font-weight: 800;
}

body.app-body .btn,
body.app-body button,
body.app-body input[type="submit"] {
    min-height: 42px;
    border-radius: var(--invy-radius);
    border: 1px solid transparent;
    padding: 11px 16px;
    font-weight: 900;
    line-height: 1.1;
    clip-path: none;
    box-shadow: none;
    transition: transform 0.16s ease, border-color 0.16s ease, background-color 0.16s ease, color 0.16s ease;
}

body.app-body .btn:hover,
body.app-body button:hover {
    transform: translateY(-1px);
}

body.app-body .btn-primary {
    border-color: rgba(255,255,255,0.10);
    background: var(--invy-red);
    color: #ffffff;
}

body.app-body .btn-primary:hover {
    background: var(--invy-red-soft);
}

body.app-body .btn-secondary,
body.app-body .btn-outline {
    border-color: rgba(237,20,43,0.36);
    background: #151517;
    color: #f4f4f5;
}

body.app-body .btn-secondary:hover,
body.app-body .btn-outline:hover {
    border-color: rgba(237,20,43,0.74);
    background: rgba(237,20,43,0.15);
}

body.app-body .btn-danger {
    border-color: rgba(255,255,255,0.08);
    background: #7f101c;
    color: #ffffff;
}

body.app-body .toast-close {
    width: 30px;
    height: 30px;
    min-height: 30px;
    padding: 0;
    border-radius: 8px;
}

body.app-body label {
    color: #f2f2f3;
    font-weight: 800;
}

body.app-body input,
body.app-body select,
body.app-body textarea {
    border-radius: var(--invy-radius);
    border: 1px solid rgba(255,255,255,0.14);
    background: #080809;
    color: #ffffff;
    box-shadow: none;
}

body.app-body input:hover,
body.app-body select:hover,
body.app-body textarea:hover {
    border-color: rgba(255,255,255,0.24);
}

body.app-body input:focus,
body.app-body select:focus,
body.app-body textarea:focus {
    border-color: var(--invy-red);
    box-shadow: 0 0 0 3px rgba(237,20,43,0.18);
    background: #0c0c0d;
    transform: none;
}

body.app-body .dashboard-grid {
    grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.55fr);
    gap: 18px;
}

body.app-body .search-box,
body.app-body .grid,
body.app-body .grid-2,
body.app-body .grid-3 {
    gap: 14px;
}

body.app-body .status-row,
body.app-body .insight-row {
    border-bottom: 1px solid var(--invy-line);
}

body.app-body .status-row strong,
body.app-body .insight-row strong {
    color: #ffffff;
}

body.app-body .mini-progress {
    height: 8px;
    border-radius: 999px;
    background: rgba(255,255,255,0.09);
}

body.app-body progress.mini-progress::-webkit-progress-value {
    background: linear-gradient(90deg, var(--invy-red-2), var(--invy-red-soft));
    animation: none !important;
}

body.app-body progress.mini-progress::-moz-progress-bar {
    background: linear-gradient(90deg, var(--invy-red-2), var(--invy-red-soft));
    animation: none !important;
}

body.app-body .table-wrap {
    border: 1px solid var(--invy-line);
    border-radius: var(--invy-radius);
    background: rgba(8,8,9,0.74);
    box-shadow: none;
    backdrop-filter: none;
}

body.app-body th,
body.app-body td {
    border-bottom: 1px solid rgba(255,255,255,0.075);
}

body.app-body th {
    height: 44px;
    color: #ffffff;
    background: #171719;
    font-size: 12px;
    font-weight: 900;
}

body.app-body td {
    color: #dedfe4;
}

body.app-body tbody tr {
    animation: none !important;
}

body.app-body tbody tr:hover {
    background: rgba(237,20,43,0.09);
}

body.app-body .asset-code,
body.app-body .service-code,
body.app-body .equipment-link {
    color: #ffffff;
    font-weight: 900;
    text-shadow: none;
}

body.app-body .equipment-link:hover {
    color: var(--invy-red-soft);
}

body.app-body .status-pill,
body.app-body .badge,
body.app-body .photo-action-badge {
    border: 1px solid rgba(237,20,43,0.42);
    border-radius: 999px;
    background: rgba(237,20,43,0.14);
    color: #ffffff;
    box-shadow: none;
}

body.app-body .result-kicker {
    color: var(--invy-red-soft);
}

body.app-body .thumb-card img,
body.app-body .result-photo-strip img {
    border-radius: 6px;
    background: #080809;
}

body.app-body .security-callout {
    border-color: rgba(237,20,43,0.38);
    background: rgba(237,20,43,0.10);
}

body.app-body code {
    color: #ffffff;
    background: rgba(237,20,43,0.18);
}

body.app-body .ui-reveal,
body.app-body .ui-reveal.is-visible,
body.app-body.is-ready .ui-reveal.is-visible {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
}

body.login-page.login-v2-page {
    display: block;
    padding: 0;
    overflow-x: hidden;
}

.login-v2-page::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: 0.58;
    background:
        linear-gradient(135deg, transparent 0 45%, rgba(237,20,43,0.22) 45.2%, transparent 45.8%),
        linear-gradient(135deg, transparent 0 72%, rgba(255,255,255,0.08) 72.1%, transparent 72.5%),
        repeating-linear-gradient(90deg, rgba(255,255,255,0.024) 0 1px, transparent 1px 118px);
    animation: none !important;
}

.login-v2-page::after {
    content: none !important;
    display: none !important;
}

.login-v2-shell {
    position: relative;
    z-index: 1;
    width: 100%;
    min-height: 100vh;
    max-width: none;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(420px, 0.95fr);
    gap: 0;
    padding: 0;
}

.login-v2-visual {
    position: relative;
    min-height: 100vh;
    padding: 54px;
    border: 0;
    border-right: 1px solid var(--invy-line);
    border-radius: 0;
    background:
        linear-gradient(115deg, rgba(237,20,43,0.20), transparent 42%),
        #070708;
    box-shadow: none;
}

.login-v2-visual::before {
    content: "";
    position: absolute;
    inset: 18px;
    border: 1px solid rgba(237,20,43,0.32);
    border-radius: var(--invy-radius);
    background: none;
    animation: none !important;
}

.login-v2-brand {
    position: relative;
    z-index: 1;
}

.login-v2-logo {
    border-radius: var(--invy-radius);
    background: #ffffff;
    color: #050505;
    box-shadow: none;
}

.login-v2-logo span {
    color: var(--invy-red);
}

.login-v2-brand strong {
    color: #ffffff;
    text-transform: uppercase;
}

.login-v2-brand small {
    color: var(--invy-muted);
}

.login-v2-monitor {
    position: relative;
    z-index: 1;
    margin-top: 52px;
    border: 1px solid var(--invy-line);
    border-radius: var(--invy-radius);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.055), rgba(255,255,255,0.018)),
        #101012;
    box-shadow: var(--invy-shadow);
}

.monitor-card {
    border-radius: var(--invy-radius);
    border-color: rgba(255,255,255,0.10);
    background: #171719;
}

.monitor-card-main {
    border-color: rgba(237,20,43,0.46);
}

.monitor-card strong,
.monitor-label {
    color: #ffffff;
}

.monitor-line,
.meter {
    background: rgba(255,255,255,0.10);
}

.meter-fill-assets,
.meter-fill-support {
    background: var(--invy-red);
    animation: none !important;
}

.network-map .node {
    background: #ffffff;
    border-color: var(--invy-red);
    box-shadow: none;
    animation: none !important;
}

.network-map .connection {
    background: rgba(237,20,43,0.46);
    box-shadow: none;
}

.login-v2-footer {
    position: relative;
    z-index: 1;
    color: var(--invy-muted);
}

.login-v2-panel {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    justify-content: center;
    padding: 54px;
    border: 0;
    border-radius: 0;
    background: rgba(10,10,11,0.94);
    box-shadow: none;
}

.login-v2-kicker {
    color: var(--invy-red-soft);
    background: rgba(237,20,43,0.12);
    border-color: rgba(237,20,43,0.34);
}

.login-v2-heading h1 {
    color: #ffffff;
    font-size: 38px;
    text-transform: uppercase;
}

.login-v2-heading p,
.login-v2-panel-footer,
.login-v2-panel-footer small {
    color: var(--invy-muted);
}

.login-v2-field label {
    color: #ffffff;
}

.login-v2-input {
    border-radius: var(--invy-radius);
    border: 1px solid rgba(255,255,255,0.14);
    background: #080809;
    box-shadow: none;
}

.login-v2-input > svg,
.login-v2-toggle {
    color: var(--invy-muted);
}

.login-v2-input input {
    color: #ffffff;
}

.login-v2-input:hover,
.login-v2-input:focus-within {
    border-color: var(--invy-red);
    box-shadow: 0 0 0 3px rgba(237,20,43,0.18);
}

.login-v2-submit {
    border-radius: var(--invy-radius);
    border: 1px solid rgba(255,255,255,0.10);
    background: var(--invy-red);
    box-shadow: none;
}

.login-v2-submit:hover {
    transform: translateY(-1px);
    background: var(--invy-red-soft);
    box-shadow: none;
}

@media (max-width: 1100px) {
    body.app-body .stats {
        grid-template-columns: repeat(2, minmax(160px, 1fr));
    }

    body.app-body .dashboard-grid,
    .login-v2-shell {
        grid-template-columns: 1fr;
    }

    .login-v2-visual,
    .login-v2-panel {
        min-height: auto;
    }

    .login-v2-visual {
        border-right: 0;
        border-bottom: 1px solid var(--invy-line);
    }
}

@media (max-width: 980px) {
    body.app-body .layout {
        display: block;
    }

    body.app-body .sidebar {
        position: relative;
        width: 100%;
        height: auto;
        border-right: 0;
        border-bottom: 1px solid var(--invy-line);
    }

    body.app-body .menu {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.app-body .menu a:hover,
    body.app-body .menu a.active {
        transform: none;
    }
}

@media (max-width: 760px) {
    body.app-body .content {
        padding: 14px;
    }

    body.app-body .topbar,
    body.app-body .panel,
    body.app-body .equipment-result-card,
    body.app-body .history-card {
        padding: 16px;
    }

    body.app-body h1 {
        font-size: 27px;
    }

    body.app-body .stats,
    body.app-body .grid,
    body.app-body .grid-2,
    body.app-body .grid-3,
    body.app-body .history-grid,
    body.app-body .result-grid {
        grid-template-columns: 1fr;
    }

    body.app-body .menu {
        grid-template-columns: 1fr;
    }

    .login-v2-visual,
    .login-v2-panel {
        padding: 24px;
    }

    .login-v2-heading h1 {
        font-size: 30px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-body *,
    body.app-body *::before,
    body.app-body *::after,
    .login-v2-page *,
    .login-v2-page *::before,
    .login-v2-page *::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}

/* =====================================================
   LOGIN - base original com animacoes limpas
===================================================== */

body.login-page.login-v2-page {
    min-height: 100vh;
    min-height: 100svh;
    display: grid;
    place-items: center;
    padding: 28px;
    overflow: auto;
    background:
        linear-gradient(rgba(255,255,255,0.024) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.024) 1px, transparent 1px),
        linear-gradient(135deg, #05070c 0%, #0b1017 50%, #121826 100%);
    background-size: 42px 42px, 42px 42px, auto;
}

.login-v2-page::before,
.login-v2-page::after {
    content: none !important;
    display: none !important;
}

.login-v2-shell {
    width: min(1080px, 100%);
    min-height: 640px;
    display: grid;
    grid-template-columns: minmax(360px, 0.92fr) minmax(420px, 1.08fr);
    overflow: hidden;
    border: 1px solid rgba(148,163,184,0.18);
    border-radius: 20px;
    background: rgba(7,11,18,0.96);
    box-shadow:
        0 28px 90px rgba(0,0,0,0.62),
        inset 0 1px 0 rgba(255,255,255,0.055);
    animation: loginCleanEnter 0.42s ease both;
}

.login-v2-visual {
    position: relative;
    display: grid;
    grid-template-rows: auto 1fr auto;
    min-height: 100%;
    padding: 34px;
    border: 0;
    border-right: 1px solid rgba(148,163,184,0.14);
    border-radius: 0;
    background:
        linear-gradient(180deg, rgba(224,25,25,0.12), transparent 44%),
        linear-gradient(135deg, #070b12 0%, #0e1726 100%);
    box-shadow: none;
    isolation: isolate;
}

.login-v2-visual::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border: 0;
    border-radius: 0;
    background:
        linear-gradient(135deg, transparent 0 48%, rgba(255,255,255,0.045) 48.2% 48.6%, transparent 48.8%),
        linear-gradient(45deg, transparent 0 64%, rgba(224,25,25,0.12) 64.2% 64.6%, transparent 64.9%);
    background-size: 340px 340px, 460px 460px;
    opacity: 0.42;
    animation: loginCleanGrid 28s linear infinite;
}

.login-v2-brand,
.login-v2-monitor,
.login-v2-footer {
    position: relative;
    z-index: 1;
}

.login-v2-logo {
    color: #ffffff;
    font-size: 58px;
    font-weight: 900;
    line-height: 0.9;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
}

.login-v2-logo span {
    color: var(--red);
}

.login-v2-brand strong {
    color: #f8fafc;
    font-size: 16px;
    line-height: 1.2;
    text-transform: none;
}

.login-v2-brand small {
    margin-top: 4px;
    color: #94a3b8;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.login-v2-monitor {
    align-self: center;
    width: min(420px, 100%);
    margin: 36px auto;
    padding: 18px;
    border: 1px solid rgba(148,163,184,0.16);
    border-radius: 18px;
    background:
        linear-gradient(180deg, rgba(15,23,42,0.86), rgba(2,6,23,0.78));
    box-shadow:
        0 22px 58px rgba(0,0,0,0.44),
        inset 0 1px 0 rgba(255,255,255,0.055);
}

.monitor-card {
    min-height: 110px;
    padding: 14px;
    border-radius: 14px;
    border: 1px solid rgba(148,163,184,0.12);
    background: rgba(15,23,42,0.58);
}

.monitor-card-main {
    grid-column: 1 / -1;
    min-height: 128px;
    border-color: rgba(148,163,184,0.12);
    background:
        linear-gradient(90deg, rgba(224,25,25,0.15), rgba(15,23,42,0.58));
}

.monitor-label {
    display: block;
    margin-bottom: 10px;
    color: #94a3b8;
    font-size: 11px;
    font-weight: 800;
}

.monitor-card strong {
    display: block;
    color: #f8fafc;
    font-size: 18px;
    line-height: 1.25;
}

.monitor-line {
    width: 88%;
    height: 8px;
    margin-top: 22px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(224,25,25,0.95), rgba(248,113,113,0.22));
    animation: loginCleanPulse 3.2s ease-in-out infinite;
}

.monitor-line.short {
    width: 58%;
    margin-top: 10px;
    opacity: 0.68;
    animation-delay: 0.35s;
}

.meter {
    height: 8px;
    margin-top: 24px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(148,163,184,0.14);
}

.meter span,
.meter-fill-assets,
.meter-fill-support {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #e01919, #f87171);
    animation: loginCleanMeter 0.8s ease both;
}

.meter.amber span {
    background: linear-gradient(90deg, #b91c1c, #fb7185);
}

.network-map {
    position: relative;
    height: 170px;
    margin-top: 18px;
    border-radius: 14px;
    border: 1px solid rgba(148,163,184,0.10);
    background:
        linear-gradient(rgba(255,255,255,0.028) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.028) 1px, transparent 1px),
        rgba(2,6,23,0.38);
    background-size: 24px 24px;
}

.network-map .node,
.node {
    background: #f8fafc;
    border: 0;
    box-shadow: 0 0 0 5px rgba(224,25,25,0.10);
    animation: loginCleanNode 3.6s ease-in-out infinite;
}

.network-map .connection,
.connection {
    height: 1px;
    background: linear-gradient(90deg, rgba(224,25,25,0.82), rgba(224,25,25,0.04));
    box-shadow: none;
    opacity: 0.52;
}

.login-v2-footer {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-top: 20px;
    border-top: 1px solid rgba(148,163,184,0.12);
    color: #94a3b8;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.login-v2-panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: auto;
    padding: 58px;
    border: 0;
    border-radius: 0;
    background:
        linear-gradient(180deg, rgba(15,23,42,0.97), rgba(9,13,22,0.99));
    box-shadow: none;
}

.login-v2-kicker {
    color: #fecaca;
    background: rgba(224,25,25,0.10);
    border-color: rgba(224,25,25,0.36);
}

.login-v2-heading h1 {
    margin: 0 0 10px;
    color: #f8fafc;
    font-size: 36px;
    line-height: 1.12;
    text-transform: none;
}

.login-v2-heading p,
.login-v2-panel-footer {
    color: #a7b0bd;
}

.login-v2-panel-footer small {
    color: #64748b;
}

.login-v2-input {
    position: relative;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.login-v2-input:hover,
.login-v2-input:focus-within {
    border-color: transparent;
    box-shadow: none;
}

.login-v2-input > svg {
    color: #94a3b8;
}

.login-v2-input input {
    width: 100%;
    height: 56px;
    padding: 0 54px;
    border-radius: 12px;
    border: 1px solid rgba(148,163,184,0.26);
    background: rgba(2,6,23,0.54);
    color: #f8fafc;
    font-size: 15px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
    transition: border-color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

.login-v2-input input:hover {
    border-color: rgba(148,163,184,0.42);
}

.login-v2-input input:focus {
    border-color: rgba(224,25,25,0.86);
    background: rgba(2,6,23,0.72);
    box-shadow:
        0 0 0 4px rgba(224,25,25,0.13),
        inset 0 1px 0 rgba(255,255,255,0.04);
    transform: none;
}

.login-v2-input:focus-within > svg,
.login-v2-toggle:hover {
    color: #ff6b6b;
}

.login-v2-submit {
    width: 100%;
    height: 56px;
    margin-top: 8px;
    padding: 0 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 0;
    border-radius: 12px;
    background: linear-gradient(135deg, #e01919, #a70f0f);
    color: #ffffff;
    font-size: 15px;
    font-weight: 900;
    box-shadow: 0 16px 34px rgba(224,25,25,0.24);
    transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
}

.login-v2-submit:hover {
    transform: translateY(-1px);
    background: linear-gradient(135deg, #f02a2a, #b71313);
    box-shadow: 0 20px 42px rgba(224,25,25,0.34);
}

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

@keyframes loginCleanGrid {
    from { background-position: 0 0, 0 0; }
    to { background-position: 80px 80px, -90px 90px; }
}

@keyframes loginCleanPulse {
    0%, 100% { opacity: 0.64; transform: scaleX(0.82); transform-origin: left; }
    50% { opacity: 1; transform: scaleX(1); transform-origin: left; }
}

@keyframes loginCleanMeter {
    from { transform: scaleX(0); transform-origin: left; }
    to { transform: scaleX(1); transform-origin: left; }
}

@keyframes loginCleanNode {
    0%, 100% { transform: scale(1); opacity: 0.82; }
    50% { transform: scale(1.08); opacity: 1; }
}

@media (max-width: 1080px) {
    .login-v2-shell {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .login-v2-visual {
        min-height: 360px;
        border-right: 0;
        border-bottom: 1px solid rgba(148,163,184,0.14);
    }

    .login-v2-panel {
        min-height: auto;
    }
}

@media (max-width: 680px) {
    body.login-page.login-v2-page {
        padding: 12px;
        place-items: start center;
    }

    .login-v2-shell {
        border-radius: 16px;
    }

    .login-v2-visual {
        min-height: auto;
        padding: 24px;
    }

    .login-v2-panel {
        padding: 30px 22px 26px;
    }

    .login-v2-heading h1 {
        font-size: 30px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .login-v2-shell,
    .login-v2-visual::before,
    .monitor-line,
    .meter span,
    .meter-fill-assets,
    .meter-fill-support,
    .network-map .node,
    .node {
        animation: none !important;
    }
}

/* =====================================================
   Invy TECH APP - dashboard e inventario pos-login
===================================================== */

body.app-body {
    --tech-bg: #030305;
    --tech-bg-2: #08090d;
    --tech-panel: rgba(14,15,20,0.88);
    --tech-panel-solid: #111217;
    --tech-panel-soft: #171922;
    --tech-line: rgba(255,255,255,0.10);
    --tech-line-strong: rgba(237,20,43,0.46);
    --tech-red: #ed142b;
    --tech-red-hot: #ff354a;
    --tech-red-deep: #9f0d1b;
    --tech-text: #f8fafc;
    --tech-muted: #9ca3af;
    --tech-blue: #38bdf8;
    --tech-green: #34d399;
    --tech-amber: #fbbf24;
    --tech-radius: 12px;
    --tech-shadow: 0 22px 70px rgba(0,0,0,0.38);
    background:
        radial-gradient(circle at 16% 8%, rgba(237,20,43,0.24), transparent 28%),
        radial-gradient(circle at 82% 2%, rgba(56,189,248,0.10), transparent 26%),
        linear-gradient(180deg, #050507 0%, var(--tech-bg) 100%);
    color: var(--tech-text);
}

body.app-body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: 0.56;
    background:
        linear-gradient(115deg, transparent 0 48%, rgba(237,20,43,0.16) 48.18%, transparent 48.45%),
        linear-gradient(115deg, transparent 0 63%, rgba(255,255,255,0.055) 63.1%, transparent 63.32%),
        linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.022) 1px, transparent 1px);
    background-size: auto, auto, 56px 56px, 56px 56px;
    animation: techGridDrift 32s linear infinite !important;
}

body.app-body .layout,
body.app-body .sidebar,
body.app-body .content {
    position: relative;
    z-index: 1;
}

body.app-body .sidebar {
    width: 292px;
    padding: 26px 18px;
    border-right: 1px solid rgba(237,20,43,0.22);
    background:
        linear-gradient(180deg, rgba(237,20,43,0.18), transparent 230px),
        linear-gradient(135deg, rgba(255,255,255,0.055), transparent 44%),
        rgba(4,5,8,0.88);
    box-shadow: 18px 0 70px rgba(0,0,0,0.34);
    backdrop-filter: blur(18px);
}

body.app-body .logo {
    position: relative;
    overflow: hidden;
    border-color: rgba(237,20,43,0.42);
    border-radius: var(--tech-radius);
    background:
        linear-gradient(135deg, rgba(237,20,43,0.22), transparent 58%),
        rgba(255,255,255,0.038);
}

body.app-body .logo::before {
    content: "" !important;
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 10px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--tech-red-hot), transparent);
    opacity: 0.8;
    animation: techLinePulse 4s ease-in-out infinite;
}

body.app-body .logo-invy {
    font-size: 58px;
    line-height: 0.9;
}

body.app-body .logo-invy .m {
    color: var(--tech-red-hot);
}

body.app-body .menu a {
    position: relative;
    overflow: hidden;
    min-height: 48px;
    border-radius: 10px;
    border-color: transparent;
    background: rgba(255,255,255,0.026);
    color: #d7dce5;
    transition:
        transform 0.18s ease,
        border-color 0.18s ease,
        background-color 0.18s ease,
        color 0.18s ease;
}

body.app-body .menu a::before {
    content: "" !important;
    position: absolute;
    inset: 0;
    display: block !important;
    background: linear-gradient(90deg, rgba(237,20,43,0.28), transparent 64%);
    opacity: 0;
    transition: opacity 0.18s ease;
}

body.app-body .menu a > span {
    position: relative;
    z-index: 1;
}

body.app-body .menu a:hover,
body.app-body .menu a.active {
    transform: translateX(4px);
    border-color: rgba(237,20,43,0.42);
    color: #ffffff;
    background: rgba(237,20,43,0.10);
}

body.app-body .menu a:hover::before,
body.app-body .menu a.active::before {
    opacity: 1;
}

body.app-body .nav-mark {
    border-radius: 9px;
    background: rgba(255,255,255,0.065);
}

body.app-body .menu a:hover .nav-mark,
body.app-body .menu a.active .nav-mark {
    background: var(--tech-red);
    box-shadow: 0 0 24px rgba(237,20,43,0.28);
}

body.app-body .creator-box {
    border-color: rgba(255,255,255,0.10);
    border-radius: var(--tech-radius);
    background:
        linear-gradient(135deg, rgba(237,20,43,0.12), transparent 52%),
        rgba(255,255,255,0.035);
}

body.app-body .creator-box .name {
    color: #ffffff;
}

body.app-body .content {
    padding: 30px;
}

body.app-body .topbar {
    position: relative;
    overflow: hidden;
    min-height: 118px;
    padding: 26px;
    border: 1px solid rgba(255,255,255,0.10);
    border-left: 4px solid var(--tech-red);
    border-radius: var(--tech-radius);
    background:
        radial-gradient(circle at 85% 12%, rgba(237,20,43,0.18), transparent 28%),
        linear-gradient(135deg, rgba(255,255,255,0.075), rgba(255,255,255,0.020)),
        rgba(12,13,18,0.82);
    box-shadow: var(--tech-shadow);
    backdrop-filter: blur(18px);
}

body.app-body .topbar::before {
    content: "" !important;
    position: absolute;
    inset: 0;
    display: block !important;
    pointer-events: none;
    background:
        linear-gradient(115deg, transparent 0 38%, rgba(255,255,255,0.13) 49%, transparent 60%);
    transform: translateX(-70%);
    opacity: 0.38;
    animation: techSurfaceSweep 8s ease-in-out infinite !important;
}

body.app-body .topbar > * {
    position: relative;
    z-index: 1;
}

body.app-body h1 {
    font-size: 36px;
    line-height: 1;
    font-weight: 900;
    color: #ffffff;
    text-transform: uppercase;
}

body.app-body .subtitle {
    margin-top: 8px;
    color: var(--tech-muted);
}

body.app-body .stats {
    grid-template-columns: repeat(4, minmax(170px, 1fr));
    gap: 16px;
    margin-bottom: 22px;
}

body.app-body .stat-box {
    position: relative;
    min-height: 126px;
    overflow: hidden;
    padding: 20px;
    border: 1px solid rgba(255,255,255,0.10);
    border-radius: var(--tech-radius);
    background:
        radial-gradient(circle at 86% 18%, rgba(237,20,43,0.18), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,0.070), rgba(255,255,255,0.018)),
        rgba(13,14,19,0.88);
    box-shadow: 0 18px 56px rgba(0,0,0,0.28);
    transform: translateY(0);
    transition:
        transform 0.20s ease,
        border-color 0.20s ease,
        box-shadow 0.20s ease;
}

body.app-body .stat-box::before {
    content: "";
    position: absolute;
    inset: auto 18px 16px 18px;
    width: auto;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--tech-red-hot), rgba(237,20,43,0.08));
    opacity: 0.9;
}

body.app-body .stat-box::after {
    content: "" !important;
    position: absolute;
    display: block !important;
    width: 120px;
    height: 120px;
    right: -46px;
    top: -46px;
    border-radius: 50%;
    background: rgba(237,20,43,0.10);
    filter: blur(2px);
}

body.app-body .stat-box:hover {
    transform: translateY(-4px);
    border-color: rgba(237,20,43,0.42);
    box-shadow: 0 24px 72px rgba(0,0,0,0.38), 0 0 0 1px rgba(237,20,43,0.08);
}

body.app-body .stat-box h3 {
    position: relative;
    z-index: 1;
    font-size: 40px;
    color: #ffffff;
}

body.app-body .stat-box p {
    position: relative;
    z-index: 1;
    color: #b6bbc6;
}

body.app-body .stat-box.accent-blue::before,
body.app-body .stats .stat-box:nth-child(2)::before {
    background: linear-gradient(90deg, var(--tech-blue), rgba(56,189,248,0.08));
}

body.app-body .stat-box.accent-green::before,
body.app-body .stats .stat-box:nth-child(3)::before {
    background: linear-gradient(90deg, var(--tech-green), rgba(52,211,153,0.08));
}

body.app-body .stat-box.accent-amber::before,
body.app-body .stats .stat-box:nth-child(4)::before {
    background: linear-gradient(90deg, var(--tech-amber), rgba(251,191,36,0.08));
}

body.app-body .dashboard-grid {
    grid-template-columns: minmax(0, 1.38fr) minmax(330px, 0.62fr);
    gap: 18px;
    align-items: stretch;
}

body.app-body .panel,
body.app-body .equipment-result-card,
body.app-body .history-card {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.10);
    border-radius: var(--tech-radius);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.062), rgba(255,255,255,0.018)),
        var(--tech-panel);
    box-shadow: 0 20px 64px rgba(0,0,0,0.28);
    backdrop-filter: blur(16px);
    transition:
        transform 0.20s ease,
        border-color 0.20s ease,
        box-shadow 0.20s ease;
}

body.app-body .panel::before,
body.app-body .equipment-result-card::before,
body.app-body .history-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    display: block !important;
    width: auto;
    height: 1px;
    border-radius: 0;
    background: linear-gradient(90deg, transparent, rgba(237,20,43,0.72), transparent);
    opacity: 0.82;
}

body.app-body .panel:hover,
body.app-body .equipment-result-card:hover,
body.app-body .history-card:hover {
    transform: translateY(-2px);
    border-color: rgba(237,20,43,0.30);
    box-shadow: 0 26px 76px rgba(0,0,0,0.36);
}

body.app-body .section-title {
    gap: 10px;
    color: #ffffff;
    font-size: 18px;
}

body.app-body .section-title::before {
    width: 26px;
    height: 3px;
    background: linear-gradient(90deg, var(--tech-red-hot), transparent);
}

body.app-body .btn,
body.app-body button {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        border-color 0.18s ease,
        background-color 0.18s ease;
}

body.app-body .btn::after,
body.app-body button::after {
    content: "" !important;
    position: absolute;
    inset: 0;
    display: block !important;
    pointer-events: none;
    background: linear-gradient(110deg, transparent 0 34%, rgba(255,255,255,0.22) 46%, transparent 58%);
    transform: translateX(-120%);
}

body.app-body .btn:hover,
body.app-body button:hover {
    transform: translateY(-2px);
}

body.app-body .btn:hover::after,
body.app-body button:hover::after {
    animation: techButtonSweep 0.72s ease !important;
}

body.app-body .btn-primary {
    background: linear-gradient(135deg, var(--tech-red-hot), var(--tech-red), var(--tech-red-deep));
    box-shadow: 0 16px 36px rgba(237,20,43,0.25);
}

body.app-body .btn-secondary,
body.app-body .btn-outline {
    background:
        linear-gradient(135deg, rgba(237,20,43,0.13), rgba(255,255,255,0.035)),
        rgba(20,22,30,0.9);
    border-color: rgba(255,255,255,0.11);
}

body.app-body .inventory-panel form {
    padding: 4px 0 2px;
}

body.app-body .search-box input,
body.app-body input,
body.app-body select,
body.app-body textarea {
    border-radius: 10px;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.035), transparent),
        rgba(5,7,12,0.88);
    border-color: rgba(255,255,255,0.13);
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        background-color 0.18s ease;
}

body.app-body input:focus,
body.app-body select:focus,
body.app-body textarea:focus {
    border-color: rgba(237,20,43,0.86);
    box-shadow: 0 0 0 3px rgba(237,20,43,0.17), 0 0 32px rgba(237,20,43,0.09);
}

body.app-body .table-note {
    margin: 18px 0 12px;
    padding: 12px 14px;
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 10px;
    background: rgba(255,255,255,0.035);
}

body.app-body .table-wrap {
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.095);
    border-radius: var(--tech-radius);
    background: rgba(5,7,12,0.68);
}

body.app-body table {
    margin-top: 0;
}

body.app-body th {
    height: 46px;
    color: #f8fafc;
    background:
        linear-gradient(90deg, rgba(237,20,43,0.20), transparent 70%),
        rgba(18,20,28,0.96);
}

body.app-body td {
    color: #d7dce5;
}

body.app-body tbody tr {
    transition:
        background-color 0.16s ease,
        transform 0.16s ease;
}

body.app-body tbody tr:hover {
    background: rgba(237,20,43,0.085);
}

body.app-body .asset-code,
body.app-body .service-code,
body.app-body .equipment-link {
    color: #ffffff;
}

body.app-body .equipment-link:hover,
body.app-body .asset-code:hover {
    color: #ff7b88;
}

body.app-body .status-pill,
body.app-body .badge,
body.app-body .photo-action-badge {
    border-color: rgba(237,20,43,0.36);
    background:
        linear-gradient(135deg, rgba(237,20,43,0.20), rgba(255,255,255,0.045));
    color: #ffe4e8;
}

body.app-body .status-row,
body.app-body .insight-row {
    min-height: 48px;
    padding: 12px 0;
    border-bottom-color: rgba(255,255,255,0.08);
}

body.app-body .status-row:hover,
body.app-body .insight-row:hover {
    color: #ffffff;
    background: linear-gradient(90deg, rgba(237,20,43,0.09), transparent);
}

body.app-body .status-row strong,
body.app-body .insight-row strong {
    min-width: 40px;
    color: #ffffff;
    text-align: right;
}

body.app-body .mini-progress {
    height: 8px;
    background: rgba(255,255,255,0.10);
}

body.app-body progress.mini-progress::-webkit-progress-value {
    background:
        linear-gradient(90deg, var(--tech-red-deep), var(--tech-red), var(--tech-red-hot));
    animation: techProgressGlow 3.4s ease-in-out infinite !important;
}

body.app-body progress.mini-progress::-moz-progress-bar {
    background:
        linear-gradient(90deg, var(--tech-red-deep), var(--tech-red), var(--tech-red-hot));
    animation: techProgressGlow 3.4s ease-in-out infinite !important;
}

body.app-body.is-ready .topbar,
body.app-body.is-ready .stats,
body.app-body.is-ready .dashboard-grid,
body.app-body.is-ready .inventory-panel,
body.app-body.is-ready .section-spacer {
    animation: techCardIn 0.46s ease both !important;
}

body.app-body.is-ready .stats {
    animation-delay: 0.06s !important;
}

body.app-body.is-ready .dashboard-grid,
body.app-body.is-ready .inventory-panel {
    animation-delay: 0.12s !important;
}

body.app-body.is-ready .section-spacer {
    animation-delay: 0.18s !important;
}

@keyframes techGridDrift {
    from { background-position: 0 0, 0 0, 0 0, 0 0; }
    to { background-position: 0 0, 0 0, 112px 112px, 112px 112px; }
}

@keyframes techSurfaceSweep {
    0%, 42%, 100% { transform: translateX(-76%); opacity: 0; }
    55% { opacity: 0.32; }
    76% { transform: translateX(76%); opacity: 0; }
}

@keyframes techLinePulse {
    0%, 100% { opacity: 0.45; transform: scaleX(0.72); transform-origin: left; }
    50% { opacity: 1; transform: scaleX(1); transform-origin: left; }
}

@keyframes techButtonSweep {
    from { transform: translateX(-120%); }
    to { transform: translateX(120%); }
}

@keyframes techProgressGlow {
    0%, 100% { filter: brightness(0.95); }
    50% { filter: brightness(1.22); }
}

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

@media (max-width: 1180px) {
    body.app-body .stats {
        grid-template-columns: repeat(2, minmax(170px, 1fr));
    }

    body.app-body .dashboard-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 980px) {
    body.app-body .content {
        padding: 18px;
    }

    body.app-body .topbar {
        min-height: auto;
    }

    body.app-body .sidebar {
        width: 100%;
    }

    body.app-body .menu a:hover,
    body.app-body .menu a.active {
        transform: none;
    }
}

@media (max-width: 760px) {
    body.app-body .content {
        padding: 14px;
    }

    body.app-body h1 {
        font-size: 28px;
    }

    body.app-body .stats,
    body.app-body .grid,
    body.app-body .grid-2,
    body.app-body .grid-3 {
        grid-template-columns: 1fr;
    }

    body.app-body .topbar,
    body.app-body .panel {
        padding: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-body::before,
    body.app-body .logo::before,
    body.app-body .topbar::before,
    body.app-body .btn:hover::after,
    body.app-body button:hover::after,
    body.app-body.is-ready .topbar,
    body.app-body.is-ready .stats,
    body.app-body.is-ready .dashboard-grid,
    body.app-body.is-ready .inventory-panel,
    body.app-body.is-ready .section-spacer,
    body.app-body progress.mini-progress::-webkit-progress-value,
    body.app-body progress.mini-progress::-moz-progress-bar {
        animation: none !important;
    }
}

/* =====================================================
   Invy TECH PRO - acabamento final das telas internas
===================================================== */

body.app-body {
    --pro-bg: #030306;
    --pro-surface: rgba(15,16,22,0.92);
    --pro-surface-2: rgba(22,24,32,0.94);
    --pro-surface-3: #0b0c11;
    --pro-border: rgba(255,255,255,0.105);
    --pro-border-red: rgba(237,20,43,0.38);
    --pro-text: #f8fafc;
    --pro-muted: #a5adba;
    --pro-dim: #727b8b;
    --pro-red: #ed142b;
    --pro-red-hot: #ff3348;
    --pro-red-deep: #960d19;
    --pro-cyan: #2dd4bf;
    --pro-blue: #38bdf8;
    --pro-amber: #f59e0b;
    --pro-green: #22c55e;
    --pro-radius: 12px;
    --pro-radius-sm: 9px;
    --pro-shadow: 0 26px 80px rgba(0,0,0,0.38);
    background:
        linear-gradient(128deg, rgba(237,20,43,0.16), transparent 26%),
        linear-gradient(38deg, transparent 0 58%, rgba(255,255,255,0.045) 58.1%, transparent 58.35%),
        linear-gradient(135deg, #050508 0%, #030306 58%, #08090f 100%);
}

body.app-body::before {
    content: "" !important;
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: 0.50;
    background:
        linear-gradient(rgba(255,255,255,0.026) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.022) 1px, transparent 1px),
        linear-gradient(120deg, transparent 0 46%, rgba(237,20,43,0.12) 46.12%, transparent 46.38%);
    background-size: 54px 54px, 54px 54px, auto;
    animation: proGridMove 34s linear infinite !important;
}

body.app-body .layout {
    isolation: isolate;
}

body.app-body .sidebar {
    width: 296px;
    background:
        linear-gradient(180deg, rgba(237,20,43,0.20), transparent 210px),
        linear-gradient(135deg, rgba(255,255,255,0.060), transparent 42%),
        rgba(4,5,9,0.92);
    border-right: 1px solid rgba(237,20,43,0.24);
}

body.app-body .logo {
    border-radius: var(--pro-radius);
    border-color: rgba(237,20,43,0.52);
    background:
        linear-gradient(135deg, rgba(237,20,43,0.24), transparent 54%),
        rgba(255,255,255,0.04);
}

body.app-body .logo-invy {
    font-size: 60px;
}

body.app-body .logo-sub,
body.app-body .menu-title {
    color: var(--pro-muted);
}

body.app-body .menu a {
    border-radius: var(--pro-radius-sm);
    border: 1px solid transparent;
    background: rgba(255,255,255,0.028);
    color: #d8deea;
}

body.app-body .menu a:hover,
body.app-body .menu a.active {
    transform: translateX(4px);
    border-color: rgba(237,20,43,0.46);
    background:
        linear-gradient(90deg, rgba(237,20,43,0.24), transparent),
        rgba(255,255,255,0.045);
}

body.app-body .content {
    padding: 32px;
}

body.app-body .topbar {
    align-items: stretch;
    min-height: 128px;
    padding: 28px;
    border-color: rgba(255,255,255,0.12);
    border-left-color: var(--pro-red);
    border-radius: var(--pro-radius);
    background:
        linear-gradient(135deg, rgba(255,255,255,0.085), rgba(255,255,255,0.020)),
        linear-gradient(115deg, rgba(237,20,43,0.18), transparent 42%),
        rgba(13,15,22,0.88);
    box-shadow: var(--pro-shadow);
}

body.app-body .topbar::after {
    content: "" !important;
    position: absolute;
    left: 28px;
    right: 28px;
    bottom: 16px;
    display: block !important;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--pro-red-hot), rgba(237,20,43,0.12), transparent);
    animation: proLineCharge 4.2s ease-in-out infinite !important;
}

body.app-body h1 {
    font-size: clamp(28px, 3vw, 40px);
    color: #fff;
}

body.app-body .subtitle {
    max-width: 780px;
    color: var(--pro-muted);
    font-size: 15px;
}

body.app-body .page-actions,
body.app-body .dashboard-actions,
body.app-body .actions {
    align-items: center;
}

body.app-body .stats {
    grid-template-columns: repeat(4, minmax(170px, 1fr));
    gap: 16px;
}

body.app-body .stat-box {
    min-height: 132px;
    border-radius: var(--pro-radius);
    border-color: var(--pro-border);
    background:
        linear-gradient(160deg, rgba(255,255,255,0.075), rgba(255,255,255,0.020)),
        var(--pro-surface);
}

body.app-body .stat-box h3 {
    font-size: 42px;
}

body.app-body .stat-box p {
    color: var(--pro-muted);
}

body.app-body .panel,
body.app-body .equipment-result-card,
body.app-body .history-card,
body.app-body .thumb-card,
body.app-body .result-grid div,
body.app-body .history-grid > div {
    border-radius: var(--pro-radius);
    border-color: var(--pro-border);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.070), rgba(255,255,255,0.018)),
        var(--pro-surface);
    box-shadow: 0 22px 64px rgba(0,0,0,0.28);
}

body.app-body .panel {
    padding: 24px;
}

body.app-body .form-panel {
    padding: 28px;
}

body.app-body .panel:hover,
body.app-body .equipment-result-card:hover,
body.app-body .history-card:hover {
    transform: translateY(-2px);
    border-color: rgba(237,20,43,0.30);
}

body.app-body .section-title {
    margin-bottom: 18px;
    color: #fff;
    font-size: 18px;
}

body.app-body .section-title::before {
    width: 28px;
    background: linear-gradient(90deg, var(--pro-red-hot), rgba(237,20,43,0.05));
}

body.app-body label {
    color: #eef2f7;
    font-size: 13px;
}

body.app-body input,
body.app-body select,
body.app-body textarea {
    min-height: 46px;
    border-radius: var(--pro-radius-sm);
    border-color: rgba(255,255,255,0.14);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.040), transparent),
        rgba(5,7,12,0.92);
}

body.app-body textarea {
    min-height: 124px;
}

body.app-body input:focus,
body.app-body select:focus,
body.app-body textarea:focus {
    border-color: rgba(255,51,72,0.90);
    box-shadow:
        0 0 0 3px rgba(237,20,43,0.18),
        0 0 34px rgba(237,20,43,0.10);
}

body.app-body .search-box,
body.app-body .quick-search-form {
    padding: 14px;
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: var(--pro-radius);
    background: rgba(255,255,255,0.026);
}

body.app-body .inventory-filter-form .grid-3,
body.app-body .form-panel .grid,
body.app-body .form-panel .grid-2,
body.app-body .form-panel .grid-3 {
    padding: 14px;
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: var(--pro-radius);
    background: rgba(255,255,255,0.020);
}

body.app-body .form-panel .section-title {
    margin-top: 2px;
}

body.app-body .actions {
    border-top-color: rgba(255,255,255,0.09);
}

body.app-body .btn,
body.app-body button {
    border-radius: var(--pro-radius-sm);
    font-size: 14px;
}

body.app-body .btn-primary {
    background: linear-gradient(135deg, var(--pro-red-hot), var(--pro-red), var(--pro-red-deep));
    box-shadow: 0 16px 36px rgba(237,20,43,0.26);
}

body.app-body .btn-secondary,
body.app-body .btn-outline {
    background:
        linear-gradient(135deg, rgba(255,255,255,0.062), rgba(255,255,255,0.020)),
        rgba(20,22,30,0.94);
}

body.app-body .btn-danger {
    background: linear-gradient(135deg, #b91c1c, #7f101c);
}

body.app-body .dashboard-grid {
    grid-template-columns: minmax(0, 1.42fr) minmax(340px, 0.58fr);
    gap: 18px;
}

body.app-body .dashboard-panel {
    min-height: 100%;
}

body.app-body .table-note,
body.app-body .section-note,
body.app-body .field-hint,
body.app-body .muted {
    color: var(--pro-muted);
}

body.app-body .table-note {
    margin: 18px 0 14px;
    padding: 12px 14px;
    border-radius: var(--pro-radius-sm);
    border: 1px solid rgba(255,255,255,0.08);
    background: rgba(255,255,255,0.030);
}

body.app-body .table-wrap {
    overflow: auto;
    max-height: min(72vh, 780px);
    border-radius: var(--pro-radius);
    border: 1px solid rgba(255,255,255,0.10);
    background: rgba(5,7,12,0.74);
    scrollbar-color: rgba(237,20,43,0.70) rgba(255,255,255,0.08);
    scrollbar-width: thin;
}

body.app-body .table-wrap::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

body.app-body .table-wrap::-webkit-scrollbar-track {
    background: rgba(255,255,255,0.06);
}

body.app-body .table-wrap::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(237,20,43,0.72);
}

body.app-body table {
    min-width: 980px;
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
}

body.app-body th {
    position: sticky;
    top: 0;
    z-index: 4;
    height: 48px;
    color: #f8fafc;
    background:
        linear-gradient(90deg, rgba(237,20,43,0.26), rgba(237,20,43,0.04)),
        #161922;
    box-shadow: 0 1px 0 rgba(255,255,255,0.08);
}

body.app-body td {
    background: rgba(11,13,19,0.46);
}

body.app-body tbody tr:nth-child(even) td {
    background: rgba(255,255,255,0.022);
}

body.app-body tbody tr:hover td {
    background: rgba(237,20,43,0.105);
}

body.app-body th,
body.app-body td {
    padding: 13px 12px;
    border-bottom: 1px solid rgba(255,255,255,0.075);
}

body.app-body .asset-code,
body.app-body .service-code,
body.app-body .equipment-link {
    color: #ffffff;
    font-weight: 900;
}

body.app-body .service-code {
    color: #c9f7ff;
}

body.app-body .status-pill,
body.app-body .badge,
body.app-body .photo-action-badge {
    border-color: rgba(255,51,72,0.40);
    background:
        linear-gradient(135deg, rgba(237,20,43,0.24), rgba(255,255,255,0.052));
    color: #ffe7eb;
}

body.app-body .status-row,
body.app-body .insight-row {
    padding: 13px 10px;
    border-radius: var(--pro-radius-sm);
    border-bottom: 0;
    background: rgba(255,255,255,0.022);
}

body.app-body .status-list,
body.app-body .insight-list {
    gap: 8px;
}

body.app-body .status-row:hover,
body.app-body .insight-row:hover {
    background: rgba(237,20,43,0.10);
}

body.app-body .mini-progress {
    height: 9px;
}

body.app-body .equipment-result-card {
    padding: 22px;
}

body.app-body .equipment-result-card.is-primary {
    border-color: rgba(255,51,72,0.48);
    background:
        linear-gradient(135deg, rgba(237,20,43,0.15), transparent 36%),
        linear-gradient(180deg, rgba(255,255,255,0.070), rgba(255,255,255,0.018)),
        var(--pro-surface);
}

body.app-body .result-grid {
    gap: 12px;
}

body.app-body .result-grid div,
body.app-body .history-grid > div {
    padding: 14px;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.044), rgba(255,255,255,0.012)),
        rgba(6,8,13,0.70);
}

body.app-body .thumb-card {
    padding: 12px;
    transition: transform 0.18s ease, border-color 0.18s ease;
}

body.app-body .thumb-card:hover {
    transform: translateY(-3px);
    border-color: rgba(237,20,43,0.35);
}

body.app-body .thumb-card img,
body.app-body .result-photo-strip img {
    border-radius: var(--pro-radius-sm);
    border: 1px solid rgba(255,255,255,0.08);
}

body.app-body .history-card {
    margin-bottom: 14px;
}

body.app-body .history-head {
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

body.app-body .security-callout {
    border-radius: var(--pro-radius);
    border-color: rgba(237,20,43,0.36);
    background:
        linear-gradient(135deg, rgba(237,20,43,0.14), transparent),
        rgba(255,255,255,0.028);
}

body.app-body code {
    border: 1px solid rgba(237,20,43,0.25);
    border-radius: 6px;
}

body.app-body .tech-in {
    animation: proEnter 0.42s ease var(--motion-delay, 0ms) both !important;
}

body.app-body .table-wrap tbody tr.tech-in {
    animation-duration: 0.32s !important;
}

.page-logs .table-wrap,
.page-lista .table-wrap,
.page-usuarios .table-wrap {
    max-height: min(74vh, 860px);
}

.page-dashboard .stats .stat-box:first-child::before,
.page-lista .stats .stat-box:first-child::before,
.page-relatorios .stats .stat-box:first-child::before,
.page-logs .stats .stat-box:first-child::before,
.page-usuarios .stats .stat-box:first-child::before {
    background: linear-gradient(90deg, var(--pro-red-hot), rgba(237,20,43,0.08));
}

.page-dashboard .dashboard-grid .panel:first-child {
    min-height: 520px;
}

.page-cadastro .form-panel,
.page-usuarios .panel:first-of-type,
.page-relatorios .panel {
    background:
        linear-gradient(135deg, rgba(237,20,43,0.08), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,0.070), rgba(255,255,255,0.018)),
        var(--pro-surface);
}

@media (min-width: 761px) {
    body.app-body th:last-child,
    body.app-body td:last-child {
        position: sticky;
        right: 0;
        z-index: 3;
        box-shadow: -1px 0 0 rgba(255,255,255,0.07);
    }

    body.app-body th:last-child {
        z-index: 5;
    }

    body.app-body td:last-child {
        background:
            linear-gradient(90deg, rgba(3,3,6,0.20), rgba(13,15,22,0.96) 22%),
            rgba(13,15,22,0.96);
    }
}

@keyframes proGridMove {
    from { background-position: 0 0, 0 0, 0 0; }
    to { background-position: 108px 108px, 108px 108px, 0 0; }
}

@keyframes proLineCharge {
    0%, 100% { opacity: 0.45; transform: scaleX(0.62); transform-origin: left; }
    50% { opacity: 1; transform: scaleX(1); transform-origin: left; }
}

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

@media (max-width: 1180px) {
    body.app-body .stats,
    body.app-body .dashboard-grid {
        grid-template-columns: 1fr 1fr;
    }

    body.app-body .dashboard-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 980px) {
    body.app-body .content {
        padding: 18px;
    }

    body.app-body .sidebar {
        width: 100%;
    }
}

@media (max-width: 760px) {
    body.app-body .content {
        padding: 14px;
    }

    body.app-body .topbar {
        min-height: auto;
        padding: 18px;
    }

    body.app-body .stats,
    body.app-body .grid,
    body.app-body .grid-2,
    body.app-body .grid-3,
    body.app-body .result-grid,
    body.app-body .history-grid {
        grid-template-columns: 1fr;
    }

    body.app-body .table-wrap {
        max-height: none;
        overflow: visible;
    }

    body.app-body table {
        min-width: 0;
    }

    body.app-body .table-wrap td {
        background: rgba(11,13,19,0.80);
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-body::before,
    body.app-body .topbar::after,
    body.app-body .tech-in {
        animation: none !important;
    }
}

/* =====================================================
   Invy CLEAN ADMIN - acabamento limpo para o pos-login
===================================================== */

body.app-body {
    --clean-bg: #050507;
    --clean-shell: #0b0c10;
    --clean-surface: rgba(17,18,24,0.94);
    --clean-surface-2: #151720;
    --clean-surface-3: #1b1e28;
    --clean-border: rgba(255,255,255,0.105);
    --clean-border-soft: rgba(255,255,255,0.070);
    --clean-text: #f8fafc;
    --clean-muted: #a7afbd;
    --clean-dim: #737b8b;
    --clean-red: #ed142b;
    --clean-red-soft: #ff475a;
    --clean-red-dark: #9d1020;
    --clean-cyan: #38bdf8;
    --clean-green: #22c55e;
    --clean-amber: #f59e0b;
    --clean-radius: 14px;
    --clean-radius-sm: 10px;
    --clean-shadow: 0 18px 48px rgba(0,0,0,0.30);
    background:
        radial-gradient(circle at 18% 0%, rgba(237,20,43,0.18), transparent 28%),
        linear-gradient(180deg, #07080b 0%, var(--clean-bg) 100%);
    color: var(--clean-text);
}

body.app-body::before {
    content: "" !important;
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: 0.34;
    background:
        linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.020) 1px, transparent 1px);
    background-size: 72px 72px;
    animation: none !important;
}

body.app-body::after,
body.app-body .topbar::before,
body.app-body .topbar::after,
body.app-body .logo::before,
body.app-body .panel::after,
body.app-body .stat-box::after,
body.app-body .equipment-result-card::after,
body.app-body .history-card::after,
body.app-body .btn::after,
body.app-body button::after {
    content: none !important;
    display: none !important;
    animation: none !important;
}

body.app-body .layout {
    background: transparent;
}

body.app-body .sidebar {
    width: 282px;
    padding: 24px 16px;
    border-right: 1px solid var(--clean-border);
    background:
        linear-gradient(180deg, rgba(237,20,43,0.13), transparent 240px),
        rgba(7,8,12,0.94);
    box-shadow: 12px 0 36px rgba(0,0,0,0.24);
    backdrop-filter: blur(14px);
}

body.app-body .logo {
    margin-bottom: 22px;
    padding: 18px 14px;
    border: 1px solid rgba(237,20,43,0.32);
    border-radius: var(--clean-radius);
    background:
        linear-gradient(135deg, rgba(237,20,43,0.16), transparent 54%),
        rgba(255,255,255,0.035);
}

body.app-body .logo-invy {
    font-size: 56px;
    line-height: 0.92;
}

body.app-body .logo-invy .m {
    color: var(--clean-red);
}

body.app-body .logo-sub,
body.app-body .menu-title {
    color: var(--clean-muted);
    font-size: 11px;
    font-weight: 800;
}

body.app-body .menu {
    gap: 7px;
}

body.app-body .menu a {
    min-height: 46px;
    border: 1px solid transparent;
    border-radius: var(--clean-radius-sm);
    background: transparent;
    color: #d8deea;
    font-size: 14px;
    font-weight: 750;
    box-shadow: none;
    transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
}

body.app-body .menu a::before,
body.app-body .menu a::after {
    content: none !important;
    display: none !important;
}

body.app-body .menu a:hover,
body.app-body .menu a.active {
    transform: translateX(2px);
    color: #fff;
    border-color: rgba(237,20,43,0.34);
    background: rgba(237,20,43,0.12);
}

body.app-body .nav-mark {
    width: 31px;
    height: 31px;
    border-radius: 9px;
    border: 1px solid rgba(255,255,255,0.09);
    background: rgba(255,255,255,0.055);
}

body.app-body .menu a:hover .nav-mark,
body.app-body .menu a.active .nav-mark {
    background: var(--clean-red);
    border-color: rgba(255,255,255,0.16);
    box-shadow: none;
}

body.app-body .creator-box {
    border-radius: var(--clean-radius);
    border-color: var(--clean-border);
    background: rgba(255,255,255,0.035);
}

body.app-body .creator-box .name {
    color: #fff;
    font-size: 19px;
}

body.app-body .content {
    padding: 28px;
}

body.app-body .topbar {
    min-height: auto;
    padding: 24px;
    border: 1px solid var(--clean-border);
    border-left: 4px solid var(--clean-red);
    border-radius: var(--clean-radius);
    background:
        linear-gradient(135deg, rgba(255,255,255,0.060), rgba(255,255,255,0.018)),
        var(--clean-surface);
    box-shadow: var(--clean-shadow);
    backdrop-filter: blur(12px);
}

body.app-body h1 {
    color: #fff;
    font-size: clamp(28px, 2.6vw, 38px);
    line-height: 1.05;
    text-transform: none;
}

body.app-body .subtitle {
    margin-top: 8px;
    color: var(--clean-muted);
    font-size: 15px;
}

body.app-body .page-actions,
body.app-body .dashboard-actions,
body.app-body .actions,
body.app-body .action-row,
body.app-body .result-actions {
    gap: 10px;
}

body.app-body .stats {
    grid-template-columns: repeat(4, minmax(170px, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}

body.app-body .stat-box {
    min-height: 118px;
    padding: 18px;
    border: 1px solid var(--clean-border);
    border-radius: var(--clean-radius);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.060), rgba(255,255,255,0.016)),
        var(--clean-surface);
    box-shadow: 0 14px 36px rgba(0,0,0,0.24);
    transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

body.app-body .stat-box::before {
    content: "" !important;
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 15px;
    width: auto;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--clean-red), rgba(237,20,43,0.08));
    opacity: 0.92;
}

body.app-body .stat-box:nth-child(2)::before,
body.app-body .stat-box.accent-blue::before {
    background: linear-gradient(90deg, var(--clean-cyan), rgba(56,189,248,0.08));
}

body.app-body .stat-box:nth-child(3)::before,
body.app-body .stat-box.accent-green::before {
    background: linear-gradient(90deg, var(--clean-green), rgba(34,197,94,0.08));
}

body.app-body .stat-box:nth-child(4)::before,
body.app-body .stat-box.accent-amber::before {
    background: linear-gradient(90deg, var(--clean-amber), rgba(245,158,11,0.08));
}

body.app-body .stat-box:hover {
    transform: translateY(-2px);
    border-color: rgba(237,20,43,0.28);
    box-shadow: 0 18px 44px rgba(0,0,0,0.30);
}

body.app-body .stat-box h3 {
    font-size: 38px;
    line-height: 1;
    color: #fff;
}

body.app-body .stat-box p {
    margin-top: 8px;
    color: var(--clean-muted);
    font-size: 14px;
}

body.app-body .panel,
body.app-body .equipment-result-card,
body.app-body .history-card,
body.app-body .thumb-card,
body.app-body .result-grid div,
body.app-body .history-grid > div {
    border: 1px solid var(--clean-border);
    border-radius: var(--clean-radius);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.055), rgba(255,255,255,0.014)),
        var(--clean-surface);
    box-shadow: 0 16px 42px rgba(0,0,0,0.24);
}

body.app-body .panel,
body.app-body .equipment-result-card,
body.app-body .history-card {
    padding: 22px;
    transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

body.app-body .panel::before,
body.app-body .equipment-result-card::before,
body.app-body .history-card::before {
    content: "" !important;
    position: absolute;
    inset: 0 0 auto 0;
    display: block !important;
    width: auto;
    height: 1px;
    border-radius: 0;
    background: linear-gradient(90deg, transparent, rgba(237,20,43,0.46), transparent);
    opacity: 0.8;
}

body.app-body .panel:hover,
body.app-body .equipment-result-card:hover,
body.app-body .history-card:hover {
    transform: translateY(-1px);
    border-color: rgba(237,20,43,0.25);
    box-shadow: 0 18px 48px rgba(0,0,0,0.28);
}

body.app-body .section-title {
    margin-bottom: 16px;
    color: #fff;
    font-size: 17px;
    text-transform: none;
}

body.app-body .section-title::before {
    content: "" !important;
    width: 22px;
    height: 3px;
    border-radius: 999px;
    background: var(--clean-red);
}

body.app-body .dashboard-grid {
    grid-template-columns: minmax(0, 1.38fr) minmax(330px, 0.62fr);
    gap: 16px;
}

body.app-body .form-panel {
    padding: 24px;
}

body.app-body .form-panel .grid,
body.app-body .form-panel .grid-2,
body.app-body .form-panel .grid-3,
body.app-body .inventory-filter-form .grid-3,
body.app-body .search-box,
body.app-body .quick-search-form {
    padding: 14px;
    border: 1px solid var(--clean-border-soft);
    border-radius: var(--clean-radius);
    background: rgba(255,255,255,0.024);
}

body.app-body label {
    margin-bottom: 7px;
    color: #edf1f7;
    font-size: 13px;
    font-weight: 750;
}

body.app-body input,
body.app-body select,
body.app-body textarea {
    min-height: 44px;
    border-radius: var(--clean-radius-sm);
    border: 1px solid rgba(255,255,255,0.13);
    background: rgba(5,7,12,0.86);
    color: #fff;
    box-shadow: none;
    transition: border-color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

body.app-body textarea {
    min-height: 120px;
}

body.app-body input:hover,
body.app-body select:hover,
body.app-body textarea:hover {
    border-color: rgba(255,255,255,0.22);
}

body.app-body input:focus,
body.app-body select:focus,
body.app-body textarea:focus {
    border-color: rgba(237,20,43,0.78);
    box-shadow: 0 0 0 3px rgba(237,20,43,0.15);
    background: rgba(8,10,16,0.96);
}

body.app-body .btn,
body.app-body button {
    min-height: 40px;
    border-radius: var(--clean-radius-sm);
    border: 1px solid transparent;
    padding: 10px 15px;
    box-shadow: none;
    transition: transform 0.16s ease, border-color 0.16s ease, background-color 0.16s ease, box-shadow 0.16s ease;
}

body.app-body .btn:hover,
body.app-body button:hover {
    transform: translateY(-1px);
}

body.app-body .btn-primary {
    background: linear-gradient(135deg, var(--clean-red-soft), var(--clean-red));
    color: #fff;
    box-shadow: 0 12px 26px rgba(237,20,43,0.22);
}

body.app-body .btn-secondary,
body.app-body .btn-outline {
    border-color: rgba(255,255,255,0.12);
    background: var(--clean-surface-2);
    color: #f4f6fb;
}

body.app-body .btn-secondary:hover,
body.app-body .btn-outline:hover {
    border-color: rgba(237,20,43,0.36);
    background: #1b1d27;
}

body.app-body .btn-danger {
    background: linear-gradient(135deg, #b91c1c, #7f101c);
    color: #fff;
}

body.app-body .actions {
    border-top-color: var(--clean-border-soft);
}

body.app-body .table-note,
body.app-body .section-note,
body.app-body .field-hint,
body.app-body .muted {
    color: var(--clean-muted);
}

body.app-body .table-note {
    margin: 16px 0 12px;
    padding: 11px 13px;
    border: 1px solid var(--clean-border-soft);
    border-radius: var(--clean-radius-sm);
    background: rgba(255,255,255,0.024);
}

body.app-body .table-wrap {
    overflow: auto;
    max-height: min(72vh, 780px);
    border: 1px solid var(--clean-border);
    border-radius: var(--clean-radius);
    background: rgba(6,8,13,0.80);
    box-shadow: none;
    scrollbar-color: rgba(237,20,43,0.62) rgba(255,255,255,0.07);
    scrollbar-width: thin;
}

body.app-body .table-wrap::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

body.app-body .table-wrap::-webkit-scrollbar-track {
    background: rgba(255,255,255,0.06);
}

body.app-body .table-wrap::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(237,20,43,0.62);
}

body.app-body table {
    min-width: 980px;
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
}

body.app-body th {
    position: sticky;
    top: 0;
    z-index: 4;
    height: 46px;
    padding: 12px;
    color: #f8fafc;
    background:
        linear-gradient(90deg, rgba(237,20,43,0.18), transparent 70%),
        #161822;
    border-bottom: 1px solid rgba(255,255,255,0.10);
    font-size: 12px;
    font-weight: 850;
    text-transform: uppercase;
}

body.app-body td {
    padding: 13px 12px;
    color: #dce2ec;
    background: rgba(12,14,20,0.64);
    border-bottom: 1px solid rgba(255,255,255,0.065);
}

body.app-body tbody tr:nth-child(even) td {
    background: rgba(255,255,255,0.024);
}

body.app-body tbody tr {
    transition: background-color 0.16s ease;
}

body.app-body tbody tr:hover td {
    background: rgba(237,20,43,0.095);
}

body.app-body .asset-code,
body.app-body .equipment-link {
    color: #fff;
    font-weight: 850;
}

body.app-body .service-code {
    color: #c9f7ff;
    font-weight: 850;
}

body.app-body .status-pill,
body.app-body .badge,
body.app-body .photo-action-badge {
    border: 1px solid rgba(237,20,43,0.34);
    border-radius: 999px;
    background: rgba(237,20,43,0.13);
    color: #ffe4e8;
}

body.app-body .status-list,
body.app-body .insight-list {
    gap: 8px;
}

body.app-body .status-row,
body.app-body .insight-row {
    min-height: 46px;
    padding: 11px 12px;
    border: 1px solid var(--clean-border-soft);
    border-radius: var(--clean-radius-sm);
    background: rgba(255,255,255,0.024);
    transition: background-color 0.16s ease, border-color 0.16s ease;
}

body.app-body .status-row:hover,
body.app-body .insight-row:hover {
    border-color: rgba(237,20,43,0.26);
    background: rgba(237,20,43,0.08);
}

body.app-body .mini-progress {
    height: 8px;
    background: rgba(255,255,255,0.10);
}

body.app-body progress.mini-progress::-webkit-progress-value {
    background: linear-gradient(90deg, var(--clean-red-dark), var(--clean-red-soft));
    animation: none !important;
}

body.app-body progress.mini-progress::-moz-progress-bar {
    background: linear-gradient(90deg, var(--clean-red-dark), var(--clean-red-soft));
    animation: none !important;
}

body.app-body .equipment-result-card {
    padding: 22px;
}

body.app-body .equipment-result-card.is-primary {
    border-color: rgba(237,20,43,0.34);
    background:
        linear-gradient(135deg, rgba(237,20,43,0.11), transparent 38%),
        linear-gradient(180deg, rgba(255,255,255,0.055), rgba(255,255,255,0.014)),
        var(--clean-surface);
}

body.app-body .result-grid,
body.app-body .history-grid {
    gap: 10px;
}

body.app-body .result-grid div,
body.app-body .history-grid > div {
    min-height: 72px;
    padding: 13px;
    background: rgba(7,9,14,0.66);
}

body.app-body .thumb-card {
    padding: 10px;
    transition: transform 0.16s ease, border-color 0.16s ease;
}

body.app-body .thumb-card:hover {
    transform: translateY(-2px);
    border-color: rgba(237,20,43,0.28);
}

body.app-body .thumb-card img,
body.app-body .result-photo-strip img {
    border-radius: var(--clean-radius-sm);
    border: 1px solid rgba(255,255,255,0.08);
}

body.app-body .history-head {
    padding-bottom: 12px;
    border-bottom: 1px solid var(--clean-border-soft);
}

body.app-body .security-callout {
    border-radius: var(--clean-radius);
    border-color: rgba(237,20,43,0.30);
    background:
        linear-gradient(135deg, rgba(237,20,43,0.10), transparent 58%),
        rgba(255,255,255,0.024);
}

body.app-body code {
    border: 1px solid rgba(237,20,43,0.22);
    border-radius: 6px;
}

body.app-body.is-ready .tech-in {
    animation: cleanEnter 0.30s ease var(--motion-delay, 0ms) both !important;
}

body.app-body .table-wrap tbody tr.tech-in {
    animation-duration: 0.22s !important;
}

.page-dashboard .dashboard-grid .panel:first-child {
    min-height: 500px;
}

.page-logs .table-wrap,
.page-lista .table-wrap,
.page-usuarios .table-wrap {
    max-height: min(74vh, 850px);
}

@media (min-width: 761px) {
    body.app-body th:last-child,
    body.app-body td:last-child {
        position: sticky;
        right: 0;
        z-index: 3;
        box-shadow: -1px 0 0 rgba(255,255,255,0.065);
    }

    body.app-body th:last-child {
        z-index: 5;
    }

    body.app-body td:last-child {
        background: #141721;
    }
}

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

@media (max-width: 1180px) {
    body.app-body .stats {
        grid-template-columns: repeat(2, minmax(170px, 1fr));
    }

    body.app-body .dashboard-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 980px) {
    body.app-body .content {
        padding: 18px;
    }

    body.app-body .sidebar {
        width: 100%;
    }

    body.app-body .menu a:hover,
    body.app-body .menu a.active {
        transform: none;
    }
}

@media (max-width: 760px) {
    body.app-body .content {
        padding: 14px;
    }

    body.app-body .topbar,
    body.app-body .panel,
    body.app-body .equipment-result-card,
    body.app-body .history-card {
        padding: 16px;
    }

    body.app-body .stats,
    body.app-body .grid,
    body.app-body .grid-2,
    body.app-body .grid-3,
    body.app-body .result-grid,
    body.app-body .history-grid {
        grid-template-columns: 1fr;
    }

    body.app-body .table-wrap {
        max-height: none;
        overflow: visible;
    }

    body.app-body table {
        min-width: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-body.is-ready .tech-in {
        animation: none !important;
    }
}

/* =====================================================
   Invy PRODUCT ADMIN - refinamento profissional pos-login
===================================================== */

body.app-body {
    --ui-bg: #07080b;
    --ui-sidebar: #0a0b10;
    --ui-card: #11131a;
    --ui-card-2: #161923;
    --ui-card-3: #1d202b;
    --ui-border: rgba(255,255,255,0.10);
    --ui-border-2: rgba(255,255,255,0.07);
    --ui-text: #f8fafc;
    --ui-muted: #a7afbd;
    --ui-dim: #768092;
    --ui-red: #ed142b;
    --ui-red-2: #ff4355;
    --ui-red-dark: #8f101c;
    --ui-cyan: #38bdf8;
    --ui-green: #22c55e;
    --ui-amber: #f59e0b;
    --ui-radius: 16px;
    --ui-radius-sm: 10px;
    --ui-shadow: 0 18px 52px rgba(0,0,0,0.28);
    background:
        radial-gradient(circle at 14% -4%, rgba(237,20,43,0.16), transparent 30%),
        radial-gradient(circle at 92% 0%, rgba(56,189,248,0.07), transparent 26%),
        linear-gradient(180deg, #090a0f 0%, var(--ui-bg) 100%);
}

body.app-body::before {
    content: "" !important;
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: 0.22;
    background-image:
        linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
    background-size: 96px 96px;
}

body.app-body .layout {
    min-height: 100vh;
}

body.app-body .sidebar {
    width: 276px;
    padding: 22px 14px;
    border-right: 1px solid var(--ui-border);
    background:
        linear-gradient(180deg, rgba(237,20,43,0.12), transparent 260px),
        var(--ui-sidebar);
    box-shadow: none;
}

body.app-body .logo {
    margin-bottom: 20px;
    padding: 18px 14px;
    border-radius: var(--ui-radius);
    border: 1px solid rgba(237,20,43,0.28);
    background:
        linear-gradient(135deg, rgba(237,20,43,0.14), transparent 58%),
        #10121a;
}

body.app-body .logo-invy {
    font-size: 52px;
    letter-spacing: 0 !important;
}

body.app-body .logo-sub {
    margin-top: 10px;
    color: var(--ui-muted);
    font-size: 11px;
}

body.app-body .menu-title {
    margin: 18px 10px 9px;
    color: var(--ui-dim);
    font-size: 11px;
}

body.app-body .menu a {
    min-height: 44px;
    padding: 10px 11px;
    border-radius: 12px;
    color: #d9dfeb;
    background: transparent;
    border: 1px solid transparent;
    font-weight: 700;
}

body.app-body .menu a:hover,
body.app-body .menu a.active {
    transform: none;
    color: #fff;
    background: #161923;
    border-color: rgba(237,20,43,0.26);
}

body.app-body .menu a.active {
    box-shadow: inset 3px 0 0 var(--ui-red);
}

body.app-body .nav-mark {
    width: 30px;
    height: 30px;
    border-radius: 10px;
    background: #191c26;
}

body.app-body .menu a:hover .nav-mark,
body.app-body .menu a.active .nav-mark {
    background: rgba(237,20,43,0.18);
    color: #fff;
}

body.app-body .creator-box {
    border-radius: var(--ui-radius);
    border-color: var(--ui-border);
    background: #10121a;
}

body.app-body .creator-box .small,
body.app-body .creator-box .version {
    color: var(--ui-dim);
}

body.app-body .creator-box .name {
    color: #fff;
    font-size: 18px;
}

body.app-body .content {
    padding: 24px 28px 32px;
}

.workspace-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    margin-bottom: 16px;
    padding: 10px 12px;
    border: 1px solid var(--ui-border-2);
    border-radius: 999px;
    background: rgba(17,19,26,0.72);
    color: var(--ui-muted);
}

.workspace-status,
.workspace-user {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    font-size: 13px;
}

.workspace-dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--ui-green);
    box-shadow: 0 0 0 5px rgba(34,197,94,0.10);
}

.workspace-user span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.workspace-user strong {
    padding: 5px 9px;
    border-radius: 999px;
    color: #fff;
    background: rgba(237,20,43,0.14);
    border: 1px solid rgba(237,20,43,0.24);
    font-size: 12px;
}

body.app-body .topbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    margin-bottom: 18px;
    padding: 24px;
    border-radius: var(--ui-radius);
    border: 1px solid var(--ui-border);
    border-left: 0;
    background:
        linear-gradient(135deg, rgba(255,255,255,0.055), rgba(255,255,255,0.016)),
        var(--ui-card);
    box-shadow: var(--ui-shadow);
}

body.app-body .topbar h1 {
    display: flex;
    align-items: center;
    gap: 13px;
    margin: 0;
    color: var(--ui-text);
    font-size: clamp(27px, 2.4vw, 36px);
    line-height: 1.05;
    font-weight: 900;
}

body.app-body .topbar h1::before {
    content: "TI";
    width: 46px;
    height: 46px;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--ui-red), var(--ui-red-dark));
    color: #fff;
    font-size: 13px;
    font-weight: 900;
}

.page-dashboard .topbar h1::before { content: "DB"; }
.page-cadastro .topbar h1::before { content: "EQ"; }
.page-lista .topbar h1::before { content: "IN"; }
.page-buscar .topbar h1::before { content: "EQ"; }
.page-historico .topbar h1::before { content: "EQ"; }
.page-relatorios .topbar h1::before { content: "RP"; }
.page-logs .topbar h1::before { content: "LG"; }
.page-usuarios .topbar h1::before { content: "US"; }

body.app-body .subtitle {
    margin: 8px 0 0 59px;
    max-width: 780px;
    color: var(--ui-muted);
    font-size: 14px;
}

body.app-body .stats {
    grid-template-columns: repeat(4, minmax(170px, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

body.app-body .stat-box {
    min-height: 112px;
    padding: 18px;
    border-radius: var(--ui-radius);
    border: 1px solid var(--ui-border);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.050), rgba(255,255,255,0.012)),
        var(--ui-card);
    box-shadow: none;
}

body.app-body .stat-box::before {
    left: 18px;
    right: 18px;
    bottom: 14px;
    height: 3px;
}

body.app-body .stat-box h3 {
    font-size: 36px;
}

body.app-body .stat-box p {
    margin-top: 7px;
    color: var(--ui-muted);
}

body.app-body .panel,
body.app-body .equipment-result-card,
body.app-body .history-card,
body.app-body .thumb-card,
body.app-body .result-grid div,
body.app-body .history-grid > div {
    border-radius: var(--ui-radius);
    border: 1px solid var(--ui-border);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.045), rgba(255,255,255,0.012)),
        var(--ui-card);
    box-shadow: none;
}

body.app-body .panel,
body.app-body .equipment-result-card,
body.app-body .history-card {
    padding: 22px;
}

body.app-body .panel::before,
body.app-body .equipment-result-card::before,
body.app-body .history-card::before {
    opacity: 0.36;
}

body.app-body .panel:hover,
body.app-body .equipment-result-card:hover,
body.app-body .history-card:hover {
    transform: none;
    border-color: rgba(255,255,255,0.16);
    box-shadow: 0 16px 44px rgba(0,0,0,0.18);
}

body.app-body .section-title {
    margin-bottom: 15px;
    color: #fff;
    font-size: 17px;
    font-weight: 850;
}

body.app-body .section-title::before {
    width: 20px;
    height: 3px;
    background: var(--ui-red);
}

body.app-body .dashboard-grid {
    grid-template-columns: minmax(0, 1.36fr) minmax(330px, 0.64fr);
    gap: 16px;
}

body.app-body .form-panel {
    padding: 24px;
}

body.app-body .form-panel .section-spacer {
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px solid var(--ui-border-2);
}

body.app-body .form-panel .grid,
body.app-body .form-panel .grid-2,
body.app-body .form-panel .grid-3,
body.app-body .inventory-filter-form .grid-3,
body.app-body .search-box,
body.app-body .quick-search-form {
    padding: 14px;
    border: 1px solid var(--ui-border-2);
    border-radius: var(--ui-radius);
    background: #0d0f15;
}

body.app-body label {
    color: #eef2f8;
    font-size: 13px;
    font-weight: 750;
}

body.app-body input,
body.app-body select,
body.app-body textarea {
    min-height: 44px;
    border-radius: var(--ui-radius-sm);
    border-color: rgba(255,255,255,0.12);
    background: #090b10;
}

body.app-body input:focus,
body.app-body select:focus,
body.app-body textarea:focus {
    border-color: rgba(237,20,43,0.72);
    box-shadow: 0 0 0 3px rgba(237,20,43,0.13);
}

body.app-body .btn,
body.app-body button {
    min-height: 40px;
    border-radius: var(--ui-radius-sm);
    padding: 10px 14px;
}

body.app-body .btn-primary {
    background: var(--ui-red);
    box-shadow: none;
}

body.app-body .btn-primary:hover {
    background: var(--ui-red-2);
}

body.app-body .btn-secondary,
body.app-body .btn-outline {
    border-color: var(--ui-border);
    background: var(--ui-card-2);
}

body.app-body .btn-secondary:hover,
body.app-body .btn-outline:hover {
    background: var(--ui-card-3);
}

body.app-body .table-wrap {
    max-height: min(70vh, 760px);
    border-radius: var(--ui-radius);
    border: 1px solid var(--ui-border);
    background: #0b0d13;
}

body.app-body table {
    min-width: 980px;
    border-collapse: separate;
    border-spacing: 0;
}

body.app-body th {
    height: 44px;
    padding: 11px 12px;
    background: #171a24;
    color: #f8fafc;
    font-size: 11px;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(255,255,255,0.11);
}

body.app-body td {
    padding: 12px;
    background: #0f1118;
    color: #dce3ee;
}

body.app-body tbody tr:nth-child(even) td {
    background: #11141c;
}

body.app-body tbody tr:hover td {
    background: #1a1d28;
}

body.app-body .asset-code,
body.app-body .equipment-link {
    color: #fff;
}

body.app-body .service-code {
    color: #bff4ff;
}

body.app-body .status-pill,
body.app-body .badge,
body.app-body .photo-action-badge {
    padding: 7px 10px;
    border-color: rgba(237,20,43,0.30);
    background: rgba(237,20,43,0.12);
}

body.app-body .status-row,
body.app-body .insight-row {
    min-height: 44px;
    border-radius: var(--ui-radius-sm);
    background: #0d0f15;
}

body.app-body .status-row:hover,
body.app-body .insight-row:hover {
    background: #151822;
}

body.app-body .result-grid div,
body.app-body .history-grid > div {
    background: #0d0f15;
}

body.app-body .history-card {
    position: relative;
    margin-left: 8px;
}

body.app-body .history-card::before {
    inset: 18px auto 18px -8px;
    width: 3px;
    height: auto;
    border-radius: 999px;
    background: var(--ui-red);
    opacity: 0.75;
}

body.app-body .security-callout {
    background: #11131a;
}

body.app-body.is-ready .tech-in {
    animation: productEnter 0.24s ease var(--motion-delay, 0ms) both !important;
}

@media (min-width: 761px) {
    body.app-body td:last-child {
        background: #151822;
    }

    body.app-body tbody tr:hover td:last-child {
        background: #1d212d;
    }
}

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

@media (max-width: 1180px) {
    body.app-body .stats {
        grid-template-columns: repeat(2, minmax(170px, 1fr));
    }

    body.app-body .dashboard-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 980px) {
    body.app-body .layout {
        display: block;
    }

    body.app-body .sidebar {
        width: 100%;
        height: auto;
        position: relative;
        border-right: 0;
        border-bottom: 1px solid var(--ui-border);
    }

    body.app-body .content {
        padding: 18px;
    }

    body.app-body .menu {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    body.app-body .content {
        padding: 14px;
    }

    .workspace-bar {
        align-items: flex-start;
        border-radius: var(--ui-radius);
        flex-direction: column;
    }

    body.app-body .topbar {
        grid-template-columns: 1fr;
        padding: 18px;
    }

    body.app-body .topbar h1::before {
        width: 40px;
        height: 40px;
    }

    body.app-body .subtitle {
        margin-left: 53px;
    }

    body.app-body .stats,
    body.app-body .grid,
    body.app-body .grid-2,
    body.app-body .grid-3,
    body.app-body .result-grid,
    body.app-body .history-grid {
        grid-template-columns: 1fr;
    }

    body.app-body .table-wrap {
        max-height: none;
        overflow: visible;
    }

    body.app-body table {
        min-width: 0;
    }
}

/* Cadastro de equipamento */
body.app-body .equipment-form-panel {
    max-width: 1180px;
    padding: 0;
    overflow: hidden;
}

body.app-body .equipment-form .form-block {
    padding: 22px 24px 24px;
}

body.app-body .equipment-form-panel .grid,
body.app-body .equipment-form-panel .grid-2,
body.app-body .equipment-form-panel .grid-3 {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

body.app-body .equipment-form .cadastro-main-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

body.app-body .equipment-form .field-wide {
    grid-column: span 2;
}

body.app-body .equipment-form .required-marker {
    margin-left: 4px;
    color: var(--ui-red-2);
}

body.app-body .equipment-form .form-section {
    border-top: 1px solid var(--ui-border-2);
}

body.app-body .equipment-form .form-section > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 58px;
    padding: 16px 24px;
    color: #f8fafc;
    font-size: 15px;
    font-weight: 850;
    cursor: pointer;
    list-style: none;
}

body.app-body .equipment-form .form-section > summary::-webkit-details-marker {
    display: none;
}

body.app-body .equipment-form .form-section > summary::after {
    content: "+";
    display: inline-grid;
    place-items: center;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border: 1px solid var(--ui-border);
    border-radius: 50%;
    background: #151822;
    color: var(--ui-muted);
    font-size: 18px;
    line-height: 1;
}

body.app-body .equipment-form .form-section[open] > summary {
    color: #ffffff;
}

body.app-body .equipment-form .form-section[open] > summary::after {
    content: "-";
    border-color: rgba(237,20,43,0.42);
    background: rgba(237,20,43,0.14);
    color: #ffffff;
}

body.app-body .equipment-form .form-section > summary strong {
    min-width: 28px;
    padding: 4px 8px;
    border: 1px solid rgba(237,20,43,0.32);
    border-radius: 999px;
    background: rgba(237,20,43,0.12);
    color: #ffe4e8;
    font-size: 12px;
    text-align: center;
}

body.app-body .equipment-form .form-section-body {
    padding: 0 24px 24px;
}

body.app-body .equipment-form .owner-change-date {
    display: none;
}

body.app-body .equipment-form .owner-change-date.is-visible {
    display: block;
}

body.app-body .equipment-form .linked-equipment-presets {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

body.app-body .equipment-form .linked-equipment-presets button {
    min-height: 38px;
    min-width: 118px;
    padding: 9px 14px;
    border: 1px solid rgba(15,118,110,0.34);
    border-radius: 8px;
    background:
        linear-gradient(180deg, #ffffff, rgba(241,248,249,0.96));
    color: var(--polish-ink, #111827);
    box-shadow:
        0 8px 18px rgba(17,24,39,0.09),
        inset 0 1px 0 rgba(255,255,255,0.86);
    font: inherit;
    font-size: 13px;
    font-weight: 850;
    line-height: 1.15;
    white-space: nowrap;
    cursor: pointer;
    transition:
        border-color 0.16s ease,
        background 0.16s ease,
        box-shadow 0.16s ease,
        color 0.16s ease,
        transform 0.16s ease;
}

body.app-body .equipment-form .linked-equipment-presets button:hover,
body.app-body .equipment-form .linked-equipment-presets button:focus-visible {
    border-color: var(--polish-primary, #0f766e);
    background:
        linear-gradient(135deg, var(--polish-primary, #0f766e), var(--polish-primary-2, #14b8a6));
    color: #ffffff;
    box-shadow: 0 12px 24px rgba(15,118,110,0.20);
    transform: translateY(-1px);
}

body.app-body .equipment-form .linked-equipment-presets button:focus-visible {
    outline: 2px solid rgba(15,118,110,0.24);
    outline-offset: 2px;
}

body.app-body .equipment-form textarea {
    min-height: 96px;
}

body.app-body .equipment-form .thumb-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

body.app-body .equipment-form .thumb-card img {
    height: 160px;
}

body.app-body .equipment-form .form-actions {
    position: sticky;
    bottom: 0;
    z-index: 2;
    margin-top: 0;
    padding: 16px 24px;
    border-top: 1px solid var(--ui-border);
    background: rgba(17,19,26,0.96);
}

body.app-body .equipment-delete-panel {
    margin-top: 18px;
    border: 1px solid rgba(248,113,113,0.32);
    background: linear-gradient(180deg, rgba(127,29,29,0.26), rgba(17,19,26,0.96));
}

body.app-body .delete-panel-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 520px) auto;
    gap: 18px;
    align-items: center;
    padding: 22px 24px;
}

body.app-body .danger-kicker {
    display: block;
    margin-bottom: 6px;
    color: #fecaca;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

body.app-body .equipment-delete-panel h2 {
    margin: 0 0 8px;
    color: #ffffff;
    font-size: 1.22rem;
}

body.app-body .equipment-delete-panel p {
    margin: 0;
    color: var(--ui-muted);
}

body.app-body .delete-context {
    padding: 14px 16px;
    border: 1px solid rgba(248,113,113,0.22);
    border-radius: 8px;
    background: rgba(15,23,42,0.55);
    color: var(--ui-text);
}

body.app-body .delete-context.is-blocked {
    border-color: rgba(251,191,36,0.38);
    background: rgba(120,53,15,0.22);
}

body.app-body .delete-context strong {
    display: block;
    margin-bottom: 8px;
    color: #ffffff;
}

body.app-body .delete-context ul {
    margin: 0;
    padding-left: 18px;
    color: var(--ui-muted);
}

body.app-body .delete-context li + li {
    margin-top: 6px;
}

body.app-body .transfer-panel {
    display: grid;
    gap: 18px;
    padding: 18px;
    border: 1px solid rgba(20,184,166,0.28);
    border-radius: 8px;
    background: rgba(15,118,110,0.10);
}

body.app-body .transfer-form {
    display: block;
}

body.app-body .transfer-checks {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    align-items: center;
    padding: 12px 0 0;
}

body.app-body .transfer-checks label {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    margin: 0;
    color: var(--ui-muted);
    font-weight: 700;
}

body.app-body .transfer-checks input {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--polish-primary, #0f766e);
}

body.app-body .collaborator-detail-head {
    align-items: start;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.7fr);
}

body.app-body .collaborator-summary-grid {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.app-body .collaborator-summary-grid div {
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--invy-line, #d7e1e8);
    border-radius: 8px;
    background: var(--invy-surface-2, #f6fafb);
}

body.app-body .collaborator-summary-grid strong {
    display: block;
    color: var(--invy-ink, #172331);
    font-size: 20px;
    line-height: 1;
}

body.app-body .collaborator-summary-grid span {
    display: block;
    margin-top: 5px;
    color: var(--invy-muted, #64748b);
    font-size: 12px;
    font-weight: 800;
}

body.app-body .collaborator-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
}

body.app-body .collaborator-action-stack {
    display: grid;
    gap: 12px;
}

body.app-body .collaborator-action-card {
    padding: 0;
}

body.app-body .collaborator-action-card summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    min-height: 56px;
    padding: 16px 18px;
    color: var(--invy-ink, #172331);
    font-size: 16px;
    font-weight: 900;
}

body.app-body .collaborator-action-card summary::-webkit-details-marker {
    display: none;
}

body.app-body .collaborator-action-card summary::after {
    content: "+";
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    height: 28px;
    justify-content: center;
    width: 28px;
    background: var(--invy-primary, #0f766e);
    color: #ffffff;
    font-weight: 900;
}

body.app-body .collaborator-action-card[open] summary {
    border-bottom: 1px solid var(--invy-line, #d7e1e8);
}

body.app-body .collaborator-action-card[open] summary::after {
    content: "-";
}

body.app-body .collaborator-action-card > form,
body.app-body .collaborator-action-card > .section-note,
body.app-body .collaborator-action-card > .actions {
    margin-left: 18px;
    margin-right: 18px;
}

body.app-body .m365-collaborator-license-card {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--invy-line, #d7e1e8);
    border-radius: 8px;
    background: var(--invy-surface-2, #f6fafb);
}

body.app-body .m365-collaborator-license-head {
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1.2fr) minmax(170px, 0.4fr) minmax(190px, 0.45fr);
    align-items: start;
}

body.app-body .m365-collaborator-license-head > div,
body.app-body .m365-collaborator-license-list div {
    min-width: 0;
}

body.app-body .m365-collaborator-license-card strong {
    display: block;
    color: var(--invy-ink, #172331);
    font-size: 15px;
    font-weight: 900;
    line-height: 1.25;
}

body.app-body .m365-collaborator-license-card span,
body.app-body .m365-collaborator-license-card small {
    display: block;
    margin-top: 4px;
    color: var(--invy-muted, #64748b);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.35;
}

body.app-body .m365-collaborator-license-list {
    display: grid;
    gap: 10px;
}

body.app-body .m365-collaborator-license-list div {
    padding: 11px;
    border: 1px solid var(--invy-line-2, #e6edf2);
    border-radius: 8px;
    background: #ffffff;
}

body.app-body .equipment-link-search {
    position: relative;
}

body.app-body .equipment-link-results {
    position: absolute;
    z-index: 40;
    left: 0;
    right: 0;
    top: calc(100% + 6px);
    display: grid;
    gap: 8px;
    max-height: 360px;
    overflow: auto;
    padding: 8px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.20);
}

body.app-body .equipment-link-results[hidden] {
    display: none;
}

body.app-body .equipment-link-result {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    width: 100%;
    min-height: 72px;
    padding: 10px 12px;
    border: 1px solid #dbe4ef;
    border-radius: 8px;
    background: #f8fafc;
    color: #172331;
    text-align: left;
    white-space: normal;
}

body.app-body .equipment-link-result:hover,
body.app-body .equipment-link-result:focus-visible {
    border-color: #93c5fd;
    background: #eff6ff;
}

body.app-body .equipment-link-result:disabled {
    cursor: not-allowed;
    opacity: 0.72;
}

body.app-body .equipment-link-main {
    display: grid;
    gap: 3px;
    min-width: 0;
}

body.app-body .equipment-link-main strong {
    color: #0f172a;
    font-size: 0.94rem;
}

body.app-body .equipment-link-main span,
body.app-body .equipment-link-main small {
    color: #64748b;
    font-size: 0.78rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

body.app-body .equipment-link-result em {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    border-radius: 999px;
    padding: 4px 9px;
    font-size: 0.72rem;
    font-style: normal;
    font-weight: 900;
}

body.app-body .equipment-link-result em.is-available {
    background: #dcfce7;
    color: #15803d;
}

body.app-body .equipment-link-result em.is-blocked,
body.app-body .equipment-link-empty {
    background: #fee2e2;
    color: #b91c1c;
}

body.app-body .equipment-link-empty {
    border-radius: 8px;
    padding: 12px;
    font-size: 0.82rem;
    font-weight: 850;
}

body.app-body .collaborator-responsibility-table td input[type="number"] {
    max-width: 90px;
}

body.app-body .toggle-card {
    align-items: center;
    border: 1px solid var(--invy-line, #d7e1e8);
    border-radius: 8px;
    display: flex;
    gap: 12px;
    margin: 0;
    padding: 12px 14px;
    background: var(--invy-surface-2, #f6fafb);
    cursor: pointer;
}

body.app-body .toggle-card input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

body.app-body .toggle-switch {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    flex: 0 0 auto;
    height: 28px;
    padding: 3px;
    width: 52px;
    background: #cbd5e1;
    transition: background 0.18s ease;
}

body.app-body .toggle-switch::before {
    content: "";
    border-radius: 999px;
    display: block;
    height: 22px;
    width: 22px;
    background: #ffffff;
    box-shadow: 0 2px 7px rgba(15, 23, 42, 0.18);
    transition: transform 0.18s ease;
}

body.app-body .toggle-card input:checked + .toggle-switch {
    background: var(--invy-primary, #0f766e);
}

body.app-body .toggle-card input:checked + .toggle-switch::before {
    transform: translateX(24px);
}

body.app-body .toggle-card strong {
    display: block;
    color: var(--invy-ink, #172331);
    font-size: 14px;
    font-weight: 900;
}

body.app-body .toggle-card small {
    display: block;
    margin-top: 3px;
    color: var(--invy-muted, #64748b);
    font-size: 12px;
    font-weight: 750;
}

body.app-body .adapter-link-card {
    border: 1px solid var(--invy-line, #d7e1e8);
    border-left: 3px solid var(--invy-primary, #0f766e);
    border-radius: 8px;
    background: var(--invy-surface-2, #f6fafb);
    padding: 14px 16px;
}

body.app-body .adapter-link-card span {
    display: block;
    color: var(--invy-muted, #64748b);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

body.app-body .adapter-link-card strong {
    display: block;
    margin-top: 4px;
    color: var(--invy-ink, #172331);
    font-size: 16px;
    font-weight: 950;
}

body.app-body .adapter-link-card small {
    display: block;
    margin-top: 5px;
    color: var(--invy-muted, #64748b);
    font-size: 12px;
    font-weight: 800;
}

@media (max-width: 920px) {
    body.app-body .collaborator-detail-head {
        grid-template-columns: 1fr;
    }

    body.app-body .m365-collaborator-license-head {
        grid-template-columns: 1fr;
    }

    body.app-body .collaborator-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.app-body .delete-panel-main {
        grid-template-columns: 1fr;
        align-items: stretch;
    }
}

@media (max-width: 1180px) {
    body.app-body .equipment-form .cadastro-main-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    body.app-body .equipment-form .form-block,
    body.app-body .equipment-form .form-section-body,
    body.app-body .equipment-form .form-actions {
        padding-right: 16px;
        padding-left: 16px;
    }

    body.app-body .equipment-form .form-section > summary {
        padding-right: 16px;
        padding-left: 16px;
    }

    body.app-body .equipment-form .cadastro-main-grid {
        grid-template-columns: 1fr;
    }

    body.app-body .equipment-form .field-wide {
        grid-column: 1 / -1;
    }
}

/* Visual pos-login */
body.app-body {
    --ui-bg: #090d15;
    --ui-sidebar: #101722;
    --ui-card: #151d2a;
    --ui-card-2: #1b2534;
    --ui-card-3: #243044;
    --ui-border: rgba(203,213,225,0.18);
    --ui-border-2: rgba(203,213,225,0.12);
    --ui-text: #f8fafc;
    --ui-muted: #c3cbd8;
    --ui-dim: #99a6b8;
    --ui-radius: 10px;
    --ui-radius-sm: 8px;
    background:
        linear-gradient(180deg, #0d1420 0%, #080b12 100%);
    color: var(--ui-text);
}

body.app-body::before {
    opacity: 0.13;
    background-image:
        linear-gradient(rgba(255,255,255,0.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px);
    background-size: 72px 72px;
}

body.app-body .sidebar {
    background:
        linear-gradient(180deg, rgba(237,20,43,0.16), transparent 230px),
        linear-gradient(180deg, #121a27 0%, #0b111b 100%);
    border-right-color: rgba(203,213,225,0.14);
}

body.app-body .menu a {
    color: #d8e0ec;
}

body.app-body .menu a:hover,
body.app-body .menu a.active {
    background: #1c2738;
    border-color: rgba(237,20,43,0.42);
    color: #ffffff;
}

body.app-body .menu a.active {
    box-shadow: inset 3px 0 0 var(--ui-red);
}

body.app-body .workspace-bar,
body.app-body .topbar,
body.app-body .panel,
body.app-body .equipment-result-card,
body.app-body .history-card {
    border-color: var(--ui-border);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.065), rgba(255,255,255,0.020)),
        var(--ui-card);
    box-shadow: 0 18px 42px rgba(0,0,0,0.24);
}

body.app-body .topbar {
    border-left: 4px solid var(--ui-red);
}

body.app-body .topbar h1,
body.app-body .section-title {
    color: #ffffff;
}

body.app-body .subtitle,
body.app-body .table-note,
body.app-body .section-note,
body.app-body .field-hint,
body.app-body .muted {
    color: var(--ui-muted);
}

body.app-body .stats {
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

body.app-body .stat-box {
    min-height: 104px;
    border-color: var(--ui-border);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.075), rgba(255,255,255,0.018)),
        #151d2a;
    box-shadow: 0 16px 34px rgba(0,0,0,0.22);
}

body.app-body .stat-box h3 {
    color: #ffffff;
}

body.app-body .stat-box p {
    color: var(--ui-muted);
}

body.app-body input,
body.app-body select,
body.app-body textarea {
    border-color: rgba(203,213,225,0.18);
    background: #0d1320;
    color: #f8fafc;
}

body.app-body input:hover,
body.app-body select:hover,
body.app-body textarea:hover {
    border-color: rgba(203,213,225,0.30);
}

body.app-body input:focus,
body.app-body select:focus,
body.app-body textarea:focus {
    border-color: rgba(237,20,43,0.82);
    box-shadow: 0 0 0 3px rgba(237,20,43,0.16);
}

body.app-body .table-wrap,
body.app-body th,
body.app-body td,
body.app-body .history-grid > div,
body.app-body .result-grid div {
    border-color: rgba(203,213,225,0.14);
}

body.app-body th {
    background: #202a3b;
    color: #ffffff;
}

body.app-body td {
    background: #131b28;
    color: #e8eef7;
}

body.app-body tbody tr:nth-child(even) td {
    background: #172131;
}

body.app-body tbody tr:hover td {
    background: #213047;
}

body.app-body .btn-secondary,
body.app-body .btn-outline {
    background: #1d2839;
    border-color: rgba(203,213,225,0.18);
    color: #f8fafc;
}

body.app-body .btn-secondary:hover,
body.app-body .btn-outline:hover {
    background: #27364c;
}

body.app-body .status-pill,
body.app-body .badge,
body.app-body .photo-action-badge {
    border-color: rgba(237,20,43,0.42);
    background: rgba(237,20,43,0.16);
    color: #ffe4e8;
}

body.app-body .owner-timeline {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 12px;
}

body.app-body .owner-card {
    display: grid;
    gap: 10px;
    min-height: 148px;
    padding: 14px;
    border: 1px solid var(--ui-border-2);
    border-radius: var(--ui-radius-sm);
    background: #101827;
}

body.app-body .owner-card.is-current {
    border-color: rgba(34,197,94,0.42);
    background:
        linear-gradient(180deg, rgba(34,197,94,0.10), rgba(255,255,255,0.018)),
        #101827;
}

body.app-body .owner-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

body.app-body .owner-main strong {
    color: #ffffff;
    font-size: 16px;
}

body.app-body .owner-meta,
body.app-body .owner-period,
body.app-body .owner-dates,
body.app-body .owner-event {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    color: var(--ui-muted);
    font-size: 13px;
}

body.app-body .owner-meta span,
body.app-body .owner-period span {
    padding: 5px 8px;
    border: 1px solid rgba(203,213,225,0.12);
    border-radius: 999px;
    background: rgba(255,255,255,0.035);
}

body.app-body .owner-dates {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.app-body .owner-date {
    padding: 9px 10px;
    border: 1px solid rgba(203,213,225,0.12);
    border-radius: var(--ui-radius-sm);
    background: rgba(255,255,255,0.035);
}

body.app-body .owner-date span {
    display: block;
    color: var(--ui-dim);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

body.app-body .owner-date strong {
    display: block;
    margin-top: 4px;
    color: #ffffff;
    font-size: 14px;
}

body.app-body .owner-event span {
    padding: 5px 8px;
    border: 1px solid rgba(203,213,225,0.12);
    border-radius: 999px;
    background: rgba(255,255,255,0.035);
}

body.app-body .empty-state {
    padding: 16px;
    border: 1px solid var(--ui-border-2);
    border-radius: var(--ui-radius-sm);
    background: #101827;
    color: var(--ui-muted);
}

/* Paginacao profissional para listas grandes do inventario. */
body.app-body .pagination-nav {
    margin-top: 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

body.app-body .pagination-pages {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
}

body.app-body .pagination-link,
body.app-body .pagination-page,
body.app-body .pagination-gap {
    min-width: 40px;
    min-height: 40px;
    padding: 0 12px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    border: 1px solid rgba(148,163,184,0.24);
    color: #dbe3ee;
    background: rgba(15,23,42,0.72);
}

body.app-body .pagination-link {
    min-width: 104px;
}

body.app-body .pagination-page.is-active {
    color: #ffffff;
    border-color: rgba(224,25,25,0.72);
    background: linear-gradient(135deg, rgba(224,25,25,0.88), rgba(159,17,17,0.92));
}

body.app-body .pagination-link.is-disabled {
    opacity: 0.45;
    pointer-events: none;
}

@media (max-width: 720px) {
    body.app-body .pagination-nav {
        justify-content: center;
    }

    body.app-body .pagination-link {
        flex: 1 1 120px;
    }
}

/* =====================================================
   Invy BRAND ASSETS - logos atuais
===================================================== */

body.app-body {
    background-color: #080c12;
    background-image:
        radial-gradient(circle at 18% 0%, rgba(237,20,43,0.18), transparent 34%),
        radial-gradient(circle at 92% 8%, rgba(255,255,255,0.055), transparent 24%),
        linear-gradient(180deg, #0b111a 0%, #07090f 100%);
    background-attachment: fixed;
}

body.app-body::before {
    opacity: 0.16;
    background-image:
        linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.045) 1px, transparent 1px);
    background-size: 88px 88px;
}

body.app-body .layout {
    position: relative;
    z-index: 1;
    background:
        linear-gradient(90deg, rgba(5,7,12,0.70), rgba(5,7,12,0.20) 48%, rgba(5,7,12,0.50));
}

body.app-body .sidebar {
    background:
        linear-gradient(180deg, rgba(237,20,43,0.13), rgba(8,12,18,0.88) 260px),
        rgba(8,12,18,0.88);
    backdrop-filter: blur(16px);
}

body.app-body .logo {
    position: relative;
    display: grid;
    gap: 12px;
    overflow: hidden;
    padding: 16px;
    border-color: rgba(255,255,255,0.14);
    background:
        linear-gradient(135deg, rgba(255,255,255,0.08), rgba(255,255,255,0.018)),
        rgba(8,11,16,0.82);
    box-shadow: 0 16px 38px rgba(0,0,0,0.22);
}

body.app-body .logo::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(110deg, transparent 0 40%, rgba(255,255,255,0.12) 50%, transparent 60% 100%);
    transform: translateX(-140%);
    animation: invyBrandSweep 6s ease-in-out infinite;
}

.brand-lockup {
    position: relative;
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.brand-logo-icon {
    display: block;
    width: 54px;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 16px;
    background: #ed142b;
    box-shadow:
        0 14px 30px rgba(237,20,43,0.26),
        inset 0 1px 0 rgba(255,255,255,0.24);
    animation: invyBrandPulse 4.8s ease-in-out infinite;
}

.brand-logo-icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.brand-logo-wordmark {
    display: block;
    width: min(148px, 100%);
    height: auto;
    opacity: 0.96;
    filter: invert(1) brightness(2);
    mix-blend-mode: screen;
}

body.app-body .logo-sub {
    margin-top: 0;
    padding-left: 66px;
    color: rgba(226,232,240,0.78);
    font-size: 10px;
    font-weight: 850;
}

body.app-body .workspace-bar,
body.app-body .topbar,
body.app-body .panel,
body.app-body .equipment-result-card,
body.app-body .history-card {
    background:
        linear-gradient(180deg, rgba(21,29,42,0.89), rgba(15,21,32,0.93));
    backdrop-filter: blur(10px);
}

body.login-page.login-v2-page,
.login-v2-page {
    display: block;
    min-height: 100vh;
    min-height: 100svh;
    padding: 0;
    overflow: hidden;
    background: #05070c;
}

.login-v2-shell {
    width: 100%;
    min-height: 100vh;
    min-height: 100svh;
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(420px, 0.88fr);
    border: 0;
    border-radius: 0;
    background: #05070c;
    box-shadow: none;
    backdrop-filter: none;
}

.login-v2-visual {
    min-height: 100vh;
    min-height: 100svh;
    padding: clamp(28px, 4vw, 64px);
    border-right: 1px solid rgba(255,255,255,0.12);
    background-image:
        linear-gradient(135deg, rgba(255,255,255,0.045), transparent 38%),
        linear-gradient(180deg, #05070b 0%, #090c12 56%, #020305 100%);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    isolation: isolate;
}

.login-v2-visual::before {
    z-index: 0;
    opacity: 0.92;
    background:
        radial-gradient(circle at 24% 20%, rgba(255,255,255,0.18), transparent 24%),
        linear-gradient(rgba(255,255,255,0.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.045) 1px, transparent 1px);
    background-size: auto, 46px 46px, 46px 46px;
    animation: none;
}

.login-v2-visual::after {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    z-index: 0;
    height: 38%;
    pointer-events: none;
    background: linear-gradient(180deg, transparent, rgba(5,7,12,0.58));
}

.login-v2-visual > * {
    position: relative;
    z-index: 1;
}

.login-v2-brand {
    align-items: center;
    gap: 16px;
}

.login-v2-logo.brand-lockup {
    width: min(300px, 100%);
    grid-template-columns: 58px minmax(0, 170px);
    line-height: 1;
}

.login-v2-logo .brand-logo-icon {
    width: 58px;
}

.login-v2-logo .brand-logo-icon img {
    width: 100%;
    height: 100%;
    filter: none;
}

.login-v2-logo .brand-logo-wordmark {
    width: 170px;
    filter: invert(1) brightness(2);
    mix-blend-mode: screen;
}

.login-v2-panel {
    position: relative;
    min-height: 100vh;
    min-height: 100svh;
    overflow: hidden;
    padding: clamp(34px, 5vw, 78px);
    background:
        radial-gradient(circle at 100% 0%, rgba(237,20,43,0.12), transparent 30%),
        linear-gradient(180deg, rgba(15,23,42,0.96), rgba(8,12,20,0.99));
}

.login-v2-panel::before {
    content: "";
    position: absolute;
    right: clamp(22px, 4vw, 58px);
    bottom: 38px;
    width: min(280px, 38vw);
    height: 110px;
    pointer-events: none;
    opacity: 0.075;
    background: radial-gradient(circle at 50% 50%, rgba(255,255,255,0.7), transparent 64%);
    filter: blur(12px);
    mix-blend-mode: screen;
}

.login-v2-panel > * {
    position: relative;
    z-index: 1;
}

.login-v2-heading h1 {
    font-size: clamp(34px, 4vw, 50px);
}

.login-v2-heading p {
    max-width: 480px;
}

.login-v2-input {
    border-radius: 14px;
    background: rgba(2,6,23,0.28);
    transition: transform 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.login-v2-input:hover,
.login-v2-input:focus-within {
    transform: translateY(-1px);
    background: rgba(2,6,23,0.42);
    box-shadow: 0 16px 34px rgba(0,0,0,0.18);
}

.login-v2-submit {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #ff2238, #ed142b 46%, #8f101c);
    box-shadow: 0 18px 38px rgba(237,20,43,0.30);
}

.login-v2-submit::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, transparent 0 40%, rgba(255,255,255,0.32) 50%, transparent 60% 100%);
    transform: translateX(-120%);
    transition: transform 0.55s ease;
}

.login-v2-submit:hover::after {
    transform: translateX(120%);
}

.login-v2-submit span,
.login-v2-submit svg {
    position: relative;
    z-index: 1;
}

@keyframes invyBrandPulse {
    0%, 100% {
        transform: translateY(0);
        box-shadow: 0 14px 30px rgba(237,20,43,0.24), inset 0 1px 0 rgba(255,255,255,0.24);
    }

    50% {
        transform: translateY(-2px);
        box-shadow: 0 18px 38px rgba(237,20,43,0.34), inset 0 1px 0 rgba(255,255,255,0.30);
    }
}

@keyframes invyBrandSweep {
    0%, 60% {
        transform: translateX(-140%);
    }

    82%, 100% {
        transform: translateX(140%);
    }
}

@media (max-width: 980px) {
    body.login-page.login-v2-page,
    .login-v2-page {
        overflow: auto;
    }

    .login-v2-shell {
        grid-template-columns: 1fr;
        min-height: 100vh;
    }

    .login-v2-visual {
        min-height: 40vh;
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,0.12);
    }

    .login-v2-panel {
        min-height: auto;
    }
}

@media (max-width: 680px) {
    .brand-lockup {
        grid-template-columns: 48px minmax(0, 1fr);
        gap: 10px;
    }

    .brand-logo-icon {
        width: 48px;
        border-radius: 14px;
    }

    .brand-logo-wordmark {
        width: 128px;
    }

    body.app-body .logo-sub {
        padding-left: 58px;
    }

    .login-v2-visual {
        padding: 24px;
    }

    .login-v2-logo.brand-lockup {
        width: min(260px, 100%);
        grid-template-columns: 52px minmax(0, 150px);
    }

    .login-v2-logo .brand-logo-icon {
        width: 52px;
    }

    .login-v2-logo .brand-logo-wordmark {
        width: 150px;
    }

    .login-v2-panel {
        padding: 30px 22px 28px;
    }

    .login-v2-panel::before {
        width: 150px;
        right: 20px;
        bottom: 22px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .brand-logo-icon,
    body.app-body .logo::after {
        animation: none;
    }
}

/* =====================================================
   Invy FINAL POLISH - fonte, login preto e logo mono
===================================================== */

@font-face {
    font-family: "Aktiv Grotesk Ex";
    src: url("../fonts/aktiv-grotesk-ex-regular.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Aktiv Grotesk Ex";
    src: url("../fonts/aktiv-grotesk-ex-medium.woff2") format("woff2");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Aktiv Grotesk Ex";
    src: url("../fonts/aktiv-grotesk-ex-bold.woff2") format("woff2");
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Aktiv Grotesk Ex";
    src: url("../fonts/aktiv-grotesk-ex-xbold.woff2") format("woff2");
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "IvyJournal";
    src: url("../fonts/ivyjournal-regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "IvyJournal";
    src: url("../fonts/ivyjournal-semibold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

body,
button,
input,
select,
textarea {
    font-family: "Aktiv Grotesk Ex", Arial, Helvetica, sans-serif;
}

body.app-body {
    letter-spacing: 0;
    background:
        radial-gradient(circle at 14% 0%, rgba(255,255,255,0.055), transparent 30%),
        radial-gradient(circle at 86% 0%, rgba(237,20,43,0.10), transparent 28%),
        linear-gradient(180deg, #080b10 0%, #05070b 100%);
}

body.app-body .logo {
    min-height: 112px;
    align-content: center;
    border: 1px solid rgba(255,255,255,0.13);
    background:
        linear-gradient(135deg, rgba(255,255,255,0.075), rgba(255,255,255,0.012)),
        #080a0f;
}

.brand-lockup-mono {
    display: block;
}

.brand-logo-wordmark-dashboard {
    width: min(188px, 100%);
    filter: invert(1) brightness(2.1) contrast(1.03);
    mix-blend-mode: screen;
    transform-origin: left center;
    animation: invyLogoReveal 0.6s ease both;
    transition: transform 0.24s ease, filter 0.24s ease, opacity 0.24s ease;
}

body.app-body .logo:hover .brand-logo-wordmark-dashboard {
    transform: translateY(-1px) scale(1.025);
    filter:
        invert(1)
        brightness(2.35)
        contrast(1.05)
        drop-shadow(0 10px 18px rgba(255,255,255,0.08));
}

body.app-body .logo-sub {
    padding-left: 0;
    color: rgba(226,232,240,0.68);
    font-size: 10px;
    letter-spacing: 1.8px;
}

body.app-body .topbar {
    position: relative;
    overflow: hidden;
}

body.app-body .topbar::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(110deg, transparent 0 44%, rgba(255,255,255,0.08) 50%, transparent 56% 100%);
    transform: translateX(-120%);
    animation: invyPanelSweep 8s ease-in-out infinite;
}

.page-dashboard .topbar h1::before {
    content: none;
}

.dashboard-title-wrap {
    display: flex;
    align-items: center;
    gap: 18px;
    min-width: 0;
}

.dashboard-title-logo-shell {
    position: relative;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: clamp(116px, 12vw, 164px);
    min-height: 58px;
    overflow: hidden;
    border-radius: var(--ui-radius);
    border: 1px solid rgba(255,255,255,0.12);
    background:
        linear-gradient(135deg, rgba(255,255,255,0.075), rgba(255,255,255,0.018)),
        #07090e;
    box-shadow: 0 14px 34px rgba(0,0,0,0.22);
}

.dashboard-title-logo-shell::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(110deg, transparent 0 40%, rgba(255,255,255,0.14) 50%, transparent 60% 100%);
    transform: translateX(-120%);
    animation: invyPanelSweep 7s ease-in-out infinite;
}

.dashboard-title-logo {
    display: block;
    width: 82%;
    height: auto;
    filter: invert(1) brightness(2.15) contrast(1.04);
    mix-blend-mode: screen;
    animation: invyLogoReveal 0.7s ease both;
}

.page-dashboard .subtitle {
    margin-left: 0;
}

body.login-page.login-v2-page,
.login-v2-page {
    background:
        radial-gradient(circle at 10% 10%, rgba(255,255,255,0.055), transparent 28%),
        radial-gradient(circle at 86% 12%, rgba(237,20,43,0.08), transparent 24%),
        linear-gradient(135deg, #020305 0%, #090c12 46%, #020305 100%);
}

.login-v2-shell {
    background: transparent;
}

.login-v2-visual {
    background:
        linear-gradient(135deg, rgba(255,255,255,0.045), transparent 38%),
        linear-gradient(180deg, #05070b 0%, #090c12 56%, #020305 100%);
}

.login-v2-visual::before {
    opacity: 0.46;
    background:
        linear-gradient(rgba(255,255,255,0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
    background-size: 56px 56px;
    animation: invyGridDrift 18s linear infinite;
}

.login-v2-visual::after {
    content: "";
    position: absolute;
    inset: 12% 8% 14% 8%;
    z-index: 0;
    height: auto;
    pointer-events: none;
    opacity: 0.13;
    background: radial-gradient(circle at 50% 50%, rgba(255,255,255,0.85), transparent 66%);
    filter: blur(16px);
    mix-blend-mode: screen;
    animation: invyWatermarkFloat 8s ease-in-out infinite;
}

.login-v2-logo.login-logo-mono {
    display: block;
    width: min(230px, 42vw);
    line-height: 1;
}

.login-logo-wordmark {
    display: block;
    width: 100%;
    height: auto;
    filter: invert(1) brightness(2.2) contrast(1.04);
    mix-blend-mode: screen;
    animation: invyLogoReveal 0.7s ease both;
}

.login-v2-brand > div:last-child {
    padding-left: 2px;
}

.login-v2-brand strong {
    font-weight: 800;
}

.login-v2-brand small,
.login-v2-footer,
.workspace-bar {
    letter-spacing: 0.4px;
}

.login-v2-monitor {
    border-color: rgba(255,255,255,0.12);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.060), rgba(255,255,255,0.018));
    backdrop-filter: blur(16px);
}

.monitor-head span:first-child,
.monitor-head span:nth-child(2),
.monitor-head span:nth-child(3) {
    background: rgba(255,255,255,0.42);
}

.monitor-card-main,
.monitor-line,
.connection {
    background:
        linear-gradient(90deg, rgba(255,255,255,0.28), rgba(255,255,255,0.055));
}

.node {
    box-shadow:
        0 0 0 6px rgba(255,255,255,0.08),
        0 0 18px rgba(255,255,255,0.20);
}

.login-v2-panel {
    background:
        radial-gradient(circle at 100% 0%, rgba(255,255,255,0.060), transparent 26%),
        linear-gradient(180deg, rgba(13,17,25,0.98), rgba(5,7,11,0.99));
}

.login-v2-panel::before {
    opacity: 0.055;
}

.login-v2-heading h1 {
    font-family: "IvyJournal", "Aktiv Grotesk Ex", Arial, sans-serif;
    font-weight: 700;
    letter-spacing: 0;
}

.login-v2-kicker {
    border-color: rgba(255,255,255,0.14);
    background: rgba(255,255,255,0.055);
    color: rgba(248,250,252,0.78);
}

.login-v2-input input {
    border-color: rgba(255,255,255,0.16);
    background: rgba(255,255,255,0.035);
}

.login-v2-input input:focus {
    border-color: rgba(255,255,255,0.46);
    box-shadow:
        0 0 0 4px rgba(255,255,255,0.075),
        inset 0 1px 0 rgba(255,255,255,0.04);
}

.login-v2-submit {
    background: linear-gradient(135deg, #20242c, #10131a 48%, #05070b);
    border: 1px solid rgba(255,255,255,0.16);
    box-shadow:
        0 18px 38px rgba(0,0,0,0.36),
        inset 0 1px 0 rgba(255,255,255,0.10);
}

.login-v2-submit:hover {
    border-color: rgba(255,255,255,0.30);
    box-shadow:
        0 22px 46px rgba(0,0,0,0.45),
        inset 0 1px 0 rgba(255,255,255,0.16);
}

@keyframes invyLogoReveal {
    from {
        opacity: 0;
        transform: translateY(6px);
    }

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

@keyframes invyPanelSweep {
    0%, 68% {
        transform: translateX(-120%);
    }

    86%, 100% {
        transform: translateX(120%);
    }
}

@keyframes invyGridDrift {
    from {
        background-position: 0 0, 0 0;
    }

    to {
        background-position: 112px 112px, -112px 112px;
    }
}

@keyframes invyWatermarkFloat {
    0%, 100% {
        opacity: 0.11;
        transform: translateY(0) scale(1);
    }

    50% {
        opacity: 0.16;
        transform: translateY(-8px) scale(1.01);
    }
}

@media (max-width: 980px) {
    .login-v2-logo.login-logo-mono {
        width: min(210px, 62vw);
    }

    .login-v2-visual::after {
        inset: 18% 10% 10% 10%;
    }
}

@media (max-width: 680px) {
    .login-v2-logo.login-logo-mono {
        width: min(185px, 70vw);
    }

    .dashboard-title-wrap {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }

    .dashboard-title-logo-shell {
        width: 142px;
        min-height: 52px;
    }

    .brand-logo-wordmark-dashboard {
        width: min(168px, 100%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .brand-logo-wordmark-dashboard,
    .login-logo-wordmark,
    body.app-body .topbar::after,
    .login-v2-visual::before,
    .login-v2-visual::after {
        animation: none;
    }
}

/* Ajustes finais: accordions do cadastro e logo clicavel */
body.app-body .logo-home-link {
    isolation: isolate;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    transform: translateZ(0);
    transition:
        transform 0.22s ease,
        border-color 0.22s ease,
        box-shadow 0.22s ease,
        background 0.22s ease;
}

body.app-body .logo-home-link > * {
    position: relative;
    z-index: 1;
}

body.app-body .logo-home-link::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 18% 20%, rgba(237,20,43,0.28), transparent 34%),
        linear-gradient(135deg, rgba(255,255,255,0.10), transparent 48%);
    opacity: 0;
    transition: opacity 0.24s ease;
}

body.app-body .logo-home-link:hover,
body.app-body .logo-home-link:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(237,20,43,0.50);
    box-shadow:
        0 18px 42px rgba(0,0,0,0.34),
        0 0 0 1px rgba(237,20,43,0.10),
        0 0 32px rgba(237,20,43,0.18);
}

body.app-body .logo-home-link:hover::before,
body.app-body .logo-home-link:focus-visible::before {
    opacity: 1;
    animation: invyLogoGlowPulse 2.8s ease-in-out infinite;
}

body.app-body .logo-home-link:focus-visible {
    outline: 2px solid rgba(255,255,255,0.72);
    outline-offset: 4px;
}

body.app-body .logo-home-link:hover .brand-logo-wordmark-dashboard,
body.app-body .logo-home-link:focus-visible .brand-logo-wordmark-dashboard {
    filter:
        invert(1)
        brightness(2.55)
        contrast(1.08)
        drop-shadow(0 0 16px rgba(237,20,43,0.26));
}

body.app-body .equipment-form .form-section {
    margin: 12px 20px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.13);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(255,255,255,0.055), rgba(255,255,255,0.014)),
        rgba(9,12,18,0.92);
    transition:
        transform 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        background 0.18s ease;
}

body.app-body .equipment-form .primary-block + .form-section {
    margin-top: 4px;
}

body.app-body .equipment-form .form-section:hover {
    transform: translateY(-1px);
    border-color: rgba(237,20,43,0.42);
    box-shadow:
        0 14px 28px rgba(0,0,0,0.20),
        0 0 0 1px rgba(237,20,43,0.08);
}

body.app-body .equipment-form .form-section[open] {
    border-color: rgba(237,20,43,0.46);
    background:
        linear-gradient(135deg, rgba(237,20,43,0.13), rgba(255,255,255,0.020) 42%),
        rgba(10,13,20,0.96);
}

body.app-body .equipment-form .form-section > summary {
    position: relative;
    justify-content: flex-start;
    min-height: 66px;
    padding: 17px 18px;
    background:
        linear-gradient(90deg, rgba(255,255,255,0.060), rgba(255,255,255,0.015)),
        rgba(255,255,255,0.018);
    transition:
        background 0.18s ease,
        color 0.18s ease;
}

body.app-body .equipment-form .form-section > summary::before {
    content: "";
    width: 6px;
    height: 34px;
    flex: 0 0 6px;
    border-radius: 999px;
    background: linear-gradient(180deg, #ed142b, #ffffff);
    box-shadow: 0 0 18px rgba(237,20,43,0.28);
}

body.app-body .equipment-form .form-section > summary span {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 15px;
    letter-spacing: 0;
}

body.app-body .equipment-form .form-section > summary::after {
    margin-left: 12px;
    border-color: rgba(255,255,255,0.22);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.10), rgba(255,255,255,0.03)),
        #141823;
    color: #ffffff;
    font-weight: 900;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.12);
    transition:
        transform 0.18s ease,
        border-color 0.18s ease,
        background 0.18s ease;
}

body.app-body .equipment-form .form-section > summary:hover,
body.app-body .equipment-form .form-section > summary:focus-visible {
    background:
        linear-gradient(90deg, rgba(237,20,43,0.18), rgba(255,255,255,0.030)),
        rgba(255,255,255,0.026);
}

body.app-body .equipment-form .form-section > summary:focus-visible {
    outline: 2px solid rgba(255,255,255,0.70);
    outline-offset: -4px;
}

body.app-body .equipment-form .form-section[open] > summary {
    background:
        linear-gradient(90deg, rgba(237,20,43,0.24), rgba(255,255,255,0.032)),
        rgba(255,255,255,0.028);
}

body.app-body .equipment-form .form-section[open] > summary::after {
    transform: rotate(180deg);
    border-color: rgba(237,20,43,0.58);
    background:
        linear-gradient(180deg, rgba(237,20,43,0.36), rgba(237,20,43,0.16)),
        #171a23;
}

body.app-body .equipment-form .form-section > summary strong {
    margin-left: 10px;
}

body.app-body .equipment-form .form-section-body {
    padding: 20px 24px 24px;
    border-top: 1px solid rgba(255,255,255,0.08);
}

@keyframes invyLogoGlowPulse {
    0%, 100% {
        opacity: 0.68;
    }

    50% {
        opacity: 1;
    }
}

@media (max-width: 760px) {
    body.app-body .equipment-form .form-section {
        margin-right: 12px;
        margin-left: 12px;
    }

    body.app-body .equipment-form .form-section > summary,
    body.app-body .equipment-form .form-section-body {
        padding-right: 14px;
        padding-left: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-body .logo-home-link,
    body.app-body .logo-home-link::before,
    body.app-body .equipment-form .form-section,
    body.app-body .equipment-form .form-section > summary,
    body.app-body .equipment-form .form-section > summary::after {
        animation: none;
        transition: none;
    }
}

/* Invy UI refinements: transparent logo asset and larger equipment photos */
body.app-body .brand-logo-wordmark,
body.app-body .dashboard-title-logo,
.login-logo-wordmark {
    background: transparent;
}

.thumb-image-link {
    display: block;
    border-radius: var(--ui-radius, 8px);
    overflow: hidden;
}

body.app-body .equipment-form .thumb-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
    gap: 18px;
}

body.app-body .equipment-form .thumb-card {
    padding: 14px;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.060), rgba(255,255,255,0.016)),
        rgba(6,9,15,0.95);
}

body.app-body .equipment-form .thumb-card img {
    height: clamp(280px, 34vw, 430px);
    padding: 10px;
    background: #05080d;
    object-fit: contain;
}

body.app-body .thumb-image-link:focus-visible {
    outline: 2px solid rgba(255,255,255,0.72);
    outline-offset: 3px;
}

@media (max-width: 760px) {
    body.app-body .equipment-form .thumb-card img {
        height: 240px;
    }
}

/* Invy Professional UI - final polish */
body.app-body {
    --pro-bg: #f3f5f8;
    --pro-bg-2: #e9edf3;
    --pro-surface: rgba(255, 255, 255, 0.94);
    --pro-surface-strong: #ffffff;
    --pro-sidebar: #111821;
    --pro-sidebar-2: #0b1017;
    --pro-text: #17202c;
    --pro-muted: #657385;
    --pro-line: #d8dee8;
    --pro-line-soft: #e8edf4;
    --pro-red: #d7192f;
    --pro-red-dark: #aa1022;
    --pro-blue: #2368b8;
    --pro-green: #158153;
    --pro-amber: #b86d15;
    --pro-shadow: 0 18px 48px rgba(19, 31, 46, 0.10);
    --pro-shadow-soft: 0 10px 28px rgba(19, 31, 46, 0.08);
    --pro-radius: 8px;
    min-height: 100vh;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.86), rgba(255,255,255,0.42)),
        linear-gradient(135deg, var(--pro-bg), var(--pro-bg-2));
    color: var(--pro-text);
}

body.app-body::before,
body.app-body::after {
    display: none;
}

body.app-body .layout {
    background: transparent;
}

body.app-body .sidebar {
    border-right: 1px solid rgba(255,255,255,0.10);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.045), rgba(255,255,255,0)),
        linear-gradient(180deg, var(--pro-sidebar), var(--pro-sidebar-2));
    box-shadow: 12px 0 34px rgba(15, 23, 34, 0.16);
}

body.app-body .logo {
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: var(--pro-radius);
    background: rgba(255,255,255,0.045);
}

body.app-body .logo-sub,
body.app-body .menu-title,
body.app-body .creator-box .small,
body.app-body .creator-box .version {
    color: rgba(255,255,255,0.58);
}

body.app-body .menu a {
    border: 1px solid transparent;
    border-radius: var(--pro-radius);
    background: transparent;
    color: rgba(255,255,255,0.76);
    transition:
        transform 0.18s ease,
        background 0.18s ease,
        border-color 0.18s ease,
        color 0.18s ease;
}

body.app-body .menu a:hover,
body.app-body .menu a.active {
    transform: translateX(3px);
    border-color: rgba(255,255,255,0.12);
    background: rgba(255,255,255,0.080);
    color: #ffffff;
}

body.app-body .menu a.active {
    box-shadow: inset 3px 0 0 var(--pro-red);
}

body.app-body .nav-mark {
    border-radius: 7px;
    background: rgba(255,255,255,0.085);
}

body.app-body .menu a.active .nav-mark,
body.app-body .menu a:hover .nav-mark {
    background: var(--pro-red);
}

body.app-body .creator-box {
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: var(--pro-radius);
    background: rgba(255,255,255,0.060);
}

body.app-body .content {
    color: var(--pro-text);
}

body.app-body .workspace-bar,
body.app-body .topbar,
body.app-body .panel,
body.app-body .stat-box,
body.app-body .equipment-result-card,
body.app-body .history-card,
body.app-body .thumb-card,
body.app-body .result-grid div,
body.app-body .history-grid > div {
    border: 1px solid var(--pro-line-soft);
    border-radius: var(--pro-radius);
    background: var(--pro-surface);
    box-shadow: var(--pro-shadow-soft);
    color: var(--pro-text);
}

body.app-body .workspace-bar,
body.app-body .topbar {
    backdrop-filter: blur(14px);
    background: rgba(255,255,255,0.88);
}

body.app-body .topbar {
    min-height: 108px;
    padding: 24px;
    overflow: hidden;
}

body.app-body .topbar::before,
body.app-body .topbar::after,
body.app-body .panel::before,
body.app-body .panel::after,
body.app-body .equipment-result-card::before,
body.app-body .equipment-result-card::after,
body.app-body .history-card::before,
body.app-body .history-card::after {
    display: none;
}

body.app-body .topbar h1 {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--pro-text);
    font-size: clamp(26px, 3vw, 38px);
    letter-spacing: 0;
}

body.app-body .topbar h1::before {
    border: 1px solid rgba(215,25,47,0.18);
    border-radius: 7px;
    background: #fff4f5;
    color: var(--pro-red);
    box-shadow: none;
}

body.app-body .subtitle,
body.app-body .section-note,
body.app-body .table-note,
body.app-body .field-hint,
body.app-body .muted {
    color: var(--pro-muted);
}

body.app-body .panel,
body.app-body .equipment-result-card,
body.app-body .history-card {
    background: var(--pro-surface-strong);
}

body.app-body .panel:hover,
body.app-body .equipment-result-card:hover,
body.app-body .history-card:hover {
    transform: translateY(-2px);
    border-color: rgba(35,104,184,0.22);
    box-shadow: var(--pro-shadow);
}

body.app-body .section-title {
    color: var(--pro-text);
    font-size: 16px;
    letter-spacing: 0;
}

body.app-body .section-title::before {
    width: 4px;
    border-radius: 999px;
    background: var(--pro-red);
    box-shadow: none;
}

body.app-body .stats {
    gap: 14px;
}

body.app-body .stat-box {
    position: relative;
    overflow: hidden;
    padding: 22px;
    background: #ffffff;
}

body.app-body .stat-box::before {
    width: 4px;
    background: var(--pro-red);
    box-shadow: none;
}

body.app-body .stat-box:nth-child(2)::before,
body.app-body .stat-box.accent-blue::before {
    background: var(--pro-blue);
}

body.app-body .stat-box:nth-child(3)::before,
body.app-body .stat-box.accent-green::before {
    background: var(--pro-green);
}

body.app-body .stat-box:nth-child(4)::before,
body.app-body .stat-box.accent-amber::before {
    background: var(--pro-amber);
}

body.app-body .stat-box h3 {
    color: var(--pro-text);
    font-size: clamp(30px, 4vw, 46px);
}

body.app-body .stat-box p {
    color: var(--pro-muted);
}

body.app-body input,
body.app-body select,
body.app-body textarea {
    border: 1px solid var(--pro-line);
    border-radius: var(--pro-radius);
    background: #ffffff;
    color: var(--pro-text);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.80);
}

body.app-body input:hover,
body.app-body select:hover,
body.app-body textarea:hover {
    border-color: #c5cfdd;
}

body.app-body input:focus,
body.app-body select:focus,
body.app-body textarea:focus {
    border-color: rgba(35,104,184,0.70);
    box-shadow:
        0 0 0 3px rgba(35,104,184,0.12),
        inset 0 1px 0 rgba(255,255,255,0.80);
}

body.app-body label {
    color: #314052;
}

body.app-body .btn,
body.app-body button {
    border-radius: var(--pro-radius);
    font-weight: 800;
    letter-spacing: 0;
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        background 0.18s ease,
        border-color 0.18s ease;
}

body.app-body .btn::after,
body.app-body button::after {
    display: none;
}

body.app-body .btn:hover,
body.app-body button:hover {
    transform: translateY(-1px);
}

body.app-body .btn-primary {
    border-color: var(--pro-red);
    background: linear-gradient(180deg, #ed3144, var(--pro-red-dark));
    box-shadow: 0 10px 22px rgba(215,25,47,0.22);
}

body.app-body .btn-secondary,
body.app-body .btn-outline {
    border-color: #cfd7e3;
    background: #ffffff;
    color: #263447;
}

body.app-body .btn-secondary:hover,
body.app-body .btn-outline:hover {
    border-color: rgba(35,104,184,0.38);
    background: #f7faff;
    color: var(--pro-blue);
    box-shadow: 0 10px 22px rgba(35,104,184,0.10);
}

body.app-body .btn-danger {
    border-color: #cf1f32;
    background: #cf1f32;
}

body.app-body .table-wrap {
    border: 1px solid var(--pro-line);
    border-radius: var(--pro-radius);
    background: #ffffff;
    box-shadow: var(--pro-shadow-soft);
}

body.app-body table {
    border-collapse: separate;
    border-spacing: 0;
    background: #ffffff;
}

body.app-body th {
    position: sticky;
    top: 0;
    z-index: 2;
    border-bottom: 1px solid var(--pro-line);
    background: #f7f9fc;
    color: #3d4a5c;
    font-size: 11px;
    letter-spacing: 0;
}

body.app-body td {
    border-bottom: 1px solid var(--pro-line-soft);
    color: #253246;
}

body.app-body tbody tr:nth-child(even) td {
    background: #fbfcfe;
}

body.app-body tbody tr:hover td {
    background: #f3f7fd;
}

body.app-body .asset-code,
body.app-body .service-code,
body.app-body .equipment-link {
    color: var(--pro-red);
}

body.app-body .status-pill,
body.app-body .badge,
body.app-body .photo-action-badge {
    border: 1px solid #dbe3ee;
    border-radius: 999px;
    background: #f5f8fc;
    color: #334155;
}

body.app-body .owner-card,
body.app-body .owner-date,
body.app-body .status-row,
body.app-body .insight-row {
    border-radius: var(--pro-radius);
}

body.app-body .equipment-form .form-section,
body.app-body .equipment-form .form-section[open] {
    border-color: var(--pro-line);
    border-radius: var(--pro-radius);
    background: #ffffff;
    box-shadow: var(--pro-shadow-soft);
}

body.app-body .equipment-form .form-section > summary,
body.app-body .equipment-form .form-section[open] > summary {
    background: #f7f9fc;
    color: var(--pro-text);
}

body.app-body .equipment-form .form-section > summary::before {
    background: var(--pro-red);
    box-shadow: none;
}

body.app-body.is-ready .tech-in {
    animation: proEnter 0.42s cubic-bezier(0.2, 0.8, 0.2, 1) both;
    animation-delay: var(--motion-delay, 0ms);
}

body.app-body .table-wrap tbody tr.tech-in {
    animation-name: proRowEnter;
}

@keyframes proEnter {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

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

@keyframes proRowEnter {
    from {
        opacity: 0;
        transform: translateX(-8px);
    }

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

@media (max-width: 900px) {
    body.app-body .topbar {
        min-height: auto;
        padding: 18px;
    }

    body.app-body th {
        position: static;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-body *,
    body.app-body::before,
    body.app-body::after {
        animation: none !important;
        transition: none !important;
    }
}

/* Invy contrast pass - pos-login */
body.app-body {
    --pro-bg: #eef2f7;
    --pro-bg-2: #f7f9fc;
    --pro-surface: rgba(255,255,255,0.96);
    --pro-surface-strong: #ffffff;
    --pro-text: #121a26;
    --pro-muted: #526173;
    --pro-line: #cdd6e3;
    --pro-line-soft: #e3e9f1;
    --pro-red: #b51224;
    --pro-red-dark: #8f101c;
    --pro-blue: #165fa7;
    --pro-green: #087244;
    --pro-amber: #98540f;
    background:
        radial-gradient(circle at 12% 0%, rgba(181,18,36,0.10), transparent 30%),
        linear-gradient(180deg, var(--pro-bg-2) 0%, var(--pro-bg) 100%);
}

body.app-body .workspace-bar,
body.app-body .topbar,
body.app-body .panel,
body.app-body .stat-box,
body.app-body .equipment-result-card,
body.app-body .history-card,
body.app-body .thumb-card,
body.app-body .result-grid div,
body.app-body .history-grid > div,
body.app-body .owner-card,
body.app-body .owner-date,
body.app-body .status-row,
body.app-body .insight-row,
body.app-body .empty-state,
body.app-body .security-callout {
    border-color: var(--pro-line-soft);
    background: var(--pro-surface-strong);
    color: var(--pro-text);
}

body.app-body .stat-box {
    min-height: 118px;
    padding: 22px 22px 20px 24px;
}

body.app-body .stat-box::before {
    inset: 18px auto 18px 0;
    width: 4px;
    height: auto;
    border-radius: 0 999px 999px 0;
    opacity: 1;
}

body.app-body .stat-box h3,
body.app-body .insight-row strong,
body.app-body .status-row strong,
body.app-body .owner-date strong,
body.app-body .owner-main strong,
body.app-body .history-grid strong,
body.app-body .history-head strong,
body.app-body .result-grid strong,
body.app-body .equipment-result-head h2 {
    color: var(--pro-text);
    font-variant-numeric: tabular-nums;
}

body.app-body .stat-box.accent-blue h3,
body.app-body .stats .stat-box:nth-child(2) h3 {
    color: var(--pro-blue);
}

body.app-body .stat-box.accent-green h3,
body.app-body .stats .stat-box:nth-child(3) h3 {
    color: var(--pro-green);
}

body.app-body .stat-box.accent-amber h3,
body.app-body .stats .stat-box:nth-child(4) h3 {
    color: var(--pro-amber);
}

body.app-body .stats .stat-box.accent-blue h3 {
    color: var(--pro-blue);
}

body.app-body .stats .stat-box.accent-green h3 {
    color: var(--pro-green);
}

body.app-body .stats .stat-box.accent-amber h3 {
    color: var(--pro-amber);
}

body.app-body .stats .stat-box.accent-blue::before {
    background: var(--pro-blue);
}

body.app-body .stats .stat-box.accent-green::before {
    background: var(--pro-green);
}

body.app-body .stats .stat-box.accent-amber::before {
    background: var(--pro-amber);
}

body.app-body .stat-box p,
body.app-body .result-grid span,
body.app-body .equipment-result-head p,
body.app-body .owner-meta,
body.app-body .owner-period,
body.app-body .owner-dates,
body.app-body .owner-event,
body.app-body .owner-date span,
body.app-body .status-row span,
body.app-body .insight-row span,
body.app-body .empty-state,
body.app-body .security-callout span {
    color: var(--pro-muted);
}

body.app-body .result-grid div,
body.app-body .history-grid > div,
body.app-body .status-row,
body.app-body .insight-row,
body.app-body .owner-date {
    border: 1px solid var(--pro-line-soft);
    background: #f8fafc;
}

body.app-body .owner-card.is-current {
    border-color: rgba(8,114,68,0.26);
    background: #f2fbf6;
}

body.app-body .asset-code,
body.app-body .service-code,
body.app-body .equipment-link {
    color: var(--pro-red);
    font-weight: 900;
}

body.app-body .equipment-link:hover,
body.app-body .asset-code:hover {
    color: var(--pro-red-dark);
}

body.app-body .status-pill,
body.app-body .badge,
body.app-body .photo-action-badge {
    border-color: #cfd8e6;
    background: #f8fafc;
    color: #263447;
}

body.app-body .status-row strong,
body.app-body .insight-row strong {
    min-width: 42px;
    padding: 4px 9px;
    border: 1px solid #dce5f0;
    border-radius: 999px;
    background: #eef4fb;
    text-align: center;
}

body.app-body th {
    background: #eef3f8;
    color: #2f3d50;
}

body.app-body td,
body.app-body tbody tr:nth-child(even) td {
    background: #ffffff;
    color: #1d2939;
}

body.app-body tbody tr:hover td {
    background: #f2f6fb;
}

body.app-body .table-wrap {
    background: #ffffff;
}

body.app-body td .table-note {
    display: inline-flex;
    width: auto;
    margin: 0 0 0 8px;
    padding: 3px 7px;
    border-color: #dbe3ee;
    background: #f8fafc;
    color: var(--pro-muted);
    font-size: 11px;
}

body.app-body .pagination-link,
body.app-body .pagination-page,
body.app-body .pagination-gap {
    border-color: #d4deeb;
    background: #ffffff;
    color: #263447;
}

body.app-body .pagination-page.is-active {
    border-color: var(--pro-red);
    background: var(--pro-red);
    color: #ffffff;
}

body.app-body .pagination-link:not(.is-disabled):hover,
body.app-body .pagination-page:not(.is-active):hover {
    border-color: rgba(35,104,184,0.38);
    background: #f3f7fd;
    color: var(--pro-blue);
}

@media (min-width: 761px) {
    body.app-body td:last-child,
    body.app-body tbody tr:hover td:last-child {
        background: #ffffff;
    }
}

/* Form readability fix - campos de busca e cadastro pos-login */
body.app-body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
body.app-body select,
body.app-body textarea,
body.app-body .search-box input,
body.app-body .quick-search-form input,
body.app-body .inventory-filter-form input,
body.app-body .inventory-filter-form select {
    border: 1px solid #c7d2e1 !important;
    background: #ffffff !important;
    color: #111827 !important;
    caret-color: var(--pro-red) !important;
    -webkit-text-fill-color: #111827 !important;
    opacity: 1 !important;
    text-shadow: none !important;
}

body.app-body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"])::placeholder,
body.app-body textarea::placeholder,
body.app-body .search-box input::placeholder,
body.app-body .quick-search-form input::placeholder,
body.app-body .inventory-filter-form input::placeholder {
    color: #66768a !important;
    -webkit-text-fill-color: #66768a !important;
    opacity: 1 !important;
}

body.app-body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):focus,
body.app-body select:focus,
body.app-body textarea:focus,
body.app-body .search-box input:focus,
body.app-body .quick-search-form input:focus,
body.app-body .inventory-filter-form input:focus,
body.app-body .inventory-filter-form select:focus {
    border-color: var(--pro-blue) !important;
    background: #ffffff !important;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    outline: 0 !important;
    box-shadow:
        0 0 0 3px rgba(22,95,167,0.16),
        inset 0 1px 0 rgba(255,255,255,0.92) !important;
}

body.app-body input:-webkit-autofill,
body.app-body input:-webkit-autofill:hover,
body.app-body input:-webkit-autofill:focus,
body.app-body textarea:-webkit-autofill,
body.app-body select:-webkit-autofill {
    border-color: #c7d2e1 !important;
    box-shadow: 0 0 0 1000px #ffffff inset !important;
    -webkit-box-shadow: 0 0 0 1000px #ffffff inset !important;
    -webkit-text-fill-color: #111827 !important;
    caret-color: var(--pro-red) !important;
}

body.app-body option {
    background: #ffffff;
    color: #111827;
}

body.app-body input[readonly],
body.app-body textarea[readonly] {
    background: #f5f7fb !important;
    color: #273449 !important;
    -webkit-text-fill-color: #273449 !important;
}

body.app-body .search-box,
body.app-body .quick-search-form,
body.app-body .inventory-filter-form .grid-3 {
    background: #f8fafc !important;
}

/* Navigation and dashboard header polish */
body.app-body {
    --nav-bg: #0b1119;
    --nav-bg-2: #111a25;
    --nav-panel: #151e29;
    --nav-panel-2: #1b2634;
    --nav-border: rgba(226,232,240,0.14);
    --nav-text: #eef3f8;
    --nav-muted: #9ba7b6;
    --brand-red: #d7192f;
    --brand-red-dark: #a91223;
}

body.app-body .sidebar {
    width: 286px;
    padding: 18px 14px;
    border-right: 1px solid rgba(15,23,42,0.18);
    background:
        linear-gradient(180deg, rgba(215,25,47,0.12), transparent 220px),
        linear-gradient(180deg, var(--nav-bg-2), var(--nav-bg));
    box-shadow: 10px 0 28px rgba(15,23,42,0.18);
}

body.app-body .logo-home-link {
    min-height: 128px;
    margin-bottom: 20px;
    padding: 20px 18px 16px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 14px;
    border: 1px solid var(--nav-border);
    border-radius: 10px;
    background:
        linear-gradient(145deg, rgba(255,255,255,0.08), rgba(255,255,255,0.025)),
        #161e28;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.08),
        0 18px 34px rgba(0,0,0,0.18);
}

body.app-body .logo-home-link::before,
body.app-body .logo-home-link::after,
body.app-body .logo::after {
    content: none !important;
    display: none !important;
}

body.app-body .logo-home-link:hover,
body.app-body .logo-home-link:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(215,25,47,0.45);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.10),
        0 20px 40px rgba(0,0,0,0.22);
}

body.app-body .sidebar .brand-lockup {
    display: block;
    line-height: 1;
}

body.app-body .sidebar .brand-logo-wordmark-dashboard {
    width: min(176px, 100%);
    filter: invert(1) brightness(2.2) contrast(1.05);
    opacity: 0.98;
}

body.app-body .logo-sub {
    width: fit-content;
    padding: 5px 8px;
    border: 1px solid rgba(255,255,255,0.10);
    border-radius: 999px;
    background: rgba(255,255,255,0.06);
    color: rgba(238,243,248,0.72);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.7px;
}

body.app-body .menu-title {
    margin: 0 8px 10px;
    color: var(--nav-muted);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.08em;
}

body.app-body .menu {
    gap: 6px;
}

body.app-body .menu a {
    position: relative;
    min-height: 50px;
    padding: 8px 10px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: transparent;
    color: rgba(238,243,248,0.80);
    font-size: 14px;
    font-weight: 850;
    gap: 12px;
    transform: none;
    box-shadow: none;
}

body.app-body .menu a::before {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    bottom: 9px;
    width: 3px;
    border-radius: 0 999px 999px 0;
    background: var(--brand-red);
    opacity: 0;
}

body.app-body .menu a::after {
    content: none !important;
    display: none !important;
}

body.app-body .menu a:hover,
body.app-body .menu a.active {
    transform: none;
    border-color: rgba(226,232,240,0.12);
    background: var(--nav-panel);
    color: #ffffff;
}

body.app-body .menu a.active {
    background:
        linear-gradient(90deg, rgba(215,25,47,0.18), transparent 58%),
        var(--nav-panel);
}

body.app-body .menu a:hover::before,
body.app-body .menu a.active::before {
    opacity: 1;
}

body.app-body .menu a > span:last-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.app-body .nav-mark {
    width: 34px;
    height: 34px;
    border: 1px solid rgba(226,232,240,0.14);
    border-radius: 9px;
    background: rgba(255,255,255,0.055);
    color: rgba(238,243,248,0.82);
}

body.app-body .nav-icon {
    width: 17px;
    height: 17px;
    stroke-width: 1.9;
    filter: none;
}

body.app-body .menu a:hover .nav-mark,
body.app-body .menu a.active .nav-mark {
    border-color: rgba(215,25,47,0.62);
    background: linear-gradient(180deg, #ef3348, var(--brand-red-dark));
    color: #ffffff;
}

body.app-body .menu a:hover .nav-icon,
body.app-body .menu a.active .nav-icon {
    transform: none;
    filter: none;
}

body.app-body .creator-box {
    margin-top: 18px;
    padding: 16px 14px;
    border: 1px solid var(--nav-border);
    border-radius: 10px;
    background:
        linear-gradient(145deg, rgba(255,255,255,0.075), rgba(255,255,255,0.025)),
        #141c26;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.07);
}

body.app-body .creator-box .small,
body.app-body .creator-box .version {
    color: var(--nav-muted);
    font-size: 12px;
}

body.app-body .creator-box .name {
    margin: 8px 0 6px;
    color: #ffffff;
    font-size: 17px;
    line-height: 1.2;
}

body.app-body .topbar {
    min-height: 104px;
    padding: 22px 24px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    border: 1px solid #dfe6ef;
    border-left: 4px solid var(--brand-red);
    border-radius: 10px;
    background:
        linear-gradient(135deg, rgba(255,255,255,0.96), rgba(248,250,252,0.92)),
        #ffffff;
    box-shadow: 0 16px 34px rgba(15,23,42,0.08);
    overflow: visible;
}

body.app-body .topbar::before,
body.app-body .topbar::after {
    content: none !important;
    display: none !important;
}

body.app-body .topbar h1 {
    gap: 12px;
    color: #101828;
    font-size: clamp(31px, 3vw, 42px);
    line-height: 1;
}

body.app-body .topbar h1::before {
    content: "";
    display: block;
    flex: 0 0 auto;
    width: 6px;
    height: 38px;
    border: 0;
    border-radius: 999px;
    background: var(--brand-red);
    box-shadow: none;
}

body.app-body.page-dashboard .topbar h1::before {
    content: none !important;
    display: none !important;
}

body.app-body .subtitle {
    margin-top: 9px;
    color: #536174;
    font-size: 14px;
}

body.app-body.page-dashboard .subtitle {
    margin-left: 0;
}

body.app-body .dashboard-title-wrap {
    gap: 20px;
    align-items: center;
}

body.app-body .dashboard-title-logo-shell {
    width: 148px;
    height: 58px;
    min-height: 58px;
    padding: 0 16px;
    border: 1px solid #111827;
    border-radius: 10px;
    background:
        linear-gradient(145deg, rgba(255,255,255,0.08), rgba(255,255,255,0.02)),
        #0e1117;
    box-shadow: 0 14px 28px rgba(15,23,42,0.16);
}

body.app-body .dashboard-title-logo-shell::after {
    content: none !important;
    display: none !important;
}

body.app-body .dashboard-title-logo {
    width: 100%;
    max-height: 34px;
    object-fit: contain;
    filter: invert(1) brightness(2.2) contrast(1.05);
    opacity: 0.98;
}

body.app-body .page-actions,
body.app-body .dashboard-actions {
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

body.app-body .topbar .btn {
    min-height: 44px;
    padding: 11px 16px;
    border-radius: 8px;
}

body.app-body .topbar .btn-primary {
    border-color: var(--brand-red);
    background: linear-gradient(180deg, #ef3348, var(--brand-red));
    box-shadow: 0 14px 24px rgba(215,25,47,0.24);
}

body.app-body .topbar .btn-secondary {
    border-color: #cdd6e3;
    background: #ffffff;
    color: #1d2939;
}

body.app-body .topbar .btn-secondary:hover {
    border-color: rgba(22,95,167,0.38);
    background: #f5f8fc;
    color: var(--pro-blue);
}

@media (max-width: 980px) {
    body.app-body .sidebar {
        width: 100%;
        padding: 14px;
    }

    body.app-body .logo-home-link {
        min-height: auto;
    }

    body.app-body .menu {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    body.app-body .topbar {
        grid-template-columns: 1fr;
        padding: 18px;
    }

    body.app-body .dashboard-title-wrap {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
    }

    body.app-body .dashboard-title-logo-shell {
        width: 136px;
        height: 52px;
        min-height: 52px;
    }

    body.app-body .page-actions,
    body.app-body .dashboard-actions {
        justify-content: flex-start;
    }
}

/* Sidebar logo card refinement */
body.app-body .sidebar .logo-home-link {
    position: relative;
    min-height: 126px;
    padding: 18px;
    align-items: flex-start;
    justify-content: center;
    gap: 12px;
    overflow: hidden;
    border-color: rgba(215,25,47,0.34);
    background:
        radial-gradient(circle at 18% 18%, rgba(255,255,255,0.105), transparent 34%),
        linear-gradient(145deg, rgba(255,255,255,0.070), rgba(255,255,255,0.018)),
        #171f2a;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.09),
        inset 0 -1px 0 rgba(0,0,0,0.22),
        0 18px 34px rgba(0,0,0,0.18);
}

body.app-body .sidebar .logo-home-link::after {
    content: "" !important;
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 13px;
    display: block !important;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(215,25,47,0.95), rgba(215,25,47,0.12), transparent);
}

body.app-body .sidebar .brand-lockup {
    width: 100%;
}

body.app-body .sidebar .brand-logo-wordmark-dashboard {
    width: min(166px, 100%) !important;
    max-height: 62px;
    object-fit: contain;
    filter:
        invert(1)
        brightness(2.16)
        contrast(1.06)
        drop-shadow(0 10px 18px rgba(0,0,0,0.18));
}

body.app-body .sidebar .logo-sub {
    position: relative;
    z-index: 1;
    margin-top: 0;
    padding: 5px 10px;
    border-color: rgba(255,255,255,0.13);
    background: rgba(255,255,255,0.070);
    color: rgba(248,250,252,0.78);
    font-size: 9px;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.app-body .sidebar .logo-home-link:hover,
body.app-body .sidebar .logo-home-link:focus-visible {
    border-color: rgba(215,25,47,0.52);
    background:
        radial-gradient(circle at 18% 18%, rgba(255,255,255,0.13), transparent 34%),
        linear-gradient(145deg, rgba(255,255,255,0.086), rgba(255,255,255,0.024)),
        #182231;
}

/* Invy brand palette rebuild - pos-login */
body.app-body {
    --invy-authority: #13171F;
    --invy-maturity: #2D363E;
    --invy-sophistication: #B5A595;
    --invy-elegance: #D3C7BA;
    --invy-versatility: #A7A7A7;
    --invy-neutrality: #EFECEA;
    --invy-balance: #F2F2F2;
    --invy-white: #ffffff;
    --invy-text: #13171F;
    --invy-muted: #5b646d;
    --invy-line: #d8d0c7;
    --invy-line-strong: #c4b8ab;
    --invy-shadow: 0 18px 42px rgba(19,23,31,0.10);
    --invy-shadow-soft: 0 10px 24px rgba(19,23,31,0.075);
    --invy-radius: 9px;
    --pro-text: var(--invy-text);
    --pro-muted: var(--invy-muted);
    --pro-blue: var(--invy-maturity);
    --pro-red: var(--invy-authority);
    --pro-red-dark: #0d1118;
    --brand-red: var(--invy-sophistication);
    --brand-red-dark: #8f7f70;
    min-height: 100vh;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.42), transparent 220px),
        linear-gradient(135deg, var(--invy-balance) 0%, var(--invy-neutrality) 52%, #e8e3dc 100%);
    color: var(--invy-text);
}

body.app-body::before,
body.app-body::after {
    content: none !important;
    display: none !important;
}

body.app-body .layout {
    min-height: 100vh;
    background: transparent;
}

body.app-body .content {
    padding: 26px 30px 34px;
    color: var(--invy-text);
}

body.app-body .sidebar {
    width: 286px;
    padding: 18px 14px;
    border-right: 1px solid rgba(255,255,255,0.08);
    background:
        linear-gradient(180deg, rgba(181,165,149,0.14), transparent 260px),
        linear-gradient(180deg, var(--invy-authority) 0%, #0d1118 100%);
    box-shadow: 12px 0 32px rgba(19,23,31,0.18);
}

body.app-body .sidebar .logo-home-link {
    min-height: 122px;
    padding: 19px 18px;
    gap: 13px;
    align-items: flex-start;
    justify-content: center;
    border: 1px solid rgba(239,236,234,0.16);
    border-radius: var(--invy-radius);
    background:
        linear-gradient(145deg, rgba(239,236,234,0.10), rgba(239,236,234,0.025)),
        var(--invy-maturity);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.10),
        0 16px 30px rgba(0,0,0,0.20);
}

body.app-body .sidebar .logo-home-link::before,
body.app-body .sidebar .logo-home-link::after,
body.app-body .sidebar .logo::before,
body.app-body .sidebar .logo::after {
    content: none !important;
    display: none !important;
    background: none !important;
}

body.app-body .sidebar .brand-logo-wordmark-dashboard {
    width: min(164px, 100%) !important;
    max-height: 60px;
    filter:
        invert(1)
        brightness(2.15)
        contrast(1.04)
        drop-shadow(0 10px 18px rgba(0,0,0,0.18));
    opacity: 0.98;
}

body.app-body .sidebar .logo-sub {
    padding: 5px 10px;
    border: 1px solid rgba(239,236,234,0.18);
    border-radius: 999px;
    background: rgba(239,236,234,0.08);
    color: rgba(239,236,234,0.82);
    font-size: 9px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.08em;
}

body.app-body .menu-title {
    margin: 0 8px 10px;
    color: rgba(239,236,234,0.66);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.09em;
}

body.app-body .menu {
    gap: 6px;
}

body.app-body .menu a {
    min-height: 50px;
    padding: 8px 10px;
    gap: 12px;
    border: 1px solid transparent;
    border-radius: var(--invy-radius);
    background: transparent;
    color: rgba(239,236,234,0.78);
    font-size: 14px;
    font-weight: 850;
    transform: none;
    box-shadow: none;
}

body.app-body .menu a::before {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    bottom: 9px;
    width: 3px;
    border-radius: 0 999px 999px 0;
    background: var(--invy-sophistication);
    opacity: 0;
}

body.app-body .menu a::after {
    content: none !important;
    display: none !important;
}

body.app-body .menu a:hover,
body.app-body .menu a.active {
    border-color: rgba(239,236,234,0.14);
    background:
        linear-gradient(90deg, rgba(181,165,149,0.17), transparent 64%),
        rgba(239,236,234,0.055);
    color: #ffffff;
    transform: none;
}

body.app-body .menu a:hover::before,
body.app-body .menu a.active::before {
    opacity: 1;
}

body.app-body .menu a > span:last-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.app-body .nav-mark {
    width: 34px;
    height: 34px;
    border: 1px solid rgba(239,236,234,0.16);
    border-radius: 8px;
    background: rgba(239,236,234,0.07);
    color: rgba(239,236,234,0.82);
}

body.app-body .nav-icon {
    width: 17px;
    height: 17px;
    stroke-width: 1.9;
    filter: none;
}

body.app-body .menu a:hover .nav-mark,
body.app-body .menu a.active .nav-mark {
    border-color: rgba(211,199,186,0.78);
    background: var(--invy-sophistication);
    color: var(--invy-authority);
}

body.app-body .menu a:hover .nav-icon,
body.app-body .menu a.active .nav-icon {
    transform: none;
    filter: none;
}

body.app-body .creator-box {
    margin-top: 18px;
    padding: 16px 14px;
    border: 1px solid rgba(239,236,234,0.15);
    border-radius: var(--invy-radius);
    background:
        linear-gradient(145deg, rgba(239,236,234,0.09), rgba(239,236,234,0.025)),
        #171d25;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.07);
}

body.app-body .creator-box .small,
body.app-body .creator-box .version {
    color: rgba(239,236,234,0.64);
    font-size: 12px;
}

body.app-body .creator-box .name {
    margin: 8px 0 6px;
    color: #ffffff;
    font-size: 17px;
    line-height: 1.2;
}

body.app-body .workspace-bar,
body.app-body .topbar,
body.app-body .panel,
body.app-body .stat-box,
body.app-body .equipment-result-card,
body.app-body .history-card,
body.app-body .thumb-card,
body.app-body .result-grid div,
body.app-body .history-grid > div,
body.app-body .owner-card,
body.app-body .owner-date,
body.app-body .status-row,
body.app-body .insight-row,
body.app-body .empty-state,
body.app-body .security-callout {
    border: 1px solid var(--invy-line);
    border-radius: var(--invy-radius);
    background: rgba(255,255,255,0.74);
    color: var(--invy-text);
    box-shadow: var(--invy-shadow-soft);
}

body.app-body .workspace-bar {
    background: rgba(239,236,234,0.74);
    color: var(--invy-muted);
}

body.app-body .workspace-user strong {
    border-color: var(--invy-line);
    background: var(--invy-neutrality);
    color: var(--invy-authority);
}

body.app-body .workspace-dot {
    background: var(--invy-sophistication);
    box-shadow: 0 0 0 5px rgba(181,165,149,0.18);
}

body.app-body .topbar {
    min-height: 104px;
    padding: 22px 24px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    border-left: 5px solid var(--invy-authority);
    background:
        linear-gradient(135deg, rgba(255,255,255,0.84), rgba(239,236,234,0.78)),
        var(--invy-neutrality);
    box-shadow: var(--invy-shadow);
    overflow: visible;
}

body.app-body .topbar::before,
body.app-body .topbar::after,
body.app-body .panel::before,
body.app-body .panel::after,
body.app-body .equipment-result-card::before,
body.app-body .equipment-result-card::after,
body.app-body .history-card::before,
body.app-body .history-card::after,
body.app-body .stat-box::after {
    content: none !important;
    display: none !important;
}

body.app-body .topbar h1 {
    gap: 12px;
    color: var(--invy-authority);
    font-size: clamp(31px, 3vw, 42px);
    line-height: 1;
}

body.app-body .topbar h1::before {
    content: "";
    width: 6px;
    height: 38px;
    border: 0;
    border-radius: 999px;
    background: var(--invy-sophistication);
}

body.app-body.page-dashboard .topbar h1::before {
    content: none !important;
    display: none !important;
}

body.app-body .subtitle,
body.app-body .table-note,
body.app-body .section-note,
body.app-body .field-hint,
body.app-body .muted,
body.app-body .stat-box p,
body.app-body .result-grid span,
body.app-body .equipment-result-head p,
body.app-body .owner-meta,
body.app-body .owner-period,
body.app-body .owner-dates,
body.app-body .owner-event,
body.app-body .owner-date span,
body.app-body .status-row span,
body.app-body .insight-row span,
body.app-body .empty-state,
body.app-body .security-callout span {
    color: var(--invy-muted);
}

body.app-body .dashboard-title-wrap {
    gap: 20px;
    align-items: center;
}

body.app-body .dashboard-title-logo-shell {
    width: 148px;
    height: 58px;
    min-height: 58px;
    padding: 0 16px;
    border: 1px solid var(--invy-authority);
    border-radius: var(--invy-radius);
    background:
        linear-gradient(145deg, rgba(239,236,234,0.08), rgba(239,236,234,0.02)),
        var(--invy-authority);
    box-shadow: 0 14px 28px rgba(19,23,31,0.14);
}

body.app-body .dashboard-title-logo-shell::after {
    content: none !important;
    display: none !important;
}

body.app-body .dashboard-title-logo {
    width: 100%;
    max-height: 34px;
    object-fit: contain;
    filter: invert(1) brightness(2.16) contrast(1.04);
    opacity: 0.98;
}

body.app-body .panel,
body.app-body .equipment-result-card,
body.app-body .history-card {
    padding: 22px;
    background: rgba(255,255,255,0.82);
}

body.app-body .panel:hover,
body.app-body .equipment-result-card:hover,
body.app-body .history-card:hover {
    transform: translateY(-1px);
    border-color: var(--invy-line-strong);
    box-shadow: var(--invy-shadow);
}

body.app-body .section-title {
    color: var(--invy-authority);
    font-size: 16px;
    letter-spacing: 0;
}

body.app-body .section-title::before {
    width: 4px;
    border-radius: 999px;
    background: var(--invy-sophistication);
}

body.app-body .stat-box {
    min-height: 116px;
    padding: 22px 22px 20px 24px;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.80), rgba(239,236,234,0.76)),
        var(--invy-neutrality);
}

body.app-body .stat-box::before {
    inset: 18px auto 18px 0;
    width: 4px;
    height: auto;
    border-radius: 0 999px 999px 0;
    background: var(--invy-sophistication);
    opacity: 1;
}

body.app-body .stat-box h3,
body.app-body .stat-box.accent-blue h3,
body.app-body .stat-box.accent-green h3,
body.app-body .stat-box.accent-amber h3,
body.app-body .stats .stat-box:nth-child(2) h3,
body.app-body .stats .stat-box:nth-child(3) h3,
body.app-body .stats .stat-box:nth-child(4) h3,
body.app-body .insight-row strong,
body.app-body .status-row strong,
body.app-body .owner-date strong,
body.app-body .owner-main strong,
body.app-body .history-grid strong,
body.app-body .history-head strong,
body.app-body .result-grid strong,
body.app-body .equipment-result-head h2 {
    color: var(--invy-authority);
    font-variant-numeric: tabular-nums;
}

body.app-body .stats .stat-box:nth-child(2)::before,
body.app-body .stat-box.accent-blue::before {
    background: var(--invy-maturity);
}

body.app-body .stats .stat-box:nth-child(3)::before,
body.app-body .stat-box.accent-green::before {
    background: var(--invy-sophistication);
}

body.app-body .stats .stat-box:nth-child(4)::before,
body.app-body .stat-box.accent-amber::before {
    background: var(--invy-versatility);
}

body.app-body .btn,
body.app-body button {
    border-radius: var(--invy-radius);
    font-weight: 850;
    letter-spacing: 0;
}

body.app-body .btn::after,
body.app-body button::after {
    content: none !important;
    display: none !important;
}

body.app-body .btn-primary {
    border-color: var(--invy-authority);
    background: linear-gradient(180deg, var(--invy-maturity), var(--invy-authority));
    color: #ffffff;
    box-shadow: 0 12px 22px rgba(19,23,31,0.18);
}

body.app-body .btn-primary:hover {
    background: var(--invy-authority);
    color: #ffffff;
}

body.app-body .btn-secondary,
body.app-body .btn-outline {
    border-color: var(--invy-line);
    background: #ffffff;
    color: var(--invy-authority);
}

body.app-body .btn-secondary:hover,
body.app-body .btn-outline:hover {
    border-color: var(--invy-sophistication);
    background: var(--invy-neutrality);
    color: var(--invy-authority);
}

body.app-body .btn-danger {
    border-color: var(--invy-authority);
    background: var(--invy-authority);
    color: #ffffff;
}

body.app-body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
body.app-body select,
body.app-body textarea {
    border: 1px solid var(--invy-line) !important;
    border-radius: var(--invy-radius) !important;
    background: #ffffff !important;
    color: var(--invy-authority) !important;
    caret-color: var(--invy-authority) !important;
    -webkit-text-fill-color: var(--invy-authority) !important;
}

body.app-body input::placeholder,
body.app-body textarea::placeholder {
    color: #757f89 !important;
    -webkit-text-fill-color: #757f89 !important;
    opacity: 1 !important;
}

body.app-body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):focus,
body.app-body select:focus,
body.app-body textarea:focus {
    border-color: var(--invy-maturity) !important;
    box-shadow: 0 0 0 3px rgba(45,54,62,0.12) !important;
}

body.app-body .search-box,
body.app-body .quick-search-form,
body.app-body .inventory-filter-form .grid-3,
body.app-body .form-panel .grid,
body.app-body .form-panel .grid-2,
body.app-body .form-panel .grid-3 {
    border-color: var(--invy-line);
    background: rgba(239,236,234,0.54) !important;
}

body.app-body .table-wrap {
    border: 1px solid var(--invy-line);
    border-radius: var(--invy-radius);
    background: #ffffff;
    box-shadow: var(--invy-shadow-soft);
}

body.app-body table {
    background: #ffffff;
}

body.app-body th {
    border-bottom: 1px solid var(--invy-line);
    background: var(--invy-neutrality);
    color: var(--invy-authority);
}

body.app-body td,
body.app-body tbody tr:nth-child(even) td,
body.app-body td:last-child {
    border-bottom: 1px solid var(--invy-line-soft, #e8e1d9);
    background: #ffffff;
    color: var(--invy-authority);
}

body.app-body tbody tr:nth-child(even) td {
    background: #faf9f7;
}

body.app-body tbody tr:hover td,
body.app-body tbody tr:hover td:last-child {
    background: #f3f0ec;
}

body.app-body .asset-code,
body.app-body .service-code,
body.app-body .equipment-link {
    color: var(--invy-authority);
    font-weight: 900;
}

body.app-body .equipment-link:hover,
body.app-body .asset-code:hover {
    color: var(--invy-maturity);
}

body.app-body .status-pill,
body.app-body .badge,
body.app-body .photo-action-badge {
    border: 1px solid var(--invy-line);
    border-radius: 999px;
    background: var(--invy-neutrality);
    color: var(--invy-authority);
}

body.app-body .status-row,
body.app-body .insight-row,
body.app-body .result-grid div,
body.app-body .history-grid > div,
body.app-body .owner-date {
    border-color: var(--invy-line);
    background: rgba(239,236,234,0.58);
}

body.app-body .status-row strong,
body.app-body .insight-row strong {
    min-width: 42px;
    padding: 4px 9px;
    border: 1px solid var(--invy-line);
    border-radius: 999px;
    background: #ffffff;
    text-align: center;
}

body.app-body .owner-card.is-current {
    border-color: var(--invy-sophistication);
    background: rgba(211,199,186,0.36);
}

body.app-body .pagination-link,
body.app-body .pagination-page,
body.app-body .pagination-gap {
    border-color: var(--invy-line);
    background: #ffffff;
    color: var(--invy-authority);
}

body.app-body .pagination-page.is-active {
    border-color: var(--invy-authority);
    background: var(--invy-authority);
    color: #ffffff;
}

body.app-body .pagination-link:not(.is-disabled):hover,
body.app-body .pagination-page:not(.is-active):hover {
    border-color: var(--invy-sophistication);
    background: var(--invy-neutrality);
    color: var(--invy-authority);
}

body.app-body .equipment-form .form-section,
body.app-body .equipment-form .form-section[open] {
    border-color: var(--invy-line);
    background: rgba(255,255,255,0.78);
    box-shadow: var(--invy-shadow-soft);
}

body.app-body .equipment-form .form-section > summary,
body.app-body .equipment-form .form-section[open] > summary {
    background: var(--invy-neutrality);
    color: var(--invy-authority);
}

body.app-body .equipment-form .form-section > summary::before {
    background: var(--invy-sophistication);
    box-shadow: none;
}

@media (max-width: 980px) {
    body.app-body .sidebar {
        width: 100%;
    }

    body.app-body .menu {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    body.app-body .content {
        padding: 14px;
    }

    body.app-body .topbar {
        grid-template-columns: 1fr;
        padding: 18px;
    }

    body.app-body .dashboard-title-wrap {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
    }

    body.app-body .dashboard-title-logo-shell {
        width: 136px;
        height: 52px;
        min-height: 52px;
    }
}

/* Invy executive theme - visual pos-login mais vivo */
body.app-body {
    --exec-ink: #13171F;
    --exec-navy: #202a35;
    --exec-blue: #2D363E;
    --exec-taupe: #B5A595;
    --exec-sand: #D3C7BA;
    --exec-stone: #A7A7A7;
    --exec-paper: #F2F2F2;
    --exec-soft: #EFECEA;
    --exec-red: #D7192F;
    --exec-red-dark: #A81224;
    --exec-text: #101723;
    --exec-muted: #556271;
    --exec-line: #d7dce3;
    --exec-shadow: 0 18px 42px rgba(19,23,31,0.12);
    --exec-shadow-soft: 0 10px 24px rgba(19,23,31,0.08);
    --invy-authority: var(--exec-ink);
    --invy-maturity: var(--exec-blue);
    --invy-sophistication: var(--exec-taupe);
    --invy-elegance: var(--exec-sand);
    --invy-neutrality: var(--exec-soft);
    --invy-balance: var(--exec-paper);
    --pro-text: var(--exec-text);
    --pro-muted: var(--exec-muted);
    --pro-blue: var(--exec-blue);
    --pro-red: var(--exec-red);
    --brand-red: var(--exec-red);
    --brand-red-dark: var(--exec-red-dark);
    background:
        radial-gradient(circle at 17% 0%, rgba(215,25,47,0.10), transparent 24%),
        radial-gradient(circle at 92% 4%, rgba(181,165,149,0.30), transparent 28%),
        linear-gradient(180deg, #f7f7f6 0%, #ece7e2 100%);
    color: var(--exec-text);
}

body.app-body .content {
    padding: 28px 32px 36px;
}

body.app-body .sidebar {
    width: 292px;
    padding: 18px 14px;
    border-right: 1px solid rgba(255,255,255,0.12);
    background:
        linear-gradient(180deg, rgba(215,25,47,0.18), transparent 235px),
        linear-gradient(160deg, #1e2732 0%, #13171F 56%, #0c1017 100%);
    box-shadow:
        16px 0 40px rgba(19,23,31,0.22),
        inset -1px 0 0 rgba(255,255,255,0.06);
}

body.app-body .sidebar .logo-home-link {
    min-height: 134px;
    padding: 20px 18px;
    border: 1px solid rgba(239,236,234,0.22);
    border-radius: 10px;
    background:
        radial-gradient(circle at 12% 10%, rgba(255,255,255,0.16), transparent 28%),
        linear-gradient(135deg, rgba(215,25,47,0.18), transparent 44%),
        linear-gradient(145deg, #313c47, #1a222c);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.16),
        0 20px 34px rgba(0,0,0,0.26);
}

body.app-body .sidebar .logo-home-link::before,
body.app-body .sidebar .logo-home-link::after,
body.app-body .sidebar .logo::before,
body.app-body .sidebar .logo::after {
    content: none !important;
    display: none !important;
}

body.app-body .sidebar .brand-logo-wordmark-dashboard {
    width: min(172px, 100%) !important;
    max-height: 66px;
    filter:
        invert(1)
        brightness(2.28)
        contrast(1.06)
        drop-shadow(0 10px 16px rgba(0,0,0,0.25));
}

body.app-body .sidebar .logo-sub {
    padding: 6px 11px;
    border: 1px solid rgba(255,255,255,0.22);
    background: rgba(239,236,234,0.12);
    color: rgba(255,255,255,0.86);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.06em;
}

body.app-body .menu-title {
    margin: 20px 8px 10px;
    color: rgba(239,236,234,0.72);
}

body.app-body .menu {
    gap: 7px;
}

body.app-body .menu a {
    min-height: 50px;
    padding: 8px 10px;
    border-radius: 10px;
    color: rgba(239,236,234,0.76);
    font-size: 14px;
    font-weight: 850;
    letter-spacing: 0;
}

body.app-body .menu a::before {
    background: var(--exec-red);
}

body.app-body .menu a:hover,
body.app-body .menu a.active {
    border-color: rgba(255,255,255,0.16);
    background:
        linear-gradient(90deg, rgba(215,25,47,0.20), rgba(181,165,149,0.07) 70%),
        rgba(255,255,255,0.070);
    color: #ffffff;
}

body.app-body .menu a.active {
    box-shadow:
        inset 3px 0 0 var(--exec-red),
        0 10px 22px rgba(0,0,0,0.18);
}

body.app-body .nav-mark {
    width: 34px;
    height: 34px;
    border-color: rgba(255,255,255,0.16);
    background: rgba(255,255,255,0.075);
    color: rgba(239,236,234,0.84);
}

body.app-body .menu a:hover .nav-mark,
body.app-body .menu a.active .nav-mark {
    border-color: rgba(215,25,47,0.88);
    background: linear-gradient(180deg, #f02b42, var(--exec-red-dark));
    color: #ffffff;
}

body.app-body .creator-box {
    border-color: rgba(255,255,255,0.16);
    background:
        linear-gradient(135deg, rgba(181,165,149,0.14), rgba(255,255,255,0.035)),
        #1b242e;
}

body.app-body .creator-box .small,
body.app-body .creator-box .version {
    color: rgba(239,236,234,0.70);
}

body.app-body .creator-box .name {
    color: #ffffff;
}

body.app-body .workspace-bar,
body.app-body .topbar,
body.app-body .panel,
body.app-body .stat-box,
body.app-body .equipment-result-card,
body.app-body .history-card,
body.app-body .thumb-card,
body.app-body .result-grid div,
body.app-body .history-grid > div,
body.app-body .owner-card,
body.app-body .owner-date,
body.app-body .status-row,
body.app-body .insight-row,
body.app-body .empty-state,
body.app-body .security-callout {
    border-color: rgba(19,23,31,0.12);
    background: rgba(255,255,255,0.88);
    color: var(--exec-text);
    box-shadow: var(--exec-shadow-soft);
}

body.app-body .workspace-bar {
    background:
        linear-gradient(90deg, rgba(19,23,31,0.96), rgba(45,54,62,0.92));
    border-color: rgba(255,255,255,0.14);
    color: rgba(255,255,255,0.78);
}

body.app-body .workspace-user strong {
    border-color: rgba(181,165,149,0.48);
    background: rgba(181,165,149,0.16);
    color: #ffffff;
}

body.app-body .workspace-dot {
    background: #42d392;
    box-shadow: 0 0 0 5px rgba(66,211,146,0.14);
}

body.app-body .topbar {
    min-height: 112px;
    padding: 24px 26px;
    border: 1px solid rgba(19,23,31,0.12);
    border-left: 6px solid var(--exec-red);
    border-radius: 10px;
    background:
        linear-gradient(135deg, rgba(255,255,255,0.96), rgba(239,236,234,0.88)),
        #ffffff;
    box-shadow: var(--exec-shadow);
}

body.app-body .topbar h1 {
    color: var(--exec-ink);
    font-size: clamp(32px, 3vw, 44px);
}

body.app-body .topbar h1::before {
    background: var(--exec-red);
}

body.app-body.page-dashboard .topbar h1::before {
    content: none !important;
    display: none !important;
}

body.app-body .subtitle {
    color: var(--exec-muted);
}

body.app-body .dashboard-title-logo-shell {
    width: 152px;
    height: 60px;
    border-color: var(--exec-ink);
    background:
        linear-gradient(135deg, rgba(215,25,47,0.18), transparent 46%),
        var(--exec-ink);
    box-shadow: 0 16px 28px rgba(19,23,31,0.20);
}

body.app-body .dashboard-title-logo {
    filter: invert(1) brightness(2.25) contrast(1.05);
}

body.app-body .section-title {
    color: var(--exec-ink);
}

body.app-body .section-title::before {
    background: var(--exec-red);
}

body.app-body .panel,
body.app-body .equipment-result-card,
body.app-body .history-card {
    background: rgba(255,255,255,0.92);
}

body.app-body .panel:hover,
body.app-body .equipment-result-card:hover,
body.app-body .history-card:hover {
    border-color: rgba(181,165,149,0.56);
    box-shadow: var(--exec-shadow);
}

body.app-body .stat-box {
    background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(239,236,234,0.82)),
        #ffffff;
    border-color: rgba(19,23,31,0.12);
}

body.app-body .stat-box::before {
    background: var(--exec-red);
}

body.app-body .stats .stat-box:nth-child(2)::before,
body.app-body .stat-box.accent-blue::before {
    background: var(--exec-blue);
}

body.app-body .stats .stat-box:nth-child(3)::before,
body.app-body .stat-box.accent-green::before {
    background: #2f8f68;
}

body.app-body .stats .stat-box:nth-child(4)::before,
body.app-body .stat-box.accent-amber::before {
    background: var(--exec-taupe);
}

body.app-body .stat-box h3,
body.app-body .stat-box.accent-blue h3,
body.app-body .stat-box.accent-green h3,
body.app-body .stat-box.accent-amber h3,
body.app-body .stats .stat-box:nth-child(2) h3,
body.app-body .stats .stat-box:nth-child(3) h3,
body.app-body .stats .stat-box:nth-child(4) h3,
body.app-body .insight-row strong,
body.app-body .status-row strong,
body.app-body .owner-date strong,
body.app-body .owner-main strong,
body.app-body .history-grid strong,
body.app-body .history-head strong,
body.app-body .result-grid strong,
body.app-body .equipment-result-head h2 {
    color: var(--exec-ink);
}

body.app-body .stat-box p,
body.app-body .result-grid span,
body.app-body .equipment-result-head p,
body.app-body .owner-meta,
body.app-body .owner-period,
body.app-body .owner-dates,
body.app-body .owner-event,
body.app-body .owner-date span,
body.app-body .status-row span,
body.app-body .insight-row span,
body.app-body .empty-state,
body.app-body .security-callout span,
body.app-body .table-note,
body.app-body .section-note,
body.app-body .field-hint,
body.app-body .muted {
    color: var(--exec-muted);
}

body.app-body .btn-primary {
    border-color: var(--exec-red);
    background: linear-gradient(180deg, #f02b42, var(--exec-red-dark));
    color: #ffffff;
    box-shadow: 0 14px 24px rgba(215,25,47,0.24);
}

body.app-body .btn-primary:hover {
    background: var(--exec-red);
}

body.app-body .btn-secondary,
body.app-body .btn-outline {
    border-color: rgba(19,23,31,0.18);
    background: #ffffff;
    color: var(--exec-ink);
}

body.app-body .btn-secondary:hover,
body.app-body .btn-outline:hover {
    border-color: var(--exec-taupe);
    background: var(--exec-soft);
    color: var(--exec-ink);
}

body.app-body .btn-danger {
    border-color: var(--exec-red-dark);
    background: var(--exec-red-dark);
}

body.app-body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
body.app-body select,
body.app-body textarea {
    border-color: rgba(19,23,31,0.18) !important;
    background: #ffffff !important;
    color: var(--exec-ink) !important;
    caret-color: var(--exec-red) !important;
    -webkit-text-fill-color: var(--exec-ink) !important;
}

body.app-body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):focus,
body.app-body select:focus,
body.app-body textarea:focus {
    border-color: var(--exec-red) !important;
    box-shadow: 0 0 0 3px rgba(215,25,47,0.14) !important;
}

body.app-body .search-box,
body.app-body .quick-search-form,
body.app-body .inventory-filter-form .grid-3,
body.app-body .form-panel .grid,
body.app-body .form-panel .grid-2,
body.app-body .form-panel .grid-3 {
    border-color: rgba(19,23,31,0.10);
    background: rgba(239,236,234,0.66) !important;
}

body.app-body .table-wrap {
    border-color: rgba(19,23,31,0.12);
}

body.app-body th {
    background: var(--exec-ink);
    color: #ffffff;
}

body.app-body td,
body.app-body tbody tr:nth-child(even) td,
body.app-body td:last-child {
    color: var(--exec-ink);
}

body.app-body tbody tr:hover td,
body.app-body tbody tr:hover td:last-child {
    background: #f0e8e1;
}

body.app-body .asset-code,
body.app-body .service-code,
body.app-body .equipment-link {
    color: var(--exec-red-dark);
}

body.app-body .status-pill,
body.app-body .badge,
body.app-body .photo-action-badge {
    border-color: rgba(19,23,31,0.14);
    background: #ffffff;
    color: var(--exec-ink);
}

body.app-body .status-row,
body.app-body .insight-row,
body.app-body .result-grid div,
body.app-body .history-grid > div,
body.app-body .owner-date {
    border-color: rgba(19,23,31,0.10);
    background: rgba(239,236,234,0.64);
}

body.app-body .status-row strong,
body.app-body .insight-row strong {
    border-color: rgba(19,23,31,0.12);
    background: #ffffff;
}

body.app-body .pagination-page.is-active {
    border-color: var(--exec-red);
    background: var(--exec-red);
}

body.app-body .equipment-form .form-section > summary::before {
    background: var(--exec-red);
}

/* Sidebar rebuild - sem quadrados nos icones */
body.app-body .sidebar {
    width: 292px;
    padding: 22px 16px;
    border-right: 1px solid rgba(255,255,255,0.10);
    background:
        radial-gradient(circle at 50% -80px, rgba(215,25,47,0.22), transparent 220px),
        linear-gradient(180deg, #151b24 0%, #0c1118 100%);
    box-shadow: 16px 0 42px rgba(12,17,24,0.26);
}

body.app-body .sidebar .logo-home-link {
    min-height: 0;
    margin: 0 0 26px;
    padding: 10px 8px 18px;
    align-items: flex-start;
    gap: 12px;
    border: 0;
    border-bottom: 1px solid rgba(239,236,234,0.12);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

body.app-body .sidebar .logo-home-link:hover,
body.app-body .sidebar .logo-home-link:focus-visible {
    transform: none;
    border-color: rgba(239,236,234,0.18);
    background: transparent;
    box-shadow: none;
}

body.app-body .sidebar .brand-logo-wordmark-dashboard {
    width: min(168px, 100%) !important;
    max-height: 62px;
    filter:
        invert(1)
        brightness(2.32)
        contrast(1.08)
        drop-shadow(0 10px 18px rgba(0,0,0,0.22));
}

body.app-body .sidebar .logo-sub {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: rgba(239,236,234,0.64);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.14em;
}

body.app-body .menu-title {
    margin: 0 8px 12px;
    color: rgba(239,236,234,0.52);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.10em;
}

body.app-body .menu {
    gap: 2px;
}

body.app-body .menu a {
    position: relative;
    min-height: 46px;
    padding: 10px 12px 10px 16px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: rgba(239,236,234,0.70);
    font-size: 14px;
    font-weight: 760;
    gap: 13px;
    box-shadow: none;
}

body.app-body .menu a::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 12px;
    bottom: 12px;
    width: 3px;
    border-radius: 999px;
    background: #d7192f;
    opacity: 0;
    transition: opacity 0.16s ease;
}

body.app-body .menu a::after {
    content: none !important;
    display: none !important;
}

body.app-body .menu a:hover,
body.app-body .menu a.active {
    border: 0;
    background:
        linear-gradient(90deg, rgba(215,25,47,0.14), rgba(255,255,255,0.045) 72%, transparent);
    color: #ffffff;
    transform: none;
    box-shadow: none;
}

body.app-body .menu a.active {
    font-weight: 900;
}

body.app-body .menu a:hover::before,
body.app-body .menu a.active::before {
    opacity: 1;
}

body.app-body .nav-mark {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: rgba(239,236,234,0.58);
    box-shadow: none;
}

body.app-body .nav-icon {
    width: 18px;
    height: 18px;
    stroke-width: 1.85;
}

body.app-body .menu a:hover .nav-mark,
body.app-body .menu a.active .nav-mark {
    border: 0;
    background: transparent;
    color: #d7192f;
    box-shadow: none;
}

body.app-body .menu a:hover .nav-icon,
body.app-body .menu a.active .nav-icon {
    transform: none;
    filter: none;
}

body.app-body .creator-box {
    margin-top: 28px;
    padding: 16px 14px;
    border: 1px solid rgba(239,236,234,0.12);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(239,236,234,0.075), rgba(239,236,234,0.030)),
        rgba(255,255,255,0.020);
    box-shadow: none;
}

body.app-body .creator-box .small,
body.app-body .creator-box .version {
    color: rgba(239,236,234,0.58);
}

body.app-body .creator-box .name {
    color: #ffffff;
    font-size: 16px;
}

@media (max-width: 980px) {
    body.app-body .sidebar {
        width: 100%;
    }

    body.app-body .menu {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }
}

/* Invy command center shell - sidebar redesenhada em HTML + visual novo */
body.app-body {
    --cmd-bg: #eef4f7;
    --cmd-surface: #ffffff;
    --cmd-surface-2: #f6fafb;
    --cmd-ink: #172331;
    --cmd-muted: #667789;
    --cmd-line: #d9e3ea;
    --cmd-line-2: #e8eef2;
    --cmd-primary: #0f766e;
    --cmd-primary-2: #14b8a6;
    --cmd-blue: #2563eb;
    --cmd-blue-soft: #eff6ff;
    --cmd-warm: #c6b7a6;
    --cmd-shadow: 0 20px 48px rgba(23,35,49,0.11);
    --cmd-shadow-soft: 0 10px 28px rgba(23,35,49,0.08);
    background:
        radial-gradient(circle at 12% -8%, rgba(20,184,166,0.16), transparent 30%),
        radial-gradient(circle at 90% 0%, rgba(37,99,235,0.10), transparent 26%),
        linear-gradient(180deg, #f8fbfc 0%, var(--cmd-bg) 100%);
    color: var(--cmd-ink);
}

body.app-body .layout {
    display: grid;
    grid-template-columns: 324px minmax(0, 1fr);
    min-height: 100vh;
    background: transparent;
}

body.app-body .sidebar.sidebar-v2 {
    position: sticky;
    top: 0;
    z-index: 20;
    width: 324px;
    height: 100vh;
    min-height: 100vh;
    padding: 18px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 18px;
    border-right: 1px solid rgba(217,227,234,0.86);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.92), rgba(246,250,251,0.96)),
        var(--cmd-surface);
    box-shadow: 18px 0 48px rgba(23,35,49,0.08);
    backdrop-filter: blur(18px);
    overflow-y: auto;
}

body.app-body .sidebar.sidebar-v2 > .sidebar-v2-main {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 16px;
}

body.app-body .side-brand {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    min-height: 84px;
    padding: 12px;
    border: 1px solid var(--cmd-line-2);
    border-radius: 18px;
    background: linear-gradient(135deg, #ffffff, #f6fafb);
    color: inherit;
    text-decoration: none;
    box-shadow: var(--cmd-shadow-soft);
}

body.app-body .side-brand-logo-wrap {
    display: grid;
    place-items: center;
    width: 86px;
    height: 58px;
    border-radius: 14px;
    background:
        radial-gradient(circle at 18% 10%, rgba(20,184,166,0.18), transparent 34%),
        linear-gradient(135deg, #243244, #111827);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.12);
}

body.app-body .side-brand-logo {
    width: 68px;
    max-height: 34px;
    object-fit: contain;
    filter: invert(1) brightness(2.25) contrast(1.06);
}

body.app-body .side-brand-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
}

body.app-body .side-brand-copy strong {
    color: var(--cmd-ink);
    font-size: 15px;
    font-weight: 900;
    line-height: 1.15;
}

body.app-body .side-brand-copy small {
    color: var(--cmd-muted);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
}

body.app-body .side-status-card {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 12px 13px;
    border: 1px solid rgba(15,118,110,0.16);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(20,184,166,0.10), rgba(255,255,255,0.78));
}

body.app-body .side-status-dot {
    width: 10px;
    height: 10px;
    flex: 0 0 auto;
    border-radius: 999px;
    background: #10b981;
    box-shadow: 0 0 0 5px rgba(16,185,129,0.13);
}

body.app-body .side-status-card strong {
    display: block;
    color: var(--cmd-ink);
    font-size: 13px;
    font-weight: 900;
}

body.app-body .side-status-card small {
    display: block;
    margin-top: 2px;
    color: var(--cmd-muted);
    font-size: 11px;
    font-weight: 700;
}

body.app-body .side-primary-action {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    padding: 11px 13px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--cmd-primary), var(--cmd-primary-2));
    color: #ffffff;
    text-decoration: none;
    box-shadow: 0 16px 30px rgba(15,118,110,0.22);
}

body.app-body .side-primary-action span {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: rgba(255,255,255,0.16);
    font-size: 20px;
    line-height: 1;
}

body.app-body .side-primary-action strong {
    font-size: 14px;
    font-weight: 900;
}

body.app-body .side-nav {
    display: grid;
    gap: 18px;
}

body.app-body .side-nav-section {
    display: grid;
    gap: 7px;
}

body.app-body .side-nav-title {
    margin: 0 8px 4px;
    color: #91a0ae;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

body.app-body .side-nav-link {
    position: relative;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    min-height: 58px;
    padding: 9px 11px;
    border: 1px solid transparent;
    border-radius: 15px;
    color: var(--cmd-muted);
    text-decoration: none;
    background: transparent;
    transition:
        background 0.16s ease,
        border-color 0.16s ease,
        box-shadow 0.16s ease,
        color 0.16s ease,
        transform 0.16s ease;
}

body.app-body .side-nav-link:hover,
body.app-body .side-nav-link.active {
    border-color: rgba(15,118,110,0.18);
    background: #ffffff;
    color: var(--cmd-ink);
    box-shadow: var(--cmd-shadow-soft);
    transform: translateY(-1px);
}

body.app-body .side-nav-link.active::before {
    content: "";
    position: absolute;
    left: -1px;
    top: 12px;
    bottom: 12px;
    width: 4px;
    border-radius: 0 999px 999px 0;
    background: var(--cmd-primary);
}

body.app-body .side-nav-icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 13px;
    background: var(--cmd-surface-2);
    color: #748395;
}

body.app-body .side-nav-link:hover .side-nav-icon,
body.app-body .side-nav-link.active .side-nav-icon {
    background: rgba(20,184,166,0.12);
    color: var(--cmd-primary);
}

body.app-body .side-nav-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}

body.app-body .side-nav-copy strong {
    color: currentColor;
    font-size: 14px;
    font-weight: 900;
    line-height: 1.15;
}

body.app-body .side-nav-copy small {
    color: #8a98a7;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
}

body.app-body .side-nav-link.active .side-nav-copy small,
body.app-body .side-nav-link:hover .side-nav-copy small {
    color: var(--cmd-muted);
}

body.app-body .side-user-card {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 36px;
    align-items: center;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--cmd-line-2);
    border-radius: 18px;
    background: #ffffff;
    box-shadow: var(--cmd-shadow-soft);
}

body.app-body .side-user-avatar {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: var(--cmd-blue-soft);
    color: var(--cmd-blue);
    font-size: 13px;
    font-weight: 950;
}

body.app-body .side-user-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}

body.app-body .side-user-copy strong,
body.app-body .side-user-copy span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.app-body .side-user-copy strong {
    color: var(--cmd-ink);
    font-size: 13px;
    font-weight: 900;
}

body.app-body .side-user-copy span {
    color: var(--cmd-muted);
    font-size: 12px;
    font-weight: 700;
}

body.app-body .side-logout {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 12px;
    background: var(--cmd-surface-2);
    color: var(--cmd-muted);
}

body.app-body .side-logout:hover,
body.app-body .side-logout:focus-visible {
    background: #fff1f2;
    color: #be123c;
}

body.app-body .sidebar-v2 .nav-icon {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body.app-body .content {
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 26px 30px 42px;
}

body.app-body .workspace-bar,
body.app-body .topbar,
body.app-body .panel,
body.app-body .stat-box,
body.app-body .equipment-result-card,
body.app-body .history-card,
body.app-body .thumb-card,
body.app-body .result-grid div,
body.app-body .history-grid > div,
body.app-body .owner-card,
body.app-body .owner-date,
body.app-body .status-row,
body.app-body .insight-row,
body.app-body .empty-state,
body.app-body .security-callout {
    border-color: var(--cmd-line);
    background: rgba(255,255,255,0.88);
    color: var(--cmd-ink);
    box-shadow: var(--cmd-shadow-soft);
}

body.app-body .workspace-bar {
    border-radius: 16px;
    background: rgba(255,255,255,0.76);
    color: var(--cmd-muted);
}

body.app-body .workspace-user strong {
    border-color: rgba(15,118,110,0.16);
    background: rgba(20,184,166,0.11);
    color: var(--cmd-primary);
}

body.app-body .topbar {
    min-height: 132px;
    padding: 28px;
    border: 1px solid var(--cmd-line);
    border-radius: 20px;
    background:
        radial-gradient(circle at 100% 0%, rgba(20,184,166,0.12), transparent 28%),
        linear-gradient(135deg, rgba(255,255,255,0.95), rgba(246,250,251,0.86));
    box-shadow: var(--cmd-shadow);
}

body.app-body .topbar h1 {
    color: var(--cmd-ink);
    font-size: clamp(34px, 3.4vw, 52px);
}

body.app-body .subtitle {
    color: var(--cmd-muted);
}

body.app-body .dashboard-title-logo-shell {
    width: 156px;
    height: 66px;
    border: 0;
    border-radius: 18px;
    background:
        radial-gradient(circle at 18% 18%, rgba(20,184,166,0.20), transparent 34%),
        linear-gradient(135deg, #243244, #111827);
    box-shadow: 0 18px 34px rgba(23,35,49,0.18);
}

body.app-body .dashboard-title-logo {
    max-height: 38px;
}

body.app-body .btn {
    border-radius: 12px;
}

body.app-body .btn-primary {
    border-color: var(--cmd-primary);
    background: linear-gradient(135deg, var(--cmd-primary), var(--cmd-primary-2));
    color: #ffffff;
    box-shadow: 0 14px 28px rgba(15,118,110,0.20);
}

body.app-body .btn-primary:hover {
    background: var(--cmd-primary);
}

body.app-body .btn-secondary,
body.app-body .btn-outline {
    border-color: var(--cmd-line);
    background: #ffffff;
    color: var(--cmd-ink);
}

body.app-body .btn-secondary:hover,
body.app-body .btn-outline:hover {
    border-color: rgba(15,118,110,0.22);
    background: rgba(20,184,166,0.08);
    color: var(--cmd-primary);
}

body.app-body .stat-box {
    min-height: 128px;
    border-radius: 18px;
}

body.app-body .stat-box::before {
    background: var(--cmd-primary);
}

body.app-body .stats .stat-box:nth-child(2)::before,
body.app-body .stat-box.accent-blue::before {
    background: var(--cmd-blue);
}

body.app-body .stats .stat-box:nth-child(3)::before,
body.app-body .stat-box.accent-green::before {
    background: var(--cmd-primary);
}

body.app-body .stats .stat-box:nth-child(4)::before,
body.app-body .stat-box.accent-amber::before {
    background: var(--cmd-warm);
}

body.app-body .stat-box h3,
body.app-body .insight-row strong,
body.app-body .status-row strong,
body.app-body .history-grid strong,
body.app-body .result-grid strong {
    color: var(--cmd-ink);
}

body.app-body .stat-box p,
body.app-body .result-grid span,
body.app-body .equipment-result-head p,
body.app-body .status-row span,
body.app-body .insight-row span,
body.app-body .muted,
body.app-body .table-note,
body.app-body .field-hint {
    color: var(--cmd-muted);
}

body.app-body th {
    background: #1f2a37;
    color: #ffffff;
}

body.app-body tbody tr:hover td,
body.app-body tbody tr:hover td:last-child {
    background: rgba(20,184,166,0.075);
}

body.app-body .asset-code,
body.app-body .service-code,
body.app-body .equipment-link {
    color: var(--cmd-primary);
}

body.app-body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
body.app-body select,
body.app-body textarea {
    border-color: var(--cmd-line) !important;
    color: var(--cmd-ink) !important;
    caret-color: var(--cmd-primary) !important;
    -webkit-text-fill-color: var(--cmd-ink) !important;
}

body.app-body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):focus,
body.app-body select:focus,
body.app-body textarea:focus {
    border-color: var(--cmd-primary) !important;
    box-shadow: 0 0 0 3px rgba(15,118,110,0.12) !important;
}

@media (max-width: 1100px) {
    body.app-body .layout {
        grid-template-columns: 1fr;
    }

    body.app-body .sidebar.sidebar-v2 {
        position: relative;
        width: 100%;
        height: auto;
        min-height: 0;
        padding: 14px;
    }
}

@media (max-width: 760px) {
    body.app-body .content {
        padding: 16px 14px 32px;
    }

    body.app-body .side-brand {
        grid-template-columns: 74px minmax(0, 1fr);
    }

    body.app-body .side-brand-logo-wrap {
        width: 74px;
    }

    body.app-body .side-nav-link {
        grid-template-columns: 34px minmax(0, 1fr);
    }

    body.app-body .side-nav-icon {
        width: 34px;
        height: 34px;
    }

    body.app-body .topbar {
        padding: 22px;
    }
}

/* =====================================================
   Invy polish pass - dashboard, cards e logs
===================================================== */

body.app-body {
    --polish-bg: #edf3f6;
    --polish-surface: rgba(255,255,255,0.92);
    --polish-surface-solid: #ffffff;
    --polish-ink: #111827;
    --polish-muted: #607084;
    --polish-line: #d7e2ea;
    --polish-line-strong: #c6d3dd;
    --polish-primary: #0f766e;
    --polish-primary-2: #14b8a6;
    --polish-blue: #2563eb;
    --polish-red: #d7192f;
    --polish-amber: #b7791f;
    --polish-shadow: 0 20px 44px rgba(17,24,39,0.10);
    --polish-shadow-hover: 0 28px 58px rgba(17,24,39,0.16);
    background:
        linear-gradient(115deg, rgba(20,184,166,0.10) 0 18%, transparent 18% 100%),
        linear-gradient(245deg, rgba(37,99,235,0.08) 0 16%, transparent 16% 100%),
        repeating-linear-gradient(90deg, rgba(17,24,39,0.025) 0 1px, transparent 1px 64px),
        linear-gradient(180deg, #f8fbfc 0%, var(--polish-bg) 100%);
    color: var(--polish-ink);
}

body.app-body .content {
    padding: 28px clamp(20px, 2.4vw, 36px) 46px;
}

body.app-body .workspace-bar {
    min-height: 50px;
    margin-bottom: 18px;
    padding: 12px 16px;
    border: 1px solid rgba(215,226,234,0.92);
    border-radius: 18px;
    background:
        linear-gradient(135deg, rgba(255,255,255,0.88), rgba(246,250,251,0.72));
    box-shadow: 0 10px 26px rgba(17,24,39,0.06);
    backdrop-filter: blur(14px);
}

body.app-body .workspace-status,
body.app-body .workspace-user {
    gap: 9px;
}

body.app-body .workspace-dot,
body.app-body .side-status-dot {
    animation: invyStatusPulse 2.4s ease-in-out infinite;
}

body.app-body .topbar {
    position: relative;
    overflow: hidden;
    min-height: 124px;
    padding: clamp(22px, 2.2vw, 32px);
    border: 1px solid rgba(198,211,221,0.92);
    border-radius: 24px;
    background:
        linear-gradient(135deg, rgba(255,255,255,0.96), rgba(247,250,252,0.86)),
        repeating-linear-gradient(135deg, rgba(15,118,110,0.055) 0 1px, transparent 1px 18px);
    box-shadow: var(--polish-shadow);
}

body.app-body .topbar::after {
    content: "";
    position: absolute;
    inset: auto -20% 0 42%;
    height: 4px;
    background: linear-gradient(90deg, transparent, rgba(15,118,110,0.65), rgba(37,99,235,0.36), transparent);
    animation: invyLineSweep 4.2s ease-in-out infinite;
    pointer-events: none;
}

body.app-body .topbar h1 {
    margin: 0 0 6px;
    color: var(--polish-ink);
    font-size: 44px;
    line-height: 1.02;
    letter-spacing: 0;
}

body.app-body .subtitle {
    color: var(--polish-muted);
    font-size: 16px;
    line-height: 1.45;
}

body.app-body .dashboard-title-wrap {
    position: relative;
    z-index: 1;
}

body.app-body .dashboard-title-logo-shell {
    width: clamp(124px, 12vw, 154px);
    height: 64px;
    border-radius: 18px;
    background:
        linear-gradient(135deg, #263447, #111827);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.14),
        0 18px 32px rgba(17,24,39,0.18);
}

body.app-body .dashboard-title-logo {
    max-height: 38px;
    filter: invert(1) brightness(2.18) contrast(1.05);
}

body.app-body .dashboard-actions,
body.app-body .page-actions {
    position: relative;
    z-index: 1;
}

body.app-body .btn,
body.app-body button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    gap: 8px;
    border: 1px solid transparent;
    border-radius: 14px;
    line-height: 1;
    box-shadow: none;
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        background 0.18s ease,
        border-color 0.18s ease,
        color 0.18s ease;
}

body.app-body .btn:hover,
body.app-body button:hover {
    transform: translateY(-2px);
}

body.app-body .btn-primary {
    border-color: rgba(15,118,110,0.18);
    background: linear-gradient(135deg, var(--polish-primary), var(--polish-primary-2));
    color: #ffffff;
    box-shadow: 0 14px 28px rgba(15,118,110,0.22);
}

body.app-body .btn-primary:hover {
    background: linear-gradient(135deg, #0b635d, var(--polish-primary));
    box-shadow: 0 18px 34px rgba(15,118,110,0.28);
}

body.app-body .btn-secondary,
body.app-body .btn-outline {
    border-color: rgba(198,211,221,0.96);
    background: rgba(255,255,255,0.92);
    color: var(--polish-ink);
}

body.app-body .btn-secondary:hover,
body.app-body .btn-outline:hover {
    border-color: rgba(15,118,110,0.30);
    background: rgba(20,184,166,0.10);
    color: var(--polish-primary);
}

body.app-body .btn-compact {
    min-height: 34px;
    padding: 9px 12px;
    border-radius: 12px;
    font-size: 13px;
}

body.app-body .stats {
    grid-template-columns: repeat(4, minmax(190px, 1fr));
    gap: clamp(14px, 1.5vw, 20px);
    margin: 0 0 22px;
}

body.app-body .stat-box {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 126px;
    padding: 24px 24px 20px;
    border: 1px solid rgba(198,211,221,0.94);
    border-radius: 22px;
    background:
        linear-gradient(145deg, rgba(255,255,255,0.98), rgba(247,250,252,0.88));
    color: var(--polish-ink);
    box-shadow: var(--polish-shadow);
    transform: translateZ(0);
    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background 0.2s ease;
}

body.app-body .stat-box::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    width: auto;
    height: 5px;
    border-radius: 22px 22px 0 0;
    background: var(--polish-red);
    opacity: 1;
    transform-origin: left;
    animation: invyAccentLoad 0.72s cubic-bezier(.2,.8,.2,1) both;
    z-index: 2;
}

body.app-body .stat-box::after {
    content: "";
    position: absolute;
    inset: 16px 18px auto auto;
    width: 82px;
    height: 82px;
    border: 1px solid rgba(96,112,132,0.10);
    border-radius: 26px;
    background:
        repeating-linear-gradient(135deg, rgba(96,112,132,0.10) 0 1px, transparent 1px 10px);
    opacity: 0.42;
    transform: rotate(8deg);
    z-index: 0;
}

body.app-body .stat-box:hover {
    border-color: rgba(15,118,110,0.30);
    background:
        linear-gradient(145deg, #ffffff, rgba(241,248,249,0.92));
    box-shadow: var(--polish-shadow-hover);
    transform: translateY(-4px);
}

body.app-body .stat-box h3,
body.app-body .stat-box.accent-blue h3,
body.app-body .stat-box.accent-green h3,
body.app-body .stat-box.accent-amber h3,
body.app-body .stats .stat-box:nth-child(2) h3,
body.app-body .stats .stat-box:nth-child(3) h3,
body.app-body .stats .stat-box:nth-child(4) h3 {
    position: relative;
    z-index: 1;
    margin: 0 0 8px;
    color: var(--polish-ink);
    font-size: 42px;
    line-height: 0.95;
    letter-spacing: 0;
    font-weight: 950;
}

body.app-body .stat-box p,
body.app-body .stats .stat-box p {
    position: relative;
    z-index: 1;
    max-width: 15ch;
    margin: 0;
    color: var(--polish-muted);
    font-size: 14px;
    font-weight: 850;
    line-height: 1.28;
}

body.app-body .stats .stat-box:nth-child(2)::before,
body.app-body .stat-box.accent-blue::before {
    background: var(--polish-blue);
}

body.app-body .stats .stat-box:nth-child(3)::before,
body.app-body .stat-box.accent-green::before {
    background: var(--polish-primary);
}

body.app-body .stats .stat-box:nth-child(4)::before,
body.app-body .stat-box.accent-amber::before {
    background: var(--polish-amber);
}

body.app-body .panel,
body.app-body .equipment-result-card,
body.app-body .history-card {
    border: 1px solid rgba(198,211,221,0.92);
    border-radius: 22px;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.95), rgba(247,250,252,0.88));
    color: var(--polish-ink);
    box-shadow: var(--polish-shadow);
}

body.app-body .panel {
    padding: clamp(18px, 1.8vw, 26px);
}

body.app-body .panel:hover,
body.app-body .equipment-result-card:hover,
body.app-body .history-card:hover {
    border-color: rgba(15,118,110,0.22);
    box-shadow: var(--polish-shadow-hover);
}

body.app-body .section-title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    color: var(--polish-ink);
    font-size: 20px;
    line-height: 1.2;
    letter-spacing: 0;
}

body.app-body .section-title::before {
    content: "";
    width: 8px;
    height: 24px;
    flex: 0 0 auto;
    border-radius: 999px;
    background: linear-gradient(180deg, var(--polish-primary-2), var(--polish-primary));
    box-shadow: 0 8px 16px rgba(15,118,110,0.18);
}

body.app-body .dashboard-grid {
    grid-template-columns: minmax(0, 1.5fr) minmax(300px, 0.55fr);
    gap: 22px;
    align-items: start;
}

body.app-body .dashboard-panel {
    min-height: 100%;
}

body.app-body .insight-list {
    display: grid;
    gap: 10px;
}

body.app-body .insight-row,
body.app-body .status-row,
body.app-body .history-grid > div,
body.app-body .result-grid div,
body.app-body .owner-date {
    border: 1px solid rgba(198,211,221,0.78);
    border-radius: 16px;
    background: rgba(246,250,251,0.84);
    box-shadow: none;
}

body.app-body .insight-row {
    padding: 13px 14px;
}

body.app-body .insight-row strong,
body.app-body .status-row strong {
    min-width: 38px;
    border: 1px solid rgba(198,211,221,0.82);
    border-radius: 12px;
    background: #ffffff;
    color: var(--polish-ink);
}

body.app-body .table-wrap {
    border: 1px solid rgba(198,211,221,0.92);
    border-radius: 18px;
    background: rgba(255,255,255,0.92);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.80);
}

body.app-body table {
    margin-top: 0;
    border-collapse: separate;
    border-spacing: 0;
}

body.app-body th {
    padding: 14px 14px;
    border-bottom: 1px solid rgba(198,211,221,0.90);
    background: #f2f6f8;
    color: #48586b;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 0.08em;
}

body.app-body td {
    padding: 15px 14px;
    border-bottom: 1px solid rgba(215,226,234,0.72);
    color: var(--polish-ink);
    font-size: 14px;
    line-height: 1.4;
}

body.app-body tbody tr {
    transition:
        background 0.16s ease,
        transform 0.16s ease;
}

body.app-body tbody tr:last-child td {
    border-bottom: 0;
}

body.app-body tbody tr:hover td,
body.app-body tbody tr:hover td:last-child {
    background: rgba(20,184,166,0.065);
}

body.app-body .asset-code,
body.app-body .service-code,
body.app-body .equipment-link {
    color: var(--polish-primary);
    font-weight: 900;
}

body.app-body .status-pill,
body.app-body .badge,
body.app-body .photo-action-badge {
    border: 1px solid rgba(198,211,221,0.90);
    border-radius: 999px;
    background: #ffffff;
    color: #334155;
    box-shadow: 0 8px 18px rgba(17,24,39,0.06);
}

body.app-body .search-box,
body.app-body .quick-search-form,
body.app-body .inventory-filter-form .grid-3,
body.app-body .form-panel .grid,
body.app-body .form-panel .grid-2,
body.app-body .form-panel .grid-3 {
    border: 1px solid rgba(198,211,221,0.84);
    border-radius: 18px;
    background: rgba(246,250,251,0.78) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.70);
}

body.app-body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
body.app-body select,
body.app-body textarea {
    border-color: rgba(198,211,221,0.96) !important;
    border-radius: 14px;
    background: rgba(255,255,255,0.96) !important;
    color: var(--polish-ink) !important;
    caret-color: var(--polish-primary) !important;
    -webkit-text-fill-color: var(--polish-ink) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.72);
}

body.app-body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):focus,
body.app-body select:focus,
body.app-body textarea:focus {
    border-color: rgba(15,118,110,0.70) !important;
    box-shadow:
        0 0 0 4px rgba(20,184,166,0.13) !important,
        inset 0 1px 0 rgba(255,255,255,0.72);
}

body.app-body .logs-topbar {
    min-height: 112px;
}

body.app-body .logs-panel {
    padding: 18px;
}

body.app-body .logs-search {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto auto;
    gap: 12px;
    align-items: center;
    margin: 0 0 16px;
    padding: 14px;
}

body.app-body .logs-search-field {
    position: relative;
    min-width: 0;
}

body.app-body .logs-search-field input {
    min-height: 48px;
    padding-left: 46px;
}

body.app-body .logs-search-icon {
    position: absolute;
    left: 15px;
    top: 50%;
    width: 19px;
    height: 19px;
    transform: translateY(-50%);
    fill: none;
    stroke: var(--polish-muted);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    pointer-events: none;
}

body.app-body .logs-table-wrap {
    max-height: min(66vh, 720px);
    min-height: 340px;
    overflow: auto;
}

body.app-body .logs-table-wrap::-webkit-scrollbar,
body.app-body .table-wrap::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

body.app-body .logs-table-wrap::-webkit-scrollbar-track,
body.app-body .table-wrap::-webkit-scrollbar-track {
    background: #edf3f6;
}

body.app-body .logs-table-wrap::-webkit-scrollbar-thumb,
body.app-body .table-wrap::-webkit-scrollbar-thumb {
    border: 2px solid #edf3f6;
    border-radius: 999px;
    background: #aebfca;
}

body.app-body .audit-table {
    min-width: 1050px;
}

body.app-body .audit-table thead th {
    position: sticky;
    top: 0;
    z-index: 3;
}

body.app-body .audit-table th:first-child,
body.app-body .audit-table td:first-child {
    padding-left: 18px;
}

body.app-body .audit-table th:last-child,
body.app-body .audit-table td:last-child {
    padding-right: 18px;
}

body.app-body .audit-table tbody tr {
    animation: invyRowIn 0.38s ease both;
    animation-delay: var(--motion-delay, 0ms);
}

body.app-body .log-time {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    white-space: nowrap;
    color: #475569;
    font-size: 13px;
    font-weight: 800;
}

body.app-body .log-user-cell {
    display: inline-grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    min-width: 0;
}

body.app-body .log-user-avatar {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(37,99,235,0.13), rgba(20,184,166,0.14));
    color: #1d4ed8;
    font-size: 11px;
    font-weight: 950;
}

body.app-body .log-user-name {
    min-width: 0;
    color: var(--polish-ink);
    font-weight: 850;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.app-body .log-action-pill,
body.app-body .log-entity-pill,
body.app-body .log-asset {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    max-width: 220px;
    padding: 7px 10px;
    border-radius: 999px;
    white-space: nowrap;
    font-size: 12px;
    font-weight: 950;
    line-height: 1;
}

body.app-body .log-action-pill {
    border: 1px solid rgba(37,99,235,0.18);
    background: #eff6ff;
    color: #1d4ed8;
}

body.app-body .log-action-pill[class*="login"] {
    border-color: rgba(15,118,110,0.22);
    background: #ecfdf5;
    color: #047857;
}

body.app-body .log-action-pill[class*="logout"] {
    border-color: rgba(96,112,132,0.20);
    background: #f8fafc;
    color: #475569;
}

body.app-body .log-action-pill[class*="delete"],
body.app-body .log-action-pill[class*="excluir"],
body.app-body .log-action-pill[class*="remove"] {
    border-color: rgba(215,25,47,0.22);
    background: #fff1f2;
    color: #be123c;
}

body.app-body .log-action-pill[class*="edit"],
body.app-body .log-action-pill[class*="editar"],
body.app-body .log-action-pill[class*="update"],
body.app-body .log-action-pill[class*="alter"] {
    border-color: rgba(183,121,31,0.26);
    background: #fffbeb;
    color: #92400e;
}

body.app-body .log-entity-pill {
    border: 1px solid rgba(96,112,132,0.16);
    background: #f8fafc;
    color: #475569;
}

body.app-body .log-asset {
    border: 1px solid rgba(15,118,110,0.22);
    background: rgba(20,184,166,0.09);
    color: var(--polish-primary);
}

body.app-body .log-summary {
    display: -webkit-box;
    max-width: 48ch;
    overflow: hidden;
    color: #334155;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow-wrap: anywhere;
}

body.app-body .empty-table-cell {
    padding: 34px 18px;
    text-align: center;
    color: var(--polish-muted);
    font-weight: 800;
}

body.app-body .log-detail-panel .grid-3,
body.app-body .log-detail-grid {
    gap: 14px;
}

body.app-body .log-detail-panel input[readonly] {
    font-weight: 800;
}

body.app-body .topbar.tech-in,
body.app-body .workspace-bar.tech-in,
body.app-body .panel.tech-in,
body.app-body .stat-box.tech-in,
body.app-body .equipment-result-card.tech-in,
body.app-body .history-card.tech-in,
body.app-body .table-wrap tbody tr.tech-in {
    opacity: 0;
    transform: translateY(14px);
}

body.app-body.is-ready .topbar.tech-in,
body.app-body.is-ready .workspace-bar.tech-in,
body.app-body.is-ready .panel.tech-in,
body.app-body.is-ready .stat-box.tech-in,
body.app-body.is-ready .equipment-result-card.tech-in,
body.app-body.is-ready .history-card.tech-in,
body.app-body.is-ready .table-wrap tbody tr.tech-in {
    animation: invySurfaceIn 0.48s cubic-bezier(.2,.8,.2,1) both;
    animation-delay: var(--motion-delay, 0ms);
}

body.app-body.is-ready .stat-box h3 {
    animation: invyNumberPop 0.52s cubic-bezier(.2,.8,.2,1) both;
}

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

@keyframes invyAccentLoad {
    from {
        transform: scaleX(0);
    }
    to {
        transform: scaleX(1);
    }
}

@keyframes invyLineSweep {
    0%, 100% {
        transform: translateX(-12%);
        opacity: 0.35;
    }
    50% {
        transform: translateX(10%);
        opacity: 0.85;
    }
}

@keyframes invyStatusPulse {
    0%, 100% {
        box-shadow: 0 0 0 5px rgba(16,185,129,0.13);
    }
    50% {
        box-shadow: 0 0 0 8px rgba(16,185,129,0.05);
    }
}

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

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

@media (max-width: 1180px) {
    body.app-body .stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.app-body .dashboard-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    body.app-body .content {
        padding: 16px 14px 34px;
    }

    body.app-body .workspace-bar {
        align-items: flex-start;
        gap: 8px;
    }

    body.app-body .topbar {
        min-height: 0;
        border-radius: 20px;
    }

    body.app-body .topbar h1 {
        font-size: 32px;
    }

    body.app-body .stats {
        grid-template-columns: 1fr;
    }

    body.app-body .stat-box {
        min-height: 112px;
        border-radius: 20px;
    }

    body.app-body .panel {
        border-radius: 20px;
    }

    body.app-body .logs-search {
        grid-template-columns: 1fr;
    }

    body.app-body .logs-table-wrap {
        max-height: none;
        min-height: 0;
        overflow: visible;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    body.app-body .audit-table {
        min-width: 0;
    }

    body.app-body .audit-table tbody tr {
        border: 1px solid rgba(198,211,221,0.92);
        border-radius: 18px;
        background: rgba(255,255,255,0.94);
        box-shadow: 0 12px 26px rgba(17,24,39,0.07);
    }

    body.app-body .table-wrap td {
        min-height: 44px;
        padding: 11px 12px;
    }

    body.app-body .table-wrap td::before {
        color: var(--polish-muted);
    }

    body.app-body .log-user-cell {
        justify-content: end;
    }

    body.app-body .log-summary {
        max-width: 100%;
        text-align: right;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-body *,
    body.app-body *::before,
    body.app-body *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* =====================================================
   Historico e acabamento geral pos-login
===================================================== */

body.app-body .side-nav-link,
body.app-body .side-primary-action,
body.app-body .side-user-card,
body.app-body .workspace-bar {
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        border-color 0.18s ease,
        background 0.18s ease,
        color 0.18s ease;
}

body.app-body .side-primary-action:hover,
body.app-body .side-user-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 34px rgba(17,24,39,0.12);
}

body.app-body .layout {
    transition: grid-template-columns 0.42s cubic-bezier(.2,.8,.2,1);
}

body.app-body .sidebar.sidebar-v2 {
    transition:
        transform 0.42s cubic-bezier(.2,.8,.2,1),
        opacity 0.22s ease,
        visibility 0.22s ease,
        border-color 0.22s ease,
        box-shadow 0.22s ease;
    will-change: transform;
}

body.app-body .sidebar-shell-toggle {
    position: fixed;
    top: 26px;
    left: 302px;
    z-index: 90;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid rgba(198,211,221,0.98);
    border-radius: 14px;
    background:
        linear-gradient(135deg, rgba(255,255,255,0.98), rgba(241,245,249,0.9));
    color: var(--polish-primary);
    box-shadow: 0 16px 34px rgba(17,24,39,0.14);
    cursor: pointer;
    transition:
        left 0.42s cubic-bezier(.2,.8,.2,1),
        transform 0.18s ease,
        box-shadow 0.18s ease,
        border-color 0.18s ease,
        background 0.18s ease,
        color 0.18s ease;
}

body.app-body .sidebar-shell-toggle::after {
    content: "";
    position: absolute;
    inset: -5px;
    border: 1px solid rgba(20,184,166,0);
    border-radius: 18px;
    transition: border-color 0.18s ease;
}

body.app-body .sidebar-shell-toggle .nav-icon {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform 0.32s cubic-bezier(.2,.8,.2,1);
}

body.app-body .sidebar-shell-toggle:hover,
body.app-body .sidebar-shell-toggle:focus-visible {
    border-color: rgba(15,118,110,0.28);
    background:
        linear-gradient(135deg, rgba(236,253,245,0.98), rgba(255,255,255,0.94));
    box-shadow: 0 20px 42px rgba(15,118,110,0.18);
    transform: translateY(-1px);
}

body.app-body .sidebar-shell-toggle:hover::after,
body.app-body .sidebar-shell-toggle:focus-visible::after {
    border-color: rgba(20,184,166,0.24);
}

body.app-body.sidebar-is-collapsed .layout {
    grid-template-columns: 0 minmax(0, 1fr);
}

body.app-body.sidebar-is-collapsed .sidebar.sidebar-v2 {
    transform: translateX(calc(-100% - 24px));
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    border-right-color: transparent;
    box-shadow: none;
}

body.app-body.sidebar-is-collapsed .sidebar-shell-toggle {
    left: 16px;
    background:
        linear-gradient(135deg, var(--polish-primary), var(--polish-primary-2));
    color: #ffffff;
    box-shadow: 0 18px 38px rgba(15,118,110,0.26);
}

body.app-body.sidebar-is-collapsed .sidebar-shell-toggle .nav-icon {
    transform: rotate(180deg);
}

@media (max-width: 1100px) {
    body.app-body .sidebar-shell-toggle {
        top: 18px;
        left: calc(100% - 62px);
    }

    body.app-body.sidebar-is-collapsed .sidebar-shell-toggle {
        left: 16px;
    }
}

body.app-body .empty-state {
    padding: 24px;
    border: 1px dashed rgba(96,112,132,0.28);
    border-radius: 18px;
    background: rgba(248,250,252,0.78);
    color: var(--polish-muted);
    font-weight: 850;
    text-align: center;
}

body.app-body.page-historico .history-topbar {
    min-height: 116px;
}

body.app-body.page-historico .history-filter-panel {
    padding: 16px;
}

body.app-body.page-historico .history-search {
    display: grid;
    grid-template-columns: minmax(300px, 1.3fr) minmax(180px, 0.55fr) minmax(148px, 0.36fr) minmax(148px, 0.36fr) auto auto;
    gap: 12px;
    align-items: center;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent !important;
    box-shadow: none;
}

body.app-body.page-historico .history-search-main {
    position: relative;
    min-width: 0;
}

body.app-body.page-historico .history-search-main input {
    min-height: 48px;
    padding-left: 46px;
}

body.app-body.page-historico .history-search-icon {
    position: absolute;
    left: 15px;
    top: 50%;
    width: 19px;
    height: 19px;
    transform: translateY(-50%);
    fill: none;
    stroke: var(--polish-muted);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    pointer-events: none;
}

body.app-body.page-historico .history-active-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

body.app-body.page-historico .history-active-filters span,
body.app-body.page-historico .history-count-pill {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 7px 11px;
    border: 1px solid rgba(15,118,110,0.18);
    border-radius: 999px;
    background: rgba(20,184,166,0.09);
    color: var(--polish-primary);
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
}

body.app-body.page-historico .history-stats {
    grid-template-columns: repeat(4, minmax(180px, 1fr));
}

body.app-body.page-historico .history-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

body.app-body.page-historico .history-panel-head .section-title {
    margin-bottom: 6px;
}

body.app-body.page-historico .history-summary-grid,
body.app-body.page-historico .history-field-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(170px, 1fr));
    gap: 12px;
}

body.app-body.page-historico .history-data-card,
body.app-body.page-historico .history-field-grid > div {
    min-height: 84px;
    padding: 14px;
    border: 1px solid rgba(198,211,221,0.86);
    border-radius: 16px;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(248,250,252,0.84));
    box-shadow: 0 10px 24px rgba(17,24,39,0.06);
}

body.app-body.page-historico .history-data-card span,
body.app-body.page-historico .history-field-grid span {
    display: block;
    margin-bottom: 7px;
    color: var(--polish-muted);
    font-size: 12px;
    font-weight: 850;
    line-height: 1.25;
}

body.app-body.page-historico .history-data-card strong,
body.app-body.page-historico .history-field-grid strong {
    display: block;
    color: var(--polish-ink);
    font-size: 14px;
    font-weight: 950;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

body.app-body.page-historico .history-photo-section {
    margin-top: 22px;
}

body.app-body.page-historico .history-photo-grid {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

body.app-body.page-historico .history-photo-grid .thumb-card {
    border-color: rgba(198,211,221,0.86);
    background: rgba(255,255,255,0.92);
}

body.app-body.page-historico .history-photo-grid .thumb-card img {
    height: 180px;
    border-radius: 14px;
}

body.app-body.page-historico .history-owner-timeline {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 14px;
}

body.app-body.page-historico .owner-card {
    position: relative;
    overflow: hidden;
    margin: 0;
    border: 1px solid rgba(198,211,221,0.90);
    border-radius: 18px;
    background: rgba(255,255,255,0.92);
    box-shadow: 0 14px 28px rgba(17,24,39,0.08);
}

body.app-body.page-historico .owner-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: #94a3b8;
}

body.app-body.page-historico .owner-card.is-current {
    border-color: rgba(15,118,110,0.26);
    background:
        linear-gradient(135deg, rgba(236,253,245,0.82), rgba(255,255,255,0.94));
}

body.app-body.page-historico .owner-card.is-current::before {
    background: var(--polish-primary);
}

body.app-body.page-historico .owner-main,
body.app-body.page-historico .owner-dates,
body.app-body.page-historico .owner-event {
    position: relative;
}

body.app-body.page-historico .owner-main {
    align-items: center;
}

body.app-body.page-historico .owner-main strong {
    color: var(--polish-ink);
    font-size: 16px;
    line-height: 1.25;
}

body.app-body.page-historico .owner-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 12px 0;
    color: var(--polish-muted);
}

body.app-body.page-historico .owner-meta span,
body.app-body.page-historico .owner-event span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 6px 9px;
    border-radius: 999px;
    background: rgba(241,245,249,0.94);
    color: #475569;
    font-size: 12px;
    font-weight: 850;
}

body.app-body.page-historico .owner-dates {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 12px;
}

body.app-body.page-historico .owner-event {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 12px;
}

body.app-body.page-historico .history-event-list {
    position: relative;
    display: grid;
    gap: 16px;
}

body.app-body.page-historico .history-event-list::before {
    content: "";
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: 14px;
    width: 2px;
    background: linear-gradient(180deg, rgba(20,184,166,0.42), rgba(37,99,235,0.12));
}

body.app-body.page-historico .history-event-card {
    position: relative;
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 14px;
}

body.app-body.page-historico .history-event-marker {
    position: relative;
    z-index: 1;
    width: 30px;
    height: 30px;
    margin-top: 20px;
    border: 6px solid rgba(237,243,246,0.98);
    border-radius: 999px;
    background: var(--polish-primary);
    box-shadow: 0 0 0 1px rgba(15,118,110,0.22), 0 10px 20px rgba(15,118,110,0.18);
}

body.app-body.page-historico .history-event-body {
    overflow: hidden;
    border: 1px solid rgba(198,211,221,0.92);
    border-radius: 20px;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(248,250,252,0.90));
    box-shadow: 0 16px 34px rgba(17,24,39,0.08);
    transition:
        transform 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease;
}

body.app-body.page-historico .history-event-card:hover .history-event-body {
    transform: translateY(-2px);
    border-color: rgba(15,118,110,0.24);
    box-shadow: 0 22px 44px rgba(17,24,39,0.12);
}

body.app-body.page-historico .history-event-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 18px 12px;
}

body.app-body.page-historico .history-event-type {
    margin-bottom: 10px;
}

body.app-body.page-historico .history-event-head h2 {
    margin: 0;
    color: var(--polish-ink);
    font-size: 20px;
    line-height: 1.18;
    letter-spacing: 0;
}

body.app-body.page-historico .history-event-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

body.app-body.page-historico .history-event-meta span {
    color: var(--polish-muted);
    font-size: 12px;
    font-weight: 800;
}

body.app-body.page-historico .history-event-highlights {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
    padding: 0 18px 16px;
}

body.app-body.page-historico .history-event-highlights span {
    min-height: 58px;
    padding: 11px 12px;
    border: 1px solid rgba(198,211,221,0.78);
    border-radius: 14px;
    background: rgba(241,245,249,0.72);
    color: var(--polish-ink);
    font-size: 13px;
    font-weight: 850;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

body.app-body.page-historico .history-event-highlights strong {
    display: block;
    margin-bottom: 5px;
    color: var(--polish-muted);
    font-size: 11px;
    text-transform: uppercase;
}

body.app-body.page-historico .history-change-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0 18px 16px;
}

body.app-body.page-historico .history-change-list span {
    max-width: 100%;
    padding: 8px 10px;
    border: 1px solid rgba(15,118,110,0.18);
    border-radius: 999px;
    background: rgba(20,184,166,0.08);
    color: #0f766e;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

body.app-body.page-historico .history-event-details {
    border-top: 1px solid rgba(215,226,234,0.86);
}

body.app-body.page-historico .history-event-details summary {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 12px 18px;
    color: var(--polish-primary);
    font-size: 13px;
    font-weight: 950;
    cursor: pointer;
    list-style: none;
}

body.app-body.page-historico .history-event-details summary::-webkit-details-marker {
    display: none;
}

body.app-body.page-historico .history-event-details summary:hover {
    background: rgba(20,184,166,0.07);
}

body.app-body.page-historico .history-event-details[open] {
    background: rgba(255,255,255,0.54);
}

body.app-body.page-historico .history-event-details[open] summary {
    border-bottom: 1px solid rgba(215,226,234,0.78);
}

body.app-body.page-historico .history-event-details .history-field-grid,
body.app-body.page-historico .history-event-details .history-text-block,
body.app-body.page-historico .history-event-details .history-photo-section {
    margin: 16px 18px;
}

body.app-body.page-historico .history-text-block {
    padding: 14px;
    border: 1px solid rgba(198,211,221,0.80);
    border-radius: 16px;
    background: rgba(248,250,252,0.78);
}

body.app-body.page-historico .history-text-block strong {
    display: block;
    margin-bottom: 8px;
    color: var(--polish-ink);
    font-size: 13px;
}

body.app-body.page-historico .history-text-block p {
    margin: 0;
    color: #334155;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

body.app-body.page-historico .history-event-card.tech-in,
body.app-body.page-historico .owner-card.tech-in {
    opacity: 0;
    transform: translateY(14px);
}

body.app-body.is-ready.page-historico .history-event-card.tech-in,
body.app-body.is-ready.page-historico .owner-card.tech-in {
    animation: invySurfaceIn 0.48s cubic-bezier(.2,.8,.2,1) both;
    animation-delay: var(--motion-delay, 0ms);
}

@media (max-width: 1280px) {
    body.app-body.page-historico .history-search {
        grid-template-columns: minmax(260px, 1fr) minmax(190px, 0.7fr) repeat(2, minmax(145px, 0.45fr));
    }

    body.app-body.page-historico .history-search .btn {
        width: 100%;
    }

    body.app-body.page-historico .history-summary-grid,
    body.app-body.page-historico .history-field-grid {
        grid-template-columns: repeat(3, minmax(160px, 1fr));
    }
}

@media (max-width: 920px) {
    body.app-body.page-historico .history-search,
    body.app-body.page-historico .history-stats,
    body.app-body.page-historico .history-summary-grid,
    body.app-body.page-historico .history-field-grid {
        grid-template-columns: 1fr 1fr;
    }

    body.app-body.page-historico .history-search-main {
        grid-column: 1 / -1;
    }

    body.app-body.page-historico .history-panel-head {
        display: grid;
    }
}

@media (max-width: 640px) {
    body.app-body.page-historico .history-search,
    body.app-body.page-historico .history-stats,
    body.app-body.page-historico .history-summary-grid,
    body.app-body.page-historico .history-field-grid,
    body.app-body.page-historico .owner-dates {
        grid-template-columns: 1fr;
    }

    body.app-body.page-historico .history-event-list::before {
        left: 11px;
    }

    body.app-body.page-historico .history-event-card {
        grid-template-columns: 24px minmax(0, 1fr);
        gap: 10px;
    }

    body.app-body.page-historico .history-event-marker {
        width: 24px;
        height: 24px;
        border-width: 5px;
    }

    body.app-body.page-historico .history-event-head,
    body.app-body.page-historico .history-event-highlights,
    body.app-body.page-historico .history-change-list {
        padding-left: 14px;
        padding-right: 14px;
    }

    body.app-body.page-historico .history-event-details .history-field-grid,
    body.app-body.page-historico .history-event-details .history-text-block,
    body.app-body.page-historico .history-event-details .history-photo-section {
        margin-left: 14px;
        margin-right: 14px;
    }
}

/* =====================================================
   Invy Command UI refresh
   Camada final de acabamento visual para telas internas.
===================================================== */

@font-face {
    font-family: "Aktiv Grotesk Ex";
    src: url("../fonts/aktiv-grotesk-ex-regular.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Aktiv Grotesk Ex";
    src: url("../fonts/aktiv-grotesk-ex-medium.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Aktiv Grotesk Ex";
    src: url("../fonts/aktiv-grotesk-ex-bold.woff2") format("woff2");
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

:root {
    --invy-font-ui: "Aktiv Grotesk Ex", Arial, Helvetica, sans-serif;
    --invy-bg: #eef4f7;
    --invy-bg-2: #f8fbfc;
    --invy-surface: #ffffff;
    --invy-surface-2: #f6fafb;
    --invy-ink: #172331;
    --invy-muted: #64748b;
    --invy-soft: #91a0ae;
    --invy-line: #d7e1e8;
    --invy-line-2: #e6edf2;
    --invy-primary: #0f766e;
    --invy-primary-2: #14b8a6;
    --invy-blue: #2563eb;
    --invy-green: #059669;
    --invy-amber: #d97706;
    --invy-red: #dc2626;
    --invy-radius: 8px;
    --invy-radius-sm: 6px;
    --invy-shadow: 0 14px 36px rgba(23, 35, 49, 0.08);
    --invy-shadow-soft: 0 8px 22px rgba(23, 35, 49, 0.06);
}

body.app-body {
    --cmd-bg: var(--invy-bg);
    --cmd-surface: var(--invy-surface);
    --cmd-surface-2: var(--invy-surface-2);
    --cmd-ink: var(--invy-ink);
    --cmd-muted: var(--invy-muted);
    --cmd-line: var(--invy-line);
    --cmd-line-2: var(--invy-line-2);
    --cmd-primary: var(--invy-primary);
    --cmd-primary-2: var(--invy-primary-2);
    --cmd-blue: var(--invy-blue);
    --polish-ink: var(--invy-ink);
    --polish-muted: var(--invy-muted);
    --polish-primary: var(--invy-primary);
    --polish-primary-2: var(--invy-primary-2);
    min-height: 100vh;
    font-family: var(--invy-font-ui);
    letter-spacing: 0;
    color: var(--invy-ink);
    background:
        linear-gradient(180deg, #f9fcfd 0%, var(--invy-bg) 100%);
}

body.app-body::before,
body.app-body::after,
body.app-body .topbar::before,
body.app-body .topbar::after,
body.app-body .panel::before,
body.app-body .panel::after,
body.app-body .stat-box::after,
body.app-body .equipment-result-card::before,
body.app-body .equipment-result-card::after,
body.app-body .history-card::before,
body.app-body .history-card::after {
    content: none !important;
}

body.app-body .layout {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    min-height: 100vh;
    background: transparent;
}

body.app-body .content {
    min-width: 0;
    padding: 24px clamp(18px, 2.4vw, 36px) 40px;
}

body.app-body .sidebar.sidebar-v2 {
    width: 300px;
    height: 100vh;
    min-height: 100vh;
    padding: 14px;
    border-right: 1px solid rgba(215, 225, 232, 0.92);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: none;
    backdrop-filter: blur(18px);
}

body.app-body .sidebar.sidebar-v2 > .sidebar-v2-main {
    gap: 12px;
}

body.app-body .side-brand,
body.app-body .side-status-card,
body.app-body .side-user-card {
    border-radius: var(--invy-radius);
    border-color: var(--invy-line-2);
    background: var(--invy-surface);
    box-shadow: var(--invy-shadow-soft);
}

body.app-body .side-brand {
    grid-template-columns: 72px minmax(0, 1fr);
    min-height: 74px;
    gap: 12px;
    padding: 10px;
}

body.app-body .side-brand-logo-wrap {
    width: 72px;
    height: 50px;
    border-radius: var(--invy-radius-sm);
    background: linear-gradient(135deg, #223044 0%, #111827 100%);
}

body.app-body .side-brand-logo {
    width: 58px;
    max-height: 30px;
}

body.app-body .side-brand-copy strong,
body.app-body .side-user-copy strong {
    color: var(--invy-ink);
    font-size: 14px;
    font-weight: 900;
    line-height: 1.2;
}

body.app-body .side-brand-copy small,
body.app-body .side-user-copy span {
    color: var(--invy-muted);
    font-size: 11px;
    font-weight: 700;
}

body.app-body .side-status-card {
    gap: 10px;
    padding: 11px 12px;
    background: #f4fbfa;
    border-color: rgba(15, 118, 110, 0.16);
    box-shadow: none;
}

body.app-body .side-status-dot,
body.app-body .workspace-dot {
    background: var(--invy-green);
    box-shadow: 0 0 0 5px rgba(5, 150, 105, 0.12);
}

body.app-body .side-primary-action {
    min-height: 44px;
    border-radius: var(--invy-radius);
    background: linear-gradient(135deg, var(--invy-primary) 0%, var(--invy-primary-2) 100%);
    box-shadow: 0 14px 26px rgba(15, 118, 110, 0.2);
}

body.app-body .side-primary-action:hover {
    box-shadow: 0 16px 30px rgba(15, 118, 110, 0.26);
}

body.app-body .side-primary-action span {
    width: 22px;
    height: 22px;
    border-radius: 999px;
}

body.app-body .side-nav {
    gap: 14px;
}

body.app-body .side-nav-section {
    gap: 5px;
}

body.app-body .side-nav-title {
    margin: 0 7px 5px;
    color: var(--invy-soft);
    font-size: 10px;
    letter-spacing: 0.08em;
}

body.app-body .side-nav-link {
    grid-template-columns: 34px minmax(0, 1fr);
    min-height: 52px;
    gap: 10px;
    padding: 8px 10px;
    border-radius: var(--invy-radius);
    color: var(--invy-muted);
}

body.app-body .side-nav-link:hover,
body.app-body .side-nav-link.active {
    border-color: rgba(15, 118, 110, 0.2);
    background: #f8fcfc;
    color: var(--invy-ink);
    box-shadow: 0 8px 20px rgba(23, 35, 49, 0.07);
    transform: translateY(-1px);
}

body.app-body .side-nav-link.active::before {
    top: 10px;
    bottom: 10px;
    width: 3px;
    background: var(--invy-primary);
}

body.app-body .side-nav-icon {
    width: 34px;
    height: 34px;
    border-radius: var(--invy-radius-sm);
    background: var(--invy-surface-2);
    color: #708196;
}

body.app-body .side-nav-link:hover .side-nav-icon,
body.app-body .side-nav-link.active .side-nav-icon {
    background: rgba(20, 184, 166, 0.12);
    color: var(--invy-primary);
}

body.app-body .side-nav-copy strong {
    color: inherit;
    font-size: 13px;
    font-weight: 900;
}

body.app-body .side-nav-copy small {
    margin-top: 2px;
    color: var(--invy-muted);
    font-size: 11px;
    font-weight: 700;
}

body.app-body .side-user-card {
    gap: 10px;
    padding: 12px;
}

body.app-body .side-user-avatar {
    width: 38px;
    height: 38px;
    border-radius: var(--invy-radius-sm);
    background: #eaf5ff;
    color: var(--invy-blue);
}

body.app-body .side-logout {
    width: 34px;
    height: 34px;
    border-radius: var(--invy-radius-sm);
    background: var(--invy-surface-2);
    color: var(--invy-muted);
}

body.app-body .side-logout:hover,
body.app-body .side-logout:focus-visible {
    background: #fee2e2;
    color: var(--invy-red);
}

body.app-body .sidebar-shell-toggle {
    top: 22px;
    left: 278px;
    width: 40px;
    height: 40px;
    border-radius: var(--invy-radius);
    border-color: var(--invy-line);
    background: var(--invy-surface);
    color: var(--invy-primary);
    box-shadow: var(--invy-shadow-soft);
}

body.app-body.sidebar-is-collapsed .layout {
    grid-template-columns: 0 minmax(0, 1fr);
}

body.app-body.sidebar-is-collapsed .sidebar-shell-toggle {
    left: 16px;
    background: var(--invy-primary);
    color: #ffffff;
}

body.app-body .workspace-bar {
    min-height: 46px;
    margin-bottom: 20px;
    padding: 10px 14px;
    border-radius: var(--invy-radius);
    border: 1px solid var(--invy-line);
    background: rgba(255, 255, 255, 0.86);
    box-shadow: none;
}

body.app-body .workspace-status,
body.app-body .workspace-user {
    color: var(--invy-muted);
    font-size: 12px;
    font-weight: 700;
}

body.app-body .workspace-user strong {
    min-height: 26px;
    padding: 5px 9px;
    border-radius: 999px;
    background: rgba(20, 184, 166, 0.1);
    color: var(--invy-primary);
    font-size: 11px;
    font-weight: 900;
}

body.app-body .topbar {
    min-height: auto;
    margin: 0 0 18px;
    padding: 2px 0 18px;
    border: 0;
    border-bottom: 1px solid var(--invy-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

body.app-body .topbar h1 {
    margin: 0 0 5px;
    color: var(--invy-ink);
    font-size: clamp(28px, 3vw, 42px);
    line-height: 1.05;
    letter-spacing: 0;
}

body.app-body .subtitle {
    color: var(--invy-muted);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.45;
}

body.app-body .dashboard-title-wrap {
    align-items: center;
    gap: 16px;
}

body.app-body .dashboard-title-logo-shell {
    width: 78px;
    height: 52px;
    border-radius: var(--invy-radius);
    background: linear-gradient(135deg, #223044 0%, #111827 100%);
    box-shadow: 0 12px 22px rgba(17, 24, 39, 0.14);
}

body.app-body .dashboard-title-logo {
    width: 62px;
}

body.app-body .dashboard-actions,
body.app-body .page-actions,
body.app-body .action-row,
body.app-body .actions,
body.app-body .thumb-actions {
    gap: 8px;
}

body.app-body .btn,
body.app-body button {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 7px;
    padding: 9px 13px;
    font-family: var(--invy-font-ui);
    font-size: 13px;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: 0;
    box-shadow: none;
}

body.app-body .btn:hover,
body.app-body button:hover {
    transform: translateY(-1px);
}

body.app-body .btn-primary {
    border: 1px solid rgba(15, 118, 110, 0.18);
    background: linear-gradient(135deg, var(--invy-primary) 0%, var(--invy-primary-2) 100%);
    color: #ffffff;
    box-shadow: 0 12px 22px rgba(15, 118, 110, 0.16);
}

body.app-body .btn-primary:hover {
    box-shadow: 0 16px 26px rgba(15, 118, 110, 0.22);
}

body.app-body .btn-secondary,
body.app-body .btn-outline {
    border: 1px solid var(--invy-line);
    background: #ffffff;
    color: var(--invy-ink);
}

body.app-body .btn-secondary:hover,
body.app-body .btn-outline:hover {
    border-color: rgba(15, 118, 110, 0.26);
    background: #f5fbfa;
    color: var(--invy-primary);
}

body.app-body .btn-danger {
    border: 1px solid rgba(220, 38, 38, 0.2);
    background: #fee2e2;
    color: #991b1b;
}

body.app-body .btn-danger:hover {
    background: var(--invy-red);
    color: #ffffff;
}

body.app-body td .btn,
body.app-body td button,
body.app-body .btn-compact {
    min-height: 30px;
    padding: 7px 10px;
    font-size: 12px;
}

body.app-body .panel,
body.app-body .stat-box,
body.app-body .equipment-result-card,
body.app-body .history-card,
body.app-body .thumb-card,
body.app-body .history-data-card,
body.app-body .history-field-grid > div,
body.app-body .owner-card,
body.app-body .insight-row,
body.app-body .status-row,
body.app-body .result-grid div,
body.app-body .empty-state,
body.app-body .security-callout {
    border-radius: var(--invy-radius);
    border: 1px solid var(--invy-line);
    background: var(--invy-surface);
    box-shadow: var(--invy-shadow-soft);
}

body.app-body .panel {
    padding: 20px;
    overflow: hidden;
}

body.app-body .panel:hover,
body.app-body .equipment-result-card:hover,
body.app-body .history-card:hover,
body.app-body .stat-box:hover {
    transform: none;
    box-shadow: var(--invy-shadow);
}

body.app-body .section-title {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 14px;
    color: var(--invy-ink);
    font-size: 18px;
    font-weight: 900;
    line-height: 1.2;
}

body.app-body .section-title::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: var(--invy-red);
    box-shadow: none;
}

body.app-body .section-spacer {
    margin-top: 22px;
}

body.app-body .muted,
body.app-body .section-note,
body.app-body .table-note,
body.app-body .field-hint {
    color: var(--invy-muted);
    font-size: 12px;
    font-weight: 700;
}

body.app-body .stats {
    grid-template-columns: repeat(4, minmax(160px, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

body.app-body .stat-box {
    position: relative;
    min-height: 116px;
    padding: 16px 16px 15px;
    overflow: hidden;
}

body.app-body .stat-box::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    border-radius: var(--invy-radius) 0 0 var(--invy-radius);
    background: var(--invy-primary);
}

body.app-body .stat-box.accent-blue::before,
body.app-body .stats .stat-box:nth-child(2)::before {
    background: var(--invy-blue);
}

body.app-body .stat-box.accent-green::before,
body.app-body .stats .stat-box:nth-child(3)::before {
    background: var(--invy-green);
}

body.app-body .stat-box.accent-amber::before,
body.app-body .stats .stat-box:nth-child(4)::before {
    background: var(--invy-amber);
}

body.app-body .stat-box.accent-red::before {
    background: var(--invy-red);
}

body.app-body .stat-kicker {
    display: inline-flex;
    margin-bottom: 10px;
    color: var(--invy-muted);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.app-body .stat-box h3,
body.app-body .stat-box.accent-blue h3,
body.app-body .stat-box.accent-green h3,
body.app-body .stat-box.accent-amber h3,
body.app-body .stat-box.accent-red h3,
body.app-body .stats .stat-box:nth-child(2) h3,
body.app-body .stats .stat-box:nth-child(3) h3,
body.app-body .stats .stat-box:nth-child(4) h3 {
    margin: 0 0 6px;
    color: var(--invy-ink);
    font-size: 34px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: 0;
}

body.app-body .stat-box p {
    margin: 0;
    color: var(--invy-muted);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.3;
}

body.app-body .dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.58fr);
    gap: 16px;
    align-items: start;
}

body.app-body .dashboard-panel {
    min-width: 0;
}

body.app-body .insight-list,
body.app-body .status-list {
    display: grid;
    gap: 10px;
}

body.app-body .insight-row,
body.app-body .status-row {
    position: relative;
    min-height: 50px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 12px;
    box-shadow: none;
}

body.app-body .insight-row span,
body.app-body .status-row span {
    color: var(--invy-muted);
    font-size: 13px;
    font-weight: 800;
    min-width: 0;
    overflow-wrap: anywhere;
}

body.app-body .insight-row strong,
body.app-body .status-row strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    min-height: 28px;
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--invy-surface-2);
    color: var(--invy-ink);
    font-size: 15px;
    font-weight: 900;
}

body.app-body .alert-row.is-critical {
    border-color: rgba(220, 38, 38, 0.22);
    background: #fff7f7;
}

body.app-body .alert-row.is-critical strong {
    background: #fee2e2;
    color: #991b1b;
}

body.app-body .alert-row.is-warning {
    border-color: rgba(217, 119, 6, 0.24);
    background: #fffaf0;
}

body.app-body .alert-row.is-warning strong {
    background: #fef3c7;
    color: #92400e;
}

body.app-body .sector-row {
    padding-bottom: 18px;
}

body.app-body .sector-row i {
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 8px;
    height: 4px;
    border-radius: 999px;
    background: var(--invy-line-2);
    overflow: hidden;
}

body.app-body .sector-row i::before {
    content: "";
    display: block;
    width: var(--meter, 0%);
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--invy-primary), var(--invy-blue));
}

body.app-body .grid,
body.app-body .grid-3,
body.app-body .grid-2,
body.app-body .history-summary-grid,
body.app-body .history-field-grid,
body.app-body .result-grid {
    gap: 12px;
}

body.app-body .grid {
    grid-template-columns: repeat(4, minmax(170px, 1fr));
}

body.app-body .grid-3 {
    grid-template-columns: repeat(3, minmax(180px, 1fr));
}

body.app-body .grid-2 {
    grid-template-columns: repeat(2, minmax(180px, 1fr));
}

body.app-body label {
    margin-bottom: 6px;
    color: #334155;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.25;
}

body.app-body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
body.app-body select,
body.app-body textarea {
    min-height: 42px;
    border: 1px solid var(--invy-line);
    border-radius: 7px;
    background: #ffffff;
    color: var(--invy-ink);
    padding: 10px 12px;
    font-family: var(--invy-font-ui);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    box-shadow: none;
}

body.app-body textarea {
    min-height: 104px;
}

body.app-body input::placeholder,
body.app-body textarea::placeholder {
    color: #94a3b8;
}

body.app-body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):hover,
body.app-body select:hover,
body.app-body textarea:hover {
    border-color: #c4d2dc;
}

body.app-body input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):focus,
body.app-body select:focus,
body.app-body textarea:focus {
    border-color: var(--invy-primary);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.14);
}

body.app-body input[type="file"] {
    padding: 8px;
}

body.app-body .search-box,
body.app-body .quick-search-form,
body.app-body .logs-search,
body.app-body.page-historico .history-search {
    gap: 10px;
}

body.app-body .inventory-filter-form .search-box {
    display: grid;
    grid-template-columns: minmax(260px, 1.4fr) repeat(3, minmax(180px, 1fr));
}

body.app-body .actions {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--invy-line-2);
}

body.app-body .table-wrap,
body.app-body .logs-table-wrap {
    width: 100%;
    overflow: auto;
    border: 1px solid var(--invy-line);
    border-radius: var(--invy-radius);
    background: #ffffff;
    box-shadow: none;
}

body.app-body .panel > .table-wrap:first-child,
body.app-body .section-title + .table-wrap {
    margin-top: 0;
}

body.app-body table,
body.app-body .audit-table {
    width: 100%;
    min-width: 900px;
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
}

body.app-body th,
body.app-body .audit-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: 12px 13px;
    border-bottom: 1px solid rgba(17, 24, 39, 0.14);
    background: #1f2a37;
    color: #f8fafc;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    white-space: nowrap;
}

body.app-body th:first-child {
    border-top-left-radius: var(--invy-radius-sm);
}

body.app-body th:last-child {
    border-top-right-radius: var(--invy-radius-sm);
}

body.app-body td {
    padding: 12px 13px;
    border-bottom: 1px solid var(--invy-line-2);
    background: #ffffff;
    color: #243244;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    vertical-align: middle;
}

body.app-body tbody tr:nth-child(even) td {
    background: #f8fbfc;
}

body.app-body tbody tr:last-child td {
    border-bottom: 0;
}

body.app-body tbody tr:hover td,
body.app-body tbody tr:hover td:last-child {
    background: #eefcfb;
}

body.app-body .asset-code,
body.app-body .service-code,
body.app-body .equipment-link,
body.app-body .log-asset {
    color: #0f766e;
    font-family: "Consolas", "Courier New", monospace;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0;
}

body.app-body .service-code {
    color: #1d4ed8;
}

body.app-body .equipment-link:hover {
    color: var(--invy-primary);
    text-decoration: underline;
}

body.app-body .status-pill,
body.app-body .badge,
body.app-body .photo-action-badge,
body.app-body .log-action-pill,
body.app-body .log-entity-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 24px;
    padding: 5px 9px;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
    box-shadow: none;
}

body.app-body .status-pill[data-status*="dispon"],
body.app-body .status-pill[data-status*="estoque"],
body.app-body .status-pill[data-status*="sim"] {
    border-color: rgba(5, 150, 105, 0.22);
    background: #ecfdf5;
    color: #047857;
}

body.app-body .status-pill[data-status*="uso"] {
    border-color: rgba(37, 99, 235, 0.22);
    background: #eff6ff;
    color: #1d4ed8;
}

body.app-body .status-pill[data-status*="manuten"],
body.app-body .status-pill[data-status*="format"] {
    border-color: rgba(217, 119, 6, 0.24);
    background: #fffbeb;
    color: #92400e;
}

body.app-body .status-pill[data-status*="doada"],
body.app-body .status-pill[data-status*="doado"],
body.app-body .status-pill[data-status*="doa"] {
    border-color: rgba(100, 116, 139, 0.28);
    background: #f8fafc;
    color: #334155;
}

body.app-body .status-pill[data-status*="venc"],
body.app-body .status-pill[data-status*="bloq"],
body.app-body .status-pill[data-status*="nao"] {
    border-color: rgba(220, 38, 38, 0.22);
    background: #fef2f2;
    color: #991b1b;
}

body.app-body .form-panel,
body.app-body .equipment-form-panel {
    padding: 0;
}

body.app-body .equipment-form {
    display: grid;
}

body.app-body .form-block,
body.app-body .form-section {
    margin: 0;
    padding: 20px;
    border: 0;
    border-bottom: 1px solid var(--invy-line-2);
    border-radius: 0;
    background: #ffffff;
}

body.app-body .form-block.primary-block {
    background: linear-gradient(180deg, #ffffff 0%, #fbfdfe 100%);
}

body.app-body .form-section summary {
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: var(--invy-ink);
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
    list-style: none;
}

body.app-body .form-section summary::-webkit-details-marker {
    display: none;
}

body.app-body .form-section summary::after {
    content: "+";
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border: 1px solid var(--invy-line);
    border-radius: 999px;
    color: var(--invy-primary);
    font-size: 16px;
    line-height: 1;
}

body.app-body .form-section[open] summary::after {
    content: "-";
}

body.app-body .form-section-body {
    padding-top: 14px;
}

body.app-body .required-marker {
    color: var(--invy-red);
}

body.app-body .linked-equipment-presets {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 9px;
}

body.app-body .linked-equipment-presets button {
    min-height: 30px;
    border: 1px solid var(--invy-line);
    background: var(--invy-surface-2);
    color: var(--invy-muted);
}

body.app-body .linked-equipment-presets button:hover {
    border-color: rgba(15, 118, 110, 0.24);
    background: #ecfdf5;
    color: var(--invy-primary);
}

body.app-body .form-actions {
    position: sticky;
    bottom: 0;
    z-index: 5;
    margin: 0;
    padding: 14px 20px;
    border-top: 1px solid var(--invy-line);
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(12px);
}

body.app-body .thumb-grid,
body.app-body .history-photo-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
}

body.app-body .thumb-card {
    padding: 8px;
}

body.app-body .thumb-card img,
body.app-body .result-photo-strip img {
    height: 180px;
    border-radius: var(--invy-radius-sm);
    background: #f8fafc;
    object-fit: contain;
}

body.app-body .equipment-result-card {
    padding: 18px;
}

body.app-body .equipment-result-card.is-primary {
    border-color: rgba(15, 118, 110, 0.24);
    background: linear-gradient(180deg, #ffffff 0%, #f7fdfc 100%);
}

body.app-body .equipment-result-head {
    gap: 12px;
}

body.app-body .result-kicker {
    color: var(--invy-primary);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.08em;
}

body.app-body .equipment-result-head h2 {
    margin: 4px 0;
    color: var(--invy-ink);
    font-size: 26px;
    letter-spacing: 0;
}

body.app-body .equipment-result-head p {
    color: var(--invy-muted);
}

body.app-body .result-grid div {
    min-height: 68px;
    padding: 12px;
    box-shadow: none;
}

body.app-body .result-grid span,
body.app-body .history-data-card span,
body.app-body .history-field-grid span {
    color: var(--invy-muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

body.app-body .result-grid strong,
body.app-body .history-data-card strong,
body.app-body .history-field-grid strong {
    color: var(--invy-ink);
    font-size: 13px;
    font-weight: 900;
    overflow-wrap: anywhere;
}

body.app-body.page-historico .history-filter-panel,
body.app-body.page-historico .history-current-panel,
body.app-body.page-historico .owners-panel,
body.app-body.page-historico .history-timeline-panel {
    padding: 18px;
}

body.app-body.page-historico .history-search {
    grid-template-columns: minmax(280px, 1.3fr) minmax(170px, 0.58fr) repeat(2, minmax(140px, 0.42fr)) auto auto;
}

body.app-body.page-historico .history-search-main input {
    padding-left: 42px;
}

body.app-body.page-historico .history-active-filters span,
body.app-body.page-historico .history-count-pill {
    border-color: rgba(15, 118, 110, 0.16);
    background: #ecfdf5;
    color: var(--invy-primary);
}

body.app-body.page-historico .history-summary-grid,
body.app-body.page-historico .history-field-grid {
    grid-template-columns: repeat(4, minmax(160px, 1fr));
}

body.app-body.page-historico .history-data-card,
body.app-body.page-historico .history-field-grid > div,
body.app-body.page-historico .owner-card,
body.app-body.page-historico .history-event-body {
    border-radius: var(--invy-radius);
    border-color: var(--invy-line);
    background: #ffffff;
    box-shadow: var(--invy-shadow-soft);
}

body.app-body.page-historico .history-owner-timeline {
    gap: 12px;
}

body.app-body.page-historico .owner-card {
    padding: 14px;
}

body.app-body.page-historico .owner-card.is-current {
    border-color: rgba(15, 118, 110, 0.26);
    background: #f4fbfa;
}

body.app-body.page-historico .history-event-list {
    gap: 14px;
}

body.app-body.page-historico .history-event-list::before {
    background: var(--invy-line);
}

body.app-body.page-historico .history-event-marker {
    border-color: var(--invy-bg);
    background: var(--invy-primary);
}

body.app-body.page-historico .history-event-head {
    padding: 16px 16px 10px;
}

body.app-body.page-historico .history-event-head h2 {
    color: var(--invy-ink);
    font-size: 18px;
    letter-spacing: 0;
}

body.app-body.page-historico .history-event-highlights,
body.app-body.page-historico .history-change-list {
    padding-left: 16px;
    padding-right: 16px;
}

body.app-body.page-historico .history-event-highlights span {
    border-radius: var(--invy-radius);
    border-color: var(--invy-line-2);
    background: var(--invy-surface-2);
}

body.app-body.page-historico .history-event-details summary {
    color: var(--invy-primary);
}

body.app-body .security-callout {
    padding: 14px;
    border-color: rgba(217, 119, 6, 0.2);
    background: #fffbeb;
    color: #92400e;
    box-shadow: none;
}

body.app-body .security-callout strong {
    color: #78350f;
}

body.app-body .empty-state,
body.app-body .empty-table-cell {
    padding: 22px;
    border-style: dashed;
    background: #f8fafc;
    color: var(--invy-muted);
    font-weight: 900;
    text-align: center;
}

body.app-body .toast-message {
    border-radius: var(--invy-radius);
    background: #ffffff;
    color: var(--invy-ink);
    box-shadow: 0 18px 44px rgba(23, 35, 49, 0.16);
}

body.app-body .toast-body strong {
    color: var(--invy-ink);
}

body.app-body .toast-body span {
    color: var(--invy-muted);
}

body.login-page.login-v2-page,
.login-v2-page {
    font-family: var(--invy-font-ui);
    background:
        linear-gradient(135deg, #eef4f7 0%, #f8fbfc 50%, #e7f3f3 100%);
    color: var(--invy-ink);
}

.login-v2-page::before,
.login-v2-page::after {
    content: none !important;
}

.login-v2-shell {
    width: min(1180px, calc(100vw - 40px));
    min-height: min(720px, calc(100vh - 52px));
    border: 1px solid rgba(215, 225, 232, 0.94);
    border-radius: var(--invy-radius);
    background: #ffffff;
    box-shadow: 0 28px 70px rgba(23, 35, 49, 0.14);
    overflow: hidden;
}

.login-v2-visual {
    border: 0;
    border-radius: 0;
    background:
        linear-gradient(145deg, #111827 0%, #0f172a 64%, #0f766e 140%);
    box-shadow: none;
}

.login-v2-visual::before,
.login-v2-visual::after {
    opacity: 0.24;
}

.login-v2-logo.login-logo-mono,
.login-v2-logo,
.login-v2-monitor,
.login-v2-panel {
    border-radius: var(--invy-radius);
}

.login-v2-monitor {
    border-color: rgba(255, 255, 255, 0.14);
    background: rgba(15, 23, 42, 0.66);
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.24);
}

.login-v2-panel {
    border: 0;
    border-radius: 0;
    background: #ffffff;
    color: var(--invy-ink);
    box-shadow: none;
}

.login-v2-panel::before {
    content: none !important;
}

.login-v2-kicker {
    border-color: rgba(15, 118, 110, 0.18);
    background: #ecfdf5;
    color: var(--invy-primary);
}

.login-v2-heading h1 {
    color: var(--invy-ink);
    font-size: clamp(34px, 4vw, 52px);
    letter-spacing: 0;
}

.login-v2-heading p,
.login-v2-panel-footer,
.login-v2-panel-footer small {
    color: var(--invy-muted);
}

.login-v2-field label {
    color: #334155;
}

.login-v2-input {
    border-color: var(--invy-line);
    border-radius: var(--invy-radius);
    background: #ffffff;
}

.login-v2-input input {
    color: var(--invy-ink);
}

.login-v2-input input::placeholder {
    color: #94a3b8;
}

.login-v2-input:hover,
.login-v2-input:focus-within {
    border-color: var(--invy-primary);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.14);
}

.login-v2-input > svg,
.login-v2-toggle {
    color: var(--invy-muted);
}

.login-v2-submit {
    border-radius: var(--invy-radius);
    background: linear-gradient(135deg, var(--invy-primary) 0%, var(--invy-primary-2) 100%);
    color: #ffffff;
    box-shadow: 0 14px 26px rgba(15, 118, 110, 0.2);
}

.login-v2-submit:hover {
    box-shadow: 0 18px 34px rgba(15, 118, 110, 0.26);
}

@media (max-width: 1180px) {
    body.app-body .layout {
        grid-template-columns: 280px minmax(0, 1fr);
    }

    body.app-body .sidebar.sidebar-v2 {
        width: 280px;
    }

    body.app-body .sidebar-shell-toggle {
        left: 258px;
    }

    body.app-body .dashboard-grid {
        grid-template-columns: 1fr;
    }

    body.app-body .stats {
        grid-template-columns: repeat(2, minmax(180px, 1fr));
    }

    body.app-body .inventory-filter-form .search-box {
        grid-template-columns: repeat(2, minmax(180px, 1fr));
    }

    body.app-body.page-historico .history-search {
        grid-template-columns: repeat(2, minmax(180px, 1fr));
    }

    body.app-body.page-historico .history-search-main {
        grid-column: 1 / -1;
    }
}

@media (max-width: 980px) {
    body.app-body .layout {
        grid-template-columns: 1fr;
    }

    body.app-body .sidebar.sidebar-v2 {
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 80;
        width: min(300px, 86vw);
        transform: translateX(0);
    }

    body.app-body.sidebar-is-collapsed .sidebar.sidebar-v2 {
        transform: translateX(calc(-100% - 24px));
    }

    body.app-body .sidebar-shell-toggle {
        top: 14px;
        left: calc(min(300px, 86vw) - 20px);
    }

    body.app-body.sidebar-is-collapsed .sidebar-shell-toggle {
        left: 14px;
    }

    body.app-body .content {
        padding: 70px 16px 32px;
    }

    body.app-body .grid,
    body.app-body .grid-3,
    body.app-body .grid-2,
    body.app-body.page-historico .history-summary-grid,
    body.app-body.page-historico .history-field-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .login-v2-shell {
        grid-template-columns: 1fr;
        width: min(760px, calc(100vw - 28px));
    }

    .login-v2-visual {
        min-height: 280px;
    }
}

@media (max-width: 760px) {
    body.app-body .content {
        padding-left: 12px;
        padding-right: 12px;
    }

    body.app-body .workspace-bar,
    body.app-body .topbar,
    body.app-body .dashboard-title-wrap,
    body.app-body .dashboard-actions,
    body.app-body .page-actions,
    body.app-body .actions,
    body.app-body .action-row {
        display: grid;
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    body.app-body .topbar h1 {
        font-size: 30px;
    }

    body.app-body .dashboard-title-logo-shell {
        display: none;
    }

    body.app-body .stats,
    body.app-body .grid,
    body.app-body .grid-3,
    body.app-body .grid-2,
    body.app-body .inventory-filter-form .search-box,
    body.app-body.page-historico .history-search,
    body.app-body.page-historico .history-summary-grid,
    body.app-body.page-historico .history-field-grid,
    body.app-body.page-historico .owner-dates {
        grid-template-columns: 1fr;
    }

    body.app-body .panel,
    body.app-body .form-block,
    body.app-body .form-section {
        padding: 14px;
    }

    body.app-body .form-actions {
        padding: 12px 14px;
    }

    body.app-body .table-wrap,
    body.app-body .logs-table-wrap {
        border: 0;
        background: transparent;
    }

    body.app-body .table-wrap table,
    body.app-body .table-wrap thead,
    body.app-body .table-wrap tbody,
    body.app-body .table-wrap th,
    body.app-body .table-wrap td,
    body.app-body .table-wrap tr {
        display: block;
        min-width: 0;
    }

    body.app-body .table-wrap thead {
        display: none;
    }

    body.app-body .table-wrap tr {
        margin-bottom: 10px;
        border: 1px solid var(--invy-line);
        border-radius: var(--invy-radius);
        background: #ffffff;
        overflow: hidden;
        box-shadow: var(--invy-shadow-soft);
    }

    body.app-body .table-wrap td {
        display: grid;
        grid-template-columns: minmax(110px, 0.48fr) minmax(0, 1fr);
        gap: 10px;
        padding: 10px 12px;
        border-bottom: 1px solid var(--invy-line-2);
        background: #ffffff !important;
    }

    body.app-body .table-wrap td::before {
        content: attr(data-label);
        color: var(--invy-muted);
        font-size: 10px;
        font-weight: 900;
        letter-spacing: 0.04em;
        text-transform: uppercase;
    }

    body.app-body .table-wrap td[data-label="Ações"],
    body.app-body .table-wrap td[data-label="Ação"],
    body.app-body .table-wrap td[data-label="Histórico"],
    body.app-body .table-wrap td[data-label="Mais"] {
        grid-template-columns: 1fr;
    }

    body.app-body .table-wrap td[data-label="Ações"]::before,
    body.app-body .table-wrap td[data-label="Ação"]::before,
    body.app-body .table-wrap td[data-label="Histórico"]::before,
    body.app-body .table-wrap td[data-label="Mais"]::before {
        display: none;
    }

    body.app-body .btn,
    body.app-body button,
    body.app-body .btn-compact {
        width: 100%;
    }

    .login-v2-shell {
        width: min(100vw - 20px, 560px);
        min-height: auto;
    }

    .login-v2-visual {
        display: none;
    }

    .login-v2-panel {
        padding: 28px 20px;
    }

    .login-v2-heading h1 {
        font-size: 34px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-body *,
    body.app-body *::before,
    body.app-body *::after,
    .login-v2-page *,
    .login-v2-page *::before,
    .login-v2-page *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* Dashboard funcional: cards e alertas clicaveis */
body.app-body .dashboard-stat-link {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

body.app-body .dashboard-stat-link:hover {
    border-color: rgba(15, 118, 110, 0.22);
    background: #f9fdfd;
    transform: translateY(-2px);
}

body.app-body .stat-action {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 12px;
    color: var(--invy-primary);
    font-size: 11px;
    font-weight: 900;
}

body.app-body .stat-action::after,
body.app-body .alert-link::after {
    content: ">";
    font-weight: 900;
}

body.app-body .alert-link {
    grid-template-columns: minmax(0, 1fr) auto 18px;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

body.app-body .alert-link:hover {
    transform: translateY(-1px);
    box-shadow: var(--invy-shadow-soft);
}

body.app-body .alert-link > span {
    display: grid;
    gap: 3px;
}

body.app-body .alert-link b {
    color: var(--invy-ink);
    font-size: 13px;
    font-weight: 900;
}

body.app-body .alert-link small {
    color: var(--invy-muted);
    font-size: 11px;
    font-weight: 800;
}

body.app-body .alert-link::after {
    color: var(--invy-primary);
}

body.app-body .active-filter-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 12px;
    padding: 10px 12px;
    border: 1px solid rgba(15, 118, 110, 0.18);
    border-radius: var(--invy-radius);
    background: #ecfdf5;
}

body.app-body .active-filter-bar span {
    color: var(--invy-primary);
    font-size: 12px;
    font-weight: 900;
}

body.app-body .active-filter-bar a {
    color: var(--invy-ink);
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
}

body.app-body .active-filter-bar a:hover {
    color: var(--invy-primary);
}

body.app-body .sector-link {
    grid-template-columns: minmax(0, 1fr) auto 18px;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

body.app-body .sector-link:hover {
    border-color: rgba(37, 99, 235, 0.22);
    background: #f8fbff;
    transform: translateY(-1px);
}

body.app-body .sector-link::after {
    content: ">";
    color: var(--invy-primary);
    font-weight: 900;
}

@media (max-width: 760px) {
    body.app-body .active-filter-bar {
        display: grid;
    }
}

/* Garantias Dell */
body.app-body .warranty-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 26px;
    padding: 5px 9px;
    border: 1px solid #d7e1e8;
    border-radius: 8px;
    background: #f8fafc;
    color: #334155;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
}

body.app-body .warranty-pill[data-warranty="em_garantia"],
body.app-body .warranty-form-card[data-warranty="em_garantia"],
body.app-body .warranty-summary[data-warranty="em_garantia"] {
    border-color: rgba(5, 150, 105, 0.26);
    background: #ecfdf5;
    color: #047857;
}

body.app-body .warranty-pill[data-warranty="vencendo"],
body.app-body .warranty-form-card[data-warranty="vencendo"],
body.app-body .warranty-summary[data-warranty="vencendo"] {
    border-color: rgba(217, 119, 6, 0.3);
    background: #fffbeb;
    color: #92400e;
}

body.app-body .warranty-pill[data-warranty="vencida"],
body.app-body .warranty-form-card[data-warranty="vencida"],
body.app-body .warranty-summary[data-warranty="vencida"] {
    border-color: rgba(220, 38, 38, 0.26);
    background: #fef2f2;
    color: #991b1b;
}

body.app-body .warranty-pill[data-warranty="sem_data"],
body.app-body .warranty-form-card[data-warranty="sem_data"],
body.app-body .warranty-summary[data-warranty="sem_data"] {
    border-color: rgba(100, 116, 139, 0.24);
    background: #f8fafc;
    color: #475569;
}

body.app-body .table-subline {
    display: block;
    margin-top: 6px;
    color: var(--invy-muted);
    font-size: 11px;
    font-weight: 800;
}

body.app-body .result-status-stack {
    display: grid;
    justify-items: end;
    gap: 8px;
}

body.app-body .warranty-summary,
body.app-body .warranty-form-card {
    display: grid;
    gap: 8px;
    margin: 0 0 14px;
    padding: 12px;
    border: 1px solid var(--invy-line);
    border-radius: 8px;
}

body.app-body .warranty-summary > div,
body.app-body .warranty-form-card > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

body.app-body .warranty-summary span,
body.app-body .warranty-form-card span {
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

body.app-body .warranty-summary strong,
body.app-body .warranty-form-card strong {
    color: var(--invy-ink);
    font-size: 14px;
    font-weight: 900;
}

body.app-body .warranty-summary p,
body.app-body .warranty-form-card p,
body.app-body .warranty-summary small,
body.app-body .warranty-form-card small,
body.app-body .section-note {
    color: var(--invy-muted);
}

body.app-body .warranty-filter-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 14px 0;
}

body.app-body .warranty-filter-strip a {
    min-height: 32px;
    padding: 8px 10px;
    border: 1px solid var(--invy-line);
    border-radius: 8px;
    background: #ffffff;
    color: var(--invy-muted);
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
}

body.app-body .warranty-filter-strip a:hover,
body.app-body .warranty-filter-strip a.is-active {
    border-color: rgba(15, 118, 110, 0.28);
    background: #ecfdf5;
    color: var(--invy-primary);
}

body.app-body .warranty-report-panel .stats {
    margin-top: 18px;
}

/* Login refinado */
body.login-page.login-v2-page,
.login-v2-page {
    min-height: 100vh;
    min-height: 100svh;
    padding: 28px;
    background: linear-gradient(135deg, #f4f7fa 0%, #ffffff 54%, #eef3f6 100%);
    color: #111827;
}

.login-v2-shell {
    width: min(1080px, calc(100vw - 40px));
    min-height: 660px;
    grid-template-columns: minmax(360px, 0.88fr) minmax(420px, 1.12fr);
    border: 1px solid #d7e1e8;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.14);
}

.login-v2-visual {
    padding: 34px;
    border-right: 1px solid rgba(255, 255, 255, 0.14);
    background:
        linear-gradient(135deg, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0)),
        linear-gradient(160deg, #111827 0%, #1f2937 48%, #d71920 150%);
    border-radius: 0;
}

.login-v2-visual::before,
.login-v2-visual::after {
    content: none !important;
}

.login-v2-brand {
    align-items: center;
}

.login-logo-mono {
    width: 88px;
    height: 52px;
    padding: 6px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.08);
}

.login-logo-wordmark {
    max-width: 74px;
    max-height: 36px;
    object-fit: contain;
}

.login-v2-brand strong {
    color: #ffffff;
}

.login-v2-brand small {
    color: #cbd5e1;
    letter-spacing: 0;
}

.login-v2-showcase {
    align-self: center;
    display: grid;
    gap: 24px;
    width: min(420px, 100%);
    margin: 36px auto;
}

.login-showcase-copy {
    display: grid;
    gap: 12px;
}

.login-showcase-copy span {
    color: #fca5a5;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.login-showcase-copy h2 {
    max-width: 360px;
    color: #ffffff;
    font-size: 34px;
    line-height: 1.12;
    letter-spacing: 0;
}

.login-showcase-board {
    display: grid;
    gap: 10px;
    padding: 16px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 8px;
    background: rgba(15, 23, 42, 0.66);
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.24);
}

.login-board-top,
.login-board-row {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 10px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.06);
}

.login-board-top span {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #22c55e;
}

.login-board-top strong,
.login-board-row strong {
    color: #ffffff;
    font-size: 13px;
}

.login-board-top small {
    color: #86efac;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.login-board-row {
    grid-template-columns: minmax(0, 1fr) auto;
}

.login-board-row span {
    color: #cbd5e1;
    font-size: 12px;
    font-weight: 800;
}

.login-v2-panel {
    padding: 58px;
    border-radius: 0;
    background: #ffffff;
}

.login-v2-kicker {
    min-height: 28px;
    border-radius: 8px;
    border-color: rgba(215, 25, 32, 0.18);
    background: #fff1f2;
    color: #be123c;
    letter-spacing: 0;
}

.login-v2-heading h1 {
    color: #111827;
    font-size: 42px;
    line-height: 1.08;
    letter-spacing: 0;
}

.login-v2-heading p {
    color: #64748b;
}

.login-v2-input input {
    height: 54px;
    border-radius: 8px;
    border-color: #d7e1e8;
    background: #ffffff;
    color: #111827;
}

.login-v2-input input:focus {
    border-color: #d71920;
    box-shadow: 0 0 0 3px rgba(215, 25, 32, 0.12);
}

.login-v2-input:focus-within > svg {
    color: #d71920;
}

.login-v2-submit {
    height: 54px;
    border-radius: 8px;
    background: #d71920;
    box-shadow: 0 14px 28px rgba(215, 25, 32, 0.22);
}

.login-v2-submit:hover {
    background: #b91c1c;
    box-shadow: 0 18px 34px rgba(185, 28, 28, 0.24);
}

.login-v2-footer,
.login-v2-panel-footer {
    letter-spacing: 0;
}

@media (max-width: 1080px) {
    .login-v2-shell {
        grid-template-columns: 1fr;
        width: min(760px, calc(100vw - 28px));
    }

    .login-v2-visual {
        min-height: 330px;
        border-right: 0;
    }

    .login-v2-showcase {
        margin: 28px 0 0;
    }
}

@media (max-width: 760px) {
    body.login-page.login-v2-page,
    .login-v2-page {
        padding: 12px;
    }

    .login-v2-shell {
        width: min(100%, 560px);
        min-height: auto;
    }

    .login-v2-visual {
        display: none;
    }

    .login-v2-panel {
        padding: 28px 20px;
    }

    .login-v2-heading h1 {
        font-size: 34px;
    }

    body.app-body .result-status-stack {
        justify-items: start;
    }
}

/* Invy white label - camada final de login e marca interna */
body.login-page.login-v2-page,
.login-v2-page {
    --inv-ink: #111827;
    --inv-muted: #64748b;
    --inv-line: #dbe5ea;
    --inv-soft: #f6f8fb;
    --inv-panel: #ffffff;
    min-height: 100vh;
    min-height: 100svh;
    display: grid;
    place-items: center;
    padding: 28px;
    background:
        linear-gradient(135deg, #f6f8fb 0%, #ffffff 48%, #eefbf8 100%);
    color: var(--inv-ink);
    overflow: auto;
}

body.login-page.login-v2-page::before,
body.login-page.login-v2-page::after,
.login-v2-page::before,
.login-v2-page::after {
    content: none !important;
}

.login-v2-shell {
    width: min(1120px, calc(100vw - 36px));
    min-height: 680px;
    display: grid;
    grid-template-columns: minmax(360px, 0.92fr) minmax(420px, 1.08fr);
    overflow: hidden;
    border: 1px solid rgba(203, 213, 225, 0.92);
    border-radius: 8px;
    background: var(--inv-panel);
    box-shadow: 0 28px 76px rgba(15, 23, 42, 0.14);
}

.login-v2-visual {
    position: relative;
    display: grid;
    grid-template-rows: auto 1fr auto;
    gap: 28px;
    min-width: 0;
    padding: 34px;
    border-right: 1px solid var(--inv-line);
    border-radius: 0;
    background:
        linear-gradient(180deg, #fbfdff 0%, #f1f7f6 100%);
    box-shadow: none;
}

.login-v2-visual::before,
.login-v2-visual::after {
    content: none !important;
}

.login-v2-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.login-invy-mark {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 8px;
    background:
        linear-gradient(135deg, #101820 0%, var(--login-accent, #2563eb) 100%);
    color: #ffffff;
    font-size: 28px;
    font-weight: 900;
    line-height: 1;
    box-shadow: 0 12px 28px rgba(37, 99, 235, 0.22);
}

.login-v2-brand strong {
    display: block;
    color: var(--inv-ink);
    font-size: 18px;
    font-weight: 900;
    line-height: 1.1;
}

.login-v2-brand small {
    display: block;
    margin-top: 4px;
    color: var(--inv-muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0;
}

.login-v2-showcase {
    align-self: center;
    display: grid;
    gap: 22px;
    width: min(430px, 100%);
    margin: 0 auto;
}

.login-showcase-copy {
    display: grid;
    gap: 10px;
}

.login-showcase-copy span {
    color: var(--login-accent, #2563eb);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.login-showcase-copy h2 {
    max-width: 390px;
    color: var(--inv-ink);
    font-size: 34px;
    line-height: 1.12;
    letter-spacing: 0;
}

.login-showcase-board {
    display: grid;
    gap: 10px;
    padding: 16px;
    border: 1px solid rgba(203, 213, 225, 0.9);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.1);
}

.login-board-top,
.login-board-row {
    display: grid;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    padding: 9px 12px;
    border: 1px solid #edf2f7;
    border-radius: 8px;
    background: #fbfdff;
}

.login-board-top {
    grid-template-columns: 14px minmax(0, 1fr) auto;
}

.login-board-top span {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--login-accent-alt, #14b8a6);
    box-shadow: 0 0 0 4px rgba(20, 184, 166, 0.12);
}

.login-board-top strong,
.login-board-row strong {
    min-width: 0;
    color: var(--inv-ink);
    font-size: 13px;
    font-weight: 900;
    line-height: 1.2;
}

.login-board-top small {
    color: #047857;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.login-board-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.login-metric {
    min-height: 60px;
    display: grid;
    align-content: center;
    gap: 6px;
    padding: 10px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background:
        linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.login-metric span,
.login-board-row span {
    min-width: 0;
    color: var(--inv-muted);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
}

.login-metric strong {
    color: var(--login-accent, #2563eb);
    font-size: 14px;
    font-weight: 900;
    line-height: 1.2;
}

.login-board-row {
    grid-template-columns: minmax(0, 1fr) auto;
}

.login-v2-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: var(--inv-muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0;
}

.login-v2-panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 58px;
    border: 0;
    border-radius: 0;
    background: #ffffff;
    color: var(--inv-ink);
    box-shadow: none;
}

.login-v2-panel::before {
    content: none !important;
}

.login-client-badge {
    align-self: flex-start;
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    max-width: 100%;
    margin-bottom: 24px;
    padding: 7px 10px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #ffffff;
    color: var(--inv-muted);
    font-size: 12px;
    font-weight: 900;
}

.login-client-logo {
    max-width: 70px;
    max-height: 22px;
    object-fit: contain;
}

.login-v2-heading {
    display: grid;
    gap: 14px;
    margin-bottom: 30px;
}

.login-v2-kicker {
    width: max-content;
    max-width: 100%;
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 8px;
    background: rgba(37, 99, 235, 0.08);
    color: var(--login-accent, #2563eb);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.login-v2-heading h1 {
    color: var(--inv-ink);
    font-size: 42px;
    line-height: 1.08;
    letter-spacing: 0;
}

.login-v2-heading p {
    max-width: 470px;
    color: var(--inv-muted);
    font-size: 15px;
    line-height: 1.58;
}

.login-v2-form {
    display: grid;
    gap: 18px;
}

.login-v2-field {
    display: grid;
    gap: 8px;
}

.login-v2-field label {
    color: #334155;
    font-size: 13px;
    font-weight: 900;
}

.login-v2-input {
    min-height: 56px;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 0 14px;
    border: 1px solid var(--inv-line);
    border-radius: 8px;
    background: #ffffff;
    color: var(--inv-muted);
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.login-v2-input:hover,
.login-v2-input:focus-within {
    border-color: var(--login-accent, #2563eb);
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.login-v2-input > svg,
.login-v2-toggle svg,
.login-v2-submit svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.login-v2-input:focus-within > svg,
.login-v2-toggle:hover {
    color: var(--login-accent, #2563eb);
}

.login-v2-input input {
    width: 100%;
    height: 54px;
    min-width: 0;
    padding: 0;
    border: 0 !important;
    outline: 0;
    background: transparent;
    color: var(--inv-ink);
    box-shadow: none !important;
}

.login-v2-input input::placeholder {
    color: #94a3b8;
}

.login-v2-toggle {
    width: 38px;
    height: 38px;
    display: inline-grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--inv-muted);
    cursor: pointer;
}

.login-v2-submit {
    min-height: 56px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    margin-top: 4px;
    border: 0;
    border-radius: 8px;
    background:
        linear-gradient(135deg, var(--login-accent, #2563eb) 0%, var(--login-accent-alt, #14b8a6) 100%);
    color: #ffffff;
    font-size: 15px;
    font-weight: 900;
    box-shadow: 0 16px 30px rgba(37, 99, 235, 0.2);
    cursor: pointer;
    transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
}

.login-v2-submit:hover {
    transform: translateY(-1px);
    filter: saturate(1.04);
    box-shadow: 0 20px 38px rgba(37, 99, 235, 0.25);
}

.login-v2-panel-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 30px;
    color: var(--inv-muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0;
}

.login-v2-panel-footer small {
    color: var(--inv-muted);
    font-size: 12px;
    font-weight: 800;
}

body.app-body .side-brand-logo-wrap {
    border-color: rgba(255, 255, 255, 0.12);
    background:
        linear-gradient(135deg, #101820 0%, var(--app-brand-accent, #2563eb) 100%);
}

body.app-body .side-brand-invy {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: #ffffff;
    font-size: 22px;
    font-weight: 900;
    line-height: 1;
}

body.app-body .workspace-dot,
body.app-body .side-status-dot {
    background: var(--app-brand-accent-alt, #14b8a6);
}

body.app-body .workspace-user strong {
    color: var(--app-brand-accent, #2563eb);
}

@media (max-width: 1080px) {
    .login-v2-shell {
        width: min(760px, calc(100vw - 28px));
        min-height: auto;
        grid-template-columns: 1fr;
    }

    .login-v2-visual {
        min-height: 360px;
        border-right: 0;
        border-bottom: 1px solid var(--inv-line);
    }

    .login-v2-showcase {
        margin: 0;
    }
}

@media (max-width: 760px) {
    body.login-page.login-v2-page,
    .login-v2-page {
        padding: 12px;
    }

    .login-v2-shell {
        width: min(100%, 560px);
        border-radius: 8px;
    }

    .login-v2-visual {
        display: none;
    }

    .login-v2-panel {
        padding: 28px 20px;
    }

    .login-client-badge {
        margin-bottom: 20px;
    }

    .login-v2-heading h1 {
        font-size: 32px;
    }

    .login-v2-panel-footer {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    .login-v2-submit {
        transition: none;
    }

    .login-v2-submit:hover {
        transform: none;
    }
}

/* Invy login hotfix: tela cheia, campos limpos e sem icones quebrados */
body.login-page.login-v2-page *,
body.login-page.login-v2-page *::before,
body.login-page.login-v2-page *::after,
.login-v2-page *,
.login-v2-page *::before,
.login-v2-page *::after {
    box-sizing: border-box !important;
}

body.login-page.login-v2-page,
.login-v2-page {
    min-height: 100vh !important;
    min-height: 100svh !important;
    display: block !important;
    padding: 0 !important;
    background: #f8fafc !important;
    overflow: hidden !important;
    overflow-x: hidden !important;
}

.login-v2-shell {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 100vh !important;
    min-height: 100svh !important;
    height: 100vh !important;
    height: 100svh !important;
    display: grid !important;
    grid-template-columns: minmax(380px, 44vw) minmax(420px, 1fr) !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.login-v2-visual {
    min-height: 100vh !important;
    min-height: 100svh !important;
    height: 100vh !important;
    height: 100svh !important;
    gap: 18px !important;
    padding: clamp(28px, 4vw, 56px) !important;
    border-right: 1px solid #e2e8f0 !important;
    background:
        linear-gradient(180deg, #ffffff 0%, #eef7f5 100%) !important;
}

.login-v2-panel {
    min-height: 100vh !important;
    min-height: 100svh !important;
    height: 100vh !important;
    height: 100svh !important;
    padding: clamp(28px, 5vw, 70px) !important;
    overflow: hidden !important;
    min-width: 0 !important;
    max-width: 100% !important;
}

.login-invy-mark,
.login-v2-logo,
.login-v2-logo.login-logo-mono,
.login-client-badge {
    display: none !important;
}

.login-v2-brand {
    align-items: flex-start !important;
}

.login-v2-brand strong {
    color: #0f172a !important;
    font-size: clamp(28px, 3vw, 42px) !important;
    line-height: 1 !important;
}

.login-v2-brand small {
    max-width: 300px !important;
    color: #64748b !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
}

.login-v2-showcase {
    width: min(520px, 100%) !important;
    margin: 0 !important;
}

.login-showcase-copy h2 {
    max-width: 520px !important;
    font-size: clamp(30px, 3.45vw, 48px) !important;
}

.login-showcase-board {
    width: 100% !important;
    border-color: #dbe5ea !important;
}

.login-v2-heading {
    max-width: 660px !important;
    width: min(100%, 660px) !important;
    min-width: 0 !important;
}

.login-v2-heading h1 {
    font-size: clamp(38px, 4.2vw, 56px) !important;
    line-height: 1.02 !important;
}

.login-v2-heading p {
    max-width: 620px !important;
    font-size: 17px !important;
    overflow-wrap: anywhere !important;
}

.login-v2-heading {
    gap: 10px !important;
    margin-bottom: 22px !important;
}

.login-v2-form {
    gap: 14px !important;
}

.login-v2-form {
    width: min(100%, 640px) !important;
    min-width: 0 !important;
    max-width: 100% !important;
}

.login-v2-input {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 58px !important;
    display: block !important;
    padding: 0 !important;
    border: 1px solid #d7e1e8 !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    box-shadow: none !important;
}

.login-v2-input:hover,
.login-v2-input:focus-within {
    border-color: var(--login-accent, #2563eb) !important;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12) !important;
}

.login-v2-input > svg,
.login-v2-toggle {
    display: none !important;
}

.login-v2-input input {
    width: 100% !important;
    height: 58px !important;
    display: block !important;
    padding: 0 18px !important;
    border: 0 !important;
    border-radius: 8px !important;
    outline: 0 !important;
    background: transparent !important;
    color: #0f172a !important;
    font-size: 16px !important;
    line-height: 58px !important;
    box-shadow: none !important;
}

.login-v2-submit {
    width: min(100%, 640px) !important;
    max-width: 100% !important;
    min-height: 58px !important;
    margin-top: 8px !important;
    border-radius: 8px !important;
}

.login-v2-submit svg {
    display: none !important;
}

.login-v2-panel-footer {
    width: min(100%, 640px) !important;
    max-width: 100% !important;
    justify-content: flex-start !important;
    margin-top: 20px !important;
    padding-top: 18px !important;
    border-top: 1px solid #e2e8f0 !important;
}

.login-v2-panel-footer small {
    display: none !important;
}

@media (max-width: 900px) {
    body.login-page.login-v2-page,
    .login-v2-page {
        overflow: auto !important;
        overflow-x: hidden !important;
    }

    .login-v2-shell {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        grid-template-columns: 1fr !important;
    }

    .login-v2-visual {
        display: none !important;
    }

    .login-v2-panel {
        min-height: 100vh !important;
        min-height: 100svh !important;
        height: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding: 28px 20px !important;
    }

    .login-v2-heading,
    .login-v2-form,
    .login-v2-submit,
    .login-v2-panel-footer {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .login-v2-heading h1 {
        font-size: 34px !important;
    }
}

body.app-body.page-relatorios .report-export-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    align-items: start;
    margin-top: 22px;
    margin-bottom: 22px;
}

body.app-body.page-relatorios .report-export-group {
    border-left: 3px solid var(--app-brand-accent);
    padding: 4px 0 4px 16px;
}

body.app-body.page-relatorios .report-export-title {
    color: var(--app-text);
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0;
    margin-bottom: 6px;
}

body.app-body.page-relatorios .report-export-group .section-note {
    margin-bottom: 12px;
}

body.app-body.page-relatorios .report-export-group .actions {
    margin-top: 0;
}

@media (max-width: 900px) {
    body.app-body.page-relatorios .report-export-grid {
        grid-template-columns: 1fr;
    }
}

body.app-body .service-form-layout {
    display: grid;
    gap: 18px;
}

body.app-body .service-form-group {
    display: grid;
    gap: 12px;
    padding-left: 14px;
    border-left: 3px solid rgba(237, 20, 43, 0.56);
}

body.app-body .service-form-title {
    color: rgba(255, 255, 255, 0.86);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0;
    text-transform: uppercase;
}

body.app-body .last-service-card {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid #d7e1e8;
    border-left: 3px solid #0f766e;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

body.app-body .last-service-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

body.app-body .last-service-head span,
body.app-body .last-service-grid span {
    color: #64748b;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

body.app-body .last-service-head strong {
    color: #0f172a;
    font-size: 15px;
    font-weight: 950;
    line-height: 1.25;
    text-align: right;
}

body.app-body .last-service-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

body.app-body .last-service-grid > div {
    min-height: 56px;
    padding: 10px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f8fafc;
}

body.app-body .last-service-grid strong {
    display: block;
    margin-top: 5px;
    color: #0f172a;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

body.app-body .last-service-card p {
    margin: 0;
    color: #334155;
    font-size: 13px;
    font-weight: 750;
    line-height: 1.45;
}

body.app-body .service-form-layout .warranty-form-card {
    margin: 0;
}

body.app-body.page-historico .history-event-description {
    margin: 0 18px 16px;
    padding: 12px 14px;
    border: 1px solid rgba(15, 118, 110, 0.16);
    border-left: 4px solid var(--polish-primary);
    border-radius: 8px;
    background: rgba(20, 184, 166, 0.08);
    color: #0f172a;
    font-size: 14px;
    font-weight: 850;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

@media (max-width: 640px) {
    body.app-body .service-form-group {
        padding-left: 10px;
    }

    body.app-body .last-service-head {
        display: grid;
    }

    body.app-body .last-service-head strong {
        text-align: left;
    }

    body.app-body .last-service-grid {
        grid-template-columns: 1fr;
    }

    body.app-body.page-historico .history-event-description {
        margin-right: 14px;
        margin-left: 14px;
    }
}

body.app-body .invoice-link-card {
    align-items: center;
    background: rgba(248, 250, 252, 0.92);
    border: 1px solid rgba(148, 163, 184, 0.32);
    border-radius: 8px;
    display: flex;
    gap: 14px;
    justify-content: space-between;
    padding: 14px;
}

body.app-body .invoice-link-card span,
body.app-body .invoice-link-card small {
    color: #64748b;
    display: block;
    font-size: 0.82rem;
}

body.app-body .invoice-link-card strong {
    color: #0f172a;
    display: block;
    font-size: 1rem;
    margin: 3px 0;
}

body.app-body .invoice-link-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

body.app-body .equipment-form .billing-edit-field {
    position: relative;
    z-index: 2;
}

body.app-body .equipment-form .invoice-upload-card {
    position: relative;
    display: grid;
    gap: 8px;
    padding: 14px;
    border: 1px dashed rgba(148, 163, 184, 0.55);
    border-radius: 8px;
    background: #f8fafc;
}

body.app-body .equipment-form .invoice-upload-inline {
    align-items: start;
    justify-items: start;
}

body.app-body .equipment-form .invoice-upload-card label {
    display: inline-flex;
    width: auto;
    max-width: max-content;
}

body.app-body .equipment-form .invoice-upload-card input[type="file"] {
    position: relative;
    z-index: 1;
    display: block;
    width: auto;
    min-width: 280px;
    max-width: 100%;
}

body.app-body .invoice-search-panel .actions,
body.app-body .invoice-detail-panel .actions {
    margin-top: 14px;
}

body.app-body .invoice-pdf-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;
}

body.app-body .invoice-pdf-preview {
    background: #f8fafc;
    border: 1px solid #d7e1e8;
    border-left: 3px solid #0f766e;
    border-radius: 8px;
    display: grid;
    gap: 10px;
    margin-top: 12px;
    padding: 12px;
}

body.app-body .invoice-pdf-preview > strong {
    color: #0f172a;
    font-size: 14px;
    font-weight: 900;
}

body.app-body .invoice-pdf-preview small {
    color: #475569;
    font-size: 12px;
    font-weight: 750;
}

body.app-body .invoice-pdf-result-group {
    display: grid;
    gap: 7px;
}

body.app-body .invoice-pdf-result-group > strong {
    color: #334155;
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
}

body.app-body .invoice-pdf-existing {
    border: 1px solid rgba(217, 119, 6, 0.28);
    border-radius: 8px;
    background: #fffbeb;
    padding: 10px;
}

body.app-body .invoice-pdf-existing > strong {
    color: #92400e;
}

body.app-body .invoice-pdf-existing .btn {
    justify-self: start;
    min-height: 32px;
    padding: 7px 10px;
}

body.app-body .invoice-pdf-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

body.app-body .invoice-pdf-tag {
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    color: #0f172a;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.25;
    max-width: 100%;
    overflow-wrap: anywhere;
    padding: 6px 8px;
}

body.app-body .invoice-pdf-items {
    gap: 8px;
}

body.app-body .invoice-pdf-products {
    gap: 8px;
}

body.app-body .invoice-pdf-product-row {
    align-items: center;
    background: #ffffff;
    border: 1px solid #dbe4ec;
    border-radius: 8px;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 8px 9px;
}

body.app-body .invoice-pdf-product-row span {
    color: #0f172a;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

body.app-body .invoice-pdf-product-row small {
    color: #475569;
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

body.app-body .invoice-pdf-item-row {
    align-items: center;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) auto 96px;
    padding: 9px;
}

body.app-body .invoice-pdf-item-row span {
    color: #0f172a;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

body.app-body .invoice-pdf-item-row small {
    color: #475569;
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

body.app-body .invoice-pdf-item-row input[type="number"] {
    min-height: 38px;
    padding: 7px 9px;
    text-align: center;
}

@media (max-width: 720px) {
    body.app-body .invoice-link-card {
        align-items: stretch;
        flex-direction: column;
    }

    body.app-body .invoice-pdf-item-row {
        grid-template-columns: 1fr;
    }

    body.app-body .invoice-pdf-product-row {
        grid-template-columns: 1fr;
    }

    body.app-body .invoice-link-actions {
        justify-content: flex-start;
    }
}

body.app-body .dashboard-title-logo-fallback {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: #ffffff;
    font-size: 28px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0;
}

.setup-shell {
    width: min(1180px, calc(100vw - 32px));
}

.setup-panel {
    overflow-y: auto;
}

.setup-form {
    gap: 16px;
}

.setup-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.setup-optional {
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 14px;
    background: rgba(2, 6, 23, 0.18);
    padding: 12px 14px;
}

.setup-optional summary {
    cursor: pointer;
    color: #f8fafc;
    font-size: 13px;
    font-weight: 800;
}

.setup-optional-grid {
    margin-top: 14px;
}

.setup-check {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    color: #dbeafe;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
}

.setup-check input {
    width: 18px;
    height: 18px;
    margin-top: 1px;
    accent-color: var(--app-brand-accent, #2563eb);
    flex: 0 0 auto;
}

@media (max-width: 760px) {
    .setup-grid {
        grid-template-columns: 1fr;
    }
}

body.app-body .license-key {
    display: inline-block;
    max-width: 280px;
    overflow-wrap: anywhere;
    border-radius: 8px;
    background: #eef2ff;
    color: #1e1b4b;
    padding: 7px 9px;
    font-size: 12px;
    font-weight: 800;
}

body.app-body .license-status-form {
    display: grid;
    grid-template-columns: minmax(120px, 150px) minmax(160px, 1fr) auto;
    gap: 8px;
    align-items: center;
}

body.app-body .license-details summary {
    cursor: pointer;
    color: var(--app-brand-accent, #2563eb);
    font-weight: 800;
}

body.app-body .license-management-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(150px, 1fr));
    gap: 10px;
    min-width: min(560px, 72vw);
    margin-top: 12px;
    padding: 12px;
    border: 1px solid #d7e1e8;
    border-radius: 8px;
    background: #f8fbfc;
    box-shadow: 0 12px 28px rgba(23, 35, 49, 0.08);
}

body.app-body .license-management-form label {
    font-size: 12px;
    font-weight: 800;
    color: #334155;
}

body.app-body .license-management-form input,
body.app-body .license-management-form select,
body.app-body .license-management-form textarea {
    width: 100%;
}

body.app-body .checkbox-line {
    display: flex;
    align-items: center;
    gap: 8px;
}

body.app-body .checkbox-line input {
    width: auto;
}

body.app-body .license-page-shell {
    display: grid;
    gap: 18px;
}

body.app-body .license-page-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(230px, 320px);
    gap: 18px;
    align-items: stretch;
    padding: 24px;
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 8px;
    color: #eff6ff;
    background:
        linear-gradient(135deg, rgba(37, 99, 235, 0.96), rgba(15, 23, 42, 0.96)),
        #1e3a8a;
    box-shadow: 0 22px 54px rgba(15, 23, 42, 0.22);
}

body.app-body .license-page-hero.is-mandatory {
    background:
        linear-gradient(135deg, rgba(185, 28, 28, 0.96), rgba(15, 23, 42, 0.96)),
        #7f1d1d;
}

body.app-body .license-eyebrow {
    display: block;
    color: #bfdbfe;
    font-size: 12px;
    font-weight: 900;
    margin-bottom: 8px;
    text-transform: uppercase;
}

body.app-body .license-page-hero h1 {
    margin: 0 0 10px;
    color: #ffffff;
    font-size: clamp(28px, 4vw, 48px);
    line-height: 1;
}

body.app-body .license-page-hero p {
    max-width: 740px;
    margin: 0;
    color: rgba(239, 246, 255, 0.84);
    font-weight: 700;
}

body.app-body .license-version-card {
    display: grid;
    gap: 7px;
    padding: 16px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 8px;
    background: rgba(15, 23, 42, 0.28);
}

body.app-body .license-version-card span,
body.app-body .license-info-list span,
.license-status-grid span {
    color: #64748b;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

body.app-body .license-version-card span {
    color: rgba(219, 234, 254, 0.78);
}

body.app-body .license-version-card strong {
    color: #ffffff;
    font-size: 24px;
    line-height: 1;
}

body.app-body .license-page-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
    gap: 18px;
}

body.app-body .license-info-list {
    display: grid;
    gap: 10px;
}

body.app-body .license-alert-card {
    display: grid;
    gap: 5px;
    margin-bottom: 12px;
    padding: 14px;
    border: 1px solid #facc15;
    border-radius: 8px;
    background: #fef9c3;
    color: #713f12;
}

body.app-body .license-alert-card.danger {
    border-color: #fca5a5;
    background: #fef2f2;
    color: #7f1d1d;
}

body.app-body .license-alert-card strong {
    font-size: 15px;
    font-weight: 900;
}

body.app-body .license-alert-card p {
    margin: 0;
    font-weight: 750;
}

body.app-body .license-info-list div {
    display: grid;
    gap: 5px;
    padding: 13px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f8fafc;
}

body.app-body .license-info-list strong {
    color: #0f172a;
    font-size: 18px;
}

body.app-body .license-notes {
    margin-top: 14px;
    padding: 14px;
    border: 1px solid #dbeafe;
    border-radius: 8px;
    background: #eff6ff;
}

body.app-body .license-notes strong {
    display: block;
    margin-bottom: 6px;
    color: #1e3a8a;
}

body.app-body .license-notes p,
body.app-body .muted-text {
    margin: 0;
    color: #475569;
    font-weight: 700;
}

body.app-body .license-page-actions,
.license-support-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

body.app-body .license-support-actions.inline {
    margin: 14px 0;
}

body.license-gate-page {
    align-items: center;
    min-height: 100vh;
}

.license-gate-shell {
    width: min(100%, 860px);
    margin: auto;
    padding: 24px;
}

.license-gate-panel {
    display: grid;
    gap: 18px;
    padding: 30px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 8px;
    color: #f8fafc;
    background:
        linear-gradient(135deg, rgba(127, 29, 29, 0.96), rgba(15, 23, 42, 0.96)),
        #111827;
    box-shadow: 0 28px 80px rgba(15, 23, 42, 0.36);
}

.license-gate-copy h1 {
    margin: 0 0 8px;
    color: #ffffff;
    font-size: clamp(30px, 5vw, 54px);
    line-height: 1;
}

.license-gate-copy p {
    margin: 0;
    color: rgba(248, 250, 252, 0.84);
    font-weight: 700;
}

.license-status-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.license-status-grid div,
.license-support-card {
    display: grid;
    gap: 6px;
    padding: 14px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 8px;
    background: rgba(15, 23, 42, 0.28);
}

.license-status-grid span {
    color: rgba(226, 232, 240, 0.72);
}

.license-status-grid strong,
.license-support-card strong {
    color: #ffffff;
    font-size: 18px;
}

.license-support-card span,
.license-support-card small {
    color: rgba(226, 232, 240, 0.78);
    font-weight: 700;
}

@media (max-width: 820px) {
    body.app-body .license-status-form {
        grid-template-columns: 1fr;
    }

    body.app-body .license-management-form {
        grid-template-columns: 1fr;
        min-width: 0;
    }

    body.app-body .license-page-hero,
    body.app-body .license-page-grid,
    .license-status-grid {
        grid-template-columns: 1fr;
    }
}

body.app-body .bulk-invoice-row {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid #d7e1e8;
    border-radius: 8px;
    background: #fbfdfe;
}

body.app-body .bulk-invoice-row + .bulk-invoice-row {
    margin-top: 14px;
}

body.app-body .bulk-invoice-head,
body.app-body .bulk-items-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

body.app-body .bulk-invoice-head strong {
    display: block;
    color: #0f172a;
    font-size: 14px;
    font-weight: 900;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

body.app-body .bulk-invoice-head small {
    display: block;
    margin-top: 4px;
    color: #64748b;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.35;
}

body.app-body .bulk-invoice-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

body.app-body .bulk-check {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 32px;
    margin: 0;
    padding: 6px 9px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #ffffff;
    color: #0f172a;
    font-size: 12px;
    font-weight: 850;
}

body.app-body .bulk-check input {
    width: 16px;
    height: 16px;
    margin: 0;
    padding: 0;
}

body.app-body .bulk-items-head .section-title {
    margin-bottom: 0;
}

body.app-body .bulk-item-row {
    align-items: end;
    grid-template-columns: minmax(220px, 1.4fr) minmax(100px, 0.45fr) minmax(220px, 1fr) auto;
    padding: 12px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #ffffff;
}

body.app-body .bulk-item-row + .bulk-item-row {
    margin-top: 10px;
}

body.app-body .bulk-item-actions {
    display: flex;
    align-items: end;
    justify-content: flex-end;
}

body.app-body .bulk-item-actions .btn {
    min-height: 42px;
    white-space: nowrap;
}

body.app-body .pending-resolve-form {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

body.app-body .pending-resolve-form input[type="text"] {
    min-height: 38px;
    min-width: 190px;
    padding: 8px 10px;
}

body.app-body .pending-resolve-form .btn {
    min-height: 38px;
    white-space: nowrap;
}

body.app-body .status-pill[data-status="pronto"] {
    border-color: rgba(5, 150, 105, 0.22);
    background: #ecfdf5;
    color: #047857;
}

body.app-body .status-pill[data-status="conferir"] {
    border-color: rgba(217, 119, 6, 0.24);
    background: #fffbeb;
    color: #92400e;
}

body.app-body .status-pill[data-status="duplicada"],
body.app-body .status-pill[data-status="erro"] {
    border-color: rgba(220, 38, 38, 0.22);
    background: #fef2f2;
    color: #991b1b;
}

@media (max-width: 900px) {
    body.app-body .bulk-invoice-head,
    body.app-body .bulk-items-head {
        align-items: stretch;
        flex-direction: column;
    }

    body.app-body .bulk-invoice-actions,
    body.app-body .bulk-item-actions {
        justify-content: flex-start;
    }

    body.app-body .pending-resolve-form {
        align-items: stretch;
        flex-direction: column;
    }

    body.app-body .pending-resolve-form input[type="text"] {
        min-width: 0;
    }

    body.app-body .bulk-item-row {
        grid-template-columns: 1fr;
    }
}

body.app-body .invoice-import-panel {
    display: grid;
    gap: 18px;
}

body.app-body .invoice-import-head {
    align-items: start;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
}

body.app-body .invoice-import-mode {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.app-body .invoice-import-mode-option {
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    cursor: pointer;
    display: grid;
    gap: 4px;
    min-height: 76px;
    padding: 12px;
    position: relative;
    background: #f8fafc;
    color: #0f172a;
    transition: border-color 0.16s ease, background 0.16s ease, box-shadow 0.16s ease;
}

body.app-body .invoice-import-mode-option input {
    height: 1px;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    width: 1px;
}

body.app-body .invoice-import-mode-option span {
    color: #0f172a;
    font-size: 14px;
    font-weight: 950;
    line-height: 1.25;
}

body.app-body .invoice-import-mode-option small {
    color: #64748b;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.3;
}

body.app-body .invoice-import-mode-option.is-active {
    border-color: rgba(224, 25, 25, 0.42);
    background: #fff7f7;
    box-shadow: inset 3px 0 0 rgba(224, 25, 25, 0.86);
}

body.app-body .invoice-upload-grid {
    align-items: stretch;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
}

body.app-body .invoice-upload-dropzone {
    align-content: center;
    border: 1px dashed #94a3b8;
    border-radius: 8px;
    display: grid;
    gap: 12px;
    min-height: 156px;
    padding: 18px;
    background: #f8fafc;
}

body.app-body .invoice-upload-dropzone[hidden] {
    display: none;
}

body.app-body .invoice-upload-dropzone.is-active {
    border-color: rgba(15, 118, 110, 0.55);
    background: #f0fdfa;
}

body.app-body .invoice-upload-dropzone label {
    color: #0f172a;
    font-size: 18px;
    font-weight: 950;
}

body.app-body .invoice-upload-dropzone input[type="file"] {
    width: 100%;
}

body.app-body .invoice-upload-summary {
    align-content: start;
    border: 1px solid #d7e1e8;
    border-radius: 8px;
    display: grid;
    gap: 8px;
    min-height: 156px;
    padding: 16px;
    background: #ffffff;
}

body.app-body .invoice-upload-summary strong {
    color: #0f172a;
    font-size: 16px;
    font-weight: 950;
    line-height: 1.25;
}

body.app-body .invoice-upload-summary small {
    color: #64748b;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.4;
}

body.app-body .invoice-upload-summary-list {
    display: grid;
    gap: 5px;
    margin-top: 2px;
}

body.app-body .invoice-upload-summary-list span {
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    color: #334155;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.3;
    overflow-wrap: anywhere;
    padding: 6px 8px;
    background: #f8fafc;
}

body.app-body .invoice-import-actions {
    margin-top: 0;
}

body.app-body .invoice-review-stats {
    grid-template-columns: repeat(5, minmax(130px, 1fr));
}

body.app-body .bulk-review-panel {
    display: grid;
    gap: 16px;
}

body.app-body .bulk-review-header {
    align-items: start;
    display: flex;
    gap: 16px;
    justify-content: space-between;
}

body.app-body .bulk-review-header .section-note {
    margin-bottom: 0;
}

body.app-body .bulk-review-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    justify-content: flex-end;
}

body.app-body .bulk-invoice-row {
    border-color: #d7e1e8;
    border-left: 4px solid #64748b;
    gap: 16px;
    padding: 18px;
    background: #fbfdfe;
}

body.app-body .bulk-invoice-row[data-status="pronto"] {
    border-left-color: #059669;
}

body.app-body .bulk-invoice-row[data-status="conferir"] {
    border-left-color: #d97706;
}

body.app-body .bulk-invoice-row[data-status="duplicada"],
body.app-body .bulk-invoice-row[data-status="erro"] {
    border-left-color: #dc2626;
}

body.app-body .bulk-invoice-title {
    align-items: center;
    display: grid;
    gap: 12px;
    grid-template-columns: auto minmax(0, 1fr);
}

body.app-body .bulk-file-badge {
    align-items: center;
    border: 1px solid rgba(224, 25, 25, 0.22);
    border-radius: 8px;
    color: #b91c1c;
    display: inline-flex;
    font-size: 11px;
    font-weight: 950;
    height: 38px;
    justify-content: center;
    width: 42px;
    background: #fef2f2;
}

body.app-body .bulk-invoice-metrics {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.app-body .bulk-invoice-metrics div {
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    display: grid;
    gap: 2px;
    min-height: 66px;
    padding: 10px;
    background: #ffffff;
}

body.app-body .bulk-invoice-metrics strong {
    color: #0f172a;
    font-size: 22px;
    font-weight: 950;
    line-height: 1;
}

body.app-body .bulk-invoice-metrics small {
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}

body.app-body .bulk-invoice-section {
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    display: grid;
    gap: 12px;
    padding: 14px;
    background: #ffffff;
}

body.app-body .bulk-section-title {
    color: #334155;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0;
    text-transform: uppercase;
}

body.app-body .bulk-invoice-data-grid {
    align-items: end;
}

body.app-body .bulk-detection-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.app-body .bulk-detection-box {
    align-content: start;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    display: grid;
    gap: 9px;
    min-height: 136px;
    padding: 12px;
    background: #ffffff;
}

body.app-body .bulk-detection-box > strong {
    color: #334155;
    font-size: 12px;
    font-weight: 950;
    line-height: 1.25;
    text-transform: uppercase;
}

body.app-body .bulk-detected-list {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

body.app-body .bulk-detected-item,
body.app-body .bulk-empty {
    border: 1px solid #dbe4ec;
    border-radius: 8px;
    display: grid;
    gap: 2px;
    max-width: 100%;
    padding: 7px 8px;
    background: #f8fafc;
}

body.app-body .bulk-detected-item b {
    color: #0f172a;
    font-size: 12px;
    font-weight: 950;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

body.app-body .bulk-detected-item small,
body.app-body .bulk-empty {
    color: #64748b;
    font-size: 11px;
    font-weight: 750;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

body.app-body .bulk-detected-item.is-ok {
    border-color: rgba(5, 150, 105, 0.24);
    background: #ecfdf5;
}

body.app-body .bulk-detected-item.is-warning {
    border-color: rgba(217, 119, 6, 0.28);
    background: #fffbeb;
}

body.app-body .bulk-detected-item.is-info {
    border-color: rgba(37, 99, 235, 0.22);
    background: #eff6ff;
}

body.app-body .bulk-items-head {
    border-top: 1px solid #e2e8f0;
    padding-top: 14px;
}

body.app-body .bulk-items-head .field-hint {
    margin-top: 4px;
}

body.app-body .bulk-item-row {
    grid-template-columns: minmax(220px, 1.25fr) minmax(110px, 0.38fr) minmax(220px, 1fr) auto;
}

@media (max-width: 1180px) {
    body.app-body .invoice-import-head,
    body.app-body .invoice-upload-grid {
        grid-template-columns: 1fr;
    }

    body.app-body .bulk-detection-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    body.app-body .invoice-import-mode,
    body.app-body .invoice-review-stats,
    body.app-body .bulk-invoice-metrics,
    body.app-body .bulk-detection-grid {
        grid-template-columns: 1fr;
    }

    body.app-body .bulk-review-header {
        align-items: stretch;
        flex-direction: column;
    }

    body.app-body .bulk-review-legend {
        justify-content: flex-start;
    }
}
body.app-body.page-relatorios .report-main-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
}

body.app-body.page-relatorios .report-kicker {
    display: inline-flex;
    margin-bottom: 8px;
    color: var(--app-accent, #e01919);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

body.app-body.page-relatorios .report-main-copy h2 {
    margin: 0;
    color: var(--invy-ink, #172331);
    font-size: 24px;
    font-weight: 900;
}

body.app-body.page-relatorios .report-main-copy p {
    margin: 8px 0 0;
    color: var(--invy-muted, #64748b);
    max-width: 680px;
}

body.app-body.page-relatorios .report-main-action {
    display: grid;
    gap: 8px;
    justify-items: end;
}

body.app-body.page-relatorios .report-main-action span {
    color: var(--invy-muted, #64748b);
    font-size: 12px;
}

body.app-body.page-relatorios .report-download-button {
    min-height: 48px;
    padding-inline: 22px;
}

body.app-body.page-relatorios .report-overview-stats .stat-box {
    color: inherit;
    text-decoration: none;
}

body.app-body .stats a.stat-box {
    color: inherit;
    text-decoration: none;
}

body.app-body.page-relatorios .report-tabs-panel {
    margin-top: 18px;
}

body.app-body.page-relatorios .report-tab-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

body.app-body.page-relatorios .report-tab-grid div {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--invy-line, #d7e1e8);
    border-radius: 8px;
    background: var(--invy-surface-2, #f6fafb);
}

body.app-body.page-relatorios .report-tab-grid strong {
    display: block;
    color: var(--invy-ink, #172331);
    font-size: 14px;
}

body.app-body.page-relatorios .report-tab-grid span {
    display: block;
    margin-top: 4px;
    color: var(--invy-muted, #64748b);
    font-size: 13px;
    line-height: 1.4;
}

body.app-body.page-relatorios .report-tabs-panel .section-title {
    color: var(--invy-ink, #172331);
}

body.app-body.page-relatorios .report-software-panel {
    margin-bottom: 18px;
}

body.app-body.page-relatorios .report-software-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 14px 0 10px;
}

body.app-body.page-relatorios .report-software-summary div {
    min-width: 0;
    padding: 12px 14px;
    border: 1px solid var(--invy-line, #d7e1e8);
    border-radius: 8px;
    background: var(--invy-surface-2, #f6fafb);
}

body.app-body.page-relatorios .report-software-summary span {
    display: block;
    color: var(--invy-muted, #64748b);
    font-size: 12px;
    font-weight: 800;
}

body.app-body.page-relatorios .report-software-summary strong {
    display: block;
    margin-top: 4px;
    color: var(--invy-ink, #172331);
    font-size: 24px;
    line-height: 1;
}

body.app-body.page-relatorios .report-software-percent {
    display: grid;
    grid-template-columns: 62px minmax(90px, 1fr);
    gap: 8px;
    align-items: center;
}

body.app-body.page-relatorios .report-software-percent strong {
    color: var(--invy-ink, #172331);
    font-size: 13px;
    text-align: right;
}

body.app-body.page-relatorios .report-software-percent .quality-bar-track i {
    background: #2563eb;
}

body.app-body.page-relatorios .report-software-devices {
    display: block;
    max-width: 420px;
    color: var(--invy-ink, #172331);
    font-size: 12px;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

body.app-body .report-insight-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

body.app-body .report-insight-grid-compact {
    margin-bottom: 0;
}

body.app-body .report-chart-card {
    min-width: 0;
    display: grid;
    align-content: start;
    gap: 12px;
}

body.app-body .report-chart-card.panel {
    margin: 0;
}

body.app-body .report-insight-grid-compact .report-chart-card {
    padding: 14px;
    border: 1px solid #dbe4f0;
    border-radius: 8px;
    background: #ffffff;
}

body.app-body .report-chart-card .section-title {
    margin-bottom: 0;
    font-size: 16px;
}

body.app-body .inventory-bi-panel,
body.app-body .dashboard-bi-panel,
body.app-body .report-bi-panel {
    margin-bottom: 18px;
}

body.app-body .inventory-bi-panel .quality-bi-layout {
    grid-template-columns: minmax(220px, 0.32fr) minmax(0, 1fr);
}

@media (max-width: 820px) {
    body.app-body.page-relatorios .report-main-panel,
    body.app-body.page-relatorios .report-tab-grid,
    body.app-body.page-relatorios .report-software-summary,
    body.app-body .report-insight-grid {
        grid-template-columns: 1fr;
    }

    body.app-body.page-relatorios .report-main-action {
        justify-items: stretch;
    }
}

body.app-body .side-quick-actions {
    display: grid;
    gap: 8px;
}

body.app-body .side-primary-action-blue {
    background: linear-gradient(135deg, #1d4ed8 0%, #38bdf8 100%);
    box-shadow: 0 14px 26px rgba(37, 99, 235, 0.22);
}

body.app-body .side-primary-action-blue:hover {
    box-shadow: 0 16px 30px rgba(37, 99, 235, 0.3);
}

body.app-body .side-primary-action-red {
    background: linear-gradient(135deg, #991b1b 0%, #ef4444 100%);
    box-shadow: 0 14px 26px rgba(220, 38, 38, 0.22);
}

body.app-body .side-primary-action-red:hover {
    box-shadow: 0 16px 30px rgba(220, 38, 38, 0.3);
}

body.app-body .side-primary-action-report {
    background: linear-gradient(135deg, #334155 0%, #64748b 100%);
    box-shadow: 0 14px 26px rgba(51, 65, 85, 0.2);
}

body.app-body .side-primary-action-report:hover {
    box-shadow: 0 16px 30px rgba(51, 65, 85, 0.28);
}

body.app-body .btn-new-collaborator {
    border: 1px solid rgba(37, 99, 235, 0.2);
    background: linear-gradient(135deg, #1d4ed8 0%, #38bdf8 100%);
    color: #ffffff;
    box-shadow: 0 12px 22px rgba(37, 99, 235, 0.18);
}

body.app-body .btn-new-collaborator:hover {
    background: linear-gradient(135deg, #1e40af 0%, #0284c7 100%);
    color: #ffffff;
    box-shadow: 0 16px 26px rgba(37, 99, 235, 0.26);
}

body.app-body .btn-new-invoice {
    border: 1px solid rgba(220, 38, 38, 0.2);
    background: linear-gradient(135deg, #991b1b 0%, #ef4444 100%);
    color: #ffffff;
    box-shadow: 0 12px 22px rgba(220, 38, 38, 0.18);
}

body.app-body .btn-new-invoice:hover {
    background: linear-gradient(135deg, #7f1d1d 0%, #dc2626 100%);
    color: #ffffff;
    box-shadow: 0 16px 26px rgba(220, 38, 38, 0.26);
}

body.app-body .btn-reports {
    border: 1px solid rgba(51, 65, 85, 0.18);
    background: linear-gradient(135deg, #334155 0%, #64748b 100%);
    color: #ffffff;
    box-shadow: 0 12px 22px rgba(51, 65, 85, 0.16);
}

body.app-body .btn-reports:hover {
    background: linear-gradient(135deg, #1e293b 0%, #475569 100%);
    color: #ffffff;
    box-shadow: 0 16px 26px rgba(51, 65, 85, 0.24);
}

body.app-body.page-qualidade .quality-overview .stat-box {
    min-height: 104px;
}

body.app-body .quality-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

body.app-body .quality-card {
    position: relative;
    min-height: 148px;
    display: grid;
    align-content: start;
    gap: 7px;
    padding: 16px;
    border: 1px solid #d7e1e8;
    border-left: 4px solid #64748b;
    border-radius: 8px;
    background: #ffffff;
    color: #172331;
    text-decoration: none;
    box-shadow: 0 12px 28px rgba(23, 35, 49, 0.08);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

body.app-body .quality-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px rgba(23, 35, 49, 0.12);
}

body.app-body .quality-card.is-selected {
    border-color: #94a3b8;
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.14);
}

body.app-body .quality-card.severity-critica {
    border-left-color: #dc2626;
}

body.app-body .quality-card.severity-alta {
    border-left-color: #d97706;
}

body.app-body .quality-card.severity-media {
    border-left-color: #2563eb;
}

body.app-body .quality-card.severity-baixa {
    border-left-color: #0f766e;
}

body.app-body .quality-severity,
body.app-body .quality-kicker {
    color: #64748b;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 0;
    text-transform: uppercase;
}

body.app-body .quality-card.severity-critica .quality-severity {
    color: #b91c1c;
}

body.app-body .quality-card.severity-alta .quality-severity {
    color: #b45309;
}

body.app-body .quality-card.severity-media .quality-severity {
    color: #1d4ed8;
}

body.app-body .quality-card.severity-baixa .quality-severity {
    color: #0f766e;
}

body.app-body .quality-card strong {
    color: #0f172a;
    font-size: 30px;
    font-weight: 950;
    line-height: 1;
}

body.app-body .quality-card h2 {
    margin: 0;
    color: #172331;
    font-size: 15px;
    font-weight: 950;
}

body.app-body .quality-card p {
    margin: 0;
    color: #64748b;
    font-size: 12px;
    line-height: 1.42;
}

body.app-body .quality-panel + .quality-panel {
    margin-top: 16px;
}

body.app-body .quality-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}

body.app-body .quality-section-head .section-title {
    margin-bottom: 0;
}

body.app-body .quality-panel td {
    vertical-align: top;
}

body.app-body .quality-panel .action-row {
    justify-content: flex-start;
}

body.app-body .quality-detail-list {
    display: grid;
    gap: 8px;
    margin-top: 10px;
    min-width: 360px;
}

body.app-body .quality-detail-list > div {
    display: grid;
    grid-template-columns: minmax(90px, 120px) minmax(220px, 1fr) auto;
    gap: 8px;
    align-items: center;
    padding: 8px;
    border: 1px solid #dbe4f0;
    border-radius: 8px;
    background: #f8fafc;
}

body.app-body .quality-detail-list span {
    color: #475569;
    font-size: 12px;
    line-height: 1.35;
}

body.app-body .quality-dashboard-panel {
    margin-bottom: 16px;
}

body.app-body .quality-dashboard-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 16px;
}

body.app-body .quality-bi-layout {
    display: grid;
    grid-template-columns: minmax(220px, 0.45fr) minmax(320px, 1fr);
    gap: 16px;
    align-items: stretch;
}

body.app-body .quality-total-card {
    display: grid;
    align-content: center;
    gap: 8px;
    padding: 18px;
    border: 1px solid #dbe4f0;
    border-radius: 8px;
    background: #f8fafc;
}

body.app-body .quality-total-card span,
body.app-body .quality-total-card small {
    color: #475569;
}

body.app-body .quality-total-card strong {
    color: #0f172a;
    font-size: 42px;
    line-height: 1;
}

body.app-body .quality-bar-chart {
    display: grid;
    gap: 9px;
}

body.app-body .quality-bar-row {
    display: grid;
    grid-template-columns: minmax(150px, 0.42fr) minmax(160px, 1fr) 52px;
    gap: 10px;
    align-items: center;
    padding: 9px 10px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #ffffff;
    color: #334155;
    text-decoration: none;
}

body.app-body .quality-bar-row:hover,
body.app-body .quality-bar-row.is-active {
    border-color: #94a3b8;
    background: #f8fafc;
}

body.app-body .quality-bar-row span {
    color: #334155;
    font-size: 13px;
    font-weight: 800;
}

body.app-body .quality-bar-row strong {
    color: #0f172a;
    font-size: 14px;
    text-align: right;
}

body.app-body .quality-bar-track {
    height: 12px;
    overflow: hidden;
    border-radius: 999px;
    background: #e2e8f0;
}

body.app-body .quality-bar-track i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: #64748b;
}

body.app-body .quality-bar-row.severity-critica .quality-bar-track i {
    background: #dc2626;
}

body.app-body .quality-bar-row.severity-alta .quality-bar-track i {
    background: #d97706;
}

body.app-body .quality-bar-row.severity-media .quality-bar-track i {
    background: #2563eb;
}

body.app-body .quality-bar-row.severity-baixa .quality-bar-track i {
    background: #0f766e;
}

@media (max-width: 1180px) {
    body.app-body .quality-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    body.app-body .quality-card-grid {
        grid-template-columns: 1fr;
    }

    body.app-body .quality-dashboard-head,
    body.app-body .quality-section-head {
        align-items: stretch;
        flex-direction: column;
    }

    body.app-body .quality-bi-layout {
        grid-template-columns: 1fr;
    }

    body.app-body .quality-bar-row {
        grid-template-columns: 1fr 56px;
    }

    body.app-body .quality-bar-row span {
        grid-column: 1 / -1;
    }
}

body.app-body .equipment-delete-panel {
    border: 1px solid rgba(220, 38, 38, 0.18);
    border-left: 4px solid #dc2626;
    background: #ffffff;
    box-shadow: 0 18px 38px rgba(127, 29, 29, 0.08);
}

body.app-body .delete-panel-main {
    grid-template-columns: minmax(260px, 0.9fr) minmax(300px, 1fr) auto;
    gap: 16px;
    padding: 18px;
}

body.app-body .delete-panel-copy {
    min-width: 0;
}

body.app-body .danger-kicker {
    color: #b91c1c;
    font-size: 11px;
    font-weight: 950;
}

body.app-body .equipment-delete-panel h2 {
    color: #111827;
    font-size: 18px;
}

body.app-body .equipment-delete-panel p {
    color: #64748b;
    font-size: 13px;
    line-height: 1.45;
}

body.app-body .delete-context {
    border-color: #fecaca;
    background: #fef2f2;
    color: #7f1d1d;
}

body.app-body .delete-context.is-blocked {
    border-color: #fbbf24;
    background: #fffbeb;
    color: #78350f;
}

body.app-body .delete-context strong {
    color: inherit;
}

body.app-body .delete-context ul {
    color: inherit;
}

body.app-body .delete-panel-action {
    justify-content: flex-end;
}

@media (max-width: 980px) {
    body.app-body .delete-panel-main {
        grid-template-columns: 1fr;
    }

    body.app-body .delete-panel-action {
        justify-content: flex-start;
    }
}

body.app-body .inventory-shortcuts {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

body.app-body .inventory-shortcut {
    display: grid;
    min-height: 108px;
    gap: 6px;
    padding: 14px;
    border: 1px solid #dbe4f0;
    border-left: 4px solid #64748b;
    border-radius: 8px;
    background: #ffffff;
    color: #1f2937;
    text-decoration: none;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.06);
}

body.app-body .inventory-shortcut:hover {
    transform: translateY(-1px);
    box-shadow: 0 16px 32px rgba(15, 23, 42, 0.09);
}

body.app-body .inventory-shortcut span,
body.app-body .inventory-shortcut small {
    color: #475569;
}

body.app-body .inventory-shortcut strong {
    color: #0f172a;
    font-size: 28px;
    line-height: 1;
}

body.app-body .inventory-shortcut-danger {
    border-left-color: #dc2626;
}

body.app-body .inventory-shortcut-warning {
    border-left-color: #d97706;
}

body.app-body .inventory-shortcut-info {
    border-left-color: #2563eb;
}

body.app-body .form-alert-stack {
    display: grid;
    gap: 10px;
    margin-bottom: 18px;
}

body.app-body .form-alert {
    display: grid;
    gap: 3px;
    padding: 12px 14px;
    border: 1px solid #dbe4f0;
    border-left: 4px solid #64748b;
    border-radius: 8px;
    background: #ffffff;
    color: #334155;
}

body.app-body .form-alert strong {
    color: #111827;
    font-size: 14px;
}

body.app-body .form-alert span {
    color: #475569;
    font-size: 13px;
    line-height: 1.4;
}

body.app-body .form-alert-critico {
    border-left-color: #dc2626;
    background: #fef2f2;
}

body.app-body .form-alert-atencao {
    border-left-color: #d97706;
    background: #fffbeb;
}

body.app-body .form-alert-info {
    border-left-color: #2563eb;
    background: #eff6ff;
}

body.app-body .collaborator-sync-card {
    grid-column: 1 / -1;
    display: grid;
    gap: 6px;
    padding: 13px 15px;
    border: 1px solid #fed7aa;
    border-left: 4px solid #d97706;
    border-radius: 8px;
    background: #fff7ed;
    color: #334155;
}

body.app-body .collaborator-sync-card[hidden] {
    display: none;
}

body.app-body .collaborator-sync-card strong {
    color: #111827;
    font-size: 14px;
}

body.app-body .collaborator-sync-card span,
body.app-body .collaborator-sync-card li {
    color: #475569;
    font-size: 13px;
    line-height: 1.4;
}

body.app-body .collaborator-sync-card b {
    color: #111827;
}

body.app-body .collaborator-sync-card ul {
    display: grid;
    gap: 3px;
    margin: 2px 0 0;
    padding-left: 18px;
}

body.app-body .user-permission-list,
body.app-body .user-action-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

body.app-body .user-context-cell {
    display: grid;
    gap: 2px;
}

body.app-body .user-context-cell small,
body.app-body .user-list-table td > small {
    display: block;
    margin-top: 3px;
    color: var(--app-muted);
    font-size: 12px;
    line-height: 1.3;
}

body.app-body .rh-review-panel {
    border-color: #fed7aa;
}

body.app-body .rh-review-list {
    display: grid;
    gap: 10px;
}

body.app-body .rh-review-item {
    align-items: center;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 8px;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    padding: 12px 14px;
}

body.app-body .rh-review-item strong {
    color: var(--invy-ink, #172331);
    display: block;
}

body.app-body .rh-review-item span,
body.app-body .rh-pending-subline {
    color: #9a3412;
    font-weight: 800;
}

@media (max-width: 720px) {
    body.app-body .rh-review-item {
        align-items: flex-start;
        flex-direction: column;
    }
}

body.app-body .term-send-form {
    --term-line: #d8e2ea;
    --term-ink: #172331;
    --term-muted: #64748b;
    --term-accent: #0f766e;
}

body.app-body .term-send-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
    gap: 18px;
    align-items: start;
}

body.app-body .term-config-panel,
body.app-body .term-preview-panel {
    border: 1px solid var(--term-line);
    border-radius: 8px;
    background: #ffffff;
    padding: 16px;
}

body.app-body .term-compose-head,
body.app-body .term-equipment-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px;
    border: 1px solid rgba(216,226,234,0.86);
    border-radius: 8px;
    background:
        linear-gradient(90deg, rgba(var(--term-action-rgb, 37,99,235),0.09), transparent 48%),
        #f8fafc;
}

body.app-body .term-compose-head > div,
body.app-body .term-equipment-head > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

body.app-body .term-compose-head strong,
body.app-body .term-equipment-head strong {
    color: #172331;
    font-size: 0.98rem;
    line-height: 1.2;
}

body.app-body .term-eyebrow {
    color: var(--term-action-color, #2563eb);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

body.app-body .term-field-stack {
    display: grid;
    gap: 12px;
    margin-top: 12px;
}

body.app-body .term-field-section {
    display: grid;
    gap: 12px;
    padding: 12px;
    border: 1px solid rgba(216,226,234,0.90);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 8px 20px rgba(15,23,42,0.04);
}

body.app-body .term-section-top {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #172331;
}

body.app-body .term-section-top strong {
    font-size: 0.88rem;
}

body.app-body .term-section-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: var(--term-action-soft, #eff6ff);
    color: var(--term-action-color, #2563eb);
    font-size: 0.72rem;
    font-weight: 900;
}

body.app-body .term-field-grid {
    padding: 0;
    border: 0;
    background: transparent;
}

body.app-body .term-field-section label,
body.app-body .term-coordinate-grid label {
    color: #334155;
}

body.app-body .term-field-section input,
body.app-body .term-field-section textarea,
body.app-body .term-coordinate-grid input {
    border-color: #cbd5e1;
    background: #ffffff;
    color: #0f172a;
}

body.app-body .term-field-section input:hover,
body.app-body .term-field-section textarea:hover,
body.app-body .term-coordinate-grid input:hover {
    border-color: #94a3b8;
}

body.app-body .term-field-section input:focus,
body.app-body .term-field-section textarea:focus,
body.app-body .term-coordinate-grid input:focus {
    border-color: var(--term-action-color, #2563eb);
    box-shadow: 0 0 0 3px rgba(var(--term-action-rgb, 37,99,235),0.16);
}

body.app-body .term-field-section textarea {
    min-height: 92px;
}

body.app-body .term-send-form.is-reviewing-fields .term-field-section {
    border-color: rgba(var(--term-action-rgb, 37,99,235),0.46);
    box-shadow: 0 0 0 3px rgba(var(--term-action-rgb, 37,99,235),0.10);
}

body.app-body .term-equipment-count {
    flex: 0 0 auto;
    border: 1px solid var(--term-action-border, #bfdbfe);
    border-radius: 999px;
    background: #ffffff;
    color: var(--term-action-color, #2563eb);
    padding: 6px 10px;
    font-size: 0.76rem;
    font-weight: 900;
}

body.app-body .term-equipment-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
}

body.app-body .term-equipment-card {
    position: relative;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    min-height: 104px;
    padding: 12px;
    border: 1px solid var(--term-line);
    border-radius: 8px;
    background: #f8fbfc;
    cursor: pointer;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

body.app-body .term-equipment-card:hover,
body.app-body .term-equipment-card:focus-within {
    border-color: rgba(15,118,110,0.5);
    background: #ffffff;
    box-shadow: 0 8px 22px rgba(23,35,49,0.08);
}

body.app-body .term-equipment-card:has(input[type="checkbox"]:checked) {
    border-color: rgba(var(--term-action-rgb, 37,99,235),0.40);
    background:
        linear-gradient(180deg, rgba(var(--term-action-rgb, 37,99,235),0.08), rgba(255,255,255,0.96)),
        #ffffff;
}

body.app-body .term-equipment-card input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--term-action-color, var(--term-accent));
}

body.app-body .term-equipment-copy {
    display: grid;
    gap: 3px;
    min-width: 0;
}

body.app-body .term-equipment-copy strong {
    color: var(--term-ink);
    font-size: 0.9rem;
}

body.app-body .term-equipment-copy span,
body.app-body .term-equipment-copy small {
    color: var(--term-muted);
    font-size: 0.78rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

body.app-body .term-equipment-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 5px;
}

body.app-body .term-equipment-tags em {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    border: 1px solid rgba(148,163,184,0.34);
    border-radius: 999px;
    background: #ffffff;
    color: #475569;
    padding: 3px 8px;
    font-size: 0.68rem;
    font-style: normal;
    font-weight: 850;
    line-height: 1;
}

body.app-body .term-config-panel .btn-outline,
body.app-body .term-preview-panel .btn-outline {
    border-color: #cbd5e1;
    background: #ffffff;
    color: #334155;
}

body.app-body .term-config-panel .btn-outline:hover,
body.app-body .term-preview-panel .btn-outline:hover {
    border-color: var(--term-action-border, #bfdbfe);
    background: var(--term-action-soft, #eff6ff);
    color: var(--term-action-color, #2563eb);
}

body.app-body .term-send-form > .actions {
    border-color: rgba(216,226,234,0.92);
}

body.app-body .term-preview-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    color: var(--term-ink);
    margin-bottom: 10px;
}

body.app-body .term-preview-head span {
    color: var(--term-muted);
    font-size: 0.78rem;
}

body.app-body .term-preview-page {
    position: relative;
    width: min(100%, 300px);
    aspect-ratio: 595 / 842;
    margin: 0 auto;
    border: 1px solid var(--term-line);
    border-radius: 6px;
    background:
        linear-gradient(#f8fafc 1px, transparent 1px),
        linear-gradient(90deg, #f8fafc 1px, transparent 1px),
        #ffffff;
    background-size: 100% 9%, 10% 100%, auto;
    box-shadow: 0 12px 32px rgba(23,35,49,0.08);
    overflow: hidden;
    cursor: crosshair;
}

body.app-body .term-preview-page::before {
    content: "";
    position: absolute;
    left: 12%;
    right: 12%;
    top: 7%;
    height: 42%;
    border-radius: 6px;
    background: linear-gradient(180deg, rgba(100,116,139,0.12), rgba(100,116,139,0.04));
}

body.app-body .term-preview-page::after {
    content: "S\00e3o Paulo,";
    position: absolute;
    left: 9.5%;
    top: 42.5%;
    color: #334155;
    font-size: 0.62rem;
    line-height: 1;
}

body.app-body .term-preview-line {
    position: absolute;
    left: 35%;
    right: 32%;
    top: 50%;
    height: 1px;
    background: #111827;
}

body.app-body .term-preview-page-return .term-preview-line {
    top: 56.8%;
}

body.app-body .term-preview-page-return .term-cpf-marker {
    left: 34%;
    top: 11.8%;
}

body.app-body .term-cpf-marker {
    position: absolute;
    left: 24%;
    top: 31%;
    min-width: 64px;
    padding: 3px 8px;
    border: 1px solid rgba(37,99,235,0.5);
    border-radius: 4px;
    background: rgba(37,99,235,0.1);
    color: #1e40af;
    font-size: 0.62rem;
    font-weight: 800;
    line-height: 1;
}

body.app-body .term-signature-marker {
    position: absolute;
    transform: translate(-8%, -18%);
    min-width: 112px;
    height: 34px;
    border: 1px solid rgba(15,118,110,0.55);
    border-radius: 6px;
    background: rgba(20,184,166,0.16);
    color: #0f514b;
    font-weight: 700;
    font-size: 0.78rem;
    cursor: grab;
    box-shadow: 0 8px 18px rgba(15,118,110,0.16);
}

body.app-body .term-signature-marker:active {
    cursor: grabbing;
}

body.app-body .term-coordinate-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-top: 12px;
}

body.app-body .term-preset-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

body.app-body .term-status-board {
    display: grid;
    gap: 14px;
    border: 1px solid rgba(224,25,25,0.24);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(255,255,255,0.98), rgba(248,250,252,0.94)),
        #ffffff;
    padding: 16px;
    box-shadow: 0 16px 38px rgba(0,0,0,0.18);
}

body.app-body .term-status-head,
body.app-body .term-status-summary,
body.app-body .term-row-actions,
body.app-body .term-doc-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

body.app-body .term-status-head {
    justify-content: space-between;
    padding-bottom: 10px;
    border-bottom: 1px solid #e2e8f0;
}

body.app-body .term-status-summary div {
    min-width: 112px;
    border: 1px solid #dbe4ef;
    border-radius: 8px;
    background:
        linear-gradient(180deg, #ffffff, #f8fafc);
    padding: 10px 12px;
    box-shadow: 0 8px 20px rgba(15,23,42,0.05);
}

body.app-body .term-status-summary strong {
    display: block;
    color: #172331;
    font-size: 1.2rem;
}

body.app-body .term-status-summary span,
body.app-body .term-status-live {
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 800;
}

body.app-body .term-status-live {
    border: 1px solid rgba(15,118,110,0.28);
    border-radius: 999px;
    background: #ecfdf5;
    color: #0f766e;
    padding: 6px 10px;
}

body.app-body .term-status-table {
    border: 0;
    background: transparent;
    box-shadow: none;
}

body.app-body .term-status-table table {
    min-width: 980px;
    border-collapse: separate;
    border-spacing: 0 10px;
}

body.app-body .term-status-table th {
    border: 0;
    background: transparent;
    color: #94a3b8;
    font-size: 0.72rem;
    letter-spacing: 0;
}

body.app-body .term-status-table td {
    border-top: 1px solid #e2e8f0;
    border-bottom: 1px solid #e2e8f0;
    background: #ffffff;
    vertical-align: top;
}

body.app-body .term-status-table td:first-child {
    border-left: 1px solid #e2e8f0;
    border-radius: 8px 0 0 8px;
}

body.app-body .term-status-table td:last-child {
    border-right: 1px solid #e2e8f0;
    border-radius: 0 8px 8px 0;
}

body.app-body .term-status-table .term-row {
    box-shadow: 0 10px 24px rgba(15,23,42,0.06);
}

body.app-body .term-status-table .term-row.term-kind-return td:first-child {
    box-shadow: inset 4px 0 0 #f59e0b;
}

body.app-body .term-status-table .term-row.term-kind-responsibility td:first-child {
    box-shadow: inset 4px 0 0 #2563eb;
}

body.app-body .term-state-stack {
    display: grid;
    gap: 8px;
    min-width: 190px;
}

body.app-body .term-state-top,
body.app-body .term-flow,
body.app-body .term-person {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

body.app-body .term-status-badge {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    border-radius: 999px;
    padding: 4px 10px;
    background: #e2e8f0;
    color: #334155;
    font-size: 0.76rem;
    font-weight: 900;
}

body.app-body .term-type-pill {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    margin-right: 6px;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    background: #f8fafc;
    color: #334155;
    padding: 3px 9px;
    font-size: 0.72rem;
    font-weight: 900;
}

body.app-body .term-type-pill.term-type-return {
    border-color: #fed7aa;
    background: #fff7ed;
    color: #c2410c;
}

body.app-body .term-type-pill.term-type-responsibility {
    border-color: #bfdbfe;
    background: #eff6ff;
    color: #1d4ed8;
}

body.app-body .term-flow-step {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    background: #f8fafc;
    color: #64748b;
    padding: 3px 8px;
    font-size: 0.68rem;
    font-weight: 900;
}

body.app-body .term-flow-step.is-active {
    border-color: #bbf7d0;
    background: #f0fdf4;
    color: #15803d;
}

body.app-body .term-meta-line {
    display: block;
    color: #475569;
    font-size: 0.76rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

body.app-body .term-meta-line.success {
    color: #15803d;
    font-weight: 800;
}

body.app-body .term-meta-line.warning {
    color: #b45309;
    font-weight: 800;
}

body.app-body .term-meta-line.danger {
    color: #b91c1c;
    font-weight: 800;
}

body.app-body .term-meta-line.muted {
    color: #64748b;
}

body.app-body .term-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    background: linear-gradient(135deg, #facc15, #f97316);
    color: #422006;
    font-size: 0.82rem;
    font-weight: 900;
    text-transform: uppercase;
}

body.app-body .term-person strong {
    display: block;
    color: #172331;
    font-size: 0.9rem;
}

body.app-body .term-envelope-code {
    display: inline-flex;
    max-width: 210px;
    margin-top: 6px;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #f8fafc;
    color: #475569;
    padding: 4px 7px;
    font-family: Consolas, Monaco, monospace;
    font-size: 0.68rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.app-body .term-compact-cell {
    color: #334155;
    font-size: 0.84rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}

body.app-body .term-status-badge.status-sent,
body.app-body .term-status-badge.status-delivered {
    background: #dbeafe;
    color: #1d4ed8;
}

body.app-body .term-status-badge.status-completed {
    background: #dcfce7;
    color: #15803d;
}

body.app-body .term-status-badge.status-declined,
body.app-body .term-status-badge.status-voided,
body.app-body .term-status-badge.status-error {
    background: #fee2e2;
    color: #b91c1c;
}

body.app-body .btn-compact {
    min-height: 34px;
    padding: 7px 10px;
    font-size: 0.78rem;
}

@media (max-width: 980px) {
    body.app-body .term-send-layout {
        grid-template-columns: 1fr;
    }

    body.app-body .term-preview-page {
        max-width: 320px;
    }
}

body.app-body .collaborator-action-stack-head {
    margin-bottom: 10px;
}

body.app-body .collaborator-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

body.app-body .collaborator-action-card summary {
    cursor: pointer;
    color: #111827;
    font-weight: 800;
}

body.app-body .term-action-card {
    --term-action-color: #2563eb;
    --term-action-rgb: 37,99,235;
    --term-action-soft: #eff6ff;
    --term-action-border: #bfdbfe;
    padding: 0;
    overflow: hidden;
    border-color: rgba(148,163,184,0.30);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,250,252,0.96)),
        #ffffff;
}

body.app-body .term-action-card.term-action-return {
    --term-action-color: #f97316;
    --term-action-rgb: 249,115,22;
    --term-action-soft: #fff7ed;
    --term-action-border: #fed7aa;
}

body.app-body .term-action-card > summary {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) minmax(160px, 210px) auto;
    gap: 12px;
    align-items: center;
    min-height: 86px;
    padding: 16px 18px;
    border: 0;
    background:
        linear-gradient(90deg, rgba(var(--term-action-rgb),0.13), transparent 46%),
        #ffffff;
    color: #172331;
    list-style: none;
}

body.app-body .term-action-card > summary::-webkit-details-marker {
    display: none;
}

body.app-body .term-action-card > summary::after {
    content: "";
    display: none;
}

body.app-body .term-action-card > summary:hover,
body.app-body .term-action-card > summary:focus-visible {
    background:
        linear-gradient(90deg, rgba(var(--term-action-rgb),0.17), transparent 50%),
        #ffffff;
}

body.app-body .term-action-card[open] > summary {
    border-bottom: 1px solid #e2e8f0;
}

body.app-body .term-action-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border: 1px solid var(--term-action-border);
    border-radius: 8px;
    background: var(--term-action-soft);
    color: var(--term-action-color);
    font-size: 0.82rem;
    font-weight: 950;
    letter-spacing: 0;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.75), 0 10px 22px rgba(15,23,42,0.08);
}

body.app-body .term-action-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
}

body.app-body .term-action-copy strong {
    color: #172331;
    font-size: 0.98rem;
    line-height: 1.2;
}

body.app-body .term-action-copy small {
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.35;
}

body.app-body .term-action-brand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 46px;
    padding: 8px 12px;
    border: 1px solid rgba(226,232,240,0.96);
    border-radius: 8px;
    background: rgba(255,255,255,0.86);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.82), 0 10px 24px rgba(15,23,42,0.06);
}

body.app-body .term-action-brand img {
    display: block;
    max-width: 100%;
    max-height: 36px;
    object-fit: contain;
}

body.app-body .term-action-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 64px;
    min-height: 32px;
    border: 1px solid var(--term-action-border);
    border-radius: 999px;
    background: #ffffff;
    color: var(--term-action-color);
    padding: 5px 10px;
    font-size: 0.74rem;
    font-weight: 900;
}

body.app-body .term-action-card[open] .term-action-toggle {
    background: var(--term-action-soft);
}

body.app-body .term-action-card[open] .term-action-toggle {
    font-size: 0;
}

body.app-body .term-action-card[open] .term-action-toggle::before {
    content: "Fechar";
    font-size: 0.74rem;
}

body.app-body .term-action-card > .form-alert,
body.app-body .term-action-card > .term-send-form {
    margin: 16px;
}

body.app-body .term-action-card > .form-alert + .term-send-form {
    margin-top: 10px;
}

@media (max-width: 760px) {
    body.app-body .term-compose-head,
    body.app-body .term-equipment-head {
        align-items: stretch;
        flex-direction: column;
    }

    body.app-body .term-compose-head .btn,
    body.app-body .term-equipment-count {
        width: 100%;
    }

    body.app-body .term-action-card > summary {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    body.app-body .term-action-brand {
        grid-column: 1 / -1;
        justify-self: stretch;
        min-height: 42px;
    }

    body.app-body .term-action-brand img {
        max-height: 32px;
    }

    body.app-body .term-action-toggle {
        grid-column: 1 / -1;
        width: 100%;
    }
}

body.app-body .report-quality-panel {
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(260px, 0.8fr) minmax(320px, 1.2fr);
    align-items: start;
}

body.app-body .report-quality-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

body.app-body .report-quality-grid a {
    display: grid;
    gap: 4px;
    min-height: 92px;
    padding: 12px;
    border: 1px solid #dbe4f0;
    border-radius: 8px;
    background: #ffffff;
    color: #334155;
    text-decoration: none;
}

body.app-body .report-quality-grid a strong {
    color: #0f172a;
    font-size: 24px;
    line-height: 1;
}

body.app-body .report-quality-grid a span,
body.app-body .report-quality-grid a small {
    color: #475569;
}

body.app-body.page-relatorios .report-main-panel h2,
body.app-body.page-relatorios .report-main-panel p,
body.app-body.page-relatorios .report-tab-grid strong,
body.app-body.page-relatorios .report-tab-grid span,
body.app-body.page-relatorios .section-title,
body.app-body.page-relatorios .section-note {
    color: #111827;
}

body.app-body.page-relatorios .report-main-panel p,
body.app-body.page-relatorios .report-tab-grid span,
body.app-body.page-relatorios .section-note {
    color: #475569;
}

@media (max-width: 880px) {
    body.app-body .report-quality-panel {
        grid-template-columns: 1fr;
    }
}

body.app-body .audit-filter-panel {
    padding: 18px;
}

body.app-body .audit-filter-form {
    display: grid;
    grid-template-columns: minmax(260px, 1.4fr) repeat(4, minmax(170px, 1fr));
    gap: 12px;
    align-items: end;
}

body.app-body .audit-filter-form label {
    display: block;
    margin-bottom: 6px;
    color: #334155;
    font-size: 12px;
    font-weight: 850;
}

body.app-body .audit-filter-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

body.app-body .audit-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 0.32fr);
    gap: 16px;
    align-items: start;
}

body.app-body .audit-timeline {
    position: relative;
    display: grid;
    gap: 14px;
}

body.app-body .audit-event {
    position: relative;
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 12px;
}

body.app-body .audit-event::before {
    content: "";
    position: absolute;
    left: 8px;
    top: 18px;
    bottom: -18px;
    width: 2px;
    background: #e2e8f0;
}

body.app-body .audit-event:last-child::before {
    display: none;
}

body.app-body .audit-event-marker {
    z-index: 1;
    width: 18px;
    height: 18px;
    margin-top: 18px;
    border: 3px solid #ffffff;
    border-radius: 999px;
    background: #64748b;
    box-shadow: 0 0 0 2px #cbd5e1;
}

body.app-body .audit-event-stock .audit-event-marker {
    background: #0f766e;
    box-shadow: 0 0 0 2px #99f6e4;
}

body.app-body .audit-event-danger .audit-event-marker {
    background: #dc2626;
    box-shadow: 0 0 0 2px #fecaca;
}

body.app-body .audit-event-warning .audit-event-marker {
    background: #d97706;
    box-shadow: 0 0 0 2px #fed7aa;
}

body.app-body .audit-event-success .audit-event-marker {
    background: #16a34a;
    box-shadow: 0 0 0 2px #bbf7d0;
}

body.app-body .audit-event-card {
    min-width: 0;
    padding: 14px;
    border: 1px solid #dbe4f0;
    border-left: 4px solid #64748b;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.06);
}

body.app-body .audit-event-stock .audit-event-card {
    border-left-color: #0f766e;
    background: #f0fdfa;
}

body.app-body .audit-event-danger .audit-event-card {
    border-left-color: #dc2626;
}

body.app-body .audit-event-warning .audit-event-card {
    border-left-color: #d97706;
}

body.app-body .audit-event-success .audit-event-card {
    border-left-color: #16a34a;
}

body.app-body .audit-event-head,
body.app-body .audit-event-meta,
body.app-body .audit-event-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    justify-content: space-between;
}

body.app-body .audit-event-head > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

body.app-body .audit-event-head strong {
    color: #0f172a;
}

body.app-body .audit-event-head time,
body.app-body .audit-event-meta,
body.app-body .audit-event-card p,
body.app-body .audit-help-list span,
body.app-body .audit-related-list small {
    color: #475569;
}

body.app-body .audit-event-card p {
    margin: 10px 0;
    line-height: 1.45;
}

body.app-body .audit-change-preview {
    display: grid;
    gap: 5px;
    margin: 10px 0;
    padding: 10px;
    border-radius: 8px;
    background: #f8fafc;
    color: #334155;
    font-size: 12px;
}

body.app-body .audit-help-list,
body.app-body .audit-related-list {
    display: grid;
    gap: 10px;
}

body.app-body .audit-help-list div,
body.app-body .audit-related-list a {
    display: grid;
    gap: 4px;
    padding: 11px;
    border: 1px solid #dbe4f0;
    border-radius: 8px;
    background: #ffffff;
    color: #0f172a;
    text-decoration: none;
}

body.app-body .audit-detail-head {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

body.app-body .audit-detail-head strong {
    color: #0f172a;
}

body.app-body .log-action-pill.action-stock {
    border-color: #99f6e4;
    background: #ccfbf1;
    color: #115e59;
}

body.app-body .log-action-pill.action-success {
    border-color: #bbf7d0;
    background: #dcfce7;
    color: #166534;
}

body.app-body .log-action-pill.action-danger {
    border-color: #fecaca;
    background: #fee2e2;
    color: #991b1b;
}

body.app-body .log-action-pill.action-warning {
    border-color: #fed7aa;
    background: #ffedd5;
    color: #9a3412;
}

body.app-body .log-action-pill.action-info {
    border-color: #bfdbfe;
    background: #dbeafe;
    color: #1d4ed8;
}

@media (max-width: 1200px) {
    body.app-body .audit-filter-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.app-body .audit-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    body.app-body .audit-filter-form {
        grid-template-columns: 1fr;
    }

    body.app-body .audit-event-head,
    body.app-body .audit-event-meta,
    body.app-body .audit-event-actions {
        align-items: flex-start;
        flex-direction: column;
        justify-content: flex-start;
    }
}

body.app-body .m365-products-table {
    min-width: 1540px;
}

body.app-body .m365-products-table th,
body.app-body .m365-products-table td {
    vertical-align: top;
}

body.app-body .m365-products-table th:not(:first-child),
body.app-body .m365-products-table td:not(:first-child) {
    white-space: nowrap;
}

body.app-body .m365-products-table .m365-product-name {
    min-width: 300px;
    white-space: normal;
}

body.app-body .m365-product-name strong {
    display: block;
    color: var(--invy-ink, #172331);
    font-size: 0.95rem;
    line-height: 1.25;
}

body.app-body .m365-products-table td {
    color: var(--invy-ink, #172331);
}

body.app-body .m365-products-table .table-subline {
    color: var(--invy-muted, #64748b);
}

body.app-body .m365-user-license-table {
    min-width: 1180px;
}

body.app-body .m365-user-license-table th,
body.app-body .m365-user-license-table td {
    vertical-align: top;
}

body.app-body .m365-user-license-table td,
body.app-body .m365-user-license-table strong {
    color: var(--invy-ink, #172331);
}

body.app-body .m365-user-license-table .table-subline {
    color: var(--invy-muted, #64748b);
}

body.app-body .m365-cost-stats .stat-box h3 {
    font-size: clamp(1.35rem, 2vw, 1.95rem);
}

body.app-body .m365-panel-head {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
}

body.app-body .m365-cost-overview {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.app-body .m365-summary-card {
    background: #f8fafc;
    border: 1px solid #dbe7f0;
    border-radius: 8px;
    display: grid;
    gap: 6px;
    min-height: 118px;
    padding: 16px;
}

body.app-body .m365-summary-card span,
body.app-body .m365-summary-card small {
    color: var(--invy-muted, #64748b);
    font-weight: 700;
}

body.app-body .m365-summary-card strong {
    color: var(--invy-ink, #172331);
    font-size: 1.45rem;
    line-height: 1.1;
}

body.app-body .m365-purchase-company-panel {
    border-color: #cfe0ea;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,250,252,0.97)),
        #ffffff;
}

body.app-body .m365-company-total {
    display: grid;
    gap: 3px;
    min-width: 210px;
    padding: 12px 14px;
    border: 1px solid #cfe0ea;
    border-radius: 8px;
    background: #ffffff;
    text-align: right;
}

body.app-body .m365-company-total span,
body.app-body .m365-company-card span,
body.app-body .m365-company-card small {
    color: var(--invy-muted, #64748b);
    font-size: 0.78rem;
    font-weight: 800;
}

body.app-body .m365-company-total strong {
    color: var(--invy-ink, #172331);
    font-size: 1.32rem;
    line-height: 1.1;
}

body.app-body .m365-company-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.app-body .m365-company-card {
    display: grid;
    gap: 12px;
    min-width: 0;
    min-height: 150px;
    padding: 14px;
    border: 1px solid #d7e5ee;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.06);
}

body.app-body .m365-company-card-head {
    display: grid;
    gap: 4px;
}

body.app-body .m365-company-card-head > span {
    color: #0f766e;
    text-transform: uppercase;
}

body.app-body .m365-company-card-head > strong {
    color: var(--invy-ink, #172331);
    font-size: clamp(1.14rem, 1.6vw, 1.45rem);
    line-height: 1.08;
}

body.app-body .m365-company-card-metrics {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.app-body .m365-company-card-metrics div {
    display: grid;
    gap: 2px;
    min-height: 52px;
    padding: 9px 10px;
    border: 1px solid #e2edf5;
    border-radius: 8px;
    background: #f8fafc;
}

body.app-body .m365-company-card-metrics strong {
    color: var(--invy-ink, #172331);
    font-size: 1.08rem;
}

body.app-body .m365-company-card small {
    line-height: 1.35;
}

body.app-body .m365-company-unmapped-note {
    align-items: flex-start;
    margin-bottom: 0;
}

body.app-body .m365-company-unmapped-note strong,
body.app-body .m365-company-unmapped-note span {
    min-width: 0;
    overflow-wrap: anywhere;
}

body.app-body .m365-reconcile-note {
    background: #f8fafc;
    border: 1px solid #dbe7f0;
    border-left: 4px solid #0f766e;
    border-radius: 8px;
    color: var(--invy-muted, #64748b);
    display: grid;
    gap: 6px;
    padding: 14px 16px;
}

body.app-body .m365-reconcile-note strong {
    color: var(--invy-ink, #172331);
}

body.app-body .m365-cost-users-table {
    min-width: 960px;
}

body.app-body .m365-cost-users-table th,
body.app-body .m365-cost-users-table td {
    vertical-align: top;
}

body.app-body .m365-cost-users-table td,
body.app-body .m365-cost-users-table strong {
    color: var(--invy-ink, #172331);
}

body.app-body .m365-gap-count {
    align-items: baseline;
    color: var(--invy-muted, #64748b);
    display: flex;
    font-weight: 800;
    gap: 4px;
    white-space: nowrap;
}

body.app-body .m365-gap-count strong {
    color: var(--invy-ink, #172331);
    font-size: 1.2rem;
}

body.app-body .m365-gap-search {
    margin-bottom: 0;
}

body.app-body .m365-license-gap-table {
    min-width: 1120px;
}

body.app-body .m365-license-gap-table th,
body.app-body .m365-license-gap-table td {
    vertical-align: top;
}

body.app-body .m365-license-gap-table td,
body.app-body .m365-license-gap-table strong {
    color: var(--invy-ink, #172331);
}

body.app-body .btn-sm {
    min-height: 34px;
    padding: 7px 12px;
}

body.app-body .m365-products-panel {
    background: #fbfdfe;
    border-color: #cfe0ea;
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.08);
}

body.app-body .m365-products-panel .m365-panel-head {
    align-items: flex-start;
    border-bottom: 1px solid #dce8f1;
    padding-bottom: 16px;
}

body.app-body .m365-products-panel .section-title {
    font-size: clamp(1.15rem, 1.8vw, 1.55rem);
}

body.app-body .m365-products-summary {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
}

body.app-body .m365-products-summary div {
    background: #ffffff;
    border: 1px solid #d7e5ee;
    border-radius: 8px;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.05);
    display: grid;
    gap: 4px;
    min-height: 82px;
    overflow: hidden;
    padding: 14px 14px 14px 18px;
    position: relative;
}

body.app-body .m365-products-summary div::before {
    background: #0f766e;
    bottom: 12px;
    content: "";
    left: 0;
    position: absolute;
    top: 12px;
    width: 4px;
}

body.app-body .m365-products-summary span {
    color: var(--invy-muted, #64748b);
    font-size: 0.78rem;
    font-weight: 800;
}

body.app-body .m365-products-summary strong {
    color: var(--invy-ink, #172331);
    font-size: clamp(1.12rem, 1.5vw, 1.42rem);
    line-height: 1.15;
}

body.app-body .m365-products-alert {
    align-items: center;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-left: 4px solid #c2410c;
    border-radius: 8px;
    color: #7c2d12;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    padding: 12px 14px;
}

body.app-body .m365-products-alert strong {
    flex: 0 0 auto;
}

body.app-body .m365-products-alert span {
    color: #9a3412;
    font-weight: 700;
    line-height: 1.35;
    text-align: right;
}

body.app-body .m365-product-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
}

body.app-body .m365-product-card {
    background: #ffffff;
    border: 1px solid #cfdee8;
    border-radius: 8px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.07);
    display: grid;
    gap: 16px;
    overflow: hidden;
    padding: 18px;
    position: relative;
    transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

body.app-body .m365-product-card::before {
    background: linear-gradient(90deg, #0f766e, #2563eb);
    content: "";
    height: 4px;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
}

body.app-body .m365-product-card.is-missing-price::before {
    background: #c2410c;
}

body.app-body .m365-product-card:hover {
    border-color: #9fc4d8;
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.1);
    transform: translateY(-1px);
}

body.app-body .m365-product-head {
    align-items: flex-start;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    min-height: 58px;
}

body.app-body .m365-product-title-row {
    align-items: flex-start;
    display: flex;
    gap: 12px;
    min-width: 0;
}

body.app-body .m365-product-title-row > div:last-child {
    min-width: 0;
}

body.app-body .m365-product-vector {
    align-items: center;
    background: #e9f8f5;
    border: 1px solid #bde8de;
    border-radius: 8px;
    color: #0f766e;
    display: grid;
    flex: 0 0 50px;
    height: 50px;
    justify-items: center;
    position: relative;
    width: 50px;
}

body.app-body .m365-product-vector svg {
    fill: none;
    height: 28px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
    width: 28px;
}

body.app-body .m365-product-vector span {
    background: #ffffff;
    border: 1px solid currentColor;
    border-radius: 999px;
    bottom: -7px;
    color: currentColor;
    font-size: 0.58rem;
    font-weight: 900;
    line-height: 1;
    padding: 3px 5px;
    position: absolute;
    right: -7px;
}

body.app-body .m365-product-vector[data-product-icon="copilot"] {
    background: #eef2ff;
    border-color: #c7d2fe;
    color: #4f46e5;
}

body.app-body .m365-product-vector[data-product-icon="exchange"] {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: #1d4ed8;
}

body.app-body .m365-product-vector[data-product-icon="powerbi"] {
    background: #fff7ed;
    border-color: #fed7aa;
    color: #c2410c;
}

body.app-body .m365-product-vector[data-product-icon="teams"] {
    background: #f5f3ff;
    border-color: #ddd6fe;
    color: #6d28d9;
}

body.app-body .m365-product-vector[data-product-icon="project"] {
    background: #f0fdf4;
    border-color: #bbf7d0;
    color: #15803d;
}

body.app-body .m365-product-head strong {
    color: var(--invy-ink, #172331);
    display: block;
    font-size: 1rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

body.app-body .m365-product-head span:not(.status-pill),
body.app-body .m365-product-meta,
body.app-body .m365-license-metrics span,
body.app-body .m365-product-name-field span,
body.app-body .m365-price-field span,
body.app-body .m365-price-total span {
    color: var(--invy-muted, #64748b);
    font-size: 0.82rem;
    font-weight: 700;
}

body.app-body .m365-manual-fields {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.app-body .m365-product-edit-panel {
    border-top: 1px solid #e2edf5;
    display: grid;
    gap: 12px;
    padding-top: 14px;
}

body.app-body .m365-product-name-field {
    display: grid;
    gap: 6px;
}

body.app-body .m365-product-name-field input {
    background: #fbfdfe;
    border: 1px solid #c8d9e6;
    border-radius: 8px;
    color: var(--invy-ink, #172331);
    font-size: 0.95rem;
    font-weight: 800;
    min-height: 42px;
    padding: 0 12px;
    width: 100%;
}

body.app-body .m365-product-name-field input:focus {
    border-color: var(--brand-accent, #0f766e);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.16);
    outline: 0;
}

body.app-body .m365-product-name-field.readonly {
    background: #f9fbfc;
    border: 1px solid #e2edf5;
    border-radius: 8px;
    min-height: 64px;
    padding: 10px;
}

body.app-body .m365-product-name-field.readonly strong {
    color: var(--invy-ink, #172331);
}

body.app-body .m365-license-metrics {
    display: grid;
    gap: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid #d7e5ee;
    border-radius: 8px;
}

body.app-body .m365-license-metrics div {
    background: #ffffff;
    border: 0;
    border-right: 1px solid #e2edf5;
    display: grid;
    gap: 4px;
    min-height: 76px;
    padding: 12px;
}

body.app-body .m365-license-metrics div:last-child {
    border-right: 0;
}

body.app-body .m365-license-metrics div:first-child {
    background: #effaf7;
}

body.app-body .m365-license-metrics strong {
    color: var(--invy-ink, #172331);
    font-size: clamp(1.08rem, 1.7vw, 1.42rem);
    line-height: 1.1;
    overflow-wrap: anywhere;
}

body.app-body .m365-price-row {
    align-items: end;
    background: #0f766e;
    border-radius: 8px;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) minmax(120px, 0.55fr);
    padding: 12px;
}

body.app-body .m365-price-field,
body.app-body .m365-price-total {
    display: grid;
    gap: 6px;
}

body.app-body .m365-price-row .m365-price-field:not(.readonly) > span {
    color: #d9f5ee;
}

body.app-body .m365-price-row .m365-price-field.readonly > span,
body.app-body .m365-price-row .m365-price-total > span {
    color: var(--invy-muted, #64748b);
}

body.app-body .m365-price-field input {
    background: #ffffff;
    border: 0;
    border-radius: 8px;
    color: var(--invy-ink, #172331);
    font-size: 1rem;
    font-weight: 800;
    height: 46px;
    padding: 0 12px;
    width: 100%;
}

body.app-body .m365-price-field input:focus {
    border-color: var(--brand-accent, #0f766e);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.16);
    outline: 0;
}

body.app-body .m365-price-field.readonly,
body.app-body .m365-price-total {
    border: 0;
    border-radius: 8px;
    min-height: 68px;
    padding: 11px 12px;
}

body.app-body .m365-price-field.readonly {
    background: #ffffff;
}

body.app-body .m365-price-total {
    background: #ffffff;
}

body.app-body .m365-price-field.readonly strong,
body.app-body .m365-price-total strong {
    color: var(--invy-ink, #172331);
}

body.app-body .m365-price-total strong {
    font-size: 1.28rem;
    line-height: 1.1;
}

body.app-body .m365-product-meta {
    border-top: 1px solid #e2edf5;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 12px;
}

body.app-body .m365-product-meta span {
    background: #f8fafc;
    border: 1px solid #e2edf5;
    border-radius: 999px;
    padding: 5px 8px;
    white-space: normal;
}

@media (max-width: 920px) {
    body.app-body .m365-cost-overview {
        grid-template-columns: 1fr;
    }

    body.app-body .m365-panel-head,
    body.app-body .m365-product-head {
        align-items: flex-start;
        flex-direction: column;
    }

    body.app-body .m365-products-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.app-body .m365-company-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.app-body .m365-manual-fields {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 540px) {
    body.app-body .m365-product-grid {
        grid-template-columns: 1fr;
    }

    body.app-body .m365-license-metrics,
    body.app-body .m365-price-row,
    body.app-body .m365-company-grid,
    body.app-body .m365-products-summary {
        grid-template-columns: 1fr;
    }

    body.app-body .m365-company-total {
        min-width: 0;
        text-align: left;
    }

    body.app-body .m365-company-unmapped-note {
        align-items: stretch;
        flex-direction: column;
    }

    body.app-body .m365-company-unmapped-note span {
        text-align: left;
    }
}

/* Portal RH */
body.app-body.profile-rh {
    --cmd-primary: #dc2626;
    --cmd-primary-2: #991b1b;
    --cmd-primary-soft: #fee2e2;
    --cmd-blue: #b91c1c;
    --cmd-blue-soft: #fee2e2;
    --brand-red: #dc2626;
    --pro-blue: #dc2626;
    background:
        linear-gradient(120deg, rgba(220,38,38,0.13), transparent 30%),
        linear-gradient(180deg, #fffafa 0%, #f8fafc 100%);
}

body.app-body.profile-rh .sidebar.sidebar-v2 {
    background:
        linear-gradient(180deg, rgba(254,226,226,0.96), rgba(255,255,255,0.98) 220px),
        #ffffff;
    border-right-color: rgba(220,38,38,0.18);
}

body.app-body.profile-rh .side-brand,
body.app-body.profile-rh .side-status-card,
body.app-body.profile-rh .side-user-card,
body.app-body.profile-rh .workspace-bar,
body.app-body.profile-rh .topbar {
    border-color: rgba(220,38,38,0.18);
}

body.app-body.profile-rh .side-brand-logo-wrap,
body.app-body.profile-rh .side-user-avatar {
    background: linear-gradient(135deg, #dc2626, #7f1d1d);
    color: #ffffff;
}

body.app-body.profile-rh .side-brand-invy {
    color: #ffffff;
    font-size: 1.05rem;
    font-weight: 950;
}

body.app-body.profile-rh .side-status-card {
    background: linear-gradient(135deg, #fef2f2, #ffffff);
}

body.app-body.profile-rh .side-status-dot {
    background: #dc2626;
    box-shadow: 0 0 0 5px rgba(220,38,38,0.14);
}

body.app-body.profile-rh .side-nav-link:hover,
body.app-body.profile-rh .side-nav-link.active {
    border-color: rgba(220,38,38,0.20);
}

body.app-body.profile-rh .side-nav-link.active::before {
    background: #dc2626;
}

body.app-body.profile-rh .side-nav-link:hover .side-nav-icon,
body.app-body.profile-rh .side-nav-link.active .side-nav-icon {
    background: #fee2e2;
    color: #b91c1c;
}

body.app-body.profile-rh .side-primary-action,
body.app-body.profile-rh .side-primary-action-blue,
body.app-body.profile-rh .side-primary-action-pending,
body.app-body.profile-rh .btn-primary {
    background: linear-gradient(135deg, #dc2626, #991b1b);
    box-shadow: 0 14px 28px rgba(185,28,28,0.22);
}

body.app-body.profile-rh .btn-outline {
    border-color: rgba(220,38,38,0.36);
    color: #b91c1c;
}

body.app-body.profile-rh .topbar {
    border-left: 4px solid #dc2626;
    background:
        linear-gradient(110deg, #fff1f2, rgba(255,255,255,0.94) 42%),
        #ffffff;
}

body.app-body.profile-rh .workspace-dot {
    background: #dc2626;
}

body.app-body .stat-box.accent-red::before {
    background: #dc2626;
}

body.app-body .stat-box.accent-red h3 {
    color: #dc2626;
}

body.app-body.profile-rh .rh-stats {
    grid-template-columns: repeat(4, minmax(170px, 1fr));
}

body.app-body .rh-portal-panel {
    overflow: hidden;
    border-color: rgba(220,38,38,0.16);
    background:
        linear-gradient(180deg, #ffffff, #fff7f7),
        #ffffff;
}

body.app-body .rh-portal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px;
    border: 1px solid #fee2e2;
    border-radius: 8px;
    background: #fff7f7;
}

body.app-body .rh-kicker {
    display: inline-flex;
    width: fit-content;
    margin-bottom: 6px;
    padding: 5px 9px;
    border: 1px solid #fecaca;
    border-radius: 999px;
    background: #ffffff;
    color: #b91c1c;
    font-size: 0.72rem;
    font-weight: 950;
    text-transform: uppercase;
}

body.app-body .rh-pending-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
}

body.app-body .rh-pending-card {
    display: grid;
    gap: 8px;
    min-height: 190px;
    padding: 15px;
    border: 1px solid #f3c4c4;
    border-radius: 8px;
    background: #ffffff;
    color: #172331;
    box-shadow: 0 12px 26px rgba(127,29,29,0.07);
}

body.app-body .rh-pending-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

body.app-body .rh-avatar {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    background: #fee2e2;
    color: #b91c1c;
    font-weight: 950;
    text-transform: uppercase;
}

body.app-body .rh-pending-card strong {
    color: #111827;
    font-size: 1rem;
    line-height: 1.2;
}

body.app-body .rh-pending-card span,
body.app-body .rh-pending-card small {
    color: #667085;
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1.35;
}

body.app-body .rh-pending-card .btn {
    justify-self: start;
    margin-top: auto;
}

body.app-body .rh-empty-state {
    display: grid;
    gap: 5px;
    min-height: 110px;
    padding: 18px;
    border: 1px dashed #f3c4c4;
    border-radius: 8px;
    background: #fffafa;
    color: #172331;
}

body.app-body .rh-empty-state span {
    color: #667085;
    font-weight: 700;
}

body.app-body.profile-rh .term-action-card.term-action-responsibility {
    --term-action-color: #dc2626;
    --term-action-rgb: 220,38,38;
    --term-action-soft: #fee2e2;
    --term-action-border: #fecaca;
}

@media (max-width: 920px) {
    body.app-body.profile-rh .rh-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.app-body .rh-portal-head {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (max-width: 560px) {
    body.app-body.profile-rh .rh-stats,
    body.app-body .rh-pending-grid {
        grid-template-columns: 1fr;
    }
}

/* Ajustes neutros do fluxo RH dentro do visual padrao do TI */
body.app-body .rh-review-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

body.app-body .rh-portal-panel {
    border-color: var(--invy-line, #d7e1e8);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,250,252,0.96)),
        #ffffff;
}

body.app-body .rh-portal-head {
    border-color: #dbe4f0;
    background: #f8fafc;
}

body.app-body .rh-kicker {
    border-color: rgba(15,118,110,0.22);
    background: #effaf7;
    color: #0f766e;
}

body.app-body .rh-pending-card {
    border-color: #dbe4f0;
    background: #ffffff;
    box-shadow: 0 12px 26px rgba(15,23,42,0.06);
}

body.app-body .rh-avatar {
    background: #e6f6f3;
    color: #0f766e;
}

body.app-body .rh-empty-state {
    border-color: #dbe4f0;
    background: #f8fafc;
}

@media (max-width: 720px) {
    body.app-body .rh-review-actions {
        justify-content: flex-start;
        width: 100%;
    }
}

/* Fila RH refinada */
body.app-body .side-primary-action-pending {
    background: linear-gradient(135deg, #92400e 0%, #f59e0b 100%);
    box-shadow: 0 14px 26px rgba(217, 119, 6, 0.22);
}

body.app-body .side-primary-action-pending:hover {
    box-shadow: 0 16px 30px rgba(217, 119, 6, 0.3);
}

body.app-body .side-primary-action .side-action-count {
    display: inline-grid;
    place-items: center;
    min-width: 26px;
    height: 24px;
    margin-left: auto;
    padding: 0 7px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.22);
    color: #ffffff;
    font-size: 12px;
    font-weight: 950;
    line-height: 1;
}

body.app-body .rh-request-panel {
    position: relative;
    content-visibility: auto;
    contain-intrinsic-size: auto 420px;
    overflow: hidden;
    border-color: #d6e3ed;
    background:
        linear-gradient(180deg, #ffffff 0%, #f8fbfc 100%),
        #ffffff;
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.08);
}

body.app-body .rh-request-panel::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, #f59e0b 0%, #0f766e 58%, #2563eb 100%);
}

body.app-body .rh-request-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 2px 0 14px;
    border-bottom: 1px solid #e1e9ef;
}

body.app-body .rh-request-kicker {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    width: fit-content;
    margin-bottom: 8px;
    padding: 5px 9px;
    border: 1px solid rgba(217, 119, 6, 0.26);
    border-radius: 999px;
    background: #fffbeb;
    color: #92400e;
    font-size: 0.72rem;
    font-weight: 950;
    text-transform: uppercase;
}

body.app-body .rh-request-kicker i {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #f59e0b;
    box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.18);
}

body.app-body .rh-request-head-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

body.app-body .rh-request-count {
    display: grid;
    min-width: 96px;
    padding: 10px 12px;
    border: 1px solid #dbe7f0;
    border-radius: 8px;
    background: #ffffff;
    text-align: right;
}

body.app-body .rh-request-count strong {
    color: #172331;
    font-size: 1.45rem;
    font-weight: 950;
    line-height: 1;
}

body.app-body .rh-request-count span {
    color: #667085;
    font-size: 0.74rem;
    font-weight: 850;
}

body.app-body .rh-request-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
    gap: 12px;
    margin-top: 14px;
}

body.app-body .rh-request-grid-compact {
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
}

body.app-body .rh-request-card {
    display: grid;
    gap: 13px;
    min-height: 188px;
    padding: 15px;
    border: 1px solid #d9e6ee;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.05);
}

body.app-body .rh-request-main {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: start;
    gap: 12px;
}

body.app-body .rh-request-avatar,
body.app-body .rh-detail-alert-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 8px;
    background: linear-gradient(135deg, #e6f6f3, #eff6ff);
    color: #0f766e;
    font-weight: 950;
    text-transform: uppercase;
}

body.app-body .rh-request-copy {
    display: grid;
    gap: 5px;
    min-width: 0;
}

body.app-body .rh-request-title-row {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 8px;
}

body.app-body .rh-request-title-row strong {
    color: #111827;
    font-size: 1rem;
    font-weight: 950;
    line-height: 1.2;
}

body.app-body .rh-request-copy > span {
    color: #667085;
    font-size: 0.86rem;
    font-weight: 750;
    overflow-wrap: anywhere;
}

body.app-body .rh-request-note {
    display: block;
    width: fit-content;
    max-width: 100%;
    padding: 7px 9px;
    border: 1px solid #fed7aa;
    border-radius: 8px;
    background: #fffbeb;
    color: #92400e;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.35;
}

body.app-body .rh-request-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

body.app-body .rh-request-meta span,
body.app-body .rh-card-meta small {
    display: grid;
    gap: 3px;
    min-width: 0;
    padding: 9px;
    border: 1px solid #e1e9ef;
    border-radius: 8px;
    background: #f8fafc;
    color: #334155;
    font-size: 0.8rem;
    font-weight: 850;
    line-height: 1.25;
}

body.app-body .rh-request-meta small {
    color: #7c8a99;
    font-size: 0.67rem;
    font-weight: 950;
    text-transform: uppercase;
}

body.app-body .rh-request-flow {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
}

body.app-body .rh-request-flow span {
    min-height: 32px;
    padding: 7px 6px;
    border: 1px solid #e1e9ef;
    border-radius: 8px;
    background: #f8fafc;
    color: #7c8a99;
    font-size: 0.68rem;
    font-weight: 900;
    line-height: 1.15;
    text-align: center;
}

body.app-body .rh-request-flow span.is-active {
    border-color: rgba(15, 118, 110, 0.25);
    background: #e6f6f3;
    color: #0f766e;
}

body.app-body .rh-request-actions,
body.app-body .rh-card-actions,
body.app-body .rh-detail-alert-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

body.app-body .rh-request-status-form {
    display: grid;
    grid-template-columns: minmax(140px, 0.42fr) minmax(180px, 1fr) auto;
    align-items: stretch;
    gap: 8px;
    padding-top: 10px;
    border-top: 1px solid #e1e9ef;
}

body.app-body .rh-request-status-form select,
body.app-body .rh-request-status-form textarea {
    width: 100%;
    min-height: 38px;
    border: 1px solid #cbd8e2;
    border-radius: 8px;
    background: #ffffff;
    color: #172331;
    font-weight: 750;
}

body.app-body .rh-request-status-form textarea {
    resize: vertical;
    min-height: 38px;
    padding: 9px 10px;
}

body.app-body .rh-workflow-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    padding: 12px;
    border: 1px solid #dbe7f0;
    border-radius: 8px;
    background: #f8fafc;
}

body.app-body .rh-workflow-step {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    min-height: 70px;
    padding: 12px;
    border: 1px solid #e1e9ef;
    border-radius: 8px;
    background: #ffffff;
}

body.app-body .rh-workflow-step > span {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: #e6f6f3;
    color: #0f766e;
    font-weight: 950;
}

body.app-body .rh-workflow-step.is-active > span {
    background: #fffbeb;
    color: #92400e;
}

body.app-body .rh-workflow-step strong {
    display: block;
    color: #172331;
    font-size: 0.9rem;
    font-weight: 950;
}

body.app-body .rh-workflow-step small {
    display: block;
    margin-top: 2px;
    color: #667085;
    font-size: 0.76rem;
    font-weight: 750;
    line-height: 1.3;
}

body.app-body .rh-card-meta {
    display: grid;
    gap: 7px;
}

body.app-body .rh-card-actions {
    justify-content: flex-start;
    margin-top: auto;
}

body.app-body .rh-limit-note {
    margin-top: 10px;
    padding: 10px 12px;
    border: 1px solid #dbe7f0;
    border-radius: 8px;
    background: #ffffff;
    color: #667085;
    font-size: 0.84rem;
    font-weight: 750;
}

body.app-body .rh-fast-filter-panel {
    display: grid;
    grid-template-columns: minmax(220px, 0.85fr) minmax(320px, 1.15fr);
    align-items: end;
    gap: 16px;
}

body.app-body .rh-status-tabs-panel {
    display: grid;
    gap: 12px;
}

body.app-body .rh-status-tabs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
    gap: 8px;
}

body.app-body .rh-status-tab {
    display: grid;
    gap: 3px;
    min-height: 70px;
    padding: 12px;
    border: 1px solid #dbe7f0;
    border-radius: 8px;
    background: #ffffff;
    color: #667085;
    text-decoration: none;
}

body.app-body .rh-status-tab.active {
    border-color: rgba(15, 118, 110, 0.38);
    background: #effaf7;
    color: #0f766e;
}

body.app-body .rh-status-tab strong {
    color: #172331;
    font-size: 1.2rem;
    font-weight: 950;
    line-height: 1;
}

body.app-body .rh-status-tab span {
    font-size: 0.78rem;
    font-weight: 850;
}

body.app-body .rh-status-owner-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

body.app-body .rh-fast-filter-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 10px;
}

body.app-body .rh-request-empty {
    display: grid;
    gap: 6px;
    min-height: 120px;
    align-content: center;
    border-style: dashed;
    background: #f8fafc;
}

body.app-body .rh-request-empty strong {
    color: #172331;
    font-size: 1rem;
    font-weight: 950;
}

body.app-body .rh-request-empty span {
    color: #667085;
    font-weight: 750;
}

body.app-body .pagination-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px;
    border: 1px solid #dbe7f0;
    border-radius: 8px;
    background: #f8fafc;
    color: #667085;
    font-weight: 800;
}

body.app-body .pagination-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

body.app-body .rh-detail-alert {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border: 1px solid #fed7aa;
    border-left: 4px solid #f59e0b;
    border-radius: 8px;
    background: linear-gradient(135deg, #fffbeb 0%, #ffffff 72%);
}

body.app-body .rh-detail-alert-copy {
    display: grid;
    gap: 3px;
}

body.app-body .rh-detail-alert-copy strong {
    color: #111827;
    font-size: 0.98rem;
    font-weight: 950;
}

body.app-body .rh-detail-alert-copy span {
    color: #667085;
    font-size: 0.86rem;
    font-weight: 750;
    line-height: 1.35;
}

@media (max-width: 900px) {
    body.app-body .rh-request-head,
    body.app-body .rh-portal-head {
        align-items: stretch;
        flex-direction: column;
    }

    body.app-body .rh-request-head-actions,
    body.app-body .rh-request-actions,
    body.app-body .rh-detail-alert-actions {
        justify-content: flex-start;
    }

    body.app-body .rh-workflow-strip,
    body.app-body .rh-request-meta {
        grid-template-columns: 1fr;
    }

    body.app-body .rh-request-flow {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    body.app-body .rh-fast-filter-panel,
    body.app-body .rh-fast-filter-form,
    body.app-body .rh-request-status-form {
        grid-template-columns: 1fr;
    }

    body.app-body .rh-detail-alert {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    body.app-body .pagination-bar {
        align-items: flex-start;
        flex-direction: column;
    }

    body.app-body .rh-detail-alert-actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 560px) {
    body.app-body .rh-request-grid,
    body.app-body .rh-request-grid-compact {
        grid-template-columns: 1fr;
    }

    body.app-body .rh-request-card,
    body.app-body .rh-workflow-strip {
        padding: 12px;
    }

    body.app-body .rh-request-flow {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ================= ACRONIS SOFTWARE INVENTORY ================= */

body.app-body .acronis-panel {
    display: grid;
    gap: 16px;
    overflow: hidden;
    border-color: rgba(34, 101, 194, 0.32);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(247, 250, 252, 0.98)),
        #ffffff;
    color: #142033;
}

body.app-body .acronis-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 230px;
    align-items: stretch;
    gap: 16px;
    min-height: 170px;
    padding: 18px;
    border: 1px solid rgba(70, 132, 216, 0.24);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(7, 40, 83, 0.98) 0%, rgba(8, 64, 132, 0.98) 58%, rgba(20, 184, 166, 0.72) 100%),
        #052b5c;
    box-shadow: 0 18px 35px rgba(10, 48, 104, 0.18);
}

body.app-body .acronis-hero-compact {
    min-height: 134px;
}

body.app-body .acronis-hero-copy {
    display: grid;
    align-content: center;
    gap: 8px;
    min-width: 0;
}

body.app-body .acronis-kicker {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    color: #9bd7ff;
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

body.app-body .acronis-hero h2 {
    margin: 0;
    color: #ffffff;
    font-size: 2rem;
    font-weight: 950;
    line-height: 1.08;
}

body.app-body .acronis-hero p {
    margin: 0;
    max-width: 680px;
    color: #d9ecff;
    font-size: 1rem;
    font-weight: 750;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

body.app-body .acronis-query-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 4px;
}

body.app-body .acronis-query-chips span {
    max-width: 100%;
    padding: 6px 9px;
    border: 1px solid rgba(174, 219, 255, 0.32);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    color: #eff8ff;
    font-size: 0.78rem;
    font-weight: 850;
    line-height: 1;
    overflow-wrap: anywhere;
}

body.app-body .acronis-brand-card {
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 12px;
    min-width: 0;
    padding: 8px 0;
    border: 0;
    background: transparent;
}

body.app-body .acronis-brand-card img {
    display: block;
    width: min(184px, 100%);
    height: auto;
}

body.app-body .acronis-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    max-width: 100%;
    padding: 6px 10px;
    border: 1px solid rgba(255, 255, 255, 0.26);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    font-size: 0.76rem;
    font-weight: 950;
    line-height: 1;
    white-space: nowrap;
}

body.app-body .acronis-status-badge::before {
    content: "";
    width: 7px;
    height: 7px;
    margin-right: 7px;
    border-radius: 999px;
    background: currentColor;
}

body.app-body .acronis-status-badge.is-online {
    border-color: rgba(52, 211, 153, 0.38);
    background: rgba(16, 185, 129, 0.18);
    color: #b6f5dc;
}

body.app-body .acronis-status-badge.is-warning {
    border-color: rgba(251, 191, 36, 0.45);
    background: rgba(245, 158, 11, 0.18);
    color: #fde68a;
}

body.app-body .acronis-status-badge.is-syncing {
    border-color: rgba(125, 211, 252, 0.45);
    background: rgba(14, 165, 233, 0.2);
    color: #bae6fd;
}

body.app-body .acronis-status-badge.is-muted {
    color: #d8e7f7;
}

body.app-body .acronis-metric-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

body.app-body .acronis-metric-grid-compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.app-body .acronis-metric {
    display: grid;
    align-content: start;
    gap: 5px;
    min-width: 0;
    min-height: 94px;
    padding: 13px;
    border: 1px solid #d8e5f3;
    border-radius: 8px;
    background: #ffffff;
}

body.app-body .acronis-metric span {
    color: #66758a;
    font-size: 0.74rem;
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
}

body.app-body .acronis-metric strong {
    color: #101b2d;
    font-size: 1.22rem;
    font-weight: 950;
    line-height: 1.08;
    overflow-wrap: anywhere;
}

body.app-body .acronis-metric small {
    color: #718198;
    font-size: 0.78rem;
    font-weight: 750;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

body.app-body .acronis-message {
    margin-top: 0;
    border: 1px solid #d8e5f3;
    border-radius: 8px;
    background: #f8fbff;
    color: #52627a;
}

body.app-body .acronis-message-warning {
    border-color: #fed7aa;
    background: #fffbeb;
    color: #92400e;
}

body.app-body .acronis-device-card {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    margin-top: 0;
    padding: 13px;
    border: 1px solid #d8e5f3;
    border-radius: 8px;
    background: linear-gradient(135deg, #ffffff 0%, #f5f9ff 100%);
}

body.app-body .acronis-device-icon {
    display: grid;
    place-items: center;
    width: 64px;
    height: 52px;
    border: 1px solid #e2ebf5;
    border-radius: 8px;
    background: #ffffff;
}

body.app-body .acronis-device-icon img {
    width: 50px;
    height: auto;
}

body.app-body .acronis-device-copy {
    min-width: 0;
}

body.app-body .acronis-device-copy span {
    display: block;
    color: #1164b5;
    font-size: 0.75rem;
    font-weight: 950;
    line-height: 1.2;
    text-transform: uppercase;
}

body.app-body .acronis-device-copy strong {
    display: block;
    margin-top: 3px;
    color: #101b2d;
    font-size: 1rem;
    font-weight: 950;
    overflow-wrap: anywhere;
}

body.app-body .acronis-device-copy small,
body.app-body .acronis-source-line {
    display: block;
    margin-top: 4px;
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 750;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

body.app-body .acronis-source-line {
    margin-top: 0;
}

body.app-body .acronis-source-line code {
    background: #edf6ff;
    color: #075aa8;
}

body.app-body .acronis-table-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 0;
}

body.app-body .acronis-table-head h3 {
    margin: 2px 0 0;
    color: #101b2d;
    font-size: 1.05rem;
    font-weight: 950;
    line-height: 1.15;
}

body.app-body .acronis-table-head strong {
    display: grid;
    place-items: center;
    min-width: 44px;
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid #b9d7f4;
    border-radius: 8px;
    background: #eaf6ff;
    color: #075aa8;
    font-weight: 950;
}

body.app-body .acronis-table-head small {
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

body.app-body .acronis-table-wrap {
    margin-top: 0;
    border-color: #cfe0f2;
    background: #ffffff;
}

body.app-body .acronis-table {
    min-width: 760px;
}

body.app-body .acronis-table th {
    background: #082b57;
    color: #eaf6ff;
}

body.app-body .acronis-table td {
    border-color: #e5eef7;
    color: #263449;
    background: #ffffff;
}

body.app-body .acronis-table tbody tr:hover td {
    background: #f5f9ff;
}

body.app-body .acronis-software-name {
    color: #111827;
    font-weight: 950;
    overflow-wrap: anywhere;
}

body.app-body .acronis-loading {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 13px;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    background: #eff6ff;
    color: #075aa8;
    font-size: 0.9rem;
    font-weight: 900;
}

body.app-body .acronis-loading span {
    width: 16px;
    height: 16px;
    border: 2px solid rgba(7, 90, 168, 0.22);
    border-top-color: #075aa8;
    border-radius: 999px;
    animation: acronis-spin 0.8s linear infinite;
}

@keyframes acronis-spin {
    to {
        transform: rotate(360deg);
    }
}

body.app-body .genai-panel {
    border-color: rgba(20, 184, 166, 0.34);
}

body.app-body .genai-hero {
    background:
        linear-gradient(135deg, rgba(7, 40, 83, 0.98) 0%, rgba(14, 116, 144, 0.96) 54%, rgba(20, 184, 166, 0.82) 100%),
        #073b58;
}

body.app-body .genai-metric-grid .acronis-metric {
    border-color: #c9e7e3;
}

body.app-body .genai-alerts-block {
    display: grid;
    gap: 10px;
}

@media (max-width: 980px) {
    body.app-body .acronis-hero,
    body.app-body .acronis-metric-grid,
    body.app-body .acronis-metric-grid-compact {
        grid-template-columns: 1fr;
    }

    body.app-body .acronis-brand-card {
        min-height: 96px;
    }
}

@media (max-width: 620px) {
    body.app-body .acronis-panel {
        padding: 14px;
    }

    body.app-body .acronis-hero {
        padding: 14px;
    }

    body.app-body .acronis-hero h2 {
        font-size: 1.55rem;
    }

    body.app-body .acronis-table-head,
    body.app-body .acronis-device-card {
        align-items: flex-start;
        grid-template-columns: 1fr;
    }

    body.app-body .acronis-device-icon {
        width: 58px;
    }
}

/* ================= LOGIN PARTNERS ================= */

body.login-page.login-v2-page .login-partners {
    width: min(100%, 640px);
    margin: 0 0 18px;
    padding: 12px;
    border: 1px solid #dce8f0;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 14px 32px rgba(15, 23, 42, 0.08);
}

body.login-page.login-v2-page .login-partners-kicker {
    display: block;
    margin-bottom: 9px;
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

body.login-page.login-v2-page .login-partners-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    align-items: stretch;
}

body.login-page.login-v2-page .login-partner-card {
    display: grid;
    place-items: center;
    min-width: 0;
    min-height: 74px;
    padding: 10px;
    overflow: hidden;
    border: 1px solid #e1e9ef;
    border-radius: 8px;
    background: #ffffff;
}

body.login-page.login-v2-page .login-partner-card img {
    display: block;
    max-width: 100%;
    max-height: 48px;
    object-fit: contain;
}

body.login-page.login-v2-page .login-partner-card-graph {
    padding: 6px 10px;
}

body.login-page.login-v2-page .login-partner-card-graph img {
    max-height: 58px;
}

body.login-page.login-v2-page .login-partner-card-docusign img {
    max-height: 52px;
}

body.login-page.login-v2-page .login-partner-card-acronis {
    padding: 9px 12px;
}

body.login-page.login-v2-page .login-partner-card-acronis img {
    max-height: 50px;
}

body.login-page.login-v2-page .login-partner-card-dell {
    padding: 0;
    border-color: #087fb0;
    background: #087fb0;
}

body.login-page.login-v2-page .login-partner-card-dell img {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: cover;
}

@media (max-width: 900px) {
    body.login-page.login-v2-page .login-partners {
        width: 100%;
        margin-bottom: 16px;
    }
}

@media (max-width: 520px) {
    body.login-page.login-v2-page .login-partners {
        padding: 10px;
    }

    body.login-page.login-v2-page .login-partners-grid {
        grid-template-columns: 1fr 1fr;
    }

    body.login-page.login-v2-page .login-partner-card {
        min-height: 64px;
    }

    body.login-page.login-v2-page .login-partner-card-dell img {
        min-height: 64px;
    }
}

/* ================= CLEAN INVENTORY NAV ================= */

body.app-body .side-nav-clean {
    gap: 13px;
}

body.app-body .side-nav-clean .side-nav-section {
    gap: 6px;
}

body.app-body .side-nav-clean .side-nav-title {
    margin-top: 2px;
    color: #7b8795;
    font-size: 0.64rem;
}

body.app-body .side-nav-clean .side-nav-link {
    min-height: 50px;
    padding: 8px 10px;
    border-radius: 8px;
}

body.app-body .side-nav-clean .side-nav-copy small {
    display: none;
}

body.app-body .side-nav-clean .side-nav-section-system {
    padding-top: 9px;
    border-top: 1px solid #e2e8f0;
}

body.app-body .report-integration-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    border-color: #bfdbfe;
    background:
        linear-gradient(135deg, rgba(239, 246, 255, 0.98), rgba(255, 255, 255, 0.98) 54%, rgba(236, 253, 245, 0.96)),
        #ffffff;
}

body.app-body .report-genai-card {
    border-color: #99f6e4;
    background:
        linear-gradient(135deg, rgba(240, 253, 250, 0.98), rgba(255, 255, 255, 0.98) 52%, rgba(239, 246, 255, 0.98)),
        #ffffff;
}

body.app-body .report-integration-copy {
    display: grid;
    gap: 6px;
    min-width: 0;
}

body.app-body .report-integration-copy h2 {
    margin: 0;
    color: #0f172a;
    font-size: 1.35rem;
    line-height: 1.12;
}

body.app-body .report-integration-copy p {
    max-width: 760px;
    margin: 0;
    color: #536273;
    font-size: 0.96rem;
    line-height: 1.5;
}

@media (max-width: 1100px) {
    body.app-body .workspace-user {
        justify-self: start;
    }

    body.app-body .report-integration-card {
        grid-template-columns: 1fr;
    }
}

/* ================= EQUIPMENT QUERY POLISH ================= */

body.app-body.page-historico .history-search-main {
    display: flex;
    gap: 10px;
    align-items: center;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid var(--invy-line, #cbd8e3);
    border-radius: 8px;
    background: #ffffff;
}

body.app-body.page-historico .history-search-main:focus-within {
    border-color: var(--invy-primary, #14b8a6);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.14);
}

body.app-body.page-historico .history-search-icon {
    position: static !important;
    flex: 0 0 19px;
    transform: none !important;
}

body.app-body.page-historico .history-search-main input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 46px;
    padding: 0 !important;
    border: 0 !important;
    background: transparent;
    box-shadow: none !important;
}

body.app-body.page-historico .history-search-main input:focus {
    box-shadow: none !important;
}

body.app-body.page-historico .history-panel-head {
    align-items: flex-start;
}

body.app-body.page-historico .history-summary-badges {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

body.app-body.page-historico .history-summary-sections {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

body.app-body.page-historico .history-summary-section {
    min-width: 0;
    padding: 14px;
    border: 1px solid #dbe7f0;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}

body.app-body.page-historico .history-summary-section h3 {
    margin: 0 0 12px;
    color: #0f766e;
    font-size: 0.76rem;
    font-weight: 950;
    letter-spacing: 0.06em;
    line-height: 1.2;
    text-transform: uppercase;
}

body.app-body.page-historico .history-summary-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px 14px;
}

body.app-body.page-historico .history-summary-item {
    display: grid;
    grid-template-columns: minmax(112px, 0.42fr) minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    min-height: 40px;
    padding: 9px 0;
    border-top: 1px solid #edf2f7;
}

body.app-body.page-historico .history-summary-item:nth-child(1),
body.app-body.page-historico .history-summary-item:nth-child(2) {
    border-top: 0;
}

body.app-body.page-historico .history-summary-item span {
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.02em;
    line-height: 1.25;
    text-transform: uppercase;
}

body.app-body.page-historico .history-summary-item strong {
    min-width: 0;
    color: #162233;
    font-size: 0.92rem;
    font-weight: 950;
    line-height: 1.28;
    overflow-wrap: anywhere;
}

@media (max-width: 1180px) {
    body.app-body.page-historico .history-summary-sections {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    body.app-body.page-historico .history-panel-head {
        display: grid;
        gap: 12px;
    }

    body.app-body.page-historico .history-summary-badges {
        justify-content: flex-start;
    }

    body.app-body.page-historico .history-summary-list {
        grid-template-columns: 1fr;
    }

    body.app-body.page-historico .history-summary-item {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    body.app-body.page-historico .history-summary-item:nth-child(2) {
        border-top: 1px solid #edf2f7;
    }
}

/* ================= TOP SEARCH ================= */

body.app-body .workspace-bar.has-global-search {
    grid-template-columns: minmax(130px, auto) minmax(360px, 620px) minmax(130px, auto) !important;
    gap: 16px !important;
}

body.app-body .workspace-global-search {
    display: flex !important;
    align-items: center !important;
    justify-self: center;
    gap: 8px !important;
    width: min(100%, 620px) !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

body.app-body .workspace-global-search .workspace-search-field {
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    min-width: 0;
    height: 44px;
    padding: 0 14px;
    border: 1px solid #cbd8e3;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: none;
}

body.app-body .workspace-global-search .workspace-search-field:focus-within {
    border-color: #14b8a6;
    box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.14);
}

body.app-body .workspace-global-search .workspace-search-icon {
    display: block !important;
    position: static !important;
    flex: 0 0 18px !important;
    width: 18px !important;
    height: 18px !important;
    margin: 0 10px 0 0 !important;
    color: #64748b !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    stroke-width: 2 !important;
    transform: none !important;
}

body.app-body .workspace-bar.has-global-search .workspace-global-search .workspace-search-field > input.workspace-global-input {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    height: 42px !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #172331 !important;
    font-size: 0.94rem !important;
    font-weight: 800 !important;
    line-height: 42px !important;
}

body.app-body .workspace-bar.has-global-search .workspace-global-search .workspace-search-field > input.workspace-global-input:focus {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

body.app-body .workspace-global-search .workspace-global-button {
    flex: 0 0 auto !important;
    height: 44px !important;
    min-width: 82px;
    margin: 0 !important;
    padding: 0 16px !important;
    border: 1px solid #bfdbfe !important;
    border-radius: 8px !important;
    background: #eff6ff !important;
    color: #1d4ed8 !important;
    cursor: pointer;
    font-size: 0.82rem !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    box-shadow: none !important;
}

body.app-body .workspace-global-search .workspace-global-button:hover {
    border-color: #93c5fd !important;
    background: #dbeafe !important;
}

@media (max-width: 1100px) {
    body.app-body .workspace-bar.has-global-search {
        grid-template-columns: 1fr !important;
    }

    body.app-body .workspace-global-search {
        justify-self: stretch;
        width: 100% !important;
    }
}

@media (max-width: 620px) {
    body.app-body .workspace-global-search .workspace-search-field,
    body.app-body .workspace-global-search .workspace-global-button {
        height: 42px !important;
    }

    body.app-body .workspace-bar.has-global-search .workspace-global-search .workspace-search-field > input.workspace-global-input {
        height: 40px !important;
        line-height: 40px !important;
    }
}

/* Login brand image trial */
body.login-page.login-v2-page .login-v2-brand {
    display: block !important;
    align-items: flex-start !important;
    gap: 0 !important;
}

body.login-page.login-v2-page .login-brand-copy {
    display: grid !important;
    gap: 7px !important;
    min-width: 0 !important;
}

body.login-page.login-v2-page .login-panel-brand {
    display: none !important;
}

body.login-page.login-v2-page .login-v2-visual {
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) !important;
    align-content: stretch !important;
    gap: clamp(24px, 4vw, 42px) !important;
}

body.login-page.login-v2-page .login-logo-hero {
    display: grid !important;
    place-items: center !important;
    min-height: 0 !important;
    width: 100% !important;
}

body.login-page.login-v2-page .login-logo-hero img {
    display: block !important;
    width: min(430px, 76%) !important;
    max-height: min(520px, 58vh) !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    filter: drop-shadow(0 28px 42px rgba(15, 23, 42, 0.16)) !important;
    object-fit: contain !important;
}

@media (max-width: 760px) {
    body.login-page.login-v2-page .login-v2-brand {
        gap: 0 !important;
    }

    body.login-page.login-v2-page .login-panel-brand {
        display: flex !important;
        align-items: center !important;
        gap: 13px !important;
        width: min(100%, 640px) !important;
        margin: 0 0 16px !important;
    }

    body.login-page.login-v2-page .login-panel-logo-card {
        display: grid !important;
        place-items: center !important;
        flex: 0 0 auto !important;
        width: 72px !important;
        height: 72px !important;
        padding: 8px !important;
        border: 1px solid #d6e2ea !important;
        border-radius: 14px !important;
        background: #ffffff !important;
        box-shadow: 0 12px 28px rgba(15, 23, 42, 0.10) !important;
        overflow: hidden !important;
    }

    body.login-page.login-v2-page .login-panel-logo-card img {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: contain !important;
    }

    body.login-page.login-v2-page .login-panel-brand div {
        display: grid !important;
        gap: 4px !important;
        min-width: 0 !important;
    }

    body.login-page.login-v2-page .login-panel-brand strong {
        color: #0f172a !important;
        font-size: 26px !important;
        font-weight: 900 !important;
        line-height: 1 !important;
    }

    body.login-page.login-v2-page .login-panel-brand small {
        color: #64748b !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        line-height: 1.25 !important;
    }
}
/* Password recovery link in the shared authentication layout. */
.login-recovery-link {
    margin-top: 18px;
    text-align: center;
    font-size: 14px;
}
.login-recovery-link a {
    color: var(--login-accent, #2563eb);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.login-recovery-link a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
}
