:root{font-family:Inter,system-ui,sans-serif;color:#142637;background:#f3f6fa;line-height:1.5;color-scheme:light}
*{box-sizing:border-box}body{margin:0;display:grid;grid-template-columns:16rem minmax(0,1fr);min-height:100vh}
aside{background:#142637;color:#edf4fa;padding:2rem 1.4rem}a{color:#14588e}
aside a{text-decoration:none;color:inherit}.brand{font-size:1.42rem;font-weight:750;display:block;margin-bottom:2.2rem}.brand b{color:#8ce1d4}
nav{display:grid;gap:.35rem}nav a{padding:.58rem .7rem;border-radius:.4rem}nav a:hover,nav a[aria-current]{background:#294357}
.identity{border-top:1px solid #426075;margin-top:2rem;padding-top:1rem}.identity small{display:block;color:#bfccd8}
main{width:100%;max-width:88rem;padding:2.6rem clamp(1rem,4vw,4rem)}h1{font-size:clamp(1.7rem,3vw,2.55rem);margin:0 0 1.5rem;letter-spacing:-.045em}
h2{font-size:1.15rem;margin:0 0 .85rem}section,article{background:white;border:1px solid #dce5ed;border-radius:.8rem;padding:1.35rem;margin-bottom:1rem}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1rem}.cards strong{display:block;font-size:2rem}
label{display:block;font-weight:600;margin:.7rem 0}input,select,textarea{font:inherit;display:block;width:100%;padding:.55rem .65rem;border:1px solid #aebfcd;border-radius:.35rem;background:#fff;color:inherit}
textarea{min-height:6rem}form>label{max-width:34rem}button{font:inherit;font-weight:700;padding:.5rem .9rem;background:#15615a;color:white;border:0;border-radius:.35rem;cursor:pointer;margin-top:.5rem}
button.secondary{background:#e8f1f5;color:#19384b;margin:0}button.quiet{background:#294357}
.pill{background:#e6ebf0;border-radius:1rem;padding:.15rem .55rem;font-size:.8rem;font-weight:700;white-space:nowrap}.pill.on{background:#d4f2e9;color:#134e42}
.scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left}th,td{padding:.7rem;border-bottom:1px solid #e2e9ef;vertical-align:top;overflow-wrap:anywhere}
th{color:#405a70;font-size:.83rem}td input{min-width:9rem}.muted{color:#52677a}.people{display:flex;gap:.55rem;flex-wrap:wrap;margin-bottom:1rem}
.people a{background:#eaf1f7;padding:.25rem .55rem;border-radius:.25rem}.people .selected{background:#cfede6}
:focus-visible{outline:3px solid #14857a;outline-offset:2px}
@media(max-width:700px){body{display:block}aside{padding:1rem}.brand{margin-bottom:.6rem}nav{display:flex;flex-wrap:wrap}.identity{margin-top:.55rem;padding-top:.45rem}main{padding-top:1.45rem}section,article{padding:1rem}}
[data-map]{background:#e9f2f3;border-radius:.65rem;padding:.85rem;color:#24485e}
[data-map] svg{display:block;width:100%;max-height:24rem}
output{display:block;margin:.35rem 0;color:#405a70}
input[type=checkbox]{display:inline;width:auto}
progress{accent-color:#16795f;min-width:7rem}
summary{cursor:pointer;font-weight:650}
@media print {
  body{display:block;background:#fff}
  main{padding:0;max-width:none}
  aside,.no-print,button,a[href*="scarica=1"]{display:none}
  section{border:0;padding:0}
  tr{break-inside:avoid}
}

.demo-notice{width:fit-content;padding:.45rem .8rem;margin:0 0 1rem;border-radius:.4rem;background:#e3f1ee;color:#174d47;font-size:.9rem}
.sign-in{display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;background:#eaf1f4}
.sign-in aside{padding:1.25rem clamp(1.2rem,5vw,4rem)}
.sign-in .brand{margin:0;width:fit-content}
.sign-in main{align-self:center;justify-self:center;max-width:33rem;padding:2rem clamp(1rem,5vw,2.5rem) 4rem}
.sign-in section{padding:clamp(1rem,5vw,2rem)}
.sign-in button{width:100%;padding:.7rem}
.sign-in h1{margin-bottom:.45rem}

body.demo{display:block}
.demo-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem 1.5rem;padding:1rem clamp(1rem,4vw,3rem);background:#d4f2e9}
.demo-bar p{margin:.2rem 0}
.demo-bar label{display:flex;align-items:center;gap:.7rem}
.demo-bar select{width:auto}
#portale{display:grid;grid-template-columns:16rem minmax(0,1fr);min-height:calc(100vh - 6rem)}
#messaggio:empty{display:none}
#messaggio{flex-basis:100%;border-left:3px solid #15615a;padding:.25rem .65rem}
@media(max-width:700px){#portale{display:block}.demo-bar label{flex-wrap:wrap}}
@media print{.demo-bar{display:none}#portale{display:block}}
