:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:#163047;background:#eef3f5;font-synthesis:none;--navy:#102d4d;--blue:#176b87;--aqua:#23a6a6;--paper:#fff;--ink:#163047;--muted:#647684;--line:#dbe4e8;--orange:#e77b35;--green:#35866a;--shadow:0 16px 42px rgba(16,45,77,.09)}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{min-height:100vh}.topbar{height:76px;background:var(--navy);color:#fff;display:flex;align-items:center;padding:0 34px;gap:24px;position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:12px;min-width:260px}.brand-mark{width:42px;height:42px;border:2px solid #fff;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#ffe38b}.brand strong{display:block}.brand small{color:#bbd0dc}.top-actions{margin-left:auto;display:flex;gap:10px;align-items:center}.icon-btn,.profile{border:1px solid #547087;background:transparent;color:#fff;border-radius:12px;padding:10px 13px}.shell{display:grid;grid-template-columns:245px 1fr;min-height:calc(100vh - 76px)}.side{background:#f9fbfc;border-right:1px solid var(--line);padding:24px 16px}.role{padding:14px;border-radius:14px;background:#e6f3f3;margin-bottom:20px}.role small{display:block;color:var(--muted)}nav button{width:100%;border:0;background:transparent;text-align:left;padding:12px 14px;margin:3px 0;border-radius:11px;color:#4a6070;font-weight:650}nav button.active{background:var(--navy);color:#fff}main{padding:34px;max-width:1380px;width:100%;margin:auto}.headline{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.headline h1{font-size:clamp(1.7rem,3vw,2.45rem);margin:0 0 5px;color:var(--navy)}.headline p{margin:0;color:var(--muted)}.primary,.secondary,.danger{border:0;border-radius:12px;padding:12px 17px;font-weight:750}.primary{background:var(--orange);color:#fff}.secondary{background:#e6f3f3;color:var(--blue)}.danger{background:#ffe9e6;color:#9b322a}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat,.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.stat{padding:20px}.stat small{color:var(--muted)}.stat strong{display:block;font-size:2rem;margin-top:8px;color:var(--navy)}.grid{display:grid;grid-template-columns:1.55fr 1fr;gap:20px}.card{padding:22px}.card h2{font-size:1.15rem;margin:0;color:var(--navy)}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.requests{display:grid;gap:12px}.request{border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}.datebox{width:55px;text-align:center;background:#edf5f7;border-radius:12px;padding:8px;color:var(--blue);font-weight:800}.request h3{margin:0 0 4px;font-size:1rem}.request p{margin:0;color:var(--muted);font-size:.9rem}.badge{font-size:.78rem;padding:6px 9px;border-radius:99px;font-weight:750;background:#fff0df;color:#985314}.badge.assegnata{background:#e4f2ff;color:#25608b}.badge.completata{background:#e4f5ed;color:#26654f}.timeline{list-style:none;padding:0;margin:0}.timeline li{border-left:2px solid #cde2e5;padding:0 0 20px 18px;position:relative;color:var(--muted)}.timeline li:before{content:"";position:absolute;left:-6px;top:4px;width:10px;height:10px;background:var(--aqua);border-radius:50%}.timeline strong{display:block;color:var(--ink);font-size:.93rem}.empty{padding:34px;text-align:center;color:var(--muted)}dialog{border:0;border-radius:20px;padding:0;width:min(660px,calc(100% - 28px));box-shadow:0 24px 80px #00000040}dialog::backdrop{background:#07192a8c}.modal{padding:26px}.modal h2{margin-top:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-weight:700;font-size:.9rem}.field input,.field select,.field textarea{border:1px solid #cbd8dd;border-radius:10px;padding:11px;background:#fff;min-width:0}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.view{display:none}.view.active{display:block}#toast{position:fixed;right:20px;bottom:20px;background:var(--navy);color:#fff;border-radius:12px;padding:13px 17px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none;z-index:20}#toast.show{opacity:1;transform:none}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:13px;border-bottom:1px solid var(--line);white-space:nowrap}.table th{font-size:.8rem;text-transform:uppercase;color:var(--muted)}@media(max-width:900px){.shell{grid-template-columns:1fr}.side{padding:10px;overflow:auto;border-right:0;border-bottom:1px solid var(--line)}.role{display:none}nav{display:flex;min-width:max-content}nav button{width:auto}.stats{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}main{padding:24px}.brand{min-width:0}.brand small{display:none}}@media(max-width:560px){.topbar{height:68px;padding:0 16px}.profile{display:none}.headline{align-items:flex-start}.headline .primary{white-space:nowrap;padding:10px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:15px}.stat strong{font-size:1.55rem}.request{grid-template-columns:auto 1fr}.request .badge{grid-column:2}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}main{padding:18px}.card{padding:17px}}.volunteer-fields{grid-column:1/-1;border:1px solid var(--line);background:#f7fafb;border-radius:14px;padding:16px}.volunteer-fields h3{margin:0 0 12px;color:var(--navy)}.days,.checks{display:flex;flex-wrap:wrap;gap:10px 18px;margin:10px 0 16px}.days label,.checks label,.privacy-check{display:flex;align-items:flex-start;gap:7px;color:var(--ink);font-size:.92rem}.privacy-check{margin:16px 0}.help,.field small{color:var(--muted);font-size:.84rem}.admin-record-form{max-height:86vh;overflow:auto}.person-record-form{max-height:88vh;overflow:auto}.person-record-form details{border:1px solid var(--line);border-radius:12px;margin:12px 0;background:#fbfcfd}.person-record-form summary{cursor:pointer;font-weight:800;color:var(--navy);padding:14px}.person-record-form details>.form-grid{padding:0 14px 16px}.person-record-form .modal-actions{position:sticky;bottom:-26px;background:#fff;padding:14px 0 20px;border-top:1px solid var(--line)}.danger{border:1px solid #b42318;background:#fff;color:#b42318;border-radius:9px;padding:8px 12px;font-weight:700}.danger:hover{background:#fff1f0}dialog#manage-event{width:min(1220px,94vw)}.event-manager{max-height:90vh;overflow:auto}.event-tools{display:grid;grid-template-columns:1fr 1fr 220px auto;gap:10px;margin:16px 0}.event-tools input,.event-tools select,.event-table input,.event-table select{border:1px solid #cbd8dd;border-radius:9px;padding:8px;background:#fff}.event-table td{vertical-align:middle}.event-table input[type=datetime-local]{min-width:180px}@media(max-width:800px){.event-tools{grid-template-columns:1fr}.event-manager{width:96vw;padding:18px}}.event-create-form{max-height:88vh;overflow:auto}.event-create-form .modal-actions{position:sticky;bottom:-26px;background:#fff;padding:14px 0 20px;border-top:1px solid var(--line)}.form-error{margin-top:14px;padding:12px 14px;border:1px solid #d92d20;border-radius:10px;background:#fff1f0;color:#8a1c13;font-weight:700;white-space:normal}.diary-card{margin-top:16px}.diary-card h3{margin:0;color:var(--navy)}.diary-card p{margin:4px 0 0;color:var(--muted)}.diary-editor{border:1px solid var(--line);border-radius:14px;background:#f7fafb;padding:16px;margin-bottom:16px}.diary-editor-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.diary-filters{display:flex;gap:12px;margin:12px 0}.diary-table .diary-note{white-space:pre-wrap;min-width:260px;max-width:520px}.compact{padding:7px 10px;font-size:.82rem}@media(max-width:700px){.diary-card .card-head{align-items:flex-start;gap:12px}.diary-filters{display:grid;grid-template-columns:1fr 1fr}}.auth-page{min-height:100vh;max-width:none;padding:0;display:grid;grid-template-columns:1.1fr .9fr;background:#fff}.auth-brand{background:linear-gradient(145deg,#0d2948,#176b87);color:#fff;padding:clamp(42px,8vw,110px);display:flex;flex-direction:column;justify-content:center}.auth-brand .brand-mark{width:70px;height:70px;margin-bottom:28px}.auth-brand h1{font-size:clamp(2.4rem,5vw,4.8rem);line-height:1.02;max-width:720px;margin:10px 0 24px}.auth-brand p{max-width:600px;font-size:1.1rem;line-height:1.6;color:#d8e8ee}.auth-card{align-self:center;width:min(470px,calc(100% - 40px));margin:auto;padding:34px;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.auth-card h2{font-size:2rem;color:var(--navy);margin:0 0 8px}.auth-card>p{color:var(--muted);line-height:1.5;margin-bottom:25px}.auth-card .field{margin-bottom:15px}.auth-submit{width:100%;margin-top:7px}.auth-links{display:flex;justify-content:space-between;margin-top:18px;gap:12px}.auth-links button,.demo-link{border:0;background:transparent;color:var(--blue);padding:4px 0}.demo-link{width:100%;margin-top:24px;border-top:1px solid var(--line);padding-top:18px}.loading{min-height:100vh;display:grid;place-items:center;color:var(--navy);font-weight:700}.pending{max-width:700px;margin:10vh auto;padding:40px}.pending h1{color:var(--navy)}.help{color:var(--muted);font-size:.9rem}@media(max-width:900px){.auth-page{grid-template-columns:1fr}.auth-brand{padding:40px;min-height:34vh}.auth-brand h1{font-size:2.5rem}.auth-card{margin:30px auto}}
