.topbar { position: sticky; z-index: 30; top: 0; border-bottom: 1px solid rgba(255,255,255,.12); background: linear-gradient(105deg, var(--navy-950) 0%, var(--blue-600) 68%, var(--cyan-500) 120%); color: #fff; box-shadow: 0 8px 24px rgba(2,21,73,.18); }
.topbar-main { min-height: 66px; width: min(var(--content), calc(100% - 40px)); margin: auto; display: flex; align-items: center; gap: 18px; }
.brand { display: inline-flex; align-items: center; gap: 10px; min-width: max-content; color: #fff; }
.brand-mark { width: 44px; height: 44px; display: grid; place-items: center; overflow: hidden; border: 1px solid rgba(255,255,255,.2); border-radius: 13px; background: var(--navy-950); box-shadow: inset 0 1px rgba(255,255,255,.2), 0 5px 14px rgba(0,0,0,.15); }
.brand-logo-image { width: 100%; height: 100%; display: block; object-fit: cover; }
.brand strong, .brand small { display: block; }
.brand strong { font-size: .98rem; letter-spacing: -.01em; }
.brand small { margin-top: 1px; color: #bcd3ff; font-size: .66rem; }
.desktop-nav { align-self: stretch; display: flex; align-items: center; gap: 5px; }
.primary-nav-link { min-height: 42px; display: inline-flex; align-items: center; gap: 7px; padding: 0 13px; border-radius: 12px; color: rgba(255,255,255,.83); font-size: .78rem; font-weight: 760; transition: var(--ease); }
.primary-nav-link svg { width: 18px; height: 18px; }
.primary-nav-link:hover { background: rgba(255,255,255,.1); color: #fff; }
.primary-nav-link.active { background: rgba(255,255,255,.17); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); }
.desktop-section-tabs { position: sticky; z-index: 28; top: 66px; min-height: 54px; width: min(980px, 88%); display: flex; align-items: center; justify-content: center; gap: 4px; margin: -20px auto 22px; padding: 11px 24px 8px; overflow-x: auto; border: 1px solid rgba(216,226,239,.92); border-top: 0; border-radius: 0 0 46px 46px; background: rgba(255,255,255,.97); box-shadow: 0 10px 25px rgba(28,57,100,.09); backdrop-filter: blur(14px); scrollbar-width: thin; }
.desktop-section-tabs a { min-width: 112px; min-height: 32px; display: inline-flex; flex: 1 0 auto; align-items: center; justify-content: center; gap: 6px; padding: 0 12px; border-radius: 13px; color: var(--text-muted); font-size: .65rem; font-weight: 850; white-space: nowrap; transition: var(--ease); }
.desktop-section-tabs a:hover { background: var(--surface-blue); color: var(--blue-600); }
.desktop-section-tabs a.active { background: linear-gradient(110deg, var(--navy-950), var(--blue-600)); color: #fff; box-shadow: 0 7px 15px rgba(2,21,73,.2); }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 16px; }
.company-picker span { display: block; margin: 0 0 4px 3px; color: #abc7f8; font-size: .59rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.company-picker select { width: 215px; min-height: 37px; padding: 0 34px 0 11px; border: 1px solid rgba(255,255,255,.25); border-radius: 10px; background: rgba(255,255,255,.1); color: #fff; font-size: .76rem; font-weight: 700; }
.company-picker select option { color: var(--text); background: #fff; }
.user-menu { display: flex; align-items: center; gap: 9px; }
.avatar { width: 36px; height: 36px; display: grid; place-items: center; border: 2px solid rgba(255,255,255,.4); border-radius: 50%; background: linear-gradient(145deg, var(--cyan-500), var(--blue-600)); font-weight: 850; }
.user-copy strong, .user-copy small { max-width: 130px; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-copy strong { font-size: .75rem; }.user-copy small { color: #bcd3ff; font-size: .62rem; }
.icon-btn { width: 36px; height: 36px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 10px; background: transparent; color: inherit; }
.icon-btn:hover { background: rgba(255,255,255,.12); }
.mobile-nav { display: none; }
.btn { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 18px; border: 1px solid transparent; border-radius: 12px 12px 12px 5px; font-weight: 800; font-size: .82rem; transition: transform var(--ease), box-shadow var(--ease), background var(--ease); }
.btn:hover { transform: translateY(-1px); }.btn:disabled { opacity: .62; cursor: wait; transform: none; }
.btn-primary { background: linear-gradient(135deg, var(--blue-600), var(--cyan-500)); color: #fff; box-shadow: 0 8px 20px rgba(8,119,229,.22); }
.btn-secondary { border-color: var(--line); background: #fff; color: var(--navy-950); }
.btn-danger { background: var(--danger); color: #fff; }
.btn-block { width: 100%; }
.field { display: grid; gap: 7px; }
.field > span, .field-label { color: #4f5f79; font-size: .68rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.field input, .field select, .field textarea, .form-control { width: 100%; min-height: 44px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 11px; outline: none; background: #fff; color: var(--text); transition: border var(--ease), box-shadow var(--ease); }
.field textarea { min-height: 92px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus, .form-control:focus { border-color: var(--blue-600); box-shadow: 0 0 0 3px rgba(8,119,229,.11); }
.form-stack { display: grid; gap: 16px; }
.alert { margin-bottom: 18px; padding: 12px 14px; border-radius: 12px; font-size: .82rem; font-weight: 650; }
.alert-danger { border: 1px solid #f4c7c3; background: #fff0ef; color: var(--danger); }
.alert-success { border: 1px solid #b8e4cc; background: #edfff5; color: var(--success); }
.login-view { min-height: 100vh; display: grid; grid-template-columns: minmax(360px, .9fr) minmax(480px, 1.1fr); background: #fff; }
.login-art { position: relative; min-height: 100vh; display: grid; place-content: center; justify-items: center; overflow: hidden; padding: 60px; background: radial-gradient(circle at 65% 35%, #0e4ba4 0, var(--navy-900) 35%, var(--navy-950) 78%); color: #fff; text-align: center; }
.login-art::before, .login-art::after { content: ''; position: absolute; border: 1px solid rgba(48,213,242,.22); border-radius: 50%; }
.login-art::before { width: 520px; height: 520px; }.login-art::after { width: 720px; height: 720px; }
.login-illustration { position: relative; z-index: 2; width: 220px; height: 220px; display: grid; place-items: center; overflow: hidden; border: 1px solid rgba(255,255,255,.18); border-radius: 48px; background: var(--navy-950); box-shadow: 0 0 70px rgba(18,153,214,.35); }
.login-logo-image { width: 100%; height: 100%; display: block; object-fit: cover; }
.login-art p { position: relative; z-index: 2; max-width: 430px; margin: 36px auto 0; color: #d5e4ff; font-size: 1.08rem; line-height: 1.6; }
.login-panel { display: grid; place-items: center; padding: 48px; background: linear-gradient(145deg, #fff, #f3f7fd); }
.login-card { width: min(440px, 100%); padding: 42px; border: 1px solid var(--line); border-radius: 30px 30px 30px 10px; background: rgba(255,255,255,.94); box-shadow: var(--shadow-md); }
.login-card .brand { color: var(--navy-950); }.login-card .brand small { color: var(--text-muted); }
.login-heading { margin: 38px 0 25px; }.login-heading p { margin: 0; color: var(--text-muted); }
.login-help { margin: 22px 0 10px; color: var(--text-muted); font-size: .78rem; text-align: center; }.version-label { display: block; color: #8996aa; text-align: center; }
.spinner { width: 17px; height: 17px; border: 2px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; animation: spin .7s linear infinite; }
.print-frame { position: fixed; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
@keyframes spin { to { transform: rotate(360deg); } }
.page-stack { display: grid; gap: 18px; }
.toolbar { min-height: 68px; display: flex; align-items: end; gap: 14px; padding: 13px 15px; }
.search-box { flex: 1 1 300px; min-width: 210px; height: 42px; display: flex; align-items: center; gap: 9px; padding: 0 13px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--text-muted); }
.search-box:focus-within { border-color: var(--blue-600); box-shadow: 0 0 0 3px rgba(8,119,229,.1); }
.search-box input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--text); }
.toolbar-actions { display: flex; align-items: end; flex-wrap: wrap; gap: 9px; }
.compact-field { display: grid; gap: 3px; }.compact-field span { margin-left: 2px; color: var(--text-muted); font-size: .58rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.compact-field select, .toolbar-actions > select { min-height: 42px; padding: 0 34px 0 11px; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--text); font-size: .76rem; }
.icon-btn.bordered { border: 1px solid var(--line); color: var(--navy-950); }
.data-panel { overflow: hidden; }.table-scroll { width: 100%; overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th { padding: 13px 14px; border-bottom: 1px solid var(--line); background: #f7f9fc; color: #56657c; font-size: .65rem; letter-spacing: .06em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.data-table td { padding: 14px; border-bottom: 1px solid #e7ecf3; color: #293751; font-size: .8rem; vertical-align: middle; }
.data-table tbody tr:last-child td { border-bottom: 0; }.data-table tbody tr:hover { background: #fbfdff; }
.data-table td strong, .data-table td small { display: block; }.data-table td small { margin-top: 3px; color: var(--text-muted); }
.cell-check { width: 42px; text-align: center !important; }.cell-actions { text-align: right !important; white-space: nowrap; }
.btn-link { padding: 5px 7px; border: 0; background: transparent; color: var(--blue-600); font-size: .72rem; font-weight: 800; }.btn-link.danger { color: var(--danger); }
.table-empty { padding: 45px 20px; color: var(--text-muted); text-align: center; }
.badge { display: inline-flex; align-items: center; padding: 5px 9px; border-radius: 999px; font-size: .65rem; font-weight: 800; }
.badge-success { background: #e8f8ef; color: var(--success); }.badge-warning { background: #fff2df; color: var(--warning); }.badge-danger { background: #fff0ef; color: var(--danger); }.badge-muted { background: #eef1f6; color: #68768c; }.badge-info { background: var(--surface-blue); color: var(--blue-600); }
.mobile-card-list { display: none; }
.modal-backdrop { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(1,12,43,.66); backdrop-filter: blur(5px); }
.modal { width: min(620px, 100%); max-height: calc(100vh - 40px); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; border-radius: 24px 24px 24px 8px; background: #fff; box-shadow: 0 28px 80px rgba(0,0,0,.32); }
.modal-small { width: min(520px, 100%); }.modal-compact { width: min(440px, 100%); }.modal-large { width: min(960px, 100%); }.modal-xlarge { width: min(1220px, 100%); }
.modal > header, .modal > footer { display: flex; align-items: center; gap: 10px; padding: 15px 20px; border-bottom: 1px solid var(--line); }.modal > header h2 { margin: 0; font-size: 1.03rem; }.modal > header .icon-btn { margin-left: auto; color: var(--text); font-size: 1.5rem; }
.modal-body { overflow: auto; padding: 20px; background: #f6f8fc; }.modal > footer { justify-content: flex-end; border-top: 1px solid var(--line); border-bottom: 0; background: #fff; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }.span-2 { grid-column: span 2; }
.modal-body .form-grid { gap: 12px; }
.modal-body .form-grid > .field, .modal-body .form-grid > .check-row, .settings-form .form-grid > .field { padding: 13px; border: 1px solid #e1e8f2; border-radius: 14px; background: #fff; box-shadow: 0 3px 12px rgba(2,21,73,.035); }
.modal-body .form-grid > .field:focus-within, .settings-form .form-grid > .field:focus-within { border-color: #a9c9f3; box-shadow: 0 0 0 3px rgba(8,119,229,.07); }
.modal-body .field input, .modal-body .field select, .modal-body .field textarea { min-height: 46px; background: #fbfdff; }
.modal-body .field input[readonly] { background: #f1f5fa; color: #66768d; }
.modal-body .field small { color: var(--text-muted); font-size: .66rem; line-height: 1.45; }
.check-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: .8rem; }.field legend { margin-bottom: 7px; color: #4f5f79; font-size: .68rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.section-intro { display: flex; align-items: end; justify-content: space-between; gap: 16px; }.section-intro h2 { margin-bottom: 4px; }.section-intro p { margin: 0; color: var(--text-muted); font-size: .82rem; }
.settings-card { overflow: hidden; }.card-header { padding: 17px 20px; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, #fff, #fbfcfe); }.card-header h2 { margin-bottom: 3px; font-size: 1rem; }.card-header p { margin: 0; color: var(--text-muted); font-size: .76rem; }
.settings-form { padding: 20px; }.form-actions { display: flex; gap: 9px; margin-top: 3px; }
.repeat-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 10px; }
.report-settings-layout { display: grid; grid-template-columns: minmax(330px, 430px) minmax(620px, 1fr); gap: 18px; align-items: start; }.report-config { position: sticky; top: 95px; }.report-preview-card { min-width: 0; }.report-preview { overflow: auto; padding: 18px; background: #eaf0f7; }
.report-preview .report-sheet { min-width: 690px; padding: 16px; background: #fff; box-shadow: 0 8px 26px rgba(2,21,73,.12); font: 9px Arial, sans-serif; }.report-preview .report-header { display: flex; min-height: 84px; margin-bottom: 10px; border: 1.5px solid #111; }.report-preview .report-logo { width: 105px; display: grid; place-items: center; border-right: 1px solid #111; }.report-preview .report-header-copy { flex: 1; display: grid; }.report-preview .report-line-1, .report-preview .report-line-2 { display: grid; place-items: center; padding: 5px; border-bottom: 1px solid #111; font-weight: 800; }.report-preview .report-line-1 { font-size: 14px; }.report-preview .report-line-2 { font-size: 12px; }.report-preview .report-line-3 { display: grid; grid-template-columns: 1.4fr 1fr 1fr; }.report-preview .report-line-3 > div { display: grid; place-items: center; padding: 5px; border-right: 1px solid #111; text-align: center; font-weight: 700; }.report-preview .report-table { width: 100%; border-collapse: collapse; }.report-preview .report-table th, .report-preview .report-table td { padding: 7px; border: 1px solid var(--line-strong); text-align: left; }.report-preview .report-table th { background: #1d3a5d; color: #fff; text-transform: uppercase; }.report-preview .report-signatures { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px,1fr)); gap: 20px; margin-top: 40px; }.report-preview .signature { text-align: center; }.report-preview .signature span { display: block; border-top: 1px solid #111; }.report-preview .signature strong, .report-preview .signature small { display: block; margin-top: 3px; }.report-preview .report-footer { margin-top: 16px; padding-top: 5px; border-top: 1px solid var(--line); text-align: center; }.placeholder-help { padding: 11px; border-radius: 10px; background: var(--surface-blue); color: var(--text-muted); font-size: .72rem; line-height: 1.5; }
.period-filter { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 11px 15px; }.period-filter strong { margin-right: 5px; color: var(--navy-950); font-size: .76rem; }.period-filter label { display: flex; align-items: center; gap: 7px; color: var(--text-muted); font-size: .7rem; font-weight: 750; }.period-filter input { min-height: 37px; padding: 0 9px; border: 1px solid var(--line); border-radius: 9px; color: var(--text); }
.context-box { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 13px; border-radius: 12px; background: var(--surface-blue); color: var(--text-muted); font-size: .78rem; }.context-box strong { color: var(--navy-950); }.context-box b { margin-left: auto; color: var(--blue-600); }
.signature-picker-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 2px; }
.signature-picker-grid .field { padding: 11px; border: 1px solid #e1e8f2; border-radius: 14px; background: #fff; }
.document-items { margin-top: 22px; padding: 15px; border: 1px solid var(--line); border-radius: 16px; background: #f9fbfe; }.repeat-heading small { display: block; margin-top: 3px; color: var(--text-muted); font-size: .7rem; }.document-item-row { display: grid; grid-template-columns: 1.2fr 1.7fr .58fr .8fr .8fr auto; align-items: end; gap: 9px; padding: 12px 0; border-top: 1px solid var(--line); }.document-item-row .field > span { font-size: .59rem; }.document-item-row .field input, .document-item-row .field select { min-height: 40px; padding-block: 7px; font-size: .75rem; }.remove-item { margin-bottom: 2px; }.document-grand-total { display: flex; align-items: center; justify-content: flex-end; gap: 16px; padding: 14px 4px 2px; color: var(--navy-950); }.document-grand-total span { font-size: .75rem; font-weight: 800; text-transform: uppercase; }.document-grand-total strong { font-size: 1.22rem; }.document-observation { margin-top: 16px; }
.dashboard-page { display: grid; gap: 18px; }.dashboard-hero { min-height: 230px; display: flex; align-items: center; justify-content: space-between; overflow: hidden; padding: 34px 40px; background: linear-gradient(122deg, #fff 0 61%, #e5f4ff 61%); }.dashboard-hero h2 { margin-bottom: 8px; font-size: 1.7rem; }.dashboard-hero p { max-width: 650px; margin-bottom: 20px; color: var(--text-muted); line-height: 1.55; }.hero-actions { display: flex; flex-wrap: wrap; gap: 9px; }.hero-symbol { width: 180px; height: 180px; display: grid; place-items: center; overflow: hidden; border-radius: 38px; background: var(--navy-950); box-shadow: 0 15px 35px rgba(2,21,73,.2); }.hero-brand-logo { width: 100%; height: 100%; display: block; object-fit: cover; }
.mobile-menu-groups { display: grid; gap: 12px; }.mobile-menu-home, .mobile-menu-group-card { border: 1px solid var(--line); border-radius: 15px 26px 15px 21px; background: linear-gradient(135deg, #fff, #f2f7ff); }.mobile-menu-home { min-height: 52px; display: flex; align-items: center; gap: 11px; padding: 0 15px; color: var(--navy-950); font-size: .8rem; font-weight: 850; }.mobile-menu-group-card { overflow: hidden; }.mobile-menu-group-card > header { display: flex; align-items: center; gap: 9px; padding: 13px 15px; background: linear-gradient(110deg, var(--navy-950), var(--blue-600)); color: #fff; font-size: .79rem; font-weight: 850; }.mobile-menu-group-card > nav { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1px; background: var(--line); }.mobile-menu-group-card > nav a { min-height: 54px; display: flex; align-items: center; gap: 9px; padding: 10px 12px; background: #fff; color: var(--text); font-size: .7rem; font-weight: 740; }.mobile-menu-group-card > nav a:hover { background: var(--surface-blue); color: var(--blue-600); }
.metrics-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }.metric-card { display: flex; align-items: center; gap: 14px; padding: 18px; }.metric-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px 14px 14px 5px; background: var(--surface-blue); color: var(--blue-600); }.metric-card strong, .metric-card span, .metric-card small { display: block; }.metric-card strong { color: var(--navy-950); font-size: 1.45rem; }.metric-card div > span { font-size: .75rem; font-weight: 800; }.metric-card small { margin-top: 3px; color: var(--text-muted); font-size: .65rem; }.metric-warning .metric-icon { background: #fff3df; color: var(--warning); }
.quick-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }.quick-card { display: flex; align-items: center; gap: 13px; padding: 18px; color: var(--text); transition: transform var(--ease), box-shadow var(--ease); }.quick-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }.quick-card > svg { color: var(--blue-600); }.quick-card strong, .quick-card small { display: block; }.quick-card strong { color: var(--navy-950); font-size: .78rem; }.quick-card small { margin-top: 4px; color: var(--text-muted); font-size: .65rem; line-height: 1.4; }
.about-page { max-width: 980px; margin: auto; overflow: hidden; }.about-brand { display: flex; align-items: center; gap: 24px; padding: 35px; background: linear-gradient(135deg, #fff, #edf7ff); }.about-brand img { width: 112px; height: 112px; border-radius: 28px; box-shadow: var(--shadow-md); }.about-brand h2 { margin-bottom: 7px; font-size: 1.8rem; }.about-brand p { max-width: 600px; margin: 0; color: var(--text-muted); line-height: 1.5; }.about-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--line); }.about-grid > div { display: flex; align-items: center; gap: 13px; padding: 20px; background: #fff; }.about-grid svg { color: var(--blue-600); }.about-grid small, .about-grid strong { display: block; }.about-grid small { color: var(--text-muted); font-size: .65rem; }.about-grid strong { margin-top: 3px; color: var(--navy-950); font-size: .78rem; }.about-page > footer { padding: 15px; border-top: 1px solid var(--line); color: var(--text-muted); font-size: .67rem; text-align: center; }

/* Global list pattern */
.list-surface { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 8px 24px rgba(2,21,73,.06); }
.btn-list-primary { min-height: 44px; padding: 0 18px; border-radius: 999px; background: var(--navy-950); color: #fff; box-shadow: 0 7px 18px rgba(2,21,73,.18); white-space: nowrap; }
.btn-list-primary:hover { background: #062366; box-shadow: 0 9px 22px rgba(2,21,73,.22); }
.list-toolbar { min-height: 70px; display: flex; align-items: center; gap: 10px; padding: 13px 14px; border-bottom: 1px solid var(--line); background: #fbfdff; }
.list-toolbar .search-box { flex: 1 1 340px; min-width: 260px; border-radius: 12px; background: #fff; }
.list-toolbar-actions { flex: 0 1 auto; flex-wrap: wrap; align-items: center; justify-content: flex-end; }
.btn-pill { min-height: 44px; padding: 0 18px; border-color: var(--line); border-radius: 999px; background: #fff; color: #18345e; font-size: .75rem; box-shadow: none; white-space: nowrap; }
.btn-pill:hover { border-color: #b7cbea; background: #f8fbff; }
.btn-text { min-height: 34px; padding: 0 9px; border: 0; border-radius: 9px; background: transparent; color: var(--blue-600); font-size: .72rem; }
.btn-text:hover { background: var(--surface-blue); transform: none; }
.list-options-form { display: grid; gap: 10px; }
.list-options-intro { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.list-options-intro strong, .list-options-intro small { display: block; }
.list-options-intro strong { color: var(--navy-950); font-size: .84rem; }
.list-options-intro small { margin-top: 3px; color: var(--text-muted); font-size: .67rem; }
.list-options-body { display: grid; gap: 10px; }
.list-option-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.list-option-group legend { width: 100%; margin-bottom: 8px; color: #56657c; font-size: .64rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.list-option-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 6px; }
.list-option-card { position: relative; min-height: 50px; display: flex; align-items: center; gap: 10px; padding: 8px 9px; border: 1px solid #dfe7f1; border-radius: 11px; background: #fff; cursor: pointer; transition: border var(--ease), background var(--ease), box-shadow var(--ease), transform var(--ease); }
.list-option-card:hover { border-color: #b9d2f2; background: #f9fcff; transform: translateY(-1px); }
.list-option-card:has(input:checked) { border-color: #85b9ff; background: #f2f8ff; box-shadow: 0 0 0 2px rgba(8,119,229,.07); }
.list-option-card input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.list-option-indicator { width: 18px; height: 18px; flex: 0 0 18px; display: grid; place-items: center; border: 2px solid #c8d4e3; border-radius: 50%; background: #fff; }
.list-option-card input:checked + .list-option-indicator { border: 5px solid var(--blue-600); }
.list-option-copy { min-width: 0; }
.list-option-copy strong, .list-option-copy small { display: block; }
.list-option-copy strong { color: #193250; font-size: .72rem; }
.list-option-copy small { margin-top: 3px; color: var(--text-muted); font-size: .61rem; line-height: 1.35; }
.list-date-card { display: grid; gap: 5px; padding: 8px; border: 1px solid #dfe7f1; border-radius: 13px; background: #fff; }
.list-date-card > span { color: #56657c; font-size: .64rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.list-date-card input { width: 100%; min-height: 42px; padding: 0 10px; border: 1px solid var(--line); border-radius: 10px; outline: 0; background: #fbfdff; color: var(--text); }
.list-date-card input:focus { border-color: var(--blue-600); box-shadow: 0 0 0 3px rgba(8,119,229,.08); }
.data-panel-embedded { overflow: hidden; border-radius: 0 0 18px 18px; }
.data-panel-embedded .data-table th { background: #f5f8fc; }
.data-table th { padding-top: 14px; padding-bottom: 14px; font-size: .59rem; }
.data-table td { padding-top: 15px; padding-bottom: 15px; color: #12213c; }
.row-actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 7px; }
.row-action { width: 38px; height: 38px; display: inline-grid; place-items: center; padding: 0; border: 1px solid #b9d3f7; border-radius: 50%; background: #eaf4ff; color: var(--navy-950); box-shadow: 0 0 0 5px rgba(8,119,229,.05); }
.row-action:hover { border-color: #79aff0; background: #ddecff; }
.row-action-danger { border-color: #fac7cc; background: #fff0f1; color: #ef3340; box-shadow: 0 0 0 5px rgba(239,51,64,.04); }
.row-action-danger:hover { border-color: #f59da5; background: #ffe5e7; }


/* Company-owned report logo */
.company-logo-field { display: grid; grid-template-columns: minmax(220px,.75fr) minmax(260px,1fr); gap: 16px 22px; align-items: center; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: #f8fbff; }
.company-logo-copy strong, .company-logo-copy small { display: block; }
.company-logo-copy strong { color: var(--navy-950); font-size: .88rem; }
.company-logo-copy small { margin-top: 6px; color: var(--text-muted); font-size: .72rem; line-height: 1.5; }
.company-logo-preview { min-height: 112px; display: grid; place-items: center; padding: 14px; border: 1px dashed #bdd0e8; border-radius: 14px; background: #fff; }
.company-logo-preview img { max-width: 260px; max-height: 96px; object-fit: contain; }
.logo-warning { width: 100%; padding: 12px 14px; border: 1px solid #f0d4a1; border-radius: 11px; background: #fff9e9; color: #805400; font-size: .73rem; line-height: 1.45; }
.company-logo-upload { grid-column: 1 / -1; }
.company-logo-upload small { color: var(--text-muted); font-size: .68rem; }

/* Final list visual alignment */
.list-surface .data-table tbody tr { transition: background var(--ease); }
.list-surface .cell-actions { padding-right: 20px; }
.list-surface .cell-check input { accent-color: var(--blue-600); }
.list-toolbar .search-box { height: 44px; }
.list-toolbar .search-box svg { width: 17px; height: 17px; }
.list-toolbar .search-box input::placeholder { color: #71819a; }


/* IBC linked return history */
.ibc-return-details { min-width: 175px; }
.ibc-return-details summary { display: inline-flex; align-items: center; gap: 7px; color: var(--blue-600); cursor: pointer; list-style: none; font-size: .7rem; font-weight: 800; }
.ibc-return-details summary::-webkit-details-marker { display: none; }
.ibc-return-details summary strong { color: var(--navy-950); font-size: .78rem; }
.ibc-return-details ul { min-width: 260px; display: grid; gap: 5px; margin: 8px 0 0; padding: 8px; border: 1px solid #dce6f2; border-radius: 11px; background: #f8fbff; list-style: none; }
.ibc-return-details li { display: grid; grid-template-columns: minmax(90px,1fr) auto auto; align-items: center; gap: 8px; padding: 5px 2px; }
.ibc-return-details li + li { border-top: 1px solid rgba(112,135,166,.13); }
.ibc-return-details li span strong, .ibc-return-details li span small { display: block; }
.ibc-return-details li span small { margin-top: 2px; color: var(--text-muted); font-size: .61rem; }
.ibc-return-details li > b { font-size: .7rem; }
.ibc-return-edit { display: inline-flex; align-items: center; gap: 4px; padding: 5px 7px; border: 0; border-radius: 8px; background: #edf6ff; color: var(--blue-600); font-size: .62rem; font-weight: 800; cursor: pointer; }
.ibc-return-zero { font-weight: 800; }.ibc-return-empty { display: block; margin-top: 2px; color: var(--text-muted); font-size: .61rem; }

/* SQLite data importer */
.data-import-page { max-width: 980px; margin-inline: auto; }
.import-card { padding: 24px; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 12px 34px rgba(28,57,100,.08); }
.import-card-heading { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.import-card-heading h2, .import-card h2 { margin: 0; color: var(--navy-950); font-size: 1.08rem; }
.import-card-heading p, .import-card > p { margin: 5px 0 0; color: var(--text-muted); font-size: .76rem; line-height: 1.5; }
.import-icon { width: 48px; height: 48px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 14px; background: var(--surface-blue); color: var(--blue-600); }
.import-destination { display: grid; gap: 3px; margin-bottom: 18px; padding: 15px 17px; border: 1px solid #c7daf4; border-left: 4px solid var(--blue-600); border-radius: 13px; background: #f4f9ff; }
.import-destination span { color: var(--text-muted); font-size: .62rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.import-destination strong { color: var(--navy-950); font-size: .9rem; }
.import-destination small { color: var(--text-muted); font-size: .67rem; }
.import-file-field { display: grid; gap: 8px; padding: 18px; border: 1px dashed #a9c4e6; border-radius: 15px; background: #fbfdff; }
.import-file-field > span { color: var(--navy-950); font-size: .75rem; font-weight: 800; }
.import-file-field input { width: 100%; min-height: 43px; padding: 8px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.import-file-field small { color: var(--text-muted); font-size: .66rem; }
.import-safety-note, .import-confirm-note { display: flex; gap: 11px; margin-top: 16px; padding: 14px 15px; border-radius: 13px; background: #f7f9fc; color: var(--text-muted); }
.import-safety-note svg { flex: 0 0 auto; color: var(--blue-600); }
.import-safety-note strong, .import-safety-note span, .import-confirm-note strong, .import-confirm-note span { display: block; }
.import-safety-note strong, .import-confirm-note strong { margin-bottom: 3px; color: var(--navy-950); font-size: .72rem; }
.import-safety-note span, .import-confirm-note span { font-size: .68rem; line-height: 1.5; }
.import-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; }
.import-actions .btn { display: inline-flex; align-items: center; gap: 7px; }
.import-actions-split { justify-content: space-between; }
.import-analyzing-card, .import-result-card { min-height: 300px; display: grid; place-items: center; align-content: center; text-align: center; }
.import-progress-symbol, .import-result-symbol { width: 64px; height: 64px; display: grid; place-items: center; margin-bottom: 14px; border-radius: 18px; background: var(--surface-blue); color: var(--blue-600); font-size: 1.6rem; font-weight: 900; }
.import-analyzing-card p, .import-result-card p { max-width: 600px; }
.import-section { margin-top: 19px; }
.import-section h3 { margin: 0 0 10px; color: #47566d; font-size: .69rem; letter-spacing: .04em; text-transform: uppercase; }
.import-metrics-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; }
.import-metric { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: #fbfdff; }
.import-metric span, .import-metric strong, .import-metric small { display: block; }
.import-metric span { min-height: 30px; color: var(--text-muted); font-size: .62rem; font-weight: 800; line-height: 1.35; }
.import-metric strong { margin-top: 5px; color: var(--navy-950); font-size: 1.22rem; }
.import-metric small { margin-top: 3px; color: var(--text-muted); font-size: .58rem; }
.import-valid-note { margin-top: 16px; padding: 12px 14px; border: 1px solid #bfe7cf; border-radius: 11px; background: #f1fbf5; color: #237044; font-size: .7rem; font-weight: 750; }
.import-invalid-block { margin-top: 16px; }
.import-invalid-block .alert { margin-bottom: 8px; }
.import-invalid-list { display: grid; gap: 6px; max-height: 190px; overflow: auto; }
.import-invalid-list > div { display: grid; gap: 2px; padding: 9px 11px; border: 1px solid #f2d7a8; border-radius: 10px; background: #fffaf0; }
.import-invalid-list span { color: #8b651f; font-size: .6rem; font-weight: 800; }
.import-invalid-list strong { color: #654815; font-size: .66rem; }
.import-result-metrics { width: min(650px, 100%); margin-top: 18px; grid-template-columns: repeat(3, minmax(0,1fr)); text-align: left; }

/* Non-disruptive success notifications */
#toast-root { position: fixed; z-index: 90; top: 82px; right: 22px; width: min(360px, calc(100vw - 32px)); pointer-events: none; }
.toast-notice { padding: 12px 15px; border: 1px solid #b8e4cc; border-radius: 13px; background: #edfff5; color: var(--success); box-shadow: 0 12px 30px rgba(2,21,73,.16); font-size: .79rem; font-weight: 750; line-height: 1.4; animation: toast-in .16s ease-out; }
@keyframes toast-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
.gas-observation-cell { min-width: 180px; max-width: 320px; white-space: normal; line-height: 1.4; }


/* Report header modes */
.report-header-modes { margin-top: 18px; }
.full-header-upload { display: grid; grid-template-columns: minmax(220px,.75fr) minmax(320px,1.25fr); gap: 16px 22px; align-items: center; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: #f8fbff; }
.full-header-upload > div:first-child strong, .full-header-upload > div:first-child small { display: block; }
.full-header-upload > div:first-child strong { color: var(--navy-950); font-size: .86rem; }
.full-header-upload > div:first-child small { margin-top: 6px; color: var(--text-muted); font-size: .7rem; line-height: 1.5; }
.full-header-image-preview { min-height: 94px; display: grid; place-items: center; padding: 10px; border: 1px dashed #bdd0e8; border-radius: 13px; background: #fff; color: var(--text-muted); font-size: .7rem; text-align: center; }
.full-header-image-preview img { width: 100%; max-height: 112px; object-fit: contain; }
.full-header-upload .field { grid-column: 1 / -1; }
.header-preview-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; margin-top: 18px; }
.header-preview-option { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #f8fbff; }
.header-preview-label { padding: 13px 15px; border-bottom: 1px solid var(--line); background: #fff; }
.header-preview-label strong, .header-preview-label small { display: block; }
.header-preview-label strong { color: var(--navy-950); font-size: .8rem; }
.header-preview-label small { margin-top: 3px; color: var(--text-muted); font-size: .66rem; }
.header-preview-option .report-preview { padding: 12px; overflow: auto; }
.header-preview-option .report-preview .report-sheet { min-width: 590px; }
.report-preview .report-full-header { margin-bottom: 8px; padding: 0; background: #fff; }
.report-preview .report-full-header img { display: block; width: 100%; max-height: 112px; object-fit: contain; object-position: left center; }
.report-preview .report-full-title { margin: 8px 0 10px; color: #111; font-size: 13px; font-weight: 800; text-align: center; text-transform: uppercase; }
.header-mode-assignment { margin-top: 18px; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.header-mode-assignment .repeat-heading { margin-bottom: 10px; }
.header-mode-row { display: grid; grid-template-columns: minmax(180px,1fr) minmax(220px,320px); gap: 14px; align-items: center; padding: 10px 0; }
.header-mode-row + .header-mode-row { border-top: 1px solid var(--line); }
.header-mode-row > span { color: var(--navy-950); font-size: .74rem; font-weight: 800; }
.header-mode-row select { width: 100%; min-height: 42px; padding: 0 12px; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--text); }

/* Empresa e Relatórios — configuração simplificada */
.company-reports-page { max-width: 1180px; margin-inline: auto; }
.company-reports-form { display: grid; gap: 18px; }
.settings-section { padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.settings-section > .repeat-heading strong, .settings-section > .repeat-heading small { display: block; }
.settings-section > .repeat-heading small { margin-top: 4px; color: var(--text-muted); font-size: .68rem; }
.settings-details { margin-top: 14px; border-top: 1px solid var(--line); }
.settings-details summary { padding: 13px 2px 4px; color: var(--blue-600); cursor: pointer; font-size: .72rem; font-weight: 800; }
.settings-details-grid { margin-top: 10px; }
.simple-header-previews { margin-top: 0; }
.header-only-preview { min-height: 180px; display: grid; align-content: start; }
.header-only-preview .report-header { min-width: 570px; margin: 0; }
.header-only-preview .report-full-header { min-width: 570px; margin: 0; }
.header-only-preview .report-company-name { flex: 1; display: grid; place-items: center; padding: 7px; border-bottom: 1px solid #111; font-size: 14px; font-weight: 850; text-align: center; }
.header-only-preview .report-auto-title { padding: 6px; border-bottom: 1px solid #111; font-size: 11px; font-weight: 800; text-align: center; text-transform: uppercase; }
.header-only-preview .report-auto-meta { display: flex; justify-content: center; flex-wrap: wrap; gap: 4px 12px; padding: 5px; font-size: 8px; font-weight: 700; }
.header-image-control { display: grid; gap: 10px; padding: 14px; border-top: 1px solid var(--line); background: #fff; }
.header-image-control .company-logo-preview { min-height: 58px; max-height: 92px; }
.header-image-control .company-logo-preview img { max-height: 72px; }
.full-header-empty { min-width: 570px; min-height: 112px; display: grid; place-items: center; align-content: center; gap: 4px; padding: 18px; border: 1px dashed #b9cbe1; border-radius: 10px; background: #fff; color: var(--text-muted); text-align: center; }
.full-header-empty strong { color: var(--navy-950); font-size: .78rem; }
.full-header-empty small { font-size: .65rem; }
.company-reports-page .header-mode-assignment { margin-top: 0; }
.company-reports-page .materials-output-config { margin-top: 0; }
.company-reports-save { justify-content: flex-end; margin-top: 0; padding-top: 2px; }
