:root{--bg:#f7f4ed;--panel:#fffdfa;--ink:#13231e;--muted:#6f7b76;--line:#e3ded4;--green:#2f7864;--green2:#e7f2ed;--red:#d95656;--blue:#4c7fd9;--amber:#d98a19;--shadow:0 12px 35px rgba(32,52,43,.06)}
*{box-sizing:border-box}html,body{margin:0;max-width:100%;overflow-x:hidden}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font:inherit}.hide{display:none!important}.shell{max-width:1180px;margin:auto;padding:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}
.topbar{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:14px 18px;margin-bottom:18px}.logo{height:48px}.nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{border:1px solid var(--line);background:#fff;padding:10px 14px;border-radius:12px;cursor:pointer}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.ghost{background:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}
.auth{min-height:100vh;display:grid;place-items:center;padding:20px}.auth .card{width:min(450px,100%);padding:26px}.field{display:grid;gap:7px;margin:12px 0}.field input,.field select,.field textarea{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#fff}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted)}.error{color:#a54040;font-size:14px}.success{color:var(--green);font-size:14px}
.hero{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:18px 0}.hero h1{font-size:40px;line-height:1.05;margin:4px 0}.quote{padding:18px 22px;background:linear-gradient(135deg,#edf6f1,#f8fbf9);border:1px solid #d7e8df;border-radius:16px;max-width:420px}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric{padding:18px}.metric .label{color:var(--muted);font-size:14px}.metric .value{font-size:31px;font-weight:800;margin-top:6px}.metric .delta{font-size:13px;margin-top:8px}.good{color:var(--green)}.warn{color:var(--amber)}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr);gap:14px}.panel{padding:18px}.panel h3{margin:0 0 6px}.chartbox{height:260px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0}.toolbar input,.toolbar select{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}.tablewrap{overflow:auto}.tbl{width:100%;border-collapse:collapse;min-width:720px}.tbl th,.tbl td{text-align:left;padding:11px 8px;border-top:1px solid var(--line);font-size:14px}.tag{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px}.tag.sale{background:#e8f4ee;color:#24644f}.tag.expense{background:#fff0f0;color:#a54646}.tag.capital{background:#edf1ff;color:#4a62a3}.tag.pending{background:#fff6df;color:#996617}
.mobiletx{display:none}.txcard{border:1px solid var(--line);border-radius:14px;padding:13px;margin-top:10px;background:#fff}.txhead{display:flex;justify-content:space-between;gap:10px}.txamt{font-weight:800}.split{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.goalbar{height:10px;background:#ece8df;border-radius:999px;overflow:hidden}.goalbar>div{height:100%;background:var(--green);width:0}.notice{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.empty{padding:26px;text-align:center;color:var(--muted)}
.modal{position:fixed;inset:0;background:#0008;display:grid;place-items:center;padding:18px;z-index:50}.dialog{width:min(600px,100%);max-height:90vh;overflow:auto;background:var(--panel);padding:20px;border-radius:18px}.dialoghead{display:flex;justify-content:space-between;align-items:center}.x{border:0;background:none;font-size:28px;cursor:pointer}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#1e2f29;color:#fff;padding:10px 14px;border-radius:999px;z-index:90}
@media(max-width:900px){.metrics{grid-template-columns:repeat(2,1fr)}.grid,.split{grid-template-columns:1fr}.hero{align-items:flex-start;flex-direction:column}.hero h1{font-size:34px}.desktop{display:none}.mobiletx{display:block}.topbar{align-items:flex-start;flex-direction:column}.quote{max-width:none;width:100%}}
@media(max-width:520px){.shell{padding:12px}.metrics{grid-template-columns:1fr 1fr}.metric .value{font-size:24px}.panel,.metric{padding:14px}.logo{height:42px}.hero h1{font-size:30px}}
.chartbox{position:relative}
.chart-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:24px;color:var(--muted);background:var(--panel)}
.chart-empty b{color:var(--ink);font-size:16px}
.checkrow{display:flex;gap:10px;align-items:center;padding:8px 0}
.checkicon{width:20px;height:20px;border:2px solid #cfc9be;border-radius:6px;display:inline-grid;place-items:center;flex:0 0 auto;font-size:13px}
.checkrow.done .checkicon{background:var(--green);border-color:var(--green);color:#fff}

.lang-toggle{display:inline-flex;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.lang-toggle button{border:0;background:transparent;padding:9px 10px;cursor:pointer}
.lang-toggle button.active{background:var(--green);color:#fff}
@media(max-width:900px){.nav{width:100%}.nav .lang-toggle{margin-left:0}}
@media(max-width:520px){
  .topbar{padding:12px}
  .nav{gap:6px}
  .nav .btn{padding:9px 10px}
  .actions .btn{flex:1 1 calc(50% - 8px)}
  .toolbar{display:grid;grid-template-columns:1fr}
  .toolbar input,.toolbar select{width:100%}
  .metrics{gap:10px}
  .metric .label{font-size:13px}
  .metric .delta{font-size:12px}
}
@media(max-width:380px){.metrics{grid-template-columns:1fr}.actions .btn{flex:1 1 100%}}

.chartbox.chartbox-empty{height:150px}

.ai-insight-panel{margin:16px 0;padding:18px;border-color:#cfe4da;background:linear-gradient(135deg,#fffdfa 0%,#f2f8f5 100%)}
.ai-insight-head{display:flex;justify-content:space-between;gap:14px;align-items:center}
.ai-kicker{font-weight:800;font-size:18px;margin-bottom:4px}
.ai-empty{padding:18px 0 4px;color:var(--muted)}
.ai-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:14px}
.ai-columns h4{margin:0 0 8px}
.ai-columns ul{margin:0;padding-left:20px}
.ai-columns li{margin:7px 0}
.ai-disclaimer{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
@media(max-width:700px){.ai-insight-head{align-items:flex-start;flex-direction:column}.ai-insight-head .btn{width:100%}.ai-columns{grid-template-columns:1fr}}

.health-strip{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:0 0 16px;padding:14px 16px}
.health-main{display:flex;align-items:center;gap:12px}
.health-dot{width:14px;height:14px;border-radius:50%;display:inline-block;box-shadow:0 0 0 5px rgba(0,0,0,.04)}
.health-dot.good{background:#2f9e63}.health-dot.warn{background:#d9a32f}.health-dot.bad{background:#d95b5b}.health-dot.neutral{background:#aeb7b3}
.health-status{font-weight:800;font-size:18px;margin-top:2px}
.health-reason{max-width:620px;text-align:right}
@media(max-width:700px){.health-strip{align-items:flex-start;flex-direction:column}.health-reason{text-align:left;max-width:none}}
