:root {
  --red-dark: #780000;
  --red: #c1121f;
  --beige: #fdf0d5;
  --blue: #003049;
  --blue-soft: #669bbc;
  --ink: #1f2933;
  --muted: #637381;
  --bg: #f6f8fa;
  --surface: #ffffff;
  --border: #dfe5ea;
  --border-strong: #cbd5df;
  --success: #0f766e;
  --warning: #b45309;
  --danger: #b42318;
  --shadow: 0 8px 28px rgba(0, 48, 73, 0.08);
  --radius: 14px;
  --sidebar-width: 236px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Inter", "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.5;
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--blue); line-height: 1.2; }
h2 { font-size: clamp(1.55rem, 3vw, 2.05rem); margin-bottom: .45rem; }
h3 { margin-bottom: .45rem; }
small { color: var(--muted); }
code {
  padding: .08rem .32rem;
  border-radius: 5px;
  background: #eef2f5;
  color: var(--red-dark);
}

.kicker {
  margin: 0 0 .24rem;
  color: var(--red);
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: .75rem;
  font-weight: 800;
}

.back-link {
  display: inline-block;
  margin-bottom: 1.4rem;
  color: var(--blue);
  font-weight: 700;
  text-decoration-thickness: 2px;
}

.btn {
  border: 1px solid transparent;
  border-radius: 10px;
  padding: .7rem 1rem;
  font-weight: 750;
  text-decoration: none;
  transition: transform 140ms ease, box-shadow 140ms ease, background-color 140ms ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  white-space: nowrap;
}
.btn:hover, .btn:focus-visible { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,48,73,.10); }
.btn-primary { background: var(--blue); color: #fff; }
.btn-outline { background: #fff; color: var(--blue); border-color: var(--border-strong); }
.btn-outline:hover { border-color: var(--blue-soft); }
.file-button { position: relative; }

.input {
  width: 100%;
  min-height: 42px;
  padding: .67rem .76rem;
  border: 1px solid var(--border-strong);
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
}
textarea.input { resize: vertical; }
.input:focus, select:focus, textarea:focus {
  outline: 3px solid rgba(102,155,188,.22);
  border-color: var(--blue-soft);
}
.field-label { display: block; color: var(--blue); font-weight: 700; margin-bottom: .35rem; }

/* Start */
.start-screen {
  min-height: 100vh;
  padding: 4rem 1rem;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at top right, rgba(102,155,188,.18), transparent 34%),
    linear-gradient(160deg, var(--beige) 0%, #fff 48%, #f5f8fa 100%);
}
.start-card {
  width: min(100%, 980px);
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(0,48,73,.10);
  border-radius: 24px;
  padding: clamp(1.4rem, 4vw, 3rem);
  box-shadow: var(--shadow);
}
.start-card h1 { font-size: clamp(2.25rem, 6vw, 4rem); margin-bottom: .75rem; }
.start-lead { max-width: 760px; color: #405566; font-size: 1.08rem; }
.privacy-callout {
  display: flex;
  flex-direction: column;
  gap: .2rem;
  margin: 1.4rem 0;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(15,118,110,.22);
  border-radius: 12px;
  background: rgba(15,118,110,.06);
}
.privacy-callout strong { color: var(--success); }
.start-actions-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; margin-top: 1.4rem; }
.start-option { border: 1px solid var(--border); border-radius: 16px; padding: 1.2rem; background: #fff; }
.start-option h2 { font-size: 1.25rem; }
.start-option p { color: var(--muted); min-height: 48px; }
.start-option .input { margin-bottom: .8rem; }
.start-option .btn { width: 100%; }
.start-footnote { margin: 1.3rem 0 0; color: var(--muted); font-size: .92rem; }

/* Main shell */
.workspace-app { min-height: 100vh; }
.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  width: var(--sidebar-width);
  padding: 1.15rem .9rem;
  background: var(--blue);
  color: #fff;
  display: flex;
  flex-direction: column;
  z-index: 20;
}
.sidebar-brand { padding: .4rem .55rem 1.1rem; border-bottom: 1px solid rgba(255,255,255,.12); }
.sidebar-brand a { color: #fff; text-decoration: none; font-weight: 800; display: block; }
.sidebar-brand span { display: block; color: rgba(255,255,255,.70); margin-top: .2rem; font-size: .86rem; }
.sidebar-nav { display: grid; gap: .35rem; margin-top: 1rem; }
.nav-item {
  width: 100%;
  border: 0;
  border-radius: 9px;
  padding: .72rem .8rem;
  text-align: left;
  background: transparent;
  color: rgba(255,255,255,.78);
  font-weight: 700;
}
.nav-item:hover, .nav-item.active { background: rgba(255,255,255,.12); color: #fff; }
.sidebar-footer { margin-top: auto; padding: 1rem .5rem .2rem; border-top: 1px solid rgba(255,255,255,.12); }
.sidebar-footer small { display: block; margin-top: .35rem; color: rgba(255,255,255,.62); line-height: 1.35; }
.sidebar-text-btn {
  margin-top: .8rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.save-status { font-size: .83rem; font-weight: 800; }
.save-status.dirty { color: #ffd166; }
.save-status.saved { color: #8ee3cf; }

.workspace-main { margin-left: var(--sidebar-width); min-height: 100vh; padding: 0 clamp(1rem, 3vw, 2.2rem) 2.5rem; }
.workspace-topbar {
  min-height: 118px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid var(--border);
}
.topbar-label { margin: 0; color: var(--muted); font-size: .76rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.workspace-topbar h1 { margin: .1rem 0 .12rem; font-size: clamp(1.4rem, 3vw, 2rem); }
.topbar-date { margin: 0; color: var(--muted); font-size: .9rem; }
.topbar-actions, .button-row { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; }
.mobile-nav-wrap { display: none; }

.app-view { display: none; padding: 1.8rem 0; }
.app-view.active { display: block; }
.view-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1.25rem; }
.view-heading p:not(.kicker) { margin-bottom: 0; color: var(--muted); max-width: 760px; }

.panel {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1rem;
  box-shadow: 0 3px 14px rgba(0,48,73,.04);
}
.panel-heading, .section-action-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.panel-heading h3, .section-action-row h3 { margin-bottom: .2rem; }
.panel-heading p, .section-action-row p { margin-bottom: 0; color: var(--muted); }
.text-btn { border: 0; background: transparent; color: var(--red); font-weight: 750; padding: .2rem 0; }

.quick-add { display: flex; gap: .65rem; margin-bottom: 1rem; }
.quick-add .input { flex: 1; }
.metric-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .8rem; margin-bottom: 1rem; }
.metric-card {
  min-height: 112px;
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: #fff;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.metric-card > span { color: var(--muted); font-size: .88rem; font-weight: 700; }
.metric-card > strong { font-size: 2rem; color: var(--blue); }
.metric-card.warning > strong { color: var(--danger); }
.home-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.home-list, .home-projects { margin-top: .8rem; }
.home-list-item { display: flex; justify-content: space-between; gap: .8rem; padding: .72rem 0; border-bottom: 1px solid var(--border); }
.home-list-item:last-child { border-bottom: 0; }
.home-list-item strong, .home-list-item small { display: block; }
.home-list-item > span { color: var(--muted); white-space: nowrap; font-size: .9rem; }
.home-list-item > span.overdue, .overdue { color: var(--danger) !important; font-weight: 800; }
.home-project-item { padding: .65rem 0; }
.home-project-head { display: flex; justify-content: space-between; gap: .8rem; margin-bottom: .45rem; }
.home-project-head strong, .home-project-head small { display: block; }
.progress-track { width: 100%; height: 7px; background: #edf1f4; border-radius: 999px; overflow: hidden; }
.progress-track span { display: block; height: 100%; background: var(--blue-soft); border-radius: inherit; }
.money-stack { display: flex; flex-direction: column; gap: .2rem; margin-top: .4rem; }
.money-stack strong { color: var(--blue); font-size: 1.12rem; }
.money-stack small { display: block; }
.empty-state { margin: .65rem 0 0; color: var(--muted); }

/* Tasks */
.filters-row { display: grid; grid-template-columns: minmax(190px,1.4fr) repeat(3,minmax(140px,1fr)) auto; gap: .6rem; margin-bottom: .8rem; align-items: center; }
.filter-count { color: var(--muted); font-size: .9rem; white-space: nowrap; }
.table-panel { padding: 0; overflow: hidden; }
.table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; min-width: 850px; }
.data-table th, .data-table td { padding: .72rem .75rem; text-align: left; border-bottom: 1px solid var(--border); vertical-align: middle; }
.data-table th { background: #f8fafb; color: var(--blue); font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table td small { display: block; margin-top: .18rem; }
.task-done { opacity: .62; }
.task-done td:nth-child(2) strong { text-decoration: line-through; }
.complete-toggle { width: 25px; height: 25px; border: 1px solid var(--border-strong); border-radius: 7px; background: #fff; color: #fff; font-weight: 900; }
.complete-toggle.checked { background: var(--success); border-color: var(--success); }
.inline-select { width: 132px; border: 1px solid var(--border); border-radius: 8px; padding: .45rem; background: #fff; color: var(--ink); }
.priority { display: inline-block; padding: .18rem .45rem; border-radius: 999px; font-size: .77rem; font-weight: 800; }
.priority-high { background: rgba(180,35,24,.1); color: var(--danger); }
.priority-medium { background: rgba(180,83,9,.12); color: var(--warning); }
.priority-low { background: rgba(102,155,188,.16); color: var(--blue); }
.priority-none { background: #eef2f5; color: var(--muted); }
.empty-cell { text-align: center !important; color: var(--muted); padding: 2rem !important; }
.row-actions { display: flex; gap: .35rem; align-items: center; flex-wrap: wrap; }
.icon-btn { border: 0; background: #eef3f6; color: var(--blue); border-radius: 7px; padding: .38rem .52rem; font-size: .78rem; font-weight: 750; }
.icon-btn:hover { background: #e1e9ee; }
.icon-btn.danger { color: var(--danger); background: rgba(180,35,24,.06); }
.icon-btn.success { color: var(--success); background: rgba(15,118,110,.08); }

/* Projects */
.projects-layout { display: grid; grid-template-columns: 320px minmax(0,1fr); gap: 1rem; align-items: start; }
.areas-panel { position: sticky; top: 1rem; }
.mini-list { margin-top: .7rem; }
.mini-list-item { display: flex; justify-content: space-between; gap: .6rem; padding: .72rem 0; border-bottom: 1px solid var(--border); }
.mini-list-item:last-child { border-bottom: 0; }
.mini-list-item strong, .mini-list-item small { display: block; }
.section-mini-heading { margin-bottom: .65rem; }
.projects-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .85rem; }
.project-card { border: 1px solid var(--border); border-radius: 14px; padding: 1rem; background: #fff; }
.project-card-top { display: flex; justify-content: space-between; gap: .7rem; }
.project-card h3 { margin: .55rem 0 .25rem; }
.project-card p { margin-bottom: .7rem; color: var(--muted); }
.project-description { min-height: 44px; }
.project-meta { display: flex; justify-content: space-between; gap: .5rem; flex-wrap: wrap; color: var(--muted); font-size: .78rem; margin-top: .45rem; }
.badge { display: inline-block; padding: .17rem .48rem; border-radius: 999px; background: rgba(102,155,188,.14); color: var(--blue); font-size: .75rem; font-weight: 800; text-transform: capitalize; }
.status-active { background: rgba(15,118,110,.09); color: var(--success); }
.status-on_hold { background: rgba(180,83,9,.1); color: var(--warning); }
.status-completed { background: rgba(15,118,110,.09); color: var(--success); }

/* Calendar */
.calendar-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin-bottom: .7rem; }
.calendar-heading h3 { margin: 0; font-size: 1.35rem; }
.calendar-legend { display: flex; gap: .45rem; flex-wrap: wrap; }
.calendar-legend span { padding: .22rem .5rem; border-radius: 999px; font-size: .76rem; font-weight: 800; }
.event-task { background: rgba(102,155,188,.18); color: var(--blue); }
.event-project { background: rgba(193,18,31,.10); color: var(--red-dark); }
.event-payment { background: rgba(15,118,110,.11); color: var(--success); }
.event-card { background: rgba(180,83,9,.12); color: var(--warning); }
.calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); border: 1px solid var(--border); border-radius: 14px; overflow: hidden; background: #fff; }
.calendar-weekday { padding: .55rem; background: #f7f9fb; color: var(--muted); font-weight: 800; font-size: .76rem; text-align: center; border-right: 1px solid var(--border); }
.calendar-weekday:nth-child(7) { border-right: 0; }
.calendar-day { min-height: 118px; padding: .45rem; border-top: 1px solid var(--border); border-right: 1px solid var(--border); background: #fff; }
.calendar-day:nth-child(7n) { border-right: 0; }
.calendar-day.outside { background: #fafbfc; color: #a1adb7; }
.calendar-day.today { box-shadow: inset 0 0 0 2px var(--blue-soft); }
.calendar-day-number { font-size: .8rem; font-weight: 800; margin-bottom: .35rem; }
.calendar-day-events { display: grid; gap: .22rem; }
.calendar-event { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border-radius: 5px; padding: .2rem .28rem; font-size: .68rem; font-weight: 700; }
.calendar-event span { display: inline-block; width: 6px; height: 6px; border-radius: 50%; margin-right: .22rem; background: currentColor; }
.more-events { font-size: .67rem; }
.agenda-panel { margin-top: 1rem; }
.agenda-day { display: grid; grid-template-columns: 130px minmax(0,1fr); gap: .8rem; padding: .75rem 0; border-bottom: 1px solid var(--border); }
.agenda-day:last-child { border-bottom: 0; }
.agenda-date { color: var(--muted); font-weight: 800; font-size: .86rem; }
.agenda-events { display: grid; gap: .45rem; }
.agenda-item { display: flex; align-items: flex-start; gap: .55rem; }
.agenda-item strong, .agenda-item small { display: block; }
.event-dot { width: 9px; height: 9px; border-radius: 50%; margin-top: .33rem; background: currentColor; flex: 0 0 auto; }
.agenda-item.event-task { color: var(--blue); }
.agenda-item.event-project { color: var(--red-dark); }
.agenda-item.event-payment { color: var(--success); }
.agenda-item.event-card { color: var(--warning); }
.agenda-item div strong { color: var(--ink); }

/* Finance */
.month-input { width: 165px; }
.finance-tabs { display: flex; gap: .35rem; flex-wrap: wrap; margin-bottom: 1rem; border-bottom: 1px solid var(--border); }
.finance-tab { border: 0; background: transparent; color: var(--muted); font-weight: 800; padding: .65rem .75rem; border-bottom: 3px solid transparent; }
.finance-tab.active { color: var(--blue); border-bottom-color: var(--blue); }
.finance-tab-panel { display: none; }
.finance-tab-panel.active { display: block; }
.finance-metrics .metric-card { min-height: 130px; }
.finance-metrics .money-stack strong { font-size: 1.05rem; }
.finance-overview-grid { margin-top: .8rem; }
.breakdown-row { display: flex; justify-content: space-between; gap: .7rem; padding: .58rem 0; border-bottom: 1px solid var(--border); }
.breakdown-row:last-child { border-bottom: 0; }
.shortcut-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: .6rem; margin-top: .8rem; }
.shortcut-btn { min-height: 74px; border: 1px dashed var(--border-strong); border-radius: 10px; background: #fafcfd; color: var(--blue); font-weight: 800; }
.section-action-row { margin: .5rem 0 .8rem; }
.accounts-grid, .cards-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; }
.account-card, .credit-card { border: 1px solid var(--border); border-radius: 14px; padding: 1rem; background: #fff; }
.account-card.muted, .credit-card.muted { opacity: .6; }
.account-card h3, .credit-card h3 { margin: .55rem 0 .15rem; }
.account-card p { color: var(--muted); margin-bottom: .7rem; }
.account-balance { display: block; color: var(--blue); font-size: 1.45rem; margin-bottom: .15rem; }
.account-card .row-actions { margin-top: .8rem; }
.payments-list { display: grid; gap: .55rem; }
.payment-item { display: grid; grid-template-columns: 120px minmax(180px,1fr) auto auto; gap: .8rem; align-items: center; border: 1px solid var(--border); border-radius: 12px; padding: .75rem .85rem; background: #fff; }
.payment-item.paid { opacity: .62; }
.payment-main strong, .payment-main small { display: block; }
.payment-date { color: var(--muted); font-size: .87rem; font-weight: 800; }
.credit-card-head { display: flex; justify-content: space-between; gap: .7rem; }
.card-metrics { display: grid; grid-template-columns: repeat(2,1fr); gap: .75rem; margin-top: .9rem; }
.card-metrics small, .card-metrics strong { display: block; }
.card-metrics strong { margin-top: .12rem; color: var(--blue); }
.tx-income { color: var(--success); background: rgba(15,118,110,.08); }
.tx-expense { color: var(--danger); background: rgba(180,35,24,.07); }
.tx-transfer { color: var(--blue); }
.amount-income { color: var(--success); }
.amount-expense { color: var(--danger); }
.amount-transfer { color: var(--blue); }

/* Footer */
.workspace-footer { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--border); color: var(--muted); font-size: .85rem; }
.workspace-footer p { margin: 0; }
.danger-text-btn { border: 0; background: transparent; color: var(--danger); font-weight: 750; }

/* Modals */
.modal { border: 0; background: transparent; padding: 1rem; width: min(100%, 700px); max-height: 94vh; }
.modal.modal-wide { width: min(100%, 820px); }
.modal::backdrop { background: rgba(0,26,40,.52); backdrop-filter: blur(2px); }
.modal-card { background: #fff; border-radius: 18px; border: 1px solid var(--border); box-shadow: 0 28px 70px rgba(0,48,73,.22); padding: 1.15rem; max-height: calc(94vh - 2rem); overflow-y: auto; }
.modal-heading { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.modal-heading h2 { margin-bottom: 0; }
.modal-close { width: 36px; height: 36px; border: 0; border-radius: 9px; background: #eef2f5; color: var(--blue); font-size: 1.35rem; line-height: 1; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.form-grid label { color: var(--blue); font-size: .88rem; font-weight: 750; }
.form-grid label .input { margin-top: .32rem; }
.form-grid .span-2 { grid-column: span 2; }
.checkbox-label { display: flex; align-items: center; gap: .5rem; padding-top: .5rem; }
.checkbox-label input { width: 18px; height: 18px; }
.modal-actions { display: flex; justify-content: flex-end; gap: .6rem; margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--border); }
.transfer-box { margin-top: .9rem; padding: .85rem; border-radius: 12px; background: #f7fafb; border: 1px solid var(--border); }
.transfer-box h3 { font-size: 1rem; margin-bottom: .7rem; }
.import-preview-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: .7rem; }
.import-preview-grid > div { padding: .7rem; border: 1px solid var(--border); border-radius: 10px; background: #fafcfd; }
.import-preview-grid small, .import-preview-grid strong { display: block; }
.warning-note { margin: .9rem 0 0; padding: .7rem; border-radius: 9px; background: rgba(180,83,9,.08); color: var(--warning); }

/* Toast */
.toast-container { position: fixed; right: 1rem; bottom: 1rem; z-index: 100; display: grid; gap: .5rem; pointer-events: none; }
.toast { max-width: 380px; padding: .75rem .9rem; border-radius: 10px; background: var(--blue); color: #fff; box-shadow: var(--shadow); opacity: 0; transform: translateY(8px); transition: .2s ease; font-size: .9rem; }
.toast.show { opacity: 1; transform: translateY(0); }
.toast.error { background: var(--danger); }

@media (max-width: 1120px) {
  .metric-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .accounts-grid, .cards-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .projects-grid { grid-template-columns: 1fr; }
  .filters-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .filter-count { grid-column: span 2; }
}

@media (max-width: 820px) {
  .start-actions-grid { grid-template-columns: 1fr; }
  .start-option p { min-height: 0; }
  .sidebar { display: none; }
  .workspace-main { margin-left: 0; padding-left: 1rem; padding-right: 1rem; }
  .workspace-topbar { min-height: auto; padding: 1rem 0; }
  .mobile-nav-wrap { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .6rem; padding-top: 1rem; }
  .mobile-nav-wrap label { color: var(--blue); font-weight: 800; }
  .projects-layout { grid-template-columns: 1fr; }
  .areas-panel { position: static; }
  .calendar-day { min-height: 96px; }
  .calendar-event { font-size: 0; height: 8px; padding: 0; }
  .calendar-event span { width: 100%; height: 100%; margin: 0; border-radius: 3px; }
  .payment-item { grid-template-columns: 1fr auto; }
  .payment-date, .payment-main { grid-column: span 1; }
  .payment-item .row-actions { grid-column: span 2; }
}

@media (max-width: 620px) {
  .start-screen { padding: 1rem; }
  .start-card { border-radius: 16px; }
  .workspace-topbar, .view-heading, .section-action-row, .calendar-heading, .workspace-footer { flex-direction: column; align-items: stretch; }
  .topbar-actions .btn, .topbar-actions .file-button { flex: 1; }
  .quick-add { flex-direction: column; }
  .metric-grid, .home-grid, .accounts-grid, .cards-grid, .filters-row, .shortcut-grid { grid-template-columns: 1fr; }
  .filter-count { grid-column: span 1; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid .span-2 { grid-column: span 1; }
  .import-preview-grid { grid-template-columns: 1fr; }
  .calendar-weekday { font-size: .64rem; padding: .45rem .2rem; }
  .calendar-day { min-height: 78px; padding: .3rem; }
  .agenda-day { grid-template-columns: 1fr; gap: .35rem; }
  .payment-item { grid-template-columns: 1fr; }
  .payment-item .row-actions { grid-column: span 1; }
  .card-metrics { grid-template-columns: 1fr; }
  .modal { padding: .4rem; }
}

/* Language switch */
.start-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.4rem;
}

.start-toolbar .back-link {
  margin-bottom: 0;
}

.language-switch {
  display: inline-flex;
  align-items: center;
  padding: .2rem;
  border: 1px solid var(--border-strong);
  border-radius: 9px;
  background: #fff;
  gap: .15rem;
}

.language-btn {
  border: 0;
  border-radius: 7px;
  padding: .34rem .5rem;
  background: transparent;
  color: var(--muted);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .03em;
}

.language-btn.active {
  background: var(--blue);
  color: #fff;
}

.currency-note {
  display: block;
  margin-top: .3rem;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 500;
}

@media (max-width: 620px) {
  .start-toolbar {
    align-items: flex-start;
  }

  .topbar-actions .language-switch {
    flex: 0 0 auto;
  }
}

/* V1.2 finance extensions */
.loans-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
}

.loan-card {
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 1rem;
  background: #fff;
}

.loan-card.muted {
  opacity: .68;
}

.category-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.category-list {
  margin-top: .8rem;
}

.category-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .8rem;
  padding: .7rem 0;
  border-bottom: 1px solid var(--border);
}

.category-row:last-child {
  border-bottom: 0;
}

.category-row strong,
.category-row small {
  display: block;
}

.preview-box {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: .7rem;
  background: #fff;
}

.preview-box small,
.preview-box strong {
  display: block;
}

.preview-box strong {
  margin-top: .15rem;
  color: var(--blue);
  font-size: 1.05rem;
}

.event-loan {
  background: rgba(93, 63, 211, .11);
  color: #5138b4;
}

.agenda-item.event-loan {
  color: #5138b4;
}

.tx-card_payment,
.tx-loan_payment,
.tx-loan_disbursement {
  background: rgba(93, 63, 211, .09);
  color: #5138b4;
}

@media (max-width: 900px) {
  .loans-grid,
  .category-columns {
    grid-template-columns: 1fr;
  }
}
