:root{--bg: #faf8f5;--surface: #ffffff;--surface-muted: #f5f2eb;--border: #eae4d9;--border-strong: #d8cfc0;--text: #162c46;--text-secondary: #475569;--text-muted: #64748b;--text-faint: #94a3b8;--brand: #ba1c24;--brand-hover: #9e151c;--accent: #ba1c24;--accent-soft: #fef2f2;--success: #059669;--success-text: #047857;--success-soft: #d1fae5;--success-tint: #ecfdf5;--danger: #ba1c24;--danger-text: #9e151c;--danger-soft: #fef2f2;--danger-tint: #fff1f2;--warning: #b45309;--warning-soft: #fef3c7;--warning-tint: #fffbeb;--neutral-soft: #e2e8f0;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(16, 24, 40, .04);--shadow-sm: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04);--shadow-md: 0 8px 24px rgba(16, 24, 40, .08);--shadow-lg: 0 20px 48px rgba(16, 24, 40, .16);--sidebar-width: 248px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5}h1,h2,h3,h4,p{margin:0}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 14px;z-index:40}.sidebar__brand{display:flex;align-items:center;gap:10px;padding:4px 10px 22px}.sidebar__brand-mark{width:38px;height:38px;border-radius:10px;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:17px;flex-shrink:0}.sidebar__brand-name{display:block;font-weight:700;font-size:15px;letter-spacing:-.01em;line-height:1.25}.sidebar__brand-sub{display:block;font-size:12px;line-height:1.3;color:var(--text-muted)}.sidebar__nav{display:flex;flex-direction:column;gap:2px}.sidebar__link{display:flex;align-items:center;gap:11px;width:100%;padding:10px 12px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;text-align:left;transition:background .15s ease,color .15s ease}.sidebar__link:hover{background:var(--surface-muted);color:var(--text)}.sidebar__link--active{background:var(--brand);color:#fff;font-weight:600}.sidebar__link--active:hover{background:var(--brand-hover);color:#fff}.sidebar__footer{margin-top:auto;padding:12px 12px 0;font-size:11.5px;line-height:1.45;color:var(--text-faint);border-top:1px solid var(--border)}.app-content{margin-left:var(--sidebar-width);min-height:100vh;display:flex;flex-direction:column}.page-header{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--border);padding:18px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}.page-header__title{font-size:22px;font-weight:700;letter-spacing:-.02em}.page-header__subtitle{font-size:14px;color:var(--text-muted);margin-top:2px}.page-body{flex:1;padding:28px 32px 48px;max-width:1440px;width:100%}.sidebar__toggle,.sidebar__scrim{display:none}@media (max-width: 900px){.sidebar{transform:translate(-100%);transition:transform .22s ease;box-shadow:var(--shadow-lg)}.sidebar--open{transform:translate(0)}.sidebar__scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;border:none;z-index:35}.app-content{margin-left:0}.sidebar__toggle{display:inline-grid;place-items:center;width:40px;height:40px;flex-shrink:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer}.page-header{padding:14px 18px}.page-body{padding:18px 18px 40px}.page-header__title{font-size:18px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs)}.card__header{padding:18px 20px 0;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.card__title{font-size:15.5px;font-weight:700;letter-spacing:-.01em}.card__subtitle{font-size:13px;color:var(--text-muted);margin-top:1px}.card__body{padding:18px 20px 20px}.card__footnote{padding:0 20px 18px;font-size:12.5px;color:var(--text-muted)}.metric-grid{display:grid;gap:16px;grid-template-columns:1fr;margin-bottom:20px}@media (min-width: 640px){.metric-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1180px){.metric-grid--4{grid-template-columns:repeat(4,1fr)}.metric-grid--3{grid-template-columns:repeat(3,1fr)}}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);padding:18px 20px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.metric-card__label{font-size:11.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.metric-card__value{font-size:27px;font-weight:700;letter-spacing:-.025em;margin-top:8px;font-variant-numeric:tabular-nums}.metric-card__hint{font-size:12.5px;color:var(--text-muted);margin-top:4px}.metric-card__icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;flex-shrink:0}.metric-card__icon--success{background:var(--success-tint);color:var(--success)}.metric-card__icon--danger{background:var(--danger-tint);color:var(--danger)}.metric-card__icon--warning{background:var(--warning-tint);color:var(--warning)}.metric-card__icon--accent{background:var(--accent-soft);color:var(--accent)}.value-positive{color:var(--success)}.value-negative{color:var(--danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:var(--radius-sm);padding:9px 15px;font-size:14px;font-weight:600;line-height:1.2;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-hover)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--surface-muted)}.btn-success{background:var(--surface);color:var(--success-text);border-color:var(--border-strong)}.btn-success:hover:not(:disabled){background:var(--success-tint);border-color:#a7f3d0}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-text)}.btn-sm{padding:6px 11px;font-size:13px}.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s ease,color .15s ease}.icon-btn:hover{background:var(--surface-muted);color:var(--text)}.icon-btn--danger:hover{background:var(--danger-tint);color:var(--danger)}.form-grid{display:grid;grid-template-columns:1fr;gap:15px}@media (min-width: 640px){.form-grid--2col{grid-template-columns:1fr 1fr}}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label,.field-label{font-size:13px;font-weight:600;color:var(--text-secondary)}.field input,.field select,.field textarea{width:100%;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:9px 11px;background:var(--surface);font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}.field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;padding-right:30px}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #3b82f624}.field input[aria-invalid=true],.field select[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);font-size:12.5px;font-weight:500}.field-hint{font-size:12.5px;color:var(--text-muted)}.field__header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.link-button{display:inline-flex;align-items:center;gap:3px;border:none;background:none;padding:0;font-size:12.5px;font-weight:600;color:var(--accent);cursor:pointer}.link-button:hover:not(:disabled){text-decoration:underline}.link-button:disabled{color:var(--text-faint);cursor:not-allowed}.inline-form{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-muted);padding:14px}.inline-form__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.due-alert{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;margin-bottom:20px;border:1px solid #bfdbfe;border-radius:var(--radius);background:var(--accent-soft);color:#1d4ed8}.due-alert--urgent{border-color:#fde68a;background:var(--warning-tint);color:var(--warning)}.due-alert__icon{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#ffffffb3;flex-shrink:0}.due-alert__content{flex:1;min-width:0}.due-alert__summary{font-size:13.5px;margin-top:2px;opacity:.9}.due-alert__actions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}@media (max-width: 760px){.due-alert{flex-wrap:wrap}.due-alert__actions{width:100%}}.recipients__form{display:flex;align-items:flex-end;gap:9px}.recipients__list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.recipients__item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted);font-size:14px}.recipients__item span{display:inline-flex;align-items:center;gap:7px;color:var(--text-secondary);word-break:break-all}.settings__send-actions{display:flex;gap:8px;flex-wrap:wrap}.settings__note{font-size:14px;color:var(--text-secondary);line-height:1.55}.settings__note+.settings__note{margin-top:10px}.checkbox-field{display:flex;align-items:flex-start;gap:9px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted)}.checkbox-field input{width:16px;height:16px;margin-top:2px;accent-color:var(--brand);flex-shrink:0}.checkbox-field label{font-size:14px;font-weight:500;cursor:pointer}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.filters .field{width:132px}@media (max-width: 640px){.filters{width:100%}.filters .field{flex:1 1 45%;width:auto}}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;min-width:860px}.data-table th{text-align:left;padding:10px 14px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap}.data-table td{padding:13px 14px;border-bottom:1px solid var(--border);font-size:14px;vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--surface-muted)}.data-table .align-right{text-align:right}.cell-primary{font-weight:600;color:var(--text)}.cell-sub{font-size:12.5px;color:var(--text-muted);margin-top:1px}.cell-category{color:var(--accent);font-weight:500}.cell-amount{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;white-space:nowrap}.badge--pago{background:var(--success-soft);color:var(--success-text)}.badge--pendente{background:var(--warning-soft);color:var(--warning)}.badge--atrasado{background:var(--danger-soft);color:var(--danger-text)}.badge--cancelado{background:var(--neutral-soft);color:var(--text-muted)}.class-badge{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:var(--radius-pill);font-size:11.5px;font-weight:700}.class-badge--a{background:var(--danger-soft);color:var(--danger-text)}.class-badge--b{background:var(--warning-soft);color:var(--warning)}.class-badge--c{background:var(--success-soft);color:var(--success-text)}.recurrence-tag{display:inline-flex;align-items:center;color:var(--text-faint);margin-left:6px;vertical-align:-2px}.charts-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:20px}@media (min-width: 1024px){.charts-grid{grid-template-columns:5fr 7fr}}.chart-box{position:relative;height:270px}.dre-table{width:100%;border-collapse:collapse}.dre-table td{padding:13px 16px;border-bottom:1px solid var(--border);font-size:14.5px}.dre-table td:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.dre-row--strong td{font-weight:700}.dre-row--deduction td:last-child{color:var(--danger)}.dre-row--subtotal td,.dre-row--result td{background:var(--surface-muted);font-weight:700;border-bottom:none}.upload-grid{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}@media (min-width: 1024px){.upload-grid{grid-template-columns:1fr 1fr}}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);padding:44px 24px;text-align:center;background:var(--surface);cursor:pointer;transition:border-color .15s ease,background .15s ease}.dropzone:hover,.dropzone--active{border-color:var(--accent);background:var(--accent-soft)}.dropzone__icon{color:var(--text-muted);margin-bottom:12px}.dropzone__title{font-size:15px;font-weight:600}.dropzone__hint{font-size:13px;color:var(--text-muted);margin-top:5px}.processing{display:flex;align-items:center;gap:11px;padding:16px 0;font-weight:500;color:var(--text-secondary)}.spinner{width:18px;height:18px;border:2.5px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.progress-track{height:6px;background:var(--neutral-soft);border-radius:var(--radius-pill);overflow:hidden;margin-top:12px}.progress-fill{height:100%;background:var(--accent);border-radius:var(--radius-pill);transition:width .2s ease}.alert{display:flex;gap:9px;padding:11px 13px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:500;margin-bottom:16px}.alert--warning{background:var(--warning-tint);color:var(--warning);border:1px solid #fde68a}.alert--danger{background:var(--danger-tint);color:var(--danger-text);border:1px solid #fecdd3}.alert--success{background:var(--success-tint);color:var(--success-text);border:1px solid #a7f3d0}.alert--info{background:var(--accent-soft);color:#1d4ed8;border:1px solid #bfdbfe}.duplicate-list{margin:7px 0 0;padding-left:18px;font-weight:400}.duplicate-list li{margin-bottom:3px}.duplicate-list__reason{opacity:.75}.duplicate-list__note{margin-top:7px;font-weight:400;opacity:.9}.destination{border:none;margin:0 0 18px;padding:0}.destination__options{display:grid;gap:10px;margin-top:9px;grid-template-columns:1fr}@media (min-width: 760px){.destination__options{grid-template-columns:repeat(3,1fr)}}.destination__option{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color .15s ease,background .15s ease}.destination__option:hover{background:var(--surface-muted)}.destination__option--active{border-color:var(--brand);background:var(--surface-muted)}.destination__option input{margin-top:3px;accent-color:var(--brand);flex-shrink:0}.destination__icon{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--surface-muted);color:var(--text-secondary);flex-shrink:0}.destination__option--active .destination__icon{background:var(--brand);color:#fff}.destination__label{display:block;font-size:14px;font-weight:600}.destination__description{display:block;font-size:12.5px;color:var(--text-muted);margin-top:2px}.extracted-list{display:flex;flex-direction:column;gap:1px}.extracted-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px}.extracted-row:last-child{border-bottom:none}.extracted-row__label{color:var(--text-muted);flex-shrink:0}.extracted-row__value{font-weight:600;text-align:right;word-break:break-word}.extracted-row__value--missing{font-weight:500;color:var(--text-faint);font-style:italic}.raw-text{margin-top:16px;border-top:1px solid var(--border);padding-top:14px}.raw-text summary{cursor:pointer;font-size:13.5px;font-weight:600;color:var(--text-secondary)}.raw-text summary:hover{color:var(--text)}.raw-text__content{margin:0;max-height:260px;overflow:auto;padding:12px;border-radius:var(--radius-sm);background:var(--surface-muted);border:1px solid var(--border);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.5;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word}.empty-state{text-align:center;padding:44px 20px;color:var(--text-muted)}.empty-state__icon{width:46px;height:46px;margin:0 auto 14px;border-radius:var(--radius);display:grid;place-items:center;background:var(--surface-muted);color:var(--text-faint)}.empty-state__title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:4px}.empty-state__description{font-size:13.5px;max-width:380px;margin:0 auto}.empty-state__actions{display:flex;gap:9px;justify-content:center;margin-top:18px;flex-wrap:wrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:flex-end;justify-content:center;z-index:60;padding:0}@media (min-width: 640px){.modal-overlay{align-items:center;padding:20px}}.modal{background:var(--surface);width:100%;max-width:680px;max-height:92vh;overflow-y:auto;border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-lg)}@media (min-width: 640px){.modal{border-radius:var(--radius-lg)}}.modal__header{position:sticky;top:0;background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px 14px;border-bottom:1px solid var(--border)}.modal__title{font-size:17px;font-weight:700;letter-spacing:-.01em}.modal__subtitle{font-size:13px;color:var(--text-muted);margin-top:1px}.modal__body{padding:20px 22px 22px}.modal__body p{font-size:14.5px;color:var(--text-secondary)}
