/* Palette del progetto originale: grigio #4a4a4a, blu #34495e / #2c3e50, azzurro #3498db. */
:root{font-size:18px;--bg:#4a4a4a;--panel:#34495e;--nav:#2c3e50;--ink:#ecf0f1;--muted:#d6e0e8;--line:#8194a5;--accent:#3498db;--action:#216b9c;--focus:#ffe08a;color-scheme:dark}
:root.large-text{font-size:22px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:1rem;line-height:1.6}button,input,select,textarea{font:inherit}button{cursor:pointer;border:2px solid transparent;border-radius:8px;font-weight:700;min-height:52px;padding:12px 18px;line-height:1.35}button:disabled{opacity:.65;cursor:wait}button:hover{filter:brightness(1.12)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:4px solid var(--focus);outline-offset:4px}input,select,textarea{border:2px solid #8a9ead;border-radius:7px;background:#fff;color:#172d40;padding:12px;min-height:52px;max-width:100%}input::placeholder,textarea::placeholder{color:#586978;opacity:1}a{color:inherit}.skip-link{position:fixed;top:-200px;left:16px;z-index:10;padding:14px;background:#fff;color:#172d40;font-weight:700}.skip-link:focus{top:12px}.sidebar{width:250px;position:fixed;inset:0 auto 0 0;background:var(--nav);padding:28px 18px;display:flex;flex-direction:column;border-right:1px solid #8194a5;overflow-y:auto}.brand{font-size:2rem;font-weight:700;text-decoration:none;display:flex;align-items:center;gap:12px}.logo{background:var(--accent);color:#112c40;border-radius:10px;width:52px;height:52px;display:grid;place-items:center;font-size:2rem}.dot{color:#75c9ff}.workspace{margin:28px 0 18px;font-size:.9rem;color:var(--muted)}.workspace div{font-size:1rem;font-weight:bold;margin-top:8px}.workspace span{display:none}.nav{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:transparent;color:var(--ink);margin:8px 0;white-space:normal}.nav.active{background:var(--accent);color:#102b3e;border-color:#d5edff}.side-bottom{margin-top:auto;padding-top:30px;color:var(--muted);font-size:.9rem}.side-bottom small{display:block;font-size:inherit}.small-mark{display:none}main{margin-left:250px;padding:0 32px;max-width:1800px;min-width:0}header{padding:20px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.breadcrumb{color:var(--muted)}.breadcrumb span{margin-left:10px}.header-tools{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.today{text-transform:capitalize;font-size:.9rem}.heading{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:30px 0}.eyebrow{font-size:.85rem;font-weight:700;color:var(--muted);letter-spacing:.04em}h1{font-size:2rem;line-height:1.25;margin:10px 0}h2{font-size:1.4rem;line-height:1.35;margin:0}h3{font-size:1.2rem}p{color:var(--muted);margin:10px 0}.primary{background:var(--action);color:#fff;border-color:#93d2fa}.secondary,.row-open{background:#edf5fc;color:#183d58;border-color:#afc9de}.heading>.primary{flex-shrink:0}.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:28px}.metrics article{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:24px}.metrics article>div{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:700}.metrics strong{display:block;font-size:2rem;line-height:1.4;margin:10px 0;overflow-wrap:anywhere}.metrics small{font-size:.9rem;color:var(--muted)}.metrics .pending{border-left:6px solid #ffd478}.metric-icon{font-size:1.4rem}.chart-panel,.register{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:26px;margin-bottom:28px;min-width:0}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.panel-title p{margin-bottom:0}.year-label{display:flex;align-items:center;gap:12px;font-weight:700}.year-label input{width:130px}.legend{display:flex;justify-content:flex-end;gap:24px;margin:20px 0 10px;flex-wrap:wrap}.legend i{display:inline-block;width:18px;height:18px;margin-right:10px;border:1px solid white}.green-bg{background:#8dd9fe}.orange-bg{background:#ffd478}.chart{height:300px;width:100%;overflow-x:auto}.chart svg{width:100%;min-width:650px;height:100%}.chart-data summary{cursor:pointer;padding:12px 4px;min-height:52px;text-decoration:underline;font-weight:bold}.chart-data table{width:100%;border-collapse:collapse;margin-top:15px}.chart-data th,.chart-data td{padding:12px;border-bottom:1px solid var(--line);text-align:left}.count{color:var(--muted)}.toolbar{display:flex;gap:22px;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;padding:22px 0;border-bottom:1px solid var(--line)}.tabs{display:flex;gap:10px;flex-wrap:wrap}.tabs button{background:var(--nav);color:var(--ink);border-color:#8ea5b9}.tabs .selected{background:var(--accent);color:#102b3e;border-color:#e0f3ff;box-shadow:inset 0 -4px #102b3e}.search-label{display:flex;flex-direction:column;gap:6px;font-weight:bold}input[type=search]{width:290px;max-width:100%}.table-wrap{overflow-x:auto}.movements{width:100%;border-collapse:collapse;text-align:left}.movements th{font-size:.85rem;padding:18px 12px;border-bottom:2px solid var(--line)}.movements td{padding:22px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.item-title{font-size:1.05rem;font-weight:700;overflow-wrap:anywhere}.item-category{color:var(--muted);font-size:.9rem;margin-top:8px}.amount{font-size:1.1rem;font-weight:bold;white-space:nowrap}.progress-text{white-space:nowrap}.progress{width:140px;max-width:100%;height:12px;background:var(--nav);border:1px solid #9db3c7;border-radius:10px;margin-top:10px}.progress>div{height:100%;background:#8dd9fe;border-radius:10px}.badge{display:inline-block;border-radius:6px;padding:7px 10px;background:#ffdf93;color:#473305;font-weight:bold;white-space:nowrap}.badge.paid{background:#d5f1da;color:#1d4a2a}.badge.ongoing{background:#bce4ff;color:#153f5b}.late{color:#ffe08a;font-weight:bold;margin-top:8px}.empty{text-align:center;padding:32px 10px}.empty>div{display:none}.empty p{max-width:650px;margin:12px auto 24px}footer{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.9rem;color:var(--muted);padding-bottom:28px}dialog{width:min(760px,94vw);max-height:92vh;border:2px solid #a5baca;border-radius:14px;padding:30px;background:var(--panel);color:var(--ink);box-shadow:0 20px 80px #0008;overflow-y:auto}dialog::backdrop{background:#000b}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.dialog-heading h2{margin-top:6px}.close{background:#edf5fc;color:#183d58;flex-shrink:0}form label{display:block;font-weight:700;margin-bottom:20px}form input,form select,form textarea{display:block;width:100%;margin-top:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.checkbox{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid var(--line);border-radius:8px}.checkbox input{width:28px;height:28px;min-height:28px;margin:0;flex-shrink:0;accent-color:var(--accent)}.form-hint{font-size:.95rem;padding:12px 0}.wide{width:100%}.form-error{color:#ffe08a;font-weight:bold}.detail-summary{padding:20px;background:var(--nav);border:1px solid var(--line);border-radius:8px;font-size:1.1rem}.part{padding:24px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:16px}.part small{display:block;font-size:1rem;color:var(--muted);margin-top:8px}.part-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.part-date{display:flex;flex-direction:column;gap:6px;font-weight:700}.part input{max-width:220px}.danger{background:#ffe4dc;color:#722a19;border-color:#ffb7a3;margin-top:24px}#notice{padding:18px;background:#e2f3ff;color:#173d56;border:2px solid #3498db;border-radius:8px;margin-bottom:24px;font-weight:700}[hidden]{display:none!important}.cell-label{display:none}@media(min-width:1550px){.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1250px){.sidebar{position:static;width:100%;padding:18px 24px;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:1.7rem}.workspace,.side-bottom{display:none}nav{display:flex;flex-wrap:wrap;gap:12px;margin-top:15px}.nav{width:auto;margin:0;flex:1;min-width:180px;justify-content:center}main{margin-left:0;padding:0 24px}.movements thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.movements,.movements tbody{display:block}.movements tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;padding:24px 0;border-bottom:2px solid var(--line)}.movements td{display:block;padding:0;border:0;min-width:0}.movements td:first-child,.movements td:last-child{grid-column:1/-1}.cell-label{display:block;font-size:.9rem;color:var(--muted);margin-bottom:5px;font-weight:700}.row-open{width:100%}.table-wrap{overflow:visible}}@media(max-width:650px){.sidebar{padding:16px}nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.nav{min-width:0;padding:12px 8px;gap:6px}.nav span{font-size:.95rem}main{padding:0 16px}header{gap:12px}.header-tools{gap:12px}.heading{display:block;padding:24px 0}h1{font-size:1.7rem}.heading>.primary{width:100%;margin-top:14px}.metrics{grid-template-columns:1fr;gap:14px}.metrics article{padding:20px}.chart-panel,.register{padding:20px 16px}.toolbar{align-items:stretch}.tabs{display:grid;grid-template-columns:1fr 1fr;width:100%}.search-label,input[type=search]{width:100%}.panel-title{gap:14px}.movements tr{grid-template-columns:1fr}.movements td:first-child,.movements td:last-child{grid-column:auto}.form-grid{grid-template-columns:1fr}dialog{padding:22px 18px}.dialog-heading{flex-wrap:wrap}.part-controls{align-items:stretch;flex-direction:column}.part input{width:100%;max-width:100%}.part button{width:100%}.legend{justify-content:flex-start}.chart-data{overflow:auto}.today{max-width:none}.eyebrow{letter-spacing:0}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Accesso personale e guida, con gli stessi colori e controlli grandi. */
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:30px 18px}.auth-card{width:min(560px,100%);background:var(--panel);padding:32px;border:1px solid var(--line);border-radius:14px}.auth-card .brand{font-size:2rem}.auth-card form{margin-top:25px}.auth-tabs{display:flex;gap:16px;margin-top:25px}.auth-tabs button{flex:1}.auth-tabs [aria-pressed=true]{outline:3px solid #8dd9fe;outline-offset:3px}.auth-note{border-top:1px solid var(--line);padding-top:15px}.environment-banner{padding:16px 24px;background:#ffdf93;color:#473305;text-align:center;font-weight:bold}#account-name{font-weight:700}#app-screen[hidden]{display:none}.guide-dialog{position:fixed;margin:0;padding:0;background:transparent;border:0;max-height:calc(100dvh - 24px);overflow:visible;box-shadow:none;z-index:100}.guide-dialog::backdrop{background:transparent}.guide-card{position:relative;background:var(--panel);border:3px solid #ffe08a;border-radius:12px;padding:22px;box-shadow:0 8px 40px #0008;max-height:calc(100dvh - 24px);overflow:auto}.guide-card .dialog-heading{gap:12px;flex-wrap:wrap;margin-bottom:15px}.guide-card p{color:#fff}.guide-buttons{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap}.guide-hint{font-size:.85rem}#guide-halo{position:fixed;border:4px solid #ffe08a;border-radius:12px;box-shadow:0 0 0 9999px #000b,0 0 22px 5px #ffe08a99;pointer-events:none}#guide-arrow{position:fixed;font-size:2rem;color:#ffe08a;text-shadow:0 2px 3px #000;pointer-events:none}.guide-dialog[open] .guide-card{animation:guide-enter .15s ease-out}@keyframes guide-enter{from{opacity:.4}to{opacity:1}}@media(max-width:650px){.auth-card{padding:24px 18px}.header-tools{width:100%}.header-tools button{flex:1}.guide-card{padding:18px}.guide-buttons button{flex:1}.guide-card p{font-size:.95rem}}@media(prefers-reduced-motion:reduce){.guide-dialog[open] .guide-card{animation:none}}
