html,body{margin:0;padding:0;height:100%;background:#111111 !important;}
    #sdv-splash{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#000000;}
    #sdv-splash.hide{opacity:0;transition:opacity 0.7s ease;pointer-events:none;}
    @keyframes sdv-spin2{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
    @keyframes sdv-pop2{0%{transform:scale(0.6);opacity:0}65%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
    @keyframes sdv-fade2{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:translateY(0)}}
    @keyframes sdv-glow2{0%,100%{box-shadow:0 0 0 0 rgba(67,233,123,0.0)}50%{box-shadow:0 0 0 12px rgba(67,233,123,0.12)}}
    @keyframes sdv-dot-bounce{0%,80%,100%{transform:scale(0.6);opacity:0.3}40%{transform:scale(1.1);opacity:1}}
    .sdv-dot1{animation:sdv-dot-bounce 1.2s ease-in-out infinite;animation-delay:0s}
    .sdv-dot2{animation:sdv-dot-bounce 1.2s ease-in-out infinite;animation-delay:0.2s}
    .sdv-dot3{animation:sdv-dot-bounce 1.2s ease-in-out infinite;animation-delay:0.4s}
    @keyframes confettiFall { 0%{transform:translateY(-10px) rotate(0deg);opacity:1} 100%{transform:translateY(110vh) rotate(720deg);opacity:0} }
    @keyframes skeletonPulse { 0%,100%{opacity:.4} 50%{opacity:.9} }
    .skeleton-box { animation: skeletonPulse 1.4s ease-in-out infinite; border-radius:10px; }
    @keyframes slideInUp { from{transform:translateY(30px);opacity:0} to{transform:translateY(0);opacity:1} }
    @keyframes pulseBorder { 0%,100%{box-shadow:0 0 0 0 rgba(198,40,40,0.5)} 50%{box-shadow:0 0 0 6px rgba(198,40,40,0)} }
    .scroll-lista-gastos::-webkit-scrollbar { display:none; }
    .scroll-lista-dividas::-webkit-scrollbar { display:none; }
    .sdv-carousel { display:flex; gap:10px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding-bottom:6px; scrollbar-width:none; }
    .sdv-carousel::-webkit-scrollbar { display:none; }
    .sdv-carousel > * { scroll-snap-align:start; flex-shrink:0; }
    .priv-blur { filter:blur(8px); transition:filter .35s ease; user-select:none; }
    .priv-blur:active { filter:blur(0); }
    @keyframes badgePop { from{transform:scale(0)} to{transform:scale(1)} }
    .swipe-item { position:relative; overflow:hidden; border-radius:20px; margin-bottom:8px; }
    .swipe-item-inner { transition:transform .25s cubic-bezier(.4,0,.2,1); touch-action:pan-y; }
    .swipe-delete-bg { position:absolute; right:0; top:0; bottom:0; width:80px; background:linear-gradient(90deg,transparent,#c62828); display:flex; align-items:center; justify-content:flex-end; padding-right:18px; border-radius:0 20px 20px 0; pointer-events:none; }
    .swipe-delete-bg span { font-size:20px; }
    .divida-atrasada { animation: pulseBorder 1.8s ease-in-out infinite; }
    @keyframes pulseYellow { 0%,100%{box-shadow:0 0 0 0 rgba(245,124,0,0.4)} 50%{box-shadow:0 0 0 5px rgba(245,124,0,0)} }
    .divida-vencendo { animation: pulseYellow 2s ease-in-out infinite; }
    @keyframes previsaoGlow { 0%,100%{box-shadow:0 0 0 0 rgba(230,81,0,0.3)} 50%{box-shadow:0 0 0 8px rgba(230,81,0,0)} }
    @keyframes screenIn { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }
    @keyframes slideInRight { from{opacity:0;transform:translateX(48px)} to{opacity:1;transform:translateX(0)} }
    @keyframes slideInLeft  { from{opacity:0;transform:translateX(-48px)} to{opacity:1;transform:translateX(0)} }
    @keyframes shimmer { 0%{background-position:-300px 0} 100%{background-position:300px 0} }
    @keyframes spin { to{transform:rotate(360deg)} }
    @keyframes splashFadeOut { 0%{opacity:1} 80%{opacity:1} 100%{opacity:0;pointer-events:none} }
    .screen-enter { animation: screenIn 0.28s cubic-bezier(.22,1,.36,1) both; }
    .screen-slide-right { animation: slideInRight 0.25s cubic-bezier(.22,1,.36,1) both; }
    .screen-slide-left  { animation: slideInLeft  0.25s cubic-bezier(.22,1,.36,1) both; }
    .shimmer-box { background:linear-gradient(90deg,#222222 25%,#333333 50%,#222222 75%); background-size:600px 100%; animation:shimmer 1.4s infinite linear; border-radius:10px; }
    *{box-sizing:border-box;margin:0;padding:0}
    html,body,#root{height:100%;background:#111111;overflow-x:hidden}
    body.app-loaded, body.app-loaded #root{background:#111111 !important;}
    body{overscroll-behavior:none;max-width:100vw}
    /* Mobile keyboard fix — permite scroll suave quando teclado virtual abre */
    #root { transition: padding-bottom 0.15s ease; overflow-x:hidden; }
    @media (max-height: 600px) {
      /* Teclado aberto em tela pequena — garante scroll no container */
      #root { overflow-y: auto; overflow-x: hidden; }
    }
    @keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
    @keyframes pop{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
    @keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
    @keyframes slideDown{from{opacity:0;transform:translateY(-60px) translateX(-50%)}to{opacity:1;transform:translateY(0) translateX(-50%)}}
    @keyframes slideUp{from{opacity:1;transform:translateY(0) translateX(-50%)}to{opacity:0;transform:translateY(-60px) translateX(-50%)}}
    .fade-up{animation:fadeUp .35s ease both}
    .pop{animation:pop .2s ease both}
    .tap-card{cursor:pointer;transition:transform .15s,box-shadow .15s}
    .tap-card:active{transform:scale(0.97)}
    *{-webkit-tap-highlight-color:transparent;box-sizing:border-box}
    input,button,select,textarea{font-family:'DM Sans',sans-serif}
    ::-webkit-scrollbar{width:0;height:0}
    ::selection{background:#1ED76030}
    .section-title{font-size:11px;font-weight:700;color:#555;letter-spacing:.1em;text-transform:uppercase;margin:18px 0 10px;padding:0 2px}
    /* Modern card hover effect */
    .fade-up{animation:fadeUp .35s ease both}
    /* Improve scrollbar hidden */
    body{scrollbar-width:none}
    /* Better focus */
    button:focus-visible{outline:2px solid #1ED760;outline-offset:2px}
    .chip{display:inline-flex;align-items:center;gap:5px;background:#1E1E1E;border:1px solid #2C2C2C;border-radius:20px;padding:5px 12px;font-size:11px;font-weight:600;color:#ccc}
    .chip-green{background:rgba(30,215,96,0.1);border-color:rgba(30,215,96,0.25);color:#1ED760}
    .chip-red{background:rgba(255,82,82,0.1);border-color:rgba(255,82,82,0.2);color:#FF5252}
    .chip-orange{background:rgba(255,145,0,0.1);border-color:rgba(255,145,0,0.2);color:#FF9100}
    .toast-in{animation:slideDown .35s cubic-bezier(.22,1,.36,1) both}
    .toast-out{animation:slideUp .3s ease both}
    @keyframes sdv-pop{0%{transform:scale(0.6);opacity:0}65%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
    @keyframes sdv-glow{0%,100%{box-shadow:0 0 0 0 rgba(67,233,123,0.0),0 8px 32px rgba(0,0,0,0.4)}50%{box-shadow:0 0 0 12px rgba(67,233,123,0.12),0 8px 32px rgba(0,0,0,0.4)}}
    @keyframes sdv-bar{0%{width:0%}70%{width:85%}90%{width:95%}100%{width:100%}} @keyframes sdv-pulse{0%,100%{opacity:1}50%{opacity:0.5}}
    @keyframes sdv-fade{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:translateY(0)}}
    @keyframes sdv-coin{0%{transform:rotateY(0deg)}50%{transform:rotateY(25deg)}100%{transform:rotateY(0deg)}}
    @keyframes sdv-ring{0%{transform:scale(1);opacity:0.5}50%{transform:scale(1.18);opacity:0}100%{transform:scale(1);opacity:0}}
    @keyframes sdv-float{0%{transform:translateY(110vh) rotate(0deg);opacity:0}10%{opacity:1}90%{opacity:1}100%{transform:translateY(-10vh) rotate(360deg);opacity:0}}
    .sdv-p{position:absolute;font-size:14px;font-weight:800;color:rgba(105,240,174,0.18);font-family:Arial,sans-serif;animation:sdv-float linear infinite}
    .sdv-p1{left:8%;animation-duration:7s;animation-delay:0s;font-size:12px}
    .sdv-p2{left:22%;animation-duration:9s;animation-delay:1.5s;font-size:16px}
    .sdv-p3{left:38%;animation-duration:6.5s;animation-delay:0.8s;font-size:11px}
    .sdv-p4{left:55%;animation-duration:8s;animation-delay:2.2s;font-size:14px}
    .sdv-p5{left:70%;animation-duration:7.5s;animation-delay:0.3s;font-size:13px}
    .sdv-p6{left:85%;animation-duration:6s;animation-delay:3s;font-size:15px}
    .sdv-p7{left:15%;animation-duration:10s;animation-delay:1s;font-size:18px}
    .sdv-p8{left:78%;animation-duration:8.5s;animation-delay:4s;font-size:16px}
    @keyframes sdv-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
    @keyframes sdv-pop{0%{transform:scale(0.7);opacity:0}60%{transform:scale(1.1)}100%{transform:scale(1);opacity:1}}
    @keyframes sdv-dots{0%,80%,100%{opacity:0;transform:scale(0.5)}40%{opacity:1;transform:scale(1)}}
    @keyframes sdv-glow{0%,100%{box-shadow:0 0 24px 4px rgba(105,240,174,0.25)}50%{box-shadow:0 0 48px 12px rgba(105,240,174,0.55)}}

/* ── Scrollbar estilizada nas listas ── */
.scroll-lista-gastos::-webkit-scrollbar,
.scroll-lista-dividas::-webkit-scrollbar,
.scroll-lista-receitas::-webkit-scrollbar { width: 4px; }

.scroll-lista-gastos::-webkit-scrollbar-track,
.scroll-lista-dividas::-webkit-scrollbar-track,
.scroll-lista-receitas::-webkit-scrollbar-track { background: #1a1a1a; border-radius: 4px; }

.scroll-lista-gastos::-webkit-scrollbar-thumb  { background: #ef4444; border-radius: 4px; }
.scroll-lista-dividas::-webkit-scrollbar-thumb { background: #f59e0b; border-radius: 4px; }
.scroll-lista-receitas::-webkit-scrollbar-thumb { background: #1ED760; border-radius: 4px; }

/* Scrollbar global thin para outros containers */
* { scrollbar-width: thin; }