:root {
    --ink: #172033;
    --muted: #6b7890;
    --paper: #f3f6fb;
    --line: #dfe6f1;
    --green: #1976c9;
    --green-dark: #105a9e;
    --green-soft: #e5f1fb;
    --mint: #b9d9f4;
    --shadow: 0 10px 35px rgba(20, 72, 125, .08);
    --accent-rgb: 25, 118, 201;
    --balance-start: #124d82;
    --balance-copy: #d7eafa;
}

:root[data-theme="indigo"] { --green: #4f63d2; --green-dark: #3848a8; --green-soft: #eaedfc; --mint: #cbd2f7; --accent-rgb: 79, 99, 210; --balance-start: #303b8d; --balance-copy: #e1e5ff; }
:root[data-theme="violet"] { --green: #7b55c7; --green-dark: #5d3ba2; --green-soft: #f0eafb; --mint: #d8c8f2; --accent-rgb: 123, 85, 199; --balance-start: #4d327f; --balance-copy: #eadfff; }
:root[data-theme="magenta"] { --green: #bd3e83; --green-dark: #922a63; --green-soft: #fae8f2; --mint: #f0c3dc; --accent-rgb: 189, 62, 131; --balance-start: #7d2858; --balance-copy: #ffe0f0; }
:root[data-theme="red"] { --green: #c54b4b; --green-dark: #993535; --green-soft: #fbeaea; --mint: #f1c6c6; --accent-rgb: 197, 75, 75; --balance-start: #843232; --balance-copy: #ffe2e2; }
:root[data-theme="orange"] { --green: #cf6b32; --green-dark: #a34d20; --green-soft: #fbeee6; --mint: #f1ceb9; --accent-rgb: 207, 107, 50; --balance-start: #88451f; --balance-copy: #ffe8d9; }
:root[data-theme="amber"] { --green: #b98212; --green-dark: #8c610b; --green-soft: #fbf2dc; --mint: #ead59c; --accent-rgb: 185, 130, 18; --balance-start: #73500b; --balance-copy: #fff0c8; }
:root[data-theme="green"] { --green: #26835b; --green-dark: #176443; --green-soft: #e6f4ed; --mint: #bde1cf; --accent-rgb: 38, 131, 91; --balance-start: #19583d; --balance-copy: #d7f1e4; }
:root[data-theme="teal"] { --green: #16858a; --green-dark: #0d666a; --green-soft: #e3f4f4; --mint: #b5dedf; --accent-rgb: 22, 133, 138; --balance-start: #0e585c; --balance-copy: #d4f2f3; }
:root[data-theme="graphite"] { --green: #596778; --green-dark: #3e4956; --green-soft: #e9edf1; --mint: #cbd2da; --accent-rgb: 89, 103, 120; --balance-start: #39434f; --balance-copy: #e2e7ec; }

.brand-mark { box-shadow: 0 6px 16px rgba(var(--accent-rgb), .22); }
.button-primary { box-shadow: 0 7px 18px rgba(var(--accent-rgb), .18); }
.metric-card.balance-card { background: linear-gradient(135deg, var(--balance-start), var(--green)); }
.balance-card span, .balance-card small { color: var(--balance-copy); }
.auth-page { background: radial-gradient(circle at 10% 10%, #dcecf9 0, transparent 35%), radial-gradient(circle at 90% 90%, #d9e7f5 0, transparent 35%), var(--paper); }
.login-card { box-shadow: 0 25px 80px rgba(20, 72, 125, .14); }
.theme-picker { position: relative; }
.theme-toggle { width: 38px; height: 38px; padding: 0; border: 1px solid var(--line); border-radius: 10px; display: grid; place-items: center; background: var(--card); color: var(--green); cursor: pointer; transition: .2s ease; }
.theme-toggle:hover, .theme-toggle[aria-expanded="true"] { background: var(--green-soft); border-color: var(--mint); }
.theme-toggle svg { width: 20px; height: 20px; fill: currentColor; }
.theme-menu { position: absolute; z-index: 30; top: calc(100% + 10px); right: 0; width: 288px; padding: 17px; background: var(--card); border: 1px solid var(--line); border-radius: 15px; box-shadow: 0 16px 45px rgba(20, 40, 65, .18); }
.theme-menu[hidden] { display: none; }
.theme-menu p { margin: 0 0 13px; color: var(--ink); font-size: 13px; font-weight: 800; }
.theme-options { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px 8px; }
.theme-option { min-width: 0; padding: 0; border: 0; display: grid; justify-items: center; gap: 5px; background: transparent; color: var(--muted); cursor: pointer; }
.theme-option span { width: 30px; height: 30px; border: 3px solid var(--card); border-radius: 50%; background: var(--swatch); box-shadow: 0 0 0 1px var(--line); transition: .15s ease; }
.theme-option:hover span { transform: scale(1.1); }
.theme-option[aria-checked="true"] span { box-shadow: 0 0 0 2px var(--card), 0 0 0 4px var(--swatch); }
.theme-option small { max-width: 50px; overflow: hidden; text-overflow: ellipsis; font-size: 10px; }
.theme-option-blue { --swatch: #1976c9; }.theme-option-indigo { --swatch: #4f63d2; }.theme-option-violet { --swatch: #7b55c7; }.theme-option-magenta { --swatch: #bd3e83; }.theme-option-red { --swatch: #c54b4b; }.theme-option-orange { --swatch: #cf6b32; }.theme-option-amber { --swatch: #b98212; }.theme-option-green { --swatch: #26835b; }.theme-option-teal { --swatch: #16858a; }.theme-option-graphite { --swatch: #596778; }
.page { padding-top: 16px; }
.metric-grid { gap: 16px; margin-bottom: 16px; }
.content-grid { gap: 16px; }
.filter-card { margin-bottom: 16px; }
.flash { display: flex; align-items: center; justify-content: space-between; gap: 16px; transition: opacity .3s ease, transform .3s ease, margin .3s ease, padding .3s ease; }
.flash.is-hiding { opacity: 0; transform: translateY(-8px); margin-top: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0; }
.flash-controls { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.flash-countdown { min-width: 25px; height: 25px; padding: 0 6px; border-radius: 99px; display: grid; place-items: center; background: rgba(25, 118, 201, .1); color: var(--green); font-size: 12px; font-weight: 800; font-variant-numeric: tabular-nums; }
.flash-close { width: 28px; height: 28px; border: 0; border-radius: 8px; display: grid; place-items: center; background: transparent; color: currentColor; font-size: 21px; line-height: 1; cursor: pointer; }
.flash-close:hover { background: rgba(25, 118, 201, .1); }
.movement-link { font-weight: 400; }
.category-pill { background: var(--green-soft); color: var(--green-dark); }
.table-wrap { overflow: visible; }
.table-wrap table { table-layout: fixed; }
.table-wrap th:nth-child(1), .table-wrap td:nth-child(1) { width: 12%; padding-left: 16px; padding-right: 12px; white-space: nowrap; }
.table-wrap th:nth-child(2), .table-wrap td:nth-child(2) { width: 32%; }
.table-wrap th:nth-child(3), .table-wrap td:nth-child(3) { width: 20%; }
.table-wrap th:nth-child(4), .table-wrap td:nth-child(4) { width: 20%; }
.table-wrap th:nth-child(5), .table-wrap td:nth-child(5) { width: 12%; white-space: nowrap; }
.table-wrap th:nth-child(6), .table-wrap td:nth-child(6) { width: 4%; padding-left: 6px; padding-right: 10px; white-space: nowrap; }
.table-wrap td { white-space: normal; overflow-wrap: anywhere; }
.table-wrap td:nth-child(1), .table-wrap td:nth-child(5), .table-wrap td:nth-child(6) { overflow-wrap: normal; }
.table-wrap .row-action a { display: inline-block; font-size: 24px; line-height: 1; letter-spacing: 0; }
.table-wrap .category-pill { max-width: 100%; line-height: 1.35; }
.filter-title-actions { display: flex; align-items: center; gap: 10px; }
.summary-title { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.copy-summary-wrap { display: flex; align-items: center; gap: 8px; }
.copy-feedback { color: var(--green); font-size: 12px; font-weight: 700; min-width: 0; }
.copy-summary { width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 10px; background: var(--green-soft); color: var(--green); display: grid; place-items: center; font-size: 21px; cursor: pointer; transition: .2s ease; }
.copy-summary:hover { background: var(--green); color: #fff; transform: translateY(-1px); }
.copy-summary.is-copied { background: var(--green); color: #fff; }
.copy-summary.has-error { background: var(--red-soft); color: var(--red); }
.confirm-dialog { width: min(430px, calc(100% - 32px)); padding: 0; border: 0; border-radius: 20px; background: transparent; color: var(--ink); box-shadow: 0 24px 80px rgba(16, 42, 73, .28); }
.confirm-dialog::backdrop { background: rgba(16, 31, 50, .55); backdrop-filter: blur(3px); }
.confirm-dialog-card { padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: 20px; display: grid; grid-template-columns: 48px 1fr; gap: 16px; }
.confirm-dialog-icon { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: var(--red-soft); color: var(--red); font: 800 24px Manrope, sans-serif; }
.confirm-dialog-copy h2 { margin: 1px 0 7px; font: 800 21px Manrope, sans-serif; }
.confirm-dialog-copy p { margin: 0; color: var(--muted); font-size: 14px; }
.confirm-dialog-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 10px; margin-top: 8px; }
.confirm-delete { background: var(--red); color: #fff; border-color: var(--red); }
.confirm-delete:hover { filter: brightness(.92); }
.plintos-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 28px; }
.plintos-heading h1 { margin: 3px 0 20px; font: 800 28px Manrope, sans-serif; }
.plintos-content { margin: 0; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: #f7faff; color: var(--ink); font: 500 15px/1.7 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 760px) {
    .page { padding-top: 16px; }
    .filter-title { align-items: flex-start; gap: 12px; }
    .filter-title-actions { flex-direction: column-reverse; align-items: flex-end; }
    .filter-title-actions .button { min-height: 40px; padding: 8px 12px; }
    .table-wrap table, .table-wrap th, .table-wrap td { width: auto; }
}
