/* SpaceSite documentation: direzione "A - Libro tecnico".
   Shared stylesheet served as a static asset (CSP: style-src 'self').
   Tokens, fonts and accent mirror the landing and legal pages.
   CSP-safe: no inline style, no script, no client-side JavaScript. */

:root{
  --ss-paper:#FBF8F3; --ss-shelf:#F3EEE6; --ss-side:#F6F2EB; --ss-rule:#E2DACD; --ss-rule-2:#D5CCBD; --ss-rule-3:#C9BFAF;
  --ss-ink:#1C1A17; --ss-ink-2:#57514A; --ss-ink-3:#6E675E; --ss-accent:#94430F; --ss-accent-hover:#6F310A; --ss-current:#EEE3D6;
  --ss-white:#FFFFFF; --ss-code-bg:#211E1B; --ss-code-rule:#36312B; --ss-code-ink:#EDE7DD; --ss-code-ink-2:#B9B0A3;
  --ss-info-bg:#E8EEF2; --ss-info-rule:#C9D6DF; --ss-info-ink:#274B63;
  --ss-ok-bg:#E6F0E8; --ss-ok-ink:#28573A; --ss-ok-dot:#3E7A50; --ss-warn-bg:#FAF0DA; --ss-warn-ink:#7A4A00; --ss-draft-bg:#EDE7DD;
  --ss-radius:6px; --ss-measure:72ch;
  --sans:"Source Sans 3","Source Sans Pro",system-ui,-apple-system,"Segoe UI",sans-serif;
  --serif:"Source Serif 4",Georgia,serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:dark){
  :root{
    --ss-paper:#171513; --ss-shelf:#211E1B; --ss-side:#1C1916; --ss-rule:#36312B; --ss-rule-2:#433D35; --ss-rule-3:#4A443C;
    --ss-ink:#EDE7DD; --ss-ink-2:#B9B0A3; --ss-ink-3:#9C9386; --ss-accent:#E59560; --ss-accent-hover:#F0B085; --ss-current:#2E2721;
    --ss-white:#211E1B; --ss-info-bg:#1E262C; --ss-info-rule:#2F3D48; --ss-info-ink:#9FC0D6;
    --ss-ok-bg:#1D2A21; --ss-ok-ink:#9CCBA8; --ss-warn-bg:#2E2617; --ss-warn-ink:#E3B96A; --ss-draft-bg:#2A2622;
  }
}
*{box-sizing:border-box}
html{background:var(--ss-paper);color:var(--ss-ink);font:400 17px/1.65 var(--sans);-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--ss-accent);text-underline-offset:3px}
a:hover{color:var(--ss-accent-hover)}
:focus-visible{outline:2px solid var(--ss-accent);outline-offset:2px;border-radius:2px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ss-white);padding:8px 12px;border:1px solid var(--ss-rule);border-radius:var(--ss-radius)}
.skip:focus{left:8px;z-index:10}
code{font-family:var(--mono);font-size:15px;background:var(--ss-shelf);padding:1px 5px;border-radius:4px;word-break:break-word}

header.top{height:68px;display:flex;align-items:center;gap:24px;padding:0 32px;border-bottom:1px solid var(--ss-rule);background:var(--ss-paper)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ss-ink)}
.brand svg{display:block}
.brand .word{font:600 21px/1 var(--serif);letter-spacing:-.01em}
.brand .word b{font-weight:600;color:var(--ss-accent)}
.grow{flex-grow:1}
.top-nav{display:flex;align-items:center;gap:6px;font-size:15px}
.top-nav a{padding:6px 10px;color:var(--ss-ink);text-decoration:none;border-radius:4px}
.top-nav a:hover{background:var(--ss-current);color:var(--ss-accent)}

.body{flex-grow:1;display:flex;min-height:0}
nav.tree{width:288px;flex-shrink:0;padding:28px 16px 28px 24px;border-right:1px solid var(--ss-rule);background:var(--ss-side);display:flex;flex-direction:column;gap:22px;font-size:15.5px}
.tree .group{display:flex;flex-direction:column;gap:2px}
.tree .label{font-weight:700;font-size:14px;color:var(--ss-ink-2);padding:0 10px 6px}
.tree a{padding:6px 10px;color:var(--ss-ink);text-decoration:none;border-radius:4px}
.tree a:hover{background:var(--ss-current)}
.tree a[aria-current]{color:var(--ss-accent);font-weight:600;background:var(--ss-current)}

main{flex-grow:1;min-width:0;padding:36px 56px 64px}
.measure{max-width:760px}
.crumb{font-size:14.5px;color:var(--ss-ink-3);display:flex;flex-wrap:wrap;gap:8px}
.crumb a{color:var(--ss-ink-2);text-decoration:none}
.crumb a:hover{color:var(--ss-accent)}

/* Document title */
.measure h1{margin:12px 0 0;font:600 40px/1.15 var(--serif);letter-spacing:-.01em;text-wrap:balance}

/* Rendered markdown (prose) */
.prose{display:flex;flex-direction:column}
.prose > *{margin:0}
.prose h2{margin:34px 0 0;font:600 27px/1.25 var(--serif);letter-spacing:-.005em;padding-top:18px;border-top:1px solid var(--ss-rule)}
.prose h2:first-of-type{border-top:0;padding-top:0;margin-top:30px}
.prose h3{margin:22px 0 0;font:600 20px/1.35 var(--sans)}
.prose h4{margin:18px 0 0;font:600 17px/1.4 var(--sans);color:var(--ss-ink-2)}
.prose p{margin:14px 0 0;max-width:var(--ss-measure)}
.prose ul,.prose ol{margin:12px 0 0;padding-left:24px;max-width:var(--ss-measure);display:flex;flex-direction:column;gap:8px}
.prose li{padding-left:4px}
.prose li::marker{color:var(--ss-ink-3)}
.prose strong{font-weight:700;color:var(--ss-ink)}
.prose em{font-style:italic}
.prose a{color:var(--ss-accent);text-decoration:underline;text-underline-offset:3px}
.prose a:hover{color:var(--ss-accent-hover)}
.prose hr{width:100%;height:1px;border:0;background:var(--ss-rule);margin:28px 0 0}
.prose blockquote{margin:16px 0 0;padding:4px 0 4px 18px;border-left:3px solid var(--ss-rule-2);color:var(--ss-ink-2)}

/* Tables (wrapped in .tablewrap by the build) */
.tablewrap{margin:18px 0 0;border:1px solid var(--ss-rule);border-radius:var(--ss-radius);overflow:hidden;overflow-x:auto}
.prose table{width:100%;border-collapse:collapse;font-size:15px;background:var(--ss-white)}
.prose th{background:var(--ss-shelf);text-align:left;padding:10px 14px;font-weight:600;vertical-align:top;border-bottom:1px solid var(--ss-rule-2)}
.prose td{padding:10px 14px;border-top:1px solid var(--ss-rule);vertical-align:top}
.prose td code{font-size:13.5px}

.lede{font-size:19px;line-height:1.55;margin:16px 0 0;max-width:var(--ss-measure)}

.panel{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--ss-radius);border:1px solid;margin:22px 0 0}
.panel svg{flex-shrink:0;margin-top:2px}
.panel p{font-size:16px;line-height:1.55;margin:0}
.panel.info{background:var(--ss-info-bg);border-color:var(--ss-info-rule);color:var(--ss-info-ink)}
.panel.info p{color:var(--ss-ink)}
.panel.info strong{color:var(--ss-info-ink)}

footer.foot{flex-shrink:0;border-top:1px solid var(--ss-rule);background:var(--ss-side);padding:36px 32px 20px;font-size:14.5px;color:var(--ss-ink-2)}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:32px;max-width:1180px}
.foot-brand p{margin:12px 0 0;max-width:34ch;color:var(--ss-ink-2)}
.foot-brand .word{font-size:19px}
.foot-col{display:flex;flex-direction:column;gap:8px}
.foot-col .label{font-weight:700;font-size:14px;color:var(--ss-ink-2);padding-bottom:2px}
.foot-col a{color:var(--ss-ink);text-decoration:none}
.foot-col a:hover{color:var(--ss-accent);text-decoration:underline}
.foot-col span{color:var(--ss-ink-3)}
.foot-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:32px;padding-top:16px;border-top:1px solid var(--ss-rule);font-size:14px;color:var(--ss-ink-3)}
.badge{display:flex;align-items:center;gap:8px;color:var(--ss-ink-2);text-decoration:none;border:1px solid var(--ss-rule);border-radius:var(--ss-radius);padding:5px 10px;background:var(--ss-white);font-size:13px}
.legal{font-size:13px;color:var(--ss-ink-3);margin:14px 0 0;max-width:72ch}

@media (max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:820px){
  header.top{padding:0 20px;gap:12px}
  .top-nav{font-size:14px}
  .body{flex-direction:column}
  nav.tree{width:auto;border-right:0;border-bottom:1px solid var(--ss-rule);padding:12px 16px;gap:6px;flex-direction:row;flex-wrap:wrap}
  .tree .label{display:none}
  .tree .group{flex-direction:row;flex-wrap:wrap;gap:2px}
  .tree a{padding:6px 10px}
  main{padding:24px 20px 40px}
  .measure h1{font-size:32px}
  footer.foot{padding:28px 20px 16px}
  .foot-grid{grid-template-columns:1fr}
  .foot-bottom{flex-direction:column;align-items:flex-start}
}
