@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Karla:wght@400;500;600;700&display=swap";:root{--bg:#fbf6ee;--surface:#fff;--surface-2:#f3eadc;--border:#e4d8c6;--ink:#2b2118;--ink-soft:#6e5f4f;--ink-faint:#9c8b78;--accent:#c1553a;--accent-ink:#fff8f1;--gold:#b87f1e;--sage:#5f7452;--rose:#b96b6b;--good:#3f6b45;--good-bg:#e4eedf;--warn:#9c6a11;--warn-bg:#faefd6;--bad:#a3392e;--bad-bg:#fae4e0;--chip-bg:#efe4d2;--chip-ink:#5b4a38;--shadow:0 1px 2px #2b21180f, 0 6px 20px -8px #2b21182e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#19140f;--surface:#241d16;--surface-2:#2b231a;--border:#3b3123;--ink:#f2e8d9;--ink-soft:#c7b79e;--ink-faint:#8f8069;--accent:#e2825f;--accent-ink:#241205;--gold:#e0ac4c;--sage:#8ca37b;--rose:#d08b8b;--good:#84b677;--good-bg:#213321;--warn:#e3b458;--warn-bg:#392c13;--bad:#e28b7e;--bad-bg:#3a211c;--chip-bg:#352c1f;--chip-ink:#d8c7ac;--shadow:0 1px 2px #0000004d, 0 6px 20px -8px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{touch-action:pan-x pan-y}body{background:var(--bg);color:var(--ink);touch-action:pan-x pan-y;font-family:Karla,ui-sans-serif,system-ui,sans-serif;font-size:15px;line-height:1.5}h1,h2,h3{text-wrap:balance;margin:0;font-family:Fraunces,Georgia,serif}::selection{background:var(--accent);color:var(--accent-ink)}button{font-family:inherit}input,select{color:var(--ink);font-family:inherit;font-size:14px}a{color:var(--accent)}.wrap{max-width:900px;margin:0 auto;padding-inline:16px}header.top{z-index:10;background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0}.hero{flex-wrap:wrap;align-items:center;gap:16px;padding-block:22px 14px;display:flex}.numeral{background:linear-gradient(155deg, var(--accent), var(--gold));width:64px;height:64px;color:var(--accent-ink);box-shadow:var(--shadow);border-radius:18px;flex:none;justify-content:center;align-items:center;font-family:Fraunces,serif;font-size:34px;font-weight:700;display:flex}.hero-text{flex:220px;min-width:0}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin:0 0 2px;font-size:11.5px;font-weight:600}.hero-text h1{font-size:26px;font-weight:600}.party-fields{color:var(--ink-soft);flex-wrap:wrap;gap:10px 18px;margin-top:6px;font-size:13.5px;display:flex}.party-fields label{align-items:center;gap:6px;display:flex}.party-fields input{border:none;border-bottom:1px dashed var(--border);color:var(--ink-soft);background:0 0;min-width:0;padding:2px 1px}.party-fields input:focus{border-bottom-color:var(--accent);color:var(--ink);outline:none}.party-fields input[type=date]{width:132px}.party-fields input[type=text].loc{width:180px}.header-actions{align-items:center;gap:8px;display:flex}.logout-link{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;padding:4px;font-size:12.5px;text-decoration:underline}nav.tabs{flex-wrap:wrap;gap:4px;padding-block:10px;display:flex}nav.tabs button{border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:8px 14px;font-size:13.5px;font-weight:600}nav.tabs button.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}main.content{padding-block:20px 60px}.stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:18px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:12px 14px}.stat .n{font-variant-numeric:tabular-nums;font-family:Fraunces,serif;font-size:26px;font-weight:600}.stat .l{color:var(--ink-soft);margin-top:2px;font-size:12px}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;margin-bottom:16px;padding:16px}.card h2{margin-bottom:12px;font-size:16px;font-weight:600}.card h2 small{color:var(--ink-faint);font-family:Karla;font-size:12px;font-weight:500}.form-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));align-items:end;gap:10px;display:grid}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field label{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em;font-size:11.5px;font-weight:600}.field input,.field select{background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--ink);border-radius:9px;padding:8px 10px}.field input:focus,.field select:focus{outline:2px solid var(--accent);outline-offset:1px}.field-error{color:var(--bad);margin-top:2px;font-size:11.5px}.btn{cursor:pointer;background:var(--accent);color:var(--accent-ink);border:none;border-radius:9px;padding:9px 16px;font-size:13.5px;font-weight:700}.btn:hover{filter:brightness(1.06)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.ghost{border:1px solid var(--border);color:var(--ink-soft);background:0 0}.btn.danger{background:var(--bad);color:#fff8f1}.btn.small{padding:6px 12px;font-size:12.5px}.icon-btn{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;font-size:16px;line-height:1;display:flex}.icon-btn:hover{background:var(--bad-bg);color:var(--bad)}.list{flex-direction:column;gap:8px;display:flex}.row{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.row .name-input{color:var(--ink);background:0 0;border:none;flex:140px;min-width:110px;padding:2px 0;font-size:14.5px;font-weight:600}.row .name-input:focus{border-bottom:1px solid var(--accent);outline:none}.row .name-display{color:var(--ink);flex:140px;font-size:14.5px;font-weight:600}.row.selectable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s,border-color .15s,box-shadow .15s}.row.selectable:hover{border-color:var(--accent)}.row.selectable.selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--surface));box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent)}.members-preview{flex-basis:100%;font-style:italic}.members-panel{border-top:1px dashed var(--border);flex-direction:column;flex-basis:100%;gap:6px;margin-top:4px;padding-top:10px;display:flex}.member-row{align-items:center;gap:8px;display:flex}.search-input{background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--ink);border-radius:10px;margin-bottom:12px;padding:9px 12px;font-size:14px}.search-input:focus{outline:2px solid var(--accent);outline-offset:1px}.table-scroll{overflow-x:auto}.guest-stats-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.guest-stats-table th,.guest-stats-table td{text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 10px}.guest-stats-table th:first-child,.guest-stats-table td:first-child{text-align:left;color:var(--ink-soft);font-weight:600}.guest-stats-table thead th{text-transform:uppercase;letter-spacing:.03em;color:var(--ink-faint);border-bottom:2px solid var(--border);font-size:11px;font-weight:700}.guest-stats-table tbody tr:last-child td{border-bottom:none}.guest-stats-table tr.total-row td{color:var(--ink);font-weight:700}.guest-stats-table tr.total-row{background:var(--surface-2)}.guest-stats-table tr.clickable-row{cursor:pointer}.guest-stats-table tr.clickable-row:hover td{background:color-mix(in srgb, var(--accent) 8%, transparent)}.guest-stats-table tr.clickable-row.active td{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent)}.guest-stats-table tr.clickable-row.active td:first-child{font-weight:700}.stat.clickable{cursor:pointer;transition:border-color .15s,background .15s}.stat.clickable:hover{border-color:var(--accent)}.stat.clickable.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--surface))}.stat.clickable.active .n{color:var(--accent)}.active-filter{background:color-mix(in srgb, var(--accent) 15%, var(--chip-bg));color:var(--accent);border-radius:999px;align-items:center;gap:6px;margin-bottom:12px;padding:5px 6px 5px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.row .sub{color:var(--ink-faint);flex:none;font-size:12px}.row .mini-input{background:var(--surface-2);border:1px solid var(--border);color:var(--ink-soft);text-align:center;border-radius:7px;width:56px;padding:4px 6px;font-size:12.5px}.row .mini-input.wide{text-align:left;width:130px}.row select.pill{cursor:pointer;border:none;border-radius:999px;padding:5px 10px 5px 12px;font-size:12px;font-weight:700}.chip{background:var(--chip-bg);color:var(--chip-ink);border-radius:999px;flex:none;padding:4px 10px;font-size:11.5px;font-weight:700}.chip.famiglia{background:color-mix(in srgb, var(--accent) 22%, var(--chip-bg));color:var(--accent)}.chip.amici{background:color-mix(in srgb, var(--gold) 26%, var(--chip-bg));color:var(--gold)}.chip.colleghi{background:color-mix(in srgb, var(--sage) 26%, var(--chip-bg));color:var(--sage)}.chip.vicini{background:color-mix(in srgb, var(--rose) 26%, var(--chip-bg));color:var(--rose)}.chip.side-moglie{background:color-mix(in srgb, var(--rose) 30%, var(--chip-bg));color:var(--rose)}.chip.side-marito{background:color-mix(in srgb, var(--sage) 30%, var(--chip-bg));color:var(--sage)}.chip.side-entrambi{background:color-mix(in srgb, var(--gold) 30%, var(--chip-bg));color:var(--gold)}.chip.economico{background:var(--good-bg);color:var(--good)}.chip.materiale{background:var(--warn-bg);color:var(--warn)}.status-da_invitare{background:var(--chip-bg);color:var(--chip-ink)}.status-invitato{background:var(--warn-bg);color:var(--warn)}.status-confermato{background:var(--good-bg);color:var(--good)}.status-non_partecipa{background:var(--bad-bg);color:var(--bad)}.row.done{opacity:.55}.row.done .name-input{text-decoration:line-through}.check{width:19px;height:19px;accent-color:var(--accent);cursor:pointer;flex:none}.empty{text-align:center;color:var(--ink-soft);border:1px dashed var(--border);background:var(--surface-2);border-radius:14px;padding:36px 16px}.empty .big{color:var(--ink);margin-bottom:4px;font-family:Fraunces,serif;font-size:17px}.budget-summary{flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:6px;display:flex}.budget-summary .stat{box-shadow:none;background:0 0;border:none;padding:0}.budget-cap-field{color:var(--ink-soft);align-items:center;gap:6px;font-size:12.5px;display:flex}.budget-cap-field input{width:96px}.bar{background:var(--surface-2);border-radius:999px;height:9px;margin-top:10px;position:relative;overflow:hidden}.bar .fill{height:100%;transition:width .3s;position:absolute;top:0;left:0}.bar .fill.estimated{background:color-mix(in srgb, var(--gold) 45%, transparent)}.bar .fill.actual{background:var(--good)}.bar.warn .fill.actual{background:var(--warn)}.bar.bad .fill.actual{background:var(--bad)}.banner{background:var(--bad-bg);color:var(--bad);border-radius:10px;margin-bottom:14px;padding:9px 12px;font-size:12.5px}footer.credit{text-align:center;color:var(--ink-faint);padding-bottom:24px;font-size:11.5px}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;background:#140e0880;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:340px;box-shadow:var(--shadow);text-align:center;border-radius:18px;padding:26px 24px}.modal-icon{background:var(--bad-bg);width:42px;height:42px;color:var(--bad);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 12px;font-size:18px;font-weight:700;display:flex}.modal-card h3{margin-bottom:6px;font-size:17px}.modal-card p{color:var(--ink-soft);margin:0 0 20px;font-size:13.5px}.modal-actions{gap:10px;display:flex}.modal-actions .btn{flex:1}.list-toolbar{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:10px;font-size:12.5px;display:flex}.list-toolbar .select-all{cursor:pointer;align-items:center;gap:6px;display:flex}.bulk-actions{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;flex-wrap:wrap;align-items:center;gap:8px;padding:5px 6px 5px 12px;display:flex}.bulk-actions select{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:5px 10px;font-size:12.5px}.login-screen{justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:340px;box-shadow:var(--shadow);text-align:center;border-radius:20px;padding:28px 26px}.login-card .numeral{margin:0 auto 14px}.login-card h1{margin-bottom:4px;font-size:22px}.login-card p.sub{color:var(--ink-soft);margin:0 0 18px;font-size:13.5px}.login-card input{background:var(--surface-2);border:1px solid var(--border);text-align:center;border-radius:10px;width:100%;margin-bottom:12px;padding:11px 12px;font-size:15px}.login-card .btn{width:100%}.login-error{color:var(--bad);margin:-4px 0 12px;font-size:12.5px}@media (width<=520px){.hero{gap:12px}.numeral{border-radius:14px;width:52px;height:52px;font-size:27px}.hero-text h1{font-size:21px}.row .mini-input.wide{width:100px}.guest-stats-table{font-size:11px}.guest-stats-table th,.guest-stats-table td{padding:6px 4px}.guest-stats-table thead th{font-size:9px}.card{padding:12px}}
