/* Healthy (/healthy): form, avanzamento, report con punteggio, card, mappamondo propagazione */
.hy-form { margin-top: 6px; }
.hy-form-row { display: flex; flex-wrap: wrap; gap: 10px; }
.hy-form-row .v2-input { flex: 1 1 240px; }
.hy-note { margin: 12px 0 0; font-size: 13px; }
.hy-what { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-top: 28px; }
.hy-what-item { display: grid; grid-template-columns: 34px 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: center;
  padding: 12px 14px; background: rgba(13, 21, 42, .7); border: 1px solid var(--line); border-radius: 14px; }
.hy-what-item .v2-icon { grid-row: 1 / 3; width: 34px; height: 34px; }
.hy-what-item b { font-size: 14px; } .hy-what-item small { color: var(--muted); font-size: 12px; }

.hy-progress { text-align: center; padding: 40px 0; }
.hy-progress h2 { margin: 0 0 14px; }
.hy-bar { height: 8px; max-width: 520px; margin: 0 auto; background: rgba(255, 255, 255, .07); border-radius: 999px; overflow: hidden; }
.hy-bar i { display: block; height: 100%; background: linear-gradient(90deg, #2ee68a, #38e1ff); border-radius: 999px; transition: width .6s; }
.hy-step { margin: 12px 0 4px; } .hy-step b { color: #fff; }
.hy-gl-pct { font-size: 16px !important; letter-spacing: .3em; margin-top: 70px; color: #2ee68a; }

.hy-head { display: flex; gap: 26px; align-items: center; flex-wrap: wrap; margin-bottom: 20px;
  padding: 22px; background: rgba(13, 21, 42, .7); border: 1px solid var(--line); border-radius: 18px; }
.hy-gauge { position: relative; width: 132px; height: 132px; flex: 0 0 auto; }
.hy-gauge svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.hy-gauge circle { fill: none; stroke-width: 10; }
.hy-gauge .bg { stroke: rgba(255, 255, 255, .08); }
.hy-gauge .fg { stroke: #2ee68a; stroke-linecap: round; transition: stroke-dasharray 1s; }
.hy-gauge.warn .fg { stroke: #ffb020; } .hy-gauge.ko .fg { stroke: #ff5a6a; }
.hy-gauge-v { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: 2px; }
.hy-gauge-v b { font: 700 38px var(--font); } .hy-gauge-v small { color: var(--muted); font-size: 13px; margin-top: 12px; }
.hy-head-info { flex: 1 1 320px; }
.hy-head-info h2 { margin: 0 0 4px; font-size: 26px; }
.hy-parts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.hy-part { font-size: 13px; padding: 6px 10px; border-radius: 999px; border: 1px solid var(--line); background: rgba(255, 255, 255, .04); }
.hy-part b { margin-left: 4px; } .hy-part.ok { border-color: rgba(139, 211, 70, .45); } .hy-part.warn { border-color: rgba(255, 176, 32, .45); } .hy-part.ko { border-color: rgba(255, 90, 106, .45); }
.hy-share { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; align-items: center; }
.hy-share .hy-url { flex: 1 1 260px; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 12.5px; }

.hy-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 14px; }
.hy-card { background: var(--panel, #0b1220); border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; min-width: 0; }
.hy-card h3 { margin: 0 0 8px; font-size: 15px; display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.hy-card h3 small { color: var(--muted); font-weight: 500; font-size: 12px; }
.hy-card p { margin: 6px 0; font-size: 14px; }
.hy-private { margin-bottom: 14px; border-color: rgba(46, 230, 138, .4); background: rgba(46, 230, 138, .05); }
.hy-pill { display: inline-flex; align-items: center; gap: 6px; font: 700 11px/1 "Space Grotesk", sans-serif; letter-spacing: .06em; padding: 4px 9px; border-radius: 999px; text-transform: uppercase; }
.hy-pill.ok { color: #8bd346; background: rgba(139, 211, 70, .13); } .hy-pill.warn { color: #ffb020; background: rgba(255, 176, 32, .13); }
.hy-pill.ko { color: #ff7b88; background: rgba(255, 90, 106, .13); } .hy-pill.na { color: #8aa; background: rgba(136, 170, 170, .12); }
.hy-row { display: flex; gap: 8px; flex-wrap: wrap; margin: 4px 0 8px; }
.hy-flags { list-style: none; margin: 8px 0 0; padding: 0; font-size: 13px; }
.hy-flags li { padding: 4px 0; border-top: 1px solid var(--line); } .hy-flags li:first-child { border-top: 0; }
.hy-fl-ok { color: #8bd346; } .hy-fl-warn { color: #ffb020; } .hy-fl-ko { color: #ff7b88; }
.hy-sub { color: var(--muted); font-size: 12.5px; }
.hy-mono { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 12.5px; }
.hy-raw, .hy-pre { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 12px; color: #cfe0ff; background: rgba(255, 255, 255, .04); border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; margin-top: 9px; word-break: break-all; white-space: pre-wrap; }
.hy-pre { max-height: 300px; overflow: auto; }
.hy-scroll { max-height: 260px; overflow: auto; border: 1px solid var(--line); border-radius: 10px; }
.hy-scroll-tall { max-height: 520px; }
.hy-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.hy-table th, .hy-table td { padding: 7px 9px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
.hy-table th { position: sticky; top: 0; background: #0d152a; color: var(--muted); font-weight: 600; font-size: 12px; }
.hy-table tr.hy-listed td { background: rgba(255, 90, 106, .1); }
.hy-a.st1 { color: #8bd346; } .hy-a.st2 { color: #ff7b88; } .hy-a.st3 { color: #ffb020; } .hy-a.st0 { color: var(--muted); }
.hy-grade { display: flex; align-items: baseline; gap: 10px; margin: 4px 0 6px; }
.hy-grade b { font: 700 40px var(--font); line-height: 1; } .hy-grade span { color: var(--muted); }
.hy-grade.ok b { color: #8bd346; } .hy-grade.warn b { color: #ffb020; } .hy-grade.ko b { color: #ff7b88; }

.hy-prop { margin-top: 14px; }
.hy-prop-sum { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 4px 0 12px; }
.hy-chip { display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px; border-radius: 12px; cursor: pointer; user-select: none;
  background: rgba(13, 21, 42, .9); border: 1px solid var(--line); color: var(--text); font: 600 13px var(--font); opacity: .45; transition: .2s; }
.hy-chip.is-on { opacity: 1; }
.hy-chip b { padding: 2px 8px; border-radius: 999px; background: rgba(255, 255, 255, .07); font-size: 12px; }
.hy-chip.is-ok.is-on { border-color: rgba(139, 211, 70, .45); } .hy-chip.is-ko.is-on { border-color: rgba(255, 90, 106, .45); }
.hy-chip.is-warn.is-on { border-color: rgba(255, 176, 32, .45); } .hy-chip.is-na.is-on { border-color: rgba(150, 170, 205, .55); }
.hy-pct { margin-left: auto; font: 700 20px var(--font); } .hy-pct small { font: 500 12px var(--font); color: var(--muted); margin-left: 6px; }
.hy-prop-body { display: grid; grid-template-columns: minmax(280px, 480px) 1fr; gap: 16px; }
.hy-globe-wrap { position: relative; }
.hy-globe { position: relative; aspect-ratio: 1 / 1; width: 100%; border-radius: 16px; overflow: hidden; background: radial-gradient(circle at 50% 50%, #0a1428, #050b18 70%); border: 1px solid var(--line); }
.hy-globe canvas { display: block; cursor: grab; touch-action: none; }
.hy-globe-tools { position: absolute; top: 10px; left: 10px; display: flex; flex-direction: column; gap: 6px; }
.hy-globe-tools button { width: 32px; height: 32px; border-radius: 8px; border: 1px solid var(--line); background: rgba(13, 21, 42, .9); color: #fff; font-size: 18px; cursor: pointer; }
.hy-tip { position: absolute; pointer-events: none; background: rgba(6, 12, 28, .95); border: 1px solid var(--line); border-radius: 8px; padding: 5px 8px; font: 500 12px var(--font); color: #fff; white-space: nowrap; }
.hy-list .hy-filter { margin-bottom: 8px; }
@media (max-width: 900px) { .hy-prop-body { grid-template-columns: 1fr; } .hy-pct { margin-left: 0; width: 100%; } }
