:root{--bg: #FAF5EE;--bg-raised: #FFFDF9;--ink: #2B2118;--ink-soft: #6E5F50;--ink-faint: #A8988A;--line: #E9DFD2;--flame: #E2862E;--flame-deep: #C46A14;--flame-soft: #FBEEDC;--ok: #5F7E4E;--ok-soft: #EDF2E6;--warn: #B07816;--warn-soft: #F9EFD8;--alert: #B0442C;--alert-soft: #F8E7E1;--radius: 16px;--font-display: "Fraunces", Georgia, serif;--font-ui: "Inter", -apple-system, system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:15.5px;line-height:1.5;-webkit-font-smoothing:antialiased}#root{min-height:100%;display:flex;flex-direction:column}.layout{display:flex;min-height:100vh}.app-shell{max-width:720px;width:100%;margin:0 auto;padding:0 18px 96px;flex:1}.sidebar{display:none}@media (min-width: 900px){.sidebar{display:flex;flex-direction:column;width:230px;flex:none;position:sticky;top:0;height:100vh;background:var(--bg-raised);border-right:1px solid var(--line);padding:26px 14px 20px}.sidebar .brand{font-family:var(--font-display);font-weight:600;font-size:23px;letter-spacing:.12em;padding:0 12px 26px}.sidebar .brand .dot{color:var(--flame)}.sidebar nav{display:flex;flex-direction:column;gap:3px}.sidebar nav button{display:flex;align-items:center;gap:12px;border:none;background:transparent;cursor:pointer;font-family:var(--font-ui);font-size:14.5px;font-weight:600;color:var(--ink-soft);padding:11px 12px;border-radius:12px;text-align:left;transition:background .12s}.sidebar nav button:hover{background:var(--flame-soft);color:var(--ink)}.sidebar nav button.on{background:var(--ink);color:var(--bg)}.sidebar nav button svg{width:19px;height:19px;flex:none}.sidebar .utente{margin-top:auto;padding:12px;border-top:1px solid var(--line);font-size:13px;color:var(--ink-soft)}.sidebar .utente .n{font-weight:700;color:var(--ink);font-size:14px}.app-shell{max-width:1080px;margin:0;padding:0 40px 60px}.nav,.fab,.topbar{display:none}.oggi-grid{display:grid;grid-template-columns:5fr 4fr;gap:26px;align-items:start}.hero .value{font-size:46px}.sheet-overlay{align-items:center}.sheet{border-radius:22px}}.topbar{display:flex;align-items:baseline;justify-content:space-between;padding:26px 0 6px}.brand{font-family:var(--font-display);font-weight:600;font-size:21px;letter-spacing:.12em}.brand .dot{color:var(--flame)}.topbar .saluto{color:var(--ink-soft);font-size:13.5px}h1.page-title{font-family:var(--font-display);font-weight:500;font-size:28px;margin:18px 0 4px}.page-sub{color:var(--ink-soft);font-size:14px;margin-bottom:18px}.hero{background:var(--ink);color:var(--bg);border-radius:20px;padding:22px 22px 18px;margin:14px 0 20px;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;right:-30px;top:-30px;width:140px;height:140px;background:radial-gradient(circle,rgba(226,134,46,.35),transparent 70%)}.hero .label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#c9b89f}.hero .value{font-family:var(--font-display);font-size:40px;font-weight:500;margin:2px 0 14px}.hero .row{display:flex;gap:22px;flex-wrap:wrap}.hero .mini .label{font-size:10.5px}.hero .mini .v{font-size:17px;font-weight:600}.hero .mini .v.pos{color:#a9c68f}.hero .mini .v.neg{color:#e89b7f}.cards{display:flex;flex-direction:column;gap:10px}.card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);padding:15px 16px;display:flex;gap:12px;align-items:flex-start;animation:rise .25s ease both}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.card .pip{width:10px;height:10px;border-radius:50%;margin-top:6px;flex:none}.card.ok .pip{background:var(--ok)}.card.info .pip{background:var(--flame)}.card.warn .pip{background:var(--warn)}.card.alert .pip{background:var(--alert)}.card.alert{border-color:#e8c4b8;background:var(--alert-soft)}.card.warn{border-color:#ead9b0}.card p{font-size:15px}.card .azione{margin-top:8px}.btn{font-family:var(--font-ui);font-size:14.5px;font-weight:600;border:none;border-radius:12px;padding:11px 18px;cursor:pointer;background:var(--flame);color:#fff;transition:background .15s}.btn:hover{background:var(--flame-deep)}.btn.ghost{background:transparent;color:var(--ink-soft);border:1px solid var(--line)}.btn.ghost:hover{background:var(--bg-raised);color:var(--ink)}.btn.small{padding:7px 13px;font-size:13px;border-radius:10px}.btn.dark{background:var(--ink)}.btn.danger{background:transparent;color:var(--alert);border:1px solid #E8C4B8}.btn:disabled{opacity:.5;cursor:default}.field{margin-bottom:14px}.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-bottom:5px;letter-spacing:.02em}.field input,.field select,.field textarea{width:100%;font-family:var(--font-ui);font-size:15.5px;color:var(--ink);background:var(--bg-raised);border:1px solid var(--line);border-radius:12px;padding:11px 13px;outline:none;transition:border-color .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--flame)}.field .hint{font-size:12px;color:var(--ink-faint);margin-top:4px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 480px){.form-row{grid-template-columns:1fr}}.segment{display:flex;background:#f1e8db;border-radius:12px;padding:3px;gap:3px}.segment button{flex:1;border:none;background:transparent;padding:9px 6px;border-radius:10px;font-family:var(--font-ui);font-size:13.5px;font-weight:600;color:var(--ink-soft);cursor:pointer}.segment button.on{background:var(--bg-raised);color:var(--ink);box-shadow:0 1px 3px #2b211814}.mov-group{margin-top:20px}.mov-date{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:8px}.mov{display:flex;align-items:center;gap:12px;background:var(--bg-raised);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:8px}.mov .icona{width:36px;height:36px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center;font-size:16px}.mov.incasso .icona{background:var(--ok-soft)}.mov.uscita .icona{background:var(--flame-soft)}.mov .chi{font-weight:600;font-size:14.5px}.mov .meta{font-size:12.5px;color:var(--ink-faint)}.mov .importo{margin-left:auto;font-weight:700;font-size:15.5px;white-space:nowrap}.mov.incasso .importo{color:var(--ok)}.mov.uscita .importo{color:var(--ink)}.mov .stato-chip{font-size:11px;font-weight:600;padding:2px 8px;border-radius:99px}.stato-chip.atteso{background:var(--warn-soft);color:var(--warn)}.stato-chip.da_pagare{background:var(--alert-soft);color:var(--alert)}.nav{position:fixed;bottom:0;left:0;right:0;background:#faf5eeeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;justify-content:center;gap:4px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));z-index:50}.nav button{flex:1;max-width:130px;border:none;background:transparent;cursor:pointer;font-family:var(--font-ui);font-size:11px;font-weight:600;color:var(--ink-faint);display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;border-radius:12px}.nav button.on{color:var(--flame-deep)}.nav button svg{width:22px;height:22px}.fab{position:fixed;right:18px;bottom:calc(76px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;border:none;cursor:pointer;background:var(--flame);color:#fff;font-size:28px;line-height:1;box-shadow:0 6px 18px #c46a1459;z-index:51}.fab:hover{background:var(--flame-deep)}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2b211866;z-index:100;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--bg);width:100%;max-width:560px;border-radius:22px 22px 0 0;padding:20px 20px calc(24px + env(safe-area-inset-bottom));max-height:88vh;overflow-y:auto;animation:slideup .22s ease}@keyframes slideup{0%{transform:translateY(40px);opacity:.6}}.sheet h3{font-family:var(--font-display);font-weight:500;font-size:21px;margin-bottom:16px}.sheet .actions{display:flex;gap:10px;margin-top:18px}.sheet .actions .btn{flex:1}.auth-wrap{max-width:420px;margin:0 auto;padding:48px 22px}.auth-logo{text-align:center;margin-bottom:8px}.auth-logo .fiamma{font-size:40px}.auth-logo h1{font-family:var(--font-display);font-weight:600;letter-spacing:.18em;font-size:30px}.auth-logo .payoff{color:var(--ink-soft);font-size:14px;margin:6px 0 28px}.auth-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:20px;padding:22px}.auth-switch{text-align:center;margin-top:16px;font-size:14px;color:var(--ink-soft)}.auth-switch a{color:var(--flame-deep);font-weight:600;cursor:pointer;text-decoration:none}.ana-item{background:var(--bg-raised);border:1px solid var(--line);border-radius:14px;padding:13px 15px;margin-bottom:8px;display:flex;align-items:center;gap:12px;cursor:pointer}.ana-item .iniziali{width:38px;height:38px;border-radius:50%;background:var(--flame-soft);color:var(--flame-deep);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex:none}.ana-item .nome{font-weight:600;font-size:14.5px}.ana-item .sub{font-size:12.5px;color:var(--ink-faint)}.empty{text-align:center;color:var(--ink-faint);padding:36px 20px;font-size:14.5px}.empty .big{font-size:34px;margin-bottom:8px}.errore{background:var(--alert-soft);color:var(--alert);border-radius:12px;padding:10px 14px;font-size:14px;margin-bottom:12px}.sezione-label{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin:26px 0 10px}.skel{background:linear-gradient(90deg,#f1e8db,#faf5ee,#f1e8db);background-size:200%;animation:shimmer 1.2s infinite;border-radius:var(--radius)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.proiezione-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 8px}@media (max-width: 560px){.proiezione-grid{grid-template-columns:1fr}}.proiezione-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.proiezione-card .orizzonte{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.proiezione-card .saldo{font-family:var(--font-display);font-size:26px;font-weight:500;margin:4px 0 8px}.proiezione-card .saldo.neg{color:var(--alert)}.proiezione-card .det{font-size:12.5px;color:var(--ink-soft);line-height:1.6}.proiezione-card .det .pos{color:var(--ok);font-weight:600}.proiezione-card .det .negv{color:var(--alert);font-weight:600}.grafico{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-top:10px}.grafico .barre{display:flex;align-items:flex-end;gap:14px;height:180px;padding-top:10px}.grafico .colonna{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.grafico .coppia{display:flex;gap:4px;align-items:flex-end;flex:1;width:100%;justify-content:center}.grafico .barra{width:38%;max-width:34px;border-radius:6px 6px 2px 2px;min-height:2px}.grafico .barra.inc{background:var(--ok)}.grafico .barra.usc{background:var(--flame);opacity:.85}.grafico .mese-label{font-size:11.5px;color:var(--ink-faint);font-weight:600}.grafico .legenda{display:flex;gap:18px;margin-top:12px;font-size:12.5px;color:var(--ink-soft)}.grafico .legenda .q{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}.filtri{display:flex;gap:10px;align-items:center;margin-bottom:6px;flex-wrap:wrap}.filtri .segment{flex:none;width:auto}.filtri .segment button{padding:8px 16px;flex:none}.filtri select{font-family:var(--font-ui);font-size:13.5px;font-weight:600;color:var(--ink);background:var(--bg-raised);border:1px solid var(--line);border-radius:12px;padding:9px 12px;outline:none}
