@import "https://fonts.googleapis.com/css2?family=Fira+Sans:wght@400;500;600;700&family=Inter:wght@400;500;600&display=swap";:root{--primary:#005a49;--primary-hover:#004235;--secondary:#1eb78f;--bg-color:#f8fafc;--surface:#fff;--text-main:#0f172a;--text-muted:#64748b;--border:#e2e8f0;--error:#ef4444;--error-bg:#fef2f2;--success:#10b981;--success-bg:#ecfdf5;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--radius:12px}body{background-color:var(--bg-color);color:var(--text-main);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overflow-x:hidden}html,#root{width:100%;max-width:100%;overflow-x:hidden}h1,h2,h3,h4,h5,h6{margin:0;font-family:Fira Sans,sans-serif}*{box-sizing:border-box}.gradient-text{background:linear-gradient(135deg, var(--primary), var(--secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text}.app-container{flex-direction:column;width:100%;min-width:0;max-width:100%;min-height:100vh;display:flex;overflow-x:hidden}.main-content{flex:1;justify-content:center;align-items:flex-start;width:100%;min-width:0;max-width:100%;padding:2.5rem 1rem 3.5rem;display:flex;overflow-x:hidden}.container{width:min(100%,1500px);min-width:0;max-width:100%;margin:0 auto}button,input{font:inherit}@media (width<=700px){.main-content{padding:1rem .75rem 2rem}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.4s ease-out forwards fadeIn}.app-header{background-color:var(--surface);border-bottom:1px solid var(--border);width:100%;min-width:0;max-width:100%;padding:1.2rem 2rem;overflow-x:hidden;box-shadow:0 1px 4px #0f172a0f}.header-container{grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;width:100%;min-width:0;max-width:1500px;margin:0 auto;display:grid}.template-download-container{flex-wrap:wrap;justify-content:flex-start;gap:.5rem;display:flex}.template-download{border:1px solid var(--primary);color:var(--primary);background:var(--surface);white-space:nowrap;cursor:pointer;border-radius:.5rem;align-items:center;gap:.55rem;min-height:46px;padding:.7rem 1rem;font-family:inherit;font-size:.82rem;font-weight:600;text-decoration:none;transition:background-color .2s,color .2s;display:inline-flex}.template-download:hover:not(:disabled){background:var(--primary);color:#fff}.template-download:focus-visible{outline-offset:3px;outline:3px solid #005a4940}.template-download:disabled{opacity:.65;cursor:wait}.header-spinner{animation:.8s linear infinite header-spin}.brand-container{justify-content:center;align-items:center;gap:1.5rem;display:flex}.logo-container{justify-content:center;align-items:center;display:flex}.logo{object-fit:contain;image-rendering:auto;width:auto;height:62px}.header-text{flex-direction:column;display:flex}.company-name{color:var(--primary);margin-bottom:.25rem;font-size:1.5rem;font-weight:700}.tagline{color:var(--text-muted);margin:0;font-size:.875rem;font-weight:500}@media (width<=600px){.app-header{padding:1rem}.header-container{text-align:center;flex-direction:column;gap:1rem;display:flex}.brand-container{flex-direction:row;gap:.75rem}.header-spacer{display:none}.tagline{font-size:.8rem}.company-name{font-size:1.15rem}.logo{height:50px}.template-download,.template-download-container{justify-content:center;width:100%}}@keyframes header-spin{to{transform:rotate(360deg)}}.app-footer{background-color:var(--surface);border-top:1px solid var(--border);text-align:center;width:100%;min-width:0;max-width:100%;margin-top:auto;padding:1.5rem;overflow-x:hidden}.footer-container{width:100%;max-width:1200px;margin:0 auto}.app-footer p{color:var(--text-muted);margin:0;font-size:.875rem;line-height:1.5}.internal-warning{font-weight:500;color:var(--error)!important;margin-top:.25rem!important}.results-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-width:0;max-width:1400px;box-shadow:var(--shadow-lg);margin:2rem auto 0;scroll-margin-top:1rem;overflow:hidden}.results-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;min-width:0;padding:1.5rem;display:flex}.results-heading h2{color:var(--primary);margin-bottom:.25rem;font-size:1.4rem}.results-heading p{color:var(--text-muted);margin:0;font-size:.9rem}.results-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.row-count,.tab-count{color:var(--primary);white-space:nowrap;background:#ecfdf5;border-radius:999px;padding:.3rem .6rem;font-size:.75rem;font-weight:700}.download-report-btn{color:#fff;background:var(--primary);font:inherit;white-space:nowrap;cursor:pointer;border:0;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1rem;font-size:.85rem;font-weight:700;transition:background-color .2s,opacity .2s;display:inline-flex}.download-report-btn:hover:not(:disabled){background:var(--secondary)}.download-report-btn:disabled{opacity:.65;cursor:wait}.transaction-tabs{border-bottom:1px solid var(--border);overscroll-behavior-x:contain;scrollbar-gutter:stable;gap:.4rem;width:100%;min-width:0;max-width:100%;padding:.8rem 1rem 0;display:flex;overflow-x:auto}.transaction-tab{color:var(--text-muted);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;align-items:center;gap:.55rem;padding:.75rem .9rem;font-size:.85rem;font-weight:600;display:inline-flex}.transaction-tab:hover{color:var(--primary);background:#f8fafc}.transaction-tab.active{color:var(--primary);border-bottom-color:var(--secondary)}.table-toolbar,.table-pagination{min-height:52px;color:var(--text-muted);background:#f8fafc;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 1rem;font-size:.78rem;display:flex}.table-toolbar{border-bottom:1px solid var(--border)}.table-toolbar label{white-space:nowrap;align-items:center;gap:.5rem;display:flex}.table-toolbar select{min-height:34px;color:var(--text-main);font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.25rem 1.8rem .25rem .55rem}.table-render-area{min-height:120px;position:relative}.table-render-area.pending .transaction-table-scroll{opacity:.55}.table-loading{z-index:4;color:var(--primary);background:#ffffffbf;justify-content:center;align-items:center;gap:.5rem;font-size:.82rem;font-weight:700;display:flex;position:absolute;inset:0}.table-spinner{width:18px;height:18px;animation:.8s linear infinite table-spin}.transaction-table-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;contain:layout paint;width:100%;min-width:0;max-width:100%;max-height:520px;display:block;overflow:auto}.transaction-table{border-collapse:separate;border-spacing:0;width:100%;min-width:max-content;max-width:none;margin:0;font-size:.8rem}.transaction-table th,.transaction-table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-align:left;max-width:none;padding:.7rem .8rem}.transaction-table th{z-index:2;color:#fff;background:var(--primary);white-space:pre-line;font-weight:600;position:sticky;top:0}.transaction-table td{white-space:nowrap}.transaction-table tbody tr:nth-child(2n){background:#f8fafc}.transaction-table tbody tr:hover{background:#ecfdf5}.transaction-table .numeric-cell{text-align:right}.transaction-table .long-text-cell{text-overflow:clip;overflow:visible}.no-transactions{color:var(--text-muted);text-align:center;padding:3rem 1.5rem;font-weight:500}.table-pagination{border-top:1px solid var(--border)}.table-pagination button{min-height:36px;color:var(--primary);cursor:pointer;font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:6px;align-items:center;gap:.3rem;padding:.4rem .7rem;font-weight:700;display:inline-flex}.table-pagination button:hover:not(:disabled){border-color:var(--primary);background:#f0f9f6}.table-pagination button:disabled{color:#94a3b8;cursor:not-allowed;background:#f1f5f9}@keyframes table-spin{to{transform:rotate(360deg)}}@media (width<=700px){.results-heading{flex-direction:column;align-items:flex-start}.results-actions{justify-content:space-between;width:100%}.transaction-table-scroll{max-height:440px}.transaction-table th,.transaction-table td{min-width:120px}.table-toolbar{flex-direction:column;align-items:flex-start}.table-pagination{flex-wrap:wrap}}.upload-card{border:1px solid var(--border);background:var(--surface);border-radius:16px;width:min(100%,720px);margin:0 auto;padding:2.5rem;box-shadow:0 18px 45px #0f172a17}.upload-header{text-align:center;margin-bottom:2rem}.upload-header h2{color:var(--primary);font-size:clamp(1.65rem,4vw,2rem)}.upload-header>p:last-child{color:var(--text-muted);margin:.55rem 0 0;line-height:1.55}.eyebrow{color:#477066;letter-spacing:.11em;text-transform:uppercase;margin:0 0 .45rem;font-size:.72rem;font-weight:700}.reset-action-row{justify-content:center;margin-top:.85rem;display:flex}.reset-application-button{color:#526579;cursor:pointer;min-height:36px;font:inherit;background:0 0;border:1px solid #cbd5e1;border-radius:7px;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.78rem;font-weight:600;display:inline-flex}.reset-application-button:hover:not(:disabled){color:#c0392b;background:#fff5f4;border-color:#e05252}.reset-application-button:focus-visible{outline-offset:2px;outline:3px solid #005a4940}.reset-application-button:disabled{opacity:.5;cursor:not-allowed}.restore-panel{color:#1e5f9d;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;margin:-1rem 0 1.25rem;padding:.8rem;font-size:.8rem;font-weight:700;display:flex}.form-group{flex-direction:column;margin-bottom:1.45rem;display:flex}.form-group label{color:var(--text-main);margin-bottom:.55rem;font-size:.92rem;font-weight:700}.form-group label span{color:var(--error)}.helper-text{color:var(--text-muted);margin:-.25rem 0 .75rem;font-size:.82rem;line-height:1.45}.client-name-input{width:100%;min-height:50px;color:var(--text-main);font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:9px;outline:none;padding:.75rem .95rem;transition:border-color .15s,box-shadow .15s}.client-name-input::placeholder{color:#7b8797;opacity:1}.client-name-input:hover:not(:disabled){border-color:#94a3b8}.client-name-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #005a4924}.client-name-input[aria-invalid=true]{border-color:var(--error)}.client-name-input:disabled{color:var(--text-muted);background:#f1f5f9}.dropzone{cursor:pointer;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:12px;outline:none;place-items:center;width:100%;min-width:0;min-height:190px;padding:1.5rem;transition:border-color .15s,background-color .15s,box-shadow .15s;display:grid;overflow:hidden}.dropzone:hover,.dropzone.dragging{border-color:var(--primary);background:#f0f9f6}.dropzone:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px #005a492e}.dropzone.invalid{border-color:var(--error);background:var(--error-bg)}.dropzone.disabled{cursor:wait;opacity:.75}.dropzone.has-file{cursor:default;background:#fff;border-style:solid;min-height:0;padding:0;display:block}.dropzone.has-file:hover{background:#fff;border-color:#cbd5e1}.dropzone.has-file.disabled{opacity:1;cursor:default}.dropzone input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.dropzone-empty{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:.65rem;display:flex}.dropzone-empty strong{color:var(--primary);font-size:.96rem}.dropzone-empty span:last-child{font-size:.8rem}.upload-icon{color:#75869b;background:#e8eef4;border-radius:50%;place-items:center;width:58px;height:58px;display:grid}.upload-icon svg{width:29px;height:29px}.selected-file-table-wrap{width:100%;max-width:100%;overflow-x:auto}.selected-file-table{border-collapse:collapse;table-layout:fixed;text-align:left;width:100%;min-width:590px}.selected-file-table th{border-bottom:1px solid var(--border);color:#526579;text-transform:uppercase;letter-spacing:.04em;background:#f8fafc;padding:.55rem .75rem;font-size:.7rem;font-weight:700}.selected-file-table td{color:var(--text-main);vertical-align:middle;padding:.7rem .75rem;font-size:.78rem}.selected-file-table th:first-child{width:50%}.selected-file-table th:nth-child(2){width:13%}.selected-file-table th:nth-child(3){width:17%}.selected-file-table th:last-child{width:20%}.selected-file-name-cell{align-items:center;gap:.65rem;min-width:0;display:flex}.file-type-icon{width:38px;height:38px;color:var(--primary);background:#e8f5f1;border-radius:8px;flex:0 0 38px;place-items:center;display:grid}.file-type-icon svg{width:20px;height:20px}.selected-file-copy{flex-direction:column;flex:1 1 0;gap:.15rem;width:0;min-width:0;display:flex;overflow:hidden}.selected-file-copy strong{max-width:100%;color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;display:block;overflow:hidden}.selected-file-copy span{max-width:100%;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.selected-file-size{white-space:nowrap;color:var(--text-muted)!important}.selected-file-status{color:#087454;white-space:nowrap;align-items:center;gap:.3rem;font-weight:700;display:inline-flex}.selected-file-status.validating{color:#2563a8}.selected-file-status.unsupported{color:#b42318}.file-validation-spinner{animation:.8s linear infinite spin}.selected-file-actions{text-align:right;white-space:nowrap}.selected-file-actions button{min-height:34px;color:var(--primary);cursor:pointer;font:inherit;text-underline-offset:3px;background:0 0;border:0;padding:.25rem .4rem;font-size:.74rem;font-weight:700;text-decoration:underline}.selected-file-actions button+button{color:#b42318;margin-left:.25rem}.selected-file-actions button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.add-more-files-button{border:1px solid var(--primary);min-height:34px;color:var(--primary);cursor:pointer;font:inherit;background:#fff;border-radius:6px;margin:.6rem .75rem .75rem;padding:.35rem .6rem;font-size:.74rem;font-weight:700}.add-more-files-button:hover{background:#f0f9f6}.add-more-files-button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.field-error{color:#b42318;align-items:flex-start;gap:.4rem;margin:.45rem 0 0;font-size:.8rem;line-height:1.4;display:flex}.field-error svg{flex:none;margin-top:.08rem}.submit-btn{color:#fff;background:var(--primary);cursor:pointer;width:100%;min-height:50px;font:inherit;border:0;border-radius:9px;justify-content:center;align-items:center;gap:.5rem;font-weight:700;transition:background-color .15s,box-shadow .15s,transform .1s;display:flex}.submit-btn:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 7px 16px #005a4938}.submit-btn:active:not(:disabled){transform:translateY(1px)}.submit-btn:focus-visible,.secondary-button:focus-visible{outline-offset:2px;outline:3px solid #005a494d}.submit-btn:disabled{color:#f8fafc;cursor:not-allowed;background:#9aa7b7}.process-panel,.error-panel,.success-panel{background:#f0f9f6;border:1px solid #bfd9d2;border-radius:10px;align-items:flex-start;gap:.8rem;margin:0 0 1rem;padding:1rem;display:flex}.process-panel>div,.error-panel>div,.success-panel>div{flex:1;min-width:0}.process-panel strong,.error-panel h3,.success-panel h3{color:var(--text-main);margin:0;font-family:inherit;font-size:.9rem}.process-panel p,.error-panel p,.success-panel p{color:var(--text-muted);margin:.3rem 0;font-size:.8rem;line-height:1.45}.process-panel progress{width:100%;height:6px;accent-color:var(--primary);grid-column:1/-1}.process-panel{grid-template-columns:auto 1fr;display:grid}.security-note,.error-panel span,.error-panel small{color:#526579;margin-top:.35rem;font-size:.75rem;line-height:1.45;display:block}.error-panel{color:#b42318;background:#fff5f4;border-color:#f1b7b2}.success-panel{color:#087454;background:#edf9f5;border-color:#9fd6c5}.panel-actions{flex-wrap:wrap;gap:.55rem;margin-top:.8rem;display:flex}.secondary-button{border:1px solid var(--primary);min-height:40px;color:var(--primary);cursor:pointer;font:inherit;background:#fff;border-radius:7px;align-items:center;gap:.4rem;padding:.55rem .75rem;font-size:.76rem;font-weight:700;display:inline-flex}.secondary-button:disabled{opacity:.6;cursor:wait}.spinner{width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=700px){.upload-card{border-radius:12px;padding:1.35rem}.reset-application-button{justify-content:center;width:100%}.panel-actions,.secondary-button{width:100%}.secondary-button{justify-content:center}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.global-toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:10px;width:min(380px,100vw - 48px);display:flex;position:fixed;top:112px;right:24px}.global-toast{color:#334155;pointer-events:auto;background:#fff;border:1px solid #cbd5e1;border-left-width:4px;border-radius:10px;align-items:flex-start;gap:10px;width:100%;padding:14px;animation:.2s ease-out global-toast-enter;display:flex;box-shadow:0 12px 28px #0f172a29}.global-toast.success{border-color:#8bcbb8 #8bcbb8 #8bcbb8 #087454}.global-toast.success>svg{color:#087454}.global-toast.error{border-color:#efb7b2 #efb7b2 #efb7b2 #b42318}.global-toast.error>svg{color:#b42318}.global-toast.warning{border-color:#f2ce83 #f2ce83 #f2ce83 #b26a00}.global-toast.warning>svg{color:#b26a00}.global-toast.info{border-color:#a8c9ed #a8c9ed #a8c9ed #2563a8}.global-toast.info>svg{color:#2563a8}.global-toast>svg{flex:none;width:20px;height:20px}.global-toast-copy{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.global-toast-copy strong{color:#172033;font-size:.84rem;line-height:1.35}.global-toast-copy span{color:#526579;font-size:.76rem;line-height:1.45}.global-toast button{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;padding:2px}.global-toast button:hover{color:#172033;background:#f1f5f9}.global-toast button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.global-toast.closing{animation:.2s ease-in forwards global-toast-exit}@keyframes global-toast-enter{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:translate(0)}}@keyframes global-toast-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(14px)}}@media (width<=600px){.global-toast-container{width:auto;top:190px;left:12px;right:12px}}@media (prefers-reduced-motion:reduce){.global-toast,.global-toast.closing{animation-duration:.01ms}}
