/* ═══ STRUMENTI DI PSICOLOGIA ONTOLOGICA ═══
   Stile condiviso da archetipi-funzioni, vulnerabilita-psicologiche e relazioni-tipi. */

:root{
  /* serie categoriche dei grafici (passo scuro), in ordine fisso */
  --v-blue:#3987e5;
  --v-orange:#d95926;
  --v-aqua:#199e70;
  --v-yellow:#c98500;
  --v-magenta:#d55181;
  --v-violet:#9085e9;
  --v-red:#e66767;
  --v-gray:#6b6b80;
  --line:rgba(255,255,255,.07);
  --line-2:rgba(255,255,255,.14);
}

.wrap.wrap-tool{max-width:1040px}

.page-hero{min-height:44vh;display:flex;align-items:center;padding-top:96px;padding-bottom:1rem}
.page-hero h1{font-family:var(--sans);font-size:clamp(2.1rem,5.5vw,3.4rem);color:var(--hi);letter-spacing:-1.5px;line-height:1.08;margin-bottom:1rem;text-wrap:balance}
.page-hero .lead{font-size:17px;color:var(--mid);max-width:680px;line-height:1.8}
.back-link{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:2rem;color:var(--c1);font-size:13px}
.back-link:hover{text-decoration:underline}

.content-section{padding:1.5rem 0 3rem}
.content-section h2{font-family:var(--sans);font-size:1.4rem;color:var(--hi);margin-bottom:1rem}
.content-section h3{font-family:var(--sans);font-size:1.02rem;color:var(--hi);margin-bottom:.75rem;font-weight:600}
.content-section p{color:var(--mid);line-height:1.85;margin-bottom:1rem;max-width:720px}
.content-section strong{color:var(--hi);font-weight:500}
.content-section:last-of-type{padding-bottom:6rem}

/* ── pannelli ── */
.panel{background:var(--s1);border:1px solid var(--line);border-radius:12px;padding:1.5rem;margin-bottom:1.25rem}
.panel>h3:first-child{margin-top:0}
.panel p:last-child{margin-bottom:0}
.grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem;align-items:start}
.grid-2>.panel{margin-bottom:0}
.grid-2+.panel,.grid-2+.grid-2{margin-top:1.25rem}
.eyebrow{font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--fg);margin-bottom:.6rem}
.note{font-size:13px;color:var(--fg);line-height:1.7;max-width:720px}
.note a{text-decoration:underline}

/* ── controlli ── */
.btn{
  font-family:var(--mono);font-size:13px;color:var(--hi);cursor:pointer;
  background:var(--s2);border:1px solid var(--line-2);border-radius:8px;padding:.55rem .95rem;
  transition:border-color .2s,background .2s,color .2s;
}
.btn:hover{border-color:var(--c1);color:var(--c1)}
.btn:focus-visible,.chip:focus-visible,.seg button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--c1);outline-offset:2px}
.btn.primary{background:var(--c1);border-color:var(--c1);color:var(--bg);font-weight:600}
.btn.primary:hover{opacity:.85;color:var(--bg)}
.btn.ghost{background:none}
.btn-row{display:flex;flex-wrap:wrap;gap:.6rem}

.chip{
  font-family:var(--mono);font-size:13px;color:var(--mid);cursor:pointer;
  background:var(--s2);border:1px solid var(--line);border-radius:999px;padding:.4rem .85rem;
  transition:border-color .2s,color .2s,background .2s;
}
.chip:hover{border-color:var(--line-2);color:var(--hi)}
.chip[aria-pressed="true"]{background:rgba(0,240,255,.1);border-color:var(--c1);color:var(--c1)}
.chip-row{display:flex;flex-wrap:wrap;gap:.5rem}

select,input[type="text"]{
  font-family:var(--mono);font-size:14px;color:var(--hi);
  background:var(--s2);border:1px solid var(--line-2);border-radius:8px;padding:.5rem .7rem;min-width:0;
}
select{cursor:pointer}
label.field{display:flex;flex-direction:column;gap:.35rem;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--fg)}

/* selettore a segmenti (grado 1-4) */
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:8px;overflow:hidden}
.seg button{
  font-family:var(--mono);font-size:14px;color:var(--mid);background:var(--s2);border:0;cursor:pointer;
  width:44px;height:40px;border-right:1px solid var(--line);transition:background .15s,color .15s;
}
.seg button:last-child{border-right:0}
.seg button:hover{color:var(--hi)}
.seg button[aria-checked="true"]{background:var(--c1);color:var(--bg);font-weight:700}

/* ── tabelle ── */
.tbl-wrap{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--fg);font-weight:400;text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--line-2);white-space:nowrap}
.tbl td{padding:.6rem .75rem;border-bottom:1px solid var(--line);color:var(--mid);vertical-align:top}
.tbl td.num,.tbl th.num{text-align:right;font-variant-numeric:tabular-nums}
.tbl tr:last-child td{border-bottom:0}
.tbl .hi{color:var(--hi)}

/* ── elenchi informativi ── */
.info-list{list-style:none;display:grid;gap:.7rem}
.info-list li{border-left:2px solid var(--line-2);padding-left:.9rem}
.info-list .t{color:var(--hi);font-size:14.5px;display:block;margin-bottom:.15rem}
.info-list .d{color:var(--mid);font-size:13.5px;line-height:1.7}

.stack{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}
.stack div{background:var(--s2);border:1px solid var(--line);border-radius:8px;padding:.6rem .5rem;text-align:center}
.stack b{display:block;font-family:var(--sans);font-size:1.15rem;color:var(--hi);font-weight:600}
.stack span{font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--fg)}

.swatch{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:baseline;margin-right:.45rem}

.viz-tip{
  position:fixed;z-index:200;pointer-events:none;max-width:280px;
  background:#1b1b2a;border:1px solid var(--line-2);border-radius:8px;padding:.55rem .75rem;
  font-size:12.5px;line-height:1.55;color:var(--mid);box-shadow:0 8px 24px rgba(0,0,0,.45);
}
.viz-tip b{color:var(--hi);font-weight:500}
.viz-tip[hidden]{display:none}

@media(max-width:820px){
  .grid-2{grid-template-columns:1fr}
  .page-hero{min-height:0}
}
@media(max-width:460px){
  .stack{gap:.3rem}
  .stack div{padding:.5rem .2rem}
  .stack span{font-size:8.5px;letter-spacing:0}
}
@media(prefers-reduced-motion:reduce){
  .btn,.chip{transition:none}
}
