:root{
  --finn-bg:#071a16;
  --finn-bg-soft:#0e2a23;
  --finn-surface:#f5f7f4;
  --finn-surface-2:#ffffff;
  --finn-text:#173128;
  --finn-text-soft:#6f7f79;
  --finn-line:#dfe7e1;
  --finn-primary:#1f5b49;
  --finn-primary-2:#2b755f;
  --finn-accent:#d7efc0;
  --finn-danger:#cf3c34;
  --finn-warn:#e3a742;
  --finn-blue:#4d84db;
  --finn-radius-xl:30px;
  --finn-radius-lg:22px;
  --finn-radius-md:16px;
  --finn-radius-sm:12px;
  --finn-shadow:0 18px 40px rgba(0,0,0,.18);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  margin:0;
  min-height:100vh;
  background:linear-gradient(180deg,#08211c 0%,#0a2a22 100%);
  color:#eef7ef;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit}
button,input,select,textarea{font:inherit}
input,textarea,select{font-size:16px}
img{max-width:100%;display:block}
canvas{max-width:100%}

.finn-app-shell{max-width:1240px;margin:0 auto;padding:22px 18px calc(110px + env(safe-area-inset-bottom,0px));}
.finn-hero{padding:8px 2px 22px}
.finn-back{display:inline-flex;align-items:center;gap:8px;color:#d5ebdc;text-decoration:none;font-weight:700;opacity:.95;margin-bottom:12px}
.finn-page-title{font-size:clamp(34px,9vw,64px);line-height:.98;font-weight:900;letter-spacing:-.05em;margin:0 0 10px}
.finn-page-subtitle{margin:0;color:#c9ddd4;font-size:clamp(17px,4.6vw,28px);line-height:1.18;max-width:720px}
.finn-head-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.finn-user-chip{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.06);padding:10px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(16px)}
.finn-user-chip img,.finn-user-chip .avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.45)}
.finn-user-chip strong{display:block;font-size:14px}
.finn-user-chip small{display:block;color:#cfe1d7}
.finn-clock{font-variant-numeric:tabular-nums;color:#fff;font-weight:800}

.finn-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:18px;padding:18px 18px;border-radius:20px;background:rgba(215,239,192,.12);border:1px solid rgba(215,239,192,.22);color:#f4fbf1}
.finn-banner-actions{display:flex;gap:10px;flex-wrap:wrap}
.finn-banner button,.finn-banner a,.finn-chip-button,.finn-primary,.finn-secondary,.finn-danger-btn{
  border:0;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:16px;font-weight:800;transition:transform .18s ease,opacity .18s ease,background .18s ease;
}
.finn-banner button:active,.finn-banner a:active,.finn-chip-button:active,.finn-primary:active,.finn-secondary:active,.finn-danger-btn:active{transform:scale(.98)}
.finn-primary{background:var(--finn-primary);color:#fff;box-shadow:0 10px 20px rgba(31,91,73,.22)}
.finn-secondary{background:#edf2ed;color:var(--finn-text);border:1px solid var(--finn-line)}
.finn-danger-btn{background:#f8e7e5;color:#9c2d29}

.finn-card{background:var(--finn-surface-2);color:var(--finn-text);border-radius:var(--finn-radius-xl);box-shadow:var(--finn-shadow);padding:22px;overflow:hidden}
.finn-card.soft{background:var(--finn-surface)}
.finn-card.dark{background:linear-gradient(135deg,var(--finn-primary),#173e33);color:#fff}
.finn-card + .finn-card{margin-top:16px}
.finn-card-title{margin:0 0 6px;font-size:20px;line-height:1.08;font-weight:900;letter-spacing:-.03em}
.finn-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#7e8e88;font-weight:800;margin:0 0 6px;display:block}
.finn-muted{color:var(--finn-text-soft)}
.finn-mini-link{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-weight:700;color:var(--finn-primary)}

.finn-grid{display:grid;gap:16px}
.finn-grid.dashboard{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start}
.finn-span-12{grid-column:span 12}.finn-span-8{grid-column:span 8}.finn-span-7{grid-column:span 7}.finn-span-6{grid-column:span 6}.finn-span-5{grid-column:span 5}.finn-span-4{grid-column:span 4}.finn-span-3{grid-column:span 3}

.finn-finnia{display:flex;gap:18px;align-items:center}
.finn-finnia-media{width:72px;height:72px;border-radius:22px;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}
.finn-finnia-media img{width:66px;height:66px;object-fit:cover}
.finn-finnia p{margin:8px 0 0;color:rgba(255,255,255,.92);font-size:16px;line-height:1.4}
.finn-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.finn-stat-card{border-radius:24px;padding:18px;background:#fff;color:var(--finn-text);box-shadow:var(--finn-shadow)}
.finn-stat-card .value{font-size:30px;line-height:1;font-weight:900;letter-spacing:-.04em;margin-top:10px}
.finn-stat-card.v-danger{border-left:6px solid var(--finn-danger)}
.finn-stat-card.v-warn{border-left:6px solid var(--finn-warn)}
.finn-stat-card.v-blue{border-left:6px solid var(--finn-blue)}
.finn-stat-card.v-green{border-left:6px solid var(--finn-primary)}

.finn-hscroll{display:flex;gap:12px;overflow:auto;padding-bottom:4px;scrollbar-width:none}
.finn-hscroll::-webkit-scrollbar{display:none}
.finn-pill-card{min-width:190px;background:#f6f8f6;border:1px solid var(--finn-line);padding:14px;border-radius:20px;display:flex;gap:10px;align-items:flex-start}
.finn-pill-card .icon{font-size:22px;line-height:1}
.finn-list{display:grid;gap:10px}
.finn-list-item{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #edf1ed}
.finn-list-item:last-child{border-bottom:0;padding-bottom:0}
.finn-list-item strong{display:block;font-size:14px}
.finn-list-item small{display:block;color:#6d7d77}
.finn-list-item .amount{font-weight:800;white-space:nowrap}
.finn-list-item.event,.finn-list-item.bill{padding:14px;border-radius:18px;background:#f6f8f6;border:1px solid var(--finn-line)}
.finn-list-item.event{border-left:5px solid var(--finn-primary)}
.finn-list-item.bill{border-left:5px solid var(--finn-danger)}

.finn-chart-wrap{height:260px}
.finn-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:16px}
.finn-calendar-head{text-align:center;color:#7e8e88;font-weight:800;font-size:12px;padding-bottom:4px}
.finn-day{
  min-height:70px;background:#f7f9f7;border:1px solid var(--finn-line);border-radius:18px;padding:10px 8px;text-decoration:none;color:var(--finn-text);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:8px
}
.finn-day-number{font-weight:800;font-size:15px}
.finn-day.today{background:#eaf5e7;border-color:#b8d6c9}
.finn-day.selected{outline:2px solid var(--finn-primary);outline-offset:-2px}
.finn-day .dots{display:flex;gap:4px;flex-wrap:wrap}
.finn-day .dot{width:8px;height:8px;border-radius:50%}
.finn-day.empty{background:transparent;border:0;min-height:70px}
.finn-month-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.finn-month-title{font-size:42px;font-weight:900;letter-spacing:-.05em;margin:0;text-align:center;flex:1;color:var(--finn-text)}
.finn-nav-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--finn-primary);font-weight:800;background:#eef4ef;border:1px solid var(--finn-line);padding:12px 14px;border-radius:14px}

.finn-form{display:grid;gap:16px}
.finn-field{display:grid;gap:8px}
.finn-field label{font-size:13px;font-weight:800;color:#42554e}
.finn-field small{color:#6f7f79;line-height:1.4}
.finn-field input,.finn-field textarea,.finn-field select{
  width:100%;min-width:0;border:1px solid var(--finn-line);background:#f7f9f7;color:var(--finn-text);border-radius:18px;padding:16px 16px;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease
}
.finn-field input:focus,.finn-field textarea:focus,.finn-field select:focus{border-color:#9ec2b2;box-shadow:0 0 0 4px rgba(43,117,95,.08);background:#fff}
.finn-row-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.finn-checkbox{display:flex;gap:12px;align-items:flex-start;padding:16px;background:#f3f6f3;border:1px solid var(--finn-line);border-radius:18px}
.finn-checkbox input{width:22px;height:22px;margin-top:1px;flex-shrink:0}
.finn-checkbox div strong{display:block;font-size:15px;margin-bottom:3px}
.finn-section-stack{display:grid;gap:16px}

.finn-chat{display:grid;gap:14px}
.finn-chat-bubble{max-width:92%;padding:16px 18px;border-radius:22px;line-height:1.45}
.finn-chat-bubble.bot{background:#eef5ef;color:var(--finn-text);border-bottom-left-radius:8px}
.finn-chat-bubble.user{background:var(--finn-primary);color:#fff;border-bottom-right-radius:8px;margin-left:auto}
.finn-suggestion-row{display:flex;gap:10px;flex-wrap:wrap}
.finn-suggestion{background:#edf3ee;border:1px solid var(--finn-line);color:var(--finn-text);padding:10px 14px;border-radius:999px;font-weight:700;cursor:pointer}


.finn-grid-split{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);align-items:start}
.finn-grid-split-profile{grid-template-columns:minmax(0,1fr) minmax(320px,380px);align-items:start}
.finn-grid-single{grid-template-columns:minmax(0,720px);justify-content:center}
.finn-profile-head{display:flex;align-items:center;gap:18px;margin-bottom:8px}
.finn-profile-avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;border:4px solid #d5e5dc;background:#fff;flex-shrink:0}
.finn-profile-meta h2{margin:0;font-size:28px;line-height:1;font-weight:900;letter-spacing:-.04em}
.finn-profile-meta p{margin:8px 0 0;color:#6f7f79}
.finn-tip{padding:16px;border-radius:18px;background:#eef4ef;border:1px solid var(--finn-line);color:#3f534c;line-height:1.45}
.finn-tip.telegram{border-left:5px solid #1d95d7}

.finn-bottom{
  position:fixed;left:0;right:0;bottom:0;z-index:1500;display:flex;justify-content:space-around;align-items:flex-end;gap:4px;padding:10px 8px calc(10px + env(safe-area-inset-bottom,0px));
  background:rgba(9,31,26,.92);backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.08)
}
.finn-bottom a{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#b6c8c0;text-decoration:none;font-size:12px;font-weight:700;padding:6px 2px 4px;border-radius:16px}
.finn-bottom a span:first-child{font-size:21px;line-height:1}
.finn-bottom a.active{color:#e7f6db;background:rgba(215,239,192,.1)}

.finn-toast{position:fixed;left:14px;right:14px;bottom:98px;background:#f1f7f0;color:#173128;border-radius:14px;padding:14px 16px;z-index:1800;display:none;box-shadow:var(--finn-shadow)}
.finn-install{display:none;position:fixed;right:16px;bottom:98px;z-index:1600;border:0;color:#fff;background:var(--finn-primary);padding:0 18px;height:52px;border-radius:16px;font-weight:800;box-shadow:var(--finn-shadow)}
.finn-install.visible{display:inline-flex;align-items:center;justify-content:center}
.finn-ios-help{display:none;position:fixed;inset:0;z-index:1900;background:rgba(4,18,15,.72);padding:24px;align-items:center;justify-content:center}
.finn-ios-help.visible{display:flex}
.finn-ios-help>div{width:min(420px,100%);background:#fff;color:var(--finn-text);padding:26px;border-radius:28px;box-shadow:var(--finn-shadow)}
.finn-ios-help h3{margin:0 0 8px;font-size:24px;line-height:1.05}
.finn-ios-help p{margin:0 0 16px;color:#586a64}
.finn-ios-help button{background:var(--finn-primary);color:#fff;border:0;padding:0 18px;height:48px;border-radius:15px;font-weight:800}

@media (max-width: 920px){
  body{padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))}
  .sidebar,.bottom-nav{display:none!important}
  .main{margin:0!important;padding:0!important;width:100%!important}
  .finn-app-shell{padding:18px 14px calc(110px + env(safe-area-inset-bottom,0px))}
  .finn-banner{padding:16px}
  .finn-grid.dashboard,.finn-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .finn-span-12,.finn-span-8,.finn-span-7,.finn-span-6,.finn-span-5,.finn-span-4,.finn-span-3{grid-column:span 2}
  .finn-row-2,.finn-two{grid-template-columns:1fr!important}

  .finn-grid-split,.finn-grid-split-profile,.finn-grid-single{grid-template-columns:1fr!important}
  .finn-month-title{font-size:30px;flex:0 0 100%;order:-1}
  .finn-month-head{justify-content:space-between}
  .finn-calendar{gap:6px}
  .finn-day{min-height:64px;border-radius:16px;padding:8px 6px}
  .finn-chart-wrap{height:220px}
  .finn-card{padding:18px;border-radius:26px}
  .finn-finnia{align-items:flex-start}
  .finn-profile-head{align-items:flex-start}
}

@media (min-width: 921px){
  .finn-bottom{top:16px;bottom:auto;left:auto;right:18px;border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:8px;background:rgba(9,31,26,.86)}
  .finn-bottom a{flex:0 0 auto;padding:8px 12px;flex-direction:row;font-size:13px}
  .finn-bottom a span:first-child{font-size:18px}
  .finn-install{bottom:20px}
  .finn-toast{left:auto;right:20px;bottom:20px;width:360px}
}

@media (max-width: 430px){
  .finn-page-title{font-size:28px}
  .finn-page-subtitle{font-size:15px}
  .finn-card-title{font-size:18px}
  .finn-stat-card .value{font-size:24px}
  .finn-user-chip{width:100%;justify-content:space-between}
}

/* FINN v4.1 — reparo exclusivo de celulares/iPhone; desktop intocado. */
@media (max-width: 920px) {
  html { width:100%; max-width:100%; overflow-x:clip; background:#09241e; }
  body { display:block!important; width:100%!important; max-width:100%!important; min-width:0!important; min-height:100dvh; overflow-x:clip!important; margin:0!important; padding:0 0 calc(86px + env(safe-area-inset-bottom, 0px))!important; -webkit-text-size-adjust:100%; }
  body > .finn-app-shell, main.finn-app-shell { width:100%!important; max-width:100%!important; min-width:0!important; margin:0 auto!important; padding:calc(22px + env(safe-area-inset-top, 0px)) 16px calc(110px + env(safe-area-inset-bottom,0px))!important; }
  .finn-app-shell > *, .finn-grid > *, .finn-section-stack > *, .finn-form > *, .finn-card > * { min-width:0!important; max-width:100%; }
  .finn-grid, .finn-grid.dashboard, .finn-grid-split, .finn-grid-split-profile, .finn-grid-single { display:grid!important; grid-template-columns:minmax(0,1fr)!important; width:100%!important; min-width:0!important; gap:14px!important; }
  .finn-grid > [class*="finn-span-"] { grid-column:1/-1!important; }
  .finn-card { width:100%!important; height:auto!important; min-height:0!important; margin:0!important; padding:20px!important; border-radius:24px!important; box-shadow:0 9px 26px rgba(0,0,0,.12)!important; overflow:visible!important; }
  .finn-card + .finn-card { margin-top:0!important; }
  .finn-hero { padding:0 0 20px!important; }
  .finn-page-title { font-size:clamp(27px,7.3vw,36px)!important; line-height:1.07!important; margin:4px 0 10px!important; letter-spacing:-.035em!important; }
  .finn-page-subtitle { font-size:15px!important; line-height:1.45!important; margin:0!important; color:#c9ded2!important; }
  .finn-back { font-size:13px!important; margin:0 0 16px!important; text-decoration:none!important; }
  .finn-head-row { display:flex!important; align-items:center!important; gap:10px!important; }
  .finn-user-chip { width:auto!important; flex:0 0 auto!important; padding:7px 9px!important; border-radius:14px!important; }
  .finn-user-chip img { width:36px!important; height:36px!important; }
  .finn-user-chip .finn-clock { display:none!important; }
  .finn-user-chip strong { font-size:12px!important; }
  .finn-head-row > div:first-child { flex:1 1 100%!important; }
  .finn-banner { display:flex!important; align-items:flex-start!important; margin:0 0 14px!important; padding:14px 16px!important; border-radius:18px!important; gap:12px!important; }
  .finn-banner > div:first-child { flex:1 1 100%!important; font-size:13px!important; line-height:1.4!important; }
  .finn-banner-actions { display:flex!important; width:100%!important; gap:8px!important; }
  .finn-banner-actions button,.finn-banner-actions a { min-width:0!important; flex:1 1 50%!important; width:auto!important; height:40px!important; min-height:40px!important; border-radius:11px!important; padding:0 8px!important; background:#d8edce!important; color:#123a2b!important; font-size:12px!important; text-align:center!important; text-decoration:none!important; white-space:normal!important; }
  .finn-banner-actions a { background:rgba(255,255,255,.12)!important; color:#fff!important; }
  .finn-stats { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:9px!important; }
  .finn-stat-card { padding:14px!important; border-radius:17px!important; }
  .finn-stat-card .value { font-size:clamp(19px,5.5vw,26px)!important; overflow-wrap:anywhere; }
  .finn-finnia-media { width:52px!important; height:52px!important; border-radius:15px!important; }
  .finn-finnia-media img { width:49px!important; height:49px!important; }
  .finn-finnia { gap:13px!important; }
  .finn-finnia p { font-size:14px!important; }
  .finn-card-title { font-size:20px!important; line-height:1.17!important; }
  .finn-label { font-size:10px!important; line-height:1.3!important; }
  .finn-form { gap:13px!important; }
  .finn-row-2 { grid-template-columns:minmax(0,1fr)!important; gap:13px!important; }
  .finn-field { gap:6px!important; margin:0!important; }
  .finn-field label { font-size:13px!important; line-height:1.3!important; }
  .finn-field input,.finn-field select,.finn-field textarea { display:block!important; width:100%!important; min-width:0!important; max-width:100%!important; box-sizing:border-box!important; font-size:16px!important; font-weight:500!important; line-height:1.3!important; border-radius:13px!important; min-height:48px!important; padding:11px 12px!important; margin:0!important; appearance:auto; background:#f8faf8!important; }
  .finn-field textarea { resize:vertical!important; min-height:96px!important; }
  .finn-field input[type="date"],.finn-field input[type="time"] { -webkit-appearance:none!important; appearance:none!important; color:var(--finn-text)!important; text-align:left!important; }
  .finn-checkbox { align-items:center!important; padding:13px!important; }
  .finn-checkbox input { margin:0!important; width:20px!important; height:20px!important; flex:none!important; }
  .finn-primary,.finn-secondary,.finn-danger-btn { min-height:44px!important; border-radius:12px!important; font-size:14px!important; }
  .finn-month-head { display:grid!important; grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important; gap:8px!important; }
  .finn-month-title { grid-column:1/-1!important; font-size:25px!important; line-height:1.1!important; margin:0 0 4px!important; }
  .finn-nav-link { padding:9px 10px!important; justify-content:center!important; font-size:12px!important; }
  .finn-calendar { width:100%!important; grid-template-columns:repeat(7,minmax(0,1fr))!important; gap:3px!important; margin-top:12px!important; }
  .finn-calendar-head { font-size:10px!important; }
  .finn-day,.finn-day.empty { min-width:0!important; min-height:48px!important; padding:5px!important; border-radius:9px!important; }
  .finn-day-number { font-size:12px!important; }
  .finn-day .dot { width:5px!important; height:5px!important; }
  .finn-list-item { align-items:flex-start!important; }
  .finn-list-item .amount { white-space:normal!important; text-align:right!important; }
  .finn-profile-head { gap:12px!important; }
  .finn-profile-avatar { width:68px!important; height:68px!important; }
  .finn-profile-meta h2 { font-size:21px!important; }
  .finn-profile-meta p { font-size:12px!important; overflow-wrap:anywhere!important; }
  .finn-chat-bubble { font-size:14px!important; max-width:96%!important; }
  .finn-bottom { height:auto!important; min-height:66px!important; padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px))!important; }
  .finn-bottom a { font-size:10px!important; padding:6px 1px!important; gap:4px!important; }
  .finn-bottom a span:first-child { font-size:19px!important; }
  .finn-toast { bottom:calc(79px + env(safe-area-inset-bottom,0px))!important; left:12px!important; right:12px!important; width:auto!important; border-radius:13px!important; font-size:13px!important; }
  .finn-install { bottom:calc(86px + env(safe-area-inset-bottom,0px))!important; }
}
@media(max-width:360px){.finn-app-shell{padding-left:12px!important;padding-right:12px!important}.finn-card{padding:15px!important}.finn-bottom a{font-size:9px!important}}
