:root { --fg:#1d2733; --muted:#5b6b7b; --line:#d9e0e7; --bg:#f6f8fa; --accent:#0b5cad; --ok:#1a7f4b; --bad:#b3261e; }
* { box-sizing: border-box; }
body { margin:0; font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--fg); background:var(--bg); }
a { color:var(--accent); }
header.site { background:#fff; border-bottom:1px solid var(--line); }
header.site .bar { max-width:1000px; margin:0 auto; padding:12px 16px; display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
header.site .brand { font-weight:700; text-decoration:none; color:var(--fg); margin-right:auto; }
header.site nav { display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
header.site form { display:inline; }
main { max-width:1000px; margin:24px auto; padding:0 16px; }
.card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:20px; margin-bottom:20px; }
h1 { font-size:1.6rem; margin:0 0 16px; } h2 { font-size:1.2rem; margin:0 0 12px; }
table { width:100%; border-collapse:collapse; }
th, td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
th { color:var(--muted); font-weight:600; font-size:.85rem; }
.btn, button { display:inline-block; background:var(--accent); color:#fff; border:0; border-radius:6px; padding:8px 14px; font:inherit; cursor:pointer; text-decoration:none; }
.btn.secondary, button.secondary { background:#fff; color:var(--accent); border:1px solid var(--accent); }
button.link { background:none; color:var(--accent); padding:0; text-decoration:underline; }
button.danger { background:var(--bad); }
input, select, textarea { font:inherit; padding:7px 9px; border:1px solid var(--line); border-radius:6px; max-width:100%; }
form > div, .formrow { margin-bottom:12px; }
form label { display:block; font-weight:600; margin-bottom:3px; }
.helptext { display:block; color:var(--muted); font-size:.85rem; }
.errorlist { color:var(--bad); list-style:none; padding:0; margin:4px 0; }
ul.messages { list-style:none; padding:0; }
ul.messages li { padding:10px 14px; border-radius:6px; background:#e7f3ec; border:1px solid #b7dcc6; margin-bottom:8px; }
ul.messages li.error { background:#fbeaea; border-color:#efbcb9; }
.muted { color:var(--muted); } .row { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.badge { display:inline-block; padding:2px 8px; border-radius:99px; background:#eef2f6; font-size:.8rem; }
.steps { display:flex; gap:8px; padding:0; list-style:none; flex-wrap:wrap; }
.steps li { padding:4px 10px; border-radius:99px; background:#eef2f6; font-size:.85rem; }
.steps li.on { background:var(--accent); color:#fff; }
.comune-field { position:relative; }
.comune-field input.comune-search { width:100%; max-width:420px; }
.comune-suggestions { position:absolute; z-index:10; left:0; top:100%; width:100%; max-width:420px; margin:2px 0 0; padding:0; list-style:none; background:#fff; border:1px solid var(--line); border-radius:6px; box-shadow:0 4px 12px rgba(0,0,0,.08); max-height:280px; overflow:auto; }
.comune-suggestions li { padding:7px 10px; cursor:pointer; }
.comune-suggestions li:hover, .comune-suggestions li.on { background:#eef2f6; }
.comune-suggestions li.none { color:var(--muted); cursor:default; }
ul.messages li.warning { background:#fff6e0; border-color:#ecd49a; }
