:root {
  --ink: #162330;
  --muted: #66727e;
  --paper: #f5f7f8;
  --line: #dfe5e8;
  --blue: #135d72;
  --blue-dark: #0c3d4d;
  --aqua: #52b6ae;
  --green: #1f8a70;
  --white: #fff;
  --shadow: 0 16px 40px rgba(25, 48, 61, .08);
}

/* Cadastro de empresas */
.companies-topbar { justify-content: space-between; }
.company-header-actions { display: flex; align-items: center; gap: 10px; }
.company-export-action { padding: 12px 16px; border: 1px solid #9ed8dc; border-radius: 9px; color: var(--blue); background: #f4fcfc; font-size: 13px; font-weight: 800; }
.primary-action { padding: 13px 18px; border-radius: 9px; background: var(--blue); color: white; font-size: 13px; font-weight: 800; }
.company-filters { display: grid; grid-template-columns: minmax(280px, 1fr) 180px 200px auto; align-items: end; gap: 13px; margin: 12px 0 20px; padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: white; }
.company-filters label, .company-form-grid label { display: grid; gap: 7px; color: #4e5d65; font-size: 12px; font-weight: 750; }
.company-filters input, .company-filters select, .company-form-grid input { width: 100%; height: 45px; padding: 0 12px; border: 1px solid #cfdadd; border-radius: 8px; background: white; color: var(--ink); font: inherit; font-size: 14px; }
.company-filters button { height: 45px; padding: 0 20px; border: 0; border-radius: 8px; background: var(--blue-dark); color: white; cursor: pointer; font-weight: 750; }
.company-search-status { margin: -10px 0 14px; color: var(--muted); font-size: 12px; }
.company-search-status:empty { display: none; }
.company-table th { padding: 9px 11px; }
.company-table td { padding: 9px 11px; line-height: 1.25; }
.company-table .company-index { width: 34px; min-width: 34px; padding-inline: 7px; color: var(--muted); text-align: center; font-variant-numeric: tabular-nums; }
.company-table .company-store { min-width: 190px; }
.company-table .company-legal { min-width: 185px; color: var(--muted); font-size: 11px; }
.company-table td:nth-child(4), .company-table td:nth-child(6), .company-table td:nth-child(7) { white-space: nowrap; }
.company-status, .token-status { display: inline-flex; padding: 4px 7px; border-radius: 999px; white-space: nowrap; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.company-status.active, .token-status.configured { background: #e1f3eb; color: #187359; }
.company-status.inactive { background: #edf0f1; color: #6d777c; }
.token-status.pending { background: #eee9ff; color: #6241c7; }
.token-status.missing { background: #fff1dc; color: #986315; }
.company-actions { white-space: nowrap; }
.company-actions a, .company-actions button { color: var(--blue); font: inherit; font-size: 12px; font-weight: 800; }
.company-actions form { display: inline; }
.company-action-links { display:flex; flex-wrap:wrap; gap:7px 12px; align-items:center; }
.company-action-links>a,.company-action-links>form { white-space:nowrap; }
.company-action-links form { margin:0; }
.company-actions .company-action-links button { margin-left:0; }
.company-actions button { margin-left: 12px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.company-form-card { max-width: 1050px; margin: 30px auto 0; border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: var(--shadow); }
.company-error { min-height: 0; margin: 0; padding: 0 30px; }
.company-error:not(:empty) { padding-top: 24px; }
.nibo-sync-summary { display:grid; grid-template-columns:repeat(5,minmax(120px,1fr)); gap:10px; margin:12px 0; }
.nibo-sync-summary article { display:grid; gap:5px; padding:13px 15px; border:1px solid var(--line); border-radius:11px; background:#fff; }
.nibo-sync-summary small { color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.06em; }
.nibo-sync-summary strong { color:var(--blue-dark); font-size:21px; }
.nibo-sync-panel { padding:16px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.nibo-sync-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:12px; }
.nibo-sync-heading h2 { margin:0 0 4px; font-size:18px; }
.nibo-sync-heading p { margin:0; color:var(--muted); font-size:12px; }
.nibo-sync-heading form { flex:none; }
.nibo-sync-heading button { border:0; cursor:pointer; }
.nibo-sync-heading button:disabled { cursor:not-allowed; opacity:.5; }
.nibo-sync-table td { padding-block:7px; }
.form-section { display: grid; grid-template-columns: 220px 1fr; gap: 28px; padding: 30px; border-bottom: 1px solid var(--line); }
.form-section h2 { margin: 0; font-size: 19px; }
.company-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.company-form-grid.three { grid-template-columns: repeat(3, 1fr); }
.company-form-grid label > small, .active-control small, .token-readonly small { color: var(--muted); font-size: 10px; font-weight: 400; }
.active-control { display: flex !important; align-items: center; flex-direction: row; gap: 11px !important; padding-top: 21px; }
.active-control input { width: 18px; height: 18px; accent-color: var(--blue); }
.active-control strong, .active-control small { display: block; }
.active-control small { margin-top: 4px; }
.token-readonly { display: grid; gap: 7px; padding: 14px 16px; border-radius: 9px; background: #f1f5f6; }
.token-readonly > span { color: #4e5d65; font-size: 12px; font-weight: 750; }
.token-readonly strong { color: var(--green); font-size: 14px; }
.token-current-status { margin-left: 6px; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.token-current-status.configured { color: var(--green); }
.token-current-status.missing { color: #986315; }
.token-remove { padding-top: 5px; }
.form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 18px; padding: 22px 30px; }
.form-actions a { color: var(--muted); font-size: 13px; }
.form-actions button { min-width: 170px; height: 46px; border: 0; border-radius: 9px; background: var(--blue); color: white; cursor: pointer; font-weight: 800; }

@media (max-width: 760px) {
  .companies-topbar { align-items: flex-start; flex-direction: column; gap: 18px; padding-block: 24px; }
  .company-header-actions { flex-wrap: wrap; }
  .company-filters { grid-template-columns: 1fr; }
  .company-table { margin-top: 18px; }
  .nibo-sync-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nibo-sync-heading { align-items:flex-start; flex-direction:column; }
  .form-section { grid-template-columns: 1fr; }
  .company-form-grid, .company-form-grid.three { grid-template-columns: 1fr; }
}

/* Configuração de colunas e manutenção compacta de empresas. */
.companies-topbar { position:relative; z-index:60; overflow:visible; }
.company-header-actions { position:relative; z-index:61; }
.company-columns-menu { position:relative; z-index:62; }
.company-columns-menu>summary { padding:12px 16px; border:1px solid #9ed8dc; border-radius:9px; background:#f4fcfc; color:var(--blue); cursor:pointer; font-size:13px; font-weight:800; }
.company-columns-panel { position:absolute; top:calc(100% + 6px); right:0; z-index:2147483000; width:330px; max-height:70vh; overflow:auto; padding:13px; border:1px solid var(--line); border-radius:11px; background:#fff; box-shadow:0 14px 32px #10234e2b; }
.company-columns-panel[hidden] { display:none; }
.company-columns-panel>p { margin:0 0 9px; color:var(--muted); font-size:11px; }
.company-columns-panel ol { display:grid; gap:4px; margin:0; padding:0; list-style:none; }
.company-columns-panel li { display:grid; grid-template-columns:24px 1fr; align-items:center; min-height:36px; padding:4px 7px; border:1px solid #e4e9ee; border-radius:7px; background:#fbfcfd; }
.company-columns-panel li.is-dragging { opacity:.5; border-color:#0aa4ad; }
.company-column-drag { color:#8998a3; cursor:grab; font-size:18px; }
.company-columns-panel label { display:flex; align-items:center; gap:8px; font-size:12px; font-weight:700; cursor:pointer; }
.company-columns-panel input { width:16px; height:16px; accent-color:#0aa4ad; }
.company-columns-panel>button { width:100%; margin-top:9px; padding:8px; border:1px solid #d9e0e5; border-radius:7px; background:#f3f1ff; color:#6243ba; cursor:pointer; font-weight:700; }
.company-filters,.company-table { position:relative; z-index:1; }
.company-table { max-width:100%; overflow:auto; scrollbar-gutter:stable; }
.company-table thead th { position:sticky; top:0; z-index:3; background:#f2f4f7; }
.company-sort-button { display:inline-flex; align-items:center; justify-content:flex-start; gap:5px; width:100%; padding:0; border:0; background:transparent; color:inherit; font:inherit; font-weight:inherit; text-align:left; cursor:pointer; }
.company-sort-button:hover,.company-sort-button:focus-visible { color:var(--blue); }
.company-sort-indicator { flex:0 0 auto; color:#73829b; font-size:11px; line-height:1; }
.company-table [data-company-fixed] { position:sticky; right:0; z-index:2; min-width:205px; background:#fff; box-shadow:-5px 0 8px -8px #10234e80; }
.company-table thead [data-company-fixed] { z-index:4; background:#f2f4f7; }
.company-table .company-sales-link { min-width:260px; }
.company-table .company-organization-id { min-width:260px; }
.company-table .company-sales-pin { min-width:72px; text-align:center; font-weight:800; }
.company-table [class^=company-rate-] { min-width:115px; white-space:nowrap; }
.company-sticky-header { position:fixed; top:0; z-index:55; overflow:hidden; border-bottom:1px solid var(--line); background:#f2f4f7; box-shadow:0 5px 14px #10234e24; }
.company-sticky-header[hidden] { display:none; }
.company-sticky-header table { margin:0; border-collapse:collapse; table-layout:fixed; background:#f2f4f7; }
.company-sticky-header thead,.company-sticky-header tr { background:#f2f4f7; }
.company-sticky-header th { box-sizing:border-box; padding:9px 11px; color:#52627c; background:#f2f4f7; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; vertical-align:middle; }
.company-sticky-header [data-company-fixed] { position:sticky; right:0; z-index:2; background:#f2f4f7; box-shadow:-5px 0 8px -8px #10234e80; }
.company-edit-main .module-topbar { padding-block:18px; }
.company-edit-main .module-topbar h1 { margin-block:7px; }
.company-edit-main .company-form-card { max-width:1180px; margin-top:14px; }
.company-edit-main .form-section { grid-template-columns:170px 1fr; gap:20px; padding:20px 24px; }
.company-edit-main .company-form-grid { gap:14px; }
.company-edit-main .company-form-grid input { height:39px; }
.company-edit-main .form-actions { padding:15px 24px; }
.company-quick-actions { max-width:1180px; margin:0 auto; padding:13px 24px; border-bottom:1px solid var(--line); }
.company-secondary-button,.company-access-actions button { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:0 14px; border:1px solid #9ed8dc; border-radius:8px; background:#f4fcfc; color:var(--blue); cursor:pointer; font-size:12px; font-weight:800; }
.company-access-card { padding:19px 24px; }
.company-access-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.company-access-heading h2 { margin:3px 0; font-size:19px; }
.company-access-heading p:last-child { margin:4px 0 0; color:var(--muted); font-size:11px; }
.company-access-status { padding:5px 9px; border-radius:999px; font-size:10px; font-weight:800; text-transform:uppercase; }
.company-access-status.configured { background:#e1f3eb; color:#187359; }
.company-access-status.missing { background:#fff1dc; color:#986315; }
.company-access-grid { display:grid; grid-template-columns:minmax(0,1fr) 135px; gap:12px; margin-top:13px; }
.company-access-grid label,.company-access-actions label { display:grid; gap:5px; color:#4e5d65; font-size:11px; font-weight:750; }
.company-access-grid input,.company-access-actions input { box-sizing:border-box; width:100%; height:38px; padding:0 11px; border:1px solid #cfdadd; border-radius:8px; background:#f7f9fa; color:var(--ink); font-weight:700; }
.company-access-grid small { color:#986315; font-weight:400; }
.company-access-actions { display:flex; align-items:end; flex-wrap:wrap; gap:8px; margin-top:12px; }
.company-access-actions label { width:125px; }
.company-access-actions button:first-of-type { border-color:var(--blue); background:var(--blue); color:#fff; }
.company-access-actions .company-danger-button { border-color:#f0b9b9; background:#fff4f4; color:#b72d2d; }
@media(max-width:760px){
 .company-columns-panel{position:fixed;inset:90px 14px auto;width:auto;max-height:70vh}
 .company-edit-main .form-section{grid-template-columns:1fr;padding:18px}
 .company-access-grid{grid-template-columns:1fr}
 .company-access-heading{align-items:flex-start;flex-direction:column}
}

/* Identidade aprovada — regras finais mantidas no fim para prevalecer sobre o legado */
@media (min-width: 1060px) {
  .app-shell { grid-template-columns: 258px minmax(0, 1fr); }
  .sidebar { padding: 32px 25px 26px; background: linear-gradient(180deg, #06184b 0%, #09245f 100%); }
  .brand { margin-bottom: 53px; }
  .brand-mark { width: 46px; height: 46px; border: 0; border-radius: 14px; background: linear-gradient(145deg, #23c7c7, #1685a7); box-shadow: 0 10px 25px rgba(14,189,198,.25); }
  .brand strong { font-size: 20px; }.brand small { color: #2ed0d3; font-size: 10px; }
  .nav-list { gap: 11px; }
  .nav-item { position: relative; min-height: 50px; padding: 0 16px; color: #e3e8fb; font-size: 15px; transition: background .18s ease, transform .18s ease; }
  .nav-item > span { color: #dce7ff; font-size: 19px; }
  .nav-item:hover { background: rgba(255,255,255,.07); color: #fff; }
  .nav-item.active { background: linear-gradient(90deg, rgba(105,79,223,.7), rgba(92,76,195,.38)); color: #fff; }
  .nav-item.active::before { content: ""; position: absolute; left: 0; top: 9px; bottom: 9px; width: 4px; border-radius: 0 5px 5px 0; background: #ffd000; }
  .nav-item.active > span { color: #fff; }
  .sidebar-user { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; align-items: center; gap: 11px; margin-top: auto; padding: 20px 2px 0; border-top: 1px solid rgba(255,255,255,.2); }
  .sidebar-user > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(145deg,#1ec7cc,#0799ae); color: #fff; font-size: 12px; font-weight: 850; }
  .sidebar-user strong,.sidebar-user small { overflow: hidden; display: block; text-overflow: ellipsis; white-space: nowrap; }.sidebar-user strong { color: #fff; font-size: 12px; }.sidebar-user small { margin-top: 4px; color: #9aadd6; font-size: 10px; }
  .sidebar-user form { margin: 0; }.sidebar-user button { border: 0; background: transparent; color: #fff; cursor: pointer; font-size: 26px; }

  .dashboard-page { background: #fcfbf9; }
  .dashboard-main { position: relative; height: 100vh; padding: 0 48px 20px; overflow: hidden; }
  .dashboard-header { min-height: 176px; display: flex; align-items: center; justify-content: space-between; }
  .dashboard-header .eyebrow { margin-bottom: 12px; color: #53678c; font-size: 11px; }
  .dashboard-header h1 { margin: 0; color: #07194d; font-size: clamp(44px,3.35vw,58px); line-height: 1; letter-spacing: -.05em; }
  .dashboard-header h1 i { display:inline-block; width:18px; height:5px; margin-left:15px; border-radius:6px; background:#ed2c78; color:transparent; font-size:0; font-style:normal; vertical-align:middle; box-shadow:6px 7px 0 #ed2c78,12px 14px 0 #ed2c78; transform:translateY(-10px) rotate(-20deg); }
  .dashboard-header > div > p:last-child { margin: 16px 0 0; color: #69738e; font-size: 18px; }
  .dashboard-header-actions { display: flex; align-items: center; gap: 9px; padding: 11px 16px; border: 1px solid #dfe4ec; border-radius: 12px; background: #fff; color: #53617d; font-size: 11px; font-weight: 750; }
  .live-dot { width: 9px; height: 9px; border-radius: 50%; background: #28b881; box-shadow: 0 0 0 5px rgba(40,184,129,.1); }

  .metric-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
  .metric-card { position: relative; min-height: 176px; display: flex; align-items: flex-start; gap: 18px; padding: 29px 27px; overflow: hidden; border: 1px solid #dfe4eb; border-radius: 17px; background: #fff; box-shadow: 0 12px 32px rgba(19,37,75,.065); }
  .metric-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: currentColor; }
  .metric-icon { flex: 0 0 auto; display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; font-size: 20px; font-weight: 900; }
  .metric-card > div { min-width: 0; }.metric-card small { display: block; color: #66718b; font-size: 12px; }.metric-card strong { display: block; overflow: hidden; margin-top: 12px; color: #07194d; font-size: clamp(26px,2.05vw,34px); letter-spacing: -.03em; text-overflow: ellipsis; white-space: nowrap; }
  .metric-card p { margin: 18px 0 0; color: #8d96aa; font-size: 10px; }.metric-card.violet { color: #6847e8; }.metric-card.teal { color: #0bb7b6; }.metric-card.yellow { color: #e7a400; }.metric-card.pink { color: #e72b78; }
  .metric-card.violet .metric-icon { background: #eeeaff; }.metric-card.teal .metric-icon { background: #e1f7f5; }.metric-card.yellow .metric-icon { background: #fff4d8; }.metric-card.pink .metric-icon { background: #fde8f0; }

  .dashboard-panels { display: grid; grid-template-columns: 1.18fr .82fr; gap: 20px; margin-top: 23px; }
  .dashboard-panel { min-height: 420px; overflow: hidden; border: 1px solid #dfe4eb; border-radius: 17px; background: #fff; box-shadow: 0 12px 34px rgba(19,37,75,.06); }
  .dashboard-panel > header { min-height: 76px; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; border-bottom: 1px solid #e7ebf0; }
  .dashboard-panel > header > div { display: flex; align-items: center; gap: 13px; }.dashboard-panel h2 { margin: 0; color: #07194d; font-size: 20px; }.dashboard-panel header a { color: #079faf; font-size: 11px; font-weight: 800; }.dashboard-panel header a span { margin-left: 7px; font-size: 16px; }
  .panel-icon { display: grid; place-items: center; width: 39px; height: 39px; border-radius: 11px; background: #eeeaff; color: #6946e9; font-size: 18px; font-weight: 850; }
  .activity-row { min-height: 68px; display: grid; grid-template-columns: 38px minmax(0,1fr) auto auto; align-items: center; gap: 13px; padding: 10px 24px; border-bottom: 1px solid #edf0f4; transition: background .15s ease; }.activity-row:last-child { border-bottom: 0; }.activity-row:hover { background: #fbfcfd; }
  .activity-icon { display: grid; place-items: center; width: 33px; height: 33px; border-radius: 50%; font-size: 13px; font-weight: 900; }.activity-icon.success { background: #e2f5eb; color: #169263; }.activity-icon.failed,.activity-icon.warning { background: #fff0e1; color: #d17e00; }.activity-icon.running,.activity-icon.scheduled { background: #eeeaff; color: #6645e4; }.activity-icon.neutral { background: #eef1f4; color: #718091; }
  .activity-copy { min-width: 0; }.activity-copy strong,.activity-copy small { overflow: hidden; display: block; text-overflow: ellipsis; white-space: nowrap; }.activity-copy strong { color: #102254; font-size: 12px; }.activity-copy small { margin-top: 5px; color: #7c859d; font-size: 10px; }.activity-row time { color: #8b93a6; font-size: 10px; white-space: nowrap; }
  .dashboard-status { padding: 7px 10px; border-radius: 8px; font-size: 9px; font-weight: 850; white-space: nowrap; }.dashboard-status.success { background: #e2f5eb; color: #168a60; }.dashboard-status.failed,.dashboard-status.warning { background: #fff0df; color: #bd7000; }.dashboard-status.running,.dashboard-status.scheduled { background: #eeeaff; color: #5f40d5; }.dashboard-status.neutral { background: #eef1f4; color: #687787; }
  .task-row { grid-template-columns: 38px minmax(0,1fr) auto; }.dashboard-empty { display: grid; min-height: 180px; place-items: center; color: #8992a6; font-size: 12px; }
  .dashboard-main footer { padding-top: 17px; font-size: 10px; }
}

@media (min-width:1060px) and (max-height:850px) {
  .dashboard-header { min-height: 140px; }.metric-card { min-height: 145px; padding-block: 22px; }.dashboard-panel { min-height: 350px; }.activity-row { min-height: 56px; }
}

/* Painel operacional — identidade LMBC 2026 */
.sidebar { background: linear-gradient(180deg, #071a4b 0%, #0a245e 100%); }
.brand-mark { border: 0; background: linear-gradient(145deg, #21bdc3, #1a82a4); box-shadow: 0 8px 22px rgba(4,195,201,.22); }
.brand small { color: #33cad0; }
.nav-item { position: relative; color: #d6def4; transition: background .18s ease, color .18s ease; }
.nav-item > span { color: #d7e4ff; }
.nav-item:hover { background: rgba(255,255,255,.07); color: white; }
.nav-item.active { background: linear-gradient(90deg, rgba(103,81,219,.48), rgba(102,86,210,.28)); color: #fff; }
.nav-item.active::before { content: ""; position: absolute; left: 0; top: 9px; bottom: 9px; width: 3px; border-radius: 4px; background: #ffd000; }
.nav-item.active > span { color: #fff; }
.sidebar-user { display: grid; grid-template-columns: 40px minmax(0,1fr) auto; align-items: center; gap: 10px; margin-top: auto; padding: 17px 4px 0; border-top: 1px solid rgba(255,255,255,.18); }
.sidebar-user > span { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(145deg,#1ec7cc,#0799ae); color: white; font-size: 12px; font-weight: 850; }
.sidebar-user strong,.sidebar-user small { overflow: hidden; display: block; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-user strong { color: #fff; font-size: 12px; }.sidebar-user small { margin-top: 3px; color: #91a8d8; font-size: 9px; }
.sidebar-user form { margin: 0; }.sidebar-user button { border: 0; background: transparent; color: #fff; cursor: pointer; font-size: 25px; }
.dashboard-page { background: #fbfaf8; }
.dashboard-main { height: 100vh; padding: 0 38px 18px; overflow: hidden; }
.dashboard-header { min-height: 150px; display: flex; align-items: center; justify-content: space-between; }
.dashboard-header h1 { margin: 0; color: #081c53; font-size: clamp(34px,3vw,52px); line-height: 1; letter-spacing: -.045em; }
.dashboard-header h1 i { display:inline-block; width:18px; height:5px; margin-left:12px; border-radius:6px; background:#ed2c78; color:transparent; font-size:0; font-style:normal; vertical-align:middle; box-shadow:6px 7px 0 #ed2c78,12px 14px 0 #ed2c78; transform:translateY(-10px) rotate(-20deg); }
.dashboard-header > div > p:last-child { margin: 13px 0 0; color: #69738e; font-size: 16px; }
.dashboard-header-actions { display: flex; align-items: center; gap: 8px; padding: 9px 13px; border: 1px solid #e0e5ec; border-radius: 999px; background: #fff; color: #64708a; font-size: 10px; font-weight: 750; }
.live-dot { width: 8px; height: 8px; border-radius: 50%; background: #28b881; box-shadow: 0 0 0 5px rgba(40,184,129,.1); }
.metric-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.metric-card { position: relative; min-height: 150px; display: flex; align-items: flex-start; gap: 16px; padding: 24px; overflow: hidden; border: 1px solid #e2e6ec; border-radius: 16px; background: #fff; box-shadow: 0 10px 30px rgba(19,37,75,.055); }
.metric-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: currentColor; }
.metric-icon { flex: 0 0 auto; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; font-size: 18px; font-weight: 900; }
.metric-card > div { min-width: 0; }.metric-card small { display: block; color: #68718a; font-size: 11px; }.metric-card strong { display: block; overflow: hidden; margin-top: 9px; color: #081c53; font-size: clamp(22px,2vw,30px); letter-spacing: -.025em; text-overflow: ellipsis; white-space: nowrap; }
.metric-card p { margin: 14px 0 0; color: #9299aa; font-size: 9px; }.metric-card.violet { color: #6847e8; }.metric-card.teal { color: #0bb7b6; }.metric-card.yellow { color: #e7a400; }.metric-card.pink { color: #e72b78; }
.metric-card.violet .metric-icon { background: #eeeaff; }.metric-card.teal .metric-icon { background: #e1f7f5; }.metric-card.yellow .metric-icon { background: #fff4d8; }.metric-card.pink .metric-icon { background: #fde8f0; }
.dashboard-panels { display: grid; grid-template-columns: 1.18fr .82fr; gap: 17px; margin-top: 18px; }
.dashboard-panel { overflow: hidden; border: 1px solid #e2e6ec; border-radius: 16px; background: #fff; box-shadow: 0 10px 30px rgba(19,37,75,.05); }
.dashboard-panel > header { min-height: 66px; display: flex; align-items: center; justify-content: space-between; padding: 0 20px; border-bottom: 1px solid #e9ecf1; }
.dashboard-panel > header > div { display: flex; align-items: center; gap: 11px; }.dashboard-panel h2 { margin: 0; color: #0a1d52; font-size: 17px; }.dashboard-panel header a { color: #079faf; font-size: 10px; font-weight: 800; }.dashboard-panel header a span { margin-left: 6px; font-size: 15px; }
.panel-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: #eeeaff; color: #6946e9; font-size: 16px; font-weight: 850; }
.activity-row { min-height: 62px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto auto; align-items: center; gap: 11px; padding: 9px 20px; border-bottom: 1px solid #edf0f4; transition: background .15s ease; }.activity-row:last-child { border-bottom: 0; }.activity-row:hover { background: #fbfcfd; }
.activity-icon { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 50%; font-size: 12px; font-weight: 900; }.activity-icon.success { background: #e2f5eb; color: #169263; }.activity-icon.failed,.activity-icon.warning { background: #fff0e1; color: #d17e00; }.activity-icon.running,.activity-icon.scheduled { background: #eeeaff; color: #6645e4; }.activity-icon.neutral { background: #eef1f4; color: #718091; }
.activity-copy { min-width: 0; }.activity-copy strong,.activity-copy small { overflow: hidden; display: block; text-overflow: ellipsis; white-space: nowrap; }.activity-copy strong { color: #102254; font-size: 11px; }.activity-copy small { margin-top: 4px; color: #7c859d; font-size: 9px; }.activity-row time { color: #8b93a6; font-size: 9px; white-space: nowrap; }
.dashboard-status { padding: 6px 9px; border-radius: 7px; font-size: 8px; font-weight: 850; white-space: nowrap; }.dashboard-status.success { background: #e2f5eb; color: #168a60; }.dashboard-status.failed,.dashboard-status.warning { background: #fff0df; color: #bd7000; }.dashboard-status.running,.dashboard-status.scheduled { background: #eeeaff; color: #5f40d5; }.dashboard-status.neutral { background: #eef1f4; color: #687787; }
.task-row { grid-template-columns: 34px minmax(0,1fr) auto; }.dashboard-empty { display: grid; min-height: 120px; place-items: center; color: #8992a6; font-size: 11px; }
@media (max-width:1250px) { .dashboard-main { overflow: auto; }.metric-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.dashboard-panels { grid-template-columns: 1fr; } }
@media (max-width:760px) { .dashboard-main { height:auto; padding-inline:18px; }.dashboard-header { min-height:130px; }.dashboard-header-actions { display:none; }.metric-grid { grid-template-columns:1fr; }.metric-card { min-height:130px; }.activity-row { grid-template-columns:32px minmax(0,1fr) auto; padding-inline:14px; }.activity-row time { display:none; }.dashboard-status { max-width:105px; overflow:hidden; text-overflow:ellipsis; }.sidebar-user { display:none; } }

.company-error { min-height: 0; margin: 0; padding: 0 30px; }
.company-error:not(:empty) { padding-top: 24px; }

* { box-sizing: border-box; }
html { max-width:100%; overflow-x:clip; color-scheme:light; scrollbar-gutter:stable; }
body { max-width:100%; margin:0; overflow-x:clip; background:var(--paper); color:var(--ink); font-family:Inter,"Segoe UI",Arial,sans-serif; }
a { color: inherit; text-decoration: none; }

.app-shell { width:100%; min-height:100vh; display:grid; grid-template-columns:248px minmax(0,1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 30px 22px; color: #e7f0f2; background: linear-gradient(165deg, #102d39 0%, #0b202a 100%); }
.brand { display: flex; align-items: center; gap: 12px; margin-bottom: 44px; }
.brand-mark { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.4); border-radius: 13px; background: linear-gradient(135deg, var(--aqua), var(--blue)); color: white; font-size: 22px; font-weight: 800; }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 18px; letter-spacing: .08em; }
.brand small { margin-top: 2px; color: #a9c1c9; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; }
.nav-list { display: grid; gap: 7px; }
.nav-item { min-height: 44px; display: flex; align-items: center; gap: 12px; padding: 0 13px; border-radius: 10px; color: #adc0c7; font-size: 14px; }
.nav-item > span { width: 20px; color: #78a8b5; text-align: center; font-size: 18px; }
.nav-item small { margin-left: auto; color: #68818a; font-size: 9px; text-transform: uppercase; }
.nav-item.active { background: rgba(82,182,174,.15); color: white; }
.nav-item.active > span { color: #69d1c6; }
.nav-item.disabled { cursor: default; }
.sidebar-footer { display: flex; align-items: center; gap: 11px; margin-top: auto; padding: 16px 12px; border-top: 1px solid rgba(255,255,255,.1); }
.sidebar-footer strong, .sidebar-footer small { display: block; }
.sidebar-footer strong { font-size: 12px; }
.sidebar-footer small { margin-top: 3px; color: #75919b; font-size: 10px; }
.security-dot { width: 9px; height: 9px; border-radius: 50%; background: #57d398; box-shadow: 0 0 0 5px rgba(87,211,152,.12); }

main { min-width: 0; padding: 0 48px 30px; }
.topbar { min-height: 108px; display: flex; align-items: center; justify-content: space-between; }
.eyebrow { margin: 0 0 7px; color: #78909a; font-size: 10px; font-weight: 700; letter-spacing: .18em; }
.topbar h1 { margin: 0; font-size: 25px; letter-spacing: -.03em; }
.profile { display: flex; align-items: center; gap: 10px; }
.profile > span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: #d9e9ec; color: var(--blue-dark); font-size: 12px; font-weight: 800; }
.profile strong, .profile small { display: block; }
.profile strong { font-size: 12px; }
.profile small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.profile form { margin: 0 0 0 6px; }
.logout { border: 0; background: transparent; color: var(--muted); cursor: pointer; font: inherit; font-size: 10px; text-decoration: underline; }

.login-body { min-height: 100vh; background: radial-gradient(circle at 50% 12%, #164657 0, #0d2c38 34%, #081c24 100%); }
.login-body::before { content: ""; position: fixed; inset: 0; pointer-events: none; background-image: radial-gradient(rgba(255,255,255,.1) 1px, transparent 1px); background-size: 28px 28px; mask-image: linear-gradient(to bottom, black, transparent 70%); opacity: .3; }
.login-shell { position: relative; min-height: 100vh; display: grid; place-items: center; padding: 28px 18px; }
.login-card { width: min(100%, 430px); padding: 38px 40px 32px; border: 1px solid rgba(255,255,255,.7); border-radius: 24px; background: rgba(255,255,255,.98); box-shadow: 0 30px 80px rgba(0,0,0,.32); }
.login-card-header { display: flex; align-items: center; gap: 12px; margin-bottom: 38px; }
.login-card-header strong, .login-card-header small { display: block; }
.login-card-header strong { color: var(--blue-dark); font-size: 17px; letter-spacing: .1em; }
.login-card-header small { margin-top: 2px; color: #78909a; font-size: 9px; letter-spacing: .19em; text-transform: uppercase; }
.login-intro h1 { margin: 0 0 9px; font-size: 30px; letter-spacing: -.035em; }
.login-intro > p:last-child { margin: 0 0 28px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.login-card form { display: grid; }
.login-card label { margin: 0 0 7px; font-size: 11px; font-weight: 750; }
.login-card input { width: 100%; height: 46px; margin-bottom: 18px; padding: 0 13px; border: 1px solid #ccd7db; border-radius: 9px; font: inherit; }
.login-card input:focus { border-color: var(--aqua); outline: 3px solid rgba(82,182,174,.15); }
.login-card button { height: 48px; border: 0; border-radius: 10px; background: linear-gradient(135deg, var(--blue), var(--blue-dark)); color: white; cursor: pointer; font-weight: 750; box-shadow: 0 8px 18px rgba(19,93,114,.2); }
.login-card button:hover { filter: brightness(1.06); }
.login-security { display: flex; align-items: center; justify-content: center; gap: 7px; margin-top: 23px; color: #839097; font-size: 9px; letter-spacing: .06em; text-transform: uppercase; }
.login-security i { width: 7px; height: 7px; border-radius: 50%; background: #49b985; box-shadow: 0 0 0 4px rgba(73,185,133,.12); }
.form-error { min-height: 17px; margin: -7px 0 10px; color: #b42318; font-size: 11px; }

.hero { min-height: 355px; position: relative; overflow: hidden; display: grid; grid-template-columns: 1.2fr .8fr; align-items: center; padding: 48px 54px; border-radius: 24px; background: linear-gradient(120deg, #123846 0%, #0b2935 58%, #0b202a 100%); color: white; box-shadow: var(--shadow); }
.hero::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.12) 1px, transparent 1px); background-size: 26px 26px; mask-image: linear-gradient(to right, transparent, black); opacity: .4; }
.hero-copy { position: relative; z-index: 2; max-width: 680px; }
.status { display: inline-flex; align-items: center; gap: 8px; padding: 7px 11px; border: 1px solid rgba(109,218,190,.25); border-radius: 999px; background: rgba(68,158,139,.14); color: #b9eee0; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.status i, .module-status.ready i { width: 6px; height: 6px; border-radius: 50%; background: #64db9d; box-shadow: 0 0 0 4px rgba(100,219,157,.1); }
.hero h2 { margin: 25px 0 17px; font-size: clamp(35px, 4vw, 54px); line-height: 1.05; letter-spacing: -.045em; }
.hero h2 em { color: #75cfc5; font-style: normal; font-weight: 450; }
.hero p { max-width: 580px; margin: 0; color: #b6cbd2; font-size: 15px; line-height: 1.65; }
.hero-actions { display: flex; gap: 10px; margin-top: 29px; }
.button { display: inline-flex; align-items: center; min-height: 42px; padding: 0 18px; border-radius: 9px; font-size: 11px; font-weight: 750; letter-spacing: .03em; }
.button.primary { background: #63c8bd; color: #092a35; }
.button.secondary { border: 1px solid rgba(255,255,255,.22); color: #d6e6ea; }

.orbit { position: relative; z-index: 1; width: 280px; height: 280px; justify-self: center; }
.orbit-ring { position: absolute; inset: 28px; border: 1px solid rgba(107,211,198,.24); border-radius: 50%; }
.ring-two { inset: 62px; border-style: dashed; }
.orbit-core { position: absolute; inset: 95px; display: grid; place-content: center; text-align: center; border: 1px solid rgba(255,255,255,.25); border-radius: 26px; background: linear-gradient(145deg, rgba(95,199,187,.28), rgba(14,55,70,.9)); box-shadow: 0 0 60px rgba(82,182,174,.18); transform: rotate(45deg); }
.orbit-core strong, .orbit-core small { transform: rotate(-45deg); }
.orbit-core strong { font-size: 16px; letter-spacing: .08em; }
.orbit-core small { color: #8bd3cc; font-size: 8px; letter-spacing: .2em; }
.orbit-node { position: absolute; display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: #163f4d; color: #8fd8cf; font-size: 11px; font-weight: 800; }
.node-one { top: 18px; left: 123px; }.node-two { right: 10px; top: 128px; }.node-three { bottom: 14px; left: 48px; }

.section-block { padding: 43px 0 30px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 20px; }
.section-heading h2, .foundation h2 { margin: 0; font-size: 22px; letter-spacing: -.025em; }
.phase { padding: 7px 11px; border: 1px solid #cbd7db; border-radius: 999px; color: #68818a; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.module-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.module-card { position: relative; min-height: 245px; padding: 24px; border: 1px solid var(--line); border-radius: 17px; background: white; box-shadow: 0 8px 26px rgba(30,53,65,.045); }
.module-card.featured { border-color: #b8d9d5; box-shadow: 0 12px 34px rgba(30,107,103,.09); }
.module-card.muted { background: #f7f9fa; }
.module-icon { display: grid; place-items: center; width: 40px; height: 40px; margin-bottom: 23px; border-radius: 12px; font-size: 15px; font-weight: 850; }
.module-icon.nibo { background: #d9f0eb; color: #14705e; }.module-icon.bank { background: #e2eaf3; color: #315d8a; }.module-icon.eye { background: #e9e7f1; color: #6a5b85; }
.module-status { position: absolute; top: 25px; right: 23px; display: flex; align-items: center; gap: 6px; font-size: 9px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.module-status.ready { color: var(--green); }.module-status.next { color: #6f7880; }.module-status.planned { color: #989fa5; }
.module-card h3 { margin: 0 0 10px; font-size: 17px; }
.module-card p { min-height: 57px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.module-meta { display: flex; gap: 7px; margin-top: 17px; }
.module-meta span { padding: 6px 8px; border-radius: 6px; background: #edf6f4; color: #39786c; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.progress { height: 4px; margin: 19px 0 9px; overflow: hidden; border-radius: 4px; background: #e8ecee; }.progress span { display: block; width: 28%; height: 100%; background: #759ab9; }
.module-card > small { color: #939da2; font-size: 9px; }

.foundation { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 25px 28px; border: 1px solid var(--line); border-radius: 16px; background: #edf2f3; }
.foundation-items { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.foundation-items span { display: flex; align-items: center; gap: 7px; padding: 7px 10px; border-radius: 8px; background: rgba(255,255,255,.7); color: #50616a; font-size: 10px; font-weight: 700; }
.foundation-items i { display: grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; background: #d6eee6; color: var(--green); font-size: 9px; font-style: normal; }
footer { padding: 27px 0 0; color: #9aa3a7; font-size: 9px; letter-spacing: .08em; text-align: center; text-transform: uppercase; }

.module-topbar { min-height: 165px; display: flex; align-items: center; border-bottom: 1px solid var(--line); }
.module-topbar h1 { margin: 3px 0 9px; font-size: 40px; letter-spacing: -.04em; }
.module-topbar > div > p:last-child { margin: 0; color: var(--muted); font-size: 15px; }
.back-link { display: inline-block; margin-bottom: 22px; color: var(--blue); font-size: 12px; font-weight: 750; }
.page-message { min-height: 20px; margin: 18px 0 0; color: var(--green); font-size: 14px; font-weight: 700; }
.report-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr); gap: 18px; padding: 11px 0 38px; }
.report-form-card, .flow-card { border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: 0 8px 26px rgba(30,53,65,.045); }
.report-form-card { padding: 28px; }
.card-heading { display: flex; align-items: center; gap: 15px; margin-bottom: 25px; }.card-heading .module-icon { flex: 0 0 auto; margin: 0; }
.card-heading h2, .flow-card h2 { margin: 0 0 6px; font-size: 23px; }.card-heading p { margin: 0; color: var(--muted); font-size: 13px; }
.report-form-card form { display: grid; grid-template-columns: 1fr 210px; gap: 8px 15px; }
.report-form-card label:not(.checkbox-label) { color: #4e5d65; font-size: 12px; font-weight: 750; }
.report-form-card select, .report-form-card input[type="month"] { width: 100%; height: 49px; padding: 0 13px; border: 1px solid #cfdadd; border-radius: 9px; background: white; color: var(--ink); font: inherit; font-size: 14px; }
.checkbox-label { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: 10px; margin: 13px 0 7px; cursor: pointer; }.checkbox-label input { margin-top: 3px; accent-color: var(--blue); }.checkbox-label strong, .checkbox-label small { display: block; }.checkbox-label strong { font-size: 13px; }.checkbox-label small { margin-top: 4px; color: var(--muted); font-size: 11px; }
.generate-button { grid-column: 1 / -1; height: 46px; border: 0; border-radius: 9px; background: linear-gradient(135deg, var(--blue), var(--blue-dark)); color: white; cursor: pointer; font-weight: 750; }
.form-note { display: flex; align-items: center; gap: 9px; margin-top: 18px; color: #6d7b82; font-size: 11px; }.form-note i { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: #e2eff1; color: var(--blue); font-style: normal; font-weight: 800; }
.flow-card { padding: 29px; background: linear-gradient(145deg, #123846, #0b2935); color: white; }.flow-card .eyebrow { color: #7eb8c1; }.flow-card ol { display: grid; gap: 17px; margin: 25px 0 0; padding: 0; list-style: none; }.flow-card li { display: flex; align-items: center; gap: 12px; color: #c0d3d8; font-size: 12px; }.flow-card li span { display: grid; place-items: center; width: 27px; height: 27px; border: 1px solid rgba(117,207,197,.35); border-radius: 50%; color: #75cfc5; font-weight: 800; }
.history-section { padding-top: 34px; }.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 15px; background: white; }.table-wrap table { width: 100%; border-collapse: collapse; }.table-wrap th { padding: 14px 16px; background: #eef3f4; color: #6a7980; font-size: 10px; letter-spacing: .09em; text-align: left; text-transform: uppercase; }.table-wrap td { padding: 17px 16px; border-top: 1px solid #edf0f1; color: #56656c; font-size: 12px; }.table-wrap td strong { color: var(--ink); }.execution-status { display: inline-flex; padding: 6px 9px; border-radius: 999px; font-size: 9px; font-weight: 800; text-transform: uppercase; }.execution-status.success { background: #e1f3eb; color: #187359; }.execution-status.failed { background: #fbe8e6; color: #a43d35; }.execution-status.running { background: #e4eef8; color: #386c99; }.table-action { color: var(--blue); font-weight: 800; }.empty-table { padding: 30px !important; text-align: center; }
.packages-section { padding-top: 5px; }.batch-list { display: grid; gap: 10px; }.batch-item { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 19px 21px; border: 1px solid var(--line); border-radius: 13px; background: white; }.batch-item h3 { margin: 9px 0 4px; font-size: 15px; }.batch-item p { margin: 0; color: var(--muted); font-size: 11px; }.package-button { flex: 0 0 auto; padding: 10px 13px; border-radius: 8px; background: var(--blue); color: white; font-size: 11px; font-weight: 800; }.empty-batches { padding: 21px; border: 1px dashed #ccd7db; border-radius: 12px; color: var(--muted); font-size: 12px; text-align: center; }
.batch-item time { display: block; margin: 0 0 5px; color: #879399; font-size: 10px; }
.execution-status.agendada, .execution-status.scheduled { background: #e4eef8; color: #386c99; }
.automation-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 26px 0; }.automation-summary > div { padding: 20px 22px; border: 1px solid var(--line); border-radius: 14px; background: white; }.automation-summary span { color: var(--blue); font-size: 25px; font-weight: 850; }.automation-summary p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }.automation-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }.automation-card { padding: 23px; border: 1px solid var(--line); border-radius: 16px; background: white; box-shadow: 0 8px 26px rgba(30,53,65,.045); }.automation-card-head { display: flex; justify-content: space-between; }.automation-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: #d9f0eb; color: var(--green); font-size: 18px; }.automation-card h2 { margin: 20px 0 9px; font-size: 18px; }.automation-card > p { min-height: 44px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }.automation-card dl { display: grid; gap: 12px; margin: 20px 0 0; padding-top: 17px; border-top: 1px solid var(--line); }.automation-card dl div { display: flex; justify-content: space-between; gap: 12px; }.automation-card dt { color: #89949a; font-size: 10px; }.automation-card dd { margin: 0; color: var(--ink); font-size: 10px; font-weight: 750; text-align: right; }.maintenance-note { display: grid; grid-template-columns: 260px 1fr; align-items: center; gap: 30px; margin-top: 22px; padding: 23px 26px; border-radius: 15px; background: #eaf1f2; }.maintenance-note h2 { margin: 0; font-size: 19px; }.maintenance-note > p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }

.automation-message { min-height: 18px; margin: 12px 0 0; color: #087f5b; font-size: 12px; font-weight: 750; }
.schedule-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.schedule-form label { display: grid; gap: 6px; color: var(--muted); font-size: 10px; font-weight: 750; }
.schedule-form input[type="number"], .schedule-form input[type="time"] { width: 100%; min-height: 36px; padding: 7px 9px; border: 1px solid #cbd8dc; border-radius: 8px; background: #fff; color: var(--ink); font: inherit; font-size: 12px; }
.schedule-form .schedule-toggle { display: flex; align-items: center; grid-column: 1 / -1; gap: 8px; }
.schedule-form button { grid-column: 1 / -1; min-height: 38px; border: 0; border-radius: 9px; background: var(--blue); color: #fff; font-weight: 800; cursor: pointer; }
.execution-status.paused { background: #f1f3f5; color: #68747a; }.execution-status.protected { background: #e7f5ff; color: #1864ab; }
.itau-validation-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); gap: 18px; padding: 12px 0 28px; }
.itau-validation-grid .report-form-card form { grid-template-columns: 1fr; }
.date-range { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.date-range label { display: grid; gap: 7px; }
.date-label { display: flex; min-height: 17px; align-items: baseline; gap: 4px; }
.date-range label small { color: var(--muted); font-weight: 400; }
.date-range input[type="date"] { width: 100%; height: 49px; padding: 0 13px; border: 1px solid #cfdadd; border-radius: 9px; background: white; color: var(--ink); font: inherit; font-size: 14px; }
.execution-status.validating { background: #e4eef8; color: #386c99; }
.execution-error { display: block; max-width: 260px; margin-top: 7px; color: #a43d35; font-size: 10px; line-height: 1.35; }
.execution-origin { display:block; margin-top:6px; color:var(--muted); font-size:9px; line-height:1.3; }
.run-cancel-form { display:grid; min-width:170px; gap:6px; }.run-cancel-form input { min-width:0; padding:7px 8px; border:1px solid var(--line); border-radius:7px; font-size:10px; }.run-cancel-form button, .retry-action { padding:8px 10px; border:0; border-radius:7px; cursor:pointer; font-size:10px; font-weight:800; }.run-cancel-form button { background:#fbe8e6; color:#a43d35; }.retry-action { background:#e4eef8; color:#245e82; }
.execution-status.cancelled { background:#f1f3f5; color:#68747a; }
.execution-status.voided, .execution-status.superseded { background:#f1f3f5; color:#68747a; }.generated-actions { display:grid; gap:9px; min-width:180px; }
.itau-admin { margin-top:24px; padding:24px; border:1px solid var(--line); border-radius:16px; background:#fff; }.itau-admin h2 { margin:3px 0 4px; }.itau-admin > p:not(.eyebrow) { margin:0 0 18px; color:var(--muted); font-size:11px; }.permission-row { display:grid; grid-template-columns:minmax(180px,1fr) 2fr auto; align-items:center; gap:18px; padding:13px 0; border-top:1px solid var(--line); }.permission-row small { display:block; margin-top:3px; color:var(--muted); }.permission-checks { display:flex; flex-wrap:wrap; gap:12px; }.permission-checks label { display:flex; align-items:center; gap:5px; color:var(--ink); font-size:10px; }.permission-row button { padding:8px 12px; border:0; border-radius:7px; background:var(--blue); color:#fff; font-size:10px; font-weight:800; cursor:pointer; }.permission-row button:disabled { opacity:.45; cursor:not-allowed; }
.execution-status.issues_found { background: #fbe8e6; color: #a43d35; }
.execution-status.ready_to_generate { background: #e1f3eb; color: #187359; }
.remittance-action { display:inline-flex; align-items:center; gap:7px; padding:9px 12px; border:0; border-radius:9px; background:linear-gradient(135deg,#147568,#0d596b); color:#fff; box-shadow:0 4px 10px #0d596b2b; cursor:pointer; font:inherit; font-size:11px; font-weight:800; white-space:nowrap; }
.remittance-action:hover { transform:translateY(-1px); box-shadow:0 6px 14px #0d596b3b; }
.remittance-action span { font-size:15px; line-height:1; }
.sequence-section { padding: 3px 0 8px; }.sequence-section .section-heading h2 { margin-bottom:5px; }.sequence-section .section-heading p:last-child { margin:0; color:var(--muted); font-size:11px; }.sequence-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:15px; }.sequence-card { padding:16px 17px; border:1px solid var(--line); border-radius:13px; background:#fff; box-shadow:0 5px 18px rgba(30,53,65,.04); }.sequence-card div { display:flex; justify-content:space-between; align-items:center; gap:10px; }.sequence-card span { color:var(--muted); font-size:10px; font-weight:750; }.sequence-card strong { color:var(--blue); font-size:15px; }.sequence-card p { margin:10px 0 0; padding-top:9px; border-top:1px solid #edf1f2; color:var(--muted); font-size:10px; }.sequence-card p b { color:var(--ink); }
.confirmation-summary { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:12px; margin:18px 0; }.confirmation-summary article { padding:17px 19px; border:1px solid var(--line); border-radius:13px; background:#fff; }.confirmation-summary span { display:block; color:var(--muted); font-size:10px; }.confirmation-summary strong { display:block; margin-top:5px; color:var(--ink); font-size:19px; }.confirmation-card { padding:24px; border:1px solid var(--line); border-radius:16px; background:#fff; }.modality-summary { display:flex; flex-wrap:wrap; gap:9px; margin:16px 0 20px; }.modality-summary div { display:flex; align-items:center; gap:12px; padding:10px 13px; border-radius:10px; background:#edf5f5; }.modality-summary span { color:var(--muted); font-size:11px; }.modality-summary strong { color:var(--blue); }.confirmation-card td small { display:block; margin-top:3px; }.confirmation-warning { margin-top:18px; padding:15px 17px; border-left:4px solid #d99b32; border-radius:8px; background:#fff8e8; }.confirmation-warning p { margin:4px 0 0; color:#746343; font-size:11px; }.confirmation-actions { display:flex; justify-content:flex-end; align-items:center; gap:12px; margin-top:20px; }.cancel-action { padding:11px 15px; color:var(--muted); font-size:12px; font-weight:800; }.confirm-remittance { padding:12px 17px; border:0; border-radius:9px; background:linear-gradient(135deg,#147568,#0d596b); color:#fff; cursor:pointer; font-weight:800; }
.locked-action, .ready-action { font-size: 10px; font-weight: 800; white-space: nowrap; }.locked-action { color: #9a5b55; }.ready-action { color: #187359; }
.protected-hint { min-height: auto !important; margin-top: 19px !important; padding: 10px 12px; border-radius: 9px; background: #f1f6f8; color: #5f7078 !important; font-size: 10px !important; font-weight: 700; text-align: center; }
.automation-audit { margin-top: 24px; padding: 24px; border: 1px solid var(--line); border-radius: 16px; background: white; }
.automation-audit h2 { margin: 3px 0 5px; font-size: 20px; }.automation-audit > div > p:last-child { margin: 0 0 18px; color: var(--muted); font-size: 12px; }
.automation-audit table { width: 100%; border-collapse: collapse; }.automation-audit th, .automation-audit td { padding: 11px 12px; border-bottom: 1px solid var(--line); font-size: 11px; text-align: left; }.automation-audit th { color: var(--muted); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }

@media (min-width: 1060px) and (min-height: 760px) {
  .home-page { overflow: hidden; }
  .home-page main { height: 100vh; padding-bottom: 18px; }
  .home-page .topbar { min-height: 86px; }
  .home-page .hero { min-height: 285px; padding-block: 30px; }
  .home-page .orbit { transform: scale(.78); }
  .home-page .section-block { padding: 24px 0 18px; }
  .home-page .module-card { min-height: 198px; padding: 20px; }
  .home-page .module-icon { margin-bottom: 15px; }
  .home-page .foundation { padding: 17px 22px; }
  .home-page footer { padding-top: 14px; }
}

@media (max-width: 1050px) {
  .app-shell { grid-template-columns: 82px 1fr; }
  .sidebar { padding: 28px 14px; }
  .brand { justify-content: center; }.brand > span:last-child, .nav-item:not(.active), .nav-item.active { font-size: 0; }.nav-item small, .sidebar-footer > div:last-child { display: none; }
  .nav-item { justify-content: center; }.nav-item > span { font-size: 20px; }.sidebar-footer { justify-content: center; }
  main { padding-inline: 30px; }.hero { padding-inline: 36px; }.orbit { transform: scale(.8); }
}

@media (max-width: 760px) {
  .app-shell { display: block; }.sidebar { position: static; width: 100%; height: auto; flex-direction: row; align-items: center; padding: 14px 18px; }.brand { margin: 0; }.brand > span:last-child { display: block; }.nav-list, .sidebar-footer { display: none; }
  main { padding: 0 18px 24px; }.topbar { min-height: 88px; }.profile div { display: none; }
  .hero { min-height: 0; grid-template-columns: 1fr; padding: 34px 25px; }.orbit { display: none; }.hero h2 { font-size: 36px; }
  .hero-actions { align-items: stretch; flex-direction: column; }.button { justify-content: center; }
  .module-grid { grid-template-columns: 1fr; }.foundation { align-items: flex-start; flex-direction: column; }.foundation-items { justify-content: flex-start; }
  .report-layout, .itau-validation-grid, .date-range, .sequence-grid, .confirmation-summary { grid-template-columns: 1fr; }.report-form-card form { grid-template-columns: 1fr; }.checkbox-label, .generate-button { grid-column: 1; }.module-topbar { min-height: 145px; }
  .batch-item { align-items: flex-start; flex-direction: column; }.package-button { width: 100%; text-align: center; }
  .automation-summary, .automation-grid { grid-template-columns: 1fr; }.maintenance-note { grid-template-columns: 1fr; }
  .login-card { padding: 30px 24px 27px; }.login-card-header { margin-bottom: 30px; }
}

/* Ajustes finais da identidade aprovada */
@media (min-width: 1060px) {
  .app-shell { grid-template-columns: 258px minmax(0, 1fr); }
  .sidebar { padding: 32px 25px 26px; background: linear-gradient(180deg, #06184b 0%, #09245f 100%); }
  .brand { margin-bottom: 53px; }
  .brand-mark { width: 46px; height: 46px; border: 0; border-radius: 14px; background: linear-gradient(145deg, #23c7c7, #1685a7); box-shadow: 0 10px 25px rgba(14,189,198,.25); }
  .brand strong { font-size: 20px; }.brand small { color: #2ed0d3; font-size: 10px; }
  .nav-list { gap: 11px; }.nav-item { position: relative; min-height: 50px; padding: 0 16px; color: #e3e8fb; font-size: 15px; }.nav-item > span { color: #dce7ff; font-size: 19px; }
  .nav-item:hover { background: rgba(255,255,255,.07); color: #fff; }.nav-item.active { background: linear-gradient(90deg, rgba(105,79,223,.7), rgba(92,76,195,.38)); color: #fff; }.nav-item.active::before { content: ""; position: absolute; left: 0; top: 9px; bottom: 9px; width: 4px; border-radius: 0 5px 5px 0; background: #ffd000; }.nav-item.active > span { color: #fff; }
  .sidebar-user { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; align-items: center; gap: 11px; margin-top: auto; padding: 20px 2px 0; border-top: 1px solid rgba(255,255,255,.2); }.sidebar-user > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(145deg,#1ec7cc,#0799ae); color: #fff; font-size: 12px; font-weight: 850; }.sidebar-user strong,.sidebar-user small { overflow: hidden; display: block; text-overflow: ellipsis; white-space: nowrap; }.sidebar-user strong { color: #fff; font-size: 12px; }.sidebar-user small { margin-top: 4px; color: #9aadd6; font-size: 10px; }.sidebar-user form { margin: 0; }.sidebar-user button { border: 0; background: transparent; color: #fff; cursor: pointer; font-size: 26px; }
  .dashboard-main { position: relative; height: 100vh; padding: 0 48px 20px; overflow: hidden; }.dashboard-header { min-height: 176px; }.dashboard-header .eyebrow { margin-bottom: 12px; font-size: 11px; }.dashboard-header h1 { font-size: clamp(44px,3.35vw,58px); }.dashboard-header > div > p:last-child { margin-top: 16px; font-size: 18px; }
  .dashboard-header-actions { padding: 11px 16px; border-radius: 12px; font-size: 11px; }.metric-grid { gap: 20px; }.metric-card { min-height: 176px; gap: 18px; padding: 29px 27px; border-radius: 17px; box-shadow: 0 12px 32px rgba(19,37,75,.065); }.metric-icon { width: 54px; height: 54px; font-size: 20px; }.metric-card small { font-size: 12px; }.metric-card strong { margin-top: 12px; font-size: clamp(26px,2.05vw,34px); }.metric-card p { margin-top: 18px; font-size: 10px; }
  .dashboard-panels { gap: 20px; margin-top: 23px; }.dashboard-panel { min-height: 420px; border-radius: 17px; box-shadow: 0 12px 34px rgba(19,37,75,.06); }.dashboard-panel > header { min-height: 76px; padding: 0 24px; }.dashboard-panel h2 { font-size: 20px; }.dashboard-panel header a { font-size: 11px; }.panel-icon { width: 39px; height: 39px; font-size: 18px; }
  .activity-row { min-height: 68px; grid-template-columns: 38px minmax(0,1fr) auto auto; gap: 13px; padding: 10px 24px; }.activity-icon { width: 33px; height: 33px; font-size: 13px; }.activity-copy strong { font-size: 12px; }.activity-copy small,.activity-row time { font-size: 10px; }.dashboard-status { padding: 7px 10px; font-size: 9px; }.task-row { grid-template-columns: 38px minmax(0,1fr) auto; }.dashboard-main footer { padding-top: 17px; font-size: 10px; }
}
@media (min-width:1060px) and (max-height:850px) { .dashboard-header { min-height:140px; }.metric-card { min-height:145px; padding-block:22px; }.dashboard-panel { min-height:350px; }.activity-row { min-height:56px; } }

/* Sistema visual LMBC aprovado */
:root { --ink: #07194d; --muted: #66718b; --paper: #fbfaf8; --line: #dfe4eb; --blue: #079ead; --blue-dark: #07194d; --aqua: #13b7bd; --green: #168a60; --shadow: 0 12px 34px rgba(19,37,75,.065); }
body { background: var(--paper); color: var(--ink); }
.brand { align-items: flex-start; }
.brand-wordmark { display: block; }
.brand-wordmark strong { display: block; color: #fff; font-size: 34px; font-weight: 850; letter-spacing: .035em; line-height: .95; }
.brand-wordmark small { display: block; margin-top: 9px; color: #21c0c7; font-size: 11px; font-weight: 750; letter-spacing: .26em; }
.module-topbar h1,.section-heading h2,.card-heading h2,.flow-card h2,.automation-card h2,.itau-admin h2 { color: #07194d; }
.module-topbar { min-height: 178px; }.module-topbar h1 { font-size: 44px; }.module-topbar > div > p:last-child { color: var(--muted); font-size: 16px; }
.back-link,.table-action { color: #079ead; }.primary-action,.generate-button,.schedule-form button,.permission-row button,.package-button,.form-actions button { background: linear-gradient(135deg,#10b4bb,#078f9f); border-radius: 10px; }
.report-form-card,.table-wrap,.flow-card,.automation-card,.automation-summary > div,.company-form-card,.company-filters,.sequence-card,.confirmation-card,.itau-admin,.automation-audit,.batch-item { border-color: var(--line); border-radius: 17px; box-shadow: var(--shadow); }
.flow-card { background: #fff; color: var(--ink); }.flow-card .eyebrow { color: #cf1760; }.flow-card li { color: var(--muted); }.flow-card li span { border-color: #dfd9fa; background: #eeeaff; color: #6847e8; }
.table-wrap th { background: #f3f5f8; color: #53617d; }.table-wrap td { color: #53617d; }
.module-icon.nibo,.automation-icon { background: #eeeaff; color: #6847e8; }.module-icon.bank { background: #e1f7f5; color: #079ead; }
input:focus,select:focus { border-color: #12afb7 !important; outline: 3px solid rgba(18,175,183,.12); }

/* Login — conceito 1 combinado com o conteúdo institucional */
.login-body { min-height: 100vh; background: #fbfaf8; }
.login-body::before { display: none; }
.login-concept .login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(360px,34%) minmax(0,1fr); padding: 0; }
.login-brand-panel { position: relative; overflow: hidden; display: flex; flex-direction: column; padding: clamp(52px,5vw,86px) clamp(42px,5vw,82px); background: radial-gradient(circle at 50% 35%,#102d70 0,#07194d 62%,#05133e 100%); color: #fff; }
.login-wordmark strong { display: block; font-size: clamp(52px,5vw,78px); font-weight: 850; letter-spacing: .035em; line-height: .95; }.login-wordmark small { display: block; margin-top: 13px; color: #21c0c7; font-size: clamp(13px,1.2vw,18px); font-weight: 750; letter-spacing: .28em; }
.login-promise { position: relative; z-index: 2; margin-top: clamp(58px,8vh,105px); }.login-promise h1 { margin: 0 0 40px; color: #fff; font-size: clamp(35px,3.3vw,51px); font-weight: 500; line-height: 1.12; letter-spacing: -.035em; }.login-promise ul { display: grid; gap: 21px; margin: 0; padding: 0; list-style: none; }.login-promise li { display: flex; align-items: center; gap: 13px; }.login-promise li i { display: grid; flex: 0 0 auto; place-items: center; width: 35px; height: 35px; border-radius: 50%; background: rgba(20,188,195,.14); color: #44d2d5; font-style: normal; font-weight: 850; }.login-promise li strong,.login-promise li small { display: block; }.login-promise li strong { color: #fff; font-size: 13px; }.login-promise li small { margin-top: 4px; color: #9eb0d5; font-size: 10px; }
.login-brand-panel::after { content: ""; position: absolute; left: -8%; bottom: -16%; width: 78%; height: 34%; border-radius: 48% 52% 0 0; background: #ffd000; transform: rotate(8deg); }.login-accent { position: absolute; z-index: 2; left: 31%; bottom: 10%; transform: rotate(28deg); }.login-accent span { display: block; width: 37px; height: 9px; margin: 8px; border-radius: 9px; background: #ed2c78; }
.login-form-panel { display: grid; place-items: center; padding: 42px; background: #fbfaf8; }
.login-concept .login-card { width: min(100%,680px); padding: 55px 62px 38px; border: 1px solid #dfe4eb; border-radius: 19px; background: #fff; box-shadow: 0 18px 50px rgba(19,37,75,.09); }
.login-concept .login-intro .eyebrow { margin-bottom: 13px; color: #53678c; }.login-concept .login-intro h2 { margin: 0; color: #07194d; font-size: clamp(33px,3vw,46px); letter-spacing: -.04em; }.login-concept .login-intro > p:last-child { margin: 12px 0 35px; color: #69738e; font-size: 16px; }
.login-concept .login-card form { display: grid; }.login-concept .login-card label { margin: 0 0 8px; color: #07194d; font-size: 13px; font-weight: 750; }.login-concept .login-card input { width: 100%; height: 58px; margin-bottom: 21px; padding: 0 17px; border: 1px solid #cbd3df; border-radius: 10px; color: #07194d; font: inherit; font-size: 15px; }.login-concept .login-card button { height: 58px; border: 0; border-radius: 10px; background: linear-gradient(135deg,#12b5bb,#0796a6); color: #fff; cursor: pointer; font-size: 16px; font-weight: 800; box-shadow: 0 9px 22px rgba(7,158,173,.18); }.login-concept .form-error { margin-top: -9px; }.login-concept .login-security { margin-top: 29px; padding-top: 25px; border-top: 1px solid #e5e8ed; color: #69738e; font-size: 11px; text-transform: none; }

@media (max-width:1050px) { .brand-wordmark strong { font-size:0; }.brand-wordmark strong::first-letter { font-size:25px; }.brand-wordmark small { display:none; } }
@media (max-width:850px) { .login-concept .login-shell { grid-template-columns:1fr; }.login-brand-panel { min-height:290px; padding:40px 34px; }.login-promise { margin-top:35px; }.login-promise h1 { margin-bottom:0; }.login-promise ul { display:none; }.login-brand-panel::after { width:48%; height:35%; left:auto; right:-8%; bottom:-27%; }.login-form-panel { padding:30px 18px; }.login-concept .login-card { padding:38px 28px 30px; } }

/* Correções de enquadramento do login */
.login-concept { width: 100%; min-height: 100vh; overflow: hidden; }
.login-concept .login-shell { width: 100%; min-height: 100vh; place-items: stretch; }
.login-brand-panel,.login-form-panel { min-width: 0; min-height: 100vh; }
.login-form-panel { align-items: center; justify-items: center; }
.login-brand-panel::after { left: -12%; bottom: -14%; width: 76%; height: 27%; }
.login-accent { left: 35%; bottom: 6%; }
@media (max-width:850px) { .login-concept { overflow:auto; }.login-concept .login-shell { min-height:100vh; }.login-brand-panel,.login-form-panel { min-height:auto; }.login-brand-panel::after { right:-10%; bottom:-31%; left:auto; width:48%; height:38%; } }

/* Refinamento do painel de marca do login */
@media (min-width:851px) {
  .login-brand-panel { padding: clamp(64px,6.5vh,90px) clamp(55px,5.2vw,88px); background: #071d59; }
  .login-wordmark strong { font-size: clamp(70px,5.5vw,88px); line-height: .9; letter-spacing: .025em; }
  .login-wordmark small { margin-top: 16px; font-size: clamp(16px,1.25vw,20px); letter-spacing: .25em; }
  .login-promise { margin-top: clamp(76px,9vh,118px); }
  .login-promise h1 { margin-bottom: 48px; font-size: clamp(43px,3.7vw,58px); font-weight: 520; line-height: 1.08; }
  .login-promise ul { gap: 27px; }
  .login-promise li { gap: 16px; }
  .login-promise li i { width: 42px; height: 42px; font-size: 16px; }
  .login-promise li strong { font-size: 16px; }
  .login-promise li small { margin-top: 5px; font-size: 12px; }
  .login-brand-panel::after { left: -17%; bottom: -20%; width: 96%; height: 34%; border-radius: 50% 55% 0 0 / 38% 46% 0 0; transform: rotate(4deg); }
  .login-accent { left: 37%; bottom: 5.5%; transform: rotate(28deg); }
  .login-accent span { width: 43px; height: 10px; margin: 8px; }
}

/* Pacote final — navegação, iconografia e assinatura gráfica */
.nav-icon { display: grid; flex: 0 0 24px; place-items: center; width: 24px; height: 24px; }
.nav-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.75; }
.metric-icon svg { width: 29px; height: 29px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.panel-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.activity-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.9; }

@media (min-width:1060px) {
  .sidebar { background: linear-gradient(165deg,#07194d 0%,#091e58 56%,#061744 100%); }
  .brand { margin-left: 7px; }
  .brand-wordmark strong { font-size: 38px; letter-spacing: .03em; }
  .brand-wordmark small { margin-top: 9px; font-size: 11px; letter-spacing: .25em; }
  .nav-list { gap: 10px; }
  .nav-item { gap: 16px; min-height: 52px; padding-inline: 18px; border-radius: 11px; }
  .nav-item.active { background: linear-gradient(100deg,rgba(104,74,223,.78),rgba(91,73,188,.48)); box-shadow: inset 0 1px rgba(255,255,255,.06),0 8px 22px rgba(0,0,0,.08); }
  .nav-item.active::before { top: 8px; bottom: 8px; width: 4px; }

  .app-shell > main { isolation: isolate; }
  .app-shell > main > * { position: relative; z-index: 2; }
  .app-shell > main::after { content: ""; position: fixed; z-index: 0; right: -76px; bottom: -84px; width: 270px; height: 190px; border-radius: 62% 0 0 0 / 75% 0 0 0; background: #ffd000; pointer-events: none; }
  .app-shell > main::before { content: ""; position: fixed; z-index: 1; right: 91px; bottom: 62px; width: 42px; height: 9px; border-radius: 8px; background: #ed2c78; box-shadow: 13px 15px 0 #ed2c78,25px 30px 0 #ed2c78; transform: rotate(-20deg); pointer-events: none; }
  .app-shell > main.dashboard-main::after { right: -92px; bottom: -82px; width: 230px; height: 160px; }
  .app-shell > main.dashboard-main::before { right: 54px; bottom: 31px; }
}

@media (max-width:1050px) {
  .nav-icon { flex-basis: 24px; }
  .nav-item > .nav-icon { font-size: inherit; }
}

/* Identidade MLM Plataforma */
.access-page { width:min(1380px,calc(100% - 48px)); margin:0 auto; padding-bottom:56px; }.access-page.narrow { max-width:900px; }.access-nav { display:flex; flex-wrap:wrap; gap:12px 22px; margin:18px 0 24px; }.access-nav a { color:var(--blue); font-size:12px; font-weight:800; }.access-form { display:grid; gap:0; padding:0; overflow:hidden; }.access-form section { padding:28px 32px; border-bottom:1px solid var(--line); }.access-form section h2 { margin:0 0 7px; font-size:20px; }.access-form section>p { margin:0 0 18px; color:var(--muted); font-size:12px; }.access-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }.access-grid.single { grid-template-columns:1fr; }.access-grid label { display:grid; gap:7px; color:var(--ink); font-size:11px; font-weight:800; }.access-grid input,.access-grid select { min-height:46px; padding:0 13px; border:1px solid var(--line); border-radius:9px; background:#fff; }.access-grid small { color:var(--muted); font-weight:500; }.access-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }.access-option { display:flex; align-items:flex-start; gap:10px; padding:13px; border:1px solid var(--line); border-radius:10px; background:#fafbfc; cursor:pointer; }.access-option input { margin-top:2px; accent-color:var(--blue); }.access-option strong,.access-option small { display:block; }.access-option strong { font-size:11px; }.access-option small { margin-top:3px; color:var(--muted); font-size:9px; }.company-options { max-height:320px; overflow:auto; }.switch-label { display:flex; align-items:center; gap:9px; margin:17px 0; font-size:12px; font-weight:800; }.switch-label input { accent-color:var(--blue); }.form-success:empty,.form-error:empty { display:none; }.form-success { padding:12px 15px; border-radius:9px; background:#e8f7f1; color:#16714f; font-size:12px; }.access-form .form-actions { padding:22px 32px; }
.access-main { min-width:0; width:100%; }
.app-shell,.sidebar { transition:grid-template-columns .22s ease,width .22s ease,padding .22s ease; }
.sidebar { overflow:visible; }
.sidebar-toggle { position:absolute; z-index:20; top:78px; right:-15px; display:grid; place-items:center; width:30px; height:30px; padding:0; border:1px solid rgba(255,255,255,.3); border-radius:50%; background:#0b2866; color:#fff; cursor:pointer; font-size:23px; line-height:1; box-shadow:0 5px 14px rgba(3,15,55,.24); transition:transform .2s ease,background .2s ease; }.sidebar-toggle:hover { background:#0d9eaa; transform:scale(1.06); }.sidebar-toggle:focus-visible { outline:3px solid rgba(255,208,0,.55); outline-offset:2px; }
@media (min-width:761px) {
  .app-shell.sidebar-collapsed { grid-template-columns:86px minmax(0,1fr); }
  .sidebar-collapsed .sidebar { width:86px; padding-inline:14px; }
  .sidebar-collapsed .brand { justify-content:center; margin-inline:0; }
  .sidebar-collapsed .brand-logo { width:48px; height:48px; object-fit:cover; object-position:left center; }
  .sidebar-collapsed .nav-item { justify-content:center; gap:0; padding-inline:0; font-size:0; }
  .sidebar-collapsed .nav-item .nav-icon { flex-basis:24px; font-size:20px; }
  .sidebar-collapsed .nav-label,.sidebar-collapsed .sidebar-footer>div:last-child,.sidebar-collapsed .sidebar-user>div,.sidebar-collapsed .sidebar-user form { display:none; }
  .sidebar-collapsed .sidebar-user { display:flex; justify-content:center; grid-template-columns:44px; }
}
@media (max-width:760px) { .sidebar-toggle { top:auto; right:12px; bottom:12px; }.app-shell.sidebar-collapsed .sidebar { display:none; } }
.nav-item > .nav-label { flex:1 1 auto; width:auto; min-width:0; overflow:hidden; color:inherit; font-size:15px; font-weight:inherit; line-height:1.2; text-align:left; text-overflow:ellipsis; white-space:nowrap; }
.sidebar .brand-logo { filter:brightness(0) invert(1); opacity:.96; }
.login-brand-logo { filter:brightness(0) invert(1); opacity:.98; }
.app-shell > main:not(.dashboard-main) { position:relative; padding-bottom:150px; }
.app-shell > main:not(.dashboard-main)::after { position:fixed; right:-92px; bottom:-82px; display:block; width:230px; height:160px; }
.app-shell > main:not(.dashboard-main)::before { position:fixed; right:54px; bottom:31px; display:block; }
.sidebar-user a { min-width:0; text-decoration:none; }.sidebar-user div { min-width:0; }
.daily-payment-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:12px;margin-top:16px}.daily-payment-grid label{display:grid;grid-template-columns:1fr 110px;align-items:center;gap:10px}.daily-payment-grid input[type=text]{min-width:0}.section-help{color:#607398;font-size:12px}@media(max-width:760px){.daily-payment-grid{grid-template-columns:1fr}.daily-payment-grid label{grid-template-columns:1fr 120px}}
.app-shell > main { grid-column:2; max-width:100%; overflow-x:clip; }
@media (min-width:761px) {
  .sidebar { position:fixed; z-index:10; inset:0 auto 0 0; width:258px; height:100dvh; }
  .sidebar-collapsed .sidebar { width:86px; }
}
@media (max-width:760px) { .app-shell > main { grid-column:auto; } }
.brand-logo { display: block; width: 164px; max-width: 100%; height: auto; object-fit: contain; object-position: left center; }
.login-brand-logo { position: relative; z-index: 2; display: block; width: min(100%, 520px); height: auto; object-fit: contain; object-position: left center; }
@media (min-width:1060px) { .brand { align-items: center; margin-left: 0; }.brand-logo { width: 174px; } }
@media (max-width:1050px) { .brand-logo { width: 74px; max-height: 46px; object-fit: cover; object-position: left center; } }
@media (max-width:850px) { .login-brand-logo { width: min(82vw, 430px); } }

/* Contrato responsivo global: alterações abaixo são exclusivas para celular. */
.mobile-nav-overlay { display:none; }
.mobile-nav-overlay[hidden] { display:none!important; }
@media (max-width:760px) {
  html { overflow-x:hidden; scrollbar-gutter:auto; }
  body { min-width:0; overflow-x:hidden; }
  body.mobile-navigation-open { overflow:hidden; }
  .app-shell { display:block; min-width:0; }
  .app-shell > main,
  .app-shell > main:not(.dashboard-main) { grid-column:auto; width:100%; min-width:0; padding:0 max(12px,env(safe-area-inset-left)) calc(32px + env(safe-area-inset-bottom)); overflow-x:hidden; }
  .app-shell > main::before,.app-shell > main::after { display:none!important; }

  .sidebar { position:sticky!important; z-index:200; top:0; width:100%; height:70px; min-height:70px; flex-direction:row; align-items:center; padding:10px max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left)); overflow:visible; box-shadow:0 5px 18px rgba(5,22,68,.18); }
  .sidebar .brand { justify-content:flex-start; margin:0; }
  .sidebar .brand-logo { width:118px; max-height:46px; object-fit:contain; }
  .sidebar .nav-list,.sidebar .sidebar-footer,.sidebar .sidebar-user { display:none; }
  .sidebar-toggle { top:50%; right:max(14px,env(safe-area-inset-right)); bottom:auto; width:44px; height:44px; border-color:rgba(255,255,255,.42); transform:translateY(-50%); font-size:22px; }
  .sidebar-toggle:hover { transform:translateY(-50%); }
  .mobile-navigation-open .sidebar { position:fixed!important; inset:0 auto 0 0; width:min(88vw,350px); height:100dvh; min-height:100dvh; align-items:stretch; flex-direction:column; padding:22px 18px calc(18px + env(safe-area-inset-bottom)); overflow-y:auto; box-shadow:18px 0 50px rgba(4,17,52,.3); }
  .mobile-navigation-open .sidebar .brand { margin:0 54px 24px 5px; }
  .mobile-navigation-open .sidebar .brand-logo { width:158px; }
  .mobile-navigation-open .sidebar .nav-list { display:grid; gap:7px; }
  .mobile-navigation-open .sidebar .nav-item { justify-content:flex-start; gap:13px; min-height:48px; padding:0 13px; font-size:14px; }
  .mobile-navigation-open .sidebar .nav-item .nav-icon { flex-basis:24px; width:24px; font-size:18px; }
  .mobile-navigation-open .sidebar .nav-item .nav-label { display:block; font-size:14px; }
  .mobile-navigation-open .sidebar .sidebar-user { display:grid; margin-top:auto; }
  .mobile-navigation-open .sidebar-toggle { top:22px; right:16px; transform:none; }
  .mobile-navigation-open .sidebar-toggle:hover { transform:none; }
  .mobile-nav-overlay { position:fixed; z-index:190; inset:0; display:block; width:100%; height:100%; padding:0; border:0; background:rgba(3,13,42,.55); backdrop-filter:blur(2px); }

  main { min-width:0; padding-inline:max(12px,env(safe-area-inset-left)); }
  .module-topbar,.companies-topbar { min-height:0; align-items:flex-start; flex-direction:column; gap:16px; padding:24px 0 20px; }
  .module-topbar h1 { margin-block:4px 7px; font-size:clamp(28px,9vw,36px); }
  .module-topbar > div > p:last-child { font-size:14px; line-height:1.45; }
  .back-link { margin-bottom:12px; }
  .company-header-actions,.dashboard-header,.section-heading,.card-heading,.nibo-sync-heading { width:100%; min-width:0; }
  .company-header-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .company-header-actions > a,.company-header-actions > details,.company-header-actions summary { width:100%; text-align:center; }
  .company-export-action,.primary-action { display:flex; align-items:center; justify-content:center; min-height:44px; padding:10px; }

  :is(input,select,textarea,button) { max-width:100%; }
  :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { font-size:16px!important; }
  button,a.button,.primary-action,.company-export-action { min-height:44px; }
  .company-filters { grid-template-columns:minmax(0,1fr); gap:12px; margin:14px 0; padding:14px; }
  .company-filters button { width:100%; }
  .company-form-card { width:100%; margin-top:16px; border-radius:14px; }
  .company-edit-main .form-section,.form-section { grid-template-columns:minmax(0,1fr); gap:14px; padding:18px 14px; }
  .company-form-grid,.company-form-grid.three,.company-access-grid { grid-template-columns:minmax(0,1fr); }
  .company-access-card,.company-quick-actions { padding-inline:14px; }
  .company-access-actions,.form-actions { align-items:stretch; flex-direction:column; }
  .company-access-actions label,.company-access-actions button,.form-actions button { width:100%; }
  .form-actions { gap:10px; padding:16px 14px; }
  .nibo-sync-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nibo-sync-panel,.itau-admin,.automation-audit,.confirmation-card,.report-form-card,.flow-card { padding:16px; }

  .table-wrap,.company-table,.nibo-sync-table,.automation-audit { width:100%; max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }
  .table-wrap table,.company-table table,.nibo-sync-table table,.automation-audit table { width:max-content; min-width:720px; }
  .table-wrap th,.table-wrap td { padding:10px 9px; }
  .company-table { margin-top:14px; }
  .company-table [data-company-fixed] { position:static; min-width:190px; box-shadow:none; }
  .company-sticky-header { display:none!important; }
  .company-columns-panel { inset:auto!important; top:78px!important; right:12px!important; left:12px!important; width:auto!important; max-height:calc(100dvh - 96px)!important; }

  .access-page { width:100%; padding-bottom:32px; }
  .access-form section { padding:20px 14px; }
  .access-grid,.access-options { grid-template-columns:minmax(0,1fr); }
  .access-form .form-actions { padding:16px 14px; }
  .report-layout,.itau-validation-grid,.date-range,.sequence-grid,.confirmation-summary,.automation-summary,.automation-grid,.maintenance-note,.permission-row { grid-template-columns:minmax(0,1fr); }
  .report-form-card form,.schedule-form { grid-template-columns:minmax(0,1fr); }
  .permission-row { align-items:start; gap:10px; }
  .permission-row button,.confirm-remittance { width:100%; min-height:44px; }
  .confirmation-actions { align-items:stretch; flex-direction:column-reverse; }
  .confirmation-actions a { text-align:center; }
  .batch-item { width:100%; }
  .run-cancel-form,.generated-actions { min-width:0; width:100%; }
  .daily-payment-grid { grid-template-columns:minmax(0,1fr); }
  .daily-payment-grid label { grid-template-columns:minmax(0,1fr) 112px; }
  .pix-detail { width:calc(100% - 24px); margin:12px auto; padding:16px; }

  .dashboard-main { height:auto; padding-inline:max(12px,env(safe-area-inset-left)); overflow:visible; }
  .dashboard-header { min-height:112px; }
  .dashboard-header h1 { font-size:clamp(31px,10vw,42px); }
  .metric-grid,.dashboard-panels,.module-grid { grid-template-columns:minmax(0,1fr); }
  .metric-card,.dashboard-panel { min-height:0; }
  .activity-row { grid-template-columns:32px minmax(0,1fr) auto; padding-inline:12px; }
  .activity-row time { display:none; }
  .dashboard-status { max-width:100px; }

  .login-shell { padding:max(14px,env(safe-area-inset-top)) 12px max(14px,env(safe-area-inset-bottom)); }
  .login-card { width:100%; padding:26px 18px 22px; border-radius:18px; }
  .login-intro h1 { font-size:28px; }
}

@media (max-width:430px) {
  .company-header-actions { grid-template-columns:minmax(0,1fr); }
  .nibo-sync-summary { grid-template-columns:minmax(0,1fr); }
  .daily-payment-grid label { grid-template-columns:minmax(0,1fr); }
  .company-access-actions > * { flex-basis:100%; }
}
