  :root {
    color-scheme: light;
    --ink-900:#efefef; --ink-800:#ffffff; --ink-700:#ececec; --ink-600:#dcdcdc;
    --paper:#262626; --paper-dim:#737373;
    --gold:#9c9c9c; --gold-bright:#737373;
    --on-accent:#232323;
    --navy:#262626; --navy-2:#383838; --on-navy:#efefef; --gold-on-navy:#bebebe;
    --teal:#676767; --coral:#5b5b5b; --amber:#878787;
    --line:rgba(38,38,38,0.12); --shadow:rgba(50,50,50,0.14);
  }
  * { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
  html, body { margin:0; padding:0; background:var(--ink-900); color:var(--paper); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; -webkit-font-smoothing:antialiased; font-variant-numeric:tabular-nums; }
  html { scroll-padding-top: env(safe-area-inset-top, 0px); }
  body { min-height:100%; }
  svg.icon { width:18px; height:18px; stroke:currentColor; stroke-width:1.8; fill:none; stroke-linecap:round; stroke-linejoin:round; display:block; }
  button, .drag-handle, .nav-item, .toggle-btn, .rate-chip, .preset-btn, .icon-btn, .icon-btn-h, .expand-btn, .checked-btn, .add-sub-btn, .add-group-btn, .link-open-btn, .copy-btn, .reset-btn { transition:transform 0.1s ease, background 0.15s ease, border-color 0.15s ease, color 0.15s ease; }
  button:active, .drag-handle:active { transform:scale(0.96); }
  .shadow-sm { box-shadow: 0 1px 3px var(--shadow); }
  .shadow-md { box-shadow: 0 4px 16px var(--shadow); }

  /* Header */
  .app-header {
    position:sticky; top:0; z-index:40; background:var(--navy); border-bottom:2px solid var(--gold); box-shadow: 0 2px 10px var(--shadow);
    padding: calc(env(safe-area-inset-top,0px) + 14px) 18px 12px;
    display:flex; align-items:center; justify-content:space-between;
  }
  .app-title { font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:700; font-size:16px; color:var(--on-navy); letter-spacing:0.01em; }
  .header-icons { display:flex; gap:6px; }
  .icon-btn-h { background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.20); color:var(--gold-on-navy); width:34px; height:34px; border-radius:8px; display:flex; align-items:center; justify-content:center; cursor:pointer; }
  .icon-btn-h:active { background:rgba(255,255,255,0.16); border-color:var(--gold); color:var(--on-navy); }

  .content-wrap { max-width:640px; margin:0 auto; padding:18px 18px calc(30px + env(safe-area-inset-bottom,0px)); }
  .tab-panel { display:none; opacity:0; transform:translateY(4px); }
  .tab-panel.active { display:block; animation: fadeInUp 0.22s ease forwards; }
  @keyframes fadeInUp { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }

  .block { margin-bottom:22px; }
  .block-title { font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:700; font-size:16px; color:var(--paper); margin:0 0 10px; letter-spacing:0.01em; }
  .block-sub { font-size:14px; color:var(--paper-dim); margin:-6px 0 12px; line-height:1.5; }

  /* Stat cards */
  .stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
  .stat { background:var(--navy); padding:14px 12px; border-radius:12px; box-shadow: 0 2px 8px var(--shadow); }
  .stat .label { font-size:14px; text-transform:uppercase; letter-spacing:0.06em; color:rgba(239,239,239,0.65); margin-bottom:6px; }
  .stat .value { font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:700; font-size:17px; color:var(--gold-on-navy); }
  .stat.warn .value { color:#a8a8a8; }
  .stat.ok .value { color:#aeaeae; }

  .card { background:var(--ink-800); border-radius:16px; padding:16px 16px; box-shadow: 0 3px 14px var(--shadow); }
  .card + .card { margin-top:12px; }
  .card.accent-teal { border-left:3px solid var(--teal); }
  .card.health-red { border-left:3px solid var(--coral); box-shadow: 0 3px 14px var(--shadow), 0 0 16px rgba(91,91,91,0.14); transition:border-color 0.3s ease, box-shadow 0.3s ease; }
  .card.health-amber { border-left:3px solid var(--amber); box-shadow: 0 3px 14px var(--shadow), 0 0 16px rgba(135,135,135,0.14); transition:border-color 0.3s ease, box-shadow 0.3s ease; }
  .card.health-green { border-left:3px solid var(--teal); box-shadow: 0 3px 14px var(--shadow), 0 0 16px rgba(103,103,103,0.14); transition:border-color 0.3s ease, box-shadow 0.3s ease; }
  #emergCard { transition: border-color 0.6s ease, box-shadow 0.6s ease; }
  #emergHealthLabel { transition: color 0.6s ease; }
  .emerg-health-label { font-size:14px; font-weight:600; letter-spacing:0.03em; text-transform:uppercase; }
  .emerg-health-label.health-red { color:var(--coral); }
  .emerg-health-label.health-amber { color:var(--amber); }
  .emerg-health-label.health-green { color:var(--teal); }
  .card.accent-gold { border-left:3px solid var(--gold); }

  input::placeholder, textarea::placeholder { color:var(--paper-dim); opacity:0.55; font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; }
  .field-inline label { display:block; font-size:14px; text-transform:uppercase; letter-spacing:0.06em; color:var(--paper-dim); margin-bottom:5px; }
  .money-input { background:var(--ink-900); border:1px solid var(--line); border-radius:12px; color:var(--gold-bright); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:600; font-size:22px; width:100%; max-width:210px; padding:9px 12px; outline:none; }
  .money-input:focus { border-color:var(--gold); }
  .money-input.sm { font-size:17px; padding:8px 11px; }
  .money-display { font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:700; font-size:17px; color:var(--gold-bright); background:var(--ink-900); border:1px solid var(--line); border-radius:12px; padding:8px 12px; display:inline-block; }

  .card-head-row { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
  .card-title { font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:700; font-size:16px; color:var(--paper); margin:0; }
  .card-note { font-size:14px; color:var(--paper-dim); line-height:1.5; margin-top:10px; padding-top:10px; border-top:1px solid var(--line); }

  .toggle-row { display:flex; gap:6px; margin-bottom:10px; flex-wrap:wrap; }
  .toggle-btn { background:var(--ink-700); border:1px solid var(--line); color:var(--paper); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:14px; padding:6px 12px; border-radius:20px; cursor:pointer; }
  .toggle-btn.active { border-color:var(--gold); background:rgba(164,164,164,0.1); color:var(--gold-bright); font-weight:600; }

  .rate-chip-row { display:flex; gap:6px; flex-wrap:wrap; }
  .rate-chip { background:var(--ink-700); border:1px solid var(--line); color:var(--paper); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:14px; padding:5px 10px; border-radius:14px; cursor:pointer; }
  .rate-chip.active { background:var(--gold); border-color:var(--gold); color:var(--on-accent); font-weight:600; }
  .field-label { font-size:14px; text-transform:uppercase; letter-spacing:0.05em; color:var(--paper-dim); margin-bottom:6px; display:block; }
  .custom-rate-inline { display:flex; align-items:center; gap:6px; margin-top:8px; }
  .custom-rate-inline input { width:55px; background:transparent; border:none; border-bottom:1px solid var(--paper-dim); color:var(--paper); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:15px; text-align:right; padding:3px; outline:none; }

  .field-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px 14px; margin-bottom:10px; }
  .field-grid input[type=text], .field-grid input[type=url], .field-grid select {
    width:100%; background:var(--ink-900); border:1px solid var(--line); border-radius:8px; color:var(--paper);
    font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:15px; padding:7px 9px; outline:none;
  }
  .field-grid input:focus, .field-grid select:focus { border-color:var(--gold); }

  .goal-link-row { display:flex; gap:8px; align-items:center; margin-bottom:10px; }
  .goal-link-row input { flex:1; background:var(--ink-900); border:1px solid var(--line); border-radius:8px; color:var(--paper); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:14px; padding:7px 9px; outline:none; }
  .link-open-btn { background:none; border:1px solid var(--gold); color:var(--gold-bright); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:14px; padding:6px 11px; border-radius:8px; cursor:pointer; text-decoration:none; white-space:nowrap; }
  .checked-row { display:flex; align-items:center; gap:8px; margin-bottom:10px; flex-wrap:wrap; font-size:14px; color:var(--paper-dim); }
  .checked-btn { background:none; border:1px solid var(--line); color:var(--paper-dim); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:14px; padding:5px 9px; border-radius:8px; cursor:pointer; }
  .checked-btn:hover { border-color:var(--gold); color:var(--gold-bright); }

  .goal-result { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:8px; margin-bottom:10px; }
  .goal-result .cell { background:var(--ink-700); padding:10px 11px; border-radius:12px; box-shadow: 0 1px 4px var(--shadow); }
  .goal-result .cell .l { font-size:14px; text-transform:uppercase; letter-spacing:0.04em; color:var(--paper-dim); margin-bottom:4px; }
  .goal-result .cell .v { font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:700; font-size:16px; color:var(--gold-bright); }
  .goal-result .cell .v.muted { color:var(--paper); }
  .progress-bar-wrap { margin-top:2px; height:6px; background:var(--ink-900); border-radius:4px; overflow:hidden; box-shadow: inset 0 1px 2px rgba(0,0,0,0.3); }
  .progress-bar-fill { height:100%; border-radius:4px; background:linear-gradient(90deg, var(--teal), #8a8a8a); box-shadow: 0 0 8px rgba(103,103,103,0.35); transition:width 0.25s ease; }
  .reverse-calc { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:14px; color:var(--paper-dim); margin-top:6px; }
  .reverse-calc input { width:50px; background:var(--ink-900); border:1px solid var(--line); border-radius:8px; color:var(--paper); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:14px; padding:4px 6px; text-align:center; outline:none; }
  .reverse-calc b { color:var(--teal); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; }

  .aporte-line { margin:8px 0; font-size:14px; }
  .aporte-line b { color:var(--gold-bright); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:16px; }

  .horizon-presets { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px; }
  .preset-btn { background:var(--ink-700); border:1px solid var(--line); color:var(--paper-dim); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:14px; padding:5px 10px; border-radius:16px; cursor:pointer; }
  .preset-btn.active { background:var(--gold); border-color:var(--gold); color:var(--on-accent); font-weight:600; }
  .slider-row { display:flex; align-items:center; gap:12px; margin-bottom:4px; position:relative; padding-top:22px; }
  input[type=range] { flex:1; -webkit-appearance:none; appearance:none; height:6px; border-radius:4px; outline:none; background:var(--ink-700); box-shadow: inset 0 1px 3px rgba(0,0,0,0.35); }
  input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; width:20px; height:20px; border-radius:50%; background:var(--gold); border:3px solid var(--on-accent); cursor:pointer; box-shadow: 0 0 0 5px rgba(156,156,156,0.25), 0 2px 6px var(--shadow); }
  input[type=range]::-moz-range-thumb { width:20px; height:20px; border-radius:50%; background:var(--gold); border:3px solid var(--on-accent); cursor:pointer; box-shadow: 0 0 0 5px rgba(156,156,156,0.25), 0 2px 6px var(--shadow); }
  .slider-bubble { position:absolute; top:-2px; transform:translateX(-50%); background:var(--gold); color:var(--on-accent); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:700; font-size:14px; padding:3px 8px; border-radius:7px; white-space:nowrap; pointer-events:none; box-shadow:0 2px 6px var(--shadow); }
  .slider-bubble::after { content:''; position:absolute; left:50%; bottom:-4px; transform:translateX(-50%); border-width:4px 4px 0; border-style:solid; border-color:var(--gold) transparent transparent; }
  .horizon-label { font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:700; font-size:16px; color:var(--gold-bright); white-space:nowrap; min-width:78px; text-align:right; }

  .compare-table { width:100%; border-collapse:collapse; margin-top:4px; }
  .compare-table th, .compare-table td { text-align:right; padding:7px 8px; font-size:14px; border-bottom:1px solid var(--line); }
  .compare-table th:first-child, .compare-table td:first-child { text-align:left; }
  .compare-table th { text-transform:uppercase; font-size:14px; letter-spacing:0.05em; color:var(--paper-dim); font-weight:500; }
  .compare-table td.name { font-weight:600; }
  .fine-print { font-size:14px; color:var(--paper-dim); line-height:1.5; margin-top:10px; }

  /* Categories */
  /* Category grid */
  .cat-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; }
  .cat-tile { background:var(--ink-800); border-radius:16px; padding:16px 8px 12px; display:flex; flex-direction:column; align-items:center; gap:8px; cursor:pointer; border:none; box-shadow: 0 3px 12px var(--shadow); color:var(--paper); }
  .cat-tile:active { transform:scale(0.95); }
  .ee-sorting .ee6-detail-content{grid-template-rows:0fr!important;opacity:0!important}
  .ee6-sub-card{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
  .ee6-sub-card input,.ee6-sub-card textarea,.ee6-sub-card select{-webkit-user-select:text;user-select:text}
  .ee6-sub-card .drag-handle{touch-action:auto!important;padding:12px 10px;margin:-10px -6px}
  .card,.spend-card,.group-card,.cat-tile,.home-tile,.alert-card,.next-card{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  .ee-swipe-face{will-change:auto!important}
  button,.chip,.pill,.link-btn,input[type=checkbox],.check-line{transition:background-color .2s ease,color .2s ease,border-color .2s ease,opacity .2s ease,transform .15s ease}
  .app-header { view-transition-name:ee-header; transition:box-shadow .25s ease; }
  .app-header.scrolled { box-shadow:0 8px 22px -12px rgba(0,0,0,.55); }
  .tab-panel.active > * { animation:fadeInUp .38s cubic-bezier(.32,.72,0,1) backwards; }
  .tab-panel.active > *:nth-child(2) { animation-delay:.04s } .tab-panel.active > *:nth-child(3) { animation-delay:.08s }
  .tab-panel.active > *:nth-child(4) { animation-delay:.12s } .tab-panel.active > *:nth-child(5) { animation-delay:.16s }
  .tab-panel.active > *:nth-child(n+6) { animation-delay:.2s }
  @media (prefers-reduced-motion:reduce) { .tab-panel.active > * { animation:none } .modal-overlay,.modal-overlay .modal-box { transition:none !important } }
  html.ee-nav-fwd::view-transition-old(root){animation:eeNavOutL .3s cubic-bezier(.32,.72,0,1) both}
  html.ee-nav-fwd::view-transition-new(root){animation:eeNavInR .45s cubic-bezier(.32,.72,0,1) both}
  html.ee-nav-back::view-transition-old(root){animation:eeNavOutR .3s cubic-bezier(.32,.72,0,1) both}
  html.ee-nav-back::view-transition-new(root){animation:eeNavInL .45s cubic-bezier(.32,.72,0,1) both}
  @keyframes eeNavOutL{to{opacity:0;transform:translateX(-26px)}}
  @keyframes eeNavInR{from{opacity:0;transform:translateX(34px)}}
  @keyframes eeNavOutR{to{opacity:0;transform:translateX(26px)}}
  @keyframes eeNavInL{from{opacity:0;transform:translateX(-34px)}}
  .cat-tile { user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; padding-bottom:16px; }
  .cat-tile-icon { width:44px; height:44px; border-radius:12px; background:var(--icon-bg); border:2px solid var(--navy); display:flex; align-items:center; justify-content:center; color:var(--navy); }
  .cat-tile-icon svg { width:22px; height:22px; }
  .cat-tile-total { font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:700; font-size:14px; color:var(--paper); text-align:center; }
  .cat-tile-add { background:var(--ink-800); border:1.5px dashed var(--line); border-radius:16px; padding:16px 8px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; cursor:pointer; color:var(--paper-dim); min-height:96px; }
  .cat-tile-add:active { transform:scale(0.95); }

  .detail-back-btn { display:flex; align-items:center; gap:6px; background:none; border:none; color:var(--paper-dim); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:15px; padding:6px 0 16px; cursor:pointer; }
  .detail-back-btn:active { transform:translateX(-2px); }
  .detail-header { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
  .detail-icon { width:38px; height:38px; border-radius:11px; background:var(--icon-bg); border:2px solid var(--navy); display:flex; align-items:center; justify-content:center; color:var(--navy); flex-shrink:0; }
  .detail-icon svg { width:19px; height:19px; }

  .groups { display:flex; flex-direction:column; gap:10px; }
  .group-card { background:var(--ink-800); border-radius:16px; overflow:hidden; box-shadow: 0 2px 10px var(--shadow); }
  .group-card.dragging { opacity:0.4; }
  .group-head { display:flex; align-items:center; gap:6px; padding:11px 12px; background:var(--ink-700); flex-wrap:wrap; }
  .drag-handle { cursor:grab; color:var(--paper-dim); font-size:16px; padding:2px 5px; user-select:none; touch-action:none; line-height:1; }
  .drag-handle:active { cursor:grabbing; }
  .collapse-btn { background:none; border:none; color:var(--paper-dim); cursor:pointer; font-size:14px; padding:4px 5px; }
  .group-name-input { background:var(--ink-900); border:1px solid var(--line); border-radius:8px; color:var(--paper); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:600; font-size:15px; padding:5px 8px; outline:none; flex:1; min-width:80px; }
  .group-name-input:focus { border-color:var(--gold); }
  .margin-field { display:flex; align-items:center; gap:4px; font-size:14px; color:var(--paper-dim); white-space:nowrap; background:var(--ink-900); border:1px solid var(--line); border-radius:8px; padding:4px 7px; }
  .margin-field input { width:26px; background:transparent; border:none; color:var(--paper); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:14px; text-align:right; padding:0; outline:none; }
  .group-total { font-size:14px; color:var(--paper-dim); white-space:nowrap; text-align:right; }
  .group-total b { color:var(--gold-bright); font-size:14px; }
  .icon-btn { background:none; border:none; cursor:pointer; color:var(--paper-dim); font-size:16px; padding:3px 6px; border-radius:8px; line-height:1; }
  .icon-btn.danger:active { background:rgba(149,149,149,0.15); color:var(--coral); }

  .group-body { padding-top:2px; }
  .subs-container { display:flex; flex-direction:column; }
  .sub-row { border-bottom:1px solid var(--line); }
  .sub-row.dragging { opacity:0.4; }
  .sub-row:last-child { border-bottom:none; }
  .sub-main { display:flex; align-items:center; gap:5px; padding:8px 12px 8px 6px; flex-wrap:wrap; }
  .sub-name-input, .sub-select, .sub-value-input { background:var(--ink-900); border:1px solid var(--line); border-radius:8px; color:var(--paper); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:14px; padding:5px 7px; outline:none; }
  .sub-name-input:focus, .sub-select:focus, .sub-value-input:focus { border-color:var(--gold); }
  .sub-name-input { flex:1; min-width:80px; }
  .sub-value-input { width:78px; text-align:right; color:var(--gold-bright); }
  .sub-value-input:disabled { color:var(--paper-dim); background:var(--ink-800); }
  .sub-select { color:var(--paper-dim); cursor:pointer; }
  .auto-tag { font-size:13px; color:var(--teal); text-transform:uppercase; letter-spacing:0.04em; white-space:nowrap; }
  .expand-btn { background:var(--ink-900); border:1px solid var(--line); color:var(--paper-dim); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:14px; padding:5px 9px; border-radius:8px; cursor:pointer; white-space:nowrap; }
  .expand-btn.on { border-color:var(--gold); color:var(--gold-bright); }

  .sub-panel { display:none; padding:12px 14px 14px 30px; background:rgba(0,0,0,0.12); border-top:1px dashed var(--line); }
  .sub-panel.open { display:block; }

  .group-horizon { margin:6px 12px 10px; padding:10px 12px; background:var(--ink-900); border:1px solid var(--line); border-radius:12px; }
  .group-horizon .result-line { font-size:14px; color:var(--paper); margin-top:4px; }
  .group-horizon .result-line b { color:var(--gold-bright); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:16px; }

  .group-foot { padding:8px 12px; }
  .add-sub-btn, .add-group-btn { background:none; border:1px dashed var(--gold); color:var(--gold-bright); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:14px; padding:6px 12px; border-radius:8px; cursor:pointer; }
  .add-group-row { display:flex; justify-content:center; padding-top:2px; }

  /* Roadmap */
  .timeline { position:relative; padding-left:22px; }
  .timeline::before { content:''; position:absolute; left:5px; top:4px; bottom:4px; width:2px; background:var(--line); }
  .timeline-item { position:relative; padding-bottom:16px; }
  .timeline-item:last-child { padding-bottom:0; }
  .timeline-dot { position:absolute; left:-22px; top:3px; width:11px; height:11px; border-radius:50%; background:var(--gold); border:2px solid var(--ink-800); }
  .timeline-item.done .timeline-dot { background:var(--teal); }
  .timeline-month { font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:700; color:var(--gold-bright); font-size:14px; }
  .timeline-item.done .timeline-month { color:var(--teal); }
  .timeline-name { color:var(--paper); font-size:15px; margin-top:1px; }
  .timeline-target { color:var(--paper-dim); font-size:14px; margin-top:1px; }
  .timeline-empty { color:var(--paper-dim); font-size:14px; }
  .timeline-unreachable { margin-top:14px; padding-top:12px; border-top:1px dashed var(--line); }
  .timeline-unreachable-title { font-size:14px; text-transform:uppercase; letter-spacing:0.05em; color:var(--coral); margin-bottom:6px; }
  .timeline-unreachable-item { font-size:14px; color:var(--paper-dim); margin-bottom:3px; }

  /* Bottom nav */
  /* Home tiles */
  .stat-grid-2 { grid-template-columns:repeat(2, 1fr); }
  .home-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:12px; margin-top:16px; }
  .home-tile { background:var(--ink-800); border-radius:16px; padding:20px 14px; display:flex; flex-direction:column; align-items:center; gap:12px; cursor:pointer; border:none; box-shadow: 0 3px 14px var(--shadow); color:var(--paper); }
  .home-tile:active { transform:scale(0.96); }
  .home-tile-icon { width:48px; height:48px; border-radius:13px; background:var(--icon-bg); border:2px solid var(--navy); display:flex; align-items:center; justify-content:center; color:var(--navy); transition:border-color 0.6s ease, color 0.6s ease; }
  .home-tile-icon svg { width:24px; height:24px; }
  .home-tile-value { font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:700; font-size:16px; color:var(--paper); text-align:center; }

  /* Modal */
  .modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.6); z-index:1000; align-items:center; justify-content:center; padding:20px; }
  .modal-overlay.open { display:flex; }
  .modal-box { background:var(--ink-800); border:1px solid var(--line); border-radius:16px; max-width:600px; width:100%; max-height:85vh; display:flex; flex-direction:column; box-shadow:0 12px 40px var(--shadow); }
  .modal-head { display:flex; justify-content:space-between; align-items:center; padding:14px 18px; border-bottom:1px solid var(--line); }
  .modal-head h3 { margin:0; font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:700; font-size:16px; color:var(--gold-bright); }
  .modal-close { background:none; border:none; color:var(--paper-dim); font-size:18px; cursor:pointer; line-height:1; padding:4px 8px; }
  .modal-body { padding:14px 18px; overflow-y:auto; }
  #summaryText, #linksText { width:100%; min-height:320px; background:var(--ink-900); border:1px solid var(--line); border-radius:12px; color:var(--paper); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:14px; line-height:1.6; padding:12px; resize:vertical; outline:none; }
  .modal-foot { padding:10px 18px 16px; display:flex; justify-content:flex-end; gap:8px; }
  .copy-btn { background:var(--gold); border:1px solid var(--gold); color:var(--on-accent); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:14px; font-weight:600; padding:8px 16px; border-radius:8px; cursor:pointer; }
  .copy-btn.copied { background:var(--teal); border-color:var(--teal); }
  .reset-line { display:flex; justify-content:flex-end; margin-top:6px; }
  .reset-btn { background:none; border:1px solid var(--paper-dim); color:var(--paper-dim); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:14px; padding:6px 11px; border-radius:8px; cursor:pointer; }
  .reset-btn:hover { border-color:var(--coral); color:var(--coral); }

  @media (max-width:400px) {
    .stat-grid { grid-template-columns:1fr; }
    .field-grid { grid-template-columns:1fr; }
  }

  /* v10 — números livres, linhas de configuração, seta de expansão */
  .stat { background:none; box-shadow:none; padding:0; border-radius:0; }
  .stat .label { color:var(--paper-dim); font-size:14px; }
  .stat .value { color:var(--paper); font-size:24px; }
  .stat.ok .value { color:var(--teal); }
  .stat.warn .value { color:var(--coral); }
  .stat-grid-2 { gap:0; }
  .stat-grid-2 .stat + .stat { border-left:1px solid var(--line); padding-left:18px; }
  .money-display { background:none; border:none; padding:0; font-size:22px; }
  .sub-panel { background:var(--ink-700); }
  .sub-panel .goal-result .cell { background:var(--ink-800); }
  .row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); min-height:44px; }
  .row-label { font-size:14px; color:var(--paper-dim); }
  .row-select-wrap { position:relative; display:inline-flex; align-items:center; }
  .row-select { -webkit-appearance:none; appearance:none; background:transparent; border:none; outline:none; color:var(--paper); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:600; font-size:15px; text-align:right; text-align-last:right; padding:4px 18px 4px 4px; cursor:pointer; }
  .row-select-wrap::after { content:''; position:absolute; right:5px; top:50%; width:6px; height:6px; border-right:1.5px solid var(--paper-dim); border-bottom:1.5px solid var(--paper-dim); transform:translateY(-70%) rotate(45deg); pointer-events:none; }
  .row-input-wrap { display:inline-flex; align-items:baseline; gap:4px; }
  .row-input { background:transparent; border:none; outline:none; color:var(--paper); font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:600; font-size:15px; text-align:right; width:92px; padding:4px 0; }
  .row-input:focus { color:var(--gold-bright); }
  .row-affix { font-size:14px; color:var(--paper-dim); }
  .switch { position:relative; display:inline-block; width:38px; height:22px; }
  .switch input { opacity:0; width:0; height:0; position:absolute; }
  .switch-track { position:absolute; inset:0; background:var(--ink-600); border-radius:22px; transition:background .2s ease; }
  .switch-track::after { content:''; position:absolute; top:3px; left:3px; width:16px; height:16px; border-radius:50%; background:#ffffff; box-shadow:0 1px 3px var(--shadow); transition:transform .2s ease, background .2s ease; }
  .switch input:checked + .switch-track { background:var(--navy); }
  .switch input:checked + .switch-track::after { transform:translateX(16px); background:var(--gold); }
  .expand-btn { width:30px; height:30px; padding:0; border:none; background:none; display:inline-flex; align-items:center; justify-content:center; color:var(--paper-dim); }
  .expand-btn svg { width:16px; height:16px; transition:transform .2s ease; }
  .expand-btn.on { color:var(--gold-bright); border:none; }
  .expand-btn.on svg { transform:rotate(180deg); }
  details.learn-more { margin-top:14px; font-size:14px; color:var(--paper-dim); }
  details.learn-more summary { cursor:pointer; list-style:none; display:inline-block; text-decoration:underline; text-underline-offset:3px; }
  details.learn-more summary::-webkit-details-marker { display:none; }
  details.learn-more p { margin:8px 0 0; line-height:1.6; }

  /* v11 — interior sem caixas flutuantes: contornos finos, números livres, fios */
  :root { --line-strong: rgba(38,38,38,0.20); }
  .card { box-shadow:none; border:1px solid var(--line-strong); border-radius:16px; }
  .card.accent-teal, .card.accent-gold { border-left:3px solid var(--teal); }
  .card.accent-gold { border-left-color:var(--gold); }
  .goal-result { gap:0; }
  .goal-result .cell, .sub-panel .goal-result .cell { background:none; box-shadow:none; padding:0; border-radius:0; }
  .goal-result .cell + .cell { border-left:1px solid var(--line); padding-left:14px; }
  .goal-result .cell .v { font-size:16px; }
  .group-horizon { background:none; border:none; border-bottom:1px solid var(--line); border-radius:0; margin:0 0 4px; padding:6px 0 14px; }
  .sub-main { padding:6px 0; }
  .sub-name-input, .sub-select, .sub-value-input { background:transparent; border:none; border-bottom:1px solid transparent; border-radius:0; padding:6px 2px; }
  .sub-name-input:focus, .sub-value-input:focus, .sub-select:focus { border-bottom-color:var(--gold); }
  .sub-select { -webkit-appearance:none; appearance:none; font-size:14px; text-transform:uppercase; letter-spacing:0.04em; }
  .sub-value-input:disabled { background:transparent; }
  .sub-row { border-bottom:1px solid var(--line); }
  .group-name-input { background:transparent; border:none; border-bottom:1px solid transparent; border-radius:0; padding:4px 0; font-size:19px; }
  .group-name-input:focus { border-bottom-color:var(--gold); }
  .margin-field { background:none; border:none; padding:0; }
  .margin-field input { width:32px; }
  .sub-panel { border-top:none; padding:4px 0 14px 26px; background:none; }
  /* Ícones dourados: categorias e investimento */
  .cat-tile-icon, .detail-icon, .home-tile[data-panel="investimento"] .home-tile-icon, .home-tile[data-panel="categorias"] .home-tile-icon { color:var(--gold); }

  /* v13 — Gastos */
  .bar { height:8px; border-radius:6px; background:var(--ink-600); overflow:hidden; }
  .bar > i { display:block; height:100%; width:0; border-radius:6px; background:var(--teal); transition:width .3s ease, background .3s ease; }
  .bar.amber > i { background:var(--amber); }
  .bar.red > i { background:var(--coral); }
  .bar.thin { height:4px; width:100%; }
  .spend-card { margin-top:16px; background:var(--ink-800); border:1px solid var(--line-strong); border-radius:16px; padding:14px 16px; }
  .spend-open { display:block; width:100%; text-align:left; background:none; border:none; padding:0; cursor:pointer; color:var(--paper); font-family:inherit; }
  .spend-top { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:8px; }
  .spend-title { font-size:14px; text-transform:uppercase; letter-spacing:.06em; color:var(--paper-dim); }
  .spend-val { font-weight:700; font-size:18px; }
  .spend-val small { color:var(--paper-dim); font-weight:500; font-size:14px; }
  .spend-cap { font-size:14px; color:var(--paper-dim); margin-top:8px; line-height:1.5; }
  .spend-add { width:100%; margin-top:12px; background:var(--gold); border:1px solid var(--gold); color:var(--on-accent); font-family:inherit; font-weight:600; font-size:15px; padding:10px 14px; border-radius:10px; cursor:pointer; }
  .month-nav { display:flex; align-items:center; justify-content:space-between; margin:0 0 14px; }
  .month-nav button { background:none; border:1px solid var(--line-strong); color:var(--paper); width:36px; height:36px; border-radius:10px; font-size:18px; cursor:pointer; line-height:1; }
  .month-nav button:disabled { opacity:.3; cursor:default; }
  .month-nav span { font-weight:700; font-size:16px; }
  .cat-row { padding:10px 0; border-bottom:1px solid var(--line); }
  .cat-row:last-child { border-bottom:none; }
  .cat-row-top { display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-bottom:6px; font-size:15px; }
  .cat-row-name { font-weight:600; }
  .cat-row-amt { font-size:14px; color:var(--paper-dim); white-space:nowrap; }
  .cat-row-sub { font-size:14px; margin-top:5px; color:var(--paper-dim); }
  .cat-row-sub.over { color:var(--coral); }
  .day-head { font-size:14px; text-transform:uppercase; letter-spacing:.06em; color:var(--paper-dim); margin:14px 0 4px; }
  .day-head:first-child { margin-top:0; }
  .exp-row { display:flex; align-items:center; gap:12px; width:100%; text-align:left; background:none; border:none; border-bottom:1px solid var(--line); padding:10px 0; cursor:pointer; color:var(--paper); font-family:inherit; }
  .exp-ico { width:32px; height:32px; border-radius:9px; border:1.5px solid var(--navy); color:var(--gold); background:var(--icon-bg); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .exp-ico svg { width:16px; height:16px; }
  .exp-main { flex:1; min-width:0; }
  .exp-title { font-size:15px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .exp-meta { font-size:14px; color:var(--paper-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .exp-amt { font-weight:700; font-size:15px; }
  .empty-note { font-size:14px; color:var(--paper-dim); text-align:center; padding:18px 0; line-height:1.6; }
  .form-field { margin-bottom:12px; }
  .form-field label { display:block; font-size:14px; text-transform:uppercase; letter-spacing:.06em; color:var(--paper-dim); margin-bottom:5px; }
  .form-input { width:100%; background:var(--ink-900); border:1px solid var(--line); border-radius:12px; color:var(--paper); font-family:inherit; font-size:16px; padding:10px 12px; outline:none; }
  .form-input:focus { border-color:var(--gold); }
  .form-input.bad { border-color:var(--coral); }
  #expAmount { font-size:22px; font-weight:600; color:var(--gold-bright); }
  .detail-spend { margin:0 0 12px; padding-bottom:12px; border-bottom:1px solid var(--line); }
  .detail-spend-top { display:flex; justify-content:space-between; align-items:baseline; font-size:14px; color:var(--paper-dim); margin-bottom:6px; }
  .detail-spend-top b { color:var(--paper); font-size:15px; }
  .detail-spend .add-sub-btn { margin-top:10px; }

  /* v14 — Histórico */
  .seg { display:flex; border:1px solid var(--line-strong); border-radius:10px; overflow:hidden; margin-bottom:14px; }
  .seg button { flex:1; background:none; border:none; padding:9px 0; font-family:inherit; font-size:14px; font-weight:600; color:var(--paper-dim); cursor:pointer; }
  .seg button.on { background:var(--navy); color:var(--on-navy); }
  .chip-row { display:flex; gap:6px; align-items:center; margin-bottom:10px; flex-wrap:wrap; }
  .chip { border:1px solid var(--line-strong); background:none; border-radius:999px; padding:4px 11px; font-size:14px; color:var(--paper-dim); font-family:inherit; cursor:pointer; }
  .chip.on { background:var(--navy); color:var(--on-navy); border-color:var(--navy); }
  .chip-select { flex:1; min-width:120px; padding:6px 10px; font-size:14px; border-radius:10px; }
  svg.chart { width:100%; height:auto; display:block; }
  .chart-cap { font-size:14px; color:var(--paper-dim); margin-top:8px; line-height:1.55; }
  .chart-cap b { color:var(--paper); }
  .chart-cap button { background:none; border:none; padding:0; margin-left:6px; color:var(--gold-bright); font-family:inherit; font-size:14px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
  .legend-dash { display:inline-block; width:16px; border-top:2px dashed var(--gold); vertical-align:middle; margin-right:5px; }
  .tri { display:grid; grid-template-columns:repeat(3,1fr); margin-top:14px; }
  .tri > div { padding:0 10px; }
  .tri > div + div { border-left:1px solid var(--line); }
  .tri > div:first-child { padding-left:0; }
  .tri .l { font-size:14px; text-transform:uppercase; letter-spacing:.05em; color:var(--paper-dim); margin-bottom:4px; }
  .tri .v { font-weight:700; font-size:16px; }
  .tri .d { font-size:14px; margin-top:2px; color:var(--paper-dim); }
  .tri .d.up { color:var(--teal); }
  .tri .d.down { color:var(--coral); }
  .cmp-row { display:flex; justify-content:space-between; align-items:baseline; gap:10px; padding:9px 0; border-bottom:1px solid var(--line); font-size:14px; }
  .cmp-row:last-child { border-bottom:none; }
  .cmp-row .n { font-weight:600; }
  .cmp-row .r { text-align:right; font-size:14px; color:var(--paper-dim); }
  .cmp-row .r b { display:block; font-size:14px; }
  .cmp-row .r b.over { color:var(--coral); }
  .cmp-row .r b.under { color:var(--teal); }

  /* v15 — Compromissos, renda extra, simulador, alertas, ajustes */
  .alert-card { margin-top:12px; background:var(--ink-800); border:1px solid var(--line-strong); border-left:3px solid var(--amber); border-radius:16px; padding:12px 14px; }
  .alert-card.red { border-left-color:var(--coral); }
  .alert-card.info { border-left-color:var(--gold); }
  .alert-title { font-size:14px; text-transform:uppercase; letter-spacing:.06em; color:var(--paper-dim); margin-bottom:6px; }
  .alert-row { display:flex; gap:9px; font-size:14px; line-height:1.5; padding:4px 0; }
  .alert-row i { width:7px; height:7px; border-radius:50%; margin-top:7px; flex-shrink:0; background:var(--amber); }
  .alert-row.red i { background:var(--coral); }
  .alert-row.info i { background:var(--gold); }
  .review-actions { display:flex; justify-content:flex-end; margin-top:8px; }
  .link-btn { background:none; border:none; padding:0; color:var(--gold-bright); font-family:inherit; font-size:14px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
  .form-field label.check-line { display:flex; align-items:center; gap:8px; font-size:15px; text-transform:none; letter-spacing:0; color:var(--paper); margin:0; }
  .form-field label.check-line input { width:18px; height:18px; accent-color:var(--navy); }
  .row-click { cursor:pointer; }
  .sim-slider { width:100%; accent-color:var(--navy); margin:2px 0 0; }
  .sim-row { padding:9px 0; border-bottom:1px solid var(--line); }
  .sim-row:last-child { border-bottom:none; }
  .sim-row-top { display:flex; justify-content:space-between; align-items:baseline; font-size:14px; gap:8px; }
  .sim-row-top .n { font-weight:600; }
  .sim-row-top .v { font-size:14px; color:var(--paper-dim); white-space:nowrap; }
  .cmp-row .r b.same { color:var(--paper); }
  .btn-row { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
  .btn-outline { background:none; border:1px solid var(--navy); color:var(--navy); font-family:inherit; font-size:14px; font-weight:600; padding:9px 14px; border-radius:10px; cursor:pointer; }
  .prog { height:6px; border-radius:6px; background:var(--ink-600); overflow:hidden; }
  .prog > i { display:block; height:100%; border-radius:6px; background:var(--gold); }
  .muted { opacity:.55; }

  /* v16 — Movimento e interação */
  @keyframes popIn { from { opacity:0; transform:translateY(10px) scale(.96); } to { opacity:1; transform:none; } }
  @keyframes growX { from { transform:scaleX(0); } }
  @keyframes bump { 0% { transform:scale(1); } 40% { transform:scale(1.07); } 100% { transform:scale(1); } }
  @keyframes sheen { from { left:-60%; } to { left:130%; } }
  @keyframes modalIn { from { opacity:0; transform:translateY(12px) scale(.97); } to { opacity:1; transform:none; } }
  @keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
  @keyframes rowIn { from { opacity:0; transform:translateX(-6px); } to { opacity:1; transform:none; } }

  /* tiles */
  .home-tile, .cat-tile, .cat-tile-add { transition:transform .2s cubic-bezier(.2,.8,.2,1), box-shadow .2s ease; }
  .home-tile-icon, .cat-tile-icon { transition:transform .25s cubic-bezier(.3,1.4,.5,1), background-color .2s ease, border-color .25s ease, color .25s ease; }
  .home-tile:active .home-tile-icon, .cat-tile:active .cat-tile-icon { background:var(--tile-accent, var(--navy)); color:#ffffff !important; }
  .tab-panel.active .home-tile { animation:popIn .45s cubic-bezier(.2,.8,.2,1) backwards; }
  .tab-panel.active .home-tile:nth-child(1) { animation-delay:.02s; }
  .tab-panel.active .home-tile:nth-child(2) { animation-delay:.06s; }
  .tab-panel.active .home-tile:nth-child(3) { animation-delay:.10s; }
  .tab-panel.active .home-tile:nth-child(4) { animation-delay:.14s; }
  .tab-panel.active .home-tile:nth-child(5) { animation-delay:.18s; }
  .tab-panel.active .home-tile:nth-child(6) { animation-delay:.22s; }
  .tab-panel.active .home-tile:nth-child(7) { animation-delay:.26s; }
  .tab-panel.active .home-tile:nth-child(8) { animation-delay:.30s; }
  .tab-panel.active .spend-card { animation:popIn .4s cubic-bezier(.2,.8,.2,1) backwards; }

  /* barras */
  .bar > i, .prog > i { transform-origin:left center; animation:growX .8s cubic-bezier(.2,.8,.2,1) backwards; }

  /* botões */
  .spend-add, .copy-btn, .btn-outline, .chip, .preset-btn, .add-sub-btn, .add-group-btn, .icon-btn-h, .seg button, .reset-btn { transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease, border-color .15s ease, color .15s ease; }
  .spend-add, .copy-btn { position:relative; overflow:hidden; }
  .spend-add::after, .copy-btn::after { content:''; position:absolute; top:0; left:-60%; width:35%; height:100%; background:linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent); transform:skewX(-20deg); pointer-events:none; }

  /* linhas clicáveis */
  .exp-row, .cat-row.row-click { transition:background-color .15s ease, transform .15s ease; border-radius:10px; padding-left:6px; padding-right:6px; margin-left:-6px; margin-right:-6px; }
  .exp-row { width:calc(100% + 12px); animation:rowIn .25s ease backwards; }
  .exp-ico { transition:transform .2s cubic-bezier(.3,1.4,.5,1); }
  .exp-row:active, .cat-row.row-click:active { background:color-mix(in srgb, var(--gold) 16%, transparent); }

  /* card de gastos */
  .spend-card { transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }

  /* números que mudam */
  .stat .value.bump { animation:bump .35s ease; transform-origin:left center; }

  /* janelas */
  .modal-overlay.open { animation:fadeIn .18s ease; }
  .modal-overlay.open .modal-box { animation:modalIn .24s cubic-bezier(.2,.9,.3,1); }
  .modal-overlay.closing { display:flex; opacity:0; transition:opacity .18s ease; pointer-events:none; }
  .modal-overlay.closing .modal-box { transform:translateY(10px) scale(.97); transition:transform .18s ease; }
  @supports (transition-behavior:allow-discrete) {
    .modal-overlay { opacity:0; transition:opacity .2s ease, display .2s allow-discrete; }
    .modal-overlay.open { opacity:1; animation:none; }
    @starting-style { .modal-overlay.open { opacity:0; } }
    .modal-overlay .modal-box { transition:transform .22s cubic-bezier(.2,.9,.3,1); transform:translateY(10px) scale(.97); }
    .modal-overlay.open .modal-box { animation:none; transform:none; }
    @starting-style { .modal-overlay.open .modal-box { transform:translateY(12px) scale(.97); } }
  }

  /* passar o mouse (só em dispositivos com mouse) */
  @media (hover:hover) {
    .home-tile:hover, .cat-tile:hover, .cat-tile-add:hover { transform:translateY(-4px); box-shadow:0 10px 24px var(--shadow), 0 0 0 1.5px var(--gold); }
    .home-tile:hover:active, .cat-tile:hover:active { transform:translateY(-1px) scale(.97); }
    .home-tile:hover .home-tile-icon, .cat-tile:hover .cat-tile-icon { transform:scale(1.1) rotate(-6deg); background:var(--tile-accent, var(--navy)); color:#ffffff !important; }
    .spend-add:hover, .copy-btn:hover { transform:translateY(-2px); box-shadow:0 6px 16px color-mix(in srgb, var(--gold) 38%, transparent); }
    .spend-add:hover::after, .copy-btn:hover::after { animation:sheen .7s ease; }
    .btn-outline:hover { background:var(--navy); color:var(--on-navy); transform:translateY(-1px); }
    .chip:hover { border-color:var(--gold); color:var(--gold-bright); transform:translateY(-1px); }
    .seg button:not(.on):hover { background:color-mix(in srgb, var(--gold) 10%, transparent); color:var(--paper); }
    .add-sub-btn:hover, .add-group-btn:hover { background:color-mix(in srgb, var(--gold) 12%, transparent); transform:translateY(-1px); }
    .icon-btn-h:hover { background:rgba(255,255,255,.18); border-color:var(--gold); transform:translateY(-1px) scale(1.06); }
    .preset-btn:hover:not(.active) { border-color:var(--gold); color:var(--paper); }
    .exp-row:hover, .cat-row.row-click:hover { background:color-mix(in srgb, var(--gold) 9%, transparent); }
    .exp-row:hover .exp-amt { color:var(--gold-bright); }
    .exp-row:hover .exp-ico { transform:scale(1.08) rotate(-5deg); }
    .spend-card:hover { transform:translateY(-2px); border-color:var(--gold); box-shadow:0 8px 22px var(--shadow); }
    svg.chart rect[style*="transparent"]:hover { fill:color-mix(in srgb, var(--gold) 10%, transparent) !important; }
  }

  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; animation-delay:0s !important; transition-duration:.001ms !important; }
  }

  /* v17 — tema, hoje, atalhos, toasts, confete */
  :root { --icon-bg:#ffffff; --icon-bg-hover:#f6f6f6; }
  :root[data-app-theme="dark"] { color-scheme:dark; --ink-900:#151515; --ink-800:#222222; --ink-700:#2a2a2a; --ink-600:#3a3a3a; --paper:#e8e8e8; --paper-dim:#a5a5a5; --on-accent:#232323; --navy:#525252; --navy-2:#656565; --on-navy:#efefef; --gold-on-navy:#bebebe; --teal:#8f8f8f; --coral:#9b9b9b; --amber:#aaaaaa; --line:rgba(232,232,232,.14); --line-strong:rgba(232,232,232,.24); --shadow:rgba(0,0,0,.45); --icon-bg:#222222; --icon-bg-hover:#313131; }
  .today-box { margin-top:12px; padding:12px 14px; border-radius:12px; background:var(--ink-700); }
  .today-label { font-size:14px; text-transform:uppercase; letter-spacing:.06em; color:var(--paper-dim); }
  .today-val { font-weight:800; font-size:28px; margin-top:2px; color:var(--teal); font-variant-numeric:tabular-nums; }
  .today-box.over .today-val { color:var(--coral); }
  .today-sub { font-size:14px; color:var(--paper-dim); margin-top:2px; line-height:1.5; }
  .pill-row { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; align-items:center; }
  .pill-row:empty { display:none; }
  .pill { font-size:14px; font-weight:600; padding:4px 10px; border-radius:999px; background:color-mix(in srgb, var(--gold) 16%, transparent); color:var(--gold-bright); }
  .quick-row { display:flex; gap:8px; margin-top:12px; }
  .quick-row .form-input { flex:1; min-width:0; font-size:16px; padding:10px 12px; }
  .quick-go { background:var(--navy); color:var(--on-navy); border:none; border-radius:12px; padding:0 16px; font-family:inherit; font-weight:600; font-size:15px; cursor:pointer; }
  .quick-row .form-input.bad { animation:shake .3s; }
  @keyframes shake { 0%,100% { transform:translateX(0); } 25% { transform:translateX(-5px); } 75% { transform:translateX(5px); } }
  #freqRow { margin:10px 0 0; }
  #freqRow:empty { display:none; }
  .toast { position:fixed; left:50%; bottom:calc(env(safe-area-inset-bottom,0px) + 18px); transform:translate(-50%,20px); opacity:0; pointer-events:none; z-index:1300; display:flex; align-items:center; gap:14px; background:var(--navy); color:var(--on-navy); padding:11px 16px; border-radius:12px; font-size:15px; box-shadow:0 8px 26px var(--shadow); max-width:calc(100% - 32px); transition:opacity .2s ease, transform .25s cubic-bezier(.2,.9,.3,1); }
  .toast.show { opacity:1; transform:translate(-50%,0); pointer-events:auto; }
  .toast.celebrate { background:var(--gold); color:var(--on-accent); font-weight:700; }
  .toast-undo { background:none; border:none; color:var(--gold-on-navy); font-family:inherit; font-weight:700; font-size:14px; cursor:pointer; padding:0; text-transform:uppercase; letter-spacing:.04em; }
  .confetti-layer { position:fixed; inset:0; pointer-events:none; z-index:1250; overflow:hidden; }
  .confetto { position:absolute; left:50%; top:38%; width:8px; height:12px; border-radius:2px; animation:confettiFall var(--dur,1.8s) cubic-bezier(.2,.7,.3,1) forwards; }
  @keyframes confettiFall { 0% { transform:translate(0,0) rotate(0); opacity:1; } 100% { transform:translate(var(--dx),var(--dy)) rotate(var(--rot)); opacity:0; } }
  .cat-row.active { background:color-mix(in srgb, var(--gold) 14%, transparent); }
  .filter-chip { display:inline-flex; align-items:center; gap:6px; background:color-mix(in srgb, var(--gold) 16%, transparent); color:var(--gold-bright); font-size:14px; font-weight:600; padding:5px 12px; border-radius:999px; cursor:pointer; margin-bottom:10px; border:none; font-family:inherit; }
  .swatch-row { display:flex; gap:10px; flex-wrap:wrap; }
  .swatch { width:28px; height:28px; border-radius:50%; border:2px solid transparent; cursor:pointer; padding:0; }
  .swatch.on { outline:2px solid var(--paper); outline-offset:2px; }
  .icon-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; margin-bottom:10px; }
  .icon-opt { aspect-ratio:1; border-radius:10px; border:1px solid var(--line-strong); background:none; color:var(--gold); display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0; }
  .icon-opt.on { border-color:var(--gold); background:color-mix(in srgb, var(--gold) 14%, transparent); }
  .icon-opt svg { width:18px; height:18px; }
  .appearance-box { margin:0 0 12px; padding:12px; border:1px solid var(--line); border-radius:12px; }
  .appearance-box .block-sub { margin:6px 0; }

  /* v18 — hierarquia da tela inicial */
  .section-title { font-size:14px; text-transform:uppercase; letter-spacing:.08em; color:var(--paper-dim); font-weight:700; margin:26px 2px 0; }
  .section-title + .home-grid { margin-top:10px; }
  .home-tile { gap:8px; }
  .home-tile-label { font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--paper-dim); text-align:center; }
  .next-card { margin-top:16px; background:color-mix(in srgb, var(--gold) 12%, var(--ink-800)); border:1px solid var(--gold); border-radius:16px; padding:14px 16px; }
  .next-card.calm { border-color:var(--line-strong); background:var(--ink-800); }
  .next-eyebrow { font-size:14px; text-transform:uppercase; letter-spacing:.08em; color:var(--gold-bright); font-weight:700; }
  .next-title { font-size:16px; font-weight:700; margin-top:4px; }
  .next-text { font-size:14px; color:var(--paper-dim); margin-top:4px; line-height:1.55; }
  .next-actions { display:flex; align-items:center; gap:14px; margin-top:12px; }
  .next-go { background:var(--gold); border:none; color:var(--on-accent); font-family:inherit; font-weight:700; font-size:15px; padding:9px 16px; border-radius:10px; cursor:pointer; }

  /* ===================== v19 — Glass ===================== */
  :root {
    color-scheme: light;
    --ink-900:rgba(255,255,255,.55); --ink-800:rgba(255,255,255,.60); --ink-700:rgba(255,255,255,.45); --ink-600:rgba(32,32,32,.08);
    --paper:#202020; --paper-dim:#5c5c5c;
    --navy:#2a2a2a; --navy-2:#383838; --on-navy:#ffffff; --gold-on-navy:#c1c1c1; --on-accent:#ffffff;
    --teal:#666666; --coral:#707070; --amber:#959595;
    --line:rgba(32,32,32,.08); --line-strong:rgba(32,32,32,.14); --shadow:rgba(51,51,51,.12);
    --glass-bg:rgba(255,255,255,.58); --glass-bg-hover:rgba(255,255,255,.80); --glass-border:rgba(255,255,255,.75);
    --glass-modal:rgba(255,255,255,.84); --glass-blur:blur(22px) saturate(1.5);
    --glass-shadow:0 8px 30px rgba(51,51,51,.10), inset 0 1px 0 rgba(255,255,255,.55);
    --field-bg:rgba(255,255,255,.72);
    --icon-bg:rgba(255,255,255,.75); --icon-bg-hover:rgba(255,255,255,.9);
    --page-gradient:radial-gradient(900px 520px at 6% -8%, rgba(129,129,129,.42), transparent 60%), radial-gradient(760px 480px at 102% 2%, rgba(208,208,208,.36), transparent 58%), radial-gradient(900px 620px at 50% 108%, rgba(138,138,138,.26), transparent 62%), linear-gradient(180deg,#f2f2f2,#ebebeb);
    --page-base:#efefef;
  }
  :root[data-app-theme="dark"] {
    color-scheme: dark;
    --ink-900:rgba(255,255,255,.06); --ink-800:rgba(255,255,255,.07); --ink-700:rgba(255,255,255,.05); --ink-600:rgba(255,255,255,.12);
    --paper:#f0f0f0; --paper-dim:#a4a4a4;
    --navy:#5a5a5a; --navy-2:#6c6c6c; --on-navy:#ffffff; --gold-on-navy:#c1c1c1; --on-accent:#ffffff;
    --teal:#939393; --coral:#969696; --amber:#aeaeae;
    --line:rgba(255,255,255,.09); --line-strong:rgba(255,255,255,.16); --shadow:rgba(0,0,0,.45);
    --glass-bg:rgba(255,255,255,.07); --glass-bg-hover:rgba(255,255,255,.12); --glass-border:rgba(255,255,255,.13);
    --glass-modal:rgba(30,30,30,.86); --glass-blur:blur(22px) saturate(1.4);
    --glass-shadow:0 8px 30px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.08);
    --field-bg:rgba(255,255,255,.08);
    --icon-bg:rgba(255,255,255,.10); --icon-bg-hover:rgba(255,255,255,.16);
    --page-gradient:radial-gradient(900px 520px at 6% -8%, rgba(129,129,129,.32), transparent 60%), radial-gradient(760px 480px at 102% 4%, rgba(208,208,208,.10), transparent 58%), radial-gradient(900px 620px at 50% 108%, rgba(138,138,138,.24), transparent 62%), linear-gradient(180deg,#121212,#0e0e0e);
    --page-base:#0f0f0f;
  }
  html { background:var(--page-base); }
  body { background:transparent; position:relative; }
  body::before { content:''; position:fixed; inset:0; z-index:-1; background:var(--page-gradient); pointer-events:none; }
  svg.icon { stroke-width:1.6; }
  .content-wrap { padding-left:20px; padding-right:20px; }

  /* vidro: cabeçalho, cartões, blocos */
  .app-header { background:var(--glass-bg); -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur); border-bottom:1px solid var(--glass-border); box-shadow:none; }
  .app-title { color:var(--paper); font-size:17px; letter-spacing:-.01em; }
  .icon-btn-h { background:var(--glass-bg-hover); border:1px solid var(--line); color:var(--paper); width:36px; height:36px; border-radius:50%; }
  .icon-btn-h:active { background:var(--glass-bg-hover); border-color:var(--gold); color:var(--gold-bright); }
  .card, .spend-card, .group-card, .cat-tile, .home-tile, .alert-card, .next-card {
    background:var(--glass-bg); -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur);
    border:1px solid var(--glass-border); box-shadow:var(--glass-shadow); border-radius:22px;
  }
  .card.health-red, .card.health-amber, .card.health-green { box-shadow:var(--glass-shadow); }
  .alert-card { border-left:3px solid var(--amber); }
  .alert-card.red { border-left-color:var(--coral); } .alert-card.info { border-left-color:var(--gold); }
  .next-card { background:linear-gradient(135deg, color-mix(in srgb, var(--gold) 15%, var(--glass-bg)), var(--glass-bg)); border-color:color-mix(in srgb, var(--gold) 30%, var(--glass-border)); }
  .next-card.calm { background:var(--glass-bg); border-color:var(--glass-border); }
  .stat { background:none; -webkit-backdrop-filter:none; backdrop-filter:none; border:none; box-shadow:none; border-radius:0; padding:0; }
  .stat .label { text-transform:none; letter-spacing:0; font-size:14px; font-weight:500; color:var(--paper-dim); }
  .stat .value { color:var(--paper); font-size:24px; letter-spacing:-.02em; }
  .stat.warn .value { color:var(--coral); } .stat.ok .value { color:var(--teal); }

  /* tipografia: menos "rótulo em caixa alta", mais respiro */
  .field-inline label, .spend-title, .today-label, .alert-title, .next-eyebrow, .tri .l, .day-head, .form-field label, .compare-table th, .timeline-unreachable-title, .section-title { text-transform:none; letter-spacing:0; }
  .spend-title, .today-label, .alert-title, .tri .l, .day-head, .form-field label, .field-inline label { font-size:14px; font-weight:500; color:var(--paper-dim); }
  .next-eyebrow { font-size:14px; font-weight:600; color:var(--gold-bright); }
  .section-title { font-size:15px; font-weight:600; color:var(--paper-dim); margin:30px 4px 0; }
  .block-title, .card-title { font-weight:600; font-size:16px; letter-spacing:-.005em; }
  .spend-val { font-size:17px; font-weight:700; letter-spacing:-.01em; }
  .next-title { font-size:17px; letter-spacing:-.01em; }

  /* destaque: número grande do dia */
  .today-box { background:transparent; padding:0; border-radius:0; margin-top:0; }
  .today-val { font-size:40px; font-weight:700; letter-spacing:-.03em; color:var(--paper); margin-top:4px; line-height:1.05; }
  .today-box.over .today-val { color:var(--coral); }
  .today-sub { font-size:14px; margin-top:6px; }

  /* campos */
  .money-input, .form-input, .group-name-input, .sub-name-input, .sub-select, .sub-value-input { background:var(--field-bg); border:1px solid var(--line-strong); border-radius:14px; color:var(--paper); }
  .money-input { font-size:24px; font-weight:600; }
  .money-input:focus, .form-input:focus, .group-name-input:focus, .sub-name-input:focus, .sub-select:focus, .sub-value-input:focus { border-color:var(--gold); box-shadow:0 0 0 3px color-mix(in srgb, var(--gold) 20%, transparent); }
  #expAmount { color:var(--paper); }
  .sub-name-input, .sub-select, .sub-value-input { border-radius:10px; }

  /* botões */
  .spend-add, .copy-btn, .next-go, .quick-go { background:var(--gold); color:var(--on-accent); border:none; border-radius:14px; font-weight:600; box-shadow:0 6px 18px color-mix(in srgb, var(--gold) 30%, transparent); }
  .spend-add::after, .copy-btn::after { display:none; }
  .quick-go { padding:0 18px; }
  .btn-outline { background:var(--glass-bg-hover); border:1px solid var(--line-strong); color:var(--paper); border-radius:14px; }
  .chip { background:var(--glass-bg-hover); border:1px solid var(--line); color:var(--paper); }
  .chip.on { background:var(--gold); border-color:var(--gold); color:var(--on-accent); }
  .seg { background:color-mix(in srgb, var(--paper) 9%, transparent); border:none; border-radius:13px; padding:3px; gap:2px; }
  .seg button { border-radius:10px; }
  .seg button.on { background:var(--glass-bg-hover); color:var(--paper); box-shadow:0 1px 6px rgba(51,51,51,.16); }
  .pill { background:color-mix(in srgb, var(--gold) 13%, transparent); color:var(--gold-bright); }
  .toast { background:rgba(32,32,32,.88); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); color:#ffffff; border-radius:16px; }
  :root[data-app-theme="dark"] .toast { background:rgba(255,255,255,.16); }
  .toast.celebrate { background:var(--gold); color:var(--on-accent); }
  .toast-undo { color:#c1c1c1; }
  input[type=range]::-webkit-slider-thumb { background:#ffffff; border:3px solid var(--gold); box-shadow:0 2px 8px rgba(32,32,32,.22); }
  input[type=range]::-moz-range-thumb { background:#ffffff; border:3px solid var(--gold); box-shadow:0 2px 8px rgba(32,32,32,.22); }

  /* atalhos da tela inicial: cartões de vidro com ícone redondo */
  .home-grid { gap:12px; }
  .home-tile { align-items:flex-start; text-align:left; padding:16px; gap:12px; }
  .home-tile-icon, .cat-tile-icon, .detail-icon, .exp-ico { border-radius:50%; background:color-mix(in srgb, var(--tile-accent, var(--gold)) 14%, transparent); border:1.5px solid transparent; color:var(--gold-bright); }
  .cat-tile-icon, .detail-icon { color:var(--gold-bright); }
  .home-tile-icon { width:42px; height:42px; }
  .cat-tile-icon { width:42px; height:42px; }
  .home-tile-label { text-align:left; text-transform:none; letter-spacing:0; font-size:16px; font-weight:600; color:var(--paper); }
  .home-tile-value { text-align:left; font-weight:500; font-size:14px; color:var(--paper-dim); }
  .home-tile .home-tile-label { margin-bottom:-6px; }
  .cat-tile { border-radius:20px; }
  .bar { height:6px; background:var(--ink-600); } .bar.thin { height:4px; }

  /* movimento mais discreto */
  @keyframes popIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
  .modal-overlay { background:rgba(28,28,28,.34); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
  .modal-box { background:var(--glass-modal); -webkit-backdrop-filter:blur(30px) saturate(1.6); backdrop-filter:blur(30px) saturate(1.6); border:1px solid var(--glass-border); border-radius:26px; box-shadow:0 30px 80px rgba(30,30,30,.28); }
  @media (hover:hover) {
    .home-tile:hover, .cat-tile:hover, .cat-tile-add:hover { transform:translateY(-3px); background:var(--glass-bg-hover); box-shadow:0 16px 40px rgba(51,51,51,.16), inset 0 1px 0 rgba(255,255,255,.6); }
    .home-tile:hover:active, .cat-tile:hover:active { transform:translateY(-1px) scale(.98); }
    .home-tile:hover .home-tile-icon, .cat-tile:hover .cat-tile-icon { transform:none; background:var(--tile-accent, var(--gold)); border-color:transparent; color:#ffffff !important; }
    .exp-row:hover .exp-ico { transform:none; }
    .spend-card:hover { transform:none; border-color:var(--glass-border); box-shadow:var(--glass-shadow); }
    .spend-add:hover, .copy-btn:hover, .next-go:hover, .quick-go:hover { transform:translateY(-1px); filter:brightness(1.06); box-shadow:0 10px 24px color-mix(in srgb, var(--gold) 38%, transparent); }
    .btn-outline:hover { background:var(--glass-bg-hover); color:var(--gold-bright); border-color:var(--gold); }
    .chip:hover { border-color:var(--gold); color:var(--gold-bright); }
  }
  .home-tile:active .home-tile-icon, .cat-tile:active .cat-tile-icon { background:var(--tile-accent, var(--gold)); color:#ffffff !important; }

  /* ===================== v20 — desempenho ===================== */
  /* O fundo é um degradê suave: desfocar atrás de cada cartão não muda nada visível e custa muito. Só o cabeçalho (rola por cima do conteúdo) mantém o desfoque. */
  .card, .spend-card, .group-card, .cat-tile, .home-tile, .alert-card, .next-card, .toast, .modal-overlay, .modal-box { -webkit-backdrop-filter:none; backdrop-filter:none; }
  .app-header { -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); }
  :root { --glass-shadow:0 4px 18px rgba(51,51,51,.08), inset 0 1px 0 rgba(255,255,255,.5); --glass-modal:rgba(255,255,255,.95); }
  :root[data-app-theme="dark"] { --glass-shadow:0 4px 18px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.07); --glass-modal:rgba(30,30,30,.97); }
  .modal-overlay { background:rgba(28,28,28,.45); }
  body::before { transform:translateZ(0); will-change:transform; }
  .exp-row { animation:none; content-visibility:auto; contain-intrinsic-size:auto 58px; }
  .home-tile, .cat-tile, .cat-tile-add { transition:transform .18s ease; }
  .home-tile-icon, .cat-tile-icon { transition:transform .2s ease, background-color .2s ease, color .2s ease; }
  .spend-card { transition:none; }
  .spend-add, .copy-btn, .btn-outline, .chip, .preset-btn, .add-sub-btn, .add-group-btn, .icon-btn-h, .seg button, .reset-btn { transition:transform .12s ease, background-color .15s ease, border-color .15s ease, color .15s ease; }
  .bar > i, .prog > i { width:100%; transition:transform .3s ease, background-color .3s ease; }
  @media (hover:hover) {
    .home-tile:hover, .cat-tile:hover, .cat-tile-add:hover { box-shadow:var(--glass-shadow); }
    .spend-add:hover, .copy-btn:hover, .next-go:hover, .quick-go:hover { filter:none; box-shadow:0 6px 18px color-mix(in srgb, var(--gold) 30%, transparent); }
  }

  /* ===== v22 — respiro interno dos campos =====
     O desenho antigo usava campos só com sublinhado (sem borda), então quase não havia margem interna. Com os campos agora em "pílula", o texto encostava na borda. */
  .group-name-input { padding:11px 18px; border-radius:16px; line-height:1.25; }
  .sub-name-input, .sub-select, .sub-value-input { padding:10px 14px; line-height:1.25; }
  .sub-value-input { width:98px; }
  .sub-select { padding-right:14px; letter-spacing:.05em; }
  .sub-main { gap:8px; padding:8px 0; }
  .money-input, .money-input.sm { padding-left:16px; padding-right:16px; }
  .goal-link-row input, .reverse-calc input { padding-left:12px; padding-right:12px; border-radius:12px; }
  .reverse-calc input { width:64px; }
  .margin-field { gap:8px; }
  .margin-field input { width:36px; }

  /* sem barra de rolagem lateral (a rolagem continua funcionando normalmente) */
  html, body, * { scrollbar-width:none; -ms-overflow-style:none; }
  *::-webkit-scrollbar { display:none; width:0; height:0; }

  /* ===== v24 — a rolagem acontece dentro do app =====
     No Android, a barra de rolagem da própria página não pode ser escondida por CSS. Com a rolagem num contêiner interno, ela some de verdade. */
  html, body { height:100%; overflow:hidden; overscroll-behavior:none; }
  #appScroll { position:fixed; inset:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior-y:contain; -webkit-overflow-scrolling:touch; scrollbar-width:none; -ms-overflow-style:none; scroll-padding-top:70px; }
  #appScroll::-webkit-scrollbar { display:none; width:0; height:0; background:transparent; }
  :focus-visible { outline:2px solid currentColor; outline-offset:2px; }
  .modal-close { min-width:44px; min-height:44px; }
  /* V5.4 — melhorias visuais do cadastro, sem alterar dados existentes */
  .plan-wizard-body .plan-choice {background:var(--ink-800);color:var(--paper);cursor:pointer;transition:border-color .16s,transform .16s,box-shadow .16s}
  .plan-wizard-body .plan-choice:hover,.plan-wizard-body .plan-choice:focus-visible {border-color:var(--gold)!important;box-shadow:0 0 0 2px rgba(156,156,156,.18);transform:translateY(-1px)}
  .plan-wizard-body .form-input:focus {outline:2px solid var(--gold);outline-offset:2px}
  .plan-summary {display:grid;gap:8px;margin-top:16px;padding:16px;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:12px;background:var(--ink-800);line-height:1.5}
  .plan-summary strong {font-size:15px}.plan-summary div {font-weight:600;font-size:15px}.plan-summary small {color:var(--paper-dim);font-size:14px}
  @media(max-width:420px){.plan-wizard-body .plan-choice{min-height:104px!important;padding:12px!important}}

/* V6 experimental — navegação corporativa, transições e legibilidade */
.ee6-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px;border-bottom:1px solid var(--line);padding-bottom:9px}
.ee6-tabs{position:relative}
.ee6-tabs button{position:relative;z-index:1;border:0;background:transparent;color:var(--muted);font:inherit;font-size:15px;font-weight:600;padding:10px 13px;border-radius:8px;cursor:pointer;transition:color .3s ease}
.ee6-tabs button.on{color:var(--on-navy)}
.ee6-tab-pill{position:absolute;top:0;left:0;z-index:0;border-radius:8px;background:var(--navy);pointer-events:none;transition:transform .45s cubic-bezier(.32,.72,0,1),width .45s cubic-bezier(.32,.72,0,1),height .45s cubic-bezier(.32,.72,0,1)}
.ee6-swap{animation:fadeInUp .3s ease both}
@media(prefers-reduced-motion:reduce){.ee6-tab-pill{transition:none!important}.ee6-swap{animation:none}}
.ee6-history-row{display:flex;justify-content:space-between;gap:15px;padding:14px 4px;border-bottom:1px solid var(--line);font-size:15px}
.ee6-history-row span{overflow-wrap:anywhere}
.ee6-chart{display:flex;align-items:end;justify-content:space-around;gap:12px;min-height:165px;padding:20px 12px;border:1px solid var(--line);border-radius:12px;margin-top:16px}
.ee6-chart-column{display:flex;flex-direction:column;align-items:center;justify-content:end;gap:9px;flex:1}
.ee6-chart-bar{background:var(--gold-bright);border-radius:5px 5px 0 0;width:min(100%,35px);min-height:3px;transition:height .25s}
.ee6-chart-column small{color:var(--muted)}
.cat-tile[hidden]{display:none!important}
.sub-row.dragging{position:relative;z-index:2;box-shadow:0 12px 30px rgba(29,29,29,.17);opacity:.93;transform:scale(1.012)}
.drag-handle{cursor:grab;touch-action:none;user-select:none}
.dragging .drag-handle{cursor:grabbing}
@media(prefers-reduced-motion:reduce){.sub-row,.ee6-tabs button,.ee6-chart-bar{transition:none!important;animation:none!important}}

/* V6.1: progressive disclosure, corporate compact cards */
.ee6-sub-card{border:1px solid var(--line);border-radius:12px;margin:9px 0;overflow:hidden;transition:border-color .2s,box-shadow .2s,transform .2s;background:var(--card,transparent)}
.ee6-sub-card:hover{border-color:var(--gold)}
.ee6-sub-card .sub-main{padding:13px 12px;gap:9px;align-items:center}
.ee6-sub-card .sub-name-input{font-weight:650;min-width:0;flex:1}
.ee6-sub-card .ee6-kind{font-size:14px;color:var(--muted);white-space:nowrap}
.ee6-sub-card .ee6-sub-summary{font-size:14px;color:var(--muted);padding:0 14px 12px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ee6-sub-card .ee6-detail-btn{border:1px solid var(--line);background:transparent;color:inherit;border-radius:7px;padding:7px 11px;font:inherit;font-size:14px;cursor:pointer}
.ee6-sub-card .ee6-detail-btn:hover{border-color:var(--gold)}
.ee6-sub-card .ee6-detail-content{display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;transition:grid-template-rows .4s cubic-bezier(.32,.72,0,1),opacity .3s ease,visibility 0s linear .4s}
.ee6-sub-card.ee6-expanded .ee6-detail-content{grid-template-rows:1fr;opacity:1;visibility:visible;transition-delay:0s}
.ee6-sub-card .ee6-detail-inner{min-height:0;overflow:hidden}
.ee6-sub-card .ee6-detail-pad{padding:12px 14px;border-top:1px solid var(--line)}
.ee6-sub-card .ee6-inline-value{width:104px;text-align:right;font:inherit;font-size:15px;font-weight:650;color:inherit;background:transparent;border:1px solid transparent;border-radius:6px;padding:5px 7px}
.ee6-sub-card .ee6-inline-value:hover,.ee6-sub-card .ee6-inline-value:focus{border-color:var(--line);outline:none}
.ee6-subhead{display:flex;align-items:center;justify-content:space-between;margin-top:14px;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--paper-dim)}
.ee6-plus{width:34px;height:34px;border-radius:50%;border:0;background:var(--gold-bright);color:#111111;font-size:22px;line-height:1;font-weight:500;display:grid;place-items:center;cursor:pointer;padding:0;box-shadow:0 2px 8px color-mix(in srgb,var(--gold) 35%,transparent);transition:transform .15s ease,box-shadow .15s ease}
.ee6-plus:hover{transform:scale(1.08)}.ee6-plus:active{transform:scale(.94)}
.ee6-aporte{display:grid;gap:2px}.ee6-aporte small{font-size:14px;color:var(--paper-dim);letter-spacing:.04em;text-transform:uppercase}.ee6-aporte strong{font-size:28px;line-height:1.1;font-weight:700;color:var(--gold);font-variant-numeric:tabular-nums}.ee6-aporte strong span{font-size:15px;font-weight:500;color:var(--paper-dim);margin-left:3px}
.ee6-seg{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ee6-seg button{border:1px solid var(--line);background:transparent;color:inherit;border-radius:9px;padding:9px;font:inherit;font-size:14px;cursor:pointer}.ee6-seg button.on{border-color:var(--gold);color:var(--gold);font-weight:650}
.ee6-sub-card .ee6-quick-value{font-size:15px;font-weight:650;white-space:nowrap}
.ee6-sub-card .ee6-progress{height:5px;background:var(--line);margin:0 14px 12px;border-radius:6px;overflow:hidden}
.ee6-sub-card .ee6-progress span{display:block;height:100%;background:var(--gold);border-radius:6px}
.ee6-adv-toggle{display:flex;justify-content:center;align-items:center;width:100%;padding:12px 2px;background:none;border:0;cursor:pointer}
.ee6-adv-toggle::before{content:'';width:9px;height:9px;margin-top:-4px;border-right:2px solid var(--paper-dim);border-bottom:2px solid var(--paper-dim);transform:rotate(45deg);opacity:.75;transition:transform .4s cubic-bezier(.32,.72,0,1),margin .4s cubic-bezier(.32,.72,0,1),opacity .2s ease}
.ee6-adv-toggle:hover::before{opacity:1}
.ee6-advanced.open>.ee6-adv-toggle::before{transform:rotate(225deg);margin-top:4px}
.ee6-adv-panel{display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;transition:grid-template-rows .4s cubic-bezier(.32,.72,0,1),opacity .3s ease,visibility 0s linear .4s}
.ee6-advanced.open>.ee6-adv-panel{grid-template-rows:1fr;opacity:1;visibility:visible;transition-delay:0s}
.ee6-adv-inner{min-height:0;overflow:hidden}.ee6-adv-inner>div{padding:10px 0}
/* <details> em geral: abertura suave (Chrome/Edge/Safari recentes; os demais mantêm o comportamento normal) */
@supports (interpolate-size:allow-keywords){html{interpolate-size:allow-keywords}details::details-content{block-size:0;overflow:clip;transition:block-size .4s cubic-bezier(.32,.72,0,1),content-visibility .4s allow-discrete}details[open]::details-content{block-size:auto}}
@media(prefers-reduced-motion:reduce){.ee6-adv-toggle::before,.ee6-adv-panel{transition:none!important}details::details-content{transition:none!important}}
.ee6-sub-card.ee6-dragging{box-shadow:0 10px 30px rgba(0,0,0,.15);border-color:var(--gold);transform:scale(1.012)}
@keyframes ee6Reveal{from{opacity:.4;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:620px){.ee6-sub-card .sub-main{flex-wrap:wrap}.ee6-sub-card .ee6-kind{order:4}}
@media(prefers-reduced-motion:reduce){.ee6-sub-card,.ee6-sub-card .ee6-detail-content{animation:none;transition:none}}


/* V7 · Cartão de compra: resumo visível, ajustes apenas em Detalhes */
.ee6-sub-card:has(.ee-product-overview){padding-bottom:12px}
.ee-product-overview{display:flex;align-items:center;gap:13px;margin:5px 14px 10px;padding:12px;background:rgba(117,117,117,.07);border:1px solid var(--line);border-radius:11px;min-width:0}
.ee-product-overview img{width:96px;height:96px;object-fit:contain;object-position:center;background:transparent;border-radius:9px;flex-shrink:0}
.ee-product-overview-info{display:grid;gap:6px;min-width:0;overflow-wrap:anywhere}
.ee-product-overview-info strong{font-size:15px;line-height:1.4}
.ee-product-overview-info small{font-size:14px;color:var(--paper-dim)}
.ee-product-open{display:inline-flex;align-items:center;justify-content:center;margin:0 14px 12px;text-decoration:none;font-size:14px;border-color:var(--gold);color:var(--gold)}
.ee6-sub-card.ee6-expanded:has(.ee-product-overview) .ee6-detail-content{margin-top:8px}
/* V7.9.1 · preservar cartões limpos e animação ao arrastar */
.ee6-sub-card{transition:transform .23s cubic-bezier(.2,.8,.2,1),box-shadow .23s,border-color .23s;cursor:pointer}
.ee6-sub-card.dragging{position:relative;z-index:20;opacity:.97;transform:scale(1.025) rotate(-.35deg);box-shadow:0 22px 45px rgba(0,0,0,.35);border-color:var(--gold)}
.ee6-sub-card .drag-handle{cursor:grab}
.ee6-sub-card .ee6-detail-content,.ee6-sub-card .ee6-detail-content *{cursor:initial}
.ee6-sub-card .ee-product-overview{border:0;background:transparent;padding:5px 12px;margin-bottom:2px}
.ee6-sub-card .ee-product-overview img{width:96px;height:96px;max-width:30%;object-fit:contain;object-position:center;background:transparent}
@media(prefers-reduced-motion:reduce){.ee6-sub-card{transition:none}}
.ee-drag-placeholder{opacity:.24!important;filter:saturate(.65);transition:opacity .12s ease}
.ee-floating-ghost{border:1px solid var(--gold)!important;border-radius:14px;overflow:hidden}
/* V7.9.9: hierarquia mais clara, com ferramentas secundárias recolhidas */
.ee-more-tools{margin:8px 0 20px;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--glass-bg)}
.ee-more-tools>summary{cursor:pointer;color:var(--paper-dim);font-weight:650;padding:4px 0;list-style-position:inside}
.ee-more-tools .home-grid{margin:10px 0 18px}
.ee-more-tools .section-title{font-size:15px;margin:18px 0 6px}
.home-secondary-link{text-align:center;margin:12px 0 18px}
.ee-home-tools{margin:16px 0 22px;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--glass-bg)}
.ee-home-tools .home-grid{margin:10px 0 14px}
.ee-home-tools .section-title{margin:12px 0 8px;font-size:15px}
.category-expense-hub{margin:0 0 20px;padding:16px}
.category-expense-hub .section-title{margin:0 0 8px}
.category-expense-desc{font-size:14px;color:var(--paper-dim);margin:0 0 14px;line-height:1.5}
.category-expense-hub .home-grid{margin:0}
.ee-gastos-guidance{margin-top:12px}

/* V7.9.11: streamlined navigation and settings-only quick actions */
.header-icons { display: none !important; }
.settings-action { display: inline-flex; align-items:center; justify-content:center; width:46px; height:44px; border-radius:12px; border:1px solid var(--border, #525252); background:rgba(255,255,255,.05); color:inherit; cursor:pointer; }
.category-expense-hub { margin-bottom:16px; }
.ee-home-tools { margin-top:18px; }

:root{--ee-ok:#9d9d9d}
#v51GroupModal .modal-box{max-width:420px}
#v51GroupModal h3{font-size:22px;font-weight:700;letter-spacing:-.01em}
#v51GroupModal .form-input{background:transparent;border:0;border-bottom:1px solid var(--line-strong,rgba(255,255,255,.2));border-radius:0;font-size:24px;font-weight:600;padding:10px 2px;box-shadow:none}
#v51GroupModal .form-input:focus{border-bottom-color:var(--gold);outline:none}
#v51GroupModal .icon-grid{grid-template-columns:repeat(5,1fr);gap:10px}
#v51GroupModal .icon-opt{width:100%;height:auto;aspect-ratio:1;border-radius:16px}#v51GroupModal .icon-opt svg{width:26px;height:26px}
#v51GroupModal .modal-foot{display:block}#v51GroupModal .copy-btn{width:100%;font-size:16px;padding:14px}
.home-tile:active,.ee-chip:active,.ee-scn:active,.copy-btn:active{transform:scale(.97)}
.ee-scn .ee-amt{width:92px;margin-left:auto}
#v51PlanModal .modal-box{max-width:420px}
#v51PlanModal h3{font-size:22px;font-weight:700;letter-spacing:-.01em}
#v51PlanModal .modal-body p{font-size:16px;color:var(--paper-dim)}
#v51PlanModal .plan-choice{min-height:96px!important;border-radius:18px}#v51PlanModal .plan-choice strong{font-size:19px;font-weight:650}
#v51PlanModal label{font-size:15px!important}
#v51PlanModal .form-input{background:transparent;border:0;border-bottom:1px solid var(--line-strong,rgba(255,255,255,.2));border-radius:0;font-size:22px;font-weight:600;padding:8px 2px;box-shadow:none}
#v51PlanModal .form-input:focus{border-bottom-color:var(--gold);outline:none}
#v51PlanModal .modal-foot{display:flex;flex-direction:column;gap:8px}#v51PlanModal .copy-btn{width:100%;font-size:16px;padding:14px}
#v51PlanModal .reset-btn{background:none;border:0;color:var(--paper-dim);box-shadow:none}
.ee-skel{display:grid;gap:10px;width:min(320px,80%)}.ee-skel i{display:block;height:14px;border-radius:7px;background:linear-gradient(90deg,rgba(255,255,255,.07),rgba(255,255,255,.22),rgba(255,255,255,.07));background-size:200% 100%;animation:eeSkel 1.3s linear infinite}
.ee-skel i:nth-child(2){width:86%}.ee-skel i:nth-child(3){width:60%}@keyframes eeSkel{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.ee-flash,.ee-skel i{animation:none}}
.ee-swipe{position:relative;overflow:hidden}
.ee-swipe-face{position:relative;touch-action:pan-y}
.ee-swipe-act{position:absolute;top:0;right:0;bottom:0;width:0;border:0;padding:0;overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#ffffff;background:color-mix(in srgb,var(--coral,#7e7e7e) 88%,#000000)}
.ee-swipe-act svg{width:26px;height:26px;flex:none}
.ee-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ee-hist.ee-swipe{display:block;padding:0;border-radius:16px}.ee-swipe-act{border-radius:inherit}.ee-hist .ee-swipe-face{display:flex;align-items:center;gap:10px;padding:12px 2px}
@keyframes eeFlash{0%{color:var(--gold);transform:scale(1.08);text-shadow:0 0 16px color-mix(in srgb,var(--gold) 60%,transparent)}100%{transform:none;text-shadow:none}}
.ee-flash{display:inline-block;transform-origin:left center;animation:eeFlash 1s ease-out}
/* Renda extra e simulador */
.ee-inc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.ee-inc-head small{display:block;font-size:14px;color:var(--paper-dim);margin-bottom:4px}
.ee-inc-head strong{font-size:32px;font-weight:700;line-height:1.1;color:var(--gold);font-variant-numeric:tabular-nums}
.ee-inc-chips{display:flex;gap:8px;margin-top:16px}
.ee-inc-chip{flex:1;min-width:0;border:1px solid var(--line);border-radius:12px;padding:9px 11px}
.ee-inc-chip small{display:block;font-size:14px;color:var(--paper-dim)}.ee-inc-chip b{display:block;font-size:16px;margin-top:2px;font-variant-numeric:tabular-nums}
.ee-sec{margin:22px 4px 8px;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--paper-dim)}
.ee-dest{display:flex;gap:8px;overflow-x:auto;padding:12px 0 4px;scrollbar-width:none}.ee-dest::-webkit-scrollbar{display:none}
.ee-chip{flex:none;border:1px solid var(--line);background:transparent;color:inherit;border-radius:999px;padding:8px 14px;font:inherit;font-size:15px;cursor:pointer;transition:border-color .2s,color .2s,background .2s}
.ee-chip.on{border-color:var(--gold);color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,transparent)}
.ee-impact{font-size:15px;color:var(--paper-dim);min-height:18px;margin:6px 0 12px}
.ee-realloc-row{display:flex;gap:10px;align-items:center}.ee-amt{width:120px;text-align:right;flex:none}.ee-realloc-row .copy-btn{flex:1}
.ee-hist{display:flex;align-items:center;gap:10px;padding:12px 2px}.ee-hist .t{flex:1;min-width:0}
.ee-hist-wrap,.ee-hist+.ee-hist,.ee-hist+.ee-hist-wrap,.ee-hist-wrap+.ee-hist,.ee-hist-wrap+.ee-hist-wrap{border-top:1px solid var(--line)}
.ee-hist-wrap .link-btn{margin:0 0 10px 2px}
.ee-x{flex:none;width:32px;height:32px;border:0;background:none;color:var(--paper-dim);font-size:22px;line-height:1;cursor:pointer;border-radius:8px}.ee-x:hover{color:var(--paper)}
.ee-scn-list{display:grid;gap:8px}
.ee-scn{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--line);background:transparent;color:inherit;border-radius:14px;padding:13px 14px;font:inherit;font-size:16px;cursor:pointer;transition:border-color .2s,background .2s}
.ee-scn b{font-weight:600;color:var(--paper-dim);text-align:right}
.ee-scn.on{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 9%,transparent)}.ee-scn.on b{color:var(--gold)}
.ee-scn.off{opacity:.45;cursor:default}
.ee-capital-ready{border:1px solid color-mix(in srgb,var(--ee-ok) 45%,transparent)!important;box-shadow:none}
.ee-capital-ready .ee6-sub-summary,.ee-capital-ready .block-title{color:var(--ee-ok);font-weight:600;letter-spacing:0;text-transform:none}
/* Última carta de uma linha ímpar ocupa a largura toda: sem buracos na grade */
.home-grid>.home-tile:last-child:nth-child(odd){grid-column:1/-1}
.ee-capital-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}
.ee-capital-kpi{border:1px solid var(--line);border-radius:10px;padding:10px;min-width:0}
.ee-capital-kpi small{display:block;color:var(--muted);font-size:14px}
.ee-capital-kpi strong{display:block;font-size:16px;overflow-wrap:anywhere;margin-top:5px}
.ee-capital-result{margin:14px 0;padding:12px;border:1px solid var(--gold);border-radius:12px}
@media(max-width:500px){.ee-capital-kpis{grid-template-columns:1fr 1fr}.ee-capital-kpi:last-child{grid-column:span 2}}
.ee6-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:16px 0}.ee6-kpi{border:1px solid var(--line);border-radius:9px;padding:12px;display:grid;gap:7px}.ee6-kpi small,.ee6-alert small{color:var(--paper-dim);font-size:14px}.ee6-kpi strong{font-size:18px}.ee6-list{display:grid;gap:8px;margin:12px 0}.ee6-alert{border-left:2px solid var(--gold);padding:10px 12px;background:rgba(100,120,145,.06);display:flex;align-items:center;justify-content:space-between;gap:12px}.ee6-alert>div{display:grid;gap:5px}.ee6-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}@media(max-width:600px){.ee6-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ee6-alert{align-items:start;flex-direction:column}}
/* V7.8: conversa sem janela, sobre a própria tela desfocada */
#ee-ai-launch{position:fixed;right:clamp(12px,2.4vw,34px);bottom:clamp(18px,4vh,38px);z-index:10005;width:58px;height:56px;border:1px solid rgba(220,185,103,.32);border-radius:20px;background:rgba(19,33,54,.76);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:pointer;padding:4px;box-shadow:0 8px 24px #0005;transition:transform .22s,background .22s}
#ee-ai-launch:hover{transform:translateY(-4px)}#ee-ai-launch svg{width:100%;height:100%}
#ee-ai-launch.ee-eagle-flight{animation:eeEagleFly .48s ease-out}
@keyframes eeEagleFly{45%{transform:translateY(-11px) scale(1.1) rotate(-7deg)}}
#ee-ai-launch[aria-expanded="true"]{right:clamp(16px,3vw,38px);top:clamp(16px,4vh,35px);bottom:auto;width:43px;height:43px;border-radius:50%;background:rgba(24,39,61,.45)}
#ee-ai-launch[aria-expanded="true"] svg{display:none}
#ee-ai-launch[aria-expanded="true"]::after{content:'×';font-size:29px;line-height:1;color:#f4f5f8}
#ee-ai-backdrop{display:none;position:fixed;inset:0;z-index:10001;background:rgba(5,12,24,.34);backdrop-filter:blur(13px) brightness(.72);-webkit-backdrop-filter:blur(13px) brightness(.72)}
#ee-ai-backdrop.ee-open{display:block}
#ee-ai-panel{display:none;position:fixed;z-index:10002;inset:0;max-width:none;width:100%;height:100dvh;background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;color:#f0f4fa;font-family:inherit;pointer-events:none;flex-direction:column;align-items:center;overflow:visible;opacity:0}
#ee-ai-panel.ee-open{display:flex;animation:eeAiAppear .23s ease-out forwards}
@keyframes eeAiAppear{to{opacity:1}}
#ee-ai-head{display:none}
#ee-ai-chat{pointer-events:auto;width:min(760px,calc(100vw - 28px));flex:1;min-height:0;overflow:auto;padding:clamp(60px,12vh,110px) 10px 25px;display:flex;flex-direction:column;gap:20px;white-space:pre-wrap;font-size:16px;line-height:1.65;scrollbar-width:thin;mask-image:linear-gradient(to bottom,transparent,#000 30px,#000 96%,transparent)}
.ee-ai-msg{padding:12px 16px;border-radius:18px;max-width:87%;overflow-wrap:anywhere;text-shadow:0 1px 8px #0004;box-shadow:0 6px 24px #0002}
.ee-ai-user{background:rgba(85,113,155,.23);border:1px solid #ffffff24;align-self:flex-end;backdrop-filter:blur(8px)}
.ee-ai-bot{background:rgba(16,33,54,.14);border:1px solid #ffffff15;align-self:flex-start;backdrop-filter:blur(5px)}
#ee-ai-actions{pointer-events:auto;display:flex;flex-wrap:wrap;gap:8px;width:min(760px,calc(100vw - 28px));padding:8px 10px}#ee-ai-actions button{background:rgba(18,34,55,.7);border:1px solid rgba(217,180,93,.45);color:#f1e6cc;border-radius:14px;padding:9px 12px;cursor:pointer;font:inherit;font-size:14px}#ee-ai-actions button:hover{background:rgba(55,75,104,.85)}#ee-ai-note{pointer-events:auto;width:min(760px,calc(100vw - 28px));font-size:14px;color:#c3cfdf;padding:5px 10px 9px;background:transparent;border:0}
#ee-ai-note label{cursor:pointer}#ee-ai-note input{accent-color:#d9b45d}
#ee-ai-context-help{display:none;margin:6px 0 0;line-height:1.5}#ee-ai-note:focus-within #ee-ai-context-help,#ee-ai-note:hover #ee-ai-context-help{display:block}
#ee-ai-form{pointer-events:auto;width:min(760px,calc(100vw - 28px));display:flex;gap:10px;padding:0 0 max(24px,env(safe-area-inset-bottom));border:0;background:transparent}
#ee-ai-input{flex:1;min-width:0;border:1px solid rgba(228,237,252,.27);border-radius:22px;padding:17px 19px;background:rgba(21,39,63,.43);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 8px 35px #0003;color:#fff;font:inherit;outline-offset:2px}
#ee-ai-input::placeholder{color:#bdc9d9}#ee-ai-send{background:#d9b45d;color:#152238;font-weight:700;border:0;border-radius:18px;padding:12px 21px;cursor:pointer;box-shadow:0 8px 24px #0002}
.ee-ee-estimate{font-size:14px;color:var(--paper-dim);margin-top:4px}
@media(max-width:600px){#ee-ai-launch{right:12px;bottom:calc(14px + env(safe-area-inset-bottom));width:54px;height:52px}#ee-ai-chat{padding:65px 7px 20px;font-size:16px}#ee-ai-form{padding-bottom:max(14px,env(safe-area-inset-bottom))}#ee-ai-input{padding:14px}#ee-ai-note{font-size:14px}}
@media(prefers-reduced-motion:reduce){#ee-ai-launch.ee-eagle-flight,#ee-ai-panel.ee-open{animation:none;opacity:1}}

:root[data-app-theme="dark"]{
 --ink-900:#0b0b0b;--ink-800:#000;--ink-700:#141414;--ink-600:#1d1d1d;
 --paper:#f2f2f2;--paper-dim:#9a9a9a;--line:#262626;--line-strong:#333;--shadow:transparent;
 --gold:#f2f2f2;--gold-bright:#ffffff;--gold-on-navy:#f2f2f2;--on-accent:#000;
 --navy:#2a2a2a;--navy-2:#3a3a3a;--on-navy:#f5f5f5;--coral:#8a8a8a;--teal:#bdbdbd;--amber:#bdbdbd;--ee-ok:#d6d6d6;
 --icon-bg:#111;--icon-bg-hover:#1a1a1a;--field-bg:#0f0f0f;
 --glass-bg:#000;--glass-bg-hover:#0e0e0e;--glass-border:#262626;--glass-blur:none;--glass-modal:#0d0d0d;--glass-shadow:none;
 --page-base:#0b0b0b;--page-gradient:linear-gradient(#0b0b0b,#0b0b0b);--press:#1e1e1e;
}
:root,:root[data-app-theme="light"]{
 --ink-900:#f4f4f4;--ink-800:#fff;--ink-700:#ececec;--ink-600:#e2e2e2;
 --paper:#111;--paper-dim:#6b6b6b;--line:#e0e0e0;--line-strong:#cfcfcf;--shadow:transparent;
 --gold:#111;--gold-bright:#000;--gold-on-navy:#111;--on-accent:#fff;
 --navy:#e6e6e6;--navy-2:#d8d8d8;--on-navy:#111;--coral:#7a7a7a;--teal:#555;--amber:#555;--ee-ok:#333;
 --icon-bg:#f2f2f2;--icon-bg-hover:#e8e8e8;--field-bg:#f7f7f7;
 --glass-bg:#fff;--glass-bg-hover:#f6f6f6;--glass-border:#e0e0e0;--glass-blur:none;--glass-modal:#fff;--glass-shadow:none;
 --page-base:#f4f4f4;--page-gradient:linear-gradient(#f4f4f4,#f4f4f4);--press:#e9e9e9;
}

/* ===== Design simplificado: preto, borda fina, sem sombras nem desfoque (exceto cabeçalho) ===== */
html,body{font-weight:500;-webkit-font-smoothing:antialiased;letter-spacing:-.005em}
.card,.spend-card,.group-card,.cat-tile,.home-tile,.alert-card,.next-card,.modal-box,.ee6-sub-card,.sub-row{
 background:var(--ink-800)!important;border:1px solid var(--line-strong)!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.app-header{background:color-mix(in srgb,var(--ink-900) 78%,transparent)!important;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
html.ee-stretch .app-header{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.home-tile-icon,.cat-tile-icon{border:1px solid var(--line-strong)!important;background:var(--icon-bg)!important;color:var(--paper)!important}
/* Atalhos: ícone ao lado do nome */
.home-grid .home-tile{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;row-gap:2px;align-items:center;justify-items:start;text-align:left;padding:14px 16px}
.home-grid .home-tile .home-tile-icon{grid-row:1/3;grid-column:1}
.home-grid .home-tile .home-tile-label{grid-column:2;grid-row:1;align-self:end;font-size:16px;font-weight:600;color:var(--paper)}
.home-grid .home-tile .home-tile-value{grid-column:2;grid-row:2;align-self:start;font-size:14px;font-weight:500;color:var(--paper-dim)}
.home-grid .home-tile .home-tile-label:last-child{grid-row:1/3;align-self:center}
/* Sensação de clique: o cartão acende em cinza e volta devagar (estilo WhatsApp) */
.home-tile,.cat-tile,.card,.exp-row,.sub-row,.ee-chip,.ee-scn,.copy-btn,.reset-btn,.link-btn,.icon-btn,.ee-hist{transition:background-color .35s ease,border-color .2s ease,color .2s ease,opacity .2s ease!important}
.home-tile:active,.cat-tile:active,.exp-row:active,.ee-chip:active,.ee-scn:active,.card.ee-pressable:active,.sub-row:active{background:var(--press)!important;transition-duration:.04s!important;transform:none!important}
.copy-btn:active,.reset-btn:active,.icon-btn:active{opacity:.7;transition-duration:.04s!important;transform:none!important}

/* ===== Preto + dourado: dourado só no que merece destaque; verde/vermelho só para informação ===== */
:root[data-app-theme="dark"]{--gold:#d4a73a;--gold-bright:#e6bd54;--gold-on-navy:#d4a73a;--on-accent:#0b0b0b;--navy:#d4a73a;--navy-2:#b88f2a;--on-navy:#0b0b0b;--coral:#e5534b;--teal:#9a9a9a;--amber:#d4a73a;--ee-ok:#4cc38a}
:root,:root[data-app-theme="light"]{--gold:#8f6b12;--gold-bright:#7a5a0e;--gold-on-navy:#8f6b12;--on-accent:#fff;--navy:#111;--navy-2:#333;--on-navy:#fff;--coral:#c0392b;--teal:#555;--amber:#8f6b12;--ee-ok:#1e8a5a}
.home-grid .home-tile .home-tile-value{display:none!important}
.home-grid .home-tile .home-tile-label{grid-row:1/3!important;align-self:center!important}
.home-tile-icon,.cat-tile-icon{color:var(--gold)!important}
#catGrid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.cat-tile{min-width:0}
.cat-tile-total{align-self:stretch;min-width:0;text-align:center;white-space:nowrap;overflow:hidden;font-variant-numeric:tabular-nums}
.detail-icon[role=button]{cursor:pointer}
.ee-ai-user{color:var(--gold-bright)!important}.ee-ai-bot{color:var(--paper)!important}
.ee-swipe-act{background:color-mix(in srgb,var(--coral) 88%,#000)!important;color:#fff!important}

.stat.ok .value{color:var(--ee-ok)!important}.stat.warn .value{color:var(--coral)!important}
.ee-drag-placeholder{visibility:hidden!important}
.modal-overlay.open.closing{opacity:0!important;transition:opacity .18s ease!important}
.modal-overlay.open.closing .modal-box{transform:translateY(12px) scale(.97)!important;transition:transform .18s ease!important}
.app-header{display:none!important}
.content-wrap{padding-top:calc(env(safe-area-inset-top,0px) + 14px)!important;padding-bottom:40px!important}
.ee-plan-list{display:grid;gap:10px}
.ee-plan-row{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:14px 16px;border:1px solid var(--line-strong);border-radius:16px;background:var(--ink-800);color:var(--paper);font:inherit;cursor:pointer;animation:fadeInUp .38s cubic-bezier(.32,.72,0,1) backwards;transition:background-color .35s ease,border-color .2s ease}
.ee-plan-row:hover{border-color:var(--gold)}.ee-plan-row:active{background:var(--press);transition-duration:.04s}
.ee-plan-ico{flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);display:grid;place-items:center;color:var(--gold);transition:border-color .2s}
.ee-plan-row:hover .ee-plan-ico{border-color:var(--gold)}
.ee-plan-ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ee-plan-txt{flex:1;min-width:0;display:grid;gap:2px}.ee-plan-txt strong{font-size:18px;font-weight:650}.ee-plan-txt small{font-size:14px;color:var(--paper-dim);font-weight:500}
.ee-plan-chev{flex:none;width:18px;height:18px;fill:none;stroke:var(--paper-dim);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s ease,stroke .2s ease}
.ee-plan-row:hover .ee-plan-chev{transform:translateX(3px);stroke:var(--gold)}
@media(prefers-reduced-motion:reduce){.ee-plan-row{animation:none}}
html.ee-nosel,html.ee-nosel *{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important}
.sub-row,.cat-tile,.home-tile{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.sub-row input,.sub-row textarea{-webkit-user-select:text;user-select:text}

/* ===== V8.1 — escolhas visuais, compra progressiva, captura e conta (no mesmo visual: preto, borda fina, dourado só no destaque) ===== */
.ee-choice-modal{max-width:560px!important}
.ee-choice-sub{margin:0 0 14px;color:var(--paper-dim);font-size:15px;line-height:1.5}
.ee-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ee-choice-card{appearance:none;text-align:left;background:var(--ink-800);border:1px solid var(--line-strong);border-radius:16px;padding:16px;color:var(--paper);font:inherit;cursor:pointer;transition:background-color .35s ease,border-color .2s ease}
.ee-choice-card:hover,.ee-choice-card:focus-visible{border-color:var(--gold);outline:none}
.ee-choice-card:active{background:var(--press);transition-duration:.04s}
.ee-choice-card strong,.ee-choice-card small{display:block}
.ee-choice-card strong{font-size:16px;font-weight:650}
.ee-choice-card small{margin-top:4px;color:var(--paper-dim);font-size:14px;font-weight:500}
@media(max-width:520px){.ee-choice-grid{grid-template-columns:1fr}}
.ee-purchase-planning{display:grid;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.ee-purchase-planning.ee-hidden{display:none}
.ee-product-description{position:relative;z-index:2;margin-top:8px}
.ee-product-description summary{cursor:pointer;user-select:none;color:var(--gold);font-size:14px;font-weight:600}
.ee-product-description p{margin:7px 0 0;color:var(--paper-dim);font-size:14px;line-height:1.5}
.ee-product-overview-info>strong{font-size:16px;line-height:1.35}
.ee-product-overview-info>small{margin-top:4px;line-height:1.4}
.ee-capture-busy{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;pointer-events:none}
.ee-capture-spinner{width:34px;height:34px;flex:none;border:4px solid var(--line-strong);border-top-color:var(--gold);border-radius:50%;animation:ee-capture-spin .8s linear infinite}
@keyframes ee-capture-spin{to{transform:rotate(360deg)}}
.ee-move-highlight{outline:2px solid var(--gold);outline-offset:4px;animation:ee-move-flash 1s ease-in-out 2}
@keyframes ee-move-flash{50%{box-shadow:0 0 28px color-mix(in srgb,var(--gold) 40%,transparent)}}
@media(prefers-reduced-motion:reduce){.ee-capture-spinner,.ee-move-highlight{animation-duration:2.4s}}
/* Conta */

.ee-home-top{display:flex;justify-content:flex-end;padding:0 0 6px}
.ee-account-entry{position:static;flex:none;width:42px;height:42px;padding:0;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line-strong);background:var(--ink-800);color:var(--paper-dim);cursor:pointer;transition:background-color .35s ease,border-color .2s ease,color .2s ease}
.ee-account-entry svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ee-account-entry:hover{color:var(--paper);border-color:var(--paper-dim)}
.ee-account-entry:active{background:var(--press);transition-duration:.04s}
.ee-account-entry[data-logged="1"]{color:var(--gold);border-color:var(--gold)}
.ee-account-box{max-width:420px}
.ee-account-box label{display:block;margin:14px 0 6px;font-size:14px;color:var(--paper-dim)}
.ee-account-box .copy-btn,.ee-account-box .reset-btn,.ee-account-box .link-btn{display:block;width:100%;margin-top:12px;font-size:16px;padding:14px;text-align:center}
.ee-account-status{margin:0 0 4px;font-size:14px;line-height:1.5;color:var(--paper-dim)}
.ee-account-status[data-kind="ok"]{color:var(--ee-ok)}
.ee-account-status[data-kind="error"]{color:var(--coral)}
.ee-account-status[data-kind="warn"]{color:var(--gold)}
.ee-account-identity{margin:0 0 8px;font-size:16px;font-weight:600;overflow-wrap:anywhere}


.ee-account-diag{margin:14px 0 0;padding:12px;border:1px solid var(--line-strong);border-radius:12px;font:inherit;font-size:14px;line-height:1.55;white-space:pre-wrap;color:var(--paper);background:var(--ink-900)}
.ee-account-box .link-btn#ee-account-diag-btn{margin-top:16px}

/* V8.4 — primeiro acesso: exibido somente quando o planejamento local está vazio */
.ee-first-start[hidden] { display:none !important; }
.ee-first-start { border:1px solid #a87b2a; border-radius:16px; background:#111; padding:20px; margin:18px 0; color:#eee; }
.ee-first-start h2 { margin:0 0 8px; font-size:19px; color:#e3b74c; }
.ee-first-start p { margin:0 0 16px; color:#aaa; line-height:1.5; }
.ee-first-actions { display:flex; flex-wrap:wrap; gap:9px; }
.ee-first-actions button { border:1px solid #8d6c28; border-radius:10px; background:#1b1b1b; color:#e9d5a1; padding:11px 13px; cursor:pointer; }
.ee-first-actions button:focus-visible { outline:2px solid #e3b74c; outline-offset:2px; }
