:root { color-scheme: light; font-family: system-ui, sans-serif; }
body { margin: 0; color: #1f2937; background: #f8fafc; }
main.page-content { display: block; width: 100vw; max-width: 100vw; box-sizing: border-box; margin: 4rem 0; padding: 0 1.5rem; }
h1 { margin-bottom: .5rem; }
.status { padding: 1rem; margin-top: 1rem; border-left: 4px solid #16a34a; background: #f0fdf4; }
.statement-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 1rem; margin-top: 1.5rem; }
.statement-filters label { display: grid; gap: .35rem; font-weight: 600; }
.statement-filters select, .statement-filters input { min-height: 2.25rem; padding: .35rem .5rem; border: 1px solid #94a3b8; border-radius: 4px; background: #fff; font: inherit; }
.statement-filters button { min-height: 2.25rem; padding: .35rem .9rem; border: 0; border-radius: 4px; color: #fff; background: #1976d2; font: inherit; font-weight: 600; cursor: pointer; }
.statement-filters a { padding-bottom: .5rem; color: #1976d2; }
.tag-manager { display: grid; gap: .45rem; min-width: 16rem; }
.tag-list { display: flex; flex-wrap: wrap; gap: .3rem; }
.tag-chip { padding: .25rem .45rem; border: 1px solid #93c5fd; border-radius: 999px; color: #1e3a8a; background: #eff6ff; font: inherit; cursor: pointer; }
.tag-add-form { display: flex; gap: .4rem; }
.tag-add-form input { min-width: 8rem; padding: .35rem .5rem; border: 1px solid #94a3b8; border-radius: 4px; font: inherit; }
.tag-add-form button { padding: .35rem .6rem; border: 0; border-radius: 4px; color: #fff; background: #1976d2; font: inherit; cursor: pointer; }
.tag-manager.is-saving { opacity: .55; pointer-events: none; }
.upload-form { display: grid; gap: 1rem; max-width: 32rem; padding: 1.5rem; background: #fff; border: 1px solid #e2e8f0; border-radius: 4px; box-shadow: 0 2px 8px rgb(15 23 42 / 8%); }
.upload-form label { font-weight: 600; }
.upload-form input[type="file"] { padding: .75rem; border: 1px solid #94a3b8; border-radius: 4px; background: #fff; }
.upload-form button { width: fit-content; padding: .65rem 1rem; border: 0; border-radius: 4px; color: #fff; background: #1976d2; font: inherit; font-weight: 600; cursor: pointer; }
.summary-section { margin-top: 2rem; }
.summary-section h2 { margin-bottom: .75rem; }
.summary-table-wrapper { width: 100%; overflow-x: auto; background: #fff; border: 1px solid #e2e8f0; }
.summary-table { width: 100%; border-collapse: collapse; min-width: 38rem; }
.summary-table th, .summary-table td { padding: .75rem 1rem; border-bottom: 1px solid #e2e8f0; text-align: right; white-space: nowrap; }
.summary-table th:first-child, .summary-table td:first-child { text-align: left; }
.summary-table th { background: #f1f5f9; font-size: .875rem; }
.statement-total-row th { background: #e2e8f0; font-weight: 700; }
.counterparty { font-weight: 600; }
.transaction-description { margin-top: .2rem; color: #64748b; font-size: .8rem; white-space: normal; }