@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700;900&display=swap');

* {
    box-sizing:border-box
}

a {
    text-decoration:none
}

a:hover {
    text-decoration:none
}

:root {
    --blue:#0067b1;
    --blue-2:#008fd3;
    --blue-dark:#004f93;
    --orange:#ff4b1f;
    --text:#1d2733;
    --sidebar-w:250px;
    --footer-h:30px;
    --header-h:44px
}

html, body {
    margin:0;
    width:100%;
    height:100%;
    font-family:"Segoe UI", Arial, Helvetica, sans-serif;
    color:var(--text)
}

.desktop-body {
    overflow:hidden;
    background:#fff
}

.desktop-shell {
    height:100vh;
    display:flex;
    flex-direction:row;
    background:#fff
}

.right-wrapper {
    flex:1;
    min-width:0;
    display:flex;
    flex-direction:column;
    height:100vh;
    overflow:hidden
}

.desktop-header {
    height:var(--header-h);
    min-height:var(--header-h);
    background:#fff;
    border-bottom:1px solid #e8edf2;
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center
}

.header-left {
    height:100%;
    display:flex;
    align-items:center
}

.header-hamburger {
    width:38px;
    height:38px;
    margin-left:8px;
    border:none;
    background:transparent;
    color:#1e3a5f;
    font-size:22px;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:8px;
    flex-shrink:0;
    transition:background .15s
}

.header-hamburger:hover {
    background:#eef3f9
}

.gdi-logo {
    width:100%;
    padding:14px 14px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    border-bottom:1px solid rgba(255,255,255,.10);
    background:rgba(0,0,0,.22)
}

.gdi-logo-text {
    font-family:'Segoe UI', Arial, sans-serif;
    font-weight:600;
    font-size:27px;
    letter-spacing:.5px;
    white-space:nowrap;
}

.gdi-logo-gdi, .gdi-logo-gd, .gdi-logo-i {
    color:#5bc8f5;
}

.gdi-logo-online {
    color:#ffffff;
    margin-left:3px;
}

.gdi-logo-img, .login-logo-img {
    width:220px;
    height:auto;
    max-height:60px;
    flex-shrink:0;
    object-fit:contain
}

.gdi-name {
    color:var(--blue);
    font-size:29px;
    font-weight:800;
    letter-spacing:-1.3px;
    white-space:nowrap;
    font-family:'Roboto', sans-serif
}

.gdi-name span {
    color:#0096d6
}

.company-name {
    color:#111d2c;
    font-size:18px;
    font-weight:700;
    white-space:nowrap;
    padding-left:16px
}

.company-subtitle {
    color:var(--blue);
    font-size:20px;
    font-weight:700;
    text-transform:uppercase;
    text-align:center;
    white-space:nowrap
}

.header-actions {
    grid-column:3;
    height:100%;
    display:flex;
    justify-content:flex-end;
    align-items:center;
    padding-right:10px;
    gap:10px
}

.header-clock-block {
    text-align:right
}

.header-clock {
    color:var(--blue-dark);
    font-size:12px;
    font-weight:800;
    font-family:'Roboto', sans-serif
}

.header-clock-label, .header-user-label {
    color:#9aa6b1;
    font-size:11px;
    font-family:'Roboto',sans-serif;
    letter-spacing:.02em
}

.header-user-block {
    display:flex;
    align-items:center;
    gap:10px;
    color:#576775
}

.header-user-avatar {
    width:28px;
    height:28px;
    border-radius:50%;
    background:linear-gradient(135deg,var(--blue),var(--blue-2));
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:14px;
    flex-shrink:0;
    box-shadow:0 2px 8px rgba(0,103,177,.30);
    transition:box-shadow .2s,transform .2s
}

.header-user-button:hover .header-user-avatar {
    box-shadow:0 4px 14px rgba(0,103,177,.50);
    transform:scale(1.07)
}

.header-user-name {
    font-size:12px;
    font-weight:700;
    color:#394955;
    font-family:'Roboto',sans-serif
}

.logout-link {
    color:var(--blue);
    text-decoration:none;
    font-weight:700;
    margin-right:20px
}

.desktop-main {
    flex:1;
    min-height:0;
    display:flex
}

.desktop-sidebar {
    width:var(--sidebar-w);
    min-width:var(--sidebar-w);
    height:100vh;
    display:flex;
    flex-direction:column;
    flex-shrink:0;
    background:linear-gradient(180deg, #0d2c5e 0%, #1a4f96 100%);
    border-right:none;
    box-shadow:2px 0 14px rgba(0,0,0,.22);
    overflow:hidden;
    transition:width .32s cubic-bezier(.4, 0, .2, 1), min-width .32s cubic-bezier(.4, 0, .2, 1), box-shadow .2s ease
}

.desktop-sidebar.collapsed {
    width:68px;
    min-width:68px
}

.sidebar-main-title {
    height:46px;
    background:rgba(0,0,0,.22);
    border-bottom:1px solid rgba(255,255,255,.12);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:space-between
}

.sidebar-title-left {
    display:flex;
    align-items:center;
    gap:10px;
    padding-left:14px;
    min-width:0
}

.sidebar-title-left i {
    font-size:21px
}

.sidebar-title-left span {
    font-size:18px;
    font-weight:600;
    white-space:nowrap;
    transition:opacity .18s ease, transform .18s ease
}

.sidebar-toggle {
    width:42px;
    height:46px;
    border:none;
    background:transparent;
    color:#fff;
    font-size:24px;
    cursor:pointer
}

.sidebar-toggle:hover {
    background:rgba(255, 255, 255, .12)
}

.desktop-sidebar.collapsed .sidebar-title-left span {
    opacity:0;
    transform:translateX(-8px);
    display:none
}

/* Recolhido: ícone "Módulos" centralizado */
.desktop-sidebar.collapsed .sidebar-main-title {
    justify-content:center
}

.desktop-sidebar.collapsed .sidebar-title-left {
    padding-left:0;
    gap:0
}

.desktop-sidebar.collapsed .sidebar-toggle i {
    transform:rotate(180deg)
}

.desktop-menu {
    flex:1;
    min-height:0;
    display:flex;
    flex-direction:column;
    overflow-y:auto;
    overflow-x:hidden
}

.desktop-sidebar.collapsed .gdi-logo {
    padding-left:0;
    padding-right:0
}

.desktop-sidebar.collapsed .gdi-logo-i,
.desktop-sidebar.collapsed .gdi-logo-online {
    display:none
}

.desktop-menu-item {
    height:44px;
    display:flex;
    align-items:center;
    gap:11px;
    padding:0 14px;
    color:rgba(255,255,255,.70);
    text-decoration:none;
    border-bottom:1px solid rgba(255,255,255,.07);
    background:transparent;
    transition:background .18s ease, color .18s ease, box-shadow .18s ease
}

.desktop-menu-item i {
    width:25px;
    color:rgba(255,255,255,.50);
    font-size:20px;
    text-align:center;
    flex:0 0 auto;
    transition:color .18s ease
}

.desktop-menu-item span {
    font-size:15px;
    font-weight:500;
    white-space:nowrap;
    transition:opacity .18s ease, transform .18s ease
}

.desktop-menu-item:hover {
    background:rgba(255,255,255,.14);
    color:#fff;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.10)
}

.desktop-menu-item:hover i {
    color:#fff
}

.desktop-menu-item.active {
    background:rgba(255,255,255,.20);
    color:#fff;
    box-shadow:inset 4px 0 0 #ffb347
}

.desktop-menu-item.active i {
    color:#ffb347
}

.desktop-sidebar.collapsed .desktop-menu-item {
    justify-content:center;
    padding:0
}

.desktop-sidebar.collapsed .desktop-menu-item span {
    display:none;
    opacity:0;
    transform:translateX(-10px)
}

.menu-custom-icon {
    width:22px;
    height:22px;
    object-fit:contain;
    flex:0 0 auto
}

.menu-spacer {
    flex:1
}

.logout-menu-item {
    margin-top:auto;
    border-top:1px solid rgba(255,255,255,.12);
    border-bottom:none;
    background:transparent;
    color:#ffd700;
}

.logout-menu-item i {
    color:#ffd700;
}

.logout-menu-item:hover, .logout-menu-item:hover i {
    color:#ffe44d;
    background:rgba(255,215,0,.12);
    box-shadow:none;
}

.desktop-content {
    flex:1;
    min-width:0;
    background:#fff;
    overflow:auto
}

.breadcrumb-line {
    height:32px;
    border-bottom:1px solid var(--orange);
    display:flex;
    align-items:center;
    gap:8px;
    padding:0 20px;
    color:var(--blue-2);
    font-size:18px
}

.breadcrumb-line a {
    color:var(--blue-2);
    text-decoration:none;
    font-weight:500;
    padding:2px 6px;
    border-radius:4px;
    transition:background .15s, color .15s
}

.breadcrumb-line a:hover {
    background:#e8f4fd;
    color:var(--blue-dark)
}

.breadcrumb-line .muted {
    color:#bdc5cb
}

.module-heading {
    padding:15px 20px 6px 20px
}

.module-heading-actions {
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:10px;
    padding-right:24px
}

.heading-actions {
    display:flex;
    gap:8px;
    align-items:center
}

.module-heading h1 {
    margin:0;
    color:var(--blue-dark);
    font-size:24px;
    line-height:1.1;
    font-family:'Roboto', sans-serif;
    font-weight:800;
    text-transform:uppercase;
    display:inline-block;
    border-bottom:none
}

.module-heading p {
    margin:7px 0 0 0;
    font-size:15px;
    color:#222
}

.service-grid {
    padding:18px 20px 38px 20px
}

.prefeitura-grid {
    display:grid;
    grid-template-columns:repeat(4, minmax(210px, 1fr));
    gap:16px 18px
}

.prefeitura-card {
    min-height:88px;
    border-radius:8px;
    background:linear-gradient(135deg, #1a56a0 0%, #1769c4 100%);
    box-shadow:0 6px 16px rgba(13,44,94,.28);
    border:none;
    display:flex;
    align-items:center;
    gap:16px;
    padding:13px 15px;
    text-decoration:none;
    color:#fff;
    transition:transform .14s ease, box-shadow .14s ease, background .14s ease
}

.prefeitura-card:hover {
    transform:translateY(-2px);
    background:linear-gradient(135deg, #1e64bc 0%, #1e7de0 100%);
    box-shadow:0 10px 22px rgba(13,44,94,.36)
}

.prefeitura-card-icon {
    width:46px;
    min-width:46px;
    height:46px;
    color:#fff;
    font-size:34px;
    display:flex;
    align-items:center;
    justify-content:center
}

.card-custom-icon {
    width:38px;
    height:38px;
    object-fit:contain;
    filter:brightness(0) invert(1)
}

.prefeitura-card-title {
    font-size:15px;
    line-height:1.23;
    font-weight:500;
    font-family:'Segoe UI', Arial, sans-serif;
    color:#fff
}

.desktop-footer {
    height:var(--footer-h);
    min-height:var(--footer-h);
    background:#fff;
    border-top:1px solid #00a4e4;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 8px;
    font-size:13px;
    font-family:'Segoe UI', Arial, sans-serif;
    font-weight:600;
    color:#222;
    position:relative
}

.footer-status {
    position:absolute;
    left:50%;
    transform:translateX(-50%);
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:5px 14px;
    border-radius:20px;
    font-size:12px;
    font-weight:700;
    font-family:'Roboto',sans-serif;
    letter-spacing:.02em;
    border:1px solid transparent;
    transition:background .4s,color .4s,border-color .4s
}

.footer-status.online {
    color:#166534;
    background:#f0fdf4;
    border-color:#bbf7d0
}

.footer-status.offline {
    color:#991b1b;
    background:#fff1f0;
    border-color:#fecaca
}

.footer-status.verificando {
    color:#92400e;
    background:#fffbeb;
    border-color:#fde68a
}

.status-dot {
    width:8px;
    height:8px;
    border-radius:50%;
    display:inline-block;
    flex-shrink:0
}

.footer-status.online .status-dot {
    background:#22c55e;
    box-shadow:0 0 7px rgba(34,197,94,.85)
}

.footer-status.offline .status-dot {
    background:#ef4444;
    box-shadow:0 0 7px rgba(239,68,68,.85)
}

.footer-status.verificando .status-dot {
    background:#f59e0b;
    box-shadow:0 0 7px rgba(245,158,11,.85);
    animation:tcloudBlink 1.2s ease-in-out infinite
}

.status-cloud-icon {
    font-size:13px
}

.login-prefeitura-body {
    margin:0;
    min-height:100vh;
    overflow:hidden;
    background:linear-gradient(rgba(0, 0, 0, .35), rgba(0, 0, 0, .35)), url("/static/img/login_bg.png");
    background-size:cover;
    background-position:center;
    font-family:"Segoe UI", Arial, Helvetica, sans-serif
}

.login-prefeitura-page {
    min-height:calc(100vh - 40px);
    display:flex;
    align-items:center;
    justify-content:center
}

.login-prefeitura-card {
    width:430px;
    background:#fff;
    border-radius:5px;
    box-shadow:0 18px 42px rgba(0, 0, 0, .38);
    padding:32px 38px 34px 38px
}

.login-brand {
    text-align:center
}

.login-logo-line {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px
}

.login-gdi-name {
    color:#0067b1;
    font-size:31px;
    font-weight:800;
    letter-spacing:-1.6px;
    font-family:'Roboto', sans-serif
}

.login-gdi-name span {
    color:#0096d6
}

.login-welcome {
    margin-top:22px;
    color:#005baa;
    font-size:16px;
    font-weight:800;
    letter-spacing:.6px;
    font-family:'Roboto', sans-serif
}

.cadastro-card .login-welcome {
    font-size:21px;
    color:#005baa;
    font-family:'Roboto', sans-serif
}

.login-system-name {
    color:#ff4b1f;
    font-size:12px;
    margin-top:5px;
    text-transform:uppercase;
    font-family:'Roboto', sans-serif
}

.login-form {
    margin-top:22px
}

.login-field {
    margin-bottom:15px
}

.login-field label {
    display:block;
    color:#333;
    font-size:13px;
    margin-bottom:5px;
    font-weight:700
}

.login-input-wrap {
    height:38px;
    border:1px solid #cdd6df;
    border-radius:4px;
    display:flex;
    align-items:center;
    background:#fff
}

.login-input-wrap i {
    width:42px;
    text-align:center;
    color:#0067b1;
    font-size:17px
}

.login-input-wrap input {
    flex:1;
    border:none;
    outline:none;
    height:34px;
    font-size:15px;
    padding-right:10px
}

.login-links {
    text-align:center;
    margin:18px 0 20px 0
}

.login-links a {
    color:#0074c8;
    font-size:12px;
    text-decoration:none;
    font-weight:500;
    padding:3px 6px;
    border-radius:4px;
    transition:background .18s, color .18s
}

.login-links a:hover {
    background:#e8f0fe;
    color:#004f93
}

.login-button {
    width:100%;
    height:42px;
    border:none;
    border-radius:4px;
    background:#005baa;
    color:#fff;
    font-size:15px;
    cursor:pointer
}

.login-button:hover {
    background:#004f93
}

.login-error {
    margin-top:18px;
    padding:12px 16px;
    background:#fff1f0;
    border-left:4px solid #e53e3e;
    color:#b42318;
    font-size:13px;
    border-radius:6px;
    display:flex;
    align-items:center;
    gap:10px;
    font-weight:500;
    box-shadow:0 2px 8px rgba(229,62,62,.12);
    animation:slideInAlert .25s ease
}

.login-prefeitura-footer {
    height:40px;
    line-height:40px;
    background:#005baa;
    color:#fff;
    text-align:center;
    font-size:13px
}

.tcloud-wait-overlay {
    position:fixed;
    inset:0;
    background:rgba(0,15,40,.83);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
    display:none;
    align-items:center;
    justify-content:center;
    z-index:9999
}

.tcloud-wait-overlay.show {
    display:flex;
    animation:tcloudFadeIn .3s ease
}

@keyframes tcloudFadeIn {
    from { opacity:0 }
    to { opacity:1 }
}

.tcloud-wait-box {
    width:280px;
    background:#fff;
    border-radius:18px;
    padding:26px 26px 22px;
    text-align:center;
    box-shadow:0 18px 50px rgba(0,0,0,.32);
    animation:tcloudSlideUp .35s cubic-bezier(.34,1.56,.64,1)
}

@keyframes tcloudSlideUp {
    from { opacity:0; transform:translateY(22px) scale(.96) }
    to { opacity:1; transform:translateY(0) scale(1) }
}

.tcloud-spinner {
    position:relative;
    width:46px;
    height:46px;
    margin:0 auto 16px
}

.tcloud-spinner::before,
.tcloud-spinner::after {
    content:'';
    position:absolute;
    border-radius:50%;
    border:3px solid transparent
}

.tcloud-spinner::before {
    inset:0;
    border-top-color:var(--blue);
    animation:tcloudSpin .85s linear infinite
}

.tcloud-spinner::after {
    inset:8px;
    border-top-color:#93c5fd;
    animation:tcloudSpin .55s linear infinite reverse
}

@keyframes tcloudSpin {
    to { transform:rotate(360deg) }
}

.tcloud-wait-title {
    font-size:15px;
    color:var(--blue-dark);
    font-weight:800;
    font-family:'Roboto',sans-serif;
    letter-spacing:.01em
}

.tcloud-wait-subtitle {
    font-size:11.5px;
    color:#8399aa;
    margin-top:6px;
    line-height:1.55
}

.tcloud-wait-badge {
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin-top:16px;
    padding:5px 14px;
    background:#f0f6ff;
    border-radius:20px;
    font-size:10.5px;
    color:var(--blue);
    font-weight:600
}

.tcloud-wait-badge .badge-dot {
    width:6px;
    height:6px;
    border-radius:50%;
    background:var(--blue);
    animation:tcloudBlink 1.2s ease-in-out infinite
}

@keyframes tcloudBlink {
    0%,100% { opacity:1 }
    50% { opacity:.2 }
}

.routine-desktop-page {
    flex:1;
    padding:34px;
    background:#fff
}

.routine-desktop-card {
    max-width:1050px;
    margin:0 auto;
    display:flex;
    gap:26px;
    background-color:#fff;
    background-image:radial-gradient(rgba(80, 80, 80, .07) 1px, transparent 1px);
    background-size:5px 5px;
    border:1px solid #e8eef2;
    box-shadow:0 11px 24px rgba(0, 0, 0, .12);
    border-radius:9px;
    padding:28px
}

.routine-desktop-icon {
    width:78px;
    height:78px;
    color:var(--blue);
    font-size:54px;
    display:flex;
    align-items:center;
    justify-content:center
}

.breadcrumb-line.internal {
    height:auto;
    border-bottom:none;
    padding:0;
    font-size:14px
}

.routine-desktop-content h1 {
    color:var(--blue-dark);
    font-size:26px;
    text-transform:uppercase;
    margin:18px 0 8px 0
}

.desktop-alert {
    margin-top:20px;
    padding:15px 18px;
    background:#eaf6ff;
    border-left:4px solid var(--blue);
    color:#2d4b5f
}

.desktop-button {
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-top:22px;
    padding:10px 16px;
    background:var(--blue);
    color:#fff;
    text-decoration:none;
    border-radius:4px
}

/* ===== ROTINAS EXECUTÁVEIS ===== */
.rotina-exec-wrap{padding:24px 32px;max-width:1400px}
.rotina-exec-header{display:flex;align-items:center;gap:18px;margin-bottom:22px}
.rotina-exec-icon{font-size:42px;color:var(--blue);width:56px;text-align:center}
.rotina-exec-title{font-size:22px;color:var(--blue-dark);font-weight:800;margin:0 0 4px 0;text-transform:uppercase}
.rotina-exec-sub{margin:0;color:#64748b;font-size:13px}
.rotina-params-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:20px 24px;margin-bottom:20px}
.rotina-params-grid{display:flex;flex-wrap:wrap;gap:16px 24px}
.rotina-param-field{display:flex;flex-direction:column;gap:5px;min-width:200px;flex:1}
.rotina-param-field label{font-size:12px;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em}
.rotina-param-field .req{color:#ef4444}
.rotina-input{padding:8px 11px;border:1px solid #d1dbe6;border-radius:4px;font-size:14px;width:100%;background:#fff}
.rotina-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px rgba(0,103,177,.15)}
.rotina-actions{display:flex;gap:10px;margin-top:18px;align-items:center}
.btn-rotina-exec{display:inline-flex;align-items:center;gap:7px;padding:9px 22px;background:var(--blue);color:#fff;border:none;border-radius:5px;font-size:14px;font-weight:600;cursor:pointer}
.btn-rotina-exec:hover{background:var(--blue-dark)}
.btn-rotina-voltar{display:inline-flex;align-items:center;gap:7px;padding:9px 20px;background:#fff;color:#64748b;border:1.5px solid #d1d9e0;border-radius:5px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none}
.btn-rotina-voltar:hover{background:#f1f5f9;color:#334155;border-color:#b0bec5}
.btn-rotina-csv{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;background:#166534;color:#fff;border:none;border-radius:5px;font-size:14px;cursor:pointer}
.btn-rotina-csv:hover{background:#14532d}
.rotina-result-info{font-size:13px;color:#475569;margin-bottom:10px;padding:8px 12px;background:#f1f5f9;border-radius:4px}
.rotina-table-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:6px}

/* ═══════════════════════════════════════════════════════════════
   RH — Recibo de Pagamento Bradesco
   ═══════════════════════════════════════════════════════════════ */
.recibo-header-bar{padding:6px 22px 6px;border-bottom:1px solid #e5e9ee;flex-shrink:0;background:#fff}
.recibo-body{display:flex;flex:1;overflow:hidden;min-height:0}
.page-heading-row{display:flex;align-items:center;gap:8px}
.page-heading-icon{font-size:21px;color:var(--blue)}
.page-heading-title{font-size:18px;font-weight:800;color:var(--blue-dark);font-family:'Roboto',sans-serif}

/* Painel de parâmetros */
.recibo-params-panel{width:292px;flex-shrink:0;border-right:2px solid #1a4f96;overflow-y:auto;padding:14px 14px 20px;background:#f0f5fc}
.recibo-section-label{font-size:11px;font-weight:700;font-family:'Segoe UI',Arial,sans-serif;color:#1a4f96;text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px;display:flex;align-items:center;gap:6px}
.recibo-field{margin-bottom:13px}
.recibo-label{display:block;font-size:12px;font-weight:600;color:#1e3a5f;margin-bottom:4px;font-family:'Segoe UI',Arial,sans-serif}
.recibo-label .req{color:#e53e3e}
.recibo-input{width:100%;height:34px;border:1.5px solid #1a4f96;border-radius:0;padding:0 9px;font-size:13px;font-family:'Segoe UI',Arial,sans-serif;background:#fff;transition:border-color .15s}
.recibo-input:focus{outline:none;border-color:#0d2c5e;box-shadow:0 0 0 2px rgba(13,44,94,.12)}
select.recibo-input{cursor:pointer}
.recibo-range{display:flex;align-items:flex-end;gap:6px}
.recibo-range>div{flex:1}
.recibo-range-label{display:block;font-size:10.5px;color:#94a3b8;margin-bottom:2px}
.recibo-range-sep{font-size:11px;color:#94a3b8;padding-bottom:8px;flex-shrink:0}
.recibo-filial-atalhos{display:flex;gap:5px;margin-top:6px}
.recibo-btn-filial{flex:1;height:26px;font-size:11px;font-weight:600;border:1.5px solid #cbd5e1;border-radius:4px;background:#fff;color:#64748b;cursor:pointer;font-family:'Roboto',sans-serif;transition:background .15s,border-color .15s}
.recibo-btn-filial:hover{background:#eff6ff;border-color:var(--blue);color:var(--blue)}
.recibo-btn-busca-func{display:flex;align-items:center;gap:6px;margin-top:7px;width:100%;height:30px;border:1.5px solid #1565a7;border-radius:0;background:#1565a7;color:#fff;font-size:12px;font-weight:600;cursor:pointer;padding:0 10px;font-family:'Segoe UI',Arial,sans-serif;transition:background .15s}
.recibo-btn-busca-func:hover{background:#0d2c5e;border-color:#0d2c5e}
.recibo-check-field{display:flex;align-items:flex-start}
.recibo-check-label{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#374151;cursor:pointer;line-height:1.4;font-family:'Roboto',sans-serif}
.recibo-check-label input[type=checkbox]{margin-top:2px;accent-color:var(--blue);width:14px;height:14px;cursor:pointer;flex-shrink:0}

/* Botões do formulário */
.recibo-btns{display:flex;flex-direction:column;gap:7px;margin-top:16px}
.recibo-btn{display:flex;align-items:center;justify-content:center;gap:7px;height:36px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;border:none;font-family:'Roboto',sans-serif;transition:background .15s,opacity .15s;text-decoration:none;width:100%}
.recibo-btn:disabled{opacity:.45;cursor:not-allowed}
.recibo-btn-primary{background:var(--blue);color:#fff}
.recibo-btn-primary:hover{background:var(--blue-dark)}
.recibo-btn-success{background:#16a34a;color:#fff}
.recibo-btn-success:hover:not(:disabled){background:#15803d}
.recibo-btn-warning{background:#d97706;color:#fff}
.recibo-btn-warning:hover:not(:disabled){background:#b45309}
.recibo-btn-secondary{background:#64748b;color:#fff}
.recibo-btn-secondary:hover{background:#475569}
.recibo-btn-outline{background:#fff;color:#64748b;border:1.5px solid #cbd5e1}
.recibo-btn-outline:hover{background:#f1f5f9;color:#334155}

/* Painel da grid */
.recibo-grid-panel{flex:1;overflow:auto;padding:16px 20px;display:flex;flex-direction:column;min-width:0}
.recibo-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:12px;color:#94a3b8;text-align:center}
.recibo-empty-state i{font-size:52px;color:#cbd5e1}
.recibo-sem-dados{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:10px;color:#94a3b8;font-size:14px}
.recibo-sem-dados i{font-size:38px}
.recibo-grid-info{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:13px;color:#475569;flex-wrap:wrap;gap:8px}
.recibo-total-badge{background:#fff7ed;border:1.5px solid #fed7aa;color:#c2410c;padding:4px 14px;border-radius:20px;font-size:13px;font-weight:700;font-family:'Roboto',sans-serif}
.recibo-table-wrap{overflow:auto;border:1px solid #e2e8f0;border-radius:8px;flex:1}
.recibo-table{width:100%;border-collapse:collapse;font-size:12.5px}
.recibo-table thead th{background:#1e40af;color:#fff;padding:8px 10px;text-align:left;font-weight:700;white-space:nowrap;position:sticky;top:0;z-index:1}
.recibo-table thead th.text-right{text-align:right}
.recibo-table tbody td{padding:6px 10px;border-bottom:1px solid #f1f5f9;white-space:nowrap}
.recibo-table tbody tr:nth-child(even) td{background:#fafbff}
.recibo-table tbody tr:hover td{background:#eff6ff}
.recibo-table td.text-right{text-align:right}
.recibo-table .val-num{font-family:monospace;font-size:12px}
.recibo-total-row td{background:#fff7ed !important;font-weight:700;border-top:2px solid #fed7aa;color:#92400e}

/* Modal de funcionários */
/* Busca de funcionário: cortina lateral deslizante (mesmo padrão gdi-curtain) */
.recibo-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.48);z-index:8100;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s linear .38s}
.recibo-modal-backdrop.show{opacity:1;visibility:visible;transition:opacity .3s ease}
.recibo-modal{position:fixed;top:0;right:0;left:auto;height:100vh;max-height:100vh;width:680px;max-width:96vw;background:#fff;border-radius:0;box-shadow:-14px 0 46px rgba(15,23,42,.3);z-index:8101;display:flex;flex-direction:column;transform:translateX(101%);transition:transform .38s cubic-bezier(.22,.61,.36,1)}
.recibo-modal.show{transform:translateX(0)}
@media (prefers-reduced-motion: reduce){.recibo-modal{transition:none}}
.recibo-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #e5e9ee;font-weight:700;color:var(--blue-dark);font-family:'Roboto',sans-serif;font-size:15px;flex-shrink:0}
.recibo-modal-close{background:none;border:none;cursor:pointer;font-size:18px;color:#94a3b8;padding:2px 6px;border-radius:4px;transition:background .15s}
.recibo-modal-close:hover{background:#f1f5f9;color:#374151}
.recibo-modal-search{display:flex;align-items:center;gap:8px;padding:10px 18px;border-bottom:1px solid #e5e9ee;flex-shrink:0}
.recibo-modal-search i{color:#94a3b8;font-size:16px}
.recibo-modal-search input{flex:1;border:1.5px solid #e2e8f0;border-radius:6px;height:34px;padding:0 10px;font-size:13px;font-family:'Roboto',sans-serif}
.recibo-modal-search input:focus{outline:none;border-color:var(--blue)}
.recibo-modal-body{flex:1;overflow-y:auto;padding:8px}
.recibo-modal-loading{padding:30px;text-align:center;color:#94a3b8;display:flex;align-items:center;justify-content:center;gap:10px;font-size:14px}
.recibo-modal-table{width:100%;border-collapse:collapse;font-size:12.5px}
.recibo-modal-table thead th{background:#f1f5f9;color:#374151;padding:7px 10px;text-align:left;font-weight:700;position:sticky;top:0}
.recibo-modal-table tbody tr{cursor:pointer}
.recibo-modal-table tbody td{padding:6px 10px;border-bottom:1px solid #f1f5f9}
.recibo-modal-table tbody tr:hover td{background:#eff6ff;color:var(--blue)}
.recibo-modal-footer{padding:10px 18px;border-top:1px solid #e5e9ee;display:flex;justify-content:flex-end;flex-shrink:0}
.rotina-table{width:100%;border-collapse:collapse;font-size:12.5px}
.rotina-table th{background:#e2e8f0;color:#1e3a5f;padding:8px 10px;text-align:left;font-weight:700;white-space:nowrap;position:sticky;top:0}
.rotina-table td{padding:6px 10px;border-bottom:1px solid #f1f5f9;white-space:nowrap}
.rotina-table tr:hover td{background:#f8fafc}
.rotina-sem-dados{text-align:center;padding:40px 20px;color:#94a3b8;font-size:15px;display:flex;flex-direction:column;align-items:center;gap:10px}
.rotina-sem-dados i{font-size:36px}
.rotina-erro{padding:14px 16px;background:#fff1f0;border:1px solid #ffc9c4;color:#b42318;border-radius:6px;margin-bottom:16px}

/* ===== ÁREA ADMIN ===== */
.btn-admin-novo {
    display:inline-flex;align-items:center;gap:7px;padding:8px 18px;
    background:var(--blue);color:#fff;border-radius:5px;text-decoration:none;font-size:14px
}
.btn-admin-novo:hover{background:var(--blue-dark)}
.admin-alert{padding:10px 14px;border-radius:5px;margin-bottom:16px;font-size:13px}
.admin-alert-success{background:#ecfdf5;border:1px solid #6ee7b7;color:#065f46}
.admin-alert-error{background:#fff1f0;border:1px solid #ffc9c4;color:#b42318}
.admin-table-wrap{overflow-x:auto;margin-top:18px}
.admin-table{width:100%;border-collapse:collapse;font-size:13px}
.admin-table th{background:#f0f4f8;color:#334155;padding:9px 12px;text-align:left;font-weight:600;border-bottom:2px solid #d1dbe6}
.admin-table td{padding:8px 12px;border-bottom:1px solid #e8eef2;vertical-align:middle}
.admin-table tr:hover td{background:#f8fafc}
.admin-row-inativo td{opacity:.55}
.badge-perfil{display:inline-block;padding:2px 9px;border-radius:12px;font-size:11px;font-weight:700;text-transform:uppercase}
.badge-admin{background:#ede9fe;color:#5b21b6}
.badge-usuario{background:#e0f2fe;color:#0369a1}
.badge-ativo{display:inline-block;padding:2px 9px;border-radius:12px;font-size:11px;font-weight:700;background:#dcfce7;color:#166534}
.badge-inativo{display:inline-block;padding:2px 9px;border-radius:12px;font-size:11px;font-weight:700;background:#fee2e2;color:#991b1b}
.admin-acoes{display:flex;gap:6px;align-items:center}
.btn-admin-acao{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:4px;border:none;cursor:pointer;font-size:14px;text-decoration:none;background:#e2e8f0;color:#334155}
.btn-admin-acao:hover{background:#cbd5e1}
.btn-inativar{background:#fee2e2;color:#991b1b}
.btn-inativar:hover{background:#fecaca}
.btn-ativar{background:#dcfce7;color:#166534}
.btn-ativar:hover{background:#bbf7d0}
.btn-reset{background:#fef3c7;color:#92400e}
.btn-reset:hover{background:#fde68a}
.admin-form-card{max-width:560px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:28px;box-shadow:0 4px 16px rgba(0,0,0,.07)}
.admin-form{display:flex;flex-direction:column;gap:16px}
.admin-form-row{display:flex;flex-direction:column;gap:5px}
.admin-form-row label{font-size:13px;font-weight:600;color:#334155}
.admin-input{padding:9px 12px;border:1px solid #d1dbe6;border-radius:4px;font-size:14px;width:100%}
.admin-input-disabled{background:#f1f5f9;color:#94a3b8}
.admin-form-actions{display:flex;gap:12px;align-items:center;margin-top:8px}
.btn-admin-cancel{padding:8px 20px;border:1px solid #d1dbe6;border-radius:4px;text-decoration:none;color:#334155;font-size:14px}
.btn-admin-cancel:hover{background:#f1f5f9}

@media(max-width:1400px) {
    .prefeitura-grid {
    grid-template-columns:repeat(3, minmax(210px, 1fr))
}
}

@media(max-width:1050px) {
    .prefeitura-grid {
    grid-template-columns:repeat(2, minmax(210px, 1fr))
}

.company-block {
    display:none
}

.header-actions {
    min-width:280px
}
}

@media(max-width:760px) {
    .desktop-body {
    overflow:auto
}

.desktop-shell {
    height:auto;
    min-height:100vh;
    flex-direction:column
}

.right-wrapper {
    height:auto;
    flex:1
}

.desktop-header {
    height:auto;
    min-height:44px;
    flex-direction:row;
    align-items:center;
    padding:0
}

.desktop-sidebar, .desktop-sidebar.collapsed {
    width:100%;
    min-width:100%;
    height:auto
}

.desktop-sidebar.collapsed .gdi-logo {
    display:flex
}

.desktop-sidebar.collapsed .gdi-logo-i,
.desktop-sidebar.collapsed .gdi-logo-online {
    display:inline
}

.desktop-sidebar.collapsed .desktop-menu-item span, .desktop-sidebar.collapsed .sidebar-title-left span {
    display:inline;
    opacity:1;
    transform:none
}

.desktop-sidebar.collapsed .sidebar-main-title {
    justify-content:space-between
}

.desktop-sidebar.collapsed .sidebar-title-left {
    padding-left:14px;
    gap:10px
}

.prefeitura-grid {
    grid-template-columns:1fr
}

.desktop-footer {
    position:static
}
}
/* PRIMEIRO ACESSO / PERFIL */
.login-success {
    margin-top:18px;
    padding:12px 16px;
    background:#f0fdf4;
    border-left:4px solid #22c55e;
    color:#15803d;
    font-size:13px;
    border-radius:6px;
    display:flex;
    align-items:center;
    gap:10px;
    font-weight:500;
    box-shadow:0 2px 8px rgba(34,197,94,.12);
    animation:slideInAlert .25s ease
}

.login-success i, .login-error i {
    font-size:18px;
    flex-shrink:0
}

@keyframes slideInAlert {
    from { opacity:0; transform:translateY(-8px) }
    to   { opacity:1; transform:translateY(0) }
}

.login-links-split {
    display:flex;
    justify-content:space-between;
    gap:12px
}

.cadastro-card {
    width:470px
}

.header-user-button {
    border:none;
    background:transparent;
    cursor:pointer;
    font-family:inherit
}

.header-user-button:hover .header-user-name {
    color:var(--blue)
}

/* ── Modal de erro padrão (validação — todos os módulos) ──── */
.modal-backdrop-gdi { position:fixed; inset:0; background:rgba(15,23,42,.55); z-index:4000; display:none; align-items:center; justify-content:center; }
.modal-backdrop-gdi.show { display:flex; }
.modal-card { background:#fff; border-radius:16px; border:1px solid #e8edf3; box-shadow:0 20px 60px rgba(15,23,42,.28); padding:28px 32px 24px; max-width:420px; width:92vw; display:flex; flex-direction:column; align-items:center; gap:12px; animation:modalPopGdi .18s ease-out; }
@keyframes modalPopGdi { from { transform:translateY(10px) scale(.97); opacity:0; } to { transform:none; opacity:1; } }
.modal-icon-wrap { width:64px; height:64px; border-radius:50%; background:#fef2f2; display:flex; align-items:center; justify-content:center; font-size:34px; color:#dc2626; line-height:1; }
.modal-title-gdi { font-size:18px; font-weight:700; font-family:'Segoe UI',Arial,sans-serif; color:#1e293b; text-align:center; }
.modal-msg-gdi { font-size:14px; font-family:'Segoe UI',Arial,sans-serif; color:#64748b; text-align:center; line-height:1.55; }
.modal-btn-ok { background:#1565a7; color:#fff; border:none; border-radius:10px; padding:11px 40px; font-size:14px; font-weight:700; font-family:'Segoe UI',Arial,sans-serif; cursor:pointer; margin-top:8px; box-shadow:0 4px 14px rgba(21,101,167,.35); transition:background .15s, transform .1s; }
.modal-btn-ok:hover { background:#0d2c5e; }
.modal-btn-ok:active { transform:scale(.97); }

/* ── Cortina lateral deslizante (telas de pesquisa/apresentação) ──────────────
   Aplique a classe .gdi-curtain-bd no elemento de fundo (backdrop) do modal.
   O card filho vira uma cortina que desliza da direita. Fecha só via botão
   (Voltar/Cancelar/X) — sem fechar ao clicar no fundo. Usa !important para
   sobrepor o CSS antigo de cada modal sem precisar reescrevê-lo. */
.gdi-curtain-bd {
    position:fixed !important; inset:0 !important; z-index:4300;
    background:rgba(15,23,42,.48);
    display:flex !important; align-items:stretch !important; justify-content:flex-end !important;
    padding:0 !important; margin:0 !important;
    opacity:0; visibility:hidden;
    transition:opacity .3s ease, visibility 0s linear .38s;
}
.gdi-curtain-bd.show { opacity:1; visibility:visible; transition:opacity .3s ease; }
.gdi-curtain-bd > * {
    position:relative !important; top:auto !important; left:auto !important; right:auto !important; bottom:auto !important;
    height:100vh !important; max-height:100vh !important; min-height:100vh !important;
    max-width:96vw !important; margin:0 !important; border-radius:0 !important;
    opacity:1 !important;
    transform:translateX(101%); will-change:transform;
    transition:transform .38s cubic-bezier(.22,.61,.36,1);
    box-shadow:-14px 0 46px rgba(15,23,42,.3);
    display:flex !important; flex-direction:column !important;
}
.gdi-curtain-bd.show > * { transform:translateX(0) !important; }
@media (prefers-reduced-motion: reduce) {
    .gdi-curtain-bd, .gdi-curtain-bd > * { transition:none !important; }
}

/* ── Campo com botão (lupa/calendário) — padrão de parâmetro ──────────────────
   Estrutura: <div class="inp-srch"><input …><button …><i class="bi …"></i></button></div>
   O botão de calendário (.inp-cal-btn) é injetado automaticamente pelo
   desktop-ui.js em todo campo de data (oninput="mascData(this)"). */
.inp-srch { display:flex; position:relative; }
.inp-srch > input:not([type=date]) { flex:1; min-width:0; border-top-right-radius:0; border-bottom-right-radius:0; border-right:none; }
.inp-srch > button, .inp-cal-btn { align-self:stretch; min-height:30px; width:34px; flex-shrink:0; box-sizing:border-box;
    border:1.5px solid #1a4f96; border-radius:0 8px 8px 0; background:#f0f5fc; color:#1565a7;
    cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:14px; padding:0;
    transition:background .12s; }
.inp-srch > button:hover, .inp-cal-btn:hover { background:#dceafc; }
.inp-srch > button:active, .inp-cal-btn:active { background:#cfe2fb; }
.date-pick { position:absolute; right:0; bottom:0; width:34px; height:100%; opacity:0; pointer-events:none; border:0; padding:0; margin:0; }

/* Unifica o padrão ANTIGO de data (.date-wrap/.btn-cal — calendário destacado azul
   escuro) ao NOVO: calendário COLADO ao campo, com fundo azul clarinho. Vale para
   todas as telas que usam esse componente, sem editar cada uma. */
.date-wrap { display:flex !important; position:relative !important; gap:0 !important; align-items:stretch !important; }
.date-wrap > input[type=text] { border-top-right-radius:0 !important; border-bottom-right-radius:0 !important; border-right:none !important; }
.date-wrap .btn-cal { width:34px !important; min-height:30px !important; align-self:stretch !important; box-sizing:border-box !important;
    border:1.5px solid #1a4f96 !important; border-radius:0 8px 8px 0 !important; background:#f0f5fc !important; color:#1565a7 !important; transition:background .12s; }
.date-wrap .btn-cal:hover { background:#dceafc !important; }
.date-wrap .btn-cal:active { background:#cfe2fb !important; }
.date-wrap input[type=date].hide-native { position:absolute !important; right:0 !important; bottom:0 !important; width:34px !important; height:100% !important;
    opacity:0 !important; visibility:visible !important; pointer-events:none !important; border:0 !important; padding:0 !important; margin:0 !important; }

.user-drawer-backdrop {
    position:fixed;
    inset:0;
    background:rgba(0, 0, 0, .62);
    display:none;
    z-index:8000
}

.user-drawer-backdrop.open {
    display:block
}

.user-drawer {
    position:fixed;
    right:-390px;
    top:0;
    width:390px;
    height:100vh;
    background:#fff;
    z-index:8001;
    box-shadow:-10px 0 26px rgba(0, 0, 0, .25);
    transition:right .22s ease;
    border-left:1px solid #dfe7ee
}

.user-drawer.open {
    right:0
}

.user-drawer-profile {
    display:flex;
    gap:16px;
    padding:26px 20px 20px 20px;
    border-bottom:1px solid #e5e9ee
}

.user-drawer-avatar {
    width:64px;
    height:64px;
    border-radius:50%;
    background:linear-gradient(135deg,var(--blue),var(--blue-2));
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:32px;
    flex-shrink:0;
    box-shadow:0 4px 14px rgba(0,103,177,.30)
}

.user-drawer-name {
    font-size:16px;
    font-weight:800;
    color:#111827;
    margin-top:8px;
    font-family:'Roboto',sans-serif
}

.user-drawer-small {
    font-size:13px;
    color:#344054;
    margin-top:3px;
    font-family:'Roboto',sans-serif
}

.user-drawer-company {
    display:flex;
    gap:10px;
    padding:20px;
    border-bottom:1px solid #e5e9ee;
    color:#111827;
    font-size:14px;
    line-height:1.45;
    font-family:'Roboto',sans-serif
}

.user-drawer-company i {
    color:#111827
}

.user-drawer-menu a {
    height:46px;
    display:flex;
    align-items:center;
    gap:12px;
    padding:0 22px;
    border-bottom:1px solid #edf1f4;
    text-decoration:none;
    color:#4b5563;
    font-size:14px;
    font-family:'Roboto',sans-serif;
    font-weight:500;
    transition:background .15s,color .15s
}

.user-drawer-menu a:hover {
    background:#f0f6ff;
    color:var(--blue)
}

.profile-form {
    margin-top:18px;
    max-width:430px
}

.profile-form label {
    display:block;
    margin:12px 0 5px 0;
    color:#344054;
    font-weight:700;
    font-size:13px
}

.profile-input {
    width:100%;
    height:38px;
    border:1px solid #cfd8e3;
    border-radius:4px;
    padding:0 10px;
    font-family:inherit
}

.form-error {
    margin-top:18px;
    padding:12px 16px;
    background:#fff1f0;
    border-left:4px solid #e53e3e;
    color:#b42318;
    font-size:13px;
    border-radius:6px;
    display:flex;
    align-items:center;
    gap:10px;
    font-weight:500;
    box-shadow:0 2px 8px rgba(229,62,62,.12);
    animation:slideInAlert .25s ease
}

.form-error i {
    font-size:18px;
    flex-shrink:0
}

.form-success {
    margin-top:18px;
    padding:12px 16px;
    background:#f0fff4;
    border-left:4px solid #38a169;
    color:#276749;
    font-size:13px;
    border-radius:6px;
    display:flex;
    align-items:center;
    gap:10px;
    font-weight:500;
    box-shadow:0 2px 8px rgba(56,161,105,.12);
    animation:slideInAlert .25s ease
}

.form-success i {
    font-size:18px;
    flex-shrink:0
}

.alterar-senha-sucesso {
    margin-top:28px;
    text-align:center;
    padding:32px 24px;
    background:#f0fff6;
    border:1.5px solid #a7f3d0;
    border-radius:12px;
    animation:slideInAlert .3s ease
}

.alterar-senha-sucesso-icon {
    font-size:54px;
    color:#22c55e;
    line-height:1;
    margin-bottom:14px
}

.alterar-senha-sucesso-titulo {
    font-size:18px;
    font-weight:800;
    color:#166534;
    font-family:'Roboto',sans-serif
}

.alterar-senha-sucesso-sub {
    font-size:13.5px;
    color:#4b6358;
    margin-top:8px;
    font-family:'Roboto',sans-serif
}

.button-no-border {
    border:none;
    cursor:pointer
}

.secondary-button {
    background:#64748b;
    margin-left:8px
}

.profile-data-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px 22px;
    margin-top:22px;
    color:#344054;
    font-size:15px
}

.password-card {
    max-width:760px
}
.primeiro-acesso-info  {
    font-size: 12px;
    margin: 14px 0;
    padding: 10px 12px;
}

/* ════════════════════════════════════════════════════════════════════
   MODO HOMOLOGAÇÃO — usuário "homolog" / base de TESTES do TCloud.
   Recolore o tema azul para vermelho (#c93e4f) como indicador visual.
   ════════════════════════════════════════════════════════════════════ */
body.homolog-mode {
    --blue:      #c93e4f;
    --blue-2:    #e0697a;
    --blue-dark: #9e2d3c;
}
/* Menu lateral (gradiente fixo) */
body.homolog-mode .desktop-sidebar {
    background: linear-gradient(180deg, #7e1f2b 0%, #c93e4f 100%) !important;
}
/* Selo de ambiente no cabeçalho */
body.homolog-mode .desktop-header::after {
    content: "● AMBIENTE DE HOMOLOGAÇÃO / TESTES";
    position: absolute; left: 50%; bottom: 1px; transform: translateX(-50%);
    font-size: 10px; font-weight: 800; letter-spacing: .5px; color: #c93e4f;
    background: #fbeced; border: 1px solid #f0b9c0; border-radius: 10px;
    padding: 1px 12px; white-space: nowrap; z-index: 5;
}
body.homolog-mode .desktop-header { position: relative; }
/* Cabeçalhos de grids/tabelas e barras escuras (azul-escuro → vermelho-escuro) */
body.homolog-mode .grid-table thead th,
body.homolog-mode table.t thead th,
body.homolog-mode .lk-table thead th,
body.homolog-mode .rotina-table th,
body.homolog-mode .tot-item.tot-registros,
body.homolog-mode .tabs-bar .tab-btn.active { background: #9e2d3c !important; border-color: #9e2d3c !important; }
/* Bordas azuis dos painéis/cards/inputs → vermelho */
body.homolog-mode .step-panel,
body.homolog-mode .card-box,
body.homolog-mode .totais-bar,
body.homolog-mode .tot-item,
body.homolog-mode .step-panel-header,
body.homolog-mode .card-h,
body.homolog-mode .form-control,
body.homolog-mode .fg input,
body.homolog-mode .fg select,
body.homolog-mode .recibo-input,
body.homolog-mode .modal-card,
body.homolog-mode .grid-wrap { border-color: #c93e4f !important; }
/* Fundos azul-claros dos cabeçalhos de painel → rosa-claro */
body.homolog-mode .step-panel-header,
body.homolog-mode .tot-item,
body.homolog-mode .card-h,
body.homolog-mode .recibo-params-panel { background: #fbeced !important; color: #9e2d3c !important; }
/* Botões/acentos azuis fixos → vermelho */
body.homolog-mode .btn-lookup,
body.homolog-mode .btn-calendar,
body.homolog-mode .btn-busca,
body.homolog-mode .btn-info,
body.homolog-mode .recibo-btn-busca-func,
body.homolog-mode .modal-btn-ok,
body.homolog-mode .btn-icon.edit:hover { background: #c93e4f !important; border-color: #c93e4f !important; }
body.homolog-mode .tot-value,
body.homolog-mode .page-heading-title,
body.homolog-mode .step-panel-header { color: #9e2d3c !important; }
/* Cards do portal (home) — mesmo vermelho do painel/menu */
body.homolog-mode .prefeitura-card {
    background: linear-gradient(135deg, #9e2d3c 0%, #c93e4f 100%) !important;
    box-shadow: 0 6px 16px rgba(158,45,60,.28) !important;
}
body.homolog-mode .prefeitura-card:hover {
    background: linear-gradient(135deg, #b3344a 0%, #d9536a 100%) !important;
    box-shadow: 0 10px 22px rgba(158,45,60,.36) !important;
}

/* ── Modo embutido: relatório dentro do iframe do painel "Relatórios do RH" ── */
.embed-mode .desktop-sidebar,
.embed-mode .desktop-header,
.embed-mode .desktop-footer,
.embed-mode #tcloudBanner,
.embed-mode .recibo-header-bar { display: none !important; }
.embed-mode .right-wrapper { width: 100%; }
body.embed-mode { background: #fff; }
