:root{--primary:#2463eb;--primary-soft:#edf3ff;--positive:#12805a;--negative:#d14550;--text:#222d3e;--muted:#68778d;--line:#e5eaf1;--bg:#f5f7fa;--white:#fff;--sidebar:222px}
*{box-sizing:border-box;letter-spacing:0}body{margin:0;font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.5;color:var(--text);background:var(--bg)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{line-height:1.4}button:disabled{cursor:wait;opacity:.7}input,select,textarea{width:100%;min-width:0;color:var(--text);background:white;border:1px solid #d8e0eb;border-radius:6px;padding:9px 11px;min-height:40px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2463eb16}input[type=checkbox],input[type=radio]{width:16px;height:16px;min-height:0;accent-color:var(--primary);flex-shrink:0}input[type=date]{min-width:0}input::placeholder,textarea::placeholder{color:#93a0b1}label,.field-label{display:block;font-size:12px;font-weight:600;color:#4d5c71}label>input,label>select,label>textarea{margin-top:6px}label>input[type=checkbox]{margin:0}h1,h2,h3,p{margin:0}h1{font-size:28px;line-height:1.3;font-weight:700}h2{font-size:16px;font-weight:650}h3{font-size:14px;font-weight:600}small{display:block;font-size:12px;color:var(--muted)}.muted{color:var(--muted);font-size:12px}.positive{color:var(--positive)}.negative{color:var(--negative)}.align-right{text-align:right}.nowrap,.amount{white-space:nowrap}.amount{font-variant-numeric:tabular-nums;font-weight:600}.full-width{width:100%}.full-span{grid-column:1/-1}[hidden]{display:none!important}.skip-link{position:fixed;left:12px;top:-80px;z-index:30;padding:12px;background:white}.skip-link:focus{top:10px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #76a0ff;outline-offset:3px}
.sidebar{width:var(--sidebar);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;background:white;border-right:1px solid var(--line);padding:28px 16px 16px;z-index:20}.brand{display:flex;align-items:center;gap:9px;padding:0 9px;line-height:1.15}.brand-mark{font-size:37px;font-weight:800;color:#22324a;line-height:1;white-space:nowrap}.brand-mark span{color:var(--primary)}.brand>span:last-child{font-size:12px;font-weight:600;color:#5c6a7e;max-width:100px}.company-label{font-size:12px;font-weight:600;margin:28px 10px 25px;padding-top:18px;border-top:1px solid var(--line);overflow-wrap:anywhere}.nav-heading{font-size:10px;color:#96a0af;font-weight:600;margin:0 12px 10px}.nav-item{display:flex;gap:13px;align-items:center;padding:11px 13px;border-radius:6px;font-size:13px;color:#64728a;margin:3px 0}.nav-item i{font-size:17px}.nav-item:hover{background:#f6f8fb;color:#253858}.nav-item.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.sidebar-bottom{margin-top:auto;display:flex;gap:10px;align-items:center;padding-top:20px;border-top:1px solid var(--line)}.avatar{display:grid;place-items:center;background:#e9eff9;color:#4065a0;border-radius:50%;width:33px;height:33px;flex-shrink:0;font-weight:700}.user-name{min-width:0;overflow-wrap:anywhere;font-size:12px;font-weight:600;flex:1}.user-name small{font-size:10px;font-weight:400}.workspace{margin-left:var(--sidebar);min-width:0}.topbar{height:62px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;color:#8390a2;font-size:12px}.topbar strong{font-weight:500;color:#4c5d75}.breadcrumb-separator{margin:0 12px;color:#c0c9d6}.today{display:flex;gap:8px;align-items:center;font-variant-numeric:tabular-nums}.mobile-menu{display:none!important}main#main{max-width:1740px;margin:auto;padding:30px 32px 0}.page-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:26px}.eyebrow{font-size:10px;font-weight:600;color:#93a0b1;margin-bottom:5px}.period-caption{color:var(--muted);font-size:12px;margin-top:7px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border:1px solid #dce3ed;border-radius:6px;padding:9px 14px;background:white;font-size:12px;font-weight:600;color:#506077;flex-shrink:0}.button:hover{background:#f5f7fb;border-color:#c5d2e5}.button.primary{background:var(--primary);border-color:var(--primary);color:white;box-shadow:0 2px 4px #2463eb14}.button.primary:hover{background:#1c50cc}.button.danger{background:var(--negative);border-color:var(--negative);color:white}.button i{font-size:14px}.text-button{border-color:transparent;background:transparent}.icon-button{width:32px;height:32px;min-width:32px;display:inline-grid;place-items:center;border:0;border-radius:5px;background:transparent;color:#8090a5;font-size:15px;padding:0}.icon-button:hover{background:#edf2fa;color:var(--primary)}.delete-button:hover{color:var(--negative);background:#fff0f0}.notice{display:flex;align-items:center;gap:9px;padding:13px 16px;background:#edf9f4;border:1px solid #cce7dc;color:#167450;border-radius:6px;margin-bottom:20px;font-size:13px}.notice.error{color:#ab3443;background:#fff2f3;border-color:#f1d2d5}
.filter-bar{background:white;border:1px solid var(--line);border-radius:8px;margin-bottom:24px}.filter-primary{display:grid;grid-template-columns:1.05fr .9fr .9fr 1.1fr 1.2fr;gap:14px;padding:18px 20px 14px}.category-filter{min-width:0}.category-picker{position:relative;margin-top:6px}.category-picker>summary{list-style:none;border:1px solid #d8e0eb;border-radius:6px;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:6px;padding:9px 11px;color:var(--text);font-size:14px;white-space:nowrap}.category-picker>summary::-webkit-details-marker{display:none}.category-picker>summary i{font-size:10px}.category-options{position:absolute;top:calc(100% + 8px);right:0;min-width:275px;max-width:calc(100vw - 44px);max-height:330px;overflow:auto;background:white;box-shadow:0 12px 32px #1d2d4d22;border:1px solid var(--line);border-radius:6px;padding:8px;z-index:10}.checkbox-label{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:400;color:var(--text)}.category-options .checkbox-label{padding:8px;border-radius:4px}.category-options .checkbox-label:hover{background:var(--bg)}.checkbox-label small{font-size:10px}.advanced-filters{padding:0 20px}.advanced-filters>summary{list-style:none;display:flex;gap:7px;align-items:center;font-size:12px;color:#6a7c95;padding:2px 0 12px;width:max-content}.advanced-filters[open]>summary{color:var(--primary)}.filter-advanced-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:14px;padding-bottom:18px}.filter-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;background:#fafbfd;border-top:1px solid #edf0f5;padding:10px 20px;border-radius:0 0 8px 8px}.filter-selection{margin-right:auto;color:#8591a3;font-size:11px;display:flex;gap:7px;align-items:center}.filter-actions .button{padding:7px 12px;min-height:33px;font-size:11px}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:30px}.kpi{background:white;border:1px solid var(--line);border-radius:8px;padding:18px 20px;min-width:0;box-shadow:0 2px 3px #24375a03}.kpi-label{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px;color:#6c7a90}.kpi-icon{display:grid;place-items:center;border-radius:6px;width:30px;height:30px;background:#f2f5f9;color:#6881a6;font-size:16px}.kpi.income .kpi-icon{background:#eaf7f0;color:var(--positive)}.kpi.expense .kpi-icon{background:#fff0f1;color:var(--negative)}.kpi.balance .kpi-icon{background:#eaf0fe;color:var(--primary)}.kpi>strong{display:block;font-size:25px;line-height:1.4;margin:9px 0 8px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.kpi.income>strong{color:var(--positive)}.kpi.expense>strong{color:var(--negative)}.kpi-caption{display:block;font-size:10px;color:#8d99aa}.kpi.balance{background:#2463eb;border-color:#2463eb;color:white}.kpi.balance .kpi-label,.kpi.balance .kpi-caption{color:#dbe7ff}.kpi.balance .kpi-icon{background:#ffffff24;color:white}.section-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;min-height:24px}.section-header>div>span{display:block;font-size:11px;color:#8a97aa;margin-top:3px}.text-link{display:inline-flex;gap:7px;align-items:center;font-size:12px;color:var(--primary);font-weight:500}.text-link:hover{text-decoration:underline}.chart-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);background:white;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:28px}.chart-panel{padding:21px 23px;min-width:0}.chart-panel:first-child{border-right:1px solid var(--line)}.chart-panel.wide{grid-column:1/-1;border-top:1px solid var(--line)}.chart-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px;flex-wrap:wrap}.legend{display:flex;align-items:center;gap:6px;color:#8693a5;font-size:10px;white-space:nowrap}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-left:8px}.dot:first-child{margin-left:0}.green{background:#25a77c}.red{background:#e06b76}.blue{background:#4b7fea}.chart-area{height:248px;position:relative;min-width:0}.doughnut-area{height:248px}.evolution-area{height:190px}.chart-area canvas{width:100%!important;height:100%!important}.chart-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#ffffffdd;color:#9ba7b6;font-size:12px}.chart-empty i{font-size:26px;color:#c4cedb}.dashboard-bottom{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-bottom:24px}.data-section{min-width:0}.data-section>.section-header{margin-bottom:12px}.section-total{font-size:13px;font-weight:600;color:#53647c}.section-bottom-link{display:flex;justify-content:center;gap:8px;font-size:11px;color:var(--primary);padding:13px;background:white;border-bottom:1px solid var(--line)}.table-scroll{width:100%;overflow-x:auto;background:white;border:1px solid var(--line);border-radius:7px}table{border-collapse:collapse;width:100%;font-size:12px}th{color:#8190a4;text-align:left;font-size:10px;font-weight:600;background:#fafbfd;padding:13px 16px;border-bottom:1px solid var(--line);white-space:nowrap}th a{display:flex;align-items:center;gap:5px}th.align-right a{justify-content:flex-end}td{border-bottom:1px solid #edf0f4;padding:14px 16px;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcff}tfoot{background:#f8faff;font-weight:600}tfoot td{border-top:1px solid var(--line)}td small{font-size:10px;margin-top:3px}.entry-link{font-weight:500}.entry-link:hover,.category-link:hover{color:var(--primary)}.category-link{display:inline-flex;align-items:center;gap:8px}.category-link i{color:#a3aec0;font-size:10px}.description-cell{min-width:190px;max-width:320px;overflow-wrap:anywhere}.type-badge{display:inline-flex;gap:5px;align-items:center;border-radius:4px;font-size:10px;font-weight:500;white-space:nowrap;padding:4px 7px}.type-badge.income{color:var(--positive);background:#eaf7f1}.type-badge.expense{color:var(--negative);background:#fff0f2}.row-actions{display:flex;justify-content:flex-end;gap:3px}.row-actions form{display:flex}.row-actions .icon-button{width:27px;height:27px;min-width:27px;font-size:13px}.totals-strip{display:flex;gap:25px;align-items:center;flex-wrap:wrap;margin:0 0 22px;padding-bottom:18px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.totals-strip strong{margin-left:6px;font-variant-numeric:tabular-nums}.totals-strip>span:first-child strong{margin:0 4px 0 0;color:var(--text)}.pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;font-size:11px;color:#8290a5}.pagination>div{display:flex;gap:5px}.pagination .button{padding:6px 10px;min-height:32px;font-size:11px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:64px 20px;background:white;border:1px dashed #dce4ef;border-radius:7px;min-height:220px}.empty-state>i{font-size:30px;color:#b2bfd1}.empty-state h3{color:#53657e;font-size:14px}.empty-state p{font-size:12px;color:#8c99ab}.empty-state.compact{min-height:170px;padding:26px}.empty-state.compact h3{font-size:12px}.empty-state.compact>i{font-size:24px}.page-footer{display:flex;justify-content:space-between;gap:12px;padding:24px 0;margin-top:36px;border-top:1px solid var(--line);font-size:10px;color:#a0aabb}
.back-link{display:inline-flex;gap:7px;align-items:center;color:#788aa2;font-size:12px;margin:-8px 0 20px}.entry-form{max-width:830px}.form-section{background:white;border:1px solid var(--line);border-radius:8px;padding:24px;margin-bottom:20px}.form-section .section-header{margin-bottom:22px}.form-grid{display:grid;gap:20px}.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.type-segment{border:0;padding:0;margin:0 0 24px;display:flex;gap:10px}.type-segment legend{font-size:12px;font-weight:600;color:#4d5c71;margin-bottom:10px}.segment{display:flex;align-items:center;justify-content:center;gap:9px;padding:12px 16px;border:1px solid var(--line);border-radius:6px;flex:1;font-size:12px;color:#8794a7;cursor:pointer}.segment input{margin:0}.segment.income:has(:checked){color:var(--positive);border-color:#a0d6c1;background:#f0faf5}.segment.expense:has(:checked){color:var(--negative);border-color:#edb5bd;background:#fff5f6}.money-input{font-size:18px;font-weight:600;min-height:42px}.optional{font-size:10px;font-weight:400;color:#98a3b4;margin-left:4px}.form-meta,.field-note{font-size:11px;color:#92a0b2;margin-top:15px}.categories-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:26px;align-items:start}.category-form,.password-form{background:white;border:1px solid var(--line);border-radius:8px;padding:23px}.stack{display:flex;flex-direction:column;gap:19px}.category-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.search-field{display:flex;align-items:center;gap:7px;background:white;border:1px solid #d8e0eb;border-radius:6px;padding-left:12px;max-width:250px;flex:1;color:#92a1b6}.search-field input{border:0;background:transparent;margin:0;padding:9px;font-size:12px;min-height:36px}.category-name{font-weight:500}.status-label{display:inline-flex;gap:5px;align-items:center;font-size:10px;color:#9aa3b2}.status-label:before{content:'';width:5px;height:5px;border-radius:50%;background:#bcc5d2}.status-label.active-status{color:#628b7d}.status-label.active-status:before{background:#39a884}.report-tabs{display:flex;gap:26px;border-bottom:1px solid var(--line);margin:-4px 0 24px}.report-tabs>a{display:flex;align-items:center;gap:8px;padding:0 0 13px;font-size:12px;color:#8391a7;border-bottom:2px solid transparent}.report-tabs>a.selected{border-color:var(--primary);color:var(--primary);font-weight:600}.balance-band{display:flex;align-items:center;gap:30px;flex-wrap:wrap;background:#eef3fc;border:1px solid #e1e9f6;border-radius:6px;padding:14px 18px;margin-bottom:22px;font-size:11px;color:#72839b}.balance-band strong{color:#2f496e;font-size:13px;margin-left:10px}.settings-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:26px;align-items:start;max-width:1080px}.password-form h2{margin-bottom:6px}.confirm-dialog{border:1px solid var(--line);border-radius:8px;padding:26px;max-width:420px;width:calc(100% - 30px);box-shadow:0 20px 80px #15294c26}.confirm-dialog::backdrop{background:#16243d55}.dialog-symbol{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#fff0f2;color:var(--negative);font-size:20px;margin-bottom:16px}.confirm-dialog h2{margin-bottom:8px;font-size:19px}.confirm-dialog p{color:var(--muted);font-size:13px;overflow-wrap:anywhere}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}.guest-body{min-height:100vh;display:flex;flex-direction:column;align-items:center;background:#f5f7fa}.guest-brand{display:flex;align-items:center;gap:10px;padding:36px 0;color:#718198;font-size:12px}.guest-brand>span:last-child{max-width:90px;line-height:1.25}.auth-panel{background:white;border:1px solid var(--line);border-radius:8px;width:min(440px,calc(100% - 32px));padding:34px;margin:25px auto;box-shadow:0 10px 36px #25345005}.auth-panel h1{font-size:25px;margin:15px 0 7px}.auth-caption{color:#8b98ab;font-size:13px;margin-bottom:26px}.auth-icon{color:var(--primary);font-size:24px}.auth-panel .button{min-height:42px}.password-field{position:relative;margin-top:6px}.password-field input{padding-right:42px}.password-field button{position:absolute;right:5px;top:5px}.guest-footer{margin-top:auto;padding:25px;font-size:11px;color:#9aa7b8}.sidebar-overlay{display:none}
.users-layout .user-cell{min-width:130px;max-width:230px;overflow-wrap:anywhere}.users-layout .icon-button:disabled{cursor:not-allowed;opacity:.4}.users-layout .icon-button:disabled:hover{background:transparent;color:#8090a5}.recurrence-options{margin-top:20px}
@media(min-width:1600px){.kpi>strong{font-size:30px}.chart-area{height:285px}.evolution-area{height:210px}}
@media(max-width:1199px){:root{--sidebar:192px}.sidebar{padding-left:12px;padding-right:12px}.topbar{padding:0 22px}main#main{padding:26px 22px 0}.filter-primary{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-primary>label:last-of-type,.category-filter{grid-column:auto}.kpi-grid{gap:10px}.kpi{padding:14px}.kpi>strong{font-size:21px}.kpi-label{font-size:11px}.kpi-icon{width:25px;height:25px;font-size:13px}.categories-layout{grid-template-columns:minmax(0,1fr) 255px;gap:18px}.settings-layout{grid-template-columns:minmax(0,1fr) 290px;gap:18px}.chart-heading .legend{white-space:normal}.chart-panel{padding:18px}.dashboard-bottom{grid-template-columns:1fr;gap:24px}.description-cell{min-width:170px}}
@media(max-width:900px){:root{--sidebar:0px}.sidebar{width:230px;transform:translateX(-100%);transition:transform .2s}.menu-open .sidebar{transform:translateX(0)}.sidebar-overlay{position:fixed;inset:0;background:#1b2c4755;z-index:19}.menu-open .sidebar-overlay{display:block}.mobile-menu{display:inline-grid!important;margin-right:12px}.topbar{justify-content:flex-start}.today{margin-left:auto}.workspace{margin-left:0}.kpi>strong{font-size:24px}.categories-layout{grid-template-columns:minmax(0,1fr) 270px}.settings-layout{grid-template-columns:minmax(0,1fr) 300px}.report-tabs{gap:22px}}
@media(max-width:640px){body{font-size:13px}.topbar{height:55px;padding:0 15px}.topbar>span:not(.today){font-size:11px}.breadcrumb-separator{margin:0 6px}.today{font-size:10px;gap:5px}main#main{padding:22px 16px 0}.page-heading{margin-bottom:20px;align-items:flex-start;gap:10px}h1{font-size:23px}.page-heading>.button{font-size:10px;gap:5px;padding:8px 10px;min-height:34px}.page-heading>.button i{font-size:12px}.eyebrow{font-size:9px}.period-caption{font-size:10px}.filter-primary{grid-template-columns:repeat(2,minmax(0,1fr));padding:15px;gap:12px}.filter-primary>label:first-child{grid-column:1/-1}.category-picker>summary{font-size:12px}.category-options{min-width:260px;right:0}.advanced-filters{padding:0 15px}.filter-advanced-grid{grid-template-columns:1fr 1fr;gap:12px}.filter-advanced-grid>label:first-child{grid-column:1/-1}.filter-actions{padding:10px 12px;gap:4px;flex-wrap:wrap}.filter-selection{width:100%;margin-bottom:6px}.filter-actions .text-button{margin-left:auto}.kpi-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:24px}.kpi{padding:13px;min-height:122px}.kpi>strong{font-size:21px;margin:8px 0}.kpi-label{font-size:10px;gap:4px}.kpi-caption{font-size:9px}.chart-grid{grid-template-columns:1fr}.chart-panel:first-child{border-right:0;border-bottom:1px solid var(--line)}.chart-panel.wide{grid-column:auto}.chart-panel{padding:17px 13px}.chart-area{height:230px}.evolution-area{height:190px}.section-header{gap:8px}.section-header h2{font-size:14px}.text-link{font-size:10px}.legend{font-size:9px;gap:4px}.chart-heading h3{font-size:13px}.totals-strip{gap:12px 20px;font-size:11px;margin-bottom:20px}.totals-strip>span:first-child{width:100%}.pagination{align-items:flex-start;flex-direction:column}.pagination>div{align-self:flex-end}.categories-layout,.settings-layout{grid-template-columns:1fr}.category-form{grid-row:1}.category-toolbar{flex-wrap:wrap}.category-toolbar .legend{display:none}.report-tabs{gap:14px;overflow-x:auto}.report-tabs>a{white-space:nowrap;font-size:10px;gap:5px}.form-section{padding:20px 16px}.two-columns{grid-template-columns:1fr}.segment{font-size:10px;padding:11px 7px;gap:5px}.segment input{width:13px;height:13px}.form-actions .button{font-size:11px}.balance-band{gap:13px;flex-direction:column;align-items:flex-start}.page-footer{font-size:9px;padding:20px 0}.auth-panel{padding:26px}.category-picker>summary{white-space:normal}.chart-empty{font-size:11px}}
/* Readable type and touch targets shared by all financial views. */
body{font-size:16px;line-height:1.6}
input,select,textarea{font-size:16px;line-height:1.5;min-height:46px;padding:11px 12px}
label,.field-label,.type-segment legend{font-size:15px}
input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:0}
input::placeholder,textarea::placeholder{color:var(--muted)}
h1{font-size:30px}h2{font-size:19px}h3{font-size:17px}
small,.muted,td small,.optional,.form-meta,.field-note,.checkbox-label small{font-size:13px;color:var(--muted)}
.button{font-size:15px;min-height:44px;padding:10px 16px;max-width:100%;white-space:normal}
.button i{font-size:17px;flex-shrink:0}
.icon-button,.row-actions .icon-button{width:40px;height:40px;min-width:40px;font-size:18px}
.row-actions{gap:6px}
.notice,.confirm-dialog p{font-size:15px;overflow-wrap:anywhere}
.confirm-dialog h2{font-size:22px}
.dialog-actions,.form-actions{flex-wrap:wrap}
.brand>span:last-child,.company-label,.user-name{font-size:14px}
.nav-heading,.user-name small{font-size:12px;color:var(--muted)}
.nav-item{font-size:15px;min-height:46px}
.sidebar{overflow-y:auto}.sidebar-bottom{flex-shrink:0}
.topbar{font-size:14px;min-height:64px}
.eyebrow{font-size:12px;color:var(--muted)}
.period-caption,.topbar .today{font-size:14px}
.page-heading>div{min-width:0}
.page-heading h1{overflow-wrap:anywhere}
.category-picker>summary{font-size:16px;min-height:46px;white-space:normal}
.category-picker>summary i{font-size:13px;flex-shrink:0}
.checkbox-label{font-size:15px;min-height:44px}
.advanced-filters>summary{font-size:14px;min-height:44px;padding:8px 0 12px}
.filter-selection,.filter-actions .button{font-size:14px}
.filter-actions .button{min-height:44px;padding:10px 14px}
.filter-actions{flex-wrap:wrap}
.kpi-label{font-size:14px;gap:8px}.kpi-caption{font-size:13px;color:var(--muted)}
.kpi>strong{font-size:28px}.kpi-icon{width:32px;height:32px;font-size:18px;flex-shrink:0}
.section-header{flex-wrap:wrap;align-items:center}
.section-header h2{font-size:19px}
.section-header>div>span,.legend{font-size:13px;color:var(--muted)}
.text-link,.section-bottom-link{font-size:14px}
.chart-heading h3{font-size:17px}.chart-empty{font-size:14px;text-align:center;padding:12px}
.legend{white-space:normal;flex-wrap:wrap}
.chart-area{height:285px}.evolution-area{height:220px}
.section-total,.totals-strip{font-size:15px}
table{font-size:15px}th{font-size:14px;color:#53647c;padding:14px 16px}
td{padding:15px 16px}td small{margin-top:5px}
.type-badge,.status-label{font-size:13px}
.type-badge{padding:5px 8px}.category-link i{font-size:13px}
.pagination,.pagination .button{font-size:14px}
.pagination .button{min-height:44px;padding:10px 12px}
.empty-state h3,.empty-state.compact h3{font-size:17px}
.empty-state p{font-size:15px;color:var(--muted)}
.back-link,.report-tabs>a{font-size:15px}
.segment{font-size:15px;min-height:48px;min-width:0}
.segment input{width:20px;height:20px}
.money-input{font-size:22px;min-height:48px}
.search-field{max-width:340px}.search-field input{font-size:16px;min-height:44px}
.balance-band{font-size:14px}.balance-band strong{font-size:16px}
.auth-panel{width:min(480px,calc(100% - 32px))}
.auth-panel h1{font-size:28px}.auth-caption{font-size:16px;color:var(--muted)}
.auth-panel .button{min-height:48px}
.password-field input{padding-right:52px}.password-field button{right:3px;top:3px}
.page-footer,.guest-footer,.guest-brand{font-size:13px;color:var(--muted)}
@media(min-width:901px) and (max-width:1199px){:root{--sidebar:222px}}
@media(max-width:1199px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-primary{grid-template-columns:repeat(2,minmax(0,1fr))}.categories-layout,.settings-layout{grid-template-columns:1fr}.category-form{grid-row:1}.settings-layout .password-form{max-width:640px}}
@media(max-width:900px){.sidebar{width:260px}.sidebar-bottom{margin-top:24px}.category-form{max-width:640px}}
@media(max-width:640px){
    .topbar{height:auto;min-height:64px;padding:10px 16px;gap:8px;flex-wrap:wrap}
    .topbar>span:not(.today){font-size:14px;flex:1;min-width:0;overflow-wrap:anywhere}
    .mobile-menu{margin-right:0}.breadcrumb-root,.breadcrumb-separator{display:none}
    .topbar .today{font-size:13px;margin-left:auto}
    .icon-button,.row-actions .icon-button{width:44px;height:44px;min-width:44px;font-size:19px}
    h1{font-size:28px}.page-heading{flex-wrap:wrap;align-items:center;gap:14px}
    .page-heading>.button{font-size:15px;min-height:44px;padding:10px 14px;gap:8px}
    .page-heading>.button i{font-size:17px}
    .eyebrow{font-size:12px}.period-caption{font-size:14px}
    .filter-primary,.filter-advanced-grid{grid-template-columns:1fr;gap:16px}
    .category-picker>summary{font-size:16px}.category-options{min-width:min(280px,calc(100vw - 64px));max-width:calc(100vw - 64px)}
    .filter-actions{gap:8px}.filter-actions .button{font-size:14px}
    .filter-selection{font-size:14px}.filter-actions .text-button{margin-left:0}
    .section-header h2{font-size:18px}.text-link{font-size:14px}
    .chart-heading h3{font-size:17px}.legend{font-size:13px;gap:6px}
    .chart-area{height:280px}.doughnut-area{height:320px}.evolution-area{height:220px}
    .totals-strip{font-size:15px;gap:12px}
    .type-segment{flex-direction:column}.segment{font-size:15px;flex:none;padding:12px}
    .segment input{width:20px;height:20px}
    .form-actions .button{font-size:15px;flex:1;min-width:0}
    .dialog-actions .button{flex:1;min-width:0}
    .report-tabs>a{font-size:15px;min-height:44px}
    .balance-band{font-size:14px}.page-footer{font-size:13px;flex-wrap:wrap}
    .auth-panel{padding:24px}.auth-panel h1{font-size:28px}
    .chart-empty{font-size:14px}.password-field button{width:40px;height:40px;min-width:40px}
}
@media(max-width:480px){.kpi-grid{grid-template-columns:1fr}.kpi{padding:18px;min-height:132px}.kpi-label{font-size:15px}.kpi-caption{font-size:14px}.kpi>strong{font-size:28px}}
/* Folder-style report navigation keeps all three choices visible on mobile. */
.report-tabs{display:flex;align-items:stretch;gap:8px;margin:-4px 0 24px;padding:4px 0 0;border-bottom:1px solid #cbd5e3;overflow:visible}
.report-tabs>a{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;margin-bottom:-1px;padding:12px 20px;border:1px solid #cbd5e3;border-top:3px solid transparent;border-radius:8px 8px 0 0;background:#eaf0f6;color:#53647c;font-size:15px;font-weight:600;line-height:1.4;text-align:center;white-space:normal;transition:background-color .15s,color .15s}
.report-tabs>a i{flex-shrink:0;font-size:18px}
.report-tabs>a span{min-width:0}
.report-tabs>a:hover{background:var(--primary-soft);color:var(--primary)}
.report-tabs>a.selected{z-index:1;border-color:#cbd5e3;border-top-color:var(--primary);border-bottom-color:var(--white);background:var(--white);color:var(--primary)}
.report-tabs>a:focus-visible{z-index:2;outline:2px solid var(--primary);outline-offset:2px}
@media(max-width:640px){
    .report-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
    .report-tabs>a{flex-direction:column;gap:6px;min-width:0;min-height:108px;padding:10px 6px;font-size:15px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{.sidebar,.topbar,.filter-bar,.button,.icon-button,.row-actions,.page-footer,.pagination{display:none!important}.workspace{margin:0}main#main{padding:0}.chart-grid,.table-scroll,.kpi{break-inside:avoid}body{background:white}.report-tabs{display:none}}
