:root {
    --pf-sidebar: #123f55;
    --pf-sidebar-deep: #0b3042;
    --pf-sidebar-soft: #1c5872;
    --pf-primary: #176b87;
    --pf-primary-dark: #0f5068;
    --pf-accent: #84cc16;
    --pf-success: #15803d;
    --pf-warning: #b7791f;
    --pf-danger: #c2413b;
    --pf-info: #2563eb;
    --pf-surface: #f5f7f9;
    --pf-card: #ffffff;
    --pf-border: #dfe5ea;
    --pf-border-soft: #ebeff2;
    --pf-text: #1f2933;
    --pf-muted: #667784;
    --pf-shadow: 0 10px 30px rgba(15, 56, 75, .07);
    --pf-radius: 14px;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
html { font-size: 15px; }
body {
    margin: 0;
    background: var(--pf-surface);
    color: var(--pf-text);
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}
a { color: var(--pf-primary); }
a:hover { color: var(--pf-primary-dark); }

/* Shell */
.app-shell { display: flex; min-height: 100vh; }
.sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 1040;
    display: flex;
    width: 272px;
    flex-direction: column;
    overflow-y: auto;
    color: #fff;
    background: linear-gradient(180deg, var(--pf-sidebar) 0%, var(--pf-sidebar-deep) 100%);
    box-shadow: 6px 0 24px rgba(5, 34, 47, .12);
}
.brand {
    display: flex;
    min-height: 78px;
    align-items: center;
    gap: 12px;
    padding: 17px 20px;
    border-bottom: 1px solid rgba(255,255,255,.09);
    color: #fff;
    text-decoration: none;
}
.brand:hover { color: #fff; }
.brand-mark {
    display: inline-grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    border-radius: 13px;
    background: linear-gradient(145deg, #a3e635, #65a30d);
    color: #163b1b;
    box-shadow: 0 7px 18px rgba(132, 204, 22, .25);
    font-size: 1.2rem;
}
.brand strong { display: block; font-size: 1.02rem; letter-spacing: -.01em; }
.brand small { display: block; margin-top: 1px; color: rgba(255,255,255,.65); font-size: .73rem; font-weight: 500; }
.account-context {
    margin: 16px 14px 5px;
    padding: 12px 14px;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 12px;
    background: rgba(255,255,255,.055);
}
.account-context span { display: block; color: rgba(255,255,255,.55); font-size: .65rem; font-weight: 700; letter-spacing: .08em; }
.account-context strong { display: block; overflow: hidden; margin-top: 3px; font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-nav { padding: 5px 12px 18px; }
.nav-section { margin-top: 16px; }
.nav-section > span {
    display: block;
    padding: 0 10px 7px;
    color: rgba(255,255,255,.44);
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.nav-item {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 2px 0;
    padding: 9px 11px;
    border-radius: 10px;
    color: rgba(255,255,255,.79);
    font-size: .88rem;
    font-weight: 500;
    text-decoration: none;
    transition: .16s ease;
}
.nav-item i { width: 19px; flex: 0 0 19px; text-align: center; font-size: 1rem; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.08); transform: translateX(1px); }
.nav-item.active {
    color: #fff;
    background: linear-gradient(90deg, rgba(132,204,22,.25), rgba(255,255,255,.09));
    box-shadow: inset 3px 0 0 var(--pf-accent);
}
.sidebar-footer { margin-top: auto; padding: 15px 18px 18px; border-top: 1px solid rgba(255,255,255,.08); }
.sidebar-footer a { display: flex; align-items: center; gap: 9px; color: rgba(255,255,255,.78); text-decoration: none; }
.sidebar-footer small { display: block; margin-top: 8px; color: rgba(255,255,255,.4); font-size: .68rem; }
.main-area { width: calc(100% - 272px); min-width: 0; margin-left: 272px; }
.topbar {
    position: sticky;
    top: 0;
    z-index: 1030;
    display: flex;
    min-height: 72px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 10px 26px;
    border-bottom: 1px solid var(--pf-border);
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(10px);
}
.topbar-left, .topbar-right, .user-menu { display: flex; align-items: center; }
.topbar-left { gap: 13px; }
.topbar-left strong { display: block; font-size: .94rem; }
.topbar-left small { display: block; color: var(--pf-muted); font-size: .73rem; }
.topbar-right { gap: 10px; }
.sidebar-toggle, .topbar-icon, .icon-button {
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--pf-border);
    border-radius: 9px;
    background: #fff;
    color: #52636e;
    cursor: pointer;
}
.sidebar-toggle { display: none; width: 38px; height: 38px; font-size: 1.25rem; }
.topbar-icon { width: 38px; height: 38px; text-decoration: none; }
.icon-button { width: 32px; height: 32px; padding: 0; }
.sidebar-toggle:hover, .topbar-icon:hover, .icon-button:hover { color: var(--pf-primary); border-color: #b8cbd5; background: #f6fafb; }
.user-menu { gap: 9px; min-width: 188px; padding: 5px 7px; border: 0; border-radius: 11px; background: transparent; color: var(--pf-text); text-align: left; }
.user-menu:hover { background: #f3f6f7; }
.user-menu > span:nth-child(2) { min-width: 0; flex: 1; }
.user-menu strong { display: block; overflow: hidden; font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.user-menu small { display: block; color: var(--pf-muted); font-size: .67rem; }
.user-avatar {
    display: inline-grid;
    width: 35px;
    height: 35px;
    flex: 0 0 35px;
    place-items: center;
    border-radius: 50%;
    background: #d9edf3;
    color: var(--pf-primary-dark);
    font-size: .72rem;
    font-weight: 800;
}
.content-wrapper { padding: 26px 28px 54px; }

/* Global components */
.page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.page-header h1 { margin: 1px 0 5px; color: #17232b; font-size: 1.72rem; font-weight: 800; letter-spacing: -.025em; }
.page-header p { max-width: 850px; margin: 0; color: var(--pf-muted); }
.eyebrow { color: var(--pf-primary); font-size: .68rem; font-weight: 800; letter-spacing: .11em; }
.page-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.card { border: 1px solid var(--pf-border); border-radius: var(--pf-radius); background: var(--pf-card); box-shadow: var(--pf-shadow); }
.panel-card { overflow: hidden; }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 18px 20px; border-bottom: 1px solid var(--pf-border-soft); }
.panel-heading h2 { margin: 0 0 3px; font-size: 1rem; font-weight: 750; }
.panel-heading p { margin: 0; color: var(--pf-muted); font-size: .78rem; }
.portal-alert { display: flex; align-items: center; gap: 10px; border-radius: 11px; }
.portal-alert span { flex: 1; }
.btn { border-radius: 9px; font-weight: 600; }
.btn-primary { --bs-btn-bg: var(--pf-primary); --bs-btn-border-color: var(--pf-primary); --bs-btn-hover-bg: var(--pf-primary-dark); --bs-btn-hover-border-color: var(--pf-primary-dark); }
.btn-outline-primary { --bs-btn-color: var(--pf-primary); --bs-btn-border-color: #9bbbc9; --bs-btn-hover-bg: var(--pf-primary); --bs-btn-hover-border-color: var(--pf-primary); }
.form-label, label { margin-bottom: 5px; color: #344651; font-size: .78rem; font-weight: 650; }
.form-control, .form-select { min-height: 41px; border-color: #d5dfe5; border-radius: 9px; font-size: .88rem; }
.form-control:focus, .form-select:focus { border-color: #77a6b7; box-shadow: 0 0 0 .2rem rgba(23,107,135,.12); }
.form-card { padding: 22px; }
.form-section { padding: 20px 0; border-bottom: 1px solid var(--pf-border-soft); }
.form-section:last-child { border-bottom: 0; }
.form-section-heading h2 { margin: 0 0 4px; font-size: 1rem; font-weight: 750; }
.form-section-heading p, .form-subtitle { margin: 0; color: var(--pf-muted); font-size: .79rem; }
.form-actions { display: flex; justify-content: flex-end; gap: 9px; padding-top: 20px; }
.professional-table { --bs-table-bg: transparent; font-size: .82rem; }
.professional-table thead th { padding: 11px 13px; border-bottom: 1px solid var(--pf-border); background: #f4f7f8; color: #566a75; font-size: .69rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; white-space: nowrap; }
.professional-table tbody td { padding: 11px 13px; border-color: var(--pf-border-soft); vertical-align: middle; }
.professional-table tbody tr:hover { background: #f8fbfc; }
.table-link { color: var(--pf-primary-dark); font-weight: 700; text-decoration: none; }
.text-truncate-cell { max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.empty-state { display: grid; min-height: 230px; place-items: center; align-content: center; gap: 6px; padding: 25px; color: var(--pf-muted); text-align: center; }
.empty-state i { color: #9fb3bc; font-size: 2.2rem; }
.empty-state strong { color: #394c56; }
.empty-state.compact { min-height: 140px; }
.status-badge, .role-badge, .document-chip, .summary-pill { display: inline-flex; align-items: center; border-radius: 999px; font-weight: 700; white-space: nowrap; }
.status-badge { padding: 4px 9px; font-size: .68rem; }
.status-badge.authorized { color: #176534; background: #dff5e6; }
.status-badge.cancelled { color: #9f2828; background: #fde4e4; }
.status-badge.inactive { color: #68737a; background: #e9edef; }
.status-badge.pending { color: #8a5b12; background: #fff0cd; }
.role-badge { padding: 5px 10px; color: #315e70; background: #e3f0f4; font-size: .7rem; }
.document-chip { min-width: 45px; justify-content: center; padding: 4px 8px; font-size: .65rem; text-transform: uppercase; }
.document-chip.nfe { color: #164f7a; background: #deedf9; }
.document-chip.cte { color: #a64a09; background: #fff0df; }
.document-chip.nfseadn { color: #176b59; background: #dff5ef; }

/* Dashboard */
.metric-card { display: flex; min-height: 124px; align-items: center; gap: 15px; padding: 18px; border: 1px solid var(--pf-border); border-radius: var(--pf-radius); background: #fff; box-shadow: var(--pf-shadow); }
.metric-card.attention { border-color: #f1c9c9; }
.metric-icon { display: inline-grid; width: 46px; height: 46px; flex: 0 0 46px; place-items: center; border-radius: 13px; font-size: 1.25rem; }
.metric-icon.blue { color: #1d5e91; background: #dceefa; }
.metric-icon.green { color: #16733c; background: #dff5e6; }
.metric-icon.red { color: #ad3131; background: #fde4e4; }
.metric-icon.amber { color: #986212; background: #fff0ce; }
.metric-icon.violet { color: #6f49a8; background: #eee6fb; }
.metric-card span, .metric-card small { display: block; color: var(--pf-muted); }
.metric-card span { font-size: .76rem; font-weight: 600; }
.metric-card strong { display: block; margin: 2px 0; color: #1d2d35; font-size: 1.55rem; line-height: 1.15; }
.metric-card small { font-size: .69rem; }
.document-type-card { display: flex; min-height: 94px; align-items: center; gap: 14px; padding: 17px 19px; border: 1px solid var(--pf-border); border-radius: var(--pf-radius); background: #fff; color: var(--pf-text); box-shadow: var(--pf-shadow); text-decoration: none; transition: .16s ease; }
.document-type-card:hover { color: var(--pf-text); transform: translateY(-2px); box-shadow: 0 13px 34px rgba(15,56,75,.11); }
.document-type-card .type-icon { display: inline-grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; border-radius: 13px; font-size: 1.25rem; }
.document-type-card.nfe .type-icon { color: #1762a0; background: #e1effb; }
.document-type-card.cte .type-icon { color: #b6550d; background: #fff0df; }
.document-type-card.nfse .type-icon { color: #16725e; background: #e0f5ef; }
.document-type-card > span:nth-child(2) { flex: 1; }
.document-type-card small { display: block; color: var(--pf-muted); font-size: .72rem; }
.document-type-card strong { display: block; margin-top: 2px; font-size: 1rem; }
.summary-list { padding: 8px 20px 18px; }
.summary-list > div { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 13px 0; border-bottom: 1px solid var(--pf-border-soft); }
.summary-list > div:last-child { border-bottom: 0; }
.summary-list span { color: #50626d; font-size: .81rem; }
.summary-list i { width: 22px; color: var(--pf-primary); }
.summary-list strong { font-size: .9rem; }

/* Document center */
.document-type-tabs { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); gap: 9px; margin-bottom: 12px; }
.document-type-tabs a { display: flex; min-height: 60px; align-items: center; justify-content: center; gap: 8px; border: 1px solid var(--pf-border); border-radius: 11px; background: #fff; color: #50636e; font-weight: 700; text-decoration: none; }
.document-type-tabs a:hover { border-color: #a9c0ca; background: #f8fbfc; }
.document-type-tabs a.active { border-color: var(--pf-primary); background: var(--pf-primary); color: #fff; box-shadow: 0 8px 20px rgba(23,107,135,.16); }
.document-view-tabs { display: flex; overflow-x: auto; margin-bottom: 14px; border-bottom: 1px solid var(--pf-border); }
.document-view-tabs a { padding: 10px 17px; border-bottom: 3px solid transparent; color: #667781; font-size: .82rem; font-weight: 650; text-decoration: none; white-space: nowrap; }
.document-view-tabs a.active { border-bottom-color: var(--pf-primary); color: var(--pf-primary-dark); }
.filter-panel { margin-bottom: 14px; padding: 17px; }
.filter-grid { display: grid; grid-template-columns: minmax(240px, 2fr) repeat(3, minmax(160px, 1fr)); gap: 13px; align-items: end; }
.filter-search { grid-column: span 1; }
.input-icon { position: relative; }
.input-icon > i { position: absolute; top: 50%; left: 13px; z-index: 2; color: #7a8d97; transform: translateY(-50%); }
.input-icon .form-control { padding-left: 36px; }
.filter-actions { display: flex; justify-content: flex-end; gap: 8px; }
.document-summary-bar { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin: 13px 0; }
.document-summary-bar > div { display: flex; flex-wrap: wrap; gap: 7px; }
.summary-pill { gap: 4px; padding: 6px 10px; font-size: .69rem; }
.summary-pill.neutral { color: #53636c; background: #e9eef0; }
.summary-pill.success { color: #176534; background: #dff5e6; }
.summary-pill.danger { color: #9f2828; background: #fde4e4; }
.summary-total { color: #253740; font-size: .85rem; }
.document-table-card { overflow: hidden; }
.bulk-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 8px 13px; border-bottom: 1px solid var(--pf-border-soft); background: #fbfcfc; color: var(--pf-muted); font-size: .77rem; }
.document-table { min-width: 1260px; }
.check-column { width: 38px; }
.actions-column { width: 45px; }
.document-number { display: flex; align-items: center; gap: 9px; }
.document-number a { display: block; color: var(--pf-primary-dark); font-size: .86rem; font-weight: 800; text-decoration: none; }
.document-number small, .supplier-cell small { display: block; color: var(--pf-muted); font-size: .69rem; }
.supplier-cell { max-width: 245px; }
.supplier-cell strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.money-cell { color: #283a43; font-weight: 750; white-space: nowrap; }
.access-key-cell { display: flex; max-width: 260px; align-items: center; gap: 6px; }
.access-key-cell code { display: block; overflow: hidden; flex: 1; color: #4f626c; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.pagination-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 13px; color: var(--pf-muted); font-size: .76rem; }
.pagination-actions { display: flex; align-items: center; gap: 9px; }

/* Details */
.back-link { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 13px; color: var(--pf-muted); font-size: .8rem; text-decoration: none; }
.detail-hero { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 16px; padding: 20px; border: 1px solid var(--pf-border); border-radius: var(--pf-radius); background: linear-gradient(130deg, #fff, #f3f8fa); box-shadow: var(--pf-shadow); }
.detail-card { padding: 18px; }
.detail-card-title { margin-bottom: 13px; font-size: .88rem; font-weight: 750; }
.detail-list { display: grid; gap: 11px; }
.detail-list > div { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 9px; border-bottom: 1px solid var(--pf-border-soft); }
.detail-list > div:last-child { border-bottom: 0; }
.detail-list span { color: var(--pf-muted); font-size: .74rem; }
.detail-list strong { text-align: right; font-size: .78rem; }

/* Users, profiles and scopes */
.user-cell { display: flex; align-items: center; gap: 10px; }
.user-cell strong, .user-cell small { display: block; }
.user-cell small { color: var(--pf-muted); font-size: .7rem; }
.scope-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; }
.scope-card, .establishment-link-card { display: flex; gap: 10px; padding: 12px; border: 1px solid var(--pf-border); border-radius: 11px; background: #fff; }
.scope-card:hover, .establishment-link-card:hover { border-color: #abc2cc; background: #fbfdfd; }
.scope-icon { display: inline-grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; border-radius: 10px; background: #e4f1f4; color: var(--pf-primary); }
.permission-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 12px; }
.permission-category { overflow: hidden; border: 1px solid var(--pf-border); border-radius: 11px; }
.permission-category-title { padding: 10px 12px; border-bottom: 1px solid var(--pf-border-soft); background: #f6f8f9; font-size: .77rem; font-weight: 750; }
.permission-group { padding: 5px 12px; }
.permission-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--pf-border-soft); font-size: .75rem; }
.permission-row:last-child { border-bottom: 0; }
.permission-box { padding: 15px; border: 1px solid var(--pf-border); border-radius: 11px; background: #fbfcfc; }
.permission-box.granted { border-left: 4px solid var(--pf-success); }
.permission-box.denied { border-left: 4px solid var(--pf-danger); }

/* Certificates, settings, profile */
.certificate-card { height: 100%; padding: 18px; }
.establishment-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 9px; max-height: 390px; overflow-y: auto; padding: 2px; }
.card-check { display: flex; align-items: flex-start; gap: 9px; padding: 11px; border: 1px solid var(--pf-border); border-radius: 10px; background: #fff; }
.setting-box { padding: 15px; border: 1px solid var(--pf-border); border-radius: 11px; background: #f8fafb; }
.settings-menu { position: sticky; top: 93px; padding: 9px; }
.settings-link { display: block; padding: 9px 11px; border-radius: 8px; color: #566770; text-decoration: none; text-transform: capitalize; }
.settings-link:hover, .settings-link.active { color: var(--pf-primary-dark); background: #e6f1f4; font-weight: 700; }
.profile-card { padding: 22px; }
.profile-avatar { display: inline-grid; width: 65px; height: 65px; place-items: center; border-radius: 50%; background: #deedf2; color: var(--pf-primary-dark); font-size: 1.2rem; font-weight: 800; }
.danger-zone { border-color: #f0caca; }

/* Login */
.login-body { display: grid; min-height: 100vh; place-items: center; padding: 22px; background: radial-gradient(circle at 15% 10%, #d9edf4, transparent 35%), linear-gradient(145deg, #edf5f7, #f7f9fa); }
.login-card { width: min(440px, 100%); padding: 31px; border: 1px solid var(--pf-border); border-radius: 20px; background: #fff; box-shadow: 0 25px 70px rgba(15,56,75,.16); }
.font-monospace { font-size: .76rem; }

/* Bootstrap refinements */
.dropdown-menu { border-color: var(--pf-border); border-radius: 10px; }
.dropdown-item { display: flex; align-items: center; gap: 8px; font-size: .8rem; }
.modal-content { border: 0; border-radius: 14px; box-shadow: 0 25px 60px rgba(22,43,54,.2); }

@media (max-width: 1240px) {
    .filter-grid { grid-template-columns: repeat(3, minmax(170px, 1fr)); }
    .filter-search { grid-column: span 2; }
}
@media (max-width: 991.98px) {
    .sidebar { transform: translateX(-100%); transition: transform .2s ease; }
    body.sidebar-open .sidebar { transform: translateX(0); }
    body.sidebar-open::after { position: fixed; inset: 0; z-index: 1035; content: ""; background: rgba(4,25,35,.38); }
    body.sidebar-open .sidebar { z-index: 1045; }
    .main-area { width: 100%; margin-left: 0; }
    .sidebar-toggle { display: inline-grid; }
    .content-wrapper { padding: 21px 18px 45px; }
    .topbar { padding: 9px 16px; }
    .user-menu { min-width: auto; }
    .user-menu > span:nth-child(2), .user-menu > i { display: none; }
    .document-type-tabs { grid-template-columns: repeat(2, 1fr); }
    .filter-grid { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
    .filter-search { grid-column: span 2; }
}
@media (max-width: 575.98px) {
    .page-header, .detail-hero, .document-summary-bar, .pagination-bar { flex-direction: column; align-items: stretch; }
    .page-actions { width: 100%; }
    .page-actions .btn { flex: 1; }
    .document-type-tabs { grid-template-columns: repeat(2, 1fr); }
    .filter-grid { grid-template-columns: 1fr; }
    .filter-search { grid-column: auto; }
    .filter-actions { justify-content: stretch; }
    .filter-actions .btn { flex: 1; }
    .document-summary-bar .summary-total { text-align: right; }
    .topbar-left > div:last-child { max-width: 190px; }
    .metric-card { min-height: 106px; }
}

/* ===== Portal Fiscal v2.3: central fiscal enriquecida ===== */
.document-table-expanded { min-width: 1780px; }
.document-table-expanded td { vertical-align: middle; }
.direction-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 2px 9px;
    border-radius: 999px;
    background: #eef3e7;
    color: #3f6212;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .02em;
}
.manifestation-text { color: #087990; font-weight: 600; }
.settings-menu-title {
    padding: .55rem .85rem .35rem;
    color: #6b7280;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.settings-link { display: flex; align-items: center; gap: .65rem; }
.settings-link i { width: 1.1rem; text-align: center; }
.detail-list.columns > div { min-width: 0; }
.detail-list dd { overflow-wrap: anywhere; }

/* ===== Portal Fiscal v3.0: contas, raízes de CNPJ, agendamentos e PDFs ===== */
.schedule-table { min-width: 1760px; }
.schedule-table th { white-space: nowrap; }
.schedule-table td { vertical-align: middle; }
.schedule-interval { width: 120px; }
.schedule-time-range { display: grid; grid-template-columns: 94px auto 94px; align-items: center; gap: 6px; }
.schedule-time-range > span { color: #71808a; font-size: .72rem; text-align: center; }
.schedule-days { display: flex; gap: 4px; min-width: 224px; }
.day-toggle { cursor: pointer; }
.day-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.day-toggle span {
    display: grid;
    width: 27px;
    height: 27px;
    place-items: center;
    border: 1px solid var(--pf-border);
    border-radius: 7px;
    background: #fff;
    color: #667680;
    font-size: .7rem;
    font-weight: 800;
}
.day-toggle.active span { border-color: #3d758b; background: #deedf2; color: #123f55; }
.day-toggle input:disabled + span { cursor: default; opacity: .72; }
.schedule-timezone { width: 210px; }
.schedule-message { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.schedule-table-card .form-control:disabled,
.schedule-table-card .form-select:disabled { background: transparent; border-color: transparent; color: inherit; opacity: 1; }

/* v3.3 - monitor e histórico de agendamentos */
.bulk-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.bulk-edit-days-card{grid-column:1/-1}.bulk-field-disabled{opacity:.48}.bulk-field-disabled input,.bulk-field-disabled select{pointer-events:none}.modal-content{border:0;border-radius:14px;box-shadow:0 24px 60px rgba(15,42,54,.2)}
@media(max-width:768px){.bulk-edit-grid{grid-template-columns:1fr}.bulk-edit-days-card{grid-column:auto}}

/* v3.4 - central fiscal compacta e processamento autônomo dos XMLs */
.automation-header-chip { display:inline-flex; align-items:center; gap:7px; padding:8px 12px; border:1px solid #b7dfc4; border-radius:999px; background:#effaf2; color:#176534; font-size:.74rem; font-weight:800; white-space:nowrap; }
.automation-header-chip i { font-size:.9rem; }
.automatic-processing-card { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:14px; margin:0 0 15px; padding:14px 16px; border:1px solid #b8dfc5; border-radius:13px; background:linear-gradient(135deg,#f3fbf5,#fff); box-shadow:0 7px 20px rgba(24,101,52,.06); }
.automatic-processing-card.working { border-color:#ead59d; background:linear-gradient(135deg,#fffaf0,#fff); }
.automatic-processing-icon { display:grid; width:43px; height:43px; place-items:center; border-radius:12px; background:#daf2e1; color:#176534; font-size:1.2rem; }
.automatic-processing-card.working .automatic-processing-icon { background:#fff0c9; color:#8a5b12; }
.automatic-processing-content strong,.automatic-processing-content span { display:block; }
.automatic-processing-content strong { color:var(--pf-text); font-size:.88rem; }
.automatic-processing-content span { margin-top:2px; color:var(--pf-muted); font-size:.74rem; line-height:1.45; }
.automatic-processing-stats { min-width:165px; text-align:right; }
.automatic-processing-stats strong,.automatic-processing-stats span,.automatic-processing-stats small { display:block; }
.automatic-processing-stats strong { color:#176534; font-size:.8rem; }
.automatic-processing-card.working .automatic-processing-stats strong { color:#8a5b12; }
.automatic-processing-stats span,.automatic-processing-stats small { color:var(--pf-muted); font-size:.67rem; }
.summary-pill.info { color:#164f7a; background:#deedf9; }
.summary-pill.warning { color:#805817; background:#fff0cd; }
.summary-pill.processing { color:#6c4c9a; background:#eee5fb; }
.document-table-compact { min-width:1180px; }
.document-table-compact tbody td { padding-top:13px; padding-bottom:13px; }
.metadata-pending-row { background:#fffdf7; }
.metadata-pending-row:hover { background:#fff9e9 !important; }
.document-primary { display:flex; align-items:flex-start; gap:9px; min-width:190px; }
.document-title-link { display:block; color:var(--pf-primary-dark); font-size:.88rem; font-weight:850; text-decoration:none; }
.document-primary small { display:block; color:var(--pf-muted); font-size:.68rem; }
.metadata-badge { display:inline-flex; align-items:center; gap:4px; max-width:190px; margin-top:5px; padding:3px 7px; border-radius:999px; font-size:.62rem; font-weight:800; white-space:nowrap; }
.metadata-badge.complete { color:#176534; background:#dff5e6; }
.metadata-badge.summary { color:#805817; background:#fff0cd; }
.metadata-badge.awaitingdocument { color:#53636c; background:#e9eef0; }
.metadata-badge.pending,.metadata-badge.partial { color:#6c4c9a; background:#eee5fb; }
.metadata-badge.error { color:#9f2828; background:#fde4e4; }
.archive-date { margin-top:4px; color:#80909a; font-size:.65rem; }
.document-parties { display:grid; grid-template-columns:minmax(110px,1fr) auto minmax(110px,1fr); align-items:center; gap:8px; min-width:310px; }
.document-parties > i { color:#91a1a9; }
.document-parties span,.document-parties strong,.document-parties small { display:block; }
.document-parties span { color:#83939b; font-size:.6rem; font-weight:800; text-transform:uppercase; }
.document-parties strong { max-width:185px; overflow:hidden; color:#24343d; font-size:.74rem; text-overflow:ellipsis; white-space:nowrap; }
.document-parties small { min-height:1em; color:var(--pf-muted); font-size:.65rem; }
.operation-cell { min-width:185px; max-width:245px; }
.operation-cell strong,.operation-cell small,.linked-store { display:block; }
.operation-cell strong { overflow:hidden; margin-top:5px; font-size:.73rem; text-overflow:ellipsis; white-space:nowrap; }
.operation-cell small { overflow:hidden; color:var(--pf-muted); font-size:.65rem; text-overflow:ellipsis; white-space:nowrap; }
.linked-store { overflow:hidden; margin-top:5px; color:#526670; font-size:.66rem; text-overflow:ellipsis; white-space:nowrap; }
.key-actions-cell { min-width:205px; }
.key-actions-cell code { display:block; max-width:215px; color:#526670; font-size:.61rem; line-height:1.45; white-space:normal; word-break:normal; }
.document-inline-actions { display:flex; gap:5px; margin-top:7px; }
.icon-action { display:inline-grid; width:29px; height:29px; padding:0; place-items:center; border:1px solid var(--pf-border); border-radius:7px; background:#fff; color:#58717d; text-decoration:none; cursor:pointer; }
.icon-action:hover { border-color:var(--pf-primary); color:var(--pf-primary); background:#f3fafc; }
.icon-action.pdf { color:#af3030; }
.icon-action.xml { color:#176b59; }

@media (max-width: 900px) {
    .automatic-processing-card { grid-template-columns:auto 1fr; }
    .automatic-processing-stats { grid-column:1 / -1; padding-left:57px; text-align:left; }
}
.document-quality-banner { display:flex; align-items:center; gap:11px; margin-bottom:14px; padding:12px 14px; border:1px solid #c9dce5; border-radius:11px; background:#f4f9fb; color:#315b6d; }
.document-quality-banner > i { font-size:1.25rem; }
.document-quality-banner strong,.document-quality-banner span { display:block; }
.document-quality-banner strong { font-size:.8rem; }
.document-quality-banner span { color:#687b84; font-size:.7rem; }
.document-quality-banner.complete { border-color:#b7dfc4; background:#effaf2; color:#176534; }
.document-quality-banner.error { border-color:#efc2c2; background:#fff4f4; color:#9f2828; }
.document-quality-banner.partial,.document-quality-banner.pending { border-color:#d9c6f2; background:#f8f3ff; color:#6c4c9a; }
.document-quality-banner.awaitingdocument { border-color:#d7dfe3; background:#f6f8f9; color:#53636c; }
.automation-header-chip.offline { border-color:#efc2c2; background:#fff4f4; color:#9f2828; }
.automatic-processing-card.offline { border-color:#efc2c2; background:linear-gradient(135deg,#fff4f4,#fff); }
.automatic-processing-card.offline .automatic-processing-icon { background:#fde4e4; color:#9f2828; }
.automatic-processing-card.offline .automatic-processing-stats strong { color:#9f2828; }


/* v3.8 - separação rígida entre eventos e XML principal */
.icon-action.disabled {
    opacity: .38;
    cursor: not-allowed;
    pointer-events: none;
}

.auxiliary-document-alert {
    display: flex;
    align-items: center;
    gap: .6rem;
}
