/* Expense category report: compact controls, readable hierarchy and aligned totals. */
.expense-category-report{color:#2d455d;min-width:0}
.expense-section-tabs{display:flex;align-items:center;gap:4px;max-width:100%;margin:0 0 14px;padding:4px;border:1px solid #dce6ef;border-radius:10px;background:#eaf0f6;width:fit-content}
.expense-section-tabs button{min-height:30px;height:30px;padding:4px 13px;border:1px solid transparent;border-radius:7px;background:transparent;color:#61768b;font-size:12px;line-height:20px;white-space:nowrap;box-shadow:none}
.expense-section-tabs button:hover{background:#f5f8fb;color:#285b84}
.expense-section-tabs button.active,.expense-section-tabs button[aria-selected=true]{border-color:#dce5ee;background:#fff;color:#205f94;box-shadow:0 1px 3px #243c4e08}
.expense-section-tabs button:focus-visible,.expense-category-report button:focus-visible{outline:2px solid #84b0db;outline-offset:2px}
#view .expense-report-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 14px;padding-right:60px}
#view .expense-report-header h1{margin:0;color:#243c4e;font-size:26px;font-weight:700;line-height:1.25;letter-spacing:-.025em}
#view .expense-report-header p{margin:5px 0 0;color:#76899b;font-size:12px;line-height:1.5}
.expense-report-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.expense-report-actions button,.expense-report-actions a{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:30px;padding:4px 11px;border-radius:8px;font-size:12px;line-height:20px;white-space:nowrap}
.expense-report-filters{position:relative;display:grid;grid-template-columns:minmax(245px,1.15fr) minmax(170px,1.2fr) minmax(150px,1fr) minmax(170px,1.1fr);align-items:end;gap:9px 10px;padding:12px;border:1px solid #dce6ef;border-radius:12px;background:#fff;margin:0 0 14px;overflow:visible}
#view .expense-report-filters>label,.expense-report-period-field{display:flex;flex-direction:column;gap:4px;min-width:0;margin:0;color:#6b8093;font-size:11px;font-weight:500;line-height:1.3}
.expense-report-filters>label>input,.expense-report-filters>label>select,.expense-report-filters .ac>input,.expense-report-filters>button,.expense-report-filters .date-trigger{width:100%;height:30px;min-height:30px;min-width:0;margin:0;padding:4px 10px;border:1px solid #d8e3ee;border-radius:7px;background-color:#fff;color:#304b63;font-size:12px;font-weight:400;line-height:20px}
.expense-report-filters>label>select{appearance:none;-webkit-appearance:none;padding-right:27px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='m2 2 4 4 4-4' fill='none' stroke='%23768ba0' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;background-size:10px 7px}
.expense-report-filters input::placeholder{color:#91a0af;opacity:1}
.expense-report-filters>label>input:focus,.expense-report-filters>label>select:focus,.expense-report-filters .ac>input:focus{border-color:#80add6;outline:2px solid #e6eff8;outline-offset:1px}
.expense-report-filters .ac{width:100%;min-width:0}
.expense-report-filters .ac-list{z-index:45;width:100%;min-width:100%;max-width:min(520px,calc(100vw - 48px));max-height:260px;padding:4px;border:1px solid #d9e4ee;border-radius:9px;background:#fff;box-shadow:0 10px 25px #1c3e5b20;font-size:12px;line-height:1.4;font-weight:400;overscroll-behavior:contain}
#view .expense-report-filters .ac-list button{min-height:30px;height:auto;padding:6px 8px;border:0;border-radius:5px;background:transparent;color:#3b566e;font-size:12px;font-weight:400;line-height:1.45;white-space:normal;overflow-wrap:anywhere;text-align:left}
#view .expense-report-filters .ac-list button:hover,#view .expense-report-filters .ac-list button:focus{background:#edf5fd;color:#225f92}
.expense-report-filters .ac-list .muted{display:block;max-width:100%;padding:8px;color:#8293a4;font-size:11px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}
.expense-report-actions a[aria-disabled=true]{color:#8d9caa;background:#f7f9fb;cursor:default;pointer-events:none}
.expense-report-filters>button{font-weight:600;cursor:pointer}
.expense-report-filters>button:hover{background:#f5f9fc;border-color:#bdd2e4}
.expense-report-search{grid-column:span 2}
.expense-report-filters .date-wrap{min-width:0;overflow:visible}
.expense-report-filters .date-trigger{display:flex;align-items:center;gap:8px;padding:3px 9px;text-align:left}
.expense-report-filters .date-trigger b{font-size:11px;font-weight:600;white-space:nowrap}
.expense-report-filters .date-trigger .date-icon{display:flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:20px;padding:0}
.expense-report-filters .date-trigger>span:last-child{margin-left:auto}
.expense-report-filters .calendar{z-index:50;color:#41586d;font-size:13px;font-weight:400;line-height:1.5}
.expense-report-period-caption{margin:0 0 10px;color:#71869b;font-size:12px;line-height:1.5}
.expense-report-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 10px}
.expense-report-kpi{min-width:0;padding:6px 12px;border:1px solid #dce6ef;border-radius:10px;background:#fff;box-shadow:0 1px 3px #243c4e03}
.expense-report-kpi.is-primary{border-color:#c9dceb;background:#f5f9fd}
.expense-report-kpi small{display:block;margin:0 0 1px;color:#6c8195;font-size:11px;font-weight:500;line-height:14px}
.expense-report-kpi strong{display:block;color:#253f55;font-size:22px;font-weight:700;line-height:24px;letter-spacing:-.025em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.expense-report-kpi.is-primary strong{color:#225d91}
.expense-report-kpi>span{display:block;margin-top:1px;color:#7a8c9e;font-size:11px;line-height:14px;overflow-wrap:anywhere}
.expense-report-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start;min-width:0}
.expense-report-panel{min-width:0;border:1px solid #dce6ef;border-radius:12px;background:#fff;box-shadow:0 1px 3px #243c4e03}
.expense-report-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:14px 16px;border-bottom:1px solid #e7edf3}
#view .expense-report-panel-head h2{margin:0;color:#2a4359;font-size:15px;font-weight:650;line-height:1.4;letter-spacing:-.01em}
#view .expense-report-panel-head p{margin:3px 0 0;color:#8292a2;font-size:11px;line-height:1.45}
.expense-report-panel-head>div{min-width:0}
.expense-report-panel-head .inline{display:flex;gap:7px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.expense-report-panel-head .inline button{min-height:27px;padding:3px 8px;border:1px solid #e1e9f1;border-radius:6px;background:#fff;color:#58758f;font-size:11px;line-height:19px;white-space:nowrap}
.expense-report-panel-head .inline button:hover{border-color:#bdd3e5;background:#f5f9fc;color:#255f91}
.expense-report-table-wrap{max-width:100%;overflow:auto;border-radius:0 0 12px 12px;overscroll-behavior-x:contain}
.expense-report-table{width:100%;min-width:560px;table-layout:fixed;border-collapse:collapse;color:#395268;font-size:12px;line-height:1.45}
.expense-report-table th,.expense-report-table td{height:36px;padding:6px 12px;border:0;border-bottom:1px solid #e8eef4;text-align:left;vertical-align:middle;overflow-wrap:anywhere}
.expense-report-table th{background:#f6f9fc;color:#798b9d;font-size:11px;font-weight:600;line-height:1.35}
.expense-report-table th button{display:inline;min-height:0;height:auto;margin:0;padding:0;border:0;border-radius:3px;background:transparent;color:inherit;font:inherit;line-height:inherit;text-align:inherit;white-space:normal;box-shadow:none}
.expense-report-table th button:hover{background:transparent;color:#285f8b;text-decoration:underline;text-underline-offset:3px}
.expense-report-table th:first-child,.expense-report-table td:first-child{padding-left:14px}
.expense-report-table th:last-child,.expense-report-table td:last-child{padding-right:16px}
.expense-report-table th:nth-child(2),.expense-report-table td:nth-child(2){width:80px}
.expense-report-table th:nth-child(3),.expense-report-table td:nth-child(3){width:90px}
.expense-report-table th:nth-child(4),.expense-report-table td:nth-child(4){width:150px}
.expense-report-table th.numeric,.expense-report-table td.numeric,.expense-report-table th:nth-child(n+2),.expense-report-table td:nth-child(n+2){text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;overflow-wrap:normal}
.expense-report-table tbody tr:last-child td{border-bottom:0}
.expense-report-table tbody tr:hover td{background:#f1f7fc}
.expense-category-group td{background:#f7fafd;color:#2f536f;font-weight:600}
.expense-category-leaf td{background:#fff;color:#52687b}
.expense-category-direct td{color:#798b9c;font-size:11px}
.expense-category-name{display:flex;align-items:center;gap:6px;min-width:0;padding-left:calc(var(--depth,0) * 18px)}
.expense-category-toggle,.expense-category-toggle-placeholder{display:inline-flex;align-items:center;justify-content:center;flex:0 0 23px;width:23px;height:23px;min-height:23px;margin:0;padding:0;border:1px solid transparent;border-radius:6px;background:transparent;color:#7291a9;font-size:13px;line-height:1;box-shadow:none}
.expense-category-toggle{cursor:pointer}
.expense-category-toggle:hover{border-color:#c4d8e8;background:#e9f2fa;color:#245f90}
.expense-category-toggle[aria-expanded=true]{color:#2c6e9e}
.expense-category-toggle svg{display:block;width:12px;height:12px;flex:none}
.expense-category-label{display:block;min-width:0;height:auto;min-height:0;margin:0;padding:2px 0;border:0;border-radius:3px;background:transparent;color:inherit;font:inherit;text-align:left;white-space:normal;overflow-wrap:anywhere;line-height:1.45;box-shadow:none;cursor:pointer}
.expense-category-label:hover{background:transparent;color:#1763a1;text-decoration:underline;text-underline-offset:3px}
.expense-category-label small{display:block;margin-top:2px;color:#8396a7;font-size:10px;font-weight:400;line-height:1.35}
.expense-category-amount{display:inline-block;min-height:0;height:auto;margin:0;padding:2px 0;border:0;border-radius:3px;background:transparent;color:#32668f;font:inherit;font-weight:600;line-height:1.45;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;box-shadow:none}
.expense-category-amount:hover{background:transparent;color:#155e97;text-decoration:underline;text-underline-offset:3px}
.expense-report-share{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-variant-numeric:tabular-nums}
.expense-share-track{display:block;width:54px;height:3px;overflow:hidden;border-radius:3px;background:#e6eef5}
.expense-share-fill{display:block;height:100%;max-width:100%;border-radius:inherit;background:#91b6d6}
.expense-category-group .expense-share-fill{background:#6199c5}
.expense-report-table .expense-report-total td,.expense-report-table tfoot td{height:40px;padding-top:9px;padding-bottom:9px;border-top:1px solid #cbdde9;border-bottom:0;background:#edf4fa;color:#284d6a;font-weight:700}
.expense-report-table .expense-report-total small{margin-left:8px;color:#718b9f;font-size:10px;font-weight:400}
.expense-report-top-list{display:grid;gap:5px;margin:0;padding:10px}
.expense-top-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;width:100%;min-height:0;padding:9px 6px;border:0;border-radius:7px;background:transparent;color:#3d5a73;text-align:left;font-size:12px;line-height:1.4;box-shadow:none;cursor:pointer}
.expense-top-item:hover{background:#f2f7fb}
.expense-top-item>span:first-child,.expense-top-item .expense-top-name{min-width:0;white-space:normal;overflow-wrap:anywhere;font-weight:500}
.expense-top-item strong{align-self:start;color:#2f4d66;font-size:11px;font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums}
.expense-top-track{display:block;grid-column:1/-1;width:100%;height:5px;overflow:hidden;border-radius:4px;background:#edf2f7}
.expense-top-track>span{display:block;max-width:100%;height:100%;border-radius:inherit;background:var(--bar-color,#6c9fc8)}
.expense-top-item small{color:#8093a4;font-size:10px;font-weight:400;line-height:1.3}
.expense-report-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:190px;padding:32px 24px;color:#7c91a4;text-align:center;font-size:13px;line-height:1.55}
.expense-report-empty strong{color:#4b6982;font-size:15px;font-weight:600}
#view .expense-report-empty p{max-width:430px;margin:0;color:#7c91a4;font-size:12px;line-height:1.6}
.expense-report-empty button{margin-top:4px;min-height:30px;padding:4px 12px;font-size:12px;line-height:20px}
.expense-report-note{margin:12px 0 0;color:#8293a3;font-size:11px;line-height:1.6}
#view p.expense-report-note{font-size:11px;line-height:1.6}
.expense-report-panel>.expense-report-note{margin:0;padding:10px 16px 14px}
.expense-category-report [hidden]{display:none!important}
@media(max-width:1250px){
 .expense-report-layout{grid-template-columns:minmax(0,1fr) 260px;gap:12px}
 .expense-report-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
 .expense-report-search{grid-column:auto}
 .expense-report-table{min-width:510px}
 .expense-report-table th,.expense-report-table td{padding-left:10px;padding-right:10px}
 .expense-report-table th:nth-child(2),.expense-report-table td:nth-child(2){width:65px}
 .expense-report-table th:nth-child(3),.expense-report-table td:nth-child(3){width:70px}
 .expense-report-table th:nth-child(4),.expense-report-table td:nth-child(4){width:128px}
}
@media(max-width:1080px){
 .expense-report-layout{grid-template-columns:minmax(0,1fr)}
 .expense-report-top-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 18px}
 .expense-report-panel-head{flex-wrap:wrap}
}
@media(max-width:600px){
 #view .expense-report-header{align-items:flex-start;flex-direction:column;gap:12px}
 #view .expense-report-header h1{font-size:23px}
 .expense-report-actions{justify-content:flex-start}
 .expense-section-tabs{width:100%;margin-bottom:12px}
 .expense-section-tabs button{flex:1;min-width:0;padding:4px 8px;font-size:11px}
 .expense-report-kpis{gap:8px;grid-template-columns:1fr}
 .expense-report-filters{grid-template-columns:1fr;padding:10px}
 .expense-report-search{grid-column:auto}
 .expense-report-panel-head{padding:12px;gap:10px}
 .expense-report-panel-head .inline{justify-content:flex-start}
 .expense-report-top-list{grid-template-columns:1fr}
 .expense-report-top-list{padding:8px}
}
@media(pointer:coarse){
 .expense-section-tabs button,.expense-report-actions button,.expense-report-actions a,.expense-report-filters>label>input,.expense-report-filters>label>select,.expense-report-filters .ac>input,.expense-report-filters>button,.expense-report-filters .date-trigger{height:40px;min-height:40px}
 #view .expense-report-filters .ac-list button{min-height:40px}
 .expense-category-toggle{width:28px;height:28px;min-height:28px;flex-basis:28px}
 .expense-category-toggle-placeholder{width:28px;flex-basis:28px}
 .expense-category-label{min-height:28px;display:flex;flex-direction:column;justify-content:center}
 .expense-top-item{min-height:44px}
}
