/* Cantieri: inchiostro da tavola tecnica, giallo da segnaletica usato con parsimonia, caratteri da cartellonistica (Barlow). */
@font-face { font-family:Barlow; font-weight:400; font-display:swap; src:url(fonts/barlow-latin-400-normal.woff2) format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:Barlow; font-weight:400; font-display:swap; src:url(fonts/barlow-latin-ext-400-normal.woff2) format("woff2"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C0; }
@font-face { font-family:Barlow; font-weight:500; font-display:swap; src:url(fonts/barlow-latin-500-normal.woff2) format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:Barlow; font-weight:500; font-display:swap; src:url(fonts/barlow-latin-ext-500-normal.woff2) format("woff2"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C0; }
@font-face { font-family:Barlow; font-weight:600; font-display:swap; src:url(fonts/barlow-latin-600-normal.woff2) format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:Barlow; font-weight:600; font-display:swap; src:url(fonts/barlow-latin-ext-600-normal.woff2) format("woff2"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C0; }
@font-face { font-family:"Barlow Semi Condensed"; font-weight:600; font-display:swap; src:url(fonts/barlow-semi-condensed-latin-600-normal.woff2) format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"Barlow Semi Condensed"; font-weight:600; font-display:swap; src:url(fonts/barlow-semi-condensed-latin-ext-600-normal.woff2) format("woff2"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C0; }

:root {
  --ink:#0F2A3D; --ink-2:#1B3D55; --text:#17232E; --mute:#5C6B78; --line:#DCE2E4; --bg:#F3F5F4; --surface:#fff;
  --signal:#FFC233; --signal-soft:#FFF4D1; --link:#0E5A8A; --danger:#B3261E; --danger-soft:#FBEAE8; --ok:#1B7F5C; --ok-soft:#E3F3EC;
  --r:8px; --r-lg:12px; --display:"Barlow Semi Condensed", Barlow, system-ui, sans-serif; --shadow:0 1px 2px rgba(15,42,61,.06), 0 8px 24px -12px rgba(15,42,61,.18);
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; font:400 16px/1.5 Barlow, system-ui, -apple-system, "Segoe UI", sans-serif; color:var(--text); background:var(--bg); font-variant-numeric:lining-nums; }
a { color:var(--link); text-underline-offset:2px; text-decoration-thickness:1px; }
:focus-visible { outline:3px solid var(--signal); outline-offset:2px; border-radius:4px; }
h1, h2, h3 { font-family:var(--display); font-weight:600; color:var(--ink); line-height:1.15; letter-spacing:.005em; }
h1 { font-size:1.9rem; margin:.1rem 0 1.1rem; } h2 { font-size:1.3rem; margin:1.8rem 0 .7rem; } h3 { font-size:1.08rem; margin:.2rem 0 .6rem; }
small { color:var(--mute); } .pre { white-space:pre-wrap; } .big { font-family:var(--display); font-size:1.9rem; font-weight:600; color:var(--ink); }
.printonly { display:none; }

/* ---- marchio */
.brand { display:inline-flex; align-items:center; gap:.6rem; text-decoration:none; font-family:var(--display); font-weight:600; font-size:1.35rem; letter-spacing:.01em; color:#fff; }
.brand .mark { width:32px; height:32px; flex:none; }
.ico { width:20px; height:20px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

/* ---- struttura: barra laterale e barra superiore */
body.app { display:grid; grid-template-columns:232px minmax(0, 1fr); min-height:100vh; }
.side { background:var(--ink); color:#C9D6DF; padding:1.1rem .8rem; display:flex; flex-direction:column; gap:1.4rem; position:sticky; top:0; height:100vh;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size:24px 24px; }
.side .brand { padding:0 .5rem; }
.side nav { display:flex; flex-direction:column; gap:.15rem; }
.side nav a { display:flex; align-items:center; gap:.7rem; padding:.55rem .7rem; border-radius:var(--r); color:#C9D6DF; text-decoration:none; font-weight:500; border-left:3px solid transparent; }
.side nav a:hover { background:rgba(255,255,255,.07); color:#fff; }
.side nav a.on { background:rgba(255,255,255,.1); color:#fff; border-left-color:var(--signal); }
.side .tenant { margin:auto 0 0; padding:.7rem .7rem 0; border-top:1px solid rgba(255,255,255,.12); font-size:.9rem; color:#9FB2BF; }
.shell { min-width:0; display:flex; flex-direction:column; }
.top { display:flex; align-items:center; gap:.7rem; padding:.6rem 1.5rem; background:var(--surface); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:5; }
.top .search { flex:1 1 auto; max-width:460px; margin-right:auto; } .top .search input { background:var(--bg); border-color:transparent; }
.top .search input:focus { background:#fff; border-color:var(--line); } .top .grow { flex:1; color:var(--mute); }
nav.sub { display:flex; gap:1.4rem; padding:0 1.5rem; background:var(--surface); border-bottom:1px solid var(--line); }
nav.sub a, nav.tabs a { padding:.6rem 0; text-decoration:none; color:var(--mute); font-weight:500; border-bottom:3px solid transparent; margin-bottom:-1px; }
nav.sub a.on, nav.tabs a.on { color:var(--ink); border-bottom-color:var(--signal); } nav.sub a:hover, nav.tabs a:hover { color:var(--ink); }
nav.tabs { display:flex; flex-wrap:wrap; gap:.1rem 1.5rem; border-bottom:1px solid var(--line); margin:-.3rem 0 1.3rem; }
main { width:100%; max-width:1180px; margin:0 auto; padding:1.5rem 1.5rem 3rem; }
body.wide main { max-width:1440px; }
body.app main:has(> form.form:only-of-type) { max-width:720px; margin-left:0; }
.backlink { margin:0 0 .5rem; font-size:.95rem; } .backlink a { color:var(--mute); text-decoration:none; } .backlink a:hover { color:var(--ink); }

/* menu a comparsa: Nuovo e utente */
.newmenu { position:relative; } .newmenu summary { list-style:none; cursor:pointer; } .newmenu summary::-webkit-details-marker { display:none; }
.newmenu > div { position:absolute; right:0; top:calc(100% + 8px); background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow); min-width:210px; padding:.4rem; display:flex; flex-direction:column; z-index:10; }
.newmenu > div a, .newmenu > div button.link { display:block; width:100%; text-align:left; padding:.5rem .7rem; border-radius:6px; text-decoration:none; color:var(--text); }
.newmenu > div a:hover, .newmenu > div button.link:hover { background:var(--bg); } .newmenu hr { width:100%; border:0; border-top:1px solid var(--line); margin:.3rem 0; }
.newmenu.user summary { display:flex; align-items:center; gap:.5rem; padding:.25rem .5rem .25rem .25rem; border-radius:99px; color:var(--text); font-weight:500; }
.newmenu.user summary:hover, .newmenu.user summary.on { background:var(--bg); }
.newmenu.user i { font-style:normal; width:30px; height:30px; border-radius:50%; background:var(--ink); color:#fff; display:grid; place-items:center; font-family:var(--display); }

/* ---- controlli */
input, select, textarea, button, .btn { font:inherit; padding:.55rem .7rem; border:1px solid #C5CED2; border-radius:var(--r); background:var(--surface); color:var(--text); }
input:not([type=checkbox]), select, textarea { width:100%; max-width:100%; } input[type=checkbox] { width:1.2rem; height:1.2rem; accent-color:var(--ink); }
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--ink); box-shadow:0 0 0 3px rgba(255,194,51,.55); }
button, .btn { background:var(--ink); border-color:var(--ink); color:#fff; cursor:pointer; text-decoration:none; display:inline-block; font-weight:500; line-height:1.3; }
button:hover, .btn:hover { background:var(--ink-2); }
.btn.accent { background:var(--signal); border-color:var(--signal); color:var(--ink); font-weight:600; padding-left:1rem; padding-right:1rem; } .btn.accent:hover { background:#FFCF5C; }
.btn.accent::before { content:"+"; margin-right:.4rem; font-weight:600; }
button.secondary, .btn.secondary { background:var(--surface); color:var(--ink); border-color:#C5CED2; } button.secondary:hover, .btn.secondary:hover { background:var(--bg); border-color:var(--ink); }
button.danger { background:var(--surface); color:var(--danger); border-color:#E3B5B1; } button.danger:hover { background:var(--danger-soft); }
button.link { background:none; border:none; color:var(--link); padding:.3rem 0; font-weight:400; } button.link:hover { background:none; text-decoration:underline; }
form.inline { display:inline; }
.actions, .bar { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin:.9rem 0; }
.bar input, .bar select, .range input { width:auto; } .range { display:flex; gap:.3rem; } .range input { min-width:0; flex:1; }
.bar label { display:inline-flex; align-items:center; gap:.4rem; color:var(--mute); }

/* ---- form */
.form { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.3rem 1.4rem; }
.form h2 { margin-top:1.4rem; padding-top:1.1rem; border-top:1px solid var(--line); }
.form .field { margin-bottom:1rem; display:flex; flex-direction:column; gap:.3rem; }
.form label { font-weight:500; font-size:.95rem; color:var(--ink); } .field.optional > label { color:var(--mute); font-weight:400; }
.field:has(> input[type=checkbox]) { flex-direction:row-reverse; justify-content:flex-end; align-items:center; gap:.55rem; }
.field.bad input, .field.bad select, .field.bad textarea { border-color:var(--danger); }
.form .actions { margin:1.3rem 0 0; } output { padding:.2rem 0; }
.error { color:var(--danger); } p.error, .notice, .flash, .banner { padding:.7rem .9rem; border-radius:var(--r); border-left:4px solid; }
p.error { background:var(--danger-soft); border-color:var(--danger); } .notice, .banner { background:var(--signal-soft); border-color:var(--signal); } .flash { background:var(--ok-soft); border-color:var(--ok); overflow-wrap:anywhere; }
.multi { display:flex; flex-direction:column; gap:.25rem; max-height:11rem; overflow:auto; border:1px solid #C5CED2; border-radius:var(--r); padding:.5rem; background:var(--surface); }
.multi label { font-weight:400; display:flex; gap:.45rem; align-items:center; color:var(--text); } .multi input[type=search] { margin-bottom:.3rem; }

/* ---- tabelle */
table { border-collapse:collapse; width:100%; background:var(--surface); }
th, td { padding:.55rem .75rem; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
th { font-size:.86rem; font-weight:500; color:var(--mute); white-space:nowrap; background:#FAFBFA; } thead th a { color:inherit; text-decoration:none; } thead th a:hover { color:var(--ink); }
td.r, th.r { text-align:right; font-variant-numeric:tabular-nums lining-nums; white-space:nowrap; }
tbody tr:hover td { background:#FAFBFA; }
tfoot td, tr.tot th, tr.tot td { font-weight:600; color:var(--ink); border-top:2px solid var(--ink); background:var(--surface); }
tr.canceled td, li.canceled { color:var(--mute); text-decoration:line-through; }
.scroll { overflow-x:auto; border:1px solid var(--line); border-radius:var(--r-lg); background:var(--surface); } .scroll table tr:last-child > * { border-bottom:0; }
table.summary { max-width:480px; border:1px solid var(--line); border-radius:var(--r-lg); border-collapse:separate; border-spacing:0; overflow:hidden; }
table.summary th { font-size:1rem; color:var(--text); font-weight:400; background:none; }
.pager { color:var(--mute); }
.filters details, .selection details { margin:.5rem 0; } .filters summary, .selection summary, details > summary { cursor:pointer; color:var(--ink); font-weight:500; }
.filters .bar input[type=search] { max-width:300px; }
.grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:.7rem 1rem; margin:.7rem 0; }
.grid .field { display:flex; flex-direction:column; gap:.25rem; margin:0; } .grid label { font-size:.88rem; color:var(--mute); font-weight:400; }
.filters details[open] > .grid, .selection details[open] > .multi { margin-top:.6rem; }

/* ---- schede, riquadri */
dl.sheet { display:grid; grid-template-columns:max-content 1fr; gap:.45rem 1.2rem; background:var(--surface); padding:1.1rem 1.2rem; border:1px solid var(--line); border-radius:var(--r-lg); margin:0 0 1rem; }
dl.sheet dt { color:var(--mute); } dl.sheet dd { margin:0; }
.card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.1rem 1.2rem; margin:1.1rem 0; } .card > h2:first-child { margin-top:0; }
.card.alerts { border-left:4px solid var(--signal); } .card.alerts ul { margin:0; padding-left:1.1rem; } .card.alerts li { margin:.4rem 0; }
.cols { display:grid; grid-template-columns:repeat(auto-fit, minmax(340px, 1fr)); gap:0 1.2rem; align-items:start; } .cols > .card { margin:0 0 1.1rem; }
.cols3 { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:1rem 1.5rem; align-items:start; }
.tiles { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); border:1px solid var(--line); border-radius:var(--r-lg); background:var(--surface); margin:1rem 0 1.2rem; overflow:hidden; }
.tile { padding:1rem 1.2rem; display:flex; flex-direction:column; gap:.1rem; box-shadow:1px 0 0 var(--line), 0 1px 0 var(--line); }
.tile span { color:var(--mute); font-size:.92rem; } .tile strong { font-family:var(--display); font-size:1.9rem; font-weight:600; color:var(--ink); line-height:1.15; font-variant-numeric:tabular-nums lining-nums; } .tile small { min-height:1.3em; }
.tile:last-child:not(:first-child) { background:var(--ink); } .tile:last-child:not(:first-child) span, .tile:last-child:not(:first-child) small { color:#B9C8D2; } .tile:last-child:not(:first-child) strong { color:#fff; }
.month { min-width:11rem; text-align:center; text-transform:capitalize; font-family:var(--display); font-size:1.15rem; color:var(--ink); }
.badge { display:inline-block; font-size:.78rem; font-weight:500; padding:.08rem .5rem; border-radius:99px; background:#E4ECF1; color:#234; white-space:nowrap; }
.badge.k9 { background:#FDE9DC; color:#8A3A12; } .badge.k11 { background:var(--ok-soft); color:#0F6044; }
ul.feed, ul.timeline, ul.cards { list-style:none; padding:0; margin:0; }
ul.feed li { padding:.55rem 0; border-bottom:1px solid var(--line); } ul.feed li:last-child { border:0; } ul.feed small { display:block; }
ul.timeline li { display:flex; flex-wrap:wrap; gap:.3rem .6rem; align-items:baseline; padding:.6rem .9rem; background:var(--surface); border:1px solid var(--line); border-top:0; }
ul.timeline li.day { background:none; border:0; border-bottom:1px solid var(--line); font-family:var(--display); font-weight:600; color:var(--ink); padding:1.2rem 0 .35rem; }
ul.timeline .amount { margin-left:auto; font-variant-numeric:tabular-nums lining-nums; white-space:nowrap; }
.budget { white-space:nowrap; font-variant-numeric:tabular-nums; } progress { width:120px; height:.55rem; vertical-align:middle; accent-color:var(--ink); }
.budget.near progress { accent-color:#C98500; } .budget.over progress { accent-color:var(--danger); } .budget.over { color:var(--danger); font-weight:600; }
ul.menu { list-style:none; padding:0; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); } ul.menu li { padding:.8rem 1.1rem; border-bottom:1px solid var(--line); } ul.menu li:last-child { border:0; }
ul.menu li > a:first-child { font-weight:600; }

/* settimana e calendario */
table.week td, table.week th { border-right:1px solid var(--line); min-width:96px; } table.week tbody th { font-size:1rem; color:var(--text); font-weight:500; min-width:160px; background:var(--surface); }
table.week td.gap { background:var(--signal-soft); } table.week th.today { color:var(--ink); box-shadow:inset 0 -3px 0 var(--signal); }
.chip { display:block; font-size:.86rem; font-weight:500; background:#E4ECF1; color:var(--ink); border-radius:5px; padding:.12rem .45rem; margin-bottom:.2rem; text-decoration:none; white-space:nowrap; } .chip:hover { background:#D3E0E8; }
a.add { display:inline-block; color:var(--mute); text-decoration:none; padding:0 .45rem; border:1px dashed #C5CED2; border-radius:5px; } a.add:hover { color:var(--ink); border-color:var(--ink); }
form.squad .people { flex-direction:row; flex-wrap:wrap; gap:.35rem 1.3rem; max-height:none; }
table.calendar { table-layout:fixed; border:1px solid var(--line); } table.calendar th { text-align:center; } table.calendar td { height:4.5rem; border:1px solid var(--line); padding:.3rem .4rem; }
table.calendar tbody tr:hover td { background:inherit; } table.calendar td.off { background:var(--bg); } table.calendar td > span { font-size:.82rem; color:var(--mute); }
table.calendar td.has, table.calendar tbody tr:hover td.has { background:#E4ECF1; } table.calendar td.today > span { background:var(--signal); color:var(--ink); font-weight:600; border-radius:99px; padding:0 .4rem; }
table.calendar td a { display:block; text-decoration:none; color:var(--ink); } table.calendar td small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* grafico: colori di serie convalidati, testo sempre in inchiostro */
figure.chart { margin:0; } figure.chart svg { width:100%; height:auto; display:block; } .legend { display:flex; flex-wrap:wrap; gap:.2rem 1rem; font-size:.88rem; color:var(--mute); margin-bottom:.4rem; }
.legend i { display:inline-block; width:.7rem; height:.7rem; border-radius:2px; margin-right:.35rem; } .legend .unit { margin-left:auto; }
.s1 { fill:#2a78d6; background:#2a78d6; } .s2 { fill:#eb6834; background:#eb6834; } .s3 { fill:#1baf7a; background:#1baf7a; }
svg .grid { stroke:#E6EAEB; stroke-width:1; } svg .base { stroke:#9AA6AE; stroke-width:1; } svg .axis { font-size:11px; fill:#5C6B78; font-family:Barlow, sans-serif; } svg .val { font-size:11px; fill:#0F2A3D; font-weight:600; font-family:Barlow, sans-serif; }
svg path:hover { opacity:.82; } figure.chart details { margin-top:.5rem; font-size:.92rem; }

/* ---- accesso: marchio su tavola tecnica, form a fianco */
body.auth { display:grid; grid-template-columns:minmax(320px, 5fr) 7fr; min-height:100vh; background:var(--surface); }
.auth-brand { background:var(--ink); color:#C9D6DF; padding:2.5rem; display:flex; flex-direction:column; justify-content:space-between;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size:120px 120px, 120px 120px, 24px 24px, 24px 24px; }
.auth-brand .brand { font-size:1.9rem; } .auth-brand .brand .mark { width:44px; height:44px; }
.auth-brand p { font-family:var(--display); font-size:2.1rem; line-height:1.15; color:#fff; max-width:15ch; margin:0; }
.auth-form { display:grid; place-items:center; padding:2rem 1.2rem; } .auth-form main { max-width:420px; padding:0; margin:0; }
.auth-form .form { border:0; padding:0; } .auth-form .form button { width:100%; padding:.75rem; font-size:1.05rem; }
.langs { display:flex; gap:.3rem; flex-wrap:wrap; margin:0 0 1.2rem; } .langs a { padding:.2rem .65rem; border-radius:99px; text-decoration:none; color:var(--mute); border:1px solid var(--line); font-size:.92rem; }
.langs a.on { background:var(--ink); border-color:var(--ink); color:#fff; }

/* ---- area personale: pensata per il telefono, con barra in basso */
body.staff { padding-bottom:5rem; } body.staff .top { background:var(--ink); border:0; padding:.6rem 1rem; } body.staff .top .brand { font-size:1.15rem; } body.staff .top .brand .mark { width:28px; height:28px; }
body.staff .top .grow { color:#9FB2BF; text-align:right; font-size:.9rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } body.staff .top button.link { color:#fff; }
body.staff main { max-width:560px; padding:1.2rem 1rem; } body.staff .form { padding:1.1rem; }
body.staff input, body.staff select, body.staff textarea { padding:.75rem .8rem; font-size:1.05rem; } body.staff .form button { width:100%; padding:.9rem; font-size:1.1rem; background:var(--signal); border-color:var(--signal); color:var(--ink); font-weight:600; }
body.staff button.danger { width:100%; margin-top:.8rem; padding:.8rem; }
nav.bottom { position:fixed; left:0; right:0; bottom:0; display:grid; grid-template-columns:repeat(3, 1fr); background:var(--surface); border-top:1px solid var(--line); padding-bottom:env(safe-area-inset-bottom); z-index:5; }
nav.bottom a { display:flex; flex-direction:column; align-items:center; gap:.15rem; padding:.55rem .2rem .5rem; text-decoration:none; color:var(--mute); font-size:.82rem; font-weight:500; border-top:3px solid transparent; margin-top:-1px; }
nav.bottom a.on { color:var(--ink); border-top-color:var(--signal); }
ul.cards li { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:.8rem .9rem; margin-bottom:.55rem; }
.sites { margin-top:1rem; } .sites a { display:inline-block; margin:.2rem .5rem .2rem 0; padding:.3rem .7rem; border:1px solid var(--line); border-radius:99px; background:var(--surface); text-decoration:none; font-size:.92rem; }

/* ---- schermi stretti */
@media (max-width:920px) {
  body.app { display:block; }
  .side { position:static; height:auto; flex-direction:row; align-items:center; gap:.6rem; padding:.5rem .8rem; overflow-x:auto; }
  .side .brand span, .side .tenant { display:none; } .side nav { flex-direction:row; gap:.1rem; }
  .side nav a { flex-direction:column; gap:.1rem; font-size:.74rem; padding:.35rem .55rem; border-left:0; border-bottom:3px solid transparent; white-space:nowrap; } .side nav a.on { border-bottom-color:var(--signal); }
  .top { padding:.5rem .8rem; position:static; } .newmenu.user summary span { display:none; } main { padding:1rem .8rem 2.5rem; } nav.sub { padding:0 .8rem; }
  h1 { font-size:1.55rem; }
  body.auth { display:block; } .auth-brand { padding:1.3rem 1.2rem; } .auth-brand p { font-size:1.25rem; max-width:none; margin-top:.8rem; } .auth-brand .brand { font-size:1.5rem; } .auth-form { padding:1.5rem 1.2rem; place-items:start stretch; }
}
@media (prefers-reduced-motion:no-preference) { .side nav a, button, .btn { transition:background-color .12s, border-color .12s; } }
@media print {
  .side, .top, nav.sub, nav.bottom, .noprint, .pager, .filters, .selection, .actions, .tabs, .card.alerts { display:none !important; }
  .printonly { display:block; } body, body.app { display:block; background:#fff; font-size:11px; } main, body.wide main { max-width:none; padding:0; } .scroll { border:0; overflow:visible; } a { color:inherit; text-decoration:none; }
  .tile:last-child:not(:first-child) { background:none; } .tile:last-child:not(:first-child) strong { color:#000; }
}
/* collegamenti nelle tabelle: sottolineati solo al passaggio, per non appesantire le liste */
table a, ul.feed a, ul.timeline a, dl.sheet a { text-decoration:none; } table a:hover, ul.feed a:hover, ul.timeline a:hover, dl.sheet a:hover { text-decoration:underline; }
table.list td:first-child a { font-weight:500; }

/* ---- versione 1.3: mappe, creazione al volo, quattro voci nella barra dell'area personale */
.map { height:340px; border:1px solid var(--line); border-radius:var(--r-lg); margin:.6rem 0; z-index:0; background:#E4ECF1; } .map.small { height:220px; } .map.pick { height:280px; margin:0 0 .3rem; cursor:crosshair; }
.leaflet-container { font:inherit; } .leaflet-popup-content a { font-weight:600; color:var(--link); }
details.inline-new { margin:-.4rem 0 1rem; padding:.6rem .8rem; border:1px dashed #C5CED2; border-radius:var(--r); background:#FAFBFA; } details.inline-new[open] { border-style:solid; }
details.inline-new summary::before { content:"+ "; font-weight:600; } details.inline-new .grid { margin:.7rem 0 .4rem; }
nav.bottom { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:1fr; }
ul.cards .actions { margin:.7rem 0 0; } ul.cards .actions .btn { flex:1; text-align:center; }
