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

:root {
    --navy: #10263f;
    --navy-deep: #0b1d31;
    --blue: #1769e0;
    --blue-dark: #1158c2;
    --teal: #16a58c;
    --ink: #172437;
    --muted: #6c7b8e;
    --line: #e6ebf1;
    --surface: #f5f7fa;
    --sidebar-width: 264px;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; color: var(--ink); background: var(--surface); font-family: Inter, system-ui, -apple-system, sans-serif; font-size: .9rem; }
a { text-decoration: none; }
.btn { border-radius: 9px; font-weight: 600; font-size: .875rem; }
.btn-primary { --bs-btn-bg: var(--blue); --bs-btn-border-color: var(--blue); --bs-btn-hover-bg: var(--blue-dark); --bs-btn-hover-border-color: var(--blue-dark); box-shadow: 0 4px 12px rgba(23,105,224,.18); }
.form-control, .form-select { min-height: 43px; border-color: #dce3eb; border-radius: 9px; font-size: .88rem; }
.form-control:focus, .form-select:focus { border-color: rgba(23,105,224,.65); box-shadow: 0 0 0 .2rem rgba(23,105,224,.1); }
.form-label { color: #34445a; font-size: .82rem; font-weight: 600; }

.app-shell { min-height: 100vh; }
.app-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 1040; display: flex; width: var(--sidebar-width); flex-direction: column; color: white; background: linear-gradient(180deg, var(--navy-deep), var(--navy)); box-shadow: 4px 0 24px rgba(14,36,59,.12); }
.brand, .auth-brand { display: flex; align-items: center; gap: 12px; color: white; }
.brand { height: 80px; padding: 0 25px; border-bottom: 1px solid rgba(255,255,255,.08); }
.brand:hover { color: white; }
.brand-mark { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; flex: 0 0 40px; border-radius: 10px; color: white; background: linear-gradient(145deg, #2689ff, #1769e0); font-size: 1.15rem; box-shadow: 0 8px 18px rgba(23,105,224,.3); }
.brand strong, .auth-brand strong { display: block; font-size: 1.08rem; letter-spacing: .13em; line-height: 1; }
.brand small, .auth-brand small { display: block; margin-top: 5px; color: #aebfd1; font-size: .54rem; letter-spacing: .15em; }
.company-chip { display: flex; align-items: center; gap: 10px; margin: 18px 15px 5px; padding: 11px; border: 1px solid rgba(255,255,255,.08); border-radius: 10px; background: rgba(255,255,255,.05); }
.company-avatar, .user-avatar { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; flex: 0 0 34px; border-radius: 9px; color: white; background: rgba(255,255,255,.13); font-weight: 700; }
.company-chip small { display: block; color: #96abc0; font-size: .65rem; }
.company-chip strong { font-size: .78rem; }
.sidebar-nav { flex: 1; overflow-y: auto; padding: 8px 14px 20px; scrollbar-width: thin; scrollbar-color: #314b65 transparent; }
.nav-section { margin: 20px 11px 7px; color: #7890a8; font-size: .61rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.sidebar-nav .nav-link { display: flex; align-items: center; gap: 12px; min-height: 40px; margin-bottom: 2px; padding: 9px 12px; border-radius: 8px; color: #b8c6d5; font-size: .78rem; font-weight: 500; }
.sidebar-nav .nav-link i { width: 19px; font-size: 1rem; text-align: center; }
.sidebar-nav .nav-link:hover { color: white; background: rgba(255,255,255,.06); }
.sidebar-nav .nav-link.active { color: white; background: linear-gradient(90deg, rgba(23,105,224,.95), rgba(23,105,224,.78)); box-shadow: 0 5px 13px rgba(0,0,0,.15); }
.sidebar-footer { padding: 13px 16px; border-top: 1px solid rgba(255,255,255,.08); background: rgba(0,0,0,.07); }
.sidebar-footer strong { font-size: .75rem; }
.sidebar-footer small { display: block; color: #8fa4b8; font-size: .63rem; }
.btn-icon { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 0; border-radius: 9px; }
.app-main { min-height: 100vh; margin-left: var(--sidebar-width); }
.app-topbar { position: sticky; top: 0; z-index: 1020; display: flex; align-items: center; justify-content: space-between; height: 72px; padding: 0 30px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.95); backdrop-filter: blur(12px); }
.global-search { position: relative; width: min(480px, 42vw); }
.global-search > i { position: absolute; top: 50%; left: 14px; color: #8795a7; transform: translateY(-50%); }
.global-search input { width: 100%; height: 40px; padding: 0 55px 0 40px; border: 1px solid #e2e7ed; border-radius: 9px; outline: 0; background: #f7f9fb; color: var(--ink); font-size: .8rem; }
.global-search input:focus { border-color: #b8cce9; background: white; box-shadow: 0 0 0 3px rgba(23,105,224,.07); }
.search-shortcut { position: absolute; top: 50%; right: 10px; padding: 2px 7px; border: 1px solid #dfe5ec; border-radius: 5px; color: #8996a5; background: white; font-size: .65rem; transform: translateY(-50%); }
.topbar-actions { display: flex; align-items: center; gap: 13px; }
.notification-dot { position: absolute; top: 8px; right: 8px; width: 7px; height: 7px; border: 2px solid white; border-radius: 50%; background: #f14960; }
.top-user { display: flex; align-items: center; gap: 8px; padding-left: 13px; border-left: 1px solid var(--line); }
.user-avatar.light { width: 34px; height: 34px; color: #19569f; background: #deebfb; }
.top-user strong { display: block; max-width: 120px; overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.top-user small { display: block; color: var(--muted); font-size: .6rem; }
.page-content { padding: 28px 30px 42px; }
.page-heading { margin-bottom: 23px; }
.page-heading h1 { margin: 4px 0 5px; color: var(--ink); font-size: clamp(1.45rem, 2vw, 1.85rem); font-weight: 750; letter-spacing: -.03em; }
.page-heading p { margin: 0; color: var(--muted); font-size: .84rem; }
.eyebrow, .breadcrumb-mini { color: var(--blue); font-size: .64rem; font-weight: 800; letter-spacing: .11em; }
.breadcrumb-back { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: .75rem; font-weight: 600; }
.breadcrumb-back:hover { color: var(--blue); }
.wave { font-size: 1.4rem; }
.panel { border: 1px solid var(--line); border-radius: 13px; background: white; box-shadow: 0 4px 14px rgba(18,39,63,.035); }
.panel-header { display: flex; align-items: flex-start; justify-content: space-between; padding: 20px 22px 12px; }
.panel-header h2, .form-section-title h2 { margin: 0 0 4px; font-size: .96rem; font-weight: 700; }
.panel-header p, .form-section-title p { margin: 0; color: var(--muted); font-size: .72rem; }
.panel-link { color: var(--blue); font-size: .72rem; font-weight: 600; }

.metric-card { position: relative; display: grid; min-height: 150px; padding: 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; color: var(--ink); background: white; box-shadow: 0 4px 14px rgba(18,39,63,.035); transition: transform .2s, box-shadow .2s; }
.metric-card:hover { color: var(--ink); box-shadow: 0 10px 25px rgba(18,39,63,.09); transform: translateY(-2px); }
.metric-icon { position: absolute; top: 17px; right: 17px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 10px; }
.metric-icon.blue { color: #1769e0; background: #e9f2ff; }.metric-icon.red { color: #e24d5e; background: #fff0f2; }.metric-icon.orange { color: #e58b24; background: #fff5e8; }.metric-icon.green { color: #159b78; background: #e9f9f4; }
.metric-label { color: var(--muted); font-size: .72rem; font-weight: 600; }
.metric-card strong { align-self: end; font-size: 1.8rem; line-height: 1; }
.metric-card small { align-self: end; color: var(--muted); font-size: .63rem; }
.chart-wrap { height: 275px; padding: 5px 22px 15px; }
.financial-strip { display: grid; grid-template-columns: repeat(4, 1fr); padding: 15px 22px; border-top: 1px solid var(--line); background: #fbfcfd; }
.financial-strip > div { padding: 0 16px; border-right: 1px solid var(--line); }
.financial-strip > div:first-child { padding-left: 0; }.financial-strip > div:last-child { border-right: 0; }
.financial-strip span { display: block; margin-bottom: 4px; color: var(--muted); font-size: .66rem; }.financial-strip strong { font-size: .8rem; }
.activity-list { padding: 5px 22px 18px; }
.activity-item { position: relative; display: flex; gap: 13px; padding: 12px 0; border-bottom: 1px solid #eef1f5; }
.activity-item:last-child { border-bottom: 0; }
.activity-dot { width: 9px; height: 9px; flex: 0 0 9px; margin-top: 5px; border: 2px solid #b8d1fa; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 4px #edf4ff; }
.activity-item strong, .activity-item span, .activity-item small { display: block; }
.activity-item strong { font-size: .7rem; }.activity-item span { margin-top: 2px; color: var(--muted); font-size: .65rem; }.activity-item small { margin-top: 4px; color: #a0aaba; font-size: .59rem; }
.empty-mini { display: flex; min-height: 190px; align-items: center; justify-content: center; flex-direction: column; gap: 7px; color: var(--muted); }.empty-mini i { font-size: 1.8rem; }
.table { --bs-table-color: var(--ink); }
.table thead th { padding: 11px 17px; border-bottom-color: var(--line); color: #7b899a; background: #fafbfd; font-size: .62rem; font-weight: 700; letter-spacing: .035em; text-transform: uppercase; white-space: nowrap; }
.table tbody td { padding: 13px 17px; border-bottom-color: #eef1f4; font-size: .72rem; vertical-align: middle; }
.table tbody tr:last-child td { border-bottom: 0; }
.table tbody tr:hover td { background: #fbfcfe; }
.status-badge { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; border-radius: 20px; font-size: .62rem; font-weight: 650; white-space: nowrap; }
.status-badge > span { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.status-badge.success { color: #138365; background: #e9f8f3; }.status-badge.danger { color: #c64253; background: #fff0f2; }.status-badge.primary { color: #1769d4; background: #edf4ff; }.status-badge.warning { color: #b86c12; background: #fff4df; }.status-badge.secondary { color: #667487; background: #eef2f5; }
.progress.slim { height: 5px; background: #ebeff3; }.progress.slim .progress-bar { border-radius: 10px; background: linear-gradient(90deg, #1769e0, #31a7ee); }

.filter-bar { display: flex; gap: 10px; padding: 16px; border-bottom: 1px solid var(--line); }.filter-search { position: relative; flex: 1; }.filter-search i { position: absolute; top: 50%; left: 13px; color: #8996a6; transform: translateY(-50%); }.filter-search .form-control { padding-left: 38px; }.filter-bar .form-select { width: 210px; }
.data-table tbody td:first-child { font-weight: 600; }
.empty-state { display: flex; min-height: 260px; align-items: center; justify-content: center; flex-direction: column; gap: 7px; color: var(--muted); text-align: center; }
.empty-state .empty-icon { display: inline-flex; align-items: center; justify-content: center; width: 55px; height: 55px; margin-bottom: 6px; border-radius: 16px; color: var(--blue); background: #edf4ff; font-size: 1.45rem; }
.empty-state strong { color: var(--ink); font-size: .88rem; }.empty-state > span:last-child { font-size: .72rem; }
.panel-pagination { display: flex; align-items: center; justify-content: space-between; padding: 13px 17px; border-top: 1px solid var(--line); color: var(--muted); font-size: .7rem; }
.page-link { color: var(--blue); }.active>.page-link { background: var(--blue); border-color: var(--blue); }

.form-panel { padding: 23px; }
.form-section-title { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; padding-bottom: 17px; border-bottom: 1px solid var(--line); }
.form-section-title > span { display: inline-flex; align-items: center; justify-content: center; width: 39px; height: 39px; border-radius: 10px; color: var(--blue); background: #edf4ff; font-size: 1rem; }
.form-actions { position: sticky; bottom: 0; z-index: 5; display: flex; justify-content: flex-end; gap: 9px; margin-top: 15px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.94); backdrop-filter: blur(8px); box-shadow: 0 -5px 20px rgba(18,39,63,.04); }
.detail-panel { padding: 23px; }.detail-grid { border-top: 1px solid var(--line); border-left: 1px solid var(--line); }.detail-item { min-height: 82px; padding: 17px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }.detail-item > span { display: block; margin-bottom: 7px; color: var(--muted); font-size: .66rem; }.detail-item > strong { display: block; font-size: .78rem; font-weight: 600; white-space: pre-wrap; }
.record-meta, .danger-panel { padding: 19px; }.record-meta h3, .danger-panel h3 { margin-bottom: 17px; font-size: .83rem; font-weight: 700; }.record-meta > div { margin-bottom: 14px; }.record-meta span, .record-meta strong { display: block; }.record-meta span { margin-bottom: 3px; color: var(--muted); font-size: .63rem; }.record-meta strong { font-size: .71rem; }.danger-panel { border-color: #f2d9de; }.danger-panel p { color: var(--muted); font-size: .66rem; }
.search-page-form { position: relative; display: flex; gap: 10px; padding: 20px; border-bottom: 1px solid var(--line); }.search-page-form > i { position: absolute; top: 34px; left: 36px; color: #8492a3; }.search-page-form input { padding-left: 42px; }.search-results { padding: 20px; }.search-summary { margin-bottom: 10px; color: var(--muted); font-size: .7rem; }.search-result-item { display: flex; align-items: center; gap: 12px; padding: 13px; border-bottom: 1px solid var(--line); color: var(--ink); }.search-result-item:hover { border-radius: 9px; background: #f8fafc; }.result-icon { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 9px; color: var(--blue); background: #edf4ff; }.search-result-item small, .search-result-item strong, .search-result-item span { display: block; }.search-result-item small { color: var(--blue); font-size: .58rem; font-weight: 700; text-transform: uppercase; }.search-result-item strong { margin: 2px 0; font-size: .78rem; }.search-result-item span { color: var(--muted); font-size: .67rem; }
.error-page { display: flex; min-height: calc(100vh - 170px); align-items: center; justify-content: center; flex-direction: column; text-align: center; }.error-page > span { color: #dce7f6; font-size: 5rem; font-weight: 800; line-height: 1; }.error-page > i { margin: -15px 0 14px; color: var(--blue); font-size: 2.2rem; }.error-page h1 { font-size: 1.4rem; font-weight: 750; }.error-page p { max-width: 410px; color: var(--muted); font-size: .8rem; }

.auth-body { overflow: hidden; background: white; }
.auth-shell { display: grid; min-height: 100vh; grid-template-columns: 56% 44%; }
.auth-showcase { position: relative; display: flex; padding: 46px 7vw; overflow: hidden; flex-direction: column; color: white; background: radial-gradient(circle at 80% 20%, #1f4d7b 0, transparent 38%), linear-gradient(145deg, #07182a, #102f50 72%, #12385f); }
.auth-showcase::before { position: absolute; inset: 0; content: ''; opacity: .06; background-image: linear-gradient(rgba(255,255,255,.7) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.7) 1px, transparent 1px); background-size: 42px 42px; mask-image: linear-gradient(to bottom right, black, transparent 68%); }
.auth-brand { position: relative; z-index: 2; }.auth-brand .brand-mark { width: 44px; height: 44px; }
.showcase-copy { position: relative; z-index: 2; max-width: 650px; margin: auto 0; }
.showcase-copy .eyebrow { display: inline-flex; gap: 7px; margin-bottom: 24px; padding: 7px 11px; border: 1px solid rgba(255,255,255,.12); border-radius: 20px; color: #a9caf3; background: rgba(255,255,255,.05); }
.showcase-copy h1 { margin-bottom: 20px; font-size: clamp(2.8rem, 5vw, 4.8rem); font-weight: 750; letter-spacing: -.055em; line-height: .98; }.showcase-copy h1 span { color: #53b7ff; }
.showcase-copy > p { max-width: 570px; color: #afc1d2; font-size: clamp(.9rem, 1.4vw, 1.08rem); line-height: 1.75; }
.showcase-metrics { display: flex; gap: 0; margin-top: 42px; }.showcase-metrics > div { min-width: 130px; padding: 0 25px; border-right: 1px solid rgba(255,255,255,.13); }.showcase-metrics > div:first-child { padding-left: 0; }.showcase-metrics > div:last-child { border: 0; }.showcase-metrics strong, .showcase-metrics span { display: block; }.showcase-metrics strong { color: white; font-size: 1.25rem; }.showcase-metrics span { margin-top: 3px; color: #8fa8be; font-size: .62rem; }
.showcase-footer { position: relative; z-index: 2; display: flex; align-items: center; gap: 7px; color: #7f9bb4; font-size: .66rem; }.showcase-footer i { color: #28b99a; }
.showcase-orb { position: absolute; border-radius: 50%; filter: blur(2px); }.orb-one { right: -130px; bottom: -180px; width: 490px; height: 490px; border: 1px solid rgba(65,161,247,.18); box-shadow: inset 0 0 80px rgba(25,111,192,.12); }.orb-two { right: 80px; bottom: -40px; width: 190px; height: 190px; border: 1px solid rgba(65,161,247,.12); }
.auth-form-area { display: flex; align-items: center; justify-content: center; padding: 45px; background: #fbfcfd; }
.login-card { width: min(390px, 100%); }.login-kicker { color: var(--blue); font-size: .7rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }.login-card h2 { margin: 8px 0 6px; font-size: 1.75rem; font-weight: 750; letter-spacing: -.035em; }.login-card > p { color: var(--muted); font-size: .8rem; }
.input-icon { position: relative; }.input-icon > i { position: absolute; top: 50%; left: 14px; z-index: 2; color: #8795a6; transform: translateY(-50%); }.input-icon .form-control { height: 48px; padding-left: 42px; }.password-toggle { position: absolute; top: 50%; right: 9px; border: 0; color: #8291a2; background: transparent; transform: translateY(-50%); }.login-card .btn-lg { height: 49px; font-size: .85rem; }.login-help { display: flex; align-items: center; gap: 11px; margin-top: 35px; padding-top: 22px; border-top: 1px solid var(--line); color: var(--muted); font-size: .66rem; }.login-help i { font-size: 1.1rem; }.login-help strong { color: #42546a; font-weight: 600; }.mobile-auth-brand { display: none; }
.sidebar-overlay { display: none; }

/* Navegação orientada ao fluxo */
.nav-group { margin-top: 5px; }
.nav-group summary { display: flex; align-items: center; justify-content: space-between; margin: 14px 8px 5px; padding: 5px 4px; color: #7890a8; cursor: pointer; font-size: .61rem; font-weight: 700; letter-spacing: .11em; list-style: none; text-transform: uppercase; }
.nav-group summary::-webkit-details-marker { display: none; }
.nav-group summary i { font-size: .68rem; transition: transform .2s ease; }
.nav-group[open] summary i { transform: rotate(180deg); }
.nav-group-items { padding-bottom: 2px; }
.quick-create-menu { width: 285px; padding: 9px; border-color: var(--line); border-radius: 12px; box-shadow: 0 16px 42px rgba(18,39,63,.15); }
.quick-create-menu .dropdown-item { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 9px; }
.quick-create-menu .dropdown-item > i { display: inline-flex; align-items: center; justify-content: center; width: 35px; height: 35px; border-radius: 9px; color: var(--blue); background: #edf4ff; font-size: 1rem; }
.quick-create-menu .dropdown-item span, .quick-create-menu .dropdown-item strong, .quick-create-menu .dropdown-item small { display: block; }
.quick-create-menu .dropdown-item strong { color: var(--ink); font-size: .73rem; }
.quick-create-menu .dropdown-item small { margin-top: 2px; color: var(--muted); font-size: .62rem; }
.notification-menu { width: min(390px, calc(100vw - 20px)); padding: 0; overflow: hidden; border-color: var(--line); border-radius: 12px; box-shadow: 0 18px 48px rgba(18,39,63,.17); }
.notification-menu-head { display: flex; align-items: center; justify-content: space-between; padding: 15px 17px; border-bottom: 1px solid var(--line); }
.notification-menu-head strong { font-size: .8rem; }.notification-menu-head span { padding: 3px 7px; border-radius: 20px; color: var(--blue); background: #edf4ff; font-size: .61rem; font-weight: 700; }
.notification-dropdown-item { margin: 0; border-bottom: 1px solid #eef1f5; }.notification-dropdown-item button { display: flex; width: 100%; gap: 10px; padding: 12px 15px; border: 0; color: inherit; background: white; text-align: left; }.notification-dropdown-item button:hover { background: #f8fafc; }.notification-dropdown-item.unread button { background: #f4f8ff; }
.notification-dropdown-item button > span:last-child, .notification-dropdown-item strong, .notification-dropdown-item small, .notification-dropdown-item time { display: block; min-width: 0; }.notification-dropdown-item strong { overflow: hidden; font-size: .69rem; text-overflow: ellipsis; white-space: nowrap; }.notification-dropdown-item small { overflow: hidden; margin: 2px 0 4px; color: var(--muted); font-size: .61rem; text-overflow: ellipsis; white-space: nowrap; }.notification-dropdown-item time { color: #9aa5b2; font-size: .55rem; }
.notification-mini-icon { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; flex: 0 0 32px; border-radius: 9px; color: var(--blue); background: #e8f1ff; }
.notification-menu-footer { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; color: var(--blue); background: #fafbfd; font-size: .67rem; font-weight: 700; }.notification-empty { display: grid; min-height: 130px; place-items: center; align-content: center; gap: 5px; color: var(--muted); font-size: .68rem; }.notification-empty i { font-size: 1.5rem; }

@media (min-width: 992px) {
    .sidebar-collapsed .app-sidebar { width: 82px; }
    .sidebar-collapsed .app-main { margin-left: 82px; }
    .sidebar-collapsed .brand { justify-content: center; padding: 0; }.sidebar-collapsed .brand > span:last-child, .sidebar-collapsed .company-chip > span:last-child, .sidebar-collapsed .sidebar-nav .nav-link span, .sidebar-collapsed .nav-group summary span, .sidebar-collapsed .sidebar-footer .overflow-hidden, .sidebar-collapsed .nav-section { display: none; }
    .sidebar-collapsed .company-chip { justify-content: center; margin-inline: 13px; padding-inline: 0; }.sidebar-collapsed .sidebar-nav { padding-inline: 12px; }.sidebar-collapsed .sidebar-nav .nav-link { justify-content: center; padding-inline: 0; }.sidebar-collapsed .sidebar-nav .nav-link i { width: auto; }.sidebar-collapsed .nav-group summary { justify-content: center; margin-top: 9px; }.sidebar-collapsed .sidebar-footer { padding-inline: 12px; }.sidebar-collapsed .sidebar-footer .d-flex { justify-content: center; }.sidebar-collapsed .sidebar-footer .btn-icon:first-of-type { display: none; }
    .app-sidebar, .app-main { transition: width .22s ease, margin-left .22s ease; }
}

/* Agenda */
.calendar-panel { overflow: hidden; }
.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 16px 18px; border-bottom: 1px solid var(--line); }.calendar-toolbar h2 { min-width: 165px; margin: 0; font-size: 1rem; font-weight: 750; text-align: center; }.calendar-toolbar .form-select { min-width: 240px; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }.calendar-weekdays { border-bottom: 1px solid var(--line); background: #fafbfd; }.calendar-weekdays > div { padding: 9px 10px; color: var(--muted); font-size: .62rem; font-weight: 700; text-align: center; text-transform: uppercase; }
.calendar-day { position: relative; min-height: 125px; padding: 9px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }.calendar-day:nth-child(7n) { border-right: 0; }.calendar-day.outside { background: #fafbfd; }.calendar-day.outside .day-number, .calendar-day.outside .day-events { opacity: .45; }.day-number { display: inline-flex; align-items: center; justify-content: center; width: 25px; height: 25px; margin-bottom: 5px; border-radius: 50%; color: #536275; font-size: .68rem; font-weight: 650; }.calendar-day.today .day-number { color: white; background: var(--blue); }.day-events { display: grid; gap: 4px; }.calendar-event { display: flex; align-items: center; gap: 5px; min-width: 0; padding: 5px 6px; border-radius: 6px; color: #1762c2; background: #edf4ff; font-size: .58rem; font-weight: 650; }.calendar-event span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.calendar-event:hover { color: #0d4d9e; background: #dfeeff; }.calendar-event.event-visita { color: #8d5f0a; background: #fff5df; }.calendar-event.event-reuniao { color: #6b4bb0; background: #f2edff; }.calendar-event.event-financeiro { color: #087c65; background: #e8f8f4; }.calendar-event.event-os { color: #b84e2f; background: #fff0ea; }.calendar-event.cancelled { opacity: .5; text-decoration: line-through; }.calendar-more { padding-left: 5px; color: var(--muted); font-size: .55rem; }
.agenda-list { padding: 2px 17px 16px; }.agenda-item { display: flex; align-items: flex-start; gap: 10px; padding: 13px 0; border-bottom: 1px solid var(--line); }.agenda-item:last-child { border-bottom: 0; }.agenda-date { display: grid; width: 38px; height: 45px; flex: 0 0 38px; place-content: center; border-radius: 9px; color: var(--blue); background: #edf4ff; text-align: center; }.agenda-date strong { font-size: .88rem; line-height: 1; }.agenda-date small { margin-top: 3px; font-size: .49rem; font-weight: 750; }.agenda-item > div > strong { display: block; overflow: hidden; font-size: .69rem; text-overflow: ellipsis; white-space: nowrap; }.agenda-item > div > small { display: block; overflow: hidden; margin-top: 3px; color: var(--muted); font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }.agenda-actions { display: flex; align-items: center; gap: 9px; margin-top: 5px; }.agenda-actions a, .agenda-actions button { padding: 0; border: 0; color: var(--blue); background: transparent; font-size: .56rem; font-weight: 700; }.agenda-actions button { color: #bd4856; }.agenda-actions button.complete { color: #087c65; }.event-canvas { width: min(520px, 100vw) !important; }.event-canvas .offcanvas-header { border-bottom: 1px solid var(--line); }

/* Chat e notificações */
.chat-shell { display: grid; height: calc(100vh - 170px); min-height: 570px; overflow: hidden; grid-template-columns: 295px minmax(0, 1fr); }.chat-sidebar { min-width: 0; border-right: 1px solid var(--line); background: #fbfcfd; }.chat-sidebar-title { display: flex; align-items: center; justify-content: space-between; height: 65px; padding: 0 17px; border-bottom: 1px solid var(--line); }.chat-sidebar-title strong { font-size: .78rem; }.chat-sidebar-title span { color: var(--muted); font-size: .63rem; }.chat-channel-list { max-height: calc(100% - 65px); padding: 8px; overflow-y: auto; }.chat-channel { display: flex; align-items: center; gap: 9px; padding: 10px; border-radius: 9px; color: var(--ink); }.chat-channel:hover, .chat-channel.active { color: var(--ink); background: #eef4fc; }.chat-channel-icon { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; flex: 0 0 36px; border-radius: 10px; color: var(--blue); background: #e7f0ff; }.chat-channel strong, .chat-channel small { display: block; }.chat-channel strong { font-size: .68rem; }.chat-channel small { max-width: 160px; margin-top: 2px; color: var(--muted); font-size: .57rem; }.chat-unread { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 20px; color: white; background: var(--blue); font-size: .52rem; font-weight: 750; }.chat-main { display: grid; min-width: 0; grid-template-rows: 65px minmax(0, 1fr) auto; }.chat-header { display: flex; align-items: center; gap: 10px; padding: 0 18px; border-bottom: 1px solid var(--line); }.chat-header strong, .chat-header small { display: block; }.chat-header strong { font-size: .76rem; }.chat-header small { margin-top: 2px; color: var(--muted); font-size: .59rem; }.chat-messages { padding: 20px; overflow-y: auto; background: linear-gradient(rgba(247,249,252,.93), rgba(247,249,252,.93)), radial-gradient(circle, #bdd0e7 1px, transparent 1px); background-size: auto, 20px 20px; }.chat-message { display: flex; align-items: flex-end; gap: 7px; margin-bottom: 13px; }.chat-message > div { max-width: min(620px, 75%); }.chat-message small { display: block; margin: 0 0 4px 3px; color: var(--muted); font-size: .54rem; }.chat-message p { margin: 0; padding: 9px 12px; border: 1px solid var(--line); border-radius: 4px 12px 12px; background: white; box-shadow: 0 3px 10px rgba(18,39,63,.04); font-size: .68rem; line-height: 1.55; }.chat-message.own { justify-content: flex-end; }.chat-message.own > div { display: flex; align-items: flex-end; flex-direction: column; }.chat-message.own p { border-color: var(--blue); border-radius: 12px 4px 12px 12px; color: white; background: var(--blue); }.chat-composer { display: flex; align-items: flex-end; gap: 9px; padding: 13px 15px; border-top: 1px solid var(--line); background: white; }.chat-composer textarea { min-height: 43px; max-height: 120px; resize: vertical; }.chat-empty { display: grid; height: 100%; place-content: center; color: var(--muted); text-align: center; }.chat-empty i { color: #b8c8da; font-size: 2.3rem; }.chat-empty strong { margin: 10px 0 3px; color: var(--ink); font-size: .82rem; }.chat-empty span { font-size: .65rem; }
.notification-row { display: flex; align-items: center; gap: 14px; padding: 17px 20px; border-bottom: 1px solid var(--line); }.notification-row:last-child { border-bottom: 0; }.notification-row.unread { background: #f6f9ff; }.notification-icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 11px; color: var(--blue); background: #e8f1ff; }.notification-icon.notification-chat { color: #6b4bb0; background: #f2edff; }.notification-icon.notification-agenda { color: #087c65; background: #e8f8f4; }.notification-row strong { font-size: .73rem; }.notification-row p { margin: 4px 0; color: var(--muted); font-size: .65rem; }.notification-row small { color: #9aa5b2; font-size: .57rem; }
.mobile-bottom-nav { position: fixed; right: 10px; bottom: 10px; left: 10px; z-index: 1025; display: flex; height: 64px; align-items: center; justify-content: space-around; padding: 6px 7px; border: 1px solid rgba(230,235,241,.9); border-radius: 17px; background: rgba(255,255,255,.96); box-shadow: 0 12px 35px rgba(18,39,63,.16); backdrop-filter: blur(12px); }.mobile-bottom-nav a { display: flex; min-width: 52px; align-items: center; gap: 3px; padding: 6px; flex-direction: column; color: #718095; font-size: .53rem; font-weight: 650; }.mobile-bottom-nav a i { font-size: 1.05rem; }.mobile-bottom-nav a.active { color: var(--blue); }
.context-tools { display: flex; align-items: stretch; min-width: 0; overflow: hidden; border: 1px solid #dfe7f1; border-radius: 13px; background: white; box-shadow: 0 4px 14px rgba(18,39,63,.035); }.context-tools-label { display: flex; width: 170px; flex: 0 0 170px; justify-content: center; padding: 13px 16px; flex-direction: column; color: white; background: linear-gradient(145deg, var(--navy), #183e65); }.context-tools-label span { font-size: .7rem; font-weight: 750; }.context-tools-label small { margin-top: 3px; color: #aebfd1; font-size: .54rem; }.context-tools-scroll { display: flex; min-width: 0; padding: 7px; overflow-x: auto; scrollbar-width: thin; }.context-tool { display: flex; min-width: 125px; align-items: center; gap: 8px; padding: 8px 10px; border-right: 1px solid var(--line); color: var(--ink); }.context-tool:last-child { border-right: 0; }.context-tool:hover { color: var(--blue); background: #f7faff; }.context-tool > i { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; flex: 0 0 30px; border-radius: 8px; color: var(--blue); background: #edf4ff; }.context-tool strong, .context-tool small { display: block; white-space: nowrap; }.context-tool strong { font-size: .63rem; }.context-tool small { margin-top: 2px; color: var(--muted); font-size: .52rem; }
.workflow-ribbon { display: flex; min-width: 0; overflow: hidden; border: 1px solid #dfe7f1; border-radius: 14px; background: white; box-shadow: 0 5px 16px rgba(18,39,63,.045); }.workflow-intro { display: flex; width: 205px; flex: 0 0 205px; justify-content: center; padding: 17px 20px; flex-direction: column; color: white; background: linear-gradient(145deg, #0d2742, #184b79); }.workflow-intro span { color: #8fc7ff; font-size: .55rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }.workflow-intro strong { margin: 4px 0 3px; font-size: .76rem; }.workflow-intro small { color: #b2c7d9; font-size: .56rem; }.workflow-steps { display: flex; min-width: 0; flex: 1; overflow-x: auto; }.workflow-step { position: relative; display: flex; min-width: 190px; align-items: center; gap: 10px; padding: 14px 17px; border-right: 1px solid var(--line); color: var(--ink); }.workflow-step:hover { color: var(--blue); background: #f7faff; }.workflow-step > i { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; flex: 0 0 36px; border-radius: 10px; color: var(--blue); background: #edf4ff; }.workflow-number { position: absolute; top: 7px; left: 7px; color: #a7b2bf; font-size: .48rem; font-weight: 750; }.workflow-step span:nth-of-type(2) { min-width: 0; flex: 1; }.workflow-step strong, .workflow-step small { display: block; }.workflow-step strong { font-size: .67rem; }.workflow-step small { overflow: hidden; margin-top: 3px; color: var(--muted); font-size: .53rem; text-overflow: ellipsis; white-space: nowrap; }.workflow-step b { color: #9ba7b5; font-size: .7rem; }.agenda-dashboard-list { display: flex; padding: 0 14px 14px; overflow-x: auto; }.agenda-dashboard-list > a { display: flex; min-width: 235px; align-items: center; gap: 9px; padding: 10px 12px; border-right: 1px solid var(--line); color: var(--ink); }.agenda-dashboard-list > a:hover { color: var(--blue); background: #f8faff; }.agenda-dashboard-list > a > span:nth-child(2) { min-width: 0; flex: 1; }.agenda-dashboard-list > a > span:nth-child(2) strong, .agenda-dashboard-list > a > span:nth-child(2) small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.agenda-dashboard-list > a > span:nth-child(2) strong { font-size: .65rem; }.agenda-dashboard-list > a > span:nth-child(2) small { margin-top: 3px; color: var(--muted); font-size: .54rem; }.agenda-dashboard-date { display: grid; width: 36px; height: 42px; flex: 0 0 36px; place-content: center; border-radius: 9px; color: var(--blue); background: #edf4ff; text-align: center; }.agenda-dashboard-date strong { font-size: .78rem; line-height: 1; }.agenda-dashboard-date small { font-size: .45rem; text-transform: uppercase; }.agenda-dashboard-list > a > i { color: #aab4c0; font-size: .65rem; }.agenda-dashboard-empty { display: flex; min-height: 55px; align-items: center; gap: 9px; padding: 10px; color: var(--muted); font-size: .63rem; }.agenda-dashboard-empty i { color: var(--teal); font-size: 1rem; }

@media (max-width: 1199.98px) {
    .financial-strip { grid-template-columns: repeat(2, 1fr); gap: 15px 0; }.financial-strip > div:nth-child(2) { border-right: 0; }.financial-strip > div:nth-child(3) { padding-left: 0; }
}
@media (max-width: 991.98px) {
    .app-sidebar { transform: translateX(-100%); transition: transform .25s ease; }.sidebar-open .app-sidebar { transform: translateX(0); }.sidebar-open .sidebar-overlay { position: fixed; inset: 0; z-index: 1035; display: block; background: rgba(6,20,34,.5); backdrop-filter: blur(2px); }.app-main { margin-left: 0; }.app-topbar { padding: 0 18px; }.page-content { padding: 22px 18px 95px; }
    .auth-shell { grid-template-columns: 1fr; }.auth-showcase { display: none; }.auth-form-area { min-height: 100vh; }.mobile-auth-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 38px; color: var(--navy); }.mobile-auth-brand .brand-mark { width: 36px; height: 36px; }.mobile-auth-brand strong { font-size: .88rem; letter-spacing: .08em; }
}
@media (max-width: 767.98px) {
    .global-search { width: auto; flex: 1; margin: 0 8px; }.search-shortcut, .top-user { display: none !important; }.topbar-actions { gap: 3px; }.topbar-actions .form-select { max-width: 105px; }.filter-bar { flex-wrap: wrap; }.filter-search { flex-basis: 100%; }.filter-bar .form-select { width: 100%; flex: 1; }.metric-card { min-height: 135px; padding: 14px; }.metric-icon { top: 14px; right: 14px; width: 33px; height: 33px; }.metric-card strong { font-size: 1.5rem; }.panel-header { padding: 17px 16px 10px; }.chart-wrap { height: 230px; padding-inline: 10px; }.financial-strip { padding-inline: 16px; }.form-panel, .detail-panel { padding: 16px; }.detail-item { min-height: 70px; }.search-page-form { flex-wrap: wrap; }.search-page-form > i { top: 34px; }.search-page-form button { width: 100%; }
    .calendar-panel { overflow-x: auto; }.calendar-toolbar, .calendar-weekdays, .calendar-days { min-width: 770px; }.calendar-day { min-height: 112px; }
    .context-tools { display: block; }.context-tools-label { width: auto; padding: 9px 13px; }.context-tools-scroll { padding: 5px; }.context-tool { min-width: 112px; }
    .workflow-ribbon { display: block; }.workflow-intro { width: auto; padding: 11px 15px; }.workflow-steps { width: 100%; }.workflow-step { min-width: 175px; }
    .chat-shell { height: calc(100vh - 175px); min-height: 500px; grid-template-columns: 92px minmax(0, 1fr); }.chat-sidebar-title { justify-content: center; padding: 0 7px; }.chat-sidebar-title strong { display: none; }.chat-channel { justify-content: center; padding: 8px 5px; }.chat-channel > span:nth-child(2) { display: none; }.chat-unread { position: absolute; margin: -27px 0 0 32px; }.chat-channel { position: relative; }.chat-header { padding-inline: 10px; }.chat-header .btn { width: 36px; overflow: hidden; padding-inline: 9px; white-space: nowrap; }.chat-message > div { max-width: 88%; }.chat-messages { padding: 13px; }.notification-row { align-items: flex-start; padding: 14px; }.notification-row form { align-self: center; }.notification-row .btn { width: 38px; overflow: hidden; padding: 8px; white-space: nowrap; }
}
@media (max-width: 479.98px) {
    .page-content { padding-inline: 12px; }.app-topbar { padding-inline: 10px; }.global-search input { font-size: .72rem; }.metric-grid > div { width: 100%; }.metric-card { min-height: 125px; }.financial-strip { grid-template-columns: 1fr; }.financial-strip > div { padding: 8px 0; border-right: 0; border-bottom: 1px solid var(--line); }.financial-strip > div:last-child { border-bottom: 0; }.page-heading .btn { flex: 1; }.auth-form-area { padding: 25px; }
}
