:root {
  --green-990: #081611;
  --green-975: #0b1a14;
  --green-950: #0d1c16;
  --green-925: #10271e;
  --green-900: #143d2e;
  --green-850: #174b36;
  --green-800: #1f5b3d;
  --green-700: #2e6e4e;
  --green-600: #438563;
  --gold: #d4af37;
  --gold-bright: #f0cf65;
  --gold-soft: #e3c45c;
  --gold-dark: #9b7620;
  --cream: #f1e7c9;
  --cream-2: #fff7df;
  --paper: #f8f1dc;
  --line: rgba(212, 175, 55, .20);
  --line-strong: rgba(212, 175, 55, .38);
  --ink: #f6f0dc;
  --muted: #aebdaf;
  --muted-2: #7f9485;
  --income: #6bc47d;
  --expense: #e36a5a;
  --expense-deep: #9f3c32;
  --white: #ffffff;
  --shadow-lg: 0 28px 70px rgba(0, 0, 0, .34);
  --shadow-md: 0 16px 38px rgba(0, 0, 0, .22);
  --radius-xl: 26px;
  --radius-lg: 20px;
  --radius-md: 15px;
  --radius-sm: 11px;
  --font-ui: "Poppins", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--green-990); }
body {
  margin: 0;
  min-height: 100vh;
  font-family: var(--font-ui);
  background:
    radial-gradient(circle at 88% 12%, rgba(46,110,78,.15), transparent 24%),
    radial-gradient(circle at 8% 92%, rgba(212,175,55,.05), transparent 24%),
    var(--green-975);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
button, input, select { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }
::selection { background: rgba(212,175,55,.28); color: var(--cream-2); }

/* Shared brand */
.rycco-symbol { display: block; width: 100%; height: 100%; }
.brand-logo { display: inline-flex; align-items: center; gap: 12px; color: var(--gold-bright); }
.brand-wordmark { color: var(--cream-2); font-size: 28px; font-weight: 600; letter-spacing: .02em; line-height: 1; }
.brand-sub { color: var(--muted-2); font-size: 11px; letter-spacing: .08em; }
.eyebrow,
.hero-topline,
.summary-card span,
.field > span,
.type-toggle legend,
.balance-label {
  text-transform: uppercase;
  letter-spacing: .15em;
  font-size: 10px;
  line-height: 1.3;
  font-weight: 700;
}
.eyebrow, .hero-topline, .balance-label { color: var(--gold-soft); }
.hidden { display: none !important; }

/* Main app shell */
.app-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 252px minmax(0, 1fr);
}
.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  z-index: 20;
  display: flex;
  flex-direction: column;
  padding: 26px 18px 22px;
  color: var(--cream);
  background:
    linear-gradient(rgba(255,255,255,.014) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.014) 1px, transparent 1px),
    linear-gradient(165deg, #0c2018, #091711 74%);
  background-size: 34px 34px, 34px 34px, auto;
  border-right: 1px solid var(--line);
  box-shadow: 18px 0 50px rgba(0,0,0,.16);
}
.sidebar::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 220px;
  opacity: .2;
  pointer-events: none;
  background: radial-gradient(circle at 30% 100%, rgba(212,175,55,.18), transparent 58%);
}
.brand-wrap { position: relative; z-index: 1; display: grid; gap: 8px; margin: 2px 8px 35px; }
.sidebar-logo .rycco-symbol { width: 44px; height: 44px; }
.sidebar-logo .brand-wordmark { font-size: 25px; }
.nav-list { position: relative; z-index: 1; display: grid; gap: 7px; }
.nav-item, .mobile-nav-item {
  border: 0;
  color: #9bb0a1;
  background: transparent;
}
.nav-item {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  border: 1px solid transparent;
  border-radius: 13px;
  text-align: left;
  font-size: 13px;
  font-weight: 600;
  transition: .2s ease;
}
.nav-icon {
  width: 30px;
  height: 30px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 1px solid rgba(212,175,55,.18);
  border-radius: 10px;
  color: var(--gold-soft);
  font-size: 17px;
  font-weight: 500;
  transition: inherit;
}
.nav-item:hover { color: var(--cream); background: rgba(31,91,61,.22); border-color: rgba(212,175,55,.13); transform: translateX(2px); }
.nav-item.active {
  color: var(--cream-2);
  background: linear-gradient(135deg, rgba(31,91,61,.70), rgba(20,61,46,.42));
  border-color: rgba(212,175,55,.24);
  box-shadow: inset 3px 0 0 var(--gold), 0 10px 26px rgba(0,0,0,.12);
}
.nav-item.active .nav-icon { color: var(--green-950); background: linear-gradient(135deg, var(--gold-bright), var(--gold)); border-color: transparent; }
.sidebar-foot { position: relative; z-index: 1; margin-top: auto; display: grid; gap: 6px; padding: 15px 10px 0; color: #789080; font-size: 11px; border-top: 1px solid rgba(212,175,55,.10); }
.sidebar-foot strong { color: var(--gold-soft); }

.main { min-width: 0; overflow: hidden; }
.hero {
  position: relative;
  overflow: hidden;
  padding: 30px 38px 32px;
  background:
    linear-gradient(112deg, rgba(8,22,17,.06), rgba(8,22,17,.72)),
    radial-gradient(circle at 15% 0%, rgba(67,133,99,.30), transparent 29%),
    radial-gradient(circle at 90% 30%, rgba(212,175,55,.09), transparent 26%),
    linear-gradient(135deg, #153f2f 0%, #0f3024 57%, #0b2018 100%);
  border-bottom: 1px solid var(--line);
  box-shadow: var(--shadow-md);
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .35;
  background: repeating-linear-gradient(135deg, transparent 0 24px, rgba(241,231,201,.025) 24px 25px);
}
.hero::after {
  content: "";
  position: absolute;
  width: 440px;
  height: 440px;
  right: -170px;
  bottom: -310px;
  border: 1px solid rgba(212,175,55,.12);
  border-radius: 50%;
  box-shadow: 0 0 0 45px rgba(212,175,55,.018), 0 0 0 90px rgba(212,175,55,.012);
  pointer-events: none;
}
.hero-row { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: flex-start; gap: 28px; }
.hero-brand { display: flex; align-items: center; gap: 16px; min-width: 0; }
.hero-logo { width: 56px; height: 56px; color: var(--gold-bright); filter: drop-shadow(0 10px 18px rgba(212,175,55,.12)); }
.hero h1 { margin: 2px 0 0; color: var(--cream-2); font-size: clamp(34px, 4.2vw, 52px); line-height: .98; letter-spacing: .015em; font-weight: 600; }
.hero p { margin: 8px 0 0; color: #adbeaf; font-size: 14px; }
.hero p strong { color: var(--gold-soft); font-weight: 600; }
.hero-controls { display: flex; align-items: end; gap: 10px; }
.user-pill {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 52px;
  padding: 6px 7px 6px 8px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(8,22,17,.35);
  backdrop-filter: blur(12px);
}
.user-avatar { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 11px; background: linear-gradient(145deg, var(--gold-bright), var(--gold)); color: var(--green-950); font-weight: 900; box-shadow: 0 7px 18px rgba(212,175,55,.15); }
.user-copy { display: grid; min-width: 80px; }
.user-copy small { color: #789182; font-size: 9px; }
.user-copy strong { color: var(--cream); max-width: 130px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 12px; }
.logout-btn { border: 0; border-left: 1px solid rgba(212,175,55,.16); padding: 8px 8px 8px 11px; background: transparent; color: var(--gold-soft); font-weight: 700; font-size: 11px; }
.period-control { min-width: 170px; display: grid; gap: 5px; color: #789182; font-size: 9px; text-transform: uppercase; letter-spacing: .12em; }
.period-control select {
  height: 52px;
  border: 1px solid var(--line);
  background: rgba(8,22,17,.42);
  color: var(--cream);
  border-radius: 14px;
  padding: 0 12px;
  outline: none;
}
.balance-card {
  position: relative;
  z-index: 1;
  width: min(100%, 650px);
  margin-top: 25px;
  padding: 19px 21px 18px;
  border: 1px solid var(--line-strong);
  border-radius: 19px;
  background: linear-gradient(135deg, rgba(31,91,61,.36), rgba(8,22,17,.45));
  backdrop-filter: blur(12px);
  box-shadow: 0 18px 38px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.025);
}
.balance-card-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.balance-eye { color: var(--gold-soft); font-size: 12px; opacity: .8; }
.balance { margin-top: 5px; color: var(--gold-bright); font-size: clamp(34px, 5.4vw, 54px); line-height: 1; font-weight: 650; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.balance-caption { margin-top: 10px; color: #789182; font-size: 10px; }

.view { display: none; padding: 25px 38px 94px; }
.view.active { display: block; }
.summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.summary-card {
  position: relative;
  min-height: 108px;
  overflow: hidden;
  display: grid;
  align-content: center;
  gap: 9px;
  padding: 17px 18px;
  border: 1px solid var(--line);
  border-radius: 17px;
  background: linear-gradient(145deg, rgba(20,61,46,.88), rgba(12,36,27,.90));
  box-shadow: 0 13px 30px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,255,255,.02);
}
.summary-card::after { content: ""; position: absolute; width: 74px; height: 74px; right: -26px; bottom: -28px; border: 1px solid rgba(212,175,55,.08); border-radius: 50%; }
.summary-card span { color: #829888; }
.summary-card strong { position: relative; z-index: 1; color: var(--cream); font-size: 18px; line-height: 1.25; font-weight: 650; }
.income-card { background: linear-gradient(145deg, rgba(23,75,54,.94), rgba(14,47,34,.94)); }
.income-card strong { color: var(--income); }
.expense-card { background: linear-gradient(145deg, rgba(77,45,35,.82), rgba(52,31,25,.88)); border-color: rgba(227,106,90,.23); }
.expense-card strong { color: var(--expense); }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(285px, .72fr); gap: 15px; margin-top: 15px; }
.panel {
  color: var(--ink);
  background: linear-gradient(145deg, rgba(18,51,38,.94), rgba(10,30,23,.96));
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 21px;
  box-shadow: 0 14px 34px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.018);
}
.panel h2 { margin: 5px 0 17px; color: var(--cream-2); font-size: 22px; line-height: 1.2; font-weight: 600; letter-spacing: -.02em; }
.panel-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.panel-helper { margin: -7px 0 16px; color: var(--muted); line-height: 1.55; font-size: 12px; }
.transaction-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.full { grid-column: 1 / -1; }
.field { display: grid; gap: 6px; }
.field > span, .type-toggle legend { color: #8da091; }
.field input, .field select, .inline-form input {
  width: 100%;
  min-height: 46px;
  border: 1px solid rgba(212,175,55,.22);
  background: rgba(5,18,13,.48);
  color: var(--cream);
  border-radius: 12px;
  padding: 11px 12px;
  outline: none;
  transition: .18s ease;
  color-scheme: dark;
}
.field input::placeholder, .inline-form input::placeholder { color: #667c6e; }
.field input:focus, .field select:focus, .inline-form input:focus { border-color: rgba(240,207,101,.70); box-shadow: 0 0 0 3px rgba(212,175,55,.08), 0 8px 20px rgba(0,0,0,.10); background: rgba(8,26,19,.75); }
.field-help { color: #6f8577; font-size: 10px; line-height: 1.45; }
.type-toggle { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.type-toggle legend { margin-bottom: 6px; }
.type-btn, .payment-btn {
  min-height: 46px;
  border: 1px solid rgba(212,175,55,.22);
  border-radius: 12px;
  padding: 11px;
  background: rgba(5,18,13,.44);
  color: #9daf9f;
  font-weight: 650;
  transition: .18s ease;
}
.type-btn:hover, .payment-btn:hover { border-color: var(--line-strong); color: var(--cream); }
.type-btn.expense.active { background: linear-gradient(135deg, #a44538, #8d342c); border-color: #bc5548; color: #fff7ee; box-shadow: 0 9px 18px rgba(159,60,50,.18); }
.type-btn.income.active { background: linear-gradient(135deg, #2e6e4e, #245d42); border-color: #438563; color: #eef9ef; box-shadow: 0 9px 18px rgba(46,110,78,.18); }
.payment-btn.active { color: var(--green-950); background: linear-gradient(135deg, var(--gold-bright), var(--gold)); border-color: transparent; box-shadow: 0 10px 22px rgba(212,175,55,.15); }
.installment-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 14px; border-radius: 15px; border: 1px dashed rgba(212,175,55,.34); background: rgba(212,175,55,.045); }
.installment-preview { color: var(--muted); font-size: 11px; line-height: 1.55; }
.installment-preview strong { color: var(--cream); }

.primary-btn, .outline-btn, .danger-btn, .file-btn {
  min-height: 45px;
  border-radius: 12px;
  padding: 11px 15px;
  font-weight: 700;
  border: 1px solid transparent;
  text-align: center;
  transition: .18s ease;
}
.primary-btn, .file-btn { color: #172117; background: linear-gradient(135deg, #f0cf65, #d4af37 72%, #bd9228); box-shadow: 0 10px 22px rgba(212,175,55,.12); }
.primary-btn:hover, .file-btn:hover { transform: translateY(-1px); filter: brightness(1.04); box-shadow: 0 14px 26px rgba(212,175,55,.16); }
.primary-btn:active, .file-btn:active { transform: translateY(0); }
.outline-btn { color: var(--gold-soft); background: rgba(5,18,13,.25); border-color: rgba(212,175,55,.28); }
.outline-btn:hover { color: var(--cream); background: rgba(212,175,55,.07); border-color: rgba(212,175,55,.48); }
.danger-btn { background: linear-gradient(135deg, #a44338, #873029); color: #fff4ef; box-shadow: 0 10px 22px rgba(159,60,50,.14); }
.text-btn { border: 0; background: transparent; color: var(--gold-soft); font-weight: 650; }
.text-btn:hover { color: var(--gold-bright); }

.insights-panel { min-height: 100%; }
.breakdown { display: grid; gap: 14px; }
.breakdown-row { display: grid; gap: 7px; }
.breakdown-head { display: flex; justify-content: space-between; gap: 10px; color: #9aab9f; font-size: 11px; }
.breakdown-head strong { color: var(--cream); font-size: 11px; }
.bar-track { height: 7px; border-radius: 999px; background: rgba(241,231,201,.07); overflow: hidden; }
.bar-fill { height: 100%; border-radius: inherit; background: linear-gradient(90deg, #b78724, var(--gold-bright)); box-shadow: 0 0 14px rgba(212,175,55,.15); }
.empty-state { padding: 27px 10px; text-align: center; color: #708477; }
.empty-state.compact { padding: 40px 4px; }
.list-panel { margin-top: 15px; }

.transaction-list { display: grid; }
.transaction-row { display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; gap: 12px; align-items: center; padding: 13px 3px; border-top: 1px solid rgba(212,175,55,.10); }
.transaction-row:first-child { border-top: 0; }
.tx-icon { width: 39px; height: 39px; border-radius: 12px; display: grid; place-items: center; font-weight: 800; border: 1px solid transparent; }
.tx-icon.expense { background: rgba(227,106,90,.10); color: var(--expense); border-color: rgba(227,106,90,.18); }
.tx-icon.income { background: rgba(107,196,125,.09); color: var(--income); border-color: rgba(107,196,125,.17); }
.tx-main { min-width: 0; }
.tx-main strong { display: block; color: var(--cream); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 12px; }
.tx-main span { color: #748a7b; font-size: 10px; }
.tx-amount { font-weight: 700; white-space: nowrap; font-size: 12px; font-variant-numeric: tabular-nums; }
.tx-amount.expense { color: var(--expense); }
.tx-amount.income { color: var(--income); }
.tx-actions { display: flex; gap: 5px; }
.icon-btn { border: 1px solid rgba(212,175,55,.14); background: rgba(5,18,13,.20); color: #84998a; border-radius: 9px; padding: 6px 8px; font-size: 10px; }
.icon-btn:hover { color: var(--gold-soft); border-color: rgba(212,175,55,.32); }
.icon-btn.delete:hover { color: var(--expense); border-color: rgba(227,106,90,.32); }

.page-heading { margin-bottom: 17px; }
.page-heading h2 { margin: 5px 0; color: var(--cream-2); font-size: clamp(27px,3vw,34px); font-weight: 600; letter-spacing: -.025em; }
.page-heading p { color: #789082; margin: 0; font-size: 12px; }
.filters-grid { display: grid; grid-template-columns: 2fr 1fr 1fr auto; gap: 10px; align-items: end; margin-bottom: 16px; }
.filter-clear { height: 46px; }
.category-grid, .backup-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.category-grid .panel { min-height: 330px; }
.inline-form { display: grid; grid-template-columns: 1fr auto; gap: 9px; margin-bottom: 15px; }
.category-list { display: grid; gap: 8px; }
.category-chip { display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid rgba(212,175,55,.14); border-radius: 12px; padding: 10px 11px; background: rgba(5,18,13,.28); color: var(--cream); }
.category-chip button { border: 0; background: transparent; color: var(--expense); font-weight: 700; }
.card-manager-panel { grid-column: 1 / -1; min-height: 0 !important; }
.fixed-chip { border-radius: 999px; padding: 4px 7px; background: rgba(107,196,125,.10); color: var(--income); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.backup-grid { grid-template-columns: repeat(3, 1fr); }
.backup-grid .panel p { min-height: 48px; color: #789082; font-size: 12px; line-height: 1.5; }
.file-btn { display: inline-block; }
.file-btn input { display: none; }
.danger-panel { border-color: rgba(227,106,90,.22); }
.notice { margin-top: 15px; border: 1px solid rgba(212,175,55,.18); border-left: 3px solid var(--gold); background: rgba(212,175,55,.065); border-radius: 12px; padding: 14px 15px; color: #91a295; line-height: 1.5; font-size: 11px; }
.notice strong { color: var(--cream); }
.notice.mini { margin-top: 0; padding: 11px 12px; }

/* Installments */
.installment-summary-grid { margin-bottom: 15px; }
.installment-group-list { display: grid; gap: 10px; }
.installment-card { overflow: hidden; border: 1px solid rgba(212,175,55,.15); border-radius: 15px; background: rgba(5,18,13,.30); }
.installment-card-head { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 14px; }
.installment-card-main strong { display: block; color: var(--cream); font-size: 13px; }
.installment-card-main span { display: block; color: #708678; font-size: 10px; margin-top: 3px; }
.installment-card-side { text-align: right; }
.installment-card-side strong { display: block; color: var(--cream); font-size: 12px; }
.installment-card-side span { color: #708678; font-size: 10px; }
.installment-progress { height: 5px; background: rgba(241,231,201,.06); }
.installment-progress > div { height: 100%; background: linear-gradient(90deg, #b88c29, var(--gold-bright)); }
.installment-card details { border-top: 1px solid rgba(212,175,55,.09); }
.installment-card summary { padding: 10px 14px; cursor: pointer; color: var(--gold-soft); font-weight: 650; font-size: 11px; }
.installment-parts { padding: 0 14px 13px; display: grid; gap: 6px; }
.installment-part { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; font-size: 10px; color: #75897b; }
.installment-part strong { color: var(--cream); }
.status-pill { border-radius: 999px; padding: 3px 7px; font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; background: rgba(241,231,201,.07); color: #91a396; }
.status-pill.future { background: rgba(212,175,55,.11); color: var(--gold-soft); }
.installment-actions { padding: 0 14px 14px; display: flex; justify-content: flex-end; }
.tx-badge { display: inline-block; margin-left: 5px; border: 1px solid rgba(212,175,55,.17); border-radius: 999px; padding: 2px 5px; color: #8c9d90; font-size: 8px; vertical-align: 1px; }
.scheduled-text { color: var(--gold-dark); }

/* Card manager & account */
.card-form { display: grid; grid-template-columns: minmax(220px, 2fr) minmax(105px,.7fr) minmax(105px,.7fr) auto; gap: 9px; align-items: end; margin-bottom: 15px; }
.card-add-btn { min-height: 46px; }
.card-chip > span:first-child { display: grid; gap: 3px; }
.card-chip > span:first-child strong { font-size: 12px; }
.card-chip > span:first-child small { color: #708678; font-size: 9px; }
.change-password-form { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 9px; align-items: end; }
.account-panel { margin-top: 15px; }

/* Toast */
.toast { position: fixed; right: 20px; bottom: 20px; z-index: 120; max-width: min(370px, calc(100vw - 40px)); background: #0c251b; color: var(--cream); border: 1px solid var(--line-strong); padding: 11px 14px; border-radius: 12px; box-shadow: var(--shadow-lg); opacity: 0; transform: translateY(12px); pointer-events: none; transition: .2s ease; font-size: 11px; }
.toast.show { opacity: 1; transform: translateY(0); }
.mobile-nav { display: none; }

/* Authentication */
.auth-locked { overflow: hidden; }
.auth-locked .app-shell, .auth-locked .mobile-nav { display: none !important; }
.auth-screen { height: 100dvh; min-height: 100dvh; overflow: hidden; background: var(--green-990); color: var(--cream); }
.auth-layout { height: 100%; min-height: 0; display: grid; grid-template-columns: minmax(390px, .92fr) minmax(520px, 1.08fr); }
.auth-brand-panel {
  position: relative;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(34px, 5vw, 70px);
  color: var(--cream);
  background:
    repeating-linear-gradient(135deg, transparent 0 26px, rgba(241,231,201,.025) 26px 27px),
    radial-gradient(circle at 18% 12%, rgba(67,133,99,.25), transparent 28%),
    radial-gradient(circle at 83% 84%, rgba(212,175,55,.08), transparent 30%),
    linear-gradient(145deg, #103424, #0d281d 60%, #081a13);
}
.auth-brand-panel::after {
  content: "";
  position: absolute;
  width: 520px;
  height: 520px;
  right: -245px;
  bottom: -260px;
  border-radius: 50%;
  border: 1px solid rgba(212,175,55,.09);
  box-shadow: 0 0 0 55px rgba(212,175,55,.014), 0 0 0 110px rgba(212,175,55,.010), 0 0 0 165px rgba(212,175,55,.007);
  pointer-events: none;
}
.auth-orbit { position: absolute; border: 1px solid rgba(212,175,55,.10); border-radius: 999px; pointer-events: none; transform: rotate(-18deg); }
.auth-orbit-a { width: 620px; height: 220px; right: -340px; top: 12%; }
.auth-orbit-b { width: 580px; height: 180px; left: -350px; bottom: 18%; opacity: .65; }
.auth-brand-lockup, .auth-brand-copy, .auth-brand-foot { position: relative; z-index: 1; }
.auth-logo .rycco-symbol { width: 58px; height: 58px; }
.auth-logo .brand-wordmark { font-size: 31px; }
.auth-brand-copy { max-width: 580px; }
.auth-brand-copy h1 { margin: 12px 0 20px; color: var(--cream-2); font-size: clamp(42px, 5.2vw, 72px); line-height: 1.0; letter-spacing: -.045em; font-weight: 520; }
.auth-brand-copy p { max-width: 500px; color: #9fb1a4; font-size: clamp(15px,1.25vw,18px); line-height: 1.7; }
.auth-brand-foot { display: flex; align-items: center; gap: 9px; color: #72877a; font-size: 10px; }
.auth-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 5px rgba(212,175,55,.07); }
.auth-form-panel {
  height: 100%;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding: clamp(28px,6vw,80px);
  background:
    radial-gradient(circle at 100% 0%, rgba(46,110,78,.15), transparent 27%),
    radial-gradient(circle at 8% 100%, rgba(212,175,55,.05), transparent 25%),
    #0b2118;
  -webkit-overflow-scrolling: touch;
}
.auth-card { width: min(100%, 470px); flex: 0 0 auto; margin-block: auto; padding: 27px; border: 1px solid rgba(212,175,55,.17); border-radius: 24px; background: linear-gradient(145deg, rgba(20,61,46,.75), rgba(7,24,17,.80)); box-shadow: var(--shadow-lg), inset 0 1px 0 rgba(255,255,255,.02); backdrop-filter: blur(12px); }
.auth-panel h2 { margin: 6px 0 8px; color: var(--cream-2); font-size: clamp(30px,4vw,42px); font-weight: 550; letter-spacing: -.03em; }
.auth-intro { margin: 0 0 22px; color: #809486; line-height: 1.55; font-size: 12px; }
.auth-form { display: grid; gap: 13px; }
.auth-form .field input { min-height: 48px; background: rgba(4,17,12,.55); }
.check-row { display: flex; align-items: center; gap: 9px; color: #8fa092; font-size: 11px; cursor: pointer; }
.check-row input { width: 17px; height: 17px; accent-color: var(--gold); }
.auth-submit { min-height: 50px; margin-top: 3px; }
.auth-switch { color: var(--gold-soft); padding: 7px; }
.auth-error { border: 1px solid rgba(227,106,90,.18); border-left: 3px solid var(--expense); background: rgba(227,106,90,.075); color: #e99b90; border-radius: 10px; padding: 10px 11px; font-size: 11px; }
.auth-success { border: 1px solid rgba(107,196,125,.18); border-left: 3px solid var(--income); background: rgba(107,196,125,.075); color: #9cd9a8; border-radius: 10px; padding: 12px 13px; font-size: 11px; line-height: 1.55; }
.auth-confirm-icon { width: 52px; height: 52px; margin: 16px 0 11px; border-radius: 15px; display: grid; place-items: center; background: linear-gradient(135deg, var(--gold-bright), var(--gold)); color: var(--green-950); font-size: 24px; font-weight: 900; box-shadow: 0 11px 24px rgba(212,175,55,.16); }
.auth-confirm-actions { display: grid; gap: 9px; margin-top: 16px; }
.auth-resend { width: 100%; }
.auth-local-note { margin-top: 23px; padding-top: 17px; border-top: 1px solid rgba(212,175,55,.11); display: grid; gap: 4px; color: #687e70; font-size: 9px; line-height: 1.5; }
.auth-local-note strong { color: var(--gold-soft); }

/* Responsive */
@media (max-width: 1100px) {
  .summary-grid { grid-template-columns: repeat(2,1fr); }
  .dashboard-grid { grid-template-columns: 1fr; }
  .backup-grid { grid-template-columns: 1fr 1fr; }
  .backup-grid .panel:last-child { grid-column: 1 / -1; }
  .change-password-form { grid-template-columns: 1fr 1fr; }
  .change-password-form .field:first-child, .change-password-form button { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
  .auth-locked { overflow-x: hidden; overflow-y: auto; }
  .auth-screen { height: auto; min-height: 100dvh; overflow: visible; }
  .auth-layout { height: auto; min-height: 100dvh; grid-template-columns: 1fr; }
  .auth-brand-panel { min-height: 210px; padding: 27px 23px 24px; justify-content: flex-start; gap: 20px; }
  .auth-brand-copy { margin-top: auto; }
  .auth-brand-copy h1 { margin: 7px 0 7px; font-size: 35px; }
  .auth-brand-copy p { margin: 0; font-size: 12px; line-height: 1.5; }
  .auth-brand-foot { display: none; }
  .auth-logo .rycco-symbol { width: 46px; height: 46px; }
  .auth-logo .brand-wordmark { font-size: 25px; }
  .auth-form-panel { height: auto; min-height: 0; overflow: visible; display: block; padding: 22px 18px 42px; }
  .auth-card { margin: 0 auto; padding: 22px; border-radius: 20px; }

  .app-shell { grid-template-columns: 1fr; }
  .sidebar { display: none; }
  .main { padding-bottom: 74px; }
  .hero { padding: 22px 18px 24px; }
  .hero-row { flex-direction: column; }
  .hero-brand { width: 100%; }
  .hero-logo { width: 45px; height: 45px; }
  .hero h1 { font-size: 35px; }
  .hero p { font-size: 11px; }
  .hero-controls { width: 100%; display: grid; grid-template-columns: minmax(0,1fr) minmax(130px,.7fr); align-items: stretch; }
  .user-pill, .period-control { width: 100%; min-width: 0; }
  .user-copy { flex: 1; min-width: 0; }
  .period-control select { height: 52px; }
  .balance-card { width: 100%; margin-top: 18px; }
  .view { padding: 17px 16px 88px; }
  .mobile-nav {
    position: fixed;
    left: 10px;
    right: 10px;
    bottom: max(10px, env(safe-area-inset-bottom));
    z-index: 100;
    display: grid;
    grid-template-columns: repeat(6,1fr);
    gap: 2px;
    padding: 6px;
    border: 1px solid rgba(212,175,55,.18);
    border-radius: 18px;
    background: rgba(7,23,17,.92);
    box-shadow: 0 18px 50px rgba(0,0,0,.38);
    backdrop-filter: blur(16px);
  }
  .mobile-nav-item { display: grid; place-items: center; gap: 2px; padding: 6px 3px; border-radius: 12px; text-align: center; font-size: 8px; font-weight: 600; }
  .mobile-icon { display: grid; place-items: center; width: 25px; height: 25px; color: var(--gold-soft); font-size: 15px; }
  .mobile-nav-item.active { color: var(--cream-2); background: rgba(31,91,61,.52); }
  .mobile-nav-item.active .mobile-icon { color: var(--green-950); background: linear-gradient(135deg,var(--gold-bright),var(--gold)); border-radius: 8px; }
  .filters-grid { grid-template-columns: 1fr 1fr; }
  .filters-grid .field:first-child { grid-column: 1 / -1; }
  .filter-clear { width: 100%; }
  .category-grid, .backup-grid { grid-template-columns: 1fr; }
  .backup-grid .panel:last-child { grid-column: auto; }
  .card-form { grid-template-columns: 1fr 1fr; }
  .card-form .field:first-child, .card-add-btn { grid-column: 1 / -1; }
  .installment-fields { grid-template-columns: 1fr; }
  .installment-card-head { grid-template-columns: auto minmax(0,1fr); }
  .installment-card-side { grid-column: 2; text-align: left; }
}

@media (max-width: 620px) {
  .summary-grid { grid-template-columns: 1fr 1fr; gap: 9px; }
  .summary-card { min-height: 94px; padding: 14px; border-radius: 15px; }
  .summary-card strong { font-size: 15px; }
  .transaction-form { grid-template-columns: 1fr; }
  .transaction-form .full { grid-column: auto; }
  .type-toggle.full { grid-column: auto; }
  .panel { padding: 17px; border-radius: 17px; }
  .panel h2 { font-size: 20px; }
  .transaction-row { grid-template-columns: auto minmax(0,1fr) auto; gap: 9px; }
  .tx-actions { grid-column: 2 / -1; justify-content: flex-end; margin-top: -3px; }
  .page-heading h2 { font-size: 27px; }
  .filters-grid { grid-template-columns: 1fr; }
  .filters-grid .field:first-child { grid-column: auto; }
  .category-grid .panel { min-height: 0; }
  .card-form { grid-template-columns: 1fr; }
  .card-form .field:first-child, .card-add-btn { grid-column: auto; }
  .change-password-form { grid-template-columns: 1fr; }
  .change-password-form .field:first-child, .change-password-form button { grid-column: auto; }
  .installment-part { grid-template-columns: 1fr auto; }
  .installment-part .status-pill { grid-column: 1 / -1; justify-self: start; }
  .toast { right: 12px; bottom: 86px; }
}

@media (max-width: 430px) {
  .auth-brand-panel { min-height: 176px; }
  .auth-brand-copy h1 { font-size: 29px; }
  .auth-brand-copy p { display: none; }
  .auth-card { padding: 18px; }
  .auth-panel h2 { font-size: 30px; }
  .hero-controls { grid-template-columns: 1fr; }
  .balance { font-size: 34px; }
  .summary-grid { grid-template-columns: 1fr 1fr; }
  .mobile-nav { left: 7px; right: 7px; bottom: max(7px,env(safe-area-inset-bottom)); }
  .mobile-nav-item { font-size: 7px; }
}

/* =========================================================
   Rycco - V6.4.0 | Theme switcher + light mode
   ========================================================= */
.theme-toggle {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 13px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(8,22,17,.38);
  color: var(--gold-soft);
  font-weight: 700;
  font-size: 10px;
  letter-spacing: .02em;
  backdrop-filter: blur(12px);
  transition: transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.theme-toggle:hover {
  transform: translateY(-1px);
  color: var(--gold-bright);
  border-color: var(--line-strong);
  background: rgba(212,175,55,.07);
}
.theme-toggle-icon { width: 20px; height: 20px; display: grid; place-items: center; font-size: 16px; line-height: 1; }
.theme-toggle-label { white-space: nowrap; }
.hero-theme-toggle { min-height: 52px; align-self: end; }
.auth-form-panel { position: relative; }
.auth-theme-toggle { position: fixed; top: 18px; right: 20px; z-index: 60; min-height: 42px; }

html[data-theme="light"] {
  --line: rgba(20,61,46,.14);
  --line-strong: rgba(20,61,46,.25);
  --ink: #173b2e;
  --muted: #63776b;
  --muted-2: #718478;
  --cream: #173b2e;
  --cream-2: #0d2b20;
  --paper: #fffaf0;
  --shadow-lg: 0 26px 60px rgba(47,64,48,.14);
  --shadow-md: 0 14px 32px rgba(47,64,48,.11);
  color-scheme: light;
}
html[data-theme="light"] { background: #f1e7c9; }
html[data-theme="light"] body {
  background:
    radial-gradient(circle at 88% 12%, rgba(46,110,78,.10), transparent 25%),
    radial-gradient(circle at 10% 90%, rgba(212,175,55,.10), transparent 24%),
    #f4edd9;
  color: var(--ink);
}
html[data-theme="light"] ::selection { background: rgba(212,175,55,.30); color: #0d2b20; }

html[data-theme="light"] .sidebar {
  color: #173b2e;
  background:
    linear-gradient(rgba(20,61,46,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20,61,46,.025) 1px, transparent 1px),
    linear-gradient(165deg, #fffaf0, #eee3c6 78%);
  background-size: 34px 34px, 34px 34px, auto;
  border-right-color: rgba(20,61,46,.13);
  box-shadow: 15px 0 36px rgba(47,64,48,.08);
}
html[data-theme="light"] .sidebar::after { background: radial-gradient(circle at 30% 100%, rgba(212,175,55,.16), transparent 58%); }
html[data-theme="light"] .sidebar .brand-wordmark { color: #143d2e; }
html[data-theme="light"] .brand-sub,
html[data-theme="light"] .sidebar-foot { color: #697c70; }
html[data-theme="light"] .nav-item,
html[data-theme="light"] .mobile-nav-item { color: #596f62; }
html[data-theme="light"] .nav-icon { border-color: rgba(20,61,46,.12); color: #9b7620; }
html[data-theme="light"] .nav-item:hover { color: #143d2e; background: rgba(46,110,78,.08); border-color: rgba(20,61,46,.10); }
html[data-theme="light"] .nav-item.active {
  color: #143d2e;
  background: linear-gradient(135deg, rgba(46,110,78,.14), rgba(212,175,55,.10));
  border-color: rgba(20,61,46,.14);
  box-shadow: inset 3px 0 0 var(--gold), 0 8px 18px rgba(47,64,48,.06);
}
html[data-theme="light"] .sidebar-foot { border-top-color: rgba(20,61,46,.10); }
html[data-theme="light"] .sidebar-foot strong { color: #8c681b; }

html[data-theme="light"] .hero {
  background:
    linear-gradient(112deg, rgba(255,255,255,.10), rgba(241,231,201,.35)),
    radial-gradient(circle at 13% 0%, rgba(46,110,78,.15), transparent 30%),
    radial-gradient(circle at 91% 20%, rgba(212,175,55,.14), transparent 29%),
    linear-gradient(135deg, #fffaf0 0%, #f1e7c9 58%, #e6dab9 100%);
  border-bottom-color: rgba(20,61,46,.13);
  box-shadow: var(--shadow-md);
}
html[data-theme="light"] .hero::before { background: repeating-linear-gradient(135deg, transparent 0 24px, rgba(20,61,46,.035) 24px 25px); }
html[data-theme="light"] .hero::after { border-color: rgba(20,61,46,.10); box-shadow: 0 0 0 45px rgba(46,110,78,.025), 0 0 0 90px rgba(212,175,55,.025); }
html[data-theme="light"] .hero h1 { color: #143d2e; }
html[data-theme="light"] .hero p { color: #61766a; }
html[data-theme="light"] .hero p strong { color: #9b7620; }
html[data-theme="light"] .hero-topline,
html[data-theme="light"] .balance-label,
html[data-theme="light"] .eyebrow { color: #9b7620; }
html[data-theme="light"] .user-pill,
html[data-theme="light"] .period-control select,
html[data-theme="light"] .theme-toggle {
  background: rgba(255,250,240,.72);
  border-color: rgba(20,61,46,.14);
  box-shadow: 0 7px 18px rgba(47,64,48,.05);
}
html[data-theme="light"] .user-copy small,
html[data-theme="light"] .period-control { color: #6c8073; }
html[data-theme="light"] .user-copy strong,
html[data-theme="light"] .period-control select { color: #173b2e; }
html[data-theme="light"] .logout-btn { color: #8d681b; border-left-color: rgba(20,61,46,.12); }
html[data-theme="light"] .theme-toggle { color: #8d681b; }
html[data-theme="light"] .theme-toggle:hover { color: #143d2e; background: #fffaf0; border-color: rgba(212,175,55,.48); }
html[data-theme="light"] .balance-card {
  background: linear-gradient(135deg, rgba(255,250,240,.90), rgba(241,231,201,.78));
  border-color: rgba(20,61,46,.18);
  box-shadow: 0 17px 34px rgba(47,64,48,.09), inset 0 1px 0 rgba(255,255,255,.72);
}
html[data-theme="light"] .balance { color: #9b7620; }
html[data-theme="light"] .balance-caption { color: #697d70; }
html[data-theme="light"] .balance-eye { color: #9b7620; }

html[data-theme="light"] .summary-card {
  background: linear-gradient(145deg, #fffaf0, #f1e7c9);
  border-color: rgba(20,61,46,.12);
  box-shadow: 0 11px 24px rgba(47,64,48,.07), inset 0 1px 0 rgba(255,255,255,.70);
}
html[data-theme="light"] .summary-card::after { border-color: rgba(20,61,46,.07); }
html[data-theme="light"] .summary-card span { color: #728679; }
html[data-theme="light"] .summary-card strong { color: #173b2e; }
html[data-theme="light"] .income-card { background: linear-gradient(145deg, #f3f8ed, #e4efdf); }
html[data-theme="light"] .income-card strong { color: #2e6e4e; }
html[data-theme="light"] .expense-card { background: linear-gradient(145deg, #fff3ed, #f4dfd4); border-color: rgba(159,60,50,.16); }
html[data-theme="light"] .expense-card strong { color: #a44538; }
html[data-theme="light"] .panel {
  color: #173b2e;
  background: linear-gradient(145deg, rgba(255,250,240,.98), rgba(247,239,218,.98));
  border-color: rgba(20,61,46,.12);
  box-shadow: 0 12px 28px rgba(47,64,48,.07), inset 0 1px 0 rgba(255,255,255,.72);
}
html[data-theme="light"] .panel h2,
html[data-theme="light"] .installment-preview strong,
html[data-theme="light"] .breakdown-head strong,
html[data-theme="light"] .tx-main strong,
html[data-theme="light"] .category-chip { color: #143d2e; }
html[data-theme="light"] .panel-helper,
html[data-theme="light"] .field-help,
html[data-theme="light"] .breakdown-head,
html[data-theme="light"] .empty-state,
html[data-theme="light"] .tx-main span,
html[data-theme="light"] .page-heading p,
html[data-theme="light"] .backup-grid .panel p,
html[data-theme="light"] .installment-card-main span,
html[data-theme="light"] .installment-card-side span,
html[data-theme="light"] .installment-part,
html[data-theme="light"] .card-chip > span:first-child small { color: #6b7f72; }

html[data-theme="light"] .field > span,
html[data-theme="light"] .type-toggle legend { color: #607669; }
html[data-theme="light"] .field input,
html[data-theme="light"] .field select,
html[data-theme="light"] .inline-form input,
html[data-theme="light"] .auth-form .field input {
  background: rgba(255,255,255,.70);
  color: #143d2e;
  border-color: rgba(20,61,46,.17);
  color-scheme: light;
}
html[data-theme="light"] .field input::placeholder,
html[data-theme="light"] .inline-form input::placeholder { color: #87978e; }
html[data-theme="light"] .field input:focus,
html[data-theme="light"] .field select:focus,
html[data-theme="light"] .inline-form input:focus {
  background: #fffdf6;
  border-color: rgba(155,118,32,.62);
  box-shadow: 0 0 0 3px rgba(212,175,55,.13), 0 8px 18px rgba(47,64,48,.06);
}
html[data-theme="light"] .type-btn,
html[data-theme="light"] .payment-btn {
  background: rgba(255,255,255,.52);
  color: #567063;
  border-color: rgba(20,61,46,.16);
}
html[data-theme="light"] .type-btn:hover,
html[data-theme="light"] .payment-btn:hover { color: #143d2e; border-color: rgba(155,118,32,.40); }
html[data-theme="light"] .installment-fields { background: rgba(212,175,55,.08); border-color: rgba(155,118,32,.28); }
html[data-theme="light"] .outline-btn { color: #795b19; background: rgba(255,255,255,.48); border-color: rgba(155,118,32,.27); }
html[data-theme="light"] .outline-btn:hover { color: #143d2e; background: rgba(212,175,55,.10); border-color: rgba(155,118,32,.45); }
html[data-theme="light"] .bar-track,
html[data-theme="light"] .installment-progress { background: rgba(20,61,46,.10); }
html[data-theme="light"] .transaction-row { border-top-color: rgba(20,61,46,.09); }
html[data-theme="light"] .icon-btn { background: rgba(255,255,255,.42); color: #657b6e; border-color: rgba(20,61,46,.12); }
html[data-theme="light"] .category-chip,
html[data-theme="light"] .installment-card { background: rgba(255,255,255,.43); border-color: rgba(20,61,46,.12); }
html[data-theme="light"] .installment-card details { border-top-color: rgba(20,61,46,.09); }
html[data-theme="light"] .status-pill { background: rgba(20,61,46,.08); color: #63786b; }
html[data-theme="light"] .status-pill.future { background: rgba(212,175,55,.14); color: #795b19; }
html[data-theme="light"] .tx-badge { color: #64786c; border-color: rgba(20,61,46,.12); }
html[data-theme="light"] .notice { background: rgba(212,175,55,.10); color: #5e7466; border-color: rgba(155,118,32,.19); }
html[data-theme="light"] .toast { background: #143d2e; color: #fff7df; border-color: rgba(212,175,55,.35); }

html[data-theme="light"] .auth-screen { background: #f1e7c9; color: #173b2e; }
html[data-theme="light"] .auth-brand-panel {
  color: #f1e7c9;
  background:
    repeating-linear-gradient(135deg, transparent 0 26px, rgba(241,231,201,.025) 26px 27px),
    radial-gradient(circle at 18% 12%, rgba(67,133,99,.25), transparent 28%),
    radial-gradient(circle at 83% 84%, rgba(212,175,55,.08), transparent 30%),
    linear-gradient(145deg, #103424, #0d281d 60%, #081a13);
}
html[data-theme="light"] .auth-brand-panel .brand-wordmark,
html[data-theme="light"] .auth-brand-copy h1 { color: #fff7df; }
html[data-theme="light"] .auth-brand-copy p { color: #b5c3b9; }
html[data-theme="light"] .auth-brand-foot { color: #84988a; }
html[data-theme="light"] .auth-form-panel {
  background:
    radial-gradient(circle at 100% 0%, rgba(46,110,78,.11), transparent 28%),
    radial-gradient(circle at 8% 100%, rgba(212,175,55,.10), transparent 26%),
    #f4edd9;
}
html[data-theme="light"] .auth-card {
  background: linear-gradient(145deg, rgba(255,250,240,.96), rgba(241,231,201,.94));
  border-color: rgba(20,61,46,.13);
  box-shadow: 0 24px 55px rgba(47,64,48,.12), inset 0 1px 0 rgba(255,255,255,.75);
}
html[data-theme="light"] .auth-panel h2 { color: #143d2e; }
html[data-theme="light"] .auth-intro,
html[data-theme="light"] .check-row { color: #667b6d; }
html[data-theme="light"] .auth-local-note { color: #6b7f72; border-top-color: rgba(20,61,46,.11); }
html[data-theme="light"] .auth-local-note strong { color: #795b19; }
html[data-theme="light"] .auth-error { background: rgba(227,106,90,.09); color: #9f3c32; }
html[data-theme="light"] .auth-success { background: rgba(46,110,78,.09); color: #2e6e4e; }

@media (max-width: 900px) {
  .hero-controls { grid-template-columns: auto minmax(0,1fr) minmax(130px,.7fr); }
  .hero-theme-toggle { width: 52px; padding: 0; }
  .hero-theme-toggle .theme-toggle-label { display: none; }
  html[data-theme="light"] .mobile-nav {
    background: rgba(255,250,240,.94);
    border-color: rgba(20,61,46,.14);
    box-shadow: 0 17px 38px rgba(47,64,48,.16);
  }
  html[data-theme="light"] .mobile-nav-item { color: #657a6d; }
  html[data-theme="light"] .mobile-nav-item.active { color: #143d2e; background: rgba(46,110,78,.10); }
}
@media (max-width: 430px) {
  .auth-theme-toggle { top: 11px; right: 11px; min-height: 38px; padding: 0 10px; }
  .auth-theme-toggle .theme-toggle-label { display: none; }
  .hero-controls { grid-template-columns: 52px minmax(0,1fr); }
  .hero-controls .period-control { grid-column: 1 / -1; }
}


/* =========================================================
   Rycco - V6.4.0 | Contas + sincronização multi-dispositivo
   ========================================================= */
.sync-status {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 13px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(8,22,17,.38);
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
  backdrop-filter: blur(12px);
  transition: .18s ease;
}
.sync-status:hover { color: var(--cream-2); border-color: var(--line-strong); transform: translateY(-1px); }
.sync-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--muted-2); box-shadow: 0 0 0 4px rgba(127,148,133,.09); }
.sync-dot.synced { background: var(--income); box-shadow: 0 0 0 4px rgba(107,196,125,.09); }
.sync-dot.syncing { background: var(--gold); box-shadow: 0 0 0 4px rgba(212,175,55,.10); animation: ryccoPulse 1.2s ease-in-out infinite; }
.sync-dot.pending { background: var(--gold-bright); box-shadow: 0 0 0 4px rgba(240,207,101,.10); }
.sync-dot.offline, .sync-dot.conflict { background: var(--expense); box-shadow: 0 0 0 4px rgba(227,106,90,.09); }
@keyframes ryccoPulse { 0%,100% { opacity:.55; transform:scale(.9); } 50% { opacity:1; transform:scale(1.08); } }

.account-overview-panel { margin-top: 14px; }
.account-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(185px,1fr)); gap: 10px; }
.account-mini-card {
  position: relative;
  overflow: hidden;
  min-height: 94px;
  padding: 14px;
  border: 1px solid rgba(212,175,55,.14);
  border-radius: 15px;
  background: linear-gradient(145deg, rgba(31,91,61,.20), rgba(8,22,17,.30));
}
.account-mini-card::after { content:""; position:absolute; width:70px; height:70px; right:-22px; bottom:-34px; border:1px solid rgba(212,175,55,.08); border-radius:50%; }
.account-mini-top { display:flex; align-items:center; justify-content:space-between; gap:8px; color:var(--muted); font-size:9px; }
.account-mini-card strong { display:block; margin-top:9px; color:var(--cream-2); font-size:18px; font-variant-numeric: tabular-nums; }
.account-type-pill { display:inline-flex; align-items:center; padding:3px 6px; border-radius:999px; border:1px solid rgba(212,175,55,.12); color:var(--gold-soft); font-size:8px; }

.accounts-summary-grid { margin-bottom: 14px; }
.accounts-grid { display:grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap:14px; margin-bottom:14px; }
.account-form { display:grid; grid-template-columns: 1.2fr 1fr .8fr auto; gap:9px; align-items:end; }
.transfer-form { display:grid; grid-template-columns: 1fr 1fr; gap:9px; align-items:end; }
.transfer-form .full { grid-column: 1 / -1; }
.accounts-list { display:grid; gap:9px; }
.account-row {
  display:grid;
  grid-template-columns: auto minmax(0,1fr) auto auto;
  gap:11px;
  align-items:center;
  padding:13px 0;
  border-top:1px solid rgba(212,175,55,.09);
}
.account-row:first-child { border-top:0; }
.account-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; color:var(--gold-bright); background:rgba(31,91,61,.34); border:1px solid rgba(212,175,55,.13); font-size:16px; }
.account-main { display:grid; gap:3px; min-width:0; }
.account-main strong { color:var(--cream-2); font-size:12px; }
.account-main span { color:var(--muted-2); font-size:9px; }
.account-balance { color:var(--gold-bright); font-weight:750; font-size:14px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.transfer-list { display:grid; }
.transfer-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center; gap:10px; padding:12px 0; border-top:1px solid rgba(212,175,55,.09); }
.transfer-row:first-child { border-top:0; }
.transfer-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:11px; color:var(--gold-soft); border:1px solid rgba(212,175,55,.14); background:rgba(212,175,55,.05); }
.transfer-main { display:grid; gap:3px; min-width:0; }
.transfer-main strong { color:var(--cream-2); font-size:11px; }
.transfer-main span { color:var(--muted-2); font-size:9px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.transfer-amount { color:var(--gold-soft); font-weight:750; font-size:12px; white-space:nowrap; }

html[data-theme="light"] .sync-status { background:rgba(255,250,240,.72); border-color:rgba(20,61,46,.14); color:#64796c; box-shadow:0 7px 18px rgba(47,64,48,.05); }
html[data-theme="light"] .sync-status:hover { color:#143d2e; background:#fffaf0; border-color:rgba(212,175,55,.42); }
html[data-theme="light"] .account-mini-card { background:linear-gradient(145deg,#fffaf0,#f1e7c9); border-color:rgba(20,61,46,.11); }
html[data-theme="light"] .account-mini-card strong,
html[data-theme="light"] .account-main strong,
html[data-theme="light"] .transfer-main strong { color:#143d2e; }
html[data-theme="light"] .account-mini-top,
html[data-theme="light"] .account-main span,
html[data-theme="light"] .transfer-main span { color:#6b7f72; }
html[data-theme="light"] .account-type-pill { color:#795b19; border-color:rgba(155,118,32,.18); }
html[data-theme="light"] .account-row,
html[data-theme="light"] .transfer-row { border-top-color:rgba(20,61,46,.09); }
html[data-theme="light"] .account-icon { background:rgba(46,110,78,.10); border-color:rgba(20,61,46,.11); color:#8c681b; }
html[data-theme="light"] .account-balance,
html[data-theme="light"] .transfer-amount { color:#8c681b; }
html[data-theme="light"] .transfer-icon { background:rgba(212,175,55,.08); border-color:rgba(155,118,32,.15); color:#8c681b; }

@media (max-width: 1180px) {
  .account-form { grid-template-columns: 1fr 1fr; }
  .account-form button { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
  .sync-status { min-height:52px; padding:0 11px; }
  .sync-status span:last-child { display:none; }
  .hero-controls { grid-template-columns: 52px 52px minmax(0,1fr); }
  .hero-controls .period-control { grid-column:1 / -1; }
  .accounts-grid { grid-template-columns:1fr; }
  .mobile-nav { grid-template-columns: repeat(6,1fr); }
}
@media (max-width: 620px) {
  .account-form, .transfer-form { grid-template-columns:1fr; }
  .account-form button, .transfer-form .full { grid-column:auto; }
  .account-row { grid-template-columns:auto minmax(0,1fr) auto; }
  .account-row .tx-actions { grid-column:2 / -1; }
  .transfer-row { grid-template-columns:auto minmax(0,1fr) auto; }
  .transfer-row .tx-actions { grid-column:2 / -1; }
}
@media (max-width: 430px) {
  .hero-controls { grid-template-columns: 48px 48px minmax(0,1fr); }
  .hero-controls .period-control { grid-column: 1 / -1; }
  .sync-status { width:48px; padding:0; }
  .mobile-nav { overflow-x:auto; grid-template-columns: repeat(6,minmax(58px,1fr)); scrollbar-width:none; }
  .mobile-nav::-webkit-scrollbar { display:none; }
  .account-overview { grid-template-columns:1fr 1fr; }
}

/* Ajustes de grade V4 */
.filters-grid { grid-template-columns: 2fr 1fr 1fr 1fr auto; }
.card-form { grid-template-columns: minmax(180px,1.5fr) minmax(95px,.55fr) minmax(95px,.55fr) minmax(160px,1fr) auto; }
@media (max-width: 1100px) {
  .filters-grid { grid-template-columns: 1.5fr 1fr 1fr 1fr; }
  .filters-grid .filter-clear { grid-column: 1 / -1; }
  .card-form { grid-template-columns: 1fr 1fr; }
  .card-form .field:first-child, .card-add-btn { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
  .filters-grid { grid-template-columns: 1fr; }
  .filters-grid .filter-clear { grid-column: auto; }
  .card-form { grid-template-columns: 1fr; }
  .card-form .field:first-child, .card-add-btn { grid-column: auto; }
}

/* =========================================================
   Rycco - V6.4.0 | Dashboard inteligente e análises
   ========================================================= */
.intelligence-summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 14px;
}
.metric-hint {
  position: relative;
  z-index: 1;
  color: var(--muted-2);
  font-size: 9px;
  line-height: 1.35;
  font-weight: 500;
}
.result-card { border-color: rgba(212,175,55,.28); }
.comparison-card { background: linear-gradient(145deg, rgba(26,65,49,.9), rgba(14,38,29,.92)); }
.commitment-card { border-color: rgba(227,106,90,.18); }
.forecast-card { border-color: rgba(107,196,125,.17); }
.positive-metric { color: var(--income) !important; }
.negative-metric { color: var(--expense) !important; }

.analytics-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 14px 0;
}
.analytics-panel {
  min-width: 0;
  overflow: hidden;
}
.analytics-title-row { align-items: flex-start; }
.chart-subtitle {
  margin: 6px 0 0;
  color: var(--muted-2);
  font-size: 10px;
  line-height: 1.45;
}
.analytics-badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid rgba(212,175,55,.16);
  border-radius: 999px;
  color: var(--gold-soft);
  background: rgba(212,175,55,.055);
  font-size: 9px;
  font-weight: 700;
  white-space: nowrap;
}
.chart-shell {
  min-height: 280px;
  margin-top: 12px;
  overflow: hidden;
}
.chart-legend {
  display: flex;
  justify-content: flex-end;
  gap: 14px;
  margin: 0 2px 7px;
  color: var(--muted);
  font-size: 9px;
}
.chart-legend span { display: inline-flex; align-items: center; gap: 6px; }
.legend-dot { width: 8px; height: 8px; border-radius: 999px; display: inline-block; }
.legend-dot.income { background: var(--income); }
.legend-dot.expense { background: var(--expense); }
.analytics-svg { display: block; width: 100%; height: auto; overflow: visible; }
.chart-grid-line { stroke: rgba(212,175,55,.09); stroke-width: 1; }
.chart-axis-label,
.chart-x-label {
  fill: var(--muted-2);
  font-family: var(--font-ui);
  font-size: 10px;
}
.chart-x-label { text-transform: capitalize; }
.chart-bar { opacity: .94; transition: opacity .18s ease; }
.chart-bar:hover { opacity: 1; }
.chart-income { fill: var(--income); }
.chart-expense { fill: var(--expense); }
.zero-line { stroke: rgba(212,175,55,.22); stroke-width: 1; stroke-dasharray: 5 5; }
.trend-area { fill: rgba(212,175,55,.075); }
.trend-line { fill: none; stroke: var(--gold-bright); stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.trend-point { fill: var(--green-900); stroke: var(--gold-bright); stroke-width: 3; }

.donut-shell {
  min-height: 270px;
  display: grid;
  grid-template-columns: minmax(150px,.8fr) minmax(190px,1.2fr);
  gap: 20px;
  align-items: center;
  margin-top: 10px;
}
.donut-visual { position: relative; width: min(100%,210px); margin: 0 auto; aspect-ratio: 1; }
.donut-visual svg { width: 100%; height: 100%; display: block; }
.donut-base { stroke: rgba(212,175,55,.09); }
.donut-center {
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%,-50%);
  width: 70%;
  display: grid;
  place-items: center;
  gap: 3px;
  text-align: center;
  pointer-events: none;
}
.donut-center small { color: var(--muted-2); font-size: 9px; text-transform: uppercase; letter-spacing: .12em; }
.donut-center strong { color: var(--cream-2); font-size: 16px; line-height: 1.1; }
.donut-legend { display: grid; gap: 8px; }
.donut-legend-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 7px;
  border-bottom: 1px solid rgba(212,175,55,.07);
  color: var(--muted);
  font-size: 10px;
}
.donut-legend-row:last-child { border-bottom: 0; }
.donut-legend-row > span { display: flex; align-items: center; gap: 8px; min-width: 0; }
.donut-legend-row i { width: 9px; height: 9px; border-radius: 3px; flex: 0 0 auto; }
.donut-legend-row strong { color: var(--cream); font-size: 10px; white-space: nowrap; }
.donut-legend-row strong small { color: var(--muted-2); margin-left: 4px; font-weight: 500; }

.account-chart-shell { min-height: 270px; margin-top: 14px; }
.account-bars { display: grid; gap: 15px; }
.account-bar-row { display: grid; gap: 6px; }
.account-bar-head { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 10px; }
.account-bar-head strong { color: var(--cream-2); font-size: 11px; font-variant-numeric: tabular-nums; }
.account-bar-track { height: 9px; overflow: hidden; border-radius: 999px; background: rgba(212,175,55,.075); }
.account-bar-fill { height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--green-700), var(--gold)); box-shadow: 0 0 18px rgba(212,175,55,.08); }
.account-bar-fill.negative { background: linear-gradient(90deg, var(--expense-deep), var(--expense)); }
.account-bar-row > small { color: var(--muted-2); font-size: 8px; }
.negative { color: var(--expense) !important; }

.projection-panel { margin: 14px 0; }
.projection-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
  margin-top: 14px;
}
.projection-card {
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(212,175,55,.13);
  border-radius: 15px;
  background: linear-gradient(145deg, rgba(31,91,61,.17), rgba(8,22,17,.28));
}
.projection-empty { opacity: .72; }
.projection-month { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding-bottom: 9px; border-bottom: 1px solid rgba(212,175,55,.08); }
.projection-month strong { color: var(--gold-soft); font-size: 12px; text-transform: capitalize; }
.projection-month span { color: var(--muted-2); font-size: 8px; text-transform: uppercase; letter-spacing: .10em; }
.projection-values { display: grid; gap: 6px; padding: 10px 0; }
.projection-values span { display: flex; justify-content: space-between; gap: 8px; color: var(--muted-2); font-size: 9px; }
.projection-values strong { font-size: 9px; white-space: nowrap; }
.projection-values .income { color: var(--income); }
.projection-values .expense { color: var(--expense); }
.projection-balance { display: flex; align-items: end; justify-content: space-between; gap: 8px; padding-top: 8px; border-top: 1px solid rgba(212,175,55,.08); }
.projection-balance small { color: var(--muted-2); font-size: 8px; }
.projection-balance strong { color: var(--cream-2); font-size: 12px; white-space: nowrap; }

html[data-theme="light"] .metric-hint,
html[data-theme="light"] .chart-subtitle,
html[data-theme="light"] .chart-axis-label,
html[data-theme="light"] .chart-x-label,
html[data-theme="light"] .donut-legend-row,
html[data-theme="light"] .account-bar-head,
html[data-theme="light"] .account-bar-row > small,
html[data-theme="light"] .projection-values span,
html[data-theme="light"] .projection-balance small { color: #6b7f72; fill: #6b7f72; }
html[data-theme="light"] .analytics-badge { color: #795b19; background: rgba(212,175,55,.10); border-color: rgba(155,118,32,.18); }
html[data-theme="light"] .chart-grid-line { stroke: rgba(20,61,46,.09); }
html[data-theme="light"] .zero-line { stroke: rgba(155,118,32,.25); }
html[data-theme="light"] .trend-area { fill: rgba(212,175,55,.12); }
html[data-theme="light"] .trend-line { stroke: #9b7620; }
html[data-theme="light"] .trend-point { fill: #fffaf0; stroke: #9b7620; }
html[data-theme="light"] .donut-base { stroke: rgba(20,61,46,.09); }
html[data-theme="light"] .donut-center strong,
html[data-theme="light"] .donut-legend-row strong,
html[data-theme="light"] .account-bar-head strong,
html[data-theme="light"] .projection-balance strong { color: #143d2e; }
html[data-theme="light"] .donut-legend-row { border-bottom-color: rgba(20,61,46,.07); }
html[data-theme="light"] .account-bar-track { background: rgba(20,61,46,.08); }
html[data-theme="light"] .projection-card { background: linear-gradient(145deg, rgba(255,250,240,.9), rgba(241,231,201,.82)); border-color: rgba(20,61,46,.11); }
html[data-theme="light"] .projection-month,
html[data-theme="light"] .projection-balance { border-color: rgba(20,61,46,.08); }
html[data-theme="light"] .projection-month strong { color: #8c681b; }

@media (max-width: 1180px) {
  .intelligence-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .projection-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .analytics-grid { grid-template-columns: 1fr; }
  .chart-shell { min-height: 240px; }
  .projection-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .analytics-grid { gap: 10px; margin: 10px 0; }
  .chart-shell { min-height: 0; overflow-x: auto; }
  .analytics-svg { min-width: 620px; }
  .chart-legend { justify-content: flex-start; }
  .donut-shell { grid-template-columns: 1fr; min-height: 0; }
  .donut-visual { width: 180px; }
  .account-chart-shell { min-height: 0; }
  .projection-grid { grid-template-columns: 1fr; }
  .analytics-title-row { gap: 10px; }
  .analytics-badge { max-width: 45%; overflow: hidden; text-overflow: ellipsis; }
}
@media (max-width: 430px) {
  .intelligence-summary-grid { grid-template-columns: 1fr; }
  .intelligence-summary-grid .summary-card { min-height: 88px; }
  .analytics-svg { min-width: 560px; }
  .projection-panel { margin-top: 10px; }
}


/* =========================================================
   Rycco - V6.4.0 | Espaçamento entre blocos + ordem do panorama
   ========================================================= */
#view-dashboard.active {
  display: grid;
  align-content: start;
  gap: 16px;
}
#view-dashboard > .quick-entry-panel,
#view-dashboard > .intelligence-summary-grid,
#view-dashboard > .analytics-grid,
#view-dashboard > .projection-panel,
#view-dashboard > .account-overview-panel,
#view-dashboard > .insights-panel,
#view-dashboard > .list-panel {
  margin: 0;
}
#view-dashboard > .intelligence-summary-grid { margin-bottom: 0; }
#view-dashboard > .analytics-grid { margin: 0; }
#view-dashboard > .projection-panel { margin: 0; }
#view-dashboard > .account-overview-panel { margin-top: 0; }
#view-dashboard > .list-panel { margin-top: 0; }
#view-dashboard > .insights-panel { min-height: 0; }

@media (max-width: 900px) {
  #view-dashboard.active { gap: 14px; }
}
@media (max-width: 640px) {
  #view-dashboard.active { gap: 12px; }
}


/* =========================================================
   Rycco - V6.4.0 | Metas e orçamentos mensais
   ========================================================= */
.goal-dashboard-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:4px;
}
.goal-dashboard-card {
  min-width:0;
  padding:15px;
  border:1px solid rgba(212,175,55,.14);
  border-radius:15px;
  background:linear-gradient(145deg,rgba(31,91,61,.18),rgba(8,22,17,.28));
}
.goal-dashboard-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; margin-bottom:11px; }
.goal-dashboard-head span { color:var(--muted); font-size:10px; }
.goal-dashboard-head strong { color:var(--gold-soft); font-size:11px; text-align:right; }
.goal-dashboard-card > small { display:block; margin-top:8px; color:var(--muted-2); font-size:9px; line-height:1.45; }
.goal-progress-track { height:8px; overflow:hidden; border-radius:999px; background:rgba(241,231,201,.08); }
.goal-progress-fill { height:100%; border-radius:inherit; transition:width .3s ease; background:linear-gradient(90deg,var(--green-700),var(--gold)); }
.goal-progress-fill.savings { background:linear-gradient(90deg,#2e6e4e,#78c58d); }
.goal-progress-fill.spending { background:linear-gradient(90deg,#c59a2e,var(--gold-bright)); }
.goal-progress-fill.good { background:linear-gradient(90deg,#2e6e4e,#78c58d); }
.goal-progress-fill.warning { background:linear-gradient(90deg,#b98724,#f0cf65); }
.goal-progress-fill.danger { background:linear-gradient(90deg,#963c32,#e36a5a); }
.goal-alert-list { display:grid; gap:7px; }
.goal-alert-list > small { color:var(--muted-2); font-size:9px; }
.goal-alert-row { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:7px 9px; border-radius:10px; background:rgba(31,91,61,.18); color:var(--muted); font-size:9px; }
.goal-alert-row strong { color:var(--income); font-size:9px; }
.goal-alert-row.warning { background:rgba(212,175,55,.08); }
.goal-alert-row.warning strong { color:var(--gold-bright); }
.goal-alert-row.danger { background:rgba(227,106,90,.09); }
.goal-alert-row.danger strong { color:var(--expense); }

.goals-summary-grid { margin-bottom:16px; }
.goal-summary-card { min-height:112px; }
.goals-config-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:16px; }
.goals-form, .budget-form { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.goals-form .full, .budget-form .full { grid-column:1 / -1; }
.goals-progress-panel { margin-bottom:16px; }
.goals-progress-list { display:grid; gap:12px; margin-top:15px; }
.goal-progress-item { padding:15px; border:1px solid rgba(212,175,55,.13); border-radius:15px; background:rgba(31,91,61,.10); }
.goal-progress-item.warning { border-color:rgba(212,175,55,.25); }
.goal-progress-item.danger { border-color:rgba(227,106,90,.27); background:rgba(227,106,90,.04); }
.goal-progress-copy { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:10px; }
.goal-progress-copy > div { display:grid; gap:4px; }
.goal-progress-copy span { color:var(--muted); font-size:10px; }
.goal-progress-copy strong { color:var(--cream-2); font-size:13px; }
.goal-progress-copy b { color:var(--gold-soft); font-size:14px; }
.goal-progress-item.good .goal-progress-copy b { color:var(--income); }
.goal-progress-item.danger .goal-progress-copy b { color:var(--expense); }
.goal-progress-item > small { display:block; margin-top:8px; color:var(--muted-2); font-size:9px; }
.category-budgets-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.category-budget-card { padding:15px; border:1px solid rgba(212,175,55,.14); border-radius:15px; background:linear-gradient(145deg,rgba(31,91,61,.12),rgba(8,22,17,.20)); }
.category-budget-card.warning { border-color:rgba(212,175,55,.28); }
.category-budget-card.danger { border-color:rgba(227,106,90,.28); background:linear-gradient(145deg,rgba(92,44,36,.20),rgba(43,27,22,.18)); }
.category-budget-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.category-budget-head > div { display:grid; gap:5px; min-width:0; }
.category-budget-head span { color:var(--gold-soft); font-size:10px; font-weight:700; }
.category-budget-head strong { color:var(--cream-2); font-size:12px; }
.category-budget-card .goal-progress-track { margin-top:12px; }
.category-budget-foot { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:8px; color:var(--muted-2); font-size:9px; }
.category-budget-foot strong { color:var(--income); font-size:9px; }

html[data-theme="light"] .goal-dashboard-card,
html[data-theme="light"] .goal-progress-item,
html[data-theme="light"] .category-budget-card { background:linear-gradient(145deg,rgba(255,255,255,.75),rgba(241,231,201,.42)); border-color:rgba(20,61,46,.11); }
html[data-theme="light"] .goal-dashboard-head span,
html[data-theme="light"] .goal-progress-copy span,
html[data-theme="light"] .category-budget-foot { color:#6b7f72; }
html[data-theme="light"] .goal-dashboard-head strong,
html[data-theme="light"] .category-budget-head span { color:#8c681b; }
html[data-theme="light"] .goal-dashboard-card > small,
html[data-theme="light"] .goal-alert-list > small,
html[data-theme="light"] .goal-progress-item > small { color:#7b8d81; }
html[data-theme="light"] .goal-progress-copy strong,
html[data-theme="light"] .category-budget-head strong { color:#143d2e; }
html[data-theme="light"] .goal-progress-track { background:rgba(20,61,46,.08); }
html[data-theme="light"] .goal-alert-row { background:rgba(46,110,78,.07); color:#53695c; }
html[data-theme="light"] .category-budget-card.danger { background:rgba(164,69,56,.055); border-color:rgba(164,69,56,.18); }

@media (max-width:1100px) {
  .goal-dashboard-grid { grid-template-columns:1fr 1fr; }
  .goal-dashboard-card.alerts-card { grid-column:1 / -1; }
  .category-budgets-list { grid-template-columns:1fr; }
}
@media (max-width:900px) {
  .goals-config-grid { grid-template-columns:1fr; }
  .mobile-nav { overflow-x:auto; grid-template-columns:repeat(7,minmax(72px,1fr)); scrollbar-width:none; }
  .mobile-nav::-webkit-scrollbar { display:none; }
}
@media (max-width:620px) {
  .goal-dashboard-grid { grid-template-columns:1fr; }
  .goal-dashboard-card.alerts-card { grid-column:auto; }
  .goals-form, .budget-form { grid-template-columns:1fr; }
  .goals-form .full, .budget-form .full { grid-column:auto; }
  .goal-progress-copy, .category-budget-foot { align-items:flex-start; }
}
@media (max-width:430px) {
  .mobile-nav { grid-template-columns:repeat(7,minmax(62px,1fr)); }
}


/* =========================================================
   Rycco - V6.4.0 | Movimentações recorrentes
   ========================================================= */
.recurring-dashboard-panel { min-width:0; }
.recurring-dashboard-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:3px; }
.recurring-dashboard-stat { display:grid; gap:6px; padding:13px 14px; border:1px solid rgba(212,175,55,.13); border-radius:14px; background:rgba(31,91,61,.12); }
.recurring-dashboard-stat span { color:var(--muted); font-size:9px; }
.recurring-dashboard-stat strong { color:var(--cream-2); font-size:15px; }
.recurring-dashboard-stat.income strong { color:var(--income); }
.recurring-dashboard-stat.expense strong { color:var(--expense); }
.recurring-dashboard-list { display:grid; gap:7px; margin-top:11px; }
.recurring-dashboard-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:10px 12px; border-top:1px solid rgba(212,175,55,.08); }
.recurring-dashboard-row:first-child { border-top:0; }
.recurring-dashboard-row > div { display:grid; grid-template-columns:auto 1fr; column-gap:8px; row-gap:2px; min-width:0; }
.recurring-dashboard-row > div:last-child { grid-template-columns:1fr; text-align:right; }
.recurring-dashboard-row strong { color:var(--cream-2); font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.recurring-dashboard-row strong.income { color:var(--income); }
.recurring-dashboard-row strong.expense { color:var(--expense); }
.recurring-dashboard-row small { grid-column:2; color:var(--muted-2); font-size:8px; }
.recurring-dashboard-row > div:last-child small { grid-column:auto; }
.recurring-dot { width:8px; height:8px; border-radius:50%; margin-top:3px; background:var(--gold); }
.recurring-dot.income { background:var(--income); }
.recurring-dot.expense { background:var(--expense); }

.recurring-summary-grid { margin-bottom:16px; }
.recurring-form-panel { margin-bottom:16px; }
.recurring-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.recurring-form .full { grid-column:1 / -1; }
.recurring-list-panel { margin-bottom:16px; }
.recurring-rules-list { display:grid; gap:10px; margin-top:12px; }
.recurring-rule-card { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center; gap:13px; padding:14px; border:1px solid rgba(212,175,55,.13); border-radius:15px; background:linear-gradient(145deg,rgba(31,91,61,.13),rgba(8,22,17,.22)); }
.recurring-rule-card.paused { opacity:.68; }
.recurring-rule-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:13px; font-size:18px; font-weight:800; }
.recurring-rule-icon.income { color:var(--income); background:rgba(107,196,125,.09); border:1px solid rgba(107,196,125,.16); }
.recurring-rule-icon.expense { color:var(--expense); background:rgba(227,106,90,.09); border:1px solid rgba(227,106,90,.16); }
.recurring-rule-main { min-width:0; display:grid; gap:4px; }
.recurring-rule-title { display:flex; align-items:center; gap:8px; min-width:0; }
.recurring-rule-title strong { color:var(--cream-2); font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.recurring-rule-main > span { color:var(--muted); font-size:9px; }
.recurring-rule-main > small { color:var(--muted-2); font-size:8px; line-height:1.4; }
.status-chip { flex:0 0 auto; padding:3px 7px; border-radius:999px; font-size:7px; font-weight:750; text-transform:uppercase; letter-spacing:.08em; }
.status-chip.active { color:var(--income); background:rgba(107,196,125,.09); border:1px solid rgba(107,196,125,.15); }
.status-chip.paused { color:var(--muted); background:rgba(241,231,201,.05); border:1px solid rgba(241,231,201,.08); }
.recurring-rule-value { display:grid; gap:3px; text-align:right; white-space:nowrap; }
.recurring-rule-value strong { font-size:12px; }
.recurring-rule-value strong.income { color:var(--income); }
.recurring-rule-value strong.expense { color:var(--expense); }
.recurring-rule-value small { color:var(--muted-2); font-size:8px; }
.recurring-rule-actions { display:flex; gap:5px; }
.tx-badge.recurring { color:var(--gold-soft); border-color:rgba(212,175,55,.22); background:rgba(212,175,55,.07); }

html[data-theme="light"] .recurring-dashboard-stat,
html[data-theme="light"] .recurring-rule-card { background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(241,231,201,.44)); border-color:rgba(20,61,46,.11); }
html[data-theme="light"] .recurring-dashboard-stat span,
html[data-theme="light"] .recurring-rule-main > span { color:#61766a; }
html[data-theme="light"] .recurring-dashboard-stat strong,
html[data-theme="light"] .recurring-dashboard-row strong,
html[data-theme="light"] .recurring-rule-title strong { color:#143d2e; }
html[data-theme="light"] .recurring-dashboard-row small,
html[data-theme="light"] .recurring-rule-main > small,
html[data-theme="light"] .recurring-rule-value small { color:#7a8d81; }
html[data-theme="light"] .recurring-dashboard-row { border-color:rgba(20,61,46,.07); }
html[data-theme="light"] .status-chip.paused { color:#687b70; background:rgba(20,61,46,.04); border-color:rgba(20,61,46,.09); }

@media (max-width:1100px) {
  .recurring-rule-card { grid-template-columns:auto minmax(0,1fr) auto; }
  .recurring-rule-actions { grid-column:2 / -1; justify-content:flex-end; }
}
@media (max-width:900px) {
  .mobile-nav { grid-template-columns:repeat(9,minmax(72px,1fr)); }
}
@media (max-width:720px) {
  .recurring-dashboard-grid { grid-template-columns:1fr; }
  .recurring-form { grid-template-columns:1fr; }
  .recurring-form .full { grid-column:auto; }
  .recurring-rule-card { grid-template-columns:auto minmax(0,1fr); }
  .recurring-rule-value { grid-column:2; text-align:left; }
  .recurring-rule-actions { grid-column:1 / -1; justify-content:flex-start; flex-wrap:wrap; }
}
@media (max-width:430px) {
  .mobile-nav { grid-template-columns:repeat(9,minmax(62px,1fr)); }
}


/* =========================================================
   Rycco - V6.4.0 | Notas de atualizações
   ========================================================= */
.version-with-notes,
.sidebar-version-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px 10px;
}
.sidebar-version-row { margin-top: 3px; }
.update-notes-link {
  appearance: none;
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--gold);
  font: inherit;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: underline;
  text-decoration-color: rgba(212,175,55,.42);
  text-underline-offset: 3px;
  cursor: pointer;
  transition: color .18s ease, text-decoration-color .18s ease;
}
.update-notes-link:hover,
.update-notes-link:focus-visible {
  color: var(--gold-bright);
  text-decoration-color: currentColor;
  outline: none;
}
.update-notes-link-dark { color: var(--gold-soft); }
.auth-brand-foot .update-notes-link { margin-left: 3px; }
.auth-local-note .version-with-notes { margin-bottom: 3px; }
.version-notice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.version-notice .update-notes-link { flex: 0 0 auto; }

.update-notes-modal {
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: grid;
  place-items: center;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .2s ease, visibility .2s ease;
}
.update-notes-modal.open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.update-notes-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(3,13,9,.76);
  backdrop-filter: blur(8px);
}
.update-notes-dialog {
  position: relative;
  z-index: 1;
  width: min(920px, 100%);
  max-height: min(88vh, 900px);
  display: grid;
  grid-template-rows: auto minmax(0,1fr) auto;
  overflow: hidden;
  border: 1px solid rgba(212,175,55,.25);
  border-radius: 24px;
  background: linear-gradient(155deg, #12382a, #081d15 72%);
  box-shadow: 0 34px 90px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.025);
  color: var(--cream);
}
.update-notes-header {
  position: relative;
  padding: 26px 74px 20px 28px;
  border-bottom: 1px solid rgba(212,175,55,.13);
  background: linear-gradient(135deg, rgba(31,91,61,.34), rgba(8,29,21,.12));
}
.update-notes-header h2 {
  margin: 5px 0 7px;
  color: var(--cream-2);
  font-size: clamp(25px,3vw,34px);
  line-height: 1.1;
  font-weight: 600;
  letter-spacing: -.03em;
}
.update-notes-header p {
  max-width: 710px;
  margin: 0;
  color: #8ca092;
  font-size: 11px;
  line-height: 1.55;
}
.update-notes-close {
  position: absolute;
  top: 19px;
  right: 20px;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(212,175,55,.22);
  border-radius: 12px;
  background: rgba(5,18,13,.42);
  color: var(--gold-soft);
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
}
.update-notes-close:hover { background: rgba(212,175,55,.08); color: var(--gold-bright); }
.update-notes-content {
  overflow-y: auto;
  padding: 22px 28px 28px;
  overscroll-behavior: contain;
  scrollbar-color: rgba(212,175,55,.35) transparent;
}
.update-notes-loading,
.update-notes-error {
  padding: 36px 10px;
  color: var(--muted);
  text-align: center;
}
.update-timeline { display: grid; gap: 14px; }
.update-card {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 150px minmax(0,1fr);
  gap: 22px;
  padding: 18px;
  border: 1px solid rgba(212,175,55,.12);
  border-radius: 17px;
  background: linear-gradient(145deg, rgba(20,61,46,.62), rgba(8,26,19,.72));
}
.update-card.latest {
  border-color: rgba(212,175,55,.34);
  box-shadow: inset 3px 0 0 var(--gold), 0 12px 30px rgba(0,0,0,.12);
}
.update-meta { display: grid; align-content: start; gap: 7px; }
.update-version {
  color: var(--gold-bright);
  font-size: 15px;
  font-weight: 750;
  letter-spacing: -.01em;
}
.update-date { color: var(--muted-2); font-size: 9px; }
.update-badge {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(212,175,55,.12);
  color: var(--gold-soft);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.update-body h3 {
  margin: 0 0 7px;
  color: var(--cream-2);
  font-size: 17px;
  line-height: 1.25;
  font-weight: 650;
}
.update-body > p {
  margin: 0 0 11px;
  color: #8ea195;
  font-size: 10px;
  line-height: 1.55;
}
.update-points {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 7px 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.update-points li {
  position: relative;
  padding-left: 14px;
  color: #a7b5aa;
  font-size: 9px;
  line-height: 1.45;
}
.update-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .48em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 9px rgba(212,175,55,.2);
}
.update-benefit {
  margin-top: 11px;
  padding: 10px 12px;
  border: 1px solid rgba(107,196,125,.12);
  border-radius: 11px;
  background: rgba(107,196,125,.045);
  color: #9cb5a3;
  font-size: 9px;
  line-height: 1.5;
}
.update-benefit strong { color: var(--income); }
.update-notes-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 15px 28px;
  border-top: 1px solid rgba(212,175,55,.12);
  background: rgba(5,18,13,.48);
}
.update-notes-footer > span { color: var(--muted-2); font-size: 9px; }
.update-notes-back-btn { min-width: 170px; }
body.update-notes-open { overflow: hidden; }

html[data-theme="light"] .update-notes-link { color: #9a7415; }
html[data-theme="light"] .update-notes-link:hover { color: #6f5310; }
html[data-theme="light"] .update-notes-dialog {
  color: #173a2d;
  border-color: rgba(154,116,21,.25);
  background: linear-gradient(155deg, #fffaf0, #f1e7c9 120%);
  box-shadow: 0 34px 90px rgba(45,53,34,.22);
}
html[data-theme="light"] .update-notes-backdrop { background: rgba(13,28,22,.52); }
html[data-theme="light"] .update-notes-header {
  border-bottom-color: rgba(154,116,21,.14);
  background: linear-gradient(135deg, rgba(212,175,55,.12), rgba(255,255,255,.45));
}
html[data-theme="light"] .update-notes-header h2,
html[data-theme="light"] .update-body h3 { color: #143d2e; }
html[data-theme="light"] .update-notes-header p,
html[data-theme="light"] .update-body > p,
html[data-theme="light"] .update-points li { color: #607669; }
html[data-theme="light"] .update-notes-close {
  background: rgba(255,255,255,.65);
  border-color: rgba(154,116,21,.20);
  color: #8b6814;
}
html[data-theme="light"] .update-card {
  border-color: rgba(24,69,51,.12);
  background: rgba(255,255,255,.50);
}
html[data-theme="light"] .update-card.latest { border-color: rgba(154,116,21,.30); }
html[data-theme="light"] .update-date,
html[data-theme="light"] .update-notes-footer > span { color: #71867a; }
html[data-theme="light"] .update-benefit { background: rgba(46,110,78,.05); color: #557263; }
html[data-theme="light"] .update-benefit strong { color: #2b704d; }
html[data-theme="light"] .update-notes-footer {
  border-top-color: rgba(154,116,21,.13);
  background: rgba(255,255,255,.38);
}

@media (max-width: 720px) {
  .version-notice { align-items: flex-start; flex-direction: column; gap: 8px; }
  .update-notes-modal { padding: 0; place-items: stretch; }
  .update-notes-dialog { width: 100%; height: 100dvh; max-height: none; border: 0; border-radius: 0; }
  .update-notes-header { padding: 22px 64px 17px 18px; }
  .update-notes-content { padding: 16px 14px 22px; }
  .update-card { grid-template-columns: 1fr; gap: 12px; padding: 15px; }
  .update-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 10px; }
  .update-points { grid-template-columns: 1fr; }
  .update-notes-footer { padding: 12px 14px; }
  .update-notes-footer > span { display: none; }
  .update-notes-back-btn { width: 100%; }
}


/* =========================================================
   Rycco - V6.4.0 | Identidade oficial + PWA instalável
   ========================================================= */
.theme-logo { display:block; max-width:100%; height:auto; }
.auth-logo-image { width:min(100%,270px); }
.sidebar-logo-image { width:min(100%,168px); }
.hero-logo-image { width:min(100%,220px); filter:drop-shadow(0 10px 18px rgba(212,175,55,.10)); }
.hero-title-hidden { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.brand-wrap { align-content:start; }
.hero-brand { align-items:center; gap:18px; }

.install-app-btn {
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:0 13px;
  border:1px solid rgba(212,175,55,.30);
  border-radius:13px;
  background:linear-gradient(145deg,rgba(212,175,55,.11),rgba(8,22,17,.38));
  color:var(--gold-bright);
  font-size:10px;
  font-weight:750;
  white-space:nowrap;
  backdrop-filter:blur(12px);
  transition:.18s ease;
}
.install-app-btn:hover { transform:translateY(-1px); border-color:rgba(240,207,101,.58); background:rgba(212,175,55,.12); }
.auth-install-btn { position:fixed; top:18px; right:132px; z-index:60; min-height:42px; }
html[data-theme="light"] .install-app-btn { background:rgba(255,250,240,.80); color:#795b19; border-color:rgba(155,118,32,.24); box-shadow:0 7px 18px rgba(47,64,48,.05); }
html[data-theme="light"] .install-app-btn:hover { color:#143d2e; border-color:rgba(155,118,32,.42); }
html[data-theme="light"] .sidebar-logo-image,
html[data-theme="light"] .auth-logo-image,
html[data-theme="light"] .hero-logo-image { filter:none; }

.pwa-modal { position:fixed; inset:0; z-index:10020; display:none; place-items:center; padding:18px; }
.pwa-modal.open { display:grid; }
.pwa-modal-backdrop { position:absolute; inset:0; background:rgba(4,15,11,.78); backdrop-filter:blur(10px); }
.pwa-modal-dialog {
  position:relative; z-index:1; width:min(520px,100%); max-height:min(760px,calc(100dvh - 36px)); overflow:auto;
  display:grid; gap:18px; padding:24px; border:1px solid rgba(212,175,55,.25); border-radius:24px;
  background:linear-gradient(145deg,#153d2e,#0a2118); box-shadow:0 30px 90px rgba(0,0,0,.48);
}
.pwa-modal-icon { width:72px; height:72px; overflow:hidden; border-radius:18px; box-shadow:0 12px 30px rgba(0,0,0,.20); }
.pwa-modal-icon img { width:100%; height:100%; display:block; }
.pwa-modal-copy h2 { margin:6px 0 10px; color:var(--cream-2); font-size:28px; }
.pwa-modal-copy p { margin:0 0 10px; color:var(--muted); font-size:12px; line-height:1.65; }
.pwa-modal-copy ol { margin:12px 0 0; padding-left:20px; color:var(--cream); font-size:12px; line-height:1.75; }
.pwa-modal-copy strong { color:var(--gold-soft); }
.pwa-modal-actions { display:flex; justify-content:flex-end; gap:9px; }
.pwa-modal-actions .primary-btn,.pwa-modal-actions .outline-btn { min-width:120px; }
html[data-theme="light"] .pwa-modal-backdrop { background:rgba(20,44,33,.40); }
html[data-theme="light"] .pwa-modal-dialog { background:linear-gradient(145deg,#fffaf0,#f1e7c9); border-color:rgba(20,61,46,.13); box-shadow:0 26px 70px rgba(47,64,48,.22); }
html[data-theme="light"] .pwa-modal-copy h2 { color:#143d2e; }
html[data-theme="light"] .pwa-modal-copy p, html[data-theme="light"] .pwa-modal-copy ol { color:#607568; }

.pwa-update-bar {
  position:fixed; left:50%; bottom:max(22px,env(safe-area-inset-bottom)); transform:translateX(-50%); z-index:10010;
  width:min(650px,calc(100% - 28px)); display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:13px 14px 13px 17px; border:1px solid rgba(212,175,55,.28); border-radius:17px;
  background:rgba(10,31,23,.96); box-shadow:0 20px 55px rgba(0,0,0,.38); backdrop-filter:blur(16px);
}
.pwa-update-bar.hidden { display:none; }
.pwa-update-bar > div { display:grid; gap:2px; }
.pwa-update-bar strong { color:var(--cream-2); font-size:11px; }
.pwa-update-bar span { color:var(--muted); font-size:9px; }
.pwa-update-bar .primary-btn { flex:0 0 auto; min-height:38px; padding:8px 12px; }
html[data-theme="light"] .pwa-update-bar { background:rgba(255,250,240,.97); border-color:rgba(20,61,46,.14); box-shadow:0 18px 45px rgba(47,64,48,.18); }
html[data-theme="light"] .pwa-update-bar strong { color:#143d2e; }
html[data-theme="light"] .pwa-update-bar span { color:#667b6d; }

@media (max-width:900px) {
  .auth-logo-image { width:min(100%,220px); }
  .sidebar-logo-image { width:148px; }
  .hero-logo-image { width:min(100%,178px); }
  .hero-install-btn { width:52px; padding:0; }
  .hero-install-btn .install-label { display:none; }
  .hero-controls { grid-template-columns:52px 52px 52px minmax(0,1fr); }
  .hero-controls .period-control { grid-column:1 / -1; }
}
@media (max-width:620px) {
  .auth-install-btn { top:11px; right:61px; min-height:38px; width:38px; padding:0; }
  .auth-install-btn .install-label { display:none; }
  .pwa-update-bar { bottom:96px; align-items:flex-start; }
}
@media (max-width:520px) {
  .hero-brand { align-items:flex-start; gap:14px; }
  .hero-logo-image { width:min(100%,150px); }
  .hero-controls { grid-template-columns:48px 48px 48px minmax(0,1fr); gap:7px; }
  .hero-install-btn,.hero-theme-toggle,.sync-status { width:48px; padding:0; }
  .pwa-modal-dialog { padding:20px; border-radius:20px; }
  .pwa-modal-actions { display:grid; grid-template-columns:1fr 1fr; }
  .pwa-modal-actions .primary-btn,.pwa-modal-actions .outline-btn { min-width:0; width:100%; }
  .pwa-update-bar { display:grid; grid-template-columns:1fr; }
  .pwa-update-bar .primary-btn { width:100%; }
}


/* =========================================================
   Rycco - V6.4.0 | Instalação PWA segura e assistida
   ========================================================= */
.install-app-btn.is-preparing {
  cursor: wait;
  opacity: .70;
  filter: saturate(.75);
}
.install-app-btn:disabled {
  cursor: wait;
  transform: none !important;
}
.pwa-browser-note {
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding: 12px 13px;
  border: 1px solid rgba(212,175,55,.18);
  border-radius: 13px;
  background: rgba(212,175,55,.055);
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}
.pwa-browser-note strong { color: var(--gold-soft); }
.pwa-browser-note.safe-note {
  border-color: rgba(107,196,125,.20);
  background: rgba(107,196,125,.055);
}
html[data-theme="light"] .pwa-browser-note {
  color: #607568;
  border-color: rgba(155,118,32,.18);
  background: rgba(212,175,55,.08);
}
html[data-theme="light"] .pwa-browser-note.safe-note {
  border-color: rgba(46,110,78,.16);
  background: rgba(46,110,78,.06);
}
@media (max-width: 520px) {
  .pwa-modal-actions.has-chrome-action { grid-template-columns: 1fr; }
}


/* =========================================================
   Rycco - V6.4.0 | Recuperação de senha
   ========================================================= */
.auth-helper-row {
  display:flex;
  justify-content:flex-end;
  margin-top:-4px;
}
.auth-forgot-link {
  padding:2px 0;
  font-size:11px;
}
.auth-info {
  padding:12px 13px;
  border:1px solid rgba(107,196,125,.22);
  border-radius:12px;
  background:rgba(107,196,125,.08);
  color:#a9d9b3;
  font-size:11px;
  line-height:1.55;
}
html[data-theme="light"] .auth-info {
  border-color:rgba(46,110,78,.20);
  background:rgba(46,110,78,.07);
  color:#315f47;
}


/* =========================================================
   Rycco - V6.4.0 | Edição e conta principal configurável
   ========================================================= */
.account-row.is-primary {
  margin-inline: -8px;
  padding-inline: 8px;
  border-radius: 14px;
  background: rgba(212,175,55,.035);
}
.account-actions { flex-wrap: wrap; justify-content: flex-end; }
.primary-account-btn { color: var(--gold-soft); border-color: rgba(212,175,55,.25); }
.primary-account-btn:hover { color: var(--cream-2); border-color: rgba(212,175,55,.48); background: rgba(212,175,55,.07); }
.account-editor-panel .panel-title-row { align-items:flex-start; }
html[data-theme="light"] .account-row.is-primary { background: rgba(212,175,55,.07); }
html[data-theme="light"] .primary-account-btn { color:#795b19; border-color:rgba(155,118,32,.22); }
@media (max-width: 760px) {
  .account-actions { gap:6px; }
  .account-actions .icon-btn { min-height:34px; padding:7px 9px; font-size:9px; }
}
@media (max-width: 520px) {
  .account-row { grid-template-columns:auto minmax(0,1fr); align-items:start; }
  .account-balance { grid-column:2; justify-self:start; margin-top:2px; }
  .account-row .tx-actions { grid-column:2; justify-content:flex-start; }
}

.account-mini-card.is-primary { border-color: rgba(212,175,55,.32); box-shadow: 0 12px 28px rgba(212,175,55,.06); }
html[data-theme="light"] .account-mini-card.is-primary { border-color: rgba(155,118,32,.28); }


/* =========================================================
   Rycco - V6.4.0 | Faturas e pagamentos de cartão
   ========================================================= */
.invoice-summary-grid { margin-bottom: 16px; }
.invoice-layout { display:grid; grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr); gap:16px; align-items:start; }
.invoice-payment-panel { position:sticky; top:18px; }
.invoice-payment-form { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.invoice-payment-hint { min-height:42px; padding:11px 13px; border:1px solid rgba(212,175,55,.15); border-radius:12px; color:var(--muted); background:rgba(212,175,55,.045); font-size:10px; line-height:1.5; }
.invoice-payment-hint strong { color:var(--cream-2); }
.invoice-transfer-note { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:16px; padding:14px; border:1px dashed rgba(212,175,55,.25); border-radius:14px; background:rgba(212,175,55,.035); }
.invoice-transfer-note > div { display:grid; gap:4px; }
.invoice-transfer-note strong { color:var(--cream-2); font-size:11px; }
.invoice-transfer-note span { color:var(--muted-2); font-size:9px; line-height:1.45; }
.invoice-transfer-note .outline-btn { flex:0 0 auto; }
.invoice-cards { display:grid; gap:12px; }
.invoice-card { padding:16px; border:1px solid var(--line); border-radius:17px; background:linear-gradient(145deg,rgba(20,61,46,.42),rgba(8,22,17,.40)); }
.invoice-card.invoice-status-overdue,.invoice-card.invoice-status-partialOverdue { border-color:rgba(227,106,90,.36); box-shadow:inset 3px 0 0 rgba(227,106,90,.65); }
.invoice-card.invoice-status-paid { opacity:.82; }
.invoice-card-head { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; }
.invoice-card-head > div { display:grid; gap:3px; }
.invoice-card-name { color:var(--gold-soft); font-size:9px; text-transform:uppercase; letter-spacing:.12em; font-weight:700; }
.invoice-card-head strong { color:var(--cream-2); font-size:17px; text-transform:capitalize; }
.invoice-card-head small { color:var(--muted-2); font-size:9px; }
.invoice-status { display:inline-flex; align-items:center; min-height:27px; padding:0 9px; border-radius:999px; border:1px solid rgba(212,175,55,.20); color:var(--gold-soft); background:rgba(212,175,55,.06); font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; white-space:nowrap; }
.invoice-status.paid { color:var(--income); border-color:rgba(107,196,125,.24); background:rgba(107,196,125,.07); }
.invoice-status.overdue,.invoice-status.partialOverdue { color:var(--expense); border-color:rgba(227,106,90,.28); background:rgba(227,106,90,.07); }
.invoice-values { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:14px 0 10px; }
.invoice-values > div { display:grid; gap:3px; padding:10px; border-radius:12px; background:rgba(5,18,13,.25); border:1px solid rgba(212,175,55,.08); }
.invoice-values span { color:var(--muted-2); font-size:8px; text-transform:uppercase; letter-spacing:.10em; }
.invoice-values strong { color:var(--cream); font-size:12px; font-variant-numeric:tabular-nums; }
.invoice-progress { height:6px; overflow:hidden; border-radius:999px; background:rgba(241,231,201,.07); }
.invoice-progress > div { height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--green-700),var(--gold-bright)); }
.invoice-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:12px; }
.invoice-actions details { flex:1 1 230px; }
.invoice-actions summary { cursor:pointer; color:var(--gold-soft); font-size:9px; font-weight:700; text-align:right; }
.compact-btn { min-height:36px; padding:8px 12px; font-size:10px; }
.paid-message { color:var(--income); font-size:10px; font-weight:700; }
.invoice-detail-section { display:grid; gap:7px; margin-top:12px; padding-top:12px; border-top:1px solid rgba(212,175,55,.09); }
.invoice-detail-section h4 { margin:9px 0 2px; color:var(--gold-soft); font-size:9px; text-transform:uppercase; letter-spacing:.12em; }
.invoice-purchase-row,.invoice-payment-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; padding:8px 0; border-bottom:1px solid rgba(212,175,55,.06); }
.invoice-payment-row { grid-template-columns:minmax(0,1fr) auto auto; }
.invoice-purchase-row > div,.invoice-payment-row > div { min-width:0; display:grid; gap:2px; }
.invoice-purchase-row strong,.invoice-payment-row strong { color:var(--cream); font-size:10px; }
.invoice-purchase-row span,.invoice-payment-row span { color:var(--muted-2); font-size:8px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.invoice-empty-payments { padding:9px 0; color:var(--muted-2); font-size:9px; }
html[data-theme="light"] .invoice-card { background:rgba(255,252,244,.78); }
html[data-theme="light"] .invoice-values > div { background:rgba(255,255,255,.62); }
html[data-theme="light"] .invoice-card-head strong,html[data-theme="light"] .invoice-values strong,html[data-theme="light"] .invoice-payment-hint strong,html[data-theme="light"] .invoice-transfer-note strong,html[data-theme="light"] .invoice-purchase-row strong,html[data-theme="light"] .invoice-payment-row strong { color:#143d2e; }
html[data-theme="light"] .invoice-payment-hint,html[data-theme="light"] .invoice-transfer-note { background:rgba(212,175,55,.055); }
@media (max-width:1050px) { .invoice-layout { grid-template-columns:1fr; } .invoice-payment-panel { position:static; } }
@media (max-width:620px) { .invoice-payment-form { grid-template-columns:1fr; } .invoice-payment-form .full { grid-column:auto; } .invoice-transfer-note { align-items:flex-start; flex-direction:column; } .invoice-values { grid-template-columns:1fr 1fr 1fr; gap:5px; } .invoice-values > div { padding:8px; } .invoice-payment-row { grid-template-columns:minmax(0,1fr) auto; } .invoice-payment-row .icon-btn { grid-column:1/-1; justify-self:end; } }


/* =========================================================
   Rycco - V6.4.0 | Compra 1x no cartão e composição de fatura
   ========================================================= */
#cashCardField select { border-color: rgba(212,175,55,.28); }
#cashCardField:not(.hidden) { min-width:0; }
#cashCardHelp, #cashDateHelp { min-height: 14px; }
html[data-theme="light"] #cashCardField select { border-color: rgba(132,158,90,.32); }
@media (max-width:620px) {
  #accountField, #cashCardField { grid-column:auto; }
}


/* Rycco - V6.4.0 | Recorrências em cartão */
#recurringCardField:not(.hidden), #recurringBillingDayField:not(.hidden) { animation: recurringFieldIn .18s ease; }
@keyframes recurringFieldIn { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:none; } }
html[data-theme="light"] #recurringCardField .field-help, html[data-theme="light"] #recurringBillingDayField .field-help { color:#728579; }


/* =========================================================
   Rycco - V6.4.0 | Central de notificações
   ========================================================= */
.notification-bell{position:relative;width:52px;height:52px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(212,175,55,.22);border-radius:14px;background:rgba(8,22,17,.35);color:var(--gold-soft);backdrop-filter:blur(12px);transition:.18s ease}
.notification-bell:hover{border-color:rgba(240,207,101,.52);background:rgba(212,175,55,.08);color:var(--gold-bright)}
.notification-bell svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.notification-badge{position:absolute;right:-5px;top:-6px;min-width:20px;height:20px;padding:0 5px;display:grid;place-items:center;border:2px solid var(--green-975);border-radius:999px;background:#d34d3d;color:#fff;font-size:9px;font-weight:800;box-shadow:0 6px 14px rgba(159,60,50,.28)}
html[data-theme="light"] .notification-bell{background:rgba(255,250,240,.82);color:#8d681b;border-color:rgba(155,118,32,.22)}
html[data-theme="light"] .notification-badge{border-color:#f6f0df}
.notification-modal{position:fixed;inset:0;z-index:10030;display:none;place-items:center;padding:18px}
.notification-modal.open{display:grid}.notification-modal-backdrop{position:absolute;inset:0;background:rgba(4,15,11,.78);backdrop-filter:blur(10px)}
.notification-dialog{position:relative;z-index:1;width:min(1080px,96vw);max-height:min(850px,94vh);display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden;border:1px solid rgba(212,175,55,.25);border-radius:25px;background:linear-gradient(145deg,#10291f,#091913);box-shadow:0 28px 90px rgba(0,0,0,.42)}
.notification-header{display:flex;justify-content:space-between;gap:20px;padding:24px 26px 18px;border-bottom:1px solid rgba(212,175,55,.11)}
.notification-header h2{margin:5px 0 5px;color:var(--cream-2);font-size:28px}.notification-header p{margin:0;color:var(--muted);font-size:11px}.notification-close{width:38px;height:38px;border:1px solid rgba(212,175,55,.18);border-radius:12px;background:rgba(255,255,255,.025);color:var(--gold-soft);font-size:25px;line-height:1}
.notification-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 26px;border-bottom:1px solid rgba(212,175,55,.09);background:rgba(212,175,55,.025)}
.notification-toolbar-copy{display:grid;gap:2px}.notification-toolbar-copy strong{color:var(--cream);font-size:12px}.notification-toolbar-copy span{color:var(--muted-2);font-size:9px}.notification-toolbar-actions{display:flex;gap:8px}.compact-btn{min-height:36px!important;padding:8px 12px!important;font-size:10px}.notification-device-active{filter:saturate(.65);opacity:.85}
.notification-body{min-height:0;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.72fr)}.notification-feed-wrap{min-height:0;overflow:auto;padding:18px 18px 24px 24px}.notification-feed{display:grid;gap:9px}
.notification-item{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;padding:14px;border:1px solid rgba(212,175,55,.11);border-radius:15px;background:rgba(255,255,255,.018)}.notification-item.unread{background:rgba(212,175,55,.045);border-color:rgba(212,175,55,.24)}.notification-item.critical{border-left:3px solid var(--expense)}.notification-item.warning{border-left:3px solid var(--gold)}.notification-item.success{border-left:3px solid var(--income)}
.notification-item-icon{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(212,175,55,.16);border-radius:12px;color:var(--gold-soft);background:rgba(212,175,55,.045)}.notification-item-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.notification-item.critical .notification-item-icon{color:var(--expense);border-color:rgba(227,106,90,.20);background:rgba(227,106,90,.06)}.notification-item.success .notification-item-icon{color:var(--income)}
.notification-item-copy{min-width:0}.notification-item-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.notification-item-top strong{color:var(--cream-2);font-size:11px;line-height:1.35}.notification-item-top span{flex:0 0 auto;color:var(--gold-soft);font-size:8px;text-transform:uppercase;letter-spacing:.08em}.notification-item p{margin:5px 0 7px;color:var(--muted);font-size:10px;line-height:1.5}.notification-item-actions{display:flex;gap:12px}.notification-item-actions .text-btn{padding:0;font-size:9px}.muted-action{color:var(--muted-2)!important}.notification-unread-dot{width:8px;height:8px;margin-top:4px;border-radius:50%;background:var(--gold-bright);box-shadow:0 0 0 4px rgba(212,175,55,.08)}
.notification-empty{min-height:300px;display:grid;place-items:center;align-content:center;gap:6px;text-align:center;color:var(--muted)}.notification-empty-icon{width:54px;height:54px;display:grid;place-items:center;border:1px solid rgba(107,196,125,.24);border-radius:17px;background:rgba(107,196,125,.07);color:var(--income);font-size:26px}.notification-empty strong{color:var(--cream-2);font-size:16px}.notification-empty p{max-width:360px;margin:0;font-size:10px;line-height:1.55}
.notification-settings{min-height:0;overflow:auto;padding:20px;border-left:1px solid rgba(212,175,55,.10);background:rgba(5,18,13,.24)}.notification-settings-head h3{margin:5px 0 12px;color:var(--cream-2);font-size:16px}.notification-switch{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid rgba(212,175,55,.07);cursor:pointer}.notification-switch input{margin-top:3px;accent-color:var(--gold)}.notification-switch span{display:grid;gap:2px}.notification-switch strong{color:var(--cream);font-size:10px}.notification-switch small{color:var(--muted-2);font-size:8px;line-height:1.4}.notification-lead-settings{display:grid;gap:9px;padding:14px 0}.notification-lead-settings>strong{color:var(--cream);font-size:10px}.lead-day-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.lead-day-grid label{display:flex;align-items:center;gap:6px;padding:8px;border:1px solid rgba(212,175,55,.11);border-radius:10px;color:var(--muted);font-size:9px}.lead-day-grid input{accent-color:var(--gold)}.notification-tech-note{margin:7px 0 0;padding:10px;border:1px solid rgba(212,175,55,.10);border-radius:11px;color:var(--muted-2);font-size:8px;line-height:1.55;background:rgba(212,175,55,.025)}
.notification-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 24px;border-top:1px solid rgba(212,175,55,.10)}.notification-footer span{color:var(--muted-2);font-size:9px}
html[data-theme="light"] .notification-modal-backdrop{background:rgba(20,44,33,.38)}html[data-theme="light"] .notification-dialog{background:linear-gradient(145deg,#fffaf0,#f2ead3);border-color:rgba(20,61,46,.14);box-shadow:0 26px 70px rgba(47,64,48,.24)}html[data-theme="light"] .notification-header h2,html[data-theme="light"] .notification-toolbar-copy strong,html[data-theme="light"] .notification-item-top strong,html[data-theme="light"] .notification-empty strong,html[data-theme="light"] .notification-settings-head h3,html[data-theme="light"] .notification-switch strong,html[data-theme="light"] .notification-lead-settings>strong{color:#143d2e}html[data-theme="light"] .notification-header p,html[data-theme="light"] .notification-item p,html[data-theme="light"] .notification-switch small,html[data-theme="light"] .notification-footer span{color:#66786d}html[data-theme="light"] .notification-item{background:rgba(255,255,255,.55);border-color:rgba(20,61,46,.10)}html[data-theme="light"] .notification-item.unread{background:#fff9e8;border-color:rgba(155,118,32,.22)}html[data-theme="light"] .notification-settings{background:rgba(20,61,46,.025);border-left-color:rgba(20,61,46,.10)}html[data-theme="light"] .notification-switch{border-bottom-color:rgba(20,61,46,.08)}html[data-theme="light"] .notification-close{background:#fffaf0;color:#785a18;border-color:rgba(155,118,32,.20)}
@media(max-width:900px){.notification-dialog{width:min(720px,96vw)}.notification-body{grid-template-columns:1fr}.notification-settings{border-left:0;border-top:1px solid rgba(212,175,55,.10);max-height:330px}.notification-feed-wrap{padding:16px}.hero-controls{grid-template-columns:52px 52px 52px 52px minmax(0,1fr)!important}.hero-controls .period-control{grid-column:1/-1}}
@media(max-width:620px){.notification-modal{padding:0}.notification-dialog{width:100%;height:100%;max-height:none;border-radius:0;border:0}.notification-header{padding:18px 16px 13px}.notification-header h2{font-size:23px}.notification-toolbar{padding:11px 14px;align-items:flex-start}.notification-toolbar-actions{display:grid;grid-template-columns:1fr}.notification-toolbar-actions .compact-btn{min-width:130px}.notification-body{overflow:hidden}.notification-feed-wrap{padding:12px 10px}.notification-item{grid-template-columns:38px minmax(0,1fr) auto;padding:12px 10px;gap:9px}.notification-item-icon{width:38px;height:38px}.notification-settings{max-height:40vh;padding:16px}.notification-footer{padding:10px 14px}.notification-footer span{display:none}.hero-controls{grid-template-columns:48px 48px 48px 48px minmax(0,1fr)!important;gap:7px}.notification-bell,.hero-install-btn,.hero-theme-toggle,.sync-status{width:48px;padding:0}.notification-badge{right:-3px;top:-5px}}


/* =========================================================
   Rycco - V6.4.0 | Navegação mobile premium
   ========================================================= */
.mobile-more-sheet { display:none; }
.mobile-nav svg,
.mobile-more-sheet svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.85; stroke-linecap:round; stroke-linejoin:round; }
.mobile-nav-new svg { stroke-width:2.2; }

@media (max-width: 900px) {
  .main { padding-bottom: 108px; }
  .view { padding-bottom: 118px; }
  .toast { bottom: 112px; }

  .mobile-nav.mobile-nav-premium {
    left: 12px !important;
    right: 12px !important;
    bottom: max(10px, env(safe-area-inset-bottom)) !important;
    z-index: 1000;
    display:grid;
    grid-template-columns: repeat(5, minmax(0,1fr)) !important;
    overflow: visible !important;
    gap: 2px;
    min-height: 76px;
    padding: 8px 7px calc(7px + env(safe-area-inset-bottom) * .15);
    border: 1px solid rgba(212,175,55,.22);
    border-radius: 24px;
    background: rgba(8,27,20,.94);
    box-shadow: 0 20px 52px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.035);
    backdrop-filter: blur(22px) saturate(145%);
    -webkit-backdrop-filter: blur(22px) saturate(145%);
  }
  .mobile-nav-premium .mobile-nav-item {
    position:relative;
    min-width:0;
    min-height:60px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    padding:5px 2px;
    border:0;
    border-radius:16px;
    background:transparent;
    color:#9eb1a4;
    font-size:11px !important;
    line-height:1;
    font-weight:650;
    letter-spacing:-.01em;
    transition:transform .18s ease, background .18s ease, color .18s ease;
  }
  .mobile-nav-premium .mobile-nav-item > span:last-child { white-space:nowrap; }
  .mobile-nav-premium .mobile-icon {
    width:25px;
    height:25px;
    display:grid;
    place-items:center;
    color:#d7bb55;
    background:transparent;
    border-radius:10px;
    transition:.18s ease;
  }
  .mobile-nav-premium .mobile-nav-item.active:not(.mobile-nav-new) {
    color:var(--cream-2);
    background:rgba(46,110,78,.22);
  }
  .mobile-nav-premium .mobile-nav-item.active:not(.mobile-nav-new) .mobile-icon {
    color:var(--gold-bright);
    background:rgba(212,175,55,.10);
    box-shadow:inset 0 0 0 1px rgba(212,175,55,.12);
  }
  .mobile-nav-premium .mobile-nav-item:active { transform:scale(.96); }

  .mobile-nav-premium .mobile-nav-new {
    overflow:visible;
    color:var(--gold-bright);
    font-weight:750;
  }
  .mobile-nav-premium .mobile-new-icon {
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    margin-top:-31px;
    margin-bottom:0;
    padding:16px;
    color:#10261d;
    border:4px solid #0b2018;
    border-radius:50%;
    background:linear-gradient(145deg,#f4d76d,#d4af37 68%,#b88920);
    box-shadow:0 13px 28px rgba(0,0,0,.32),0 5px 18px rgba(212,175,55,.26),inset 0 1px 0 rgba(255,255,255,.45);
  }
  .mobile-nav-premium .mobile-nav-new > span:last-child { margin-top:0; }

  .mobile-more-sheet {
    position:fixed;
    inset:0;
    z-index:10050;
    display:block;
    visibility:hidden;
    pointer-events:none;
  }
  .mobile-more-sheet.open { visibility:visible; pointer-events:auto; }
  .mobile-more-backdrop {
    position:absolute;
    inset:0;
    width:100%;
    border:0;
    background:rgba(4,13,10,.58);
    opacity:0;
    backdrop-filter:blur(3px);
    -webkit-backdrop-filter:blur(3px);
    transition:opacity .22s ease;
  }
  .mobile-more-sheet.open .mobile-more-backdrop { opacity:1; }
  .mobile-more-dialog {
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    max-height:min(78dvh,680px);
    overflow:auto;
    padding:9px 18px calc(24px + env(safe-area-inset-bottom));
    border:1px solid rgba(212,175,55,.20);
    border-bottom:0;
    border-radius:28px 28px 0 0;
    color:var(--ink);
    background:linear-gradient(160deg,#102d22,#091c15 78%);
    box-shadow:0 -24px 70px rgba(0,0,0,.40);
    transform:translateY(104%);
    transition:transform .28s cubic-bezier(.2,.8,.2,1);
  }
  .mobile-more-sheet.open .mobile-more-dialog { transform:translateY(0); }
  .mobile-more-handle { width:42px; height:4px; margin:1px auto 14px; border-radius:99px; background:rgba(241,231,201,.22); }
  .mobile-more-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:15px; }
  .mobile-more-header h2 { margin:4px 0 3px; color:var(--cream-2); font-size:24px; line-height:1.1; }
  .mobile-more-header p { margin:0; color:var(--muted); font-size:11px; }
  .mobile-more-close { width:44px; height:44px; flex:0 0 auto; display:grid; place-items:center; padding:11px; border:1px solid rgba(212,175,55,.16); border-radius:14px; color:var(--gold-soft); background:rgba(5,18,13,.34); }
  .mobile-more-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .mobile-more-item {
    min-height:82px;
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    grid-template-rows:auto auto;
    column-gap:11px;
    align-content:center;
    text-align:left;
    padding:12px;
    border:1px solid rgba(212,175,55,.14);
    border-radius:17px;
    color:var(--ink);
    background:rgba(31,91,61,.13);
    transition:.18s ease;
  }
  .mobile-more-item:active { transform:scale(.98); background:rgba(46,110,78,.22); }
  .mobile-more-icon { grid-row:1/3; align-self:center; width:42px; height:42px; display:grid; place-items:center; padding:9px; border:1px solid rgba(212,175,55,.20); border-radius:13px; color:var(--gold-soft); background:rgba(212,175,55,.06); }
  .mobile-more-item strong { align-self:end; color:var(--cream-2); font-size:12px; line-height:1.2; font-weight:700; }
  .mobile-more-item small { align-self:start; margin-top:3px; color:var(--muted-2); font-size:9px; line-height:1.25; }
  body.mobile-more-open { overflow:hidden; }
}

@media (max-width: 430px) {
  .mobile-nav.mobile-nav-premium { left:8px !important; right:8px !important; bottom:max(7px,env(safe-area-inset-bottom)) !important; padding-left:4px; padding-right:4px; }
  .mobile-nav-premium .mobile-nav-item { font-size:10.5px !important; }
  .mobile-nav-premium .mobile-icon { width:24px; height:24px; }
  .mobile-nav-premium .mobile-new-icon { width:56px; height:56px; margin-top:-30px; }
  .mobile-more-dialog { padding-left:13px; padding-right:13px; }
  .mobile-more-grid { gap:7px; }
  .mobile-more-item { min-height:80px; padding:10px; grid-template-columns:38px minmax(0,1fr); column-gap:9px; }
  .mobile-more-icon { width:38px; height:38px; padding:8px; }
  .mobile-more-item strong { font-size:11.5px; }
}

html[data-theme="light"] .mobile-nav.mobile-nav-premium {
  background:rgba(255,251,239,.96);
  border-color:rgba(20,61,46,.13);
  box-shadow:0 18px 44px rgba(61,55,31,.18),inset 0 1px 0 #fff;
}
html[data-theme="light"] .mobile-nav-premium .mobile-nav-item { color:#66786d; }
html[data-theme="light"] .mobile-nav-premium .mobile-icon { color:#a38323; }
html[data-theme="light"] .mobile-nav-premium .mobile-nav-item.active:not(.mobile-nav-new) { color:#143d2e; background:rgba(46,110,78,.10); }
html[data-theme="light"] .mobile-nav-premium .mobile-nav-item.active:not(.mobile-nav-new) .mobile-icon { color:#143d2e; background:rgba(212,175,55,.14); box-shadow:inset 0 0 0 1px rgba(155,118,32,.12); }
html[data-theme="light"] .mobile-nav-premium .mobile-new-icon { border-color:#fff8e8; color:#143d2e; }
html[data-theme="light"] .mobile-nav-premium .mobile-nav-new { color:#84671c; }
html[data-theme="light"] .mobile-more-backdrop { background:rgba(20,32,25,.34); }
html[data-theme="light"] .mobile-more-dialog { color:#143d2e; border-color:rgba(20,61,46,.10); background:linear-gradient(160deg,#fffaf0,#f4ecd7); box-shadow:0 -22px 64px rgba(63,56,34,.22); }
html[data-theme="light"] .mobile-more-handle { background:rgba(20,61,46,.18); }
html[data-theme="light"] .mobile-more-header h2 { color:#143d2e; }
html[data-theme="light"] .mobile-more-header p { color:#6c7c72; }
html[data-theme="light"] .mobile-more-close { color:#84671c; border-color:rgba(20,61,46,.10); background:#fffdf7; }
html[data-theme="light"] .mobile-more-item { color:#143d2e; border-color:rgba(20,61,46,.09); background:rgba(255,255,255,.58); }
html[data-theme="light"] .mobile-more-item:active { background:rgba(46,110,78,.09); }
html[data-theme="light"] .mobile-more-icon { color:#9b7620; border-color:rgba(155,118,32,.13); background:rgba(212,175,55,.11); }
html[data-theme="light"] .mobile-more-item strong { color:#143d2e; }
html[data-theme="light"] .mobile-more-item small { color:#718177; }


/* =========================================================
   Rycco - V6.4.0 | Cabeçalho mobile: usuário e ações
   ========================================================= */
@media (max-width: 620px) {
  .hero-controls {
    width: 100%;
    grid-template-columns: repeat(4, 48px) !important;
    justify-content: start;
    align-items: center;
    gap: 8px !important;
  }

  .hero-controls > .sync-status,
  .hero-controls > .hero-install-btn,
  .hero-controls > .notification-bell,
  .hero-controls > .hero-theme-toggle {
    grid-column: auto !important;
    width: 48px;
    min-width: 48px;
    height: 48px;
    min-height: 48px;
    padding: 0;
  }

  .hero-controls > .user-pill {
    grid-column: 1 / -1 !important;
    width: 100%;
    min-width: 0;
    min-height: 62px;
    margin-top: 3px;
    padding: 8px 9px 8px 10px;
    gap: 10px;
    border-radius: 16px;
  }

  .hero-controls .user-avatar {
    width: 42px;
    height: 42px;
    border-radius: 13px;
    font-size: 17px;
  }

  .hero-controls .user-copy {
    flex: 1;
    min-width: 0;
    display: grid;
    gap: 1px;
    line-height: 1.15;
  }

  .hero-controls .user-copy small {
    font-size: 10px;
    line-height: 1.2;
  }

  .hero-controls .user-copy strong {
    max-width: none;
    width: 100%;
    min-width: 0;
    font-size: 14px;
    line-height: 1.25;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  .hero-controls .logout-btn {
    flex: 0 0 auto;
    margin-left: auto;
    min-height: 38px;
    padding: 0 13px;
    border: 1px solid rgba(212,175,55,.24);
    border-radius: 11px;
    color: var(--gold-soft);
    background: rgba(212,175,55,.045);
    font-size: 11px;
  }

  .hero-controls > .period-control {
    grid-column: 1 / -1 !important;
    width: 100%;
    min-width: 0;
    margin-top: 2px;
  }

  .hero-controls .period-control select {
    width: 100%;
  }

  html[data-theme="light"] .hero-controls .logout-btn {
    color: #795b19;
    border-color: rgba(155,118,32,.22);
    background: rgba(212,175,55,.07);
  }
}

@media (max-width: 390px) {
  .hero-controls { grid-template-columns: repeat(4, 44px) !important; gap: 7px !important; }
  .hero-controls > .sync-status,
  .hero-controls > .hero-install-btn,
  .hero-controls > .notification-bell,
  .hero-controls > .hero-theme-toggle {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
  }
  .hero-controls .user-copy strong { font-size: 13px; }
}


/* =========================================================
   Rycco - V6.4.0 | Legibilidade e acessibilidade tipográfica
   ========================================================= */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  font-size: 16px;
  line-height: 1.5;
}

/* Hierarquia principal */
.brand-sub { font-size: 13px; line-height: 1.45; }
.eyebrow,
.hero-topline,
.balance-label { font-size: 12px; letter-spacing: .13em; line-height: 1.35; }
.summary-card span { font-size: 12px; letter-spacing: .11em; line-height: 1.4; }
.summary-card strong { font-size: 20px; line-height: 1.3; }
.panel h2 { font-size: 24px; line-height: 1.25; }
.page-heading p,
.panel-helper,
.chart-subtitle { font-size: 13px; line-height: 1.55; }

/* Navegação desktop */
.nav-item { font-size: 15px; line-height: 1.35; min-height: 52px; }
.sidebar-foot { font-size: 13px; line-height: 1.5; }
.sidebar-foot small { font-size: 12px; }
.update-notes-link { font-size: 12px; }

/* Cabeçalho e saldo */
.hero p { font-size: 15px; line-height: 1.55; }
.user-copy small { font-size: 12px; }
.user-copy strong { font-size: 14px; line-height: 1.35; }
.logout-btn { font-size: 13px; }
.period-control { font-size: 12px; }
.period-control select { font-size: 15px; }
.balance-caption { font-size: 13px; line-height: 1.5; }

/* Formulários e mensagens auxiliares */
.field > span,
.type-toggle legend { font-size: 13px; line-height: 1.4; letter-spacing: .11em; }
.field input,
.field select,
.inline-form input { font-size: 16px; line-height: 1.35; }
.field-help { font-size: 13px; line-height: 1.55; }
.installment-preview,
.notice { font-size: 13px; line-height: 1.6; }
.check-row,
.auth-error,
.auth-success { font-size: 13px; line-height: 1.55; }
.auth-brand-foot { font-size: 12px; }
.auth-local-note { font-size: 12px; line-height: 1.6; }

/* Listas e movimentações */
.tx-main strong { font-size: 14px; line-height: 1.4; }
.tx-main span { font-size: 12px; line-height: 1.45; }
.tx-amount { font-size: 14px; }
.icon-btn { font-size: 12px; min-height: 38px; }
.fixed-chip { font-size: 11px; }
.breakdown-head,
.breakdown-head strong { font-size: 13px; }
.installment-card-main span,
.installment-card-side span,
.installment-card summary,
.installment-part { font-size: 12px; line-height: 1.45; }
.status-pill,
.tx-badge { font-size: 10px; }
.card-chip > span:first-child small { font-size: 12px; }
.toast { font-size: 13px; line-height: 1.5; }

/* Contas e transferências */
.account-mini-top { font-size: 12px; }
.account-type-pill { font-size: 10px; }
.account-main span { font-size: 12px; line-height: 1.45; }
.transfer-main strong { font-size: 14px; }
.transfer-main span { font-size: 12px; }

/* Gráficos e análises */
.metric-hint { font-size: 12px; line-height: 1.45; }
.analytics-badge { font-size: 11px; }
.chart-legend { font-size: 12px; }
.chart-axis-label,
.chart-x-label { font-size: 12px; }
.donut-center small { font-size: 11px; }
.donut-center strong { font-size: 18px; }
.donut-legend-row,
.donut-legend-row strong { font-size: 12px; }
.donut-legend-row strong small { font-size: 11px; }
.account-bar-head { font-size: 12px; }
.account-bar-head strong { font-size: 13px; }
.account-bar-row > small { font-size: 11px; }
.projection-month span { font-size: 11px; }
.projection-values span,
.projection-values strong { font-size: 12px; }
.projection-balance small { font-size: 11px; }

/* Metas */
.goal-dashboard-head span,
.goal-progress-copy span,
.category-budget-head span { font-size: 12px; }
.goal-dashboard-head strong { font-size: 13px; }
.goal-dashboard-card > small,
.goal-alert-list > small,
.goal-alert-row,
.goal-alert-row strong,
.goal-progress-item > small,
.category-budget-foot,
.category-budget-foot strong { font-size: 12px; line-height: 1.45; }

/* Recorrências */
.recurring-dashboard-stat span { font-size: 12px; }
.recurring-dashboard-row strong { font-size: 13px; }
.recurring-dashboard-row small { font-size: 11px; line-height: 1.4; }
.recurring-rule-main > span { font-size: 12px; }
.recurring-rule-main > small { font-size: 11px; line-height: 1.5; }
.status-chip { font-size: 10px; }
.recurring-rule-value small { font-size: 11px; }

/* Faturas */
.invoice-payment-hint { font-size: 13px; line-height: 1.55; }
.invoice-transfer-note strong { font-size: 13px; }
.invoice-transfer-note span { font-size: 12px; line-height: 1.5; }
.invoice-card-name { font-size: 11px; }
.invoice-card-head small { font-size: 12px; }
.invoice-status { font-size: 10px; }
.invoice-values span { font-size: 11px; }
.invoice-actions summary { font-size: 12px; }
.compact-btn { font-size: 12px !important; }
.paid-message { font-size: 12px; }
.invoice-detail-section h4 { font-size: 11px; }
.invoice-purchase-row strong,
.invoice-payment-row strong { font-size: 13px; }
.invoice-purchase-row span,
.invoice-payment-row span { font-size: 11px; }
.invoice-empty-payments { font-size: 12px; }

/* Notificações */
.notification-header p { font-size: 13px; line-height: 1.5; }
.notification-toolbar-copy strong { font-size: 14px; }
.notification-toolbar-copy span { font-size: 12px; }
.notification-item-top strong { font-size: 14px; }
.notification-item-top span { font-size: 10px; }
.notification-item p { font-size: 13px; line-height: 1.55; }
.notification-item-actions .text-btn { font-size: 12px; }
.notification-empty p { font-size: 13px; }
.notification-switch strong,
.notification-lead-settings > strong { font-size: 13px; }
.notification-switch small { font-size: 11px; line-height: 1.5; }
.lead-day-grid label { font-size: 12px; }
.notification-tech-note { font-size: 11px; line-height: 1.55; }
.notification-footer span { font-size: 12px; }

/* Notas de atualização */
.update-date { font-size: 11px; }
.update-notes-footer > span { font-size: 12px; }

/* PWA */
.pwa-update-bar strong { font-size: 13px; }
.pwa-update-bar span { font-size: 12px; line-height: 1.45; }

/* Mais respiro nos cards que concentram informação */
.summary-card { min-height: 118px; padding: 19px 20px; }
.goal-dashboard-card,
.recurring-dashboard-stat,
.projection-card { line-height: 1.5; }

@media (max-width: 760px) {
  body { font-size: 16px; }
  .view { line-height: 1.55; }
  .hero p { font-size: 14px; }
  .eyebrow,
  .hero-topline,
  .balance-label { font-size: 11px; }
  .summary-card span { font-size: 11.5px; }
  .summary-card strong { font-size: 19px; }
  .panel h2 { font-size: 22px; }
  .field > span,
  .type-toggle legend { font-size: 12.5px; }
  .field-help { font-size: 12px; }

  .mobile-nav-premium .mobile-nav-item {
    font-size: 12px !important;
    line-height: 1.15;
  }
  .mobile-nav-premium .mobile-icon { width: 27px; height: 27px; }
  .mobile-more-header p { font-size: 13px; line-height: 1.5; }
  .mobile-more-item strong { font-size: 14px; }
  .mobile-more-item small { font-size: 12px; line-height: 1.35; }

  .hero-controls .user-copy small { font-size: 12px; }
  .hero-controls .user-copy strong { font-size: 16px; }
  .hero-controls .logout-btn { font-size: 13px; }
  .hero-controls .period-control { font-size: 12px; }
}

@media (max-width: 430px) {
  .mobile-nav-premium .mobile-nav-item { font-size: 11.5px !important; }
  .mobile-more-item strong { font-size: 13.5px; }
  .mobile-more-item small { font-size: 11.5px; }
  .hero-controls .user-copy strong { font-size: 15px; }
}


/* =========================================================
   Rycco - V6.4.0 | Segurança de produção
   ========================================================= */
.security-center-panel { display:grid; gap:22px; }
.security-summary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.security-status-card { display:flex; align-items:flex-start; gap:14px; padding:18px; border:1px solid var(--line); border-radius:16px; background:rgba(31,91,61,.12); }
.security-status-icon { width:42px; height:42px; display:grid; place-items:center; flex:0 0 auto; border-radius:13px; background:rgba(212,175,55,.10); color:var(--gold-soft); font-size:18px; }
.security-status-card div { display:grid; gap:4px; }
.security-status-card small { color:var(--muted); font-size:13px; }
.security-status-card strong { color:var(--cream-2); font-size:18px; }
.security-status-card p { margin:0; color:var(--muted); font-size:13px; line-height:1.55; }
.security-ok { color:var(--income)!important; }
.security-warning { color:var(--gold-soft)!important; }
.security-subsection { padding-top:20px; border-top:1px solid var(--line); }
.security-subsection h3 { margin:0 0 6px; color:var(--cream-2); font-size:19px; }
.security-subsection-head { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:12px; }
.security-subsection-head p { margin:0; color:var(--muted); font-size:13px; line-height:1.5; }
.security-sessions-list { display:grid; }
.security-session-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:15px 4px; border-top:1px solid rgba(212,175,55,.10); }
.security-session-row:first-child { border-top:0; }
.security-session-main { display:grid; gap:3px; min-width:0; }
.security-session-main strong { color:var(--cream-2); font-size:15px; }
.security-session-main span,.security-session-main small { color:var(--muted); font-size:12px; line-height:1.45; }
.security-current-badge { padding:7px 10px; border-radius:999px; background:rgba(107,196,125,.10); color:var(--income); font-size:11px; font-weight:700; }
.security-revoke-btn { min-height:38px; padding:8px 12px; }
.password-subsection .change-password-form { margin-top:12px; }
html[data-theme="light"] .security-status-card { background:rgba(46,110,78,.045); }
html[data-theme="light"] .security-status-card strong,html[data-theme="light"] .security-subsection h3,html[data-theme="light"] .security-session-main strong { color:#143d2e; }
@media(max-width:720px){
  .security-summary-grid{grid-template-columns:1fr;}
  .security-subsection-head{display:grid;}
  .security-subsection-head .outline-btn{width:100%;}
  .security-session-row{align-items:flex-start;}
  .security-revoke-btn{flex:0 0 auto;}
}


/* =========================================================
   Rycco - V6.4.0 | Ativação guiada de criptografia sem SSH
   ========================================================= */
.security-guided-box {
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);
  gap:18px;
  align-items:end;
  padding:18px;
  border:1px solid rgba(212,175,55,.20);
  border-radius:16px;
  background:linear-gradient(145deg,rgba(212,175,55,.055),rgba(31,91,61,.10));
}
.security-guided-copy { display:grid; gap:7px; align-content:start; }
.security-guided-copy strong { color:var(--cream-2); font-size:15px; }
.security-guided-copy span { color:var(--muted); font-size:13px; line-height:1.6; }
.security-encryption-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:end; }
.security-encryption-form .field { min-width:0; }
.security-key-warning { margin-top:12px; }
.security-key-download-form { max-width:720px; }
.security-backup-subsection code,
.encryption-setup-subsection code { color:var(--gold-soft); font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.92em; }
html[data-theme="light"] .security-guided-box { background:linear-gradient(145deg,rgba(212,175,55,.09),rgba(46,110,78,.05)); }
html[data-theme="light"] .security-guided-copy strong { color:#143d2e; }
html[data-theme="light"] .security-guided-copy span { color:#5f7467; }
@media (max-width:820px){
  .security-guided-box { grid-template-columns:1fr; }
  .security-encryption-form { grid-template-columns:1fr; }
  .security-encryption-form button { width:100%; }
}


/* =========================================================
   Rycco - V6.4.0 | Avisos automáticos com o app fechado
   ========================================================= */
.push-automatic-box{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-top:1px solid var(--line);margin-top:12px}.push-automatic-copy{display:grid;gap:4px}.push-automatic-copy strong,.push-admin-setup>strong,.push-cron-box>strong{color:var(--cream-2);font-size:13px}.push-automatic-copy small,.push-admin-setup p,.push-cron-box p{color:var(--muted);font-size:12px;line-height:1.55}.push-admin-setup,.push-cron-box{display:grid;gap:10px;padding:14px;border:1px solid rgba(212,175,55,.18);border-radius:14px;background:rgba(212,175,55,.04);margin-top:10px}.push-admin-setup .field{margin:0}.push-cron-box.ready{border-color:rgba(107,196,125,.24);background:rgba(107,196,125,.055)}
html[data-theme="light"] .push-automatic-copy strong,html[data-theme="light"] .push-admin-setup>strong,html[data-theme="light"] .push-cron-box>strong{color:#143d2e}
html[data-theme="light"] .push-automatic-copy small,html[data-theme="light"] .push-admin-setup p,html[data-theme="light"] .push-cron-box p{color:#607468}
@media(max-width:620px){.push-automatic-box{align-items:flex-start;flex-direction:column}.push-automatic-box .compact-btn{width:100%}}


/* V6.5.2 · Central Financeira */
.finance-page-heading { max-width: 900px; }
.finance-health-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  overflow: hidden;
  position: relative;
  border-color: rgba(212,175,55,.26);
}
.finance-health-panel::after {
  content: "";
  position: absolute;
  right: -90px;
  top: -100px;
  width: 250px;
  height: 250px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(212,175,55,.11), transparent 68%);
  pointer-events: none;
}
.finance-health-panel[data-tone="critical"] { border-color: rgba(227,106,90,.38); }
.finance-health-panel[data-tone="warning"] { border-color: rgba(212,175,55,.42); }
.finance-health-copy { position: relative; z-index: 1; max-width: 780px; }
.finance-health-copy h2 { margin: 7px 0 8px; }
.finance-health-copy p { margin: 0; color: var(--muted); line-height: 1.65; }
.finance-health-score { position: relative; z-index: 1; min-width: 210px; display: grid; justify-items: end; gap: 8px; text-align: right; }
.finance-health-score small { color: var(--muted-2); max-width: 220px; line-height: 1.45; }
.finance-status-badge { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 8px 14px; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--cream-2); background: rgba(212,175,55,.09); font-size: 12px; font-weight: 700; }
.finance-status-badge.good { color: var(--income); border-color: rgba(107,196,125,.32); background: rgba(107,196,125,.08); }
.finance-status-badge.warning { color: var(--gold-bright); border-color: rgba(212,175,55,.38); background: rgba(212,175,55,.10); }
.finance-status-badge.critical { color: #ff9b8f; border-color: rgba(227,106,90,.42); background: rgba(227,106,90,.10); }
.finance-summary-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.finance-net-card { border-color: rgba(212,175,55,.32); background: linear-gradient(145deg, rgba(212,175,55,.07), rgba(31,91,61,.08)); }
.finance-main-grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 18px; margin-top: 18px; }
.finance-secondary-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 18px; }
.finance-account-composition { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 18px 0; }
.finance-composition-item { display: grid; gap: 5px; padding: 13px 14px; border: 1px solid rgba(212,175,55,.13); border-radius: 13px; background: rgba(255,255,255,.018); }
.finance-composition-item span { color: var(--muted); font-size: 11px; }
.finance-composition-item strong { font-size: 15px; color: var(--cream-2); }
.finance-composition-item strong.negative, .finance-row-value.negative { color: var(--expense); }
.finance-accounts-list, .finance-next-commitments, .finance-mini-list { display: grid; gap: 7px; }
.finance-account-row, .finance-commitment-row, .finance-mini-row {
  width: 100%;
  border: 1px solid rgba(212,175,55,.11);
  background: rgba(255,255,255,.015);
  color: inherit;
  border-radius: 13px;
  transition: .18s ease;
}
.finance-account-row, .finance-commitment-row { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 12px 13px; text-align: left; }
.finance-account-row:hover, .finance-commitment-row:hover, .finance-mini-row:hover { border-color: rgba(212,175,55,.30); background: rgba(31,91,61,.11); transform: translateY(-1px); }
.finance-row-icon { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid rgba(212,175,55,.18); border-radius: 10px; color: var(--gold-soft); background: rgba(212,175,55,.05); }
.finance-row-copy { min-width: 0; display: grid; gap: 3px; }
.finance-row-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; color: var(--cream-2); }
.finance-row-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 11px; }
.finance-row-value { font-size: 13px; color: var(--cream-2); white-space: nowrap; }
.finance-row-value.expense, .finance-mini-row strong.expense { color: var(--expense); }
.finance-commitment-date { min-width: 78px; display: grid; gap: 2px; }
.finance-commitment-date strong { color: var(--gold-soft); font-size: 11px; }
.finance-commitment-date small { color: var(--muted-2); font-size: 10px; }
.finance-commitment-row.overdue { border-color: rgba(227,106,90,.28); background: rgba(227,106,90,.035); }
.finance-commitment-row.overdue .finance-commitment-date strong { color: #ff9b8f; }
.finance-mini-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 13px; text-align: left; }
.finance-mini-row > span { display: grid; gap: 3px; min-width: 0; }
.finance-mini-row > span strong { color: var(--cream-2); font-size: 13px; }
.finance-mini-row > span small { color: var(--muted); font-size: 11px; }
.finance-mini-row.overdue { border-color: rgba(227,106,90,.25); }
.finance-goals-summary { display: grid; gap: 15px; margin-top: 15px; }
.finance-goal-item { display: grid; gap: 8px; }
.finance-goal-item > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.finance-goal-item span { color: var(--muted); font-size: 12px; }
.finance-goal-item strong { color: var(--cream-2); font-size: 13px; }
.finance-goal-item small { color: var(--muted-2); line-height: 1.45; }
.finance-goal-foot { display: flex; justify-content: space-between; padding-top: 13px; border-top: 1px solid rgba(212,175,55,.10); }
.finance-actions-panel { margin-top: 18px; }
.finance-quick-actions { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-top: 16px; }
.finance-action { display: grid; gap: 5px; min-height: 88px; padding: 14px; border: 1px solid rgba(212,175,55,.14); border-radius: 14px; color: var(--cream); background: rgba(255,255,255,.018); text-align: left; }
.finance-action:hover { border-color: rgba(212,175,55,.34); background: rgba(31,91,61,.12); }
.finance-action strong { color: var(--cream-2); font-size: 13px; }
.finance-action span { color: var(--muted); font-size: 11px; line-height: 1.45; }
.finance-method-note { margin-top: 18px; }
.finance-more-item { border-color: rgba(212,175,55,.20) !important; }

[data-theme="light"] .finance-health-panel::after { background: radial-gradient(circle, rgba(212,175,55,.15), transparent 68%); }
[data-theme="light"] .finance-account-row,
[data-theme="light"] .finance-commitment-row,
[data-theme="light"] .finance-mini-row,
[data-theme="light"] .finance-composition-item,
[data-theme="light"] .finance-action { background: rgba(20,61,46,.025); }

@media (max-width: 1050px) {
  .finance-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .finance-main-grid { grid-template-columns: 1fr; }
  .finance-quick-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 720px) {
  .finance-health-panel { align-items: flex-start; flex-direction: column; }
  .finance-health-score { min-width: 0; justify-items: start; text-align: left; }
  .finance-secondary-grid { grid-template-columns: 1fr; }
  .finance-account-composition { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
  .finance-summary-grid { grid-template-columns: 1fr; }
  .finance-account-composition { grid-template-columns: 1fr; }
  .finance-quick-actions { grid-template-columns: 1fr; }
  .finance-account-row, .finance-commitment-row { grid-template-columns: auto minmax(0,1fr); }
  .finance-account-row .finance-row-value, .finance-commitment-row .finance-row-value { grid-column: 2; justify-self: start; }
  .finance-commitment-date { min-width: 64px; }
}

/* V6.6.0 · Previsão financeira 30/60/90 dias */
.finance-forecast-panel { margin-top: 18px; overflow: hidden; }
.finance-forecast-heading { align-items: flex-start; }
.finance-forecast-heading p { max-width: 760px; margin: 7px 0 0; color: var(--muted); line-height: 1.55; }
.finance-forecast-badge { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 8px 13px; border: 1px solid rgba(212,175,55,.24); border-radius: 999px; color: var(--gold-soft); background: rgba(212,175,55,.07); font-size: 11px; font-weight: 800; white-space: nowrap; }
.finance-forecast-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 18px; }
.finance-forecast-card { position: relative; display: grid; gap: 7px; min-height: 178px; padding: 17px; border: 1px solid rgba(212,175,55,.15); border-radius: 16px; background: linear-gradient(145deg,rgba(255,255,255,.025),rgba(31,91,61,.055)); }
.finance-forecast-card.good { border-color: rgba(107,196,125,.20); }
.finance-forecast-card.warning { border-color: rgba(212,175,55,.34); }
.finance-forecast-card.critical { border-color: rgba(227,106,90,.36); background: linear-gradient(145deg,rgba(227,106,90,.055),rgba(255,255,255,.018)); }
.finance-forecast-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.finance-forecast-card-head span { color: var(--gold-soft); font-size: 13px; font-weight: 800; }
.finance-forecast-card-head small { color: var(--muted-2); font-size: 10px; }
.finance-forecast-balance { margin-top: 5px; color: var(--cream-2); font-size: clamp(24px,2.25vw,34px); letter-spacing: -.03em; }
.finance-forecast-balance.negative { color: var(--expense); }
.finance-forecast-label { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.finance-forecast-card-breakdown { display: grid; gap: 6px; padding-top: 11px; margin-top: auto; border-top: 1px solid rgba(212,175,55,.10); }
.finance-forecast-card-breakdown span { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 10.5px; }
.finance-forecast-card-breakdown strong { color: var(--cream-2); font-size: 11px; white-space: nowrap; }
.finance-forecast-card-breakdown strong.income { color: var(--income); }
.finance-forecast-card-breakdown strong.expense { color: var(--expense); }
.finance-spendable-grid { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); gap: 12px; margin-top: 12px; }
.finance-spendable-card, .finance-forecast-method { padding: 18px; border: 1px solid rgba(212,175,55,.18); border-radius: 17px; background: rgba(255,255,255,.018); }
.finance-spendable-card[data-tone="good"] { border-color: rgba(107,196,125,.27); background: linear-gradient(145deg,rgba(107,196,125,.045),rgba(212,175,55,.035)); }
.finance-spendable-card[data-tone="warning"] { border-color: rgba(212,175,55,.38); }
.finance-spendable-card[data-tone="critical"] { border-color: rgba(227,106,90,.38); background: rgba(227,106,90,.035); }
.finance-spendable-value-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 8px 0 7px; }
.finance-spendable-value-row > strong { color: var(--cream-2); font-size: clamp(30px,3.2vw,45px); letter-spacing: -.04em; }
.finance-spendable-status { display: inline-flex; min-height: 32px; align-items: center; padding: 6px 10px; border: 1px solid rgba(212,175,55,.18); border-radius: 999px; color: var(--gold-soft); background: rgba(212,175,55,.06); font-size: 10.5px; font-weight: 800; }
.finance-spendable-card > p { margin: 0; color: var(--muted); line-height: 1.58; }
.finance-spendable-breakdown { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 15px; }
.finance-spendable-breakdown > div { display: grid; gap: 4px; padding: 10px 11px; border: 1px solid rgba(212,175,55,.10); border-radius: 12px; background: rgba(255,255,255,.015); }
.finance-spendable-breakdown span { color: var(--muted-2); font-size: 10px; }
.finance-spendable-breakdown strong { color: var(--cream-2); font-size: 12px; }
.finance-spendable-breakdown strong.income { color: var(--income); }
.finance-spendable-breakdown strong.expense { color: var(--expense); }
.finance-spendable-breakdown strong.limit { color: var(--gold-soft); }
.finance-forecast-method h3 { margin: 7px 0 13px; color: var(--cream-2); font-size: 17px; }
.finance-method-steps { display: grid; gap: 9px; }
.finance-method-steps > div { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 10px; align-items: start; }
.finance-method-steps > div > span { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid rgba(212,175,55,.20); border-radius: 9px; color: var(--gold-soft); background: rgba(212,175,55,.05); font-size: 11px; font-weight: 800; }
.finance-method-steps p { display: grid; gap: 2px; margin: 0; }
.finance-method-steps strong { color: var(--cream-2); font-size: 12px; }
.finance-method-steps small { color: var(--muted); font-size: 10.5px; line-height: 1.45; }
.finance-method-warning { margin: 14px 0 0; padding-top: 12px; border-top: 1px solid rgba(212,175,55,.10); color: var(--muted-2); font-size: 10.5px; line-height: 1.5; }
[data-theme="light"] .finance-forecast-card,
[data-theme="light"] .finance-spendable-card,
[data-theme="light"] .finance-forecast-method { background: rgba(255,255,255,.50); }
[data-theme="light"] .finance-spendable-card[data-tone="good"] { background: linear-gradient(145deg,rgba(107,196,125,.08),rgba(212,175,55,.06)); }
@media (max-width: 900px) {
  .finance-forecast-grid { grid-template-columns: 1fr; }
  .finance-spendable-grid { grid-template-columns: 1fr; }
  .finance-forecast-card { min-height: 0; }
}
@media (max-width: 560px) {
  .finance-forecast-heading { display: grid; gap: 12px; }
  .finance-forecast-badge { justify-self: start; }
  .finance-spendable-value-row { align-items: flex-start; flex-direction: column; }
  .finance-spendable-breakdown { grid-template-columns: 1fr; }
}
