:root{--green:#2f8f6b;--green2:#10c987;--mint:#e9f8f1;--bg:#f5f8f6;--text:#1f2a35;--muted:#7b8b91;--card:#fff;--yellow:#f2c94c;--red:#e24d64;--orange:#f2994a;--blue:#4a90e2;--purple:#9b51e0;--shadow:0 16px 38px rgba(31,42,53,.09);--radius:24px}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:linear-gradient(135deg,#e6f6ef,#f8fbfa);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr;gap:28px;padding:28px}.sidebar{background:rgba(255,255,255,.8);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.8);border-radius:32px;padding:22px;box-shadow:var(--shadow);display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px}.brand.big{margin-bottom:26px}.brand-mark{width:46px;height:46px;border-radius:16px;background:linear-gradient(135deg,var(--green2),var(--green));color:#fff;display:grid;place-items:center;font-weight:900;letter-spacing:-1px}.brand strong{display:block;font-size:20px}.brand small{color:var(--muted);font-size:12px}.sidebar nav{display:grid;gap:8px;margin-top:28px}.nav-item{border:0;background:transparent;border-radius:16px;padding:14px 12px;text-align:left;color:#405058}.nav-item.active,.nav-item:hover{background:var(--mint);color:var(--green);font-weight:700}.security-box{margin-top:auto;background:#183f35;color:#eafff8;border-radius:20px;padding:16px;display:grid;gap:4px}.security-box span{font-size:12px;opacity:.8}.phone-frame{max-width:440px;width:100%;margin:auto}.mobile-app,.login-screen{min-height:860px;background:var(--bg);border-radius:42px;box-shadow:0 30px 80px rgba(31,42,53,.2);overflow:hidden;position:relative;border:10px solid #17211d}.login-screen{display:grid;place-items:center;padding:26px}.hidden{display:none!important}.login-card{background:#fff;border-radius:28px;padding:26px;box-shadow:var(--shadow);display:grid;gap:14px;width:100%}.login-card label{display:grid;gap:6px;font-weight:700}.login-card input,.filters input,.filters select{border:1px solid #dfe8e4;border-radius:16px;padding:13px;background:#fff}.hint,.muted{color:var(--muted);font-size:13px}.topbar{padding:26px 22px 10px;display:flex;align-items:center;justify-content:space-between}.topbar small{color:var(--muted);font-size:12px}.topbar h1{font-size:20px;margin:2px 0 0}.icon-btn{border:0;background:#fff;border-radius:16px;width:44px;height:44px;box-shadow:0 8px 20px rgba(31,42,53,.06)}.period-tabs{margin:4px 22px 16px;background:#fff;border-radius:18px;padding:5px;display:grid;grid-template-columns:repeat(4,1fr)}.period-tabs button{border:0;background:transparent;border-radius:14px;padding:9px;color:var(--muted)}.period-tabs .active{background:var(--green);color:white}.view{display:none;padding:0 22px 96px}.view.active{display:block}.hero-card{background:linear-gradient(135deg,var(--green),#185f4d);color:white;border-radius:30px;padding:22px;box-shadow:var(--shadow)}.hero-top,.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.money{display:block;font-size:42px;margin:10px 0 6px;letter-spacing:-1.5px}.hero-card p{margin:0 0 14px;color:rgba(255,255,255,.86)}.progress{height:10px;background:rgba(255,255,255,.22);border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:var(--yellow);border-radius:999px}.card,.insight-card{background:var(--card);border-radius:var(--radius);padding:18px;margin-top:16px;box-shadow:0 8px 26px rgba(31,42,53,.06)}.chart-row{display:flex;align-items:center;gap:14px}.legend{display:grid;gap:10px;flex:1}.legend-row,.list-row{display:flex;align-items:center;gap:12px}.legend-dot{width:12px;height:12px;border-radius:50%}.legend-row small{margin-left:auto;color:var(--muted)}.pill{border-radius:999px;background:var(--mint);color:var(--green);padding:6px 10px;font-size:12px;font-weight:800}.pill.good{background:#dff9ed;color:#13855b}.pill.warn{background:#fff1d6;color:#b86b00}.pill.bad{background:#ffe2e7;color:#b91c35}.primary,.ghost,.quick-grid button,.upload{border:0;border-radius:15px;padding:12px 15px;font-weight:800}.primary{background:var(--green);color:#fff}.primary.small{padding:9px 12px;font-size:13px}.ghost{background:var(--mint);color:var(--green)}.insight-card{display:flex;gap:12px;align-items:flex-start;background:#fffaf0}.insight-card span{font-size:25px}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:16px}.quick-grid button{background:#fff;box-shadow:0 8px 24px rgba(31,42,53,.06);color:#24352f}.stack{display:grid;gap:12px}.home-card,.movement-card,.budget-card,.alert-card,.ai-card{background:#fff;border-radius:20px;padding:15px;box-shadow:0 8px 22px rgba(31,42,53,.05)}.row-between{display:flex;justify-content:space-between;align-items:center;gap:12px}.icon-circle{width:42px;height:42px;border-radius:15px;display:grid;place-items:center;color:white;font-weight:900}.amount{font-weight:900}.negative{color:var(--red)}.positive{color:var(--green)}.filters{display:grid;grid-template-columns:1fr 120px;gap:10px;margin-bottom:14px}.bar{height:9px;background:#edf2ef;border-radius:999px;overflow:hidden;margin-top:10px}.bar span{display:block;height:100%;border-radius:999px}.backup-actions{display:flex;gap:10px;margin:14px 0}.upload{background:var(--mint);color:var(--green);display:inline-block}.upload input{display:none}textarea{width:100%;min-height:160px;border:1px solid #dfe8e4;border-radius:18px;padding:12px;resize:vertical}.audit{font-size:12px;color:var(--muted);display:grid;gap:6px}.fab{position:absolute;right:28px;bottom:82px;width:60px;height:60px;border:0;border-radius:24px;background:var(--yellow);font-size:34px;font-weight:300;box-shadow:0 16px 34px rgba(242,201,76,.35);z-index:3}.bottom-nav{position:absolute;left:0;right:0;bottom:0;height:70px;background:#fff;display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid #edf2ef}.bottom-nav button{border:0;background:transparent;color:var(--muted);font-size:12px}.bottom-nav .active{color:var(--green);font-weight:900}dialog{border:0;border-radius:28px;padding:0;box-shadow:0 30px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(20,30,28,.38);backdrop-filter:blur(4px)}.modal-card{width:min(420px,92vw);padding:22px;background:white;border-radius:28px}.modal-card label{display:grid;gap:6px;margin:10px 0}.modal-card input,.modal-card select{border:1px solid #dfe8e4;border-radius:14px;padding:12px}.close{float:right;border:0;background:#f1f5f3;border-radius:50%;width:34px;height:34px}.modal-card menu{display:flex;justify-content:flex-end;gap:10px;padding:0;margin:18px 0 0}@media(max-width:860px){.app-shell{grid-template-columns:1fr;padding:0}.sidebar{display:none}.phone-frame{max-width:none}.mobile-app,.login-screen{border:0;border-radius:0;min-height:100vh}.view{padding-bottom:100px}} 

/* v0.2 responsive correction: real desktop web, mobile app style */
@media (min-width:861px){
  body{background:#f4f8f6;min-height:100vh}
  .app-shell{grid-template-columns:280px minmax(0,1fr);gap:28px;align-items:start;max-width:1480px;margin:0 auto;padding:28px}
  .sidebar{position:sticky;top:28px;height:calc(100vh - 56px)}
  .phone-frame{max-width:none;width:100%;margin:0}
  .mobile-app{min-height:calc(100vh - 56px);border:0;border-radius:32px;background:linear-gradient(180deg,#f8fbfa,#f2f7f4);box-shadow:var(--shadow);overflow:visible;padding-bottom:34px}
  .topbar{padding:30px 34px 14px}.topbar h1{font-size:28px}.topbar small{font-size:13px}.topbar .icon-btn:first-child{display:none}
  .period-tabs{margin:0 34px 22px;max-width:460px}
  .view{padding:0 34px 40px}.view.active{display:block}
  #view-dashboard.active{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(420px,1.1fr);gap:22px;align-items:start}
  #view-dashboard .hero-card{grid-column:1/2;margin:0;min-height:230px;display:flex;flex-direction:column;justify-content:space-between}
  #view-dashboard .chart-card{grid-column:2/3;grid-row:1/3;margin:0;min-height:430px}
  #view-dashboard .insight-card{grid-column:1/2;margin:0}
  #view-dashboard .quick-grid{grid-column:1/3;grid-template-columns:repeat(4,1fr);margin-top:0}
  .chart-row{gap:30px;justify-content:center}.chart-row canvas{width:230px;height:230px}.legend{font-size:15px;min-width:220px}
  .money{font-size:56px}.hero-card{padding:28px}.card,.insight-card{padding:24px;border-radius:28px}
  .section-title h2{font-size:24px;margin:0 0 6px}.stack{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
  #view-expenses .stack,#view-alerts .stack,#view-ai .stack{grid-template-columns:1fr 1fr}
  .filters{max-width:720px;grid-template-columns:1fr 180px}.fab{position:fixed;right:42px;bottom:42px}.bottom-nav{display:none}
}
@media (max-width:860px){
  body{background:var(--bg)}.app-shell{display:block;padding:0}.phone-frame{width:100%;max-width:none;margin:0}.mobile-app{border:0;border-radius:0;box-shadow:none;min-height:100vh;overflow:hidden}.sidebar{display:none}.topbar{padding-top:18px}.view{padding-bottom:104px}.chart-row{flex-direction:column}.legend{width:100%}
}
@media (min-width:861px) and (max-width:1120px){
  .app-shell{grid-template-columns:230px minmax(0,1fr);gap:20px;padding:20px}.sidebar{height:calc(100vh - 40px);top:20px}.nav-item{padding:12px 10px}.topbar,.view{padding-left:24px;padding-right:24px}.period-tabs{margin-left:24px;margin-right:24px}#view-dashboard.active{grid-template-columns:1fr}.chart-card,#view-dashboard .chart-card,#view-dashboard .hero-card,#view-dashboard .insight-card,#view-dashboard .quick-grid{grid-column:auto;grid-row:auto}.quick-grid{grid-template-columns:repeat(2,1fr)!important}
}
