:root{
  --bg:#f6f3ec;
  --paper:#ffffff;
  --paper-2:#fbfaf6;
  --text:#1f2421;
  --muted:#6f736d;
  --border:#e4ded2;
  --brand:#536f2e;
  --brand-dark:#2f461f;
  --brand-soft:#eef3e5;
  --accent:#a8772a;
  --accent-dark:#815819;
  --danger:#b42318;
  --warn:#a15c07;
  --ok:#067647;
  --shadow:0 20px 45px rgba(31,36,33,.08);
  --radius:20px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text);line-height:1.55;font-size:16px}
a{color:var(--brand-dark);text-decoration:none}a:hover{text-decoration:underline}
.site-kicker{background:#2f461f;color:#fff;font-size:.9rem;padding:8px 0}.site-kicker .inner{max-width:1180px;margin:0 auto;padding:0 22px;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.site-kicker a{color:#fff}.site-header{background:#fff;border-bottom:1px solid var(--border);position:relative;z-index:2}.site-header .inner{max-width:1180px;margin:0 auto;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{display:flex;align-items:center;gap:14px;color:var(--text)}.brand:hover{text-decoration:none}.brand-mark{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--accent));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;letter-spacing:.5px;box-shadow:0 8px 24px rgba(83,111,46,.24)}.brand-name{font-size:1.05rem;font-weight:800;line-height:1.15;text-transform:uppercase;letter-spacing:.02em}.brand-sub{display:block;font-size:.76rem;font-weight:600;color:var(--muted);text-transform:none;letter-spacing:0;margin-top:3px}.site-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.site-nav a{color:var(--text);font-size:.92rem;font-weight:700;padding:9px 10px;border-radius:999px}.site-nav a:hover{background:var(--brand-soft);text-decoration:none}.site-nav .admin-link{background:var(--brand);color:#fff}.site-nav .admin-link:hover{background:var(--brand-dark);color:#fff}.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(47,70,31,.96),rgba(83,111,46,.88)),radial-gradient(circle at 80% 25%,rgba(168,119,42,.45),transparent 34%);color:#fff}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.18),rgba(0,0,0,0));pointer-events:none}.hero .inner{position:relative;max-width:1180px;margin:0 auto;padding:74px 22px 82px}.hero h1{max-width:820px;margin:0;font-size:clamp(2.05rem,5vw,4.1rem);line-height:1.02;letter-spacing:-.035em}.hero p{max-width:760px;font-size:1.18rem;margin:22px 0 0;color:rgba(255,255,255,.9)}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.wrap{max-width:1180px;margin:34px auto;padding:0 22px}.section-title{font-size:.82rem;text-transform:uppercase;letter-spacing:.16em;color:var(--accent);font-weight:900;margin-bottom:10px}.card{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);margin-bottom:22px}.card.soft{background:var(--paper-2)}.card h1,.card h2,.card h3{margin-top:0;letter-spacing:-.02em}.card h1{font-size:2rem}.card h2{font-size:1.45rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}.feature{padding:22px;border:1px solid var(--border);border-radius:18px;background:#fff}.feature strong{display:block;font-size:1.05rem;margin-bottom:8px}.feature .icon{width:38px;height:38px;border-radius:14px;background:var(--brand-soft);color:var(--brand-dark);display:flex;align-items:center;justify-content:center;font-weight:900;margin-bottom:13px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;background:var(--brand);color:#fff;text-decoration:none;padding:12px 20px;font-weight:800;cursor:pointer;box-shadow:0 9px 20px rgba(83,111,46,.2);transition:.16s ease}.btn:hover{background:var(--brand-dark);color:#fff;text-decoration:none;transform:translateY(-1px)}.btn.secondary{background:#fff;color:var(--brand-dark);border:1px solid var(--border);box-shadow:none}.btn.secondary:hover{background:var(--brand-soft)}.btn.danger{background:var(--danger)}.btn.warn{background:var(--warn)}.btn.small{padding:7px 12px;border-radius:999px;font-size:.9rem}.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.5);box-shadow:none;color:#fff}.btn.ghost:hover{background:rgba(255,255,255,.12)}label{display:block;font-weight:800;margin:14px 0 7px;color:#28311f}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:14px;padding:12px 13px;background:#fff;font-size:1rem;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(83,111,46,.13)}textarea{min-height:120px;resize:vertical}.help,.muted{color:var(--muted);font-size:.94rem}.hp{position:absolute;left:-9999px}.checkline{display:flex;gap:12px;align-items:flex-start;background:var(--paper-2);border:1px solid var(--border);border-radius:16px;padding:14px;margin-top:18px}.checkline input{width:auto;margin-top:6px}.flash{border-radius:16px;padding:13px 16px;margin-bottom:16px;border:1px solid transparent}.flash.ok{background:#dcfae6;color:var(--ok);border-color:#a7f3d0}.flash.ko{background:#fee4e2;color:var(--danger);border-color:#fecaca}.flash.warn{background:#fef0c7;color:var(--warn);border-color:#fde68a}.topbar{background:linear-gradient(135deg,var(--brand-dark),var(--brand));color:#fff;padding:18px 24px}.topbar a{color:#fff}.adminbar{background:#26331b;color:#fff}.adminbar .inner{max-width:1180px;margin:0 auto;padding:16px 22px;display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}.adminbar strong{font-size:1.08rem}.adminbar a{color:#fff}.admin-user{color:rgba(255,255,255,.78);font-size:.93rem}.nav{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}.nav a{background:#fff;border:1px solid var(--border);border-radius:999px;padding:9px 13px;text-decoration:none;color:var(--text);font-weight:800;font-size:.93rem}.nav a:hover{background:var(--brand-soft);color:var(--brand-dark)}.actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden}th,td{border-bottom:1px solid var(--border);padding:12px;text-align:left;vertical-align:top}tr:last-child td{border-bottom:0}th{background:#f2efe7;color:#2f461f;font-size:.86rem;text-transform:uppercase;letter-spacing:.055em}.badge{display:inline-block;border-radius:999px;padding:4px 10px;font-size:.84rem;font-weight:900}.badge.ok{background:#dcfae6;color:var(--ok)}.badge.ko{background:#fee4e2;color:var(--danger)}.badge.warn{background:#fef0c7;color:var(--warn)}.badge.pending{background:#e8f0dc;color:var(--brand-dark)}.kpi{font-size:2.3rem;font-weight:900;color:var(--brand-dark);letter-spacing:-.04em}.login-shell{min-height:100vh;display:grid;place-items:center;padding:26px;background:linear-gradient(135deg,#f6f3ec,#e8eadc)}.login-card{width:100%;max-width:470px}.footer{background:#2b2f28;color:#e9eadf;margin-top:48px}.footer .inner{max-width:1180px;margin:0 auto;padding:34px 22px;display:grid;grid-template-columns:2fr 1fr;gap:22px}.footer a{color:#fff}.footer small{color:#c9cbbf}.notice-strip{margin-top:-34px;position:relative;z-index:2}.notice-strip .card{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.step{display:flex;gap:13px}.step b{width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center}.page-heading{margin-bottom:22px}.page-heading h1{margin:0 0 8px;font-size:2.2rem}.page-heading p{margin:0;color:var(--muted)}@media(max-width:760px){.site-header .inner{align-items:flex-start;flex-direction:column}.site-nav{justify-content:flex-start}.hero .inner{padding:50px 22px 62px}.wrap{margin:24px auto}.card{padding:21px}.footer .inner{grid-template-columns:1fr}table{font-size:.92rem}.adminbar .inner{align-items:flex-start;flex-direction:column}.brand-name{font-size:1rem}.brand-mark{width:46px;height:46px}}

/* v1.1.1 - Backoffice istituzionale */
.admin-kicker{background:#2f461f}
.admin-header{box-shadow:0 8px 25px rgba(31,36,33,.05)}
.admin-header .inner{max-width:1320px}
.admin-identity{border:1px solid var(--border);background:var(--paper-2);border-radius:16px;padding:10px 16px;text-align:right;min-width:220px}
.admin-identity span{display:block;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;font-weight:900}
.admin-identity strong{display:block;color:var(--brand-dark);font-size:1rem;margin-top:2px}
.admin-layout{max-width:1320px;margin:28px auto;padding:0 22px;display:grid;grid-template-columns:270px minmax(0,1fr);gap:24px;align-items:start}
.admin-sidebar{position:sticky;top:20px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}
.admin-sidebar-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);font-weight:900;margin:4px 4px 14px}
.admin-nav{display:grid;gap:8px}
.admin-nav a{display:flex;align-items:center;justify-content:space-between;border:1px solid transparent;border-radius:14px;padding:11px 13px;color:var(--text);font-weight:850;background:transparent;text-decoration:none}
.admin-nav a:hover{background:var(--brand-soft);border-color:#dce8ce;color:var(--brand-dark);text-decoration:none}
.admin-nav a:after{content:'›';color:var(--muted);font-weight:900}
.admin-main{min-width:0}
.admin-main>.grid:first-child{margin-bottom:22px}
.admin-main .card{box-shadow:0 14px 36px rgba(31,36,33,.07)}
.admin-main h1{color:var(--brand-dark)}
.admin-main table{font-size:.95rem}
.admin-main th{background:#eef3e5}
.admin-main .card .card{box-shadow:none;border-color:#e8e0d3}
.login-shell{background:linear-gradient(135deg,rgba(47,70,31,.08),rgba(168,119,42,.11)),var(--bg)}
.login-card{border-top:6px solid var(--brand)}
@media(max-width:980px){.admin-layout{grid-template-columns:1fr}.admin-sidebar{position:relative;top:auto}.admin-nav{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.admin-identity{text-align:left;width:100%}}
@media(max-width:760px){.admin-header .inner{align-items:flex-start;flex-direction:column}.admin-layout{margin:20px auto;padding:0 16px}.admin-sidebar{padding:14px}.admin-nav{grid-template-columns:1fr}.admin-identity{min-width:0}.site-kicker .inner{gap:8px}.admin-main table{font-size:.88rem}}
