/* =========================================================================
   Assistenza, Contatti, Sponsor, Valutazione tecnica: componenti dei moduli.
   Tema chiaro (token --ds-* di minimal.css), usato anche dentro .pg (globo).
   ========================================================================= */

.as h1, .as h2, .as h3, .ct h1, .ct h2, .ct h3 { color: var(--ds-ink); }

/* ---------- hero semplice (Assistenza) ---------- */
.as-hero { padding: 36px 0 18px; text-align: center; }
.as-hero-sm { padding: 28px 0 0; }
.as-title { margin: 16px 0 14px; font-size: clamp(36px, 5.4vw, 68px); font-weight: 750; letter-spacing: -.045em; line-height: 1.04; background: linear-gradient(110deg, var(--ds-ink) 30%, var(--ds-brand)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.as-lead { max-width: 640px; margin: 0 auto 10px; font-size: 18px; line-height: 1.6; color: var(--ds-ink-2); }
.as-apps-line { margin: 0; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--ds-brand-deep); }

/* ---------- hub ---------- */
.as-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; max-width: 920px; margin: 0 auto; }
.as-card { display: grid; align-content: start; gap: 12px; padding: 34px; color: var(--ds-ink); background: radial-gradient(360px circle at var(--sx, -200px) var(--sy, -200px), rgba(42, 132, 66, .13), transparent 62%), var(--ds-glass-strong); border: 1px solid var(--ds-line); border-radius: 30px; box-shadow: var(--ds-shadow); transition: transform .3s cubic-bezier(.2, .8, .2, 1), border-color .3s, box-shadow .3s; }
.as-card:hover { transform: translateY(-6px); border-color: rgba(42, 132, 66, .45); box-shadow: var(--ds-shadow-lift); }
.as-card.is-primary { border-color: rgba(42, 132, 66, .4); background: radial-gradient(360px circle at var(--sx, -200px) var(--sy, -200px), rgba(42, 132, 66, .2), transparent 62%), linear-gradient(140deg, rgba(42, 132, 66, .1), rgba(34, 184, 207, .06)), var(--ds-glass-strong); }
.as-card > i { display: grid; place-items: center; width: 60px; height: 60px; font-size: 32px; color: #fff; background: linear-gradient(140deg, var(--ds-brand), #5fbf7a); border-radius: 18px; box-shadow: 0 12px 28px rgba(42, 132, 66, .3); }
.as-card h2 { margin: 6px 0 0; font-size: 26px; font-weight: 700; letter-spacing: -.03em; }
.as-card p { margin: 0 0 8px; font-size: 15.5px; line-height: 1.6; color: var(--ds-ink-2); }
.as-card .apx-btn { width: fit-content; }
.as-note { display: flex; align-items: center; justify-content: center; gap: 8px; max-width: 920px; margin: 22px auto 0; font-size: 14px; color: var(--ds-ink-2); }
.as-note i { font-size: 20px; color: var(--ds-brand); }
.as-login { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; max-width: 920px; margin: 0 auto; padding: 32px 36px; background: linear-gradient(140deg, rgba(42, 132, 66, .09), rgba(34, 184, 207, .06)), var(--ds-glass-strong); border: 1px solid rgba(42, 132, 66, .3); border-radius: 30px; }
.as-login h2 { margin: 0 0 6px; font-size: 24px; font-weight: 700; }
.as-login p { margin: 0; color: var(--ds-ink-2); }
.as-login-btns { display: flex; flex-wrap: wrap; gap: 10px; }

.as-mine { max-width: 920px; margin: 0 auto; padding: 30px 32px; background: var(--ds-glass-strong); border: 1px solid var(--ds-line); border-radius: 30px; box-shadow: var(--ds-shadow); }
.as-mine-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 14px; }
.as-mine-head h2 { margin: 0; font-size: 22px; font-weight: 700; }
.as-mine-head span { font-size: 13.5px; color: var(--ds-muted); }
.as-empty { margin: 0; color: var(--ds-ink-2); }
.as-tickets { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.as-tickets li { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 6px 14px; padding: 14px 16px; background: rgba(255, 255, 255, .75); border: 1px solid var(--ds-line); border-radius: 16px; }
.as-tickets li > b { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13px; color: var(--ds-brand-deep); }
.as-t-subject { display: grid; font-size: 15px; font-weight: 600; color: var(--ds-ink); }
.as-t-subject small { font-size: 12px; font-weight: 500; color: var(--ds-muted); }
.as-reply { grid-column: 1 / -1; margin: 0; padding: 10px 12px; font-size: 13.5px; color: var(--ds-ink-2); background: var(--ds-brand-soft); border-radius: 12px; }
.as-prio, .as-status { padding: 3px 12px; font-style: normal; font-size: 12px; font-weight: 700; border-radius: 999px; }
.as-prio.is-low { color: #3d6b4a; background: rgba(42, 132, 66, .12); }
.as-prio.is-normal { color: #35566e; background: rgba(34, 184, 207, .15); }
.as-prio.is-high { color: #8a5a00; background: rgba(245, 166, 35, .2); }
.as-prio.is-critical { color: #a23b3b; background: rgba(190, 70, 70, .15); }
.as-status { color: var(--ds-ink-2); background: rgba(11, 13, 18, .06); }
.as-status.is-resolved, .as-status.is-closed { color: var(--ds-brand-deep); background: var(--ds-brand-soft); }
.as-status.is-inprogress { color: #35566e; background: rgba(34, 184, 207, .15); }

/* ---------- moduli ---------- */
.as-formsec { padding-top: 24px; }
.as-form { max-width: 860px; margin: 0 auto; padding: 38px 42px; background: var(--ds-glass-strong); border: 1px solid var(--ds-line); border-radius: 34px; box-shadow: var(--ds-shadow-lift); }
.as-form-wide { max-width: 1040px; }
.as-who { display: flex; align-items: center; gap: 8px; margin: 0 0 22px; font-size: 14px; color: var(--ds-ink-2); }
.as-who i { font-size: 22px; color: var(--ds-brand); }
.as-field { margin: 0 0 24px; padding: 0; border: 0; min-width: 0; }
.as-field > legend, .as-field > label, .as-lbl { display: block; margin: 0 0 10px; padding: 0; font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--ds-ink); }
.as-field input[type=text], .as-field input[type=email], .as-field input[type=url], .as-field input[type=tel], .as-field input[type=number], .as-field select, .as-field textarea, .as-github input {
    width: 100%; padding: 14px 16px; font: inherit; font-size: 15.5px; color: var(--ds-ink); background: #fff; border: 1px solid var(--ds-line-strong); border-radius: 14px; outline: none; transition: border-color .2s, box-shadow .2s;
}
.as-field textarea { resize: vertical; line-height: 1.6; }
.as-field input:focus, .as-field select:focus, .as-field textarea:focus, .as-github input:focus { border-color: var(--ds-brand); box-shadow: 0 0 0 4px rgba(42, 132, 66, .15); }
.as-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.as-grid .is-full { grid-column: 1 / -1; }
.as-error { margin: 0 0 20px; padding: 14px 18px; font-size: 14.5px; font-weight: 600; color: #a23b3b; background: rgba(190, 70, 70, .09); border: 1px solid rgba(190, 70, 70, .3); border-radius: 14px; }
.as-help { display: flex; align-items: center; gap: 8px; margin: -6px 0 22px; font-size: 13px; color: var(--ds-muted); }
.as-submit { font-size: 16px; padding: 16px 32px; }
.as-form .as-github { display: none; margin-top: 12px; }
.as-form .as-github label { display: block; margin: 0 0 6px; font-size: 12.5px; font-weight: 600; color: var(--ds-ink-2); }
.as-form:has(.as-app input[value="Altro"]:checked) .as-github { display: block; }

/* scelte a scheda (applicazione, tipo, priorità, checkbox) */
.as-apps, .as-kinds, .as-prios, .as-choices { display: grid; gap: 10px; }
.as-apps { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.as-kinds { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.as-prios { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.as-choices { grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); }
.as-app, .as-kind, .as-prio-opt, .as-choice { position: relative; display: block; cursor: pointer; }
.as-app input, .as-kind input, .as-prio-opt input, .as-choice input, .as-rating input { position: absolute; opacity: 0; pointer-events: none; }
.as-app > span, .as-kind > span, .as-prio-opt > span, .as-choice > span { display: grid; justify-items: center; align-content: center; gap: 4px; height: 100%; min-height: 86px; padding: 14px 10px; text-align: center; background: #fff; border: 1px solid var(--ds-line-strong); border-radius: 16px; transition: border-color .2s, background .2s, box-shadow .2s, transform .2s; }
.as-app > span:hover, .as-kind > span:hover, .as-prio-opt > span:hover, .as-choice > span:hover { transform: translateY(-2px); border-color: rgba(42, 132, 66, .5); }
.as-app i, .as-kind i, .as-prio-opt i, .as-choice i { font-size: 26px; color: var(--ds-brand); }
.as-app b, .as-kind b, .as-prio-opt b, .as-choice b { font-size: 14px; font-weight: 700; color: var(--ds-ink); }
.as-prio-opt small, .as-choice small { font-size: 12px; line-height: 1.35; color: var(--ds-muted); }
.as-app input:checked + span, .as-kind input:checked + span, .as-prio-opt input:checked + span, .as-choice input:checked + span { background: var(--ds-brand-soft); border-color: var(--ds-brand); box-shadow: 0 0 0 3px rgba(42, 132, 66, .18); }
.as-app input:focus-visible + span, .as-kind input:focus-visible + span, .as-prio-opt input:focus-visible + span, .as-choice input:focus-visible + span { outline: 2px solid var(--ds-brand); outline-offset: 2px; }
.as-prio-opt.is-high input:checked + span { background: rgba(245, 166, 35, .16); border-color: #e0a020; box-shadow: 0 0 0 3px rgba(245, 166, 35, .22); }
.as-prio-opt.is-high i { color: #d98a00; }
.as-prio-opt.is-critical input:checked + span { background: rgba(190, 70, 70, .1); border-color: #c0504a; box-shadow: 0 0 0 3px rgba(190, 70, 70, .2); }
.as-prio-opt.is-critical i { color: #c0504a; }
.as-rating { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.as-rating label span { display: grid; place-items: center; width: 46px; height: 46px; font-size: 16px; font-weight: 700; color: var(--ds-ink); background: #fff; border: 1px solid var(--ds-line-strong); border-radius: 14px; cursor: pointer; transition: all .2s; }
.as-rating label:hover span { border-color: var(--ds-brand); }
.as-rating input:checked + span { color: #fff; background: var(--ds-brand); border-color: var(--ds-brand); }
.as-rating small { margin-left: 8px; font-size: 12.5px; color: var(--ds-muted); }
.as-consent { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 22px; font-size: 13.5px; line-height: 1.5; color: var(--ds-ink-2); }
.as-consent input { width: 18px; height: 18px; margin-top: 3px; flex: 0 0 auto; accent-color: var(--ds-brand); }
.as-consent a { color: var(--ds-brand-deep); text-decoration: underline; }
.as-hp { position: absolute; left: -9999px; top: -9999px; width: 0; height: 0; overflow: hidden; }

/* messaggio di cortesia */
.as-thanks { max-width: 680px; margin: 0 auto; padding: 46px 40px; text-align: center; background: linear-gradient(140deg, rgba(42, 132, 66, .1), rgba(34, 184, 207, .07)), var(--ds-glass-strong); border: 1px solid rgba(42, 132, 66, .35); border-radius: 36px; box-shadow: var(--ds-shadow-lift); }
.as-thanks > i { display: block; font-size: 64px; color: var(--ds-brand); animation: as-pop .6s cubic-bezier(.2, .9, .3, 1.4); }
@keyframes as-pop { from { transform: scale(.3); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.as-thanks h2 { margin: 8px 0 10px; font-size: 32px; font-weight: 750; letter-spacing: -.035em; }
.as-thanks p { margin: 0 0 8px; font-size: 16.5px; color: var(--ds-ink-2); }
.as-thanks-big { font-size: 19px !important; font-weight: 600; color: var(--ds-ink) !important; }
.as-thanks-btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 22px; }

@media (max-width: 991.98px) {
    .as-apps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .as-prios, .as-kinds { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .as-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .as-cards, .as-login { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
    .as-form { padding: 24px 18px; border-radius: 26px; }
    .as-grid { grid-template-columns: 1fr; }
    .as-apps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .as-tickets li { grid-template-columns: 1fr auto; }
    .as-tickets li > b { grid-column: 1 / -1; }
    .as-thanks { padding: 32px 20px; }
}
@media (max-width: 575.98px) { .as-choices { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .as-thanks > i { animation: none; } }

/* ---------- Sponsor e Valutazione tecnica ---------- */
.ld-tiers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.ld-tier { position: relative; display: grid; align-content: start; gap: 12px; padding: 32px 28px; background: radial-gradient(340px circle at var(--sx, -200px) var(--sy, -200px), rgba(42, 132, 66, .12), transparent 62%), var(--ds-glass-strong); border: 1px solid var(--ds-line); border-radius: 30px; box-shadow: var(--ds-shadow); transition: transform .3s cubic-bezier(.2, .8, .2, 1), border-color .3s; }
.ld-tier:hover { transform: translateY(-6px); border-color: rgba(42, 132, 66, .45); }
.ld-tier.is-featured { color: #dff5e7; background: radial-gradient(420px circle at 20% 0%, rgba(47, 227, 122, .16), transparent 60%), #04110a; border-color: rgba(47, 227, 122, .4); box-shadow: 0 30px 80px rgba(11, 13, 18, .25); }
.ld-tier > i { display: grid; place-items: center; width: 54px; height: 54px; font-size: 28px; color: #fff; background: linear-gradient(140deg, var(--ds-brand), #5fbf7a); border-radius: 16px; }
.ld-tier h3 { margin: 4px 0 0; font-size: 24px; font-weight: 700; letter-spacing: -.03em; }
.ld-tier > p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--ds-ink-2); }
.ld-tier ul { display: grid; gap: 8px; margin: 4px 0 8px; padding: 0; list-style: none; }
.ld-tier li { display: flex; align-items: center; gap: 10px; font-size: 14.5px; color: var(--ds-ink); }
.ld-tier li i { color: var(--ds-brand); font-size: 18px; }
.ld-tier .apx-btn { width: 100%; }
.ld-tier.is-featured h3, .ld-tier.is-featured li { color: #f2fff6; }
.ld-tier.is-featured > p { color: #b6cdbf; }
.ld-tier.is-featured li i { color: #2fe37a; }
.ld-badge { position: absolute; right: 22px; top: 22px; padding: 4px 12px; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #04110a; background: #2fe37a; border-radius: 999px; }
.ld-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.ld-steps li { position: relative; padding: 26px 22px; overflow: hidden; background: var(--ds-glass-strong); border: 1px solid var(--ds-line); border-radius: 24px; box-shadow: var(--ds-shadow); }
.ld-steps li > b { position: absolute; right: 14px; top: 6px; font-size: 52px; font-weight: 800; letter-spacing: -.05em; color: rgba(42, 132, 66, .1); }
.ld-steps li > i { display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: 14px; font-size: 24px; color: var(--ds-brand); background: var(--ds-brand-soft); border-radius: 14px; }
.ld-steps h3 { margin: 0 0 6px; font-size: 17px; font-weight: 650; }
.ld-steps p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--ds-ink-2); }
.ld-areas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.ld-area { display: grid; gap: 6px; padding: 24px; background: radial-gradient(320px circle at var(--sx, -200px) var(--sy, -200px), rgba(42, 132, 66, .12), transparent 62%), var(--ds-glass-strong); border: 1px solid var(--ds-line); border-radius: 24px; box-shadow: var(--ds-shadow); }
.ld-area > i { font-size: 30px; color: var(--ds-brand); }
.ld-area h3 { margin: 4px 0 0; font-size: 17px; font-weight: 650; }
.ld-area p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--ds-ink-2); }
.ld-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.ld-panel { padding: 30px; background: var(--ds-glass-strong); border: 1px solid var(--ds-line); border-radius: 28px; box-shadow: var(--ds-shadow); }
.ld-panel h3 { margin: 0 0 14px; font-size: 20px; font-weight: 700; }
.ld-panel ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.ld-panel li { display: flex; align-items: flex-start; gap: 10px; font-size: 15px; line-height: 1.5; color: var(--ds-ink-2); }
.ld-panel li i { margin-top: 2px; font-size: 18px; color: var(--ds-brand); }
.as-sec { margin: 34px 0 18px; padding-top: 22px; font-size: 13px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--ds-brand-deep); border-top: 1px dashed var(--ds-line-strong); }
.as-sec:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
@media (max-width: 991.98px) { .ld-tiers, .ld-split { grid-template-columns: 1fr; } .ld-steps, .ld-areas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .ld-steps, .ld-areas { grid-template-columns: 1fr; } }

/* ---------- Misuriamo il tuo livello umano (globo SVG) ---------- */
.gc { margin: 0 0 22px; padding: 16px 18px 18px; border: 1px solid rgba(42, 132, 66, .35); border-radius: 22px; background: linear-gradient(140deg, rgba(42, 132, 66, .08), rgba(34, 184, 207, .05)), rgba(255, 255, 255, .85); }
.gc > legend { float: none; width: auto; margin: 0 0 8px; padding: 0 8px; font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #1f6b36; }
.gc > legend i { font-size: 18px; vertical-align: -3px; }
.gc-body { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.gc-globe { flex: 0 0 auto; width: 132px; height: 132px; filter: drop-shadow(0 10px 22px rgba(4, 17, 10, .35)); }
.gc-svg { display: block; width: 100%; height: 100%; }
.gc-spin { transform-origin: 80px 80px; animation: gc-rot 34s linear infinite; }
@keyframes gc-rot { to { transform: rotate(360deg); } }
.gc-ask { display: grid; gap: 6px; flex: 1 1 200px; min-width: 0; }
.gc-ask label { font-size: 15px; font-weight: 700; color: #0b0d12; }
.gc-ask input[type=text] { width: 100%; max-width: 160px; padding: 12px 14px; font: inherit; font-size: 22px; font-weight: 700; letter-spacing: .3em; text-align: center; color: #0b0d12; background: #fff; border: 1px solid rgba(11, 13, 18, .2); border-radius: 14px; outline: none; }
.gc-ask input[type=text]:focus { border-color: #2a8442; box-shadow: 0 0 0 4px rgba(42, 132, 66, .15); }
.gc-ask small { font-size: 12.5px; color: #8a92a1; }
.gc-refresh { width: fit-content; padding: 4px 0; font: inherit; font-size: 13px; font-weight: 700; color: #1f6b36; background: none; border: 0; cursor: pointer; }
.gc-refresh:hover { text-decoration: underline; }
@media (prefers-reduced-motion: reduce) { .gc-spin { animation: none; } }

/* ---------- Informativa sintetica e globo: spazi e stile ---------- */
.pn { margin: 4px 0 16px; padding: 12px 16px; font-size: 13.5px; color: #4a5160; background: rgba(42, 132, 66, .06); border: 1px solid rgba(42, 132, 66, .25); border-radius: 14px; }
.pn summary { cursor: pointer; font-weight: 700; color: #1f6b36; list-style-position: inside; }
.pn ul { display: grid; gap: 6px; margin: 10px 0 0; padding-left: 18px; }
.pn li { color: #4a5160; }
.pn a { color: #1f6b36; text-decoration: underline; }
.gc { margin-top: 18px; }
.gc-globe { width: 156px; height: 156px; }

/* Richiesta di registrazione per i visitatori */
.gate { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin: 0 0 18px; padding: 16px 20px; background: linear-gradient(140deg, rgba(42, 132, 66, .1), rgba(34, 184, 207, .06)); border: 1px solid rgba(42, 132, 66, .35); border-radius: 18px; }
.gate > i { font-size: 30px; color: #2a8442; }
.gate > div:nth-child(2) { display: grid; flex: 1 1 260px; gap: 2px; }
.gate b { color: #0b0d12; }
.gate span { font-size: 13.5px; color: #4a5160; }
.gate-btns { display: flex; flex-wrap: wrap; gap: 8px; }
.as-lock { margin: 0; padding: 0; border: 0; min-width: 0; }
.as-lock:disabled { opacity: .55; }
.db-preview b { color: #b4bbc7; }
.gate-modal { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; padding: 20px; background: rgba(4, 17, 10, .55); backdrop-filter: blur(4px); }
.gate-card { width: min(440px, 100%); padding: 28px; text-align: center; background: #fff; border-radius: 24px; box-shadow: 0 30px 80px rgba(0, 0, 0, .35); }
.gate-card h3 { margin: 0 0 8px; font-size: 22px; color: #0b0d12; }
.gate-card p { margin: 0 0 18px; color: #4a5160; }
.gate-card .gate-btns { justify-content: center; }
.gate-card button[data-gate-close] { padding: 8px 14px; font: inherit; font-weight: 600; color: #6b7280; background: none; border: 0; cursor: pointer; }

.as-hint { margin: 0 0 12px; padding: 10px 14px; font-size: 13.5px; color: var(--ds-ink-2); background: var(--ds-brand-soft); border-radius: 12px; }
.as-field legend > i { color: var(--ds-brand); margin-right: 4px; }
