:root {
  color-scheme: light;
  --navy: #10253f;
  --navy-2: #183956;
  --ink: #152233;
  --muted: #667486;
  --line: #d9e2ec;
  --soft: #f3f6f9;
  --panel: #ffffff;
  --teal: #0f9f91;
  --teal-dark: #08786e;
  --teal-soft: #dcf5f1;
  --amber: #d98c1d;
  --amber-soft: #fff4d9;
  --red: #bb3c46;
  --red-soft: #fde9eb;
  --shadow: 0 16px 45px rgba(22, 43, 68, 0.09);
  font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
  font-size: 16px;
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; color: var(--ink); background: var(--soft); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }
.eyebrow { margin: 0 0 .35rem; color: var(--teal-dark); font-size: .75rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.login-screen { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr); background: #eef3f7; }
.login-brand { display: flex; align-items: center; gap: 1.4rem; padding: clamp(3rem, 8vw, 8rem); color: white; background: radial-gradient(circle at 20% 18%, rgba(61,214,198,.22), transparent 28%), linear-gradient(150deg, #0e2037, #183f5b 72%, #146e70); }
.login-brand h1 { margin: 0; font-size: clamp(2rem, 5vw, 4rem); letter-spacing: -.045em; }
.login-brand p:last-child { color: #c9d8e5; font-size: 1.05rem; }
.brand-mark { width: 4.25rem; height: 4.25rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: 1.2rem; color: var(--navy); background: #3dd6c6; font-size: 1.65rem; font-weight: 900; box-shadow: 0 18px 45px rgba(2, 12, 25, .24); }
.brand-mark.small { width: 2.45rem; height: 2.45rem; border-radius: .72rem; font-size: 1rem; box-shadow: none; }
.login-card { align-self: center; justify-self: center; width: min(420px, calc(100% - 3rem)); display: grid; gap: 1.15rem; padding: 2rem; background: white; border: 1px solid var(--line); border-radius: 1rem; box-shadow: var(--shadow); }
.login-card h2, .modal-card h2 { margin: 0; font-size: 1.5rem; }
label { display: grid; gap: .45rem; color: #344257; font-size: .88rem; font-weight: 700; }
input, select, textarea { width: 100%; min-height: 2.7rem; padding: .68rem .78rem; color: var(--ink); background: white; border: 1px solid #bdc9d5; border-radius: .55rem; outline: none; }
input:focus, select:focus, textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(15,159,145,.14); }
.button { min-height: 2.7rem; padding: .66rem 1rem; border: 1px solid transparent; border-radius: .55rem; font-weight: 800; }
.button.primary { color: white; background: var(--teal-dark); }
.button.primary:hover { background: #06685f; }
.button.secondary { color: var(--navy); background: white; border-color: #b9c8d6; }
.button.danger { color: white; background: var(--red); }
.button:disabled { opacity: .5; cursor: not-allowed; }
.link-button { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.text-button, .icon-button { color: inherit; background: transparent; border: 0; }
.form-error { min-height: 1.15rem; margin: 0; color: var(--red); font-size: .84rem; }
.login-note { margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.55; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 244px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 1.15rem .85rem; color: #e8f0f7; background: var(--navy); }
.sidebar-brand { display: flex; align-items: center; gap: .75rem; padding: .15rem .4rem 1.25rem; }
.sidebar-brand strong, .sidebar-brand span { display: block; }
.sidebar-brand span { margin-top: .1rem; color: #91a7ba; font-size: .72rem; letter-spacing: .12em; }
#main-nav { display: grid; gap: .3rem; }
.nav-item { display: flex; align-items: center; gap: .72rem; min-height: 2.72rem; padding: .55rem .7rem; color: #bdcbd8; background: transparent; border: 0; border-radius: .55rem; font-size: .91rem; text-align: left; }
.nav-item:hover { color: white; background: rgba(255,255,255,.07); }
.nav-item.active { color: white; background: #21445f; box-shadow: inset 3px 0 0 #3dd6c6; }
.nav-icon { width: 1.65rem; height: 1.65rem; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.14); border-radius: .42rem; color: #9fe5dc; font-size: .72rem; font-weight: 900; }
.sidebar-footer { margin-top: auto; padding: 1rem .35rem .3rem; border-top: 1px solid rgba(255,255,255,.1); }
.user-badge { display: flex; align-items: center; gap: .65rem; }
.user-badge > span { width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 50%; color: var(--navy); background: #9fe5dc; font-weight: 900; }
.user-badge strong, .user-badge small { display: block; }
.user-badge small { margin-top: .15rem; color: #8ea5b8; }
.sidebar-footer .text-button { margin: .8rem 0 0 2.55rem; color: #9eb1c1; font-size: .78rem; }
.workspace { min-width: 0; }
.topbar { min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.05rem 1.65rem; background: rgba(255,255,255,.92); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); }
.topbar h1 { margin: 0; font-size: 1.5rem; letter-spacing: -.025em; }
.topbar-actions { display: flex; align-items: center; gap: .8rem; }
.connection-state { color: var(--muted); font-size: .8rem; }
.connection-state i { display: inline-block; width: .48rem; height: .48rem; margin-right: .4rem; border-radius: 50%; background: var(--teal); }
#page-content { padding: 1.45rem 1.65rem 2.5rem; }
.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .9rem; }
.dashboard-kpis { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.income-cny-card { border-color: #a8d9d2; background: linear-gradient(145deg,#ffffff,#f1fbf8); }
.kpi-card { min-height: 128px; padding: 1rem 1.05rem; background: var(--panel); border: 1px solid var(--line); border-radius: .75rem; box-shadow: 0 8px 24px rgba(24,48,74,.045); }
.kpi-card .label { color: var(--muted); font-size: .82rem; font-weight: 700; }
.kpi-card .value { margin-top: .65rem; font-size: clamp(1.3rem, 2.2vw, 2rem); font-weight: 850; letter-spacing: -.04em; }
.kpi-card .meta { margin-top: .4rem; color: var(--muted); font-size: .76rem; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .85fr); gap: .95rem; margin-top: .95rem; }
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: .75rem; box-shadow: 0 8px 24px rgba(24,48,74,.04); overflow: hidden; }
.panel-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.05rem .8rem; }
.panel-header h2 { margin: 0; font-size: 1rem; }
.panel-header p { margin: .25rem 0 0; color: var(--muted); font-size: .78rem; }
.chart-wrap { padding: .25rem 1rem 1rem; min-height: 285px; }
.chart-svg { width: 100%; height: 270px; overflow: visible; }
.chart-grid { stroke: #e5ebf1; stroke-width: 1; }
.chart-axis { fill: #748294; font-size: 11px; }
.chart-line { fill: none; stroke: var(--teal-dark); stroke-width: 3; }
.chart-area { fill: url(#areaFill); opacity: .2; }
.category-list { display: grid; gap: .9rem; padding: .5rem 1.05rem 1.1rem; }
.category-row { display: grid; gap: .35rem; }
.category-head { display: flex; justify-content: space-between; gap: 1rem; font-size: .82rem; }
.category-head strong { font-variant-numeric: tabular-nums; }
.bar-track { height: .48rem; background: #edf1f5; border-radius: 999px; overflow: hidden; }
.bar-track span { display: block; height: 100%; background: linear-gradient(90deg, var(--teal-dark), #3dd6c6); border-radius: inherit; }
.category-row progress { width: 100%; height: .48rem; overflow: hidden; border: 0; border-radius: 999px; background: #edf1f5; }
.category-row progress::-webkit-progress-bar { background: #edf1f5; }
.category-row progress::-webkit-progress-value { background: linear-gradient(90deg, var(--teal-dark), #3dd6c6); border-radius: 999px; }
.alert-panel { margin-top: .95rem; display: flex; align-items: center; gap: 1rem; padding: 1rem 1.1rem; color: #7a4d0d; background: var(--amber-soft); border: 1px solid #f0d79c; border-radius: .75rem; }
.alert-panel strong { display: block; }
.alert-panel p { margin: .2rem 0 0; font-size: .82rem; }
.workbench-filter-panel { margin-bottom: .95rem; }
#workbench-filter { display: flex; align-items: end; gap: .8rem; padding: 1rem; }
.workbench-filter-grid { min-width: 0; flex: 1; display: grid; grid-template-columns: .8fr 1fr 1fr 1.45fr; gap: .8rem; }
.workbench-filter-grid label { align-content: start; font-size: .76rem; }
.workbench-filter-actions { display: flex; gap: .6rem; }
.workbench-kpis { grid-template-columns: repeat(4,minmax(0,1fr)); }
.workbench-annual-panel, .workbench-category-panel { margin-top: .95rem; }
.project-funds-panel { margin-top: .95rem; }
.project-funds-summary { display: grid; grid-template-columns: 1.4fr repeat(2,minmax(0,1fr)); gap: .8rem; padding: 0 1.05rem .9rem; }
.project-funds-summary article { padding: .9rem 1rem; border: 1px solid var(--line); border-radius: .65rem; background: #f8fafb; }
.project-funds-summary article:first-child { background: linear-gradient(135deg,var(--teal-soft),#f5fbfa); border-color: #bfe4de; }
.project-funds-summary span, .project-funds-summary strong { display: block; }
.project-funds-summary span { color: var(--muted); font-size: .72rem; }
.project-funds-summary strong { margin-top: .3rem; font-size: 1.15rem; }
.project-funds-accounts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; padding: 0 1.05rem 1.1rem; }
.project-funds-accounts article { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem .9rem; border: 1px solid var(--line); border-radius: .6rem; background: white; }
.project-funds-accounts strong, .project-funds-accounts span { display: block; }
.project-funds-accounts strong { font-size: .8rem; }
.project-funds-accounts span { margin-top: .2rem; color: var(--muted); font-size: .7rem; }
.project-funds-accounts em { font-size: .9rem; font-style: normal; font-weight: 850; white-space: nowrap; }
.annual-chart-legend { display: flex; align-items: center; gap: 1rem; padding: .1rem 1.05rem .55rem; color: var(--muted); font-size: .75rem; }
.annual-chart-legend span { display: inline-flex; align-items: center; gap: .35rem; }
.annual-chart-legend i { width: .8rem; height: .65rem; display: inline-block; border-radius: .15rem; }
.annual-chart-legend i.income { background: var(--teal); }
.annual-chart-legend i.expense { background: var(--navy-2); }
.annual-chart-legend i.financing { background: #7467d8; }
.annual-chart-legend i.net { width: 1rem; height: .18rem; background: var(--amber); border-radius: 999px; }
.annual-chart-scroll { overflow-x: auto; padding: 0 1rem 1rem; }
.annual-chart-svg { width: 100%; min-width: 760px; height: 320px; display: block; }
.annual-grid { stroke: #e7edf3; stroke-width: 1; }
.annual-zero { stroke: #9aa8b8; stroke-width: 1.2; }
.annual-axis { fill: var(--muted); font-size: 11px; }
.annual-bar { rx: 4px; }
.annual-bar.income { fill: var(--teal); }
.annual-bar.expense { fill: var(--navy-2); }
.annual-bar.financing { fill: #7467d8; }
.annual-net-line { fill: none; stroke: var(--amber); stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.annual-net-point { stroke: white; stroke-width: 2; }
.annual-net-point.positive-point { fill: var(--teal-dark); }
.annual-net-point.negative-point { fill: var(--red); }
.workbench-category-content { padding: .15rem 1.05rem 1.15rem; }
.workbench-analytics-entry { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .95rem; padding: .9rem 1rem; background: white; border: 1px solid var(--line); border-radius: .7rem; }
.workbench-analytics-entry strong, .workbench-analytics-entry span { display: block; }
.workbench-analytics-entry strong { font-size: .85rem; }
.workbench-analytics-entry span { margin-top: .2rem; color: var(--muted); font-size: .74rem; }
.positive { color: var(--teal-dark) !important; }
.negative { color: var(--red) !important; }
.analytics-filter-panel { margin-bottom: .95rem; overflow: visible; }
#analytics-filter { padding: 0 1.05rem 1rem; }
.analytics-primary-filters { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .8rem; }
.analytics-dimension-title { display: flex; align-items: baseline; gap: .7rem; margin: 1rem 0 .55rem; }
.analytics-dimension-title strong { color: var(--navy); font-size: .82rem; }
.analytics-dimension-title span { color: var(--muted); font-size: .72rem; }
.analytics-dimension-title.inline { grid-column: 1 / -1; margin: .25rem 0 0; padding-top: .8rem; border-top: 1px solid var(--line); }
.analytics-dimension-filters { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.analytics-primary-filters label, .analytics-dimension-filters label { align-content: start; font-size: .76rem; }
.analytics-filter-actions { display: flex; justify-content: flex-end; gap: .65rem; margin-top: 1rem; padding-top: .85rem; border-top: 1px solid var(--line); }
.analytics-kpis { margin-bottom: .95rem; }
.analytics-kpis .kpi-card { min-height: 154px; }
.original-currency-panel { margin-bottom: .95rem; }
.original-currency-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; padding: .1rem 1.05rem 1.1rem; }
.original-currency-grid article { padding: .9rem 1rem; border: 1px solid var(--line); border-radius: .65rem; background: #f7fafb; }
.original-currency-grid span, .original-currency-grid strong, .original-currency-grid small { display: block; }
.original-currency-grid span { color: var(--muted); font-size: .74rem; font-weight: 800; }
.original-currency-grid strong { margin-top: .3rem; color: var(--navy); font-size: 1.55rem; font-variant-numeric: tabular-nums; }
.original-currency-grid small { margin-top: .35rem; color: var(--muted); font-size: .68rem; }
.analytics-trend { display: inline-flex; width: fit-content; margin-top: .55rem; padding: .22rem .48rem; border-radius: 999px; font-size: .68rem; font-weight: 800; }
.analytics-trend.good { color: var(--teal-dark); background: var(--teal-soft); }
.analytics-trend.bad { color: var(--red); background: var(--red-soft); }
.analytics-trend.neutral { color: var(--muted); background: #edf1f5; }
.analytics-ratio-strip { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; margin-bottom: .95rem; }
.analytics-ratio-strip article { padding: .8rem 1rem; background: white; border: 1px solid var(--line); border-radius: .7rem; box-shadow: 0 8px 24px rgba(24,48,74,.035); }
.analytics-ratio-strip article > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.analytics-ratio-strip article span { color: #526174; font-size: .78rem; font-weight: 800; }
.analytics-ratio-strip article strong { font-size: 1.15rem; }
.analytics-ratio-strip article p { margin: .3rem 0 0; color: var(--muted); font-size: .68rem; }
.analytics-ratio-strip > small { grid-column: 1 / -1; color: var(--muted); font-size: .68rem; text-align: right; }
.analytics-cashflow-panel { margin-bottom: .95rem; }
.cashflow-legend { display: flex; align-items: center; gap: 1rem; padding: .2rem 1.05rem .8rem; color: var(--muted); font-size: .75rem; }
.cashflow-legend span { display: inline-flex; align-items: center; gap: .35rem; }
.cashflow-legend i { width: .7rem; height: .7rem; display: inline-block; border-radius: .18rem; }
.cashflow-legend i.income { background: var(--teal); }
.cashflow-legend i.expense { background: var(--navy-2); }
.cashflow-legend i.financing { background: #7467d8; }
.cashflow-legend small { margin-left: auto; }
.cashflow-scroll { overflow-x: auto; padding: 0 1rem 1rem; }
.cashflow-bars { height: 285px; display: flex; align-items: stretch; gap: .65rem; padding: .85rem .6rem .35rem; background: linear-gradient(to top,transparent 24.5%,#edf1f5 25%,transparent 25.5%,transparent 49.5%,#edf1f5 50%,transparent 50.5%,transparent 74.5%,#edf1f5 75%,transparent 75.5%); border-bottom: 1px solid var(--line); }
.cashflow-month { min-width: 72px; flex: 1 0 72px; display: grid; grid-template-rows: minmax(0,1fr) auto auto; gap: .35rem; text-align: center; }
.cashflow-plot { min-height: 0; display: flex; align-items: flex-end; justify-content: center; gap: .28rem; }
.cashflow-bar { width: 22%; min-width: 12px; max-width: 20px; display: block; border-radius: .28rem .28rem 0 0; }
.cashflow-bar.income { background: linear-gradient(#39c8b9,var(--teal-dark)); }
.cashflow-bar.expense { background: linear-gradient(#53718c,var(--navy)); }
.cashflow-bar.financing { background: linear-gradient(#9a8ff0,#6558c7); }
.cashflow-month > strong { color: #526174; font-size: .72rem; }
.cashflow-month > small { font-size: .68rem; font-weight: 800; white-space: nowrap; }
.analytics-two-column { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .95rem; margin-bottom: .95rem; }
.analytics-two-purpose { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .95rem; margin-bottom: .95rem; }
.break-even-result { display: grid; gap: .35rem; padding: .2rem 1.05rem 1.15rem; }
.break-even-result span { color: var(--muted); font-size: .76rem; font-weight: 750; }
.break-even-result strong { font-size: 1.75rem; }
.break-even-result small { color: var(--muted); line-height: 1.5; }
.funding-overview-values { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; padding: .2rem 1.05rem 1.15rem; }
.funding-overview-values > div { padding: .75rem; border-radius: .6rem; background: #f5f8fa; }
.funding-overview-values span, .funding-overview-values strong { display: block; }
.funding-overview-values span { color: var(--muted); font-size: .68rem; }
.funding-overview-values strong { margin-top: .25rem; font-size: .86rem; }
.analytics-split { display: grid; gap: 1rem; padding: .25rem 1.05rem 1.1rem; }
.analytics-split section + section { padding-top: .9rem; border-top: 1px solid var(--line); }
.analytics-split h3 { margin: 0 0 .7rem; color: #526174; font-size: .78rem; }
.analytics-breakdown { display: grid; gap: .75rem; }
.analytics-breakdown-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .3rem .8rem; align-items: end; }
.analytics-breakdown-row > div:first-child { min-width: 0; }
.analytics-breakdown-row span, .analytics-breakdown-row small { display: block; }
.analytics-breakdown-row span { overflow: hidden; font-size: .79rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.analytics-breakdown-row small { margin-top: .12rem; color: var(--muted); font-size: .68rem; }
.analytics-breakdown-row > strong { font-size: .78rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.analytics-breakdown-value { text-align: right; }
.analytics-breakdown-value strong, .analytics-breakdown-value small { display: block; }
.analytics-breakdown-value strong { font-size: .78rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.analytics-breakdown-value small { margin-top: .12rem; color: var(--teal-dark); font-size: .7rem; font-weight: 850; }
.analytics-progress { grid-column: 1 / -1; height: .38rem; overflow: hidden; background: #edf1f5; border-radius: 999px; }
.analytics-progress i { height: 100%; display: block; background: linear-gradient(90deg,var(--teal-dark),#43cbbb); border-radius: inherit; }
.analytics-balance-panel { margin-bottom: .95rem; }
.analytics-account-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .85rem; padding: .25rem 1.05rem 1.1rem; }
.analytics-account-card { padding: 1rem; background: linear-gradient(145deg,#fff,#f4f9f8); border: 1px solid #beddd8; border-radius: .7rem; }
.analytics-account-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.analytics-account-title strong, .analytics-account-title span { display: block; }
.analytics-account-title strong { font-size: .95rem; }
.analytics-account-title span { margin-top: .22rem; color: var(--muted); font-size: .73rem; }
.analytics-account-title em { color: var(--muted); font-size: .75rem; font-style: normal; }
.analytics-account-balance { margin: 1rem 0; padding-bottom: .9rem; border-bottom: 1px solid #dce9e7; }
.analytics-account-balance span, .analytics-account-balance strong { display: block; }
.analytics-account-balance span { color: var(--muted); font-size: .72rem; }
.analytics-account-balance strong { margin-top: .25rem; font-size: 1.45rem; }
.analytics-account-movements { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .65rem; }
.analytics-account-movements span, .analytics-account-movements strong { display: block; }
.analytics-account-movements span { color: var(--muted); font-size: .68rem; }
.analytics-account-movements strong { margin-top: .2rem; font-size: .76rem; white-space: nowrap; }
.table-toolbar { display: flex; flex-wrap: wrap; gap: .65rem; padding: 1rem; border-bottom: 1px solid var(--line); }
.table-toolbar input, .table-toolbar select { width: auto; min-width: 160px; }
.payment-filter-toolbar { display: block; }
.payment-toolbar-main { display: flex; align-items: center; gap: .65rem; }
.payment-toolbar-main > input[name="q"] { width: min(34rem, 45vw); min-width: 18rem; }
.filter-toggle[aria-expanded="true"] { color: white; background: var(--navy); border-color: var(--navy); }
.active-filter-chips { display: flex; flex-wrap: wrap; gap: .45rem; padding-top: .75rem; }
.active-filter-chips[hidden] { display: none; }
.filter-chip { display: inline-flex; align-items: center; gap: .45rem; min-height: 1.9rem; padding: .3rem .65rem; color: var(--teal-dark); background: var(--teal-soft); border: 0; border-radius: 999px; font-size: .72rem; font-weight: 800; cursor: pointer; }
.filter-chip b { font-size: .9rem; line-height: 1; }
.payment-filter-panel { margin-top: .9rem; padding: 1rem; background: #f7f9fb; border: 1px solid var(--line); border-radius: .7rem; }
.payment-filter-panel[hidden] { display: none; }
.filter-panel-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .85rem; }
.income-filter-toolbar .filter-panel-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.filter-panel-grid > label { display: grid; align-content: start; gap: .35rem; min-width: 0; color: #526174; font-size: .74rem; font-weight: 800; }
.filter-panel-grid input,
.filter-panel-grid select { width: 100%; min-width: 0; background: white; }
.filter-range-inputs { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: .35rem; }
.filter-range-inputs em { color: var(--muted); font-style: normal; font-weight: 500; }
.filter-panel-actions { display: flex; justify-content: flex-end; gap: .65rem; margin-top: 1rem; padding-top: .85rem; border-top: 1px solid var(--line); }
.push-right { margin-left: auto; }
.data-table-wrap { overflow: auto; }
.data-table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.data-table th { position: sticky; top: 0; padding: .72rem .8rem; color: #526174; background: #f7f9fb; border-bottom: 1px solid var(--line); text-align: left; white-space: nowrap; }
.data-table td { padding: .74rem .8rem; border-bottom: 1px solid #edf1f5; vertical-align: top; }
.data-table tbody tr:hover { background: #f7fbfb; }
.data-table tbody tr[data-action] { cursor: pointer; }
.data-table td small { display: block; margin-top: .24rem; color: var(--muted); }
.money { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.data-table th.money { text-align: right; }
.data-table .income-arrival { text-align: left; font-variant-numeric: tabular-nums; white-space: nowrap; }
.data-table.transaction-table th,
.data-table.transaction-table td,
.data-table.transaction-table th.money,
.data-table.transaction-table td.money,
.data-table.transaction-table .income-arrival { text-align: left; }
.transaction-table { table-layout: auto; }
.expense-transaction-table { min-width: 70rem; }
.income-transaction-table { min-width: 80rem; }
.capital-transaction-table { min-width: 76rem; }
.investor-summary-panel { margin-bottom: .95rem; }
.investor-summary-total { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin: 0 1.05rem .85rem; padding: .9rem 1rem; background: linear-gradient(135deg,var(--teal-soft),#f5fbfa); border: 1px solid #bfe4de; border-radius: .7rem; }
.investor-summary-total span { color: var(--teal-dark); font-size: .78rem; font-weight: 800; }
.investor-summary-total strong { font-size: 1.35rem; }
.investor-contribution-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; padding: 0 1.05rem 1.1rem; }
.investor-contribution-list article { padding: .85rem; background: #fff; border: 1px solid var(--line); border-radius: .65rem; }
.investor-contribution-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: .55rem; }
.investor-contribution-head strong, .investor-contribution-head small, .investor-contribution-head em { display: block; }
.investor-contribution-head strong { font-size: .84rem; }
.investor-contribution-head small { margin-top: .15rem; color: var(--muted); font-size: .68rem; }
.investor-contribution-head > div:last-child { text-align: right; }
.investor-contribution-head em { margin-top: .15rem; color: var(--teal-dark); font-size: .76rem; font-style: normal; font-weight: 850; }
.capital-allocation-section { padding: 1rem; border: 1px solid var(--line); border-radius: .75rem; background: #f8fafb; }
.capital-allocation-section .section-heading { margin-bottom: .75rem; }
.capital-allocation-section .section-heading p { margin: .2rem 0 0; color: var(--muted); font-size: .75rem; }
.capital-allocation-list { display: grid; gap: .65rem; }
.capital-allocation-row { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,1fr) 7rem 2.5rem; gap: .65rem; align-items: end; padding: .75rem; border: 1px solid #dce5eb; border-radius: .65rem; background: #fff; }
.capital-allocation-row label { min-width: 0; }
.capital-allocation-percent { min-height: 3.08rem; display: flex; flex-direction: column; justify-content: center; padding: .45rem .65rem; border: 1px solid var(--line); border-radius: .55rem; background: var(--teal-soft); }
.capital-allocation-percent span { color: var(--muted); font-size: .68rem; }
.capital-allocation-percent strong { margin-top: .12rem; color: var(--teal-dark); font-size: .9rem; font-variant-numeric: tabular-nums; }
.capital-allocation-remove { width: 2.5rem; height: 3.08rem; border: 1px solid #f0c7ca; border-radius: .55rem; color: var(--danger); font-size: 1.25rem; }
.capital-allocation-remove:disabled { opacity: .35; cursor: not-allowed; }
.capital-allocation-summary { display: flex; justify-content: flex-end; gap: 1.2rem; margin-top: .75rem; padding: .65rem .75rem; border-radius: .55rem; background: #eef3f6; color: var(--muted); font-size: .78rem; }
.capital-allocation-summary strong { color: var(--ink); }
.capital-allocation-summary [data-allocation-balance] { color: #a56b00; font-weight: 800; }
.capital-allocation-summary [data-allocation-balance].complete { color: var(--teal-dark); }
.capital-allocation-summary [data-allocation-balance].over { color: var(--danger); }
.capital-detail-allocations { margin-top: 1rem; }
.capital-detail-allocation-list { display: grid; gap: .5rem; }
.capital-detail-allocation-list > div { display: grid; grid-template-columns: minmax(0,1fr) 10rem 6rem; gap: .75rem; align-items: center; padding: .72rem .85rem; border: 1px solid var(--line); border-radius: .6rem; background: #f8fafb; }
.capital-detail-allocation-list span, .capital-detail-allocation-list em { text-align: right; font-variant-numeric: tabular-nums; }
.capital-detail-allocation-list em { color: var(--teal-dark); font-style: normal; font-weight: 850; }
.capital-list-panel { overflow: visible; }
.transaction-table .col-date { width: 10.5rem; }
.transaction-table .col-group { width: 6rem; }
.transaction-table .col-count { width: 6rem; }
.transaction-table .col-category { width: 13rem; }
.transaction-table .col-account { width: 11rem; }
.transaction-table .col-amount { width: 11rem; }
.transaction-table .col-voucher { width: 6rem; }
.income-transaction-table .col-company { width: 22%; }
.income-transaction-table .col-detail { width: 24%; }
.expense-transaction-table .col-detail { width: auto; }
.data-table.transaction-table th,
.data-table.transaction-table td { padding: .85rem 1rem; vertical-align: middle; overflow-wrap: anywhere; }
.data-table.transaction-table th { height: 3.25rem; }
.data-table.transaction-table tbody tr { height: 4.75rem; }
.transaction-table th:nth-child(1),
.transaction-table td:nth-child(1),
.transaction-table th:last-child,
.transaction-table td:last-child { white-space: nowrap; }
.status-chip { display: inline-flex; align-items: center; min-height: 1.6rem; padding: .15rem .52rem; border-radius: 999px; color: #1f675e; background: var(--teal-soft); font-size: .72rem; font-weight: 800; }
.status-chip.off { color: #6d7884; background: #edf0f3; }
.panel-footer { padding: .85rem 1rem; border-top: 1px solid var(--line); }
.pagination { display: flex; align-items: center; justify-content: flex-end; gap: .8rem; color: var(--muted); font-size: .82rem; }
.pagination .button { min-height: 2.2rem; padding: .4rem .75rem; }
.page-info { color: var(--muted); font-size: .82rem; }
.empty-state { padding: 4rem 1rem; color: var(--muted); text-align: center; }
.empty-state p { margin: .45rem 0 0; }
.empty-inline { padding: 1.25rem; color: var(--muted); text-align: center; }
.modal { width: min(520px, calc(100% - 2rem)); padding: 0; border: 0; border-radius: .85rem; box-shadow: 0 28px 80px rgba(13,32,52,.28); }
.modal.large { width: min(850px, calc(100% - 2rem)); }
.modal::backdrop { background: rgba(10,25,42,.55); backdrop-filter: blur(3px); }
.modal-card { display: grid; gap: 1rem; padding: 1.3rem; }
.modal-card p { color: var(--muted); }
.modal-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.modal-heading h2, .section-heading h3 { margin: 0; }
.modal-heading .icon-button { width: 2.2rem; height: 2.2rem; border-radius: 50%; color: var(--muted); font-size: 1.45rem; }
.modal-heading .icon-button:hover { background: var(--soft); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .9rem; }
.expense-form-grid { align-items: start; }
.income-form-grid { grid-template-columns: repeat(3, minmax(0,1fr)); align-items: start; }
.span-2 { grid-column: 1 / -1; }
.check-row { display: flex; align-items: center; gap: .6rem; }
.check-row input { width: 1.1rem; min-height: auto; }
.detail-card { gap: 1.2rem; }
.detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .65rem; }
.detail-grid > div { min-height: 74px; padding: .75rem; background: var(--soft); border-radius: .55rem; }
.detail-grid span, .detail-grid strong { display: block; }
.detail-grid span { margin-bottom: .35rem; color: var(--muted); font-size: .75rem; }
.detail-grid strong { font-size: .9rem; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .7rem; }
.attachment-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
.attachment-entry { position: relative; min-width: 0; }
.attachment-item { display: flex; align-items: center; gap: .7rem; min-height: 100%; padding: .7rem 4rem .7rem .7rem; color: inherit; border: 1px solid var(--line); border-radius: .55rem; text-decoration: none; }
.attachment-item:hover { border-color: var(--teal); background: #f5fbfa; }
.attachment-item strong, .attachment-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.attachment-item small { margin-top: .2rem; color: var(--muted); font-size: .72rem; }
.attachment-delete { position: absolute; top: 50%; right: .65rem; padding: .3rem .45rem; color: var(--red); background: transparent; border: 0; transform: translateY(-50%); cursor: pointer; font-size: .75rem; font-weight: 800; }
.attachment-delete:hover { background: var(--red-soft); border-radius: .35rem; }
.file-icon { width: 2.2rem; height: 2.2rem; display: grid; place-items: center; flex: 0 0 auto; color: var(--teal-dark); background: var(--teal-soft); border-radius: .45rem; font-size: .68rem; font-weight: 900; }
.note-box, .backup-callout { padding: .85rem; color: #4d5d6e; background: #f7f9fb; border: 1px solid var(--line); border-radius: .55rem; line-height: 1.6; }
.drop-zone { padding: 1.2rem; color: var(--muted); background: #f8fafb; border: 1px dashed #9badbd; border-radius: .7rem; text-align: center; }
.order-editor { display: grid; gap: .75rem; padding: 1rem; background: #f7fafb; border: 1px solid var(--line); border-radius: .7rem; }
.order-editor .section-heading { margin: 0; }
.order-editor .section-heading p { margin: .25rem 0 0; font-size: .78rem; }
.field-hint { display: block; margin-top: .32rem; color: var(--muted); font-size: .72rem; font-weight: 500; }
.voucher-field { padding: .75rem; background: #f8fafb; border: 1px dashed #9badbd; border-radius: .55rem; }
.voucher-field input[type="file"] { min-height: auto; padding: .45rem; background: white; }
.voucher-selection-list { display: grid; gap: .42rem; margin-top: .55rem; }
.voucher-selection-item { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: .6rem; align-items: center; padding: .5rem; background: white; border: 1px solid var(--line); border-radius: .48rem; }
.voucher-selection-item > span:nth-child(2) { min-width: 0; }
.voucher-selection-item strong, .voucher-selection-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.voucher-selection-item strong { font-size: .75rem; }
.voucher-selection-item small { margin-top: .14rem; color: var(--muted); font-size: .68rem; }
.voucher-selection-item button { padding: .3rem .5rem; color: var(--red); background: var(--red-soft); border: 0; border-radius: .35rem; cursor: pointer; font-size: .7rem; font-weight: 800; }
.voucher-selection-item .file-icon { width: 1.8rem; height: 1.8rem; }
.form-voucher-section { margin: .2rem 0 1rem; padding: .9rem; background: #f8fafb; border: 1px solid var(--line); border-radius: .65rem; }
.form-voucher-section .section-heading { margin-bottom: .6rem; }
.form-voucher-section .section-heading p { margin: .2rem 0 0; color: var(--muted); font-size: .72rem; }
.ocr-status { min-height: 1rem; }
.ocr-success { color: var(--teal-dark); font-weight: 800; }
.ocr-warning { color: #9a5c00; font-weight: 800; }
input.ocr-filled { border-color: var(--teal); background: #f0fbf8; box-shadow: 0 0 0 3px rgba(15,159,145,.12); }
.order-row { position: relative; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; align-items: start; margin-bottom: .8rem; padding: 1rem 3.4rem 1rem 1rem; background: white; border: 1px solid var(--line); border-radius: .65rem; }
.order-row label { min-width: 0; align-content: start; font-size: .74rem; }
.order-row input, .order-row select { min-width: 0; height: 2.55rem; min-height: 2.55rem; padding: .58rem .65rem; font-size: .82rem; }
.order-row input[readonly] { color: #425166; background: #f5f8fa; }
.order-row .field-hint { min-height: 1rem; margin-top: 0; line-height: 1rem; }
.remove-order { position: absolute; top: .75rem; right: .75rem; color: var(--red); font-size: 1.2rem; }
.paste-orders { padding: .7rem; background: white; border: 1px solid var(--line); border-radius: .55rem; }
.paste-orders summary { cursor: pointer; color: var(--teal-dark); font-size: .82rem; font-weight: 800; }
.paste-orders p { margin: .55rem 0; font-size: .75rem; }
.paste-orders textarea { margin-bottom: .55rem; font-size: .8rem; }
.reconcile-strip { display: flex; flex-wrap: wrap; gap: .7rem 1.4rem; padding: .75rem; color: var(--muted); background: white; border-radius: .5rem; font-size: .8rem; }
.reconcile-strip span:last-child { margin-left: auto; color: var(--teal-dark); font-weight: 800; }
.order-detail-table { max-height: 320px; border: 1px solid var(--line); border-radius: .55rem; }
.modal-actions { display: flex; justify-content: flex-end; gap: .65rem; }
.modal-actions .danger { margin-right: auto; }
.accounts-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); max-width: 650px; }
.account-panel { margin-top: .95rem; }
.account-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .85rem; padding: 0 1rem 1rem; }
.account-card { display: grid; gap: .35rem; min-height: 180px; padding: 1rem; background: linear-gradient(145deg,#fff,#f5f9fb); border: 1px solid var(--line); border-radius: .7rem; }
.account-card[data-action] { cursor: pointer; }
.account-card:hover { border-color: #9acfc9; box-shadow: 0 10px 26px rgba(19,57,76,.08); }
.account-card h3, .account-card p { margin: 0; }
.account-card p, .account-card small { color: var(--muted); font-size: .76rem; }
.account-card .account-company-name { color: var(--ink); font-size: 1.08rem; font-weight: 900; line-height: 1.35; }
.account-card .account-display-name { overflow: hidden; color: #607086; font-size: .8rem; font-weight: 600; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.account-card > strong { margin-top: auto; font-size: 1.28rem; }
.account-head { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: .8rem; }
.receipt-account-panel { overflow: visible; }
.account-type-sections { display: grid; gap: 1rem; }
.account-type-sections .panel-header { align-items: center; }
.account-type-sections .panel-header h2 { margin: .18rem 0 0; }
.actual-account-panel { border-color: #b8ddd8; }
.actual-account-panel > .panel-header { background: linear-gradient(90deg,#f0fbf9,white 55%); }
.collection-account-panel > .panel-header { background: linear-gradient(90deg,#f5f8fb,white 55%); }
.compact-empty { padding: 2rem 1rem; }
.account-company-groups { display: grid; gap: .9rem; padding: 0 1rem 1rem; }
.account-company-group { overflow: hidden; border: 1px solid var(--line); border-radius: .65rem; }
.account-company-group > header { padding: .8rem 1rem; background: #f4f8fa; border-bottom: 1px solid var(--line); }
.account-company-group > header > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.account-company-group h3 { margin: 0; font-size: .92rem; }
.account-company-group header span { color: var(--muted); font-size: .75rem; }
.receipt-account-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1rem; align-items: center; min-height: 64px; padding: .72rem 1rem; border-top: 1px solid #edf1f5; }
.account-company-group .receipt-account-row:first-child { border-top: 0; }
.receipt-account-row strong, .receipt-account-row small { display: block; }
.receipt-account-row small { margin-top: .28rem; color: var(--muted); font-size: .74rem; }
.inactive-account-panel { margin-top: .95rem; border-color: #e7dfe0; }
.inactive-account-list { padding: 0 1rem 1rem; }
.inactive-account-list .receipt-account-row { background: #faf8f8; }
.voucher-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: .8rem; padding: 1rem; }
.voucher-card { min-width: 0; padding: .65rem; color: inherit; border: 1px solid var(--line); border-radius: .65rem; text-decoration: none; }
.voucher-card:hover { border-color: var(--teal); box-shadow: 0 8px 22px rgba(16,61,76,.08); }
.voucher-preview { height: 130px; display: grid; place-items: center; margin-bottom: .65rem; overflow: hidden; color: var(--teal-dark); background: #edf5f5; border-radius: .45rem; font-weight: 900; }
.voucher-preview img { width: 100%; height: 100%; object-fit: cover; }
.voucher-card strong, .voucher-card p, .voucher-card small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.voucher-card p { margin: .25rem 0; color: var(--muted); font-size: .74rem; }
.voucher-card small { color: #8a96a3; font-size: .69rem; }
.settings-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .95rem; }
.span-settings { grid-column: 1 / -1; }
.simple-list, .audit-list { max-height: 520px; overflow: auto; }
.simple-list > div, .audit-list > div { display: grid; gap: .2rem; padding: .75rem 1rem; border-top: 1px solid #edf1f5; }
.simple-list > .simple-list-row { grid-template-columns: 1fr auto; align-items: center; }
.edit-link { color: var(--teal-dark); font-size: .78rem; font-weight: 800; }
.row-actions { display: flex; align-items: center; justify-content: flex-end; gap: .65rem; }
.danger-link { color: var(--red); font-size: .78rem; font-weight: 800; }
.restore-link { color: var(--teal-dark); font-size: .78rem; font-weight: 800; }
.simple-list small, .audit-list small { color: var(--muted); }
.audit-list > div { grid-template-columns: 100px 1fr auto; align-items: center; font-size: .78rem; }
.audit-list span { color: var(--muted); }
.category-table { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 1rem; padding: 0 1rem 1rem; }
.category-table > div { display: grid; grid-template-columns: 62px 1fr 1fr auto; gap: .6rem; align-items: center; padding: .65rem 0; border-bottom: 1px solid #edf1f5; font-size: .8rem; }
.category-split-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; padding: 0 1rem 1rem; }
.category-master-group { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: .65rem; }
.category-master-group > header { padding: .85rem 1rem; border-bottom: 1px solid var(--line); }
.category-master-group > header > div { display: flex; align-items: center; gap: .7rem; }
.category-master-group h3 { margin: 0; font-size: .95rem; }
.category-master-group header small { display: block; margin-top: .16rem; color: var(--muted); font-size: .7rem; }
.category-direction-mark { width: 2rem; height: 2rem; display: grid; place-items: center; flex: 0 0 auto; border-radius: .5rem; font-size: .76rem; font-weight: 900; }
.expense-group > header { background: #fff8f2; }
.expense-group .category-direction-mark { color: #9a4d16; background: #ffe7d3; }
.income-group > header { background: #f2fbf8; }
.income-group .category-direction-mark { color: var(--teal-dark); background: var(--teal-soft); }
.category-master-list { padding: 0 .9rem .5rem; }
.category-master-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .75rem; align-items: center; min-height: 60px; padding: .68rem .1rem; border-bottom: 1px solid #edf1f5; }
.category-master-row:last-child { border-bottom: 0; }
.category-master-row strong, .category-master-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.category-master-row strong { font-size: .82rem; }
.category-master-row small { margin-top: .24rem; color: var(--muted); font-size: .72rem; }
.inactive-master { border-color: #ead8da; }
.deleted-master-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; padding: 0 1rem 1rem; }
.deleted-master-grid > div { min-width: 0; padding: .85rem; background: #faf8f8; border: 1px solid #eee2e3; border-radius: .6rem; }
.deleted-master-grid h3 { margin: 0 0 .5rem; font-size: .9rem; }
.deleted-master-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .7rem; align-items: center; padding: .65rem 0; border-top: 1px solid #eee2e3; }
.deleted-master-row strong, .deleted-master-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.deleted-master-row small { margin-top: .25rem; color: var(--muted); font-size: .7rem; }
.history-sync-note { margin: 0; padding: .75rem; color: #17655d !important; background: var(--teal-soft); border-radius: .5rem; font-size: .8rem; }
.backup-callout { margin: 0 1rem 1rem; }
.backup-callout code { display: block; margin-top: .4rem; color: var(--navy); }
.backup-callout p { margin: .35rem 0 0; font-size: .78rem; }
.toast-region { position: fixed; right: 1rem; bottom: 1rem; z-index: 100; display: grid; gap: .5rem; }
.toast { max-width: 360px; padding: .8rem 1rem; color: white; background: var(--navy); border-radius: .55rem; box-shadow: var(--shadow); }
.mobile-only { display: none; }
@media (max-width: 1350px) { .dashboard-kpis { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 1050px) { .kpi-grid, .dashboard-kpis { grid-template-columns: repeat(2, minmax(0,1fr)); } .dashboard-grid { grid-template-columns: 1fr; } }
@media (max-width: 1200px) { .voucher-grid { grid-template-columns: repeat(4,minmax(0,1fr)); } .account-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .filter-panel-grid, .income-filter-toolbar .filter-panel-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .analytics-primary-filters { grid-template-columns: repeat(2,minmax(0,1fr)); } .analytics-two-column, .analytics-two-purpose { grid-template-columns: 1fr; } #workbench-filter { align-items: stretch; flex-direction: column; } .workbench-filter-grid { width: 100%; grid-template-columns: repeat(2,minmax(0,1fr)); } .workbench-filter-actions { justify-content: flex-end; } }
@media (max-width: 760px) {
  .login-screen { grid-template-columns: 1fr; }
  .login-brand { padding: 2rem; }
  .login-brand p:last-child { display: none; }
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: fixed; z-index: 50; width: 244px; transform: translateX(-105%); transition: transform .2s ease; box-shadow: var(--shadow); }
  .sidebar.open { transform: translateX(0); }
  .mobile-only { display: inline-grid; }
  .topbar { padding: .9rem 1rem; }
  .connection-state { display: none; }
  #page-content { padding: 1rem; }
  .kpi-grid { grid-template-columns: 1fr; }
  .form-grid, .income-form-grid, .detail-grid, .settings-grid, .category-table, .category-split-grid, .attachment-list, .account-grid, .deleted-master-grid { grid-template-columns: 1fr; }
  .span-2, .span-settings { grid-column: auto; }
  .capital-allocation-row { grid-template-columns: 1fr; }
  .capital-allocation-remove { width: 100%; height: 2.5rem; }
  .capital-allocation-summary { flex-direction: column; gap: .25rem; }
  .capital-detail-allocation-list > div { grid-template-columns: 1fr; }
  .capital-detail-allocation-list span, .capital-detail-allocation-list em { text-align: left; }
  .voucher-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .table-toolbar input, .table-toolbar select { width: 100%; }
  .payment-toolbar-main { flex-wrap: wrap; }
  .payment-toolbar-main > input[name="q"] { width: 100%; min-width: 0; }
  .filter-panel-grid, .income-filter-toolbar .filter-panel-grid { grid-template-columns: 1fr; }
  .analytics-primary-filters, .analytics-dimension-filters, .analytics-account-grid, .investor-contribution-list, .original-currency-grid { grid-template-columns: 1fr; }
  .analytics-ratio-strip { grid-template-columns: 1fr; }
  .workbench-filter-grid, .workbench-kpis { grid-template-columns: 1fr; }
  .project-funds-summary, .project-funds-accounts, .funding-overview-values { grid-template-columns: 1fr; }
  .project-funds-accounts article { align-items: flex-start; flex-direction: column; }
  .workbench-analytics-entry { align-items: stretch; flex-direction: column; }
  .analytics-account-movements { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .push-right { margin-left: 0; }
  .audit-list > div { grid-template-columns: 1fr; }
  .receipt-account-row { grid-template-columns: 1fr; }
  .receipt-account-row .row-actions { justify-content: flex-start; }
  .order-row { grid-template-columns: 1fr; padding-right: 3.4rem; }
  .order-row .remove-order { grid-column: 2; justify-self: end; }
}
