:root{--font: "Century Gothic", "URW Gothic", "Questrial", "Avenir Next", "Segoe UI", system-ui, sans-serif;--bg: #f4f7fb;--card: #ffffff;--line: #9dc3e6;--line-soft: #dbe6f3;--ink: #262626;--ink-soft: #595959;--muted: #8c8c8c;--blue: #5b9bd5;--blue-dark: #2e75b6;--blue-pale: #deebf7;--green: #c6efce;--green-ink: #006100;--red: #ffc7ce;--red-ink: #9c0006;--radius: 10px;--shadow: 0 1px 2px rgba(20, 40, 70, .06), 0 4px 14px rgba(20, 40, 70, .05);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;-webkit-text-size-adjust:100%}button,input,select{font:inherit}h1,h2,h3{font-weight:400;margin:0}.app{min-height:100dvh;display:flex;flex-direction:column}.main{flex:1;overflow-x:hidden;padding:12px 12px calc(76px + env(safe-area-inset-bottom));max-width:1720px;width:100%;margin:0 auto}.topbar{display:flex;align-items:center;gap:16px;padding:8px 16px;background:linear-gradient(180deg,#7fb2e3,#4a8ccc 60%,#3f7fbe);color:#fff;box-shadow:var(--shadow);position:sticky;top:0;z-index:20}.topbar__brand{font-size:20px;letter-spacing:.3px;white-space:nowrap}.topbar__nav{display:none;gap:4px}.navlink{color:#ffffffd9;text-decoration:none;padding:6px 12px;border-radius:999px}.navlink--on{background:#ffffff38;color:#fff}.topbar__status{margin-left:auto;display:flex;align-items:center;gap:8px}.badge{font-size:11px;padding:2px 8px;border-radius:999px;background:#fff3}.badge--busy{background:#ffc000;color:#3a2a00}.badge--local{background:#ffe699;color:#5a4500}.badge--remote{background:#c6efce;color:#006100}.bottomnav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid var(--line-soft);padding-bottom:env(safe-area-inset-bottom);z-index:20}.bottomnav__item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 6px;font-size:11px;color:var(--muted);text-decoration:none}.bottomnav__item--on{color:var(--blue-dark)}.bottomnav__icon{font-size:20px}@media(min-width:900px){.topbar__nav{display:flex}.bottomnav{display:none}.main{padding-bottom:24px}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:10px 12px;min-width:0;overflow-x:auto}.card--blue{background:linear-gradient(180deg,#eaf3fc,#f7fafd)}.card__head{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.card__title{font-size:16px;color:var(--ink-soft);text-align:center}.card__right{margin-left:auto}.section-title{font-size:22px;color:var(--ink-soft);text-align:center;margin:18px 0 10px;letter-spacing:.3px}.alert{background:var(--red);color:var(--red-ink);padding:8px 16px;font-size:13px}.empty,.spinner{padding:40px;text-align:center;color:var(--muted)}.spinner__dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--blue);animation:pulse 1s infinite ease-in-out;margin-right:8px}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.dash{display:flex;flex-direction:column;gap:12px}.grid{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}.grid-top{grid-template-areas:"hero" "gastos" "rising" "plan"}.grid-top>.a-hero{grid-area:hero}.grid-top>.a-gastos{grid-area:gastos}.grid-top>.a-rising{grid-area:rising}.grid-top>.a-plan{grid-area:plan}.grid-mid{grid-template-areas:"catbox" "catbar" "pie" "hist" "total" "avgcat" "avg"}.grid-mid>.a-catbox{grid-area:catbox}.grid-mid>.a-catbar{grid-area:catbar}.grid-mid>.a-pie{grid-area:pie}.grid-mid>.a-hist{grid-area:hist}.grid-mid>.a-total{grid-area:total}.grid-mid>.a-avgcat{grid-area:avgcat}.grid-mid>.a-avg{grid-area:avg}.grid-inv{grid-template-areas:"invtable" "invhist" "invgrowth"}.grid-inv>.a-invtable{grid-area:invtable}.grid-inv>.a-invhist{grid-area:invhist}.grid-inv>.a-invgrowth{grid-area:invgrowth}.grid-year{grid-template-areas:"ytable" "yevo" "million" "services"}.grid-year>.a-ytable{grid-area:ytable}.grid-year>.a-yevo{grid-area:yevo}.grid-year>.a-million{grid-area:million}.grid-year>.a-services{grid-area:services}@media(min-width:760px){.grid-top{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"hero gastos" "rising plan"}.grid-mid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"catbox catbar" "catbox pie" "hist hist" "total total" "avgcat avg"}.grid-inv{grid-template-columns:320px minmax(0,1fr);grid-template-areas:"invtable invhist" "invtable invgrowth"}.grid-year{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"ytable yevo" "million services"}}@media(min-width:1200px){.grid-top{grid-template-columns:230px minmax(0,1.25fr) minmax(0,1fr) 400px;grid-template-areas:"hero gastos rising plan"}.grid-mid{grid-template-columns:300px minmax(0,1.1fr) minmax(0,.8fr) minmax(0,1.4fr);grid-template-areas:"catbox catbar pie total" "catbox hist hist hist" "catbox avgcat avgcat avg"}.grid-year{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-areas:"ytable yevo" "million services"}}.hero{text-align:center;padding:8px 4px}.hero__title{font-size:22px;color:var(--ink-soft);margin-bottom:8px}.hero__lead{font-size:15px;color:var(--ink)}.hero__big{font-size:34px;line-height:1.15;margin:4px 0;color:#1a1a1a}.hero__big--neg{color:var(--red-ink)}.hero__or{font-size:15px;color:var(--ink-soft)}.hero__meta{margin-top:10px;font-size:12px;color:var(--muted)}.hero__note{font-size:11px;color:#9c6500;background:#fff4cc;border-radius:6px;padding:4px 8px;margin-top:8px}.stat{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:4px 0;font-size:13px}.stat b{font-weight:700;color:var(--ink)}.controls{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:4px 0 8px}.field-inline{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft)}select,input[type=date],input[type=month],input[type=text],input[type=number],input[type=search]{border:1px solid var(--line);border-radius:8px;padding:7px 10px;background:#fff;color:var(--ink);min-height:38px}.monthnav{display:inline-flex;align-items:center;gap:4px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:2px;position:relative}.monthnav__btn{border:0;background:var(--blue-pale);color:var(--blue-dark);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:18px;line-height:1}.monthnav__btn:disabled{opacity:.35;cursor:default}.monthnav__label{min-width:130px;text-align:center;font-size:13px;pointer-events:none}.monthnav__input{position:absolute;left:36px;right:36px;top:0;bottom:0;opacity:0;min-height:0;padding:0;cursor:pointer}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--line);background:#fff;color:var(--ink-soft);border-radius:999px;padding:6px 12px;cursor:pointer;font-size:12px;min-height:34px}.chip--on{background:var(--blue-pale);border-color:var(--blue);color:var(--blue-dark)}.btn{border:1px solid var(--blue);background:linear-gradient(180deg,#7fb2e3,#4a8ccc);color:#fff;border-radius:10px;padding:10px 18px;cursor:pointer;min-height:42px;font-size:15px}.btn:disabled{opacity:.5;cursor:default}.btn--ghost{background:transparent;border-color:#ffffff80;color:#fff;min-height:32px;padding:4px 10px}.btn--secondary{background:#fff;color:var(--blue-dark)}.btn--danger{background:#fff;color:var(--red-ink);border-color:#e6a2aa}.btn--block{width:100%}.xl{width:100%;border-collapse:collapse;font-size:13px}.xl th{font-weight:700;text-align:left;padding:5px 6px;border-bottom:2px solid var(--ink-soft);color:var(--ink);white-space:nowrap}.xl td{padding:4px 6px;border-bottom:1px solid #ececec;white-space:nowrap}.xl .num{text-align:right;font-variant-numeric:tabular-nums}.xl .total td{font-weight:700;border-top:1px solid var(--ink-soft);border-bottom:2px solid var(--ink-soft)}.xl .muted td{color:var(--muted)}.xl .cur td{background:#f3f8fd}.bar-cell{position:relative}.bar-cell__fill{position:absolute;left:4px;top:6px;bottom:6px;background:linear-gradient(90deg,#5b9bd5,#9dc3e6);border-radius:2px;opacity:.55;pointer-events:none}.bar-cell__text{position:relative}.pos{background:var(--green);color:var(--green-ink)}.neg{background:var(--red);color:var(--red-ink)}.table-wrap{overflow-x:auto}.mini{font-size:12px;color:var(--muted)}details.section{border:1px dashed var(--line);border-radius:var(--radius);padding:8px 12px;background:#fbfdff}details.section summary{cursor:pointer;color:var(--ink-soft);font-size:15px}.form{display:flex;flex-direction:column;gap:12px;max-width:640px;margin:0 auto}.form label.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-soft)}.form input.big{font-size:28px;padding:8px 12px;text-align:right;min-height:56px}.form input[type=text],.form input[type=date]{font-size:16px;min-height:46px}.seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:10px;overflow:hidden}.seg button{border:0;background:#fff;padding:10px;cursor:pointer;color:var(--ink-soft);min-height:44px}.seg button.on{background:var(--blue-pale);color:var(--blue-dark);font-weight:700}.seg button.on.expense{background:#fde2e4;color:var(--red-ink)}.seg button.on.income{background:var(--green);color:var(--green-ink)}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row>*{flex:1}.toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));transform:translate(-50%);background:#2f2f2f;color:#fff;padding:10px 16px;border-radius:999px;font-size:13px;z-index:30;box-shadow:var(--shadow)}.txlist{list-style:none;padding:0;margin:0}.txlist__day{font-size:12px;color:var(--muted);padding:10px 4px 4px;border-bottom:1px solid var(--line-soft)}.txitem{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 4px;border-bottom:1px solid #f0f0f0;cursor:pointer}.txitem__desc{font-size:14px}.txitem__meta{font-size:11px;color:var(--muted);grid-column:1}.txitem__val{grid-row:1 / span 2;align-self:center;font-variant-numeric:tabular-nums;font-size:15px}.txitem__val.expense{color:var(--red-ink)}.txitem__val.income{color:var(--green-ink)}.invrow{display:grid;grid-template-columns:1fr 74px 1fr;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid #f0f0f0}.invrow input,.invrow select{width:100%;min-height:42px;font-size:15px}.invrow__name{font-size:14px}.invrow__brl{font-size:11px;color:var(--muted)}.kpi{text-align:center;padding:8px}.kpi__label{font-size:12px;color:var(--muted)}.kpi__value{font-size:30px;color:#1a1a1a}.form input,.form select{width:100%;min-width:0;max-width:100%}.row>*,.invrow>*{min-width:0}.a-plan .xl{font-size:12px}.a-plan .xl td,.a-plan .xl th{padding:3px 5px}.hero__meta{overflow-wrap:anywhere}.shot__head{display:flex;gap:10px;align-items:center;margin:6px 0 8px}.shot__thumb{width:56px;height:56px;object-fit:cover;border-radius:8px;border:1px solid var(--line-soft)}.shot__row{display:grid;grid-template-columns:52px 1fr 96px;gap:6px;padding:8px 0;border-bottom:1px solid #f0f0f0}.shot__row input,.shot__row select{min-width:0;width:100%;min-height:40px;font-size:14px}.shot__row input[type=date]{grid-column:2}.shot__row--off{opacity:.45}.shot__check{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;color:var(--muted);justify-content:center}.shot__check input{width:20px;height:20px;min-height:0}.shot__conf{border-radius:6px;padding:1px 4px}.shot__amount{text-align:right}@media(min-width:640px){.shot__row{grid-template-columns:52px 1.4fr 96px 130px 100px 1fr 1fr}.shot__row input[type=date]{grid-column:auto}}
