/* Budget App v14 — Revolut-inspired responsive redesign */
:root{
  --rv-bg:#f6f7fb;
  --rv-surface:#ffffff;
  --rv-surface-2:#fbfcff;
  --rv-text:#0b1020;
  --rv-muted:#667085;
  --rv-line:#e8ebf2;
  --rv-blue:#3157ff;
  --rv-blue-2:#6d4aff;
  --rv-green:#14a66f;
  --rv-red:#ef4444;
  --rv-orange:#f59e0b;
  --rv-shadow:0 10px 30px rgba(20,28,50,.07);
  --rv-shadow-lg:0 24px 70px rgba(20,28,50,.12);
  --rv-radius:18px;
}

html,body{background:var(--rv-bg)!important;color:var(--rv-text)}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important}

/* LOGIN */
.auth-shell{
  width:min(1220px,calc(100% - 40px))!important;
  min-height:720px!important;
  margin:30px auto!important;
  grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr)!important;
  border:1px solid var(--rv-line)!important;
  border-radius:30px!important;
  background:#fff!important;
  box-shadow:var(--rv-shadow-lg)!important;
}
.auth-brand{
  color:#fff!important;
  padding:48px!important;
  background:
    radial-gradient(circle at 18% 15%,rgba(120,114,255,.32),transparent 28%),
    radial-gradient(circle at 80% 72%,rgba(49,87,255,.28),transparent 34%),
    linear-gradient(145deg,#111735 0%,#171d48 46%,#25206a 100%)!important;
}
.auth-brand:after{opacity:.6}
.brand-logo{width:58px!important;height:58px!important}
.login-lang{background:rgba(255,255,255,.1)!important;border-color:rgba(255,255,255,.22)!important;border-radius:999px!important;padding:8px 12px!important}
.brand-copy{margin-top:54px!important}
.brand-name{color:#c7d2fe!important;letter-spacing:.12em!important}
.brand-copy h1{font-size:clamp(42px,5vw,66px)!important;line-height:1.02!important;letter-spacing:-.05em!important;max-width:610px!important}
.brand-copy p{max-width:520px!important;color:#d9e0ff!important;font-size:17px!important}
.preview-card{
  max-width:540px!important;
  border-radius:24px!important;
  padding:22px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.075))!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:0 18px 50px rgba(0,0,0,.2)!important;
}
.preview-balance{font-size:40px!important}
.preview-chart span{background:linear-gradient(180deg,#8fa1ff,#6d4aff)!important}
.preview-stats div{background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.05)}
.brand-note{color:#cbd5ff!important}
.auth-panel-new{background:#fff!important;padding:42px!important}
.auth-card-new{width:min(100%,430px)!important;border:0!important;box-shadow:none!important;padding:18px 6px!important}
.eyebrow{color:var(--rv-blue)!important}
.auth-heading h2{font-size:34px!important;color:var(--rv-text)!important}
.auth-heading p{color:var(--rv-muted)!important}
.auth-label{color:#344054!important}
.auth-input-wrap input,.recovery-box input{
  border:1px solid #dfe3ec!important;
  border-radius:14px!important;
  min-height:52px!important;
  background:#fff!important;
  box-shadow:0 1px 2px rgba(16,24,40,.02)!important;
}
.auth-input-wrap input:focus,.recovery-box input:focus{
  border-color:#9aabff!important;
  box-shadow:0 0 0 4px rgba(49,87,255,.10)!important;
}
.forgot-link-new,.signup-secondary strong{color:var(--rv-blue)!important}
.login-primary{
  min-height:52px!important;
  border-radius:14px!important;
  background:linear-gradient(135deg,var(--rv-blue),var(--rv-blue-2))!important;
  box-shadow:0 10px 24px rgba(49,87,255,.24)!important;
}
.signup-secondary{min-height:50px!important;border-radius:14px!important;border-color:#dfe3ec!important;background:#fff!important}
.auth-footer{color:#98a2b3!important}

/* APP SHELL */
.wrap{max-width:1440px!important;margin:0 auto 86px!important;padding:20px!important}
.app-shell{
  min-height:calc(100vh - 40px);
  border-radius:26px!important;
  border:1px solid var(--rv-line)!important;
  background:var(--rv-surface)!important;
  box-shadow:var(--rv-shadow-lg)!important;
  overflow:visible!important;
  position:relative;
  padding-left:214px;
}
.app-header{
  grid-template-columns:1fr auto auto!important;
  min-height:74px;
  padding:14px 24px!important;
  color:var(--rv-text)!important;
  background:rgba(255,255,255,.94)!important;
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--rv-line)!important;
  border-radius:0 26px 0 0;
  position:sticky;
  top:0;
  z-index:50;
}
.app-brand{position:absolute;left:-190px;top:14px;width:166px}
.app-brand-logo{width:40px!important;height:40px!important;flex-basis:40px!important}
.app-brand-name{font-size:15px!important;color:var(--rv-text)!important}
.app-brand-sub{font-size:10px!important;color:var(--rv-muted)!important}
.header-period{justify-self:center}
.header-nav-btn{
  width:36px!important;height:36px!important;border-radius:12px!important;
  border:1px solid var(--rv-line)!important;background:#fff!important;color:var(--rv-text)!important;
}
.header-period-current{
  min-width:140px!important;padding:8px 14px;border:1px solid var(--rv-line);border-radius:999px;background:#fff;
}
#headerMonthText{font-size:14px!important}#headerYearText{font-size:12px!important;color:var(--rv-muted)!important}
.header-account{color:var(--rv-text)!important}
.header-avatar{background:#111735!important;color:#fff!important;width:34px!important;height:34px!important}
.header-email{color:#475467!important;font-size:11px!important}
.header-account-caret{color:#98a2b3}
.header-account-menu{
  right:0!important;top:48px!important;min-width:230px!important;border-radius:16px!important;
  border:1px solid var(--rv-line)!important;box-shadow:var(--rv-shadow)!important;background:#fff!important;
}
.header-logout-btn{border-radius:10px!important}

.app-shell>.card{background:var(--rv-bg)!important;padding:20px!important;border-radius:0 0 26px 0!important}
.userbar{margin:0 0 12px!important;padding:0 2px!important;background:transparent!important;border:0!important}
#userEmail{display:none!important}
.cloud{font-size:11px!important;color:var(--rv-green)!important;background:#ecfdf5!important;padding:6px 10px!important;border-radius:999px!important}
.period{
  background:#fff!important;border:1px solid var(--rv-line)!important;border-radius:18px!important;
  padding:12px!important;margin-bottom:16px!important;box-shadow:0 3px 12px rgba(20,28,50,.03)!important;
}
.period label{font-size:10px!important;color:var(--rv-muted)!important}
.period select,.period input{border-color:#e4e7ec!important;border-radius:12px!important;background:#fff!important}
.ico{border-radius:12px!important;border:1px solid #e4e7ec!important;background:#fff!important;color:#344054!important}
.ico.add{background:var(--rv-blue)!important;color:#fff!important;border-color:var(--rv-blue)!important;box-shadow:0 6px 16px rgba(49,87,255,.18)!important}
.group-toggle{background:#f3f5ff!important;color:var(--rv-blue)!important;border-color:#e1e6ff!important}

.summary.five{gap:12px!important;margin:0 0 16px!important}
.summary.five .sum{
  min-height:110px!important;border:1px solid var(--rv-line)!important;border-radius:18px!important;
  background:#fff!important;box-shadow:0 5px 18px rgba(20,28,50,.035)!important;padding:16px!important;
  position:relative;overflow:hidden;
}
.summary.five .sum:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#d0d5dd}
.summary.five .sum:nth-child(1):before{background:#49d49d}
.summary.five .sum:nth-child(2):before{background:#ff7b7b}
.summary.five .sum.forecast:before{background:#806cff}
.summary.five .sum.actual:before{background:#ffb45e}
.summary.five .sum.available:before{background:#5b8cff}
.summary.five .sum span{font-size:11px!important;color:var(--rv-muted)!important;font-weight:700!important}
.summary.five .sum strong{font-size:24px!important;letter-spacing:-.03em!important;color:var(--rv-text)!important;margin-top:10px!important}

.columns{gap:16px!important}
.section,.report-card,.settings-card,.profile-box,.spend-form,.actual-list{
  background:#fff!important;border:1px solid var(--rv-line)!important;border-radius:18px!important;box-shadow:0 5px 18px rgba(20,28,50,.035)!important;
}
.section{padding:14px!important}
.section .head{padding:2px 2px 10px!important}
.section h2,.panel-title h2{font-size:20px!important;letter-spacing:-.025em!important;color:var(--rv-text)!important}
.row{
  border:1px solid #edf0f5!important;border-radius:14px!important;background:#fff!important;margin:7px 0!important;
  box-shadow:none!important;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
}
.row:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(20,28,50,.055)!important;border-color:#dfe4ee!important}
.row input,.row select,.spend-form input,.spend-form select{border-color:#e5e7eb!important;border-radius:10px!important;background:#fff!important}
.rowbtn .ico{border-radius:9px!important}
.valid{background:#fff8dc!important}.main.on{background:#eef1ff!important;color:#3f46a8!important}.del{background:#fff0f0!important;color:#c73434!important}
.status{color:var(--rv-muted)!important}

/* desktop navigation becomes a left rail */
.bottom-nav{
  position:fixed!important;
  left:max(20px,calc((100vw - 1440px)/2 + 20px))!important;
  top:94px!important;
  bottom:auto!important;
  width:194px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:6px!important;
  padding:8px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  z-index:45!important;
}
.nav-btn{
  min-height:46px!important;justify-content:flex-start!important;gap:11px!important;padding:0 12px!important;
  border-radius:12px!important;color:#475467!important;background:transparent!important;font-weight:700!important;
}
.nav-btn .nav-icon{font-size:18px!important;width:24px;text-align:center}
.nav-btn.active{background:linear-gradient(135deg,#edf1ff,#f2efff)!important;color:var(--rv-blue)!important;box-shadow:none!important}

.settings-tabs{border-radius:14px!important;background:#eef1f6!important;padding:4px!important}
.settings-tab{border-radius:10px!important}
.settings-tab.active{background:#fff!important;color:var(--rv-blue)!important;box-shadow:0 2px 8px rgba(20,28,50,.08)!important}
.spend-kpi{border-radius:16px!important;border-color:var(--rv-line)!important;background:#fff!important}
.spend-add,.profile-action,.primary-wide{border-radius:12px!important;background:linear-gradient(135deg,var(--rv-blue),var(--rv-blue-2))!important}

/* TABLET */
@media(max-width:1100px){
  .wrap{max-width:none!important;padding:12px!important;margin-bottom:88px!important}
  .app-shell{padding-left:0!important;border-radius:22px!important;min-height:calc(100vh - 24px)}
  .app-header{border-radius:22px 22px 0 0!important}
  .app-brand{position:static!important;width:auto!important}
  .app-shell>.card{border-radius:0 0 22px 22px!important;padding:14px!important}
  .bottom-nav{
    position:fixed!important;left:50%!important;transform:translateX(-50%)!important;top:auto!important;bottom:8px!important;
    width:min(760px,calc(100% - 20px))!important;flex-direction:row!important;background:rgba(255,255,255,.96)!important;
    backdrop-filter:blur(18px)!important;border:1px solid var(--rv-line)!important;border-radius:18px!important;
    box-shadow:0 14px 38px rgba(20,28,50,.16)!important;padding:6px!important;
  }
  .nav-btn{justify-content:center!important;min-height:56px!important}
}

/* MOBILE */
@media(max-width:760px){
  body{background:#fff!important}
  .wrap{padding:0!important;margin:0 0 78px!important}
  .app-shell{border:0!important;border-radius:0!important;box-shadow:none!important;min-height:100vh!important}
  .app-header{
    grid-template-columns:auto minmax(0,1fr) auto!important;padding:10px 12px!important;gap:8px!important;
    min-height:64px!important;border-radius:0!important;
  }
  .app-brand-sub{display:none!important}
  .app-brand-name{font-size:13px!important}
  .app-brand-logo{width:34px!important;height:34px!important;flex-basis:34px!important}
  .header-email,.header-account-caret{display:none!important}
  .header-period-current{min-width:110px!important;padding:7px 9px!important}
  .header-nav-btn{width:30px!important;height:30px!important}
  .app-shell>.card{padding:10px!important;border-radius:0!important;background:#f8f9fc!important}
  .period{border-radius:14px!important;padding:9px!important}
  .summary.five{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .summary.five .sum{min-height:88px!important;border-radius:15px!important;padding:12px!important}
  .summary.five .sum.available{grid-column:1/-1!important}
  .summary.five .sum strong{font-size:20px!important}
  .columns{grid-template-columns:1fr!important;gap:10px!important}
  .section{border-radius:16px!important;padding:10px!important}
  .section h2,.panel-title h2{font-size:19px!important}
  .row{border-radius:12px!important;margin:6px 0!important}
  .bottom-nav{width:calc(100% - 12px)!important;bottom:6px!important;border-radius:18px!important}
  .nav-btn{padding:4px!important;gap:2px!important;flex-direction:column!important;font-size:10px!important}
  .nav-btn .nav-icon{font-size:18px!important}
  .header-account-menu{right:0!important;max-width:calc(100vw - 20px)!important;width:min(260px,calc(100vw - 20px))!important}

  .auth-shell{width:100%!important;margin:0 0 78px!important;border-radius:0!important;border:0!important;box-shadow:none!important;display:block!important}
  .auth-brand{min-height:230px!important;padding:20px!important}
  .brand-logo{width:46px!important;height:46px!important}
  .brand-copy{margin-top:24px!important}
  .brand-copy h1{font-size:32px!important;margin-bottom:10px!important}
  .brand-copy p{font-size:13px!important}
  .preview-card{display:none!important}
  .brand-note{display:none!important}
  .auth-panel-new{padding:18px 16px 28px!important}
  .auth-card-new{padding:8px 0!important}
  .auth-heading h2{font-size:28px!important}
}

@media(max-width:430px){
  .app-brand-name{display:none!important}
  .header-period{gap:3px!important}
  .header-period-current{min-width:96px!important}
  #headerMonthText{font-size:12px!important}
  #headerYearText{font-size:10px!important}
  .summary.five .sum strong{font-size:18px!important}
}
