/* Expense Dashboard UI — scoped to the standalone expense page. */
.expense-dashboard-body{margin:0;background:linear-gradient(135deg,#f3fbfa 0%,#f8fbfd 52%,#eef7f5 100%);color:#172b45;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
.expense-dashboard-body .expense-dashboard-wrapper{min-height:100vh;padding:0;box-sizing:border-box}.expense-dashboard-body .expense-dashboard-inner{width:100%;max-width:none}.expense-dashboard-body .expense-layout{display:flex;width:100%;min-height:100vh;padding:0;background:transparent;border-radius:0;box-shadow:none;box-sizing:border-box}
.expense-dashboard-body .expense-sidebar{width:228px;flex:0 0 228px;display:flex;flex-direction:column;padding:26px 14px 24px 22px;background:rgba(244,252,250,.86);border-right:1px solid rgba(31,117,104,.08);box-sizing:border-box}.expense-sidebar__brand{display:flex;align-items:center;gap:11px;padding:0 8px;color:#0c2c37;text-decoration:none}.expense-sidebar__brand strong{display:block;font-size:17px;line-height:1.1}.expense-sidebar__brand small{display:block;margin-top:3px;color:#6c8a8d;font-size:9px;white-space:nowrap}.expense-sidebar__logo{display:flex;align-items:end;gap:3px;height:27px}.expense-sidebar__logo i{display:block;width:6px;border-radius:4px;background:linear-gradient(180deg,#31b681,#0e936b)}.expense-sidebar__logo i:nth-child(1){height:12px}.expense-sidebar__logo i:nth-child(2){height:20px}.expense-sidebar__logo i:nth-child(3){height:27px}
.expense-sidebar__nav{display:flex;flex-direction:column;gap:5px;margin-top:48px}.expense-sidebar__nav a{display:flex;align-items:center;gap:14px;padding:12px 12px;border-radius:12px;color:#3d5a70;font-size:14px;text-decoration:none;transition:background .18s ease,color .18s ease}.expense-sidebar__nav a span{width:20px;color:#24586a;font-size:20px;text-align:center}.expense-sidebar__nav a:hover,.expense-sidebar__nav a.is-active{background:#dff6ec;color:#078457;font-weight:700}.expense-sidebar__nav a.is-active span{color:#079365}.expense-sidebar__quote{margin-top:auto;padding:18px 14px;border-radius:16px;background:linear-gradient(145deg,#e5f7f2,#d9f1ec);color:#5c8183;font-size:12px;line-height:1.6}.expense-sidebar__quote span{display:block;margin-top:8px;font-size:28px;text-align:right}
.expense-dashboard-main{min-width:0;flex:1;padding:0 30px 38px;box-sizing:border-box}.expense-topbar{height:62px;display:flex;align-items:center;gap:24px;border-bottom:1px solid rgba(33,91,100,.07)}.expense-topbar__search{display:flex;align-items:center;gap:10px;width:335px;padding:10px 16px;border-radius:999px;background:rgba(224,238,240,.66);color:#82a4a8;font-size:13px}.expense-topbar__search span:first-child{font-size:22px;color:#147c72}.expense-topbar__date{display:flex;align-items:center;gap:10px;color:#52727f;font-size:13px}.expense-topbar__date span{color:#158c78;font-size:18px}.expense-topbar__user{display:flex;align-items:center;gap:13px;margin-left:auto;color:#173148;font-size:13px}.expense-topbar__user button{position:relative;border:0;background:transparent;color:#173148;font-size:23px;line-height:1;cursor:pointer}.expense-topbar__user button b{position:absolute;top:0;right:-1px;width:7px;height:7px;border:2px solid #f8fbfd;border-radius:50%;background:#ef4444}.expense-topbar__avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#607c94;color:#fff;font-size:16px}.expense-topbar__user strong{font-weight:750}.expense-breadcrumb{display:flex;align-items:center;gap:9px;padding:27px 8px 7px;color:#73a19b;font-size:12px}.expense-breadcrumb b{color:#9ab7b4;font-weight:500}.expense-breadcrumb strong{color:#466b7b;font-weight:600}
.expense-layout__header{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin:0;padding:0 8px 20px;border:0}.expense-layout__header-left{min-width:0}.expense-layout__title-row{display:flex;align-items:center;gap:10px}.expense-layout__title{margin:0;color:#0c2a41;font-size:30px;font-weight:800;letter-spacing:-.035em;line-height:1.15}.expense-layout__title:before{content:"▥";display:inline-block;margin-right:11px;color:#079a71;font-size:30px}.expense-layout__title-pill{display:none}.expense-layout__subtitle{margin:8px 0 0;color:#638097;font-size:13px}.expense-layout__header-right{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;justify-content:flex-end}.expense-filters{display:flex;align-items:flex-end;gap:12px}.expense-filter{display:flex;flex-direction:column;gap:6px;min-width:174px}.expense-filter__label{color:#56748a;font-size:12px}.expense-filter__select{width:100%;min-height:42px;padding:9px 34px 9px 13px;border:1px solid #d8e9e8;border-radius:11px;background:#fff;color:#18394c;font-size:13px;outline:0;box-shadow:0 5px 15px rgba(22,82,91,.04);appearance:auto}.expense-filter__select:focus{border-color:#41b994;box-shadow:0 0 0 3px rgba(65,185,148,.15)}.expense-filter__select:disabled{opacity:.62;cursor:not-allowed}.expense-header-stats{display:flex;align-items:center;gap:10px}.expense-header-stat{min-width:118px;padding:10px 13px;border:1px solid #e0edef;border-radius:15px;background:rgba(255,255,255,.86);text-align:left;box-shadow:0 7px 18px rgba(28,86,98,.06)}.expense-header-stat__label{display:block;margin-bottom:5px;color:#6c8597;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.expense-header-stat__value{display:block;color:#18344b;font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}
.expense-layout__grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(360px,1fr);gap:18px;margin-top:0}.expense-panel{min-width:0;padding:22px 18px 18px;border:1px solid rgba(219,234,236,.95);border-radius:20px;background:rgba(255,255,255,.9);box-shadow:0 12px 30px rgba(32,88,101,.07);box-sizing:border-box}.expense-panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0 0 18px;padding:0 3px}.expense-panel__header--chart{margin-bottom:13px}.expense-panel__title{display:flex;align-items:center;gap:10px;margin:0;color:#172c45;font-size:18px;font-weight:800;letter-spacing:-.02em}.expense-panel__title:before{content:"▣";display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#e1f6ee;color:#078e69;font-size:16px}.expense-panel--chart .expense-panel__title:before{content:"✣"}.expense-panel__subtitle{margin:5px 0 0;color:#6a8395;font-size:12px}.expense-panel__badge-row{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;font-size:11px}.chip--soft{background:#e0f7ed;color:#087d5e;border:1px solid #bcebd9}.chip--outline{background:#fff;color:#537086;border:1px solid #d9e8ed}.expense-panel__empty-chart{padding:42px 12px;color:#8aa1a9;font-size:13px;text-align:center}
.expense-table__outer{overflow:hidden;border:1px solid #e2edf0;border-radius:15px;background:#fff}.expense-table{width:100%;border-collapse:separate;border-spacing:0;color:#29455f;font-size:13px}.expense-table thead{background:#f2f8f8;color:#36536b}.expense-table th,.expense-table td{padding:12px 11px}.expense-table th{border-bottom:1px solid #e0ecef;font-size:10px;font-weight:800;letter-spacing:.06em;text-align:left;text-transform:uppercase}.expense-table tbody tr{background:#fff;transition:background .16s}.expense-table tbody tr+tr td{border-top:1px solid #edf2f4}.expense-table tbody tr:nth-child(even){background:#fbfdfd}.expense-table tbody tr:hover{background:#effaf6}.expense-table__empty{padding:35px 12px;text-align:center;color:#8da1aa}.col-stt{width:38px;color:#8094a1;text-align:center}.col-date{width:104px;color:#52728a;font-variant-numeric:tabular-nums}.col-name{width:35%}.col-group{width:22%}.col-amount{width:23%;color:#07885f;font-weight:800;text-align:right;font-variant-numeric:tabular-nums}.expense-name-cell{display:flex;align-items:center;gap:9px;min-width:0}.expense-name-cell__dot{width:9px;height:9px;flex:0 0 auto;border:3px solid #c5f1df;border-radius:50%;background:#0eae76}.expense-name-cell__text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-pill{display:inline-flex;align-items:center;max-width:100%;overflow:hidden;padding:5px 10px;border:1px solid #cfdcff;border-radius:999px;background:#f1f4ff;color:#4168dc;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.expense-chart-card{display:flex;flex-direction:column;gap:15px;padding:12px 8px 7px;border:0;background:transparent}.expense-chart-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(125px,.8fr);gap:7px;align-items:center}.expense-chart-main__canvas{position:relative;width:100%;max-width:270px;height:270px;margin:0 auto}.expense-chart-main__canvas canvas{width:100%!important;height:100%!important}.expense-chart-main__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 18px;pointer-events:none;text-align:center}.center-percent{color:#103d45;font-size:25px;font-weight:800}.center-label{max-width:110px;margin-top:5px;color:#688090;font-size:12px}.expense-chart-main__summary{padding-right:4px}.summary-label{margin:0 0 4px;color:#718c98;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.summary-value{margin:0;color:#12384d;font-size:20px;font-weight:800}.summary-muted{margin:5px 0 0;color:#78909b;font-size:12px}.expense-chart-legend{padding-top:8px;border-top:1px solid #e8f0f1}.legend-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 2px;color:#29455f;font-size:12px}.legend-row__left{display:flex;align-items:center;gap:8px;min-width:0}.legend-row__right{display:flex;align-items:baseline;gap:10px}.legend-dot{width:10px;height:10px;flex:0 0 auto;border-radius:50%}.legend-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-amount,.legend-percent{font-variant-numeric:tabular-nums}.legend-amount{color:#1c3a53}.legend-percent{color:#708995}.legend-dot--c1{background:#0b9d70}.legend-dot--c2{background:#2dbb91}.legend-dot--c3{background:#fbb718}.legend-dot--c4{background:#528cf0}.legend-dot--c5{background:#9366e9}.legend-dot--c6{background:#f47932}.legend-dot--c7{background:#ef5350}.legend-dot--c8{background:#3ebdb1}
.expense-dashboard-body .expense-layout button,.expense-dashboard-body .expense-layout input,.expense-dashboard-body .expense-layout select,.expense-dashboard-body .expense-layout textarea{margin-bottom:0}.expense-dashboard-body .expense-layout a:focus-visible,.expense-dashboard-body .expense-layout button:focus-visible,.expense-dashboard-body .expense-layout select:focus-visible{outline:3px solid rgba(28,170,124,.25);outline-offset:2px}
@media(max-width:1280px){.expense-dashboard-main{padding-inline:22px}.expense-sidebar{width:210px;flex-basis:210px}.expense-layout__header{align-items:flex-start;flex-direction:column}.expense-layout__header-right{width:100%;justify-content:flex-start}.expense-header-stats{margin-left:auto}}
@media(max-width:1024px){.expense-sidebar{width:190px;flex-basis:190px;padding-left:14px}.expense-sidebar__brand small{display:none}.expense-dashboard-main{padding-inline:16px}.expense-layout__grid{grid-template-columns:1fr}.expense-panel--chart{min-height:0}.expense-chart-main{grid-template-columns:minmax(250px,1fr) minmax(180px,.7fr)}}
@media(max-width:720px){.expense-dashboard-body .expense-layout{display:block}.expense-sidebar{width:100%;height:auto;padding:14px 14px 10px;border-right:0;border-bottom:1px solid rgba(31,117,104,.08)}.expense-sidebar__brand{padding:0}.expense-sidebar__nav{flex-direction:row;gap:4px;margin:15px 0 0;overflow-x:auto;padding-bottom:3px}.expense-sidebar__nav a{flex:0 0 auto;padding:9px 10px;font-size:12px;white-space:nowrap}.expense-sidebar__nav a span{width:auto;font-size:17px}.expense-sidebar__quote{display:none}.expense-dashboard-main{padding:0 10px 24px}.expense-topbar{height:auto;min-height:58px;flex-wrap:wrap;gap:10px;padding:10px 2px}.expense-topbar__search{order:3;width:100%;box-sizing:border-box}.expense-topbar__date{font-size:11px}.expense-topbar__user{gap:8px;font-size:12px}.expense-topbar__user strong{display:none}.expense-breadcrumb{padding:18px 2px 7px;font-size:11px}.expense-layout__header{padding:0 2px 16px}.expense-layout__title{font-size:24px}.expense-layout__title:before{font-size:24px}.expense-layout__subtitle{font-size:12px}.expense-layout__header-right,.expense-filters{width:100%;align-items:stretch;flex-direction:column}.expense-filter{width:100%;min-width:0}.expense-header-stats{width:100%;margin:0;gap:7px}.expense-header-stat{flex:1;min-width:0;padding:9px 8px}.expense-header-stat__label{font-size:9px}.expense-header-stat__value{font-size:13px}.expense-panel{padding:17px 10px 12px;border-radius:17px}.expense-panel__title{font-size:16px}.expense-table__outer{overflow:visible;border:0;background:transparent}.expense-table,.expense-table thead,.expense-table tbody,.expense-table th,.expense-table td,.expense-table tr{display:block;width:100%}.expense-table thead{display:none}.expense-table tbody tr{margin-bottom:10px;padding:9px 12px;border:1px solid #e2edf0;border-radius:14px;background:#fff}.expense-table tbody tr+tr td{border-top:0}.expense-table td{padding:5px 0;border:0;text-align:left}.expense-table td:before{display:block;margin-bottom:2px;color:#8aa0aa;font-size:9px;letter-spacing:.05em;text-transform:uppercase;content:attr(data-label)}.col-stt,.col-date,.col-name,.col-group,.col-amount{width:auto;text-align:left}.expense-name-cell__text{white-space:normal;overflow:visible}.col-amount{color:#07885f}.expense-chart-main{grid-template-columns:1fr}.expense-chart-main__canvas{height:240px}.expense-chart-main__summary{text-align:center}.expense-chart-legend{padding-inline:4px}.legend-row{font-size:11px}}
@media(max-width:400px){.expense-topbar__date{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-topbar__avatar{width:32px;height:32px}.expense-layout__title{font-size:21px}.expense-header-stat__value{font-size:12px}.expense-panel__header{align-items:flex-start;flex-direction:column}.expense-chart-main__canvas{height:215px}.legend-row__right{gap:6px}}
