/* =========================================================================
   PC Configurator - embedded nella scheda prodotto (stile CyberPowerPC,
   palette del negozio Drako). Selettori scopati sotto gli ID root per vincere
   la specificita' del CSS del negozio (il riepilogo vive dentro .drako-pi-actions).
   ========================================================================= */
#drakoCfgSummary, #drakoCfgCustomizer {
  --dcfg-blue:#1c63ab; --dcfg-blue-d:#154e87; --dcfg-green:#16a34a;
  --dcfg-card:#ffffff; --dcfg-border:#e2e6eb; --dcfg-ink:#1f2937; --dcfg-muted:#6b7280;
  --dcfg-red:#cf2632; --dcfg-red-bg:#fdecec; --dcfg-amber:#92600a; --dcfg-amber-bg:#fff6e5;
  font-family:"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; color:var(--dcfg-ink);
}
#drakoCfgSummary *, #drakoCfgCustomizer *, #drakoCfgSummary *::before, #drakoCfgCustomizer *::after { box-sizing:border-box; }
/* =========================== RIEPILOGO (colonna dx) ====================== */
#drakoCfgSummary { display:block; margin-top:8px; }
#drakoCfgSummary .dcfg-sum-total { display:flex; flex-direction:column; gap:2px; margin-bottom:12px; }
#drakoCfgSummary .dcfg-sum-total-lbl { font-size:12px; color:var(--dcfg-muted); text-transform:uppercase; letter-spacing:.03em; font-weight:600; }
#drakoCfgSummary .dcfg-sum-total-val { font-size:30px; font-weight:800; color:var(--dcfg-green); line-height:1.1; }
#drakoCfgSummary .dcfg-sum-alerts:empty { display:none; }
#drakoCfgSummary .dcfg-sum-alerts { margin-bottom:12px; }
/* ---- fatti commerciali (stile CyberPowerPC): spedizione / consegna / reso / ritiro ---- */
#drakoCfgSummary .dcfg-facts { list-style:none; margin:0 0 14px; padding:12px 0; display:flex; flex-direction:column; gap:9px; border-top:1px solid var(--dcfg-border); border-bottom:1px solid var(--dcfg-border); }
#drakoCfgSummary .dcfg-fact { display:flex; align-items:center; gap:10px; font-size:13px; color:var(--dcfg-ink); line-height:1.25; }
#drakoCfgSummary .dcfg-fact svg { flex:0 0 auto; width:18px; height:18px; color:var(--dcfg-blue); }
#drakoCfgSummary .dcfg-fact b { font-weight:700; }
#drakoCfgSummary .dcfg-sum-cta { display:flex; gap:8px; }
#drakoCfgSummary .dcfg-btn { flex:1 1 0; border-radius:6px; padding:12px 10px; font-size:14px; font-weight:700; cursor:pointer; font-family:inherit; transition:background .15s,border-color .15s,color .15s; text-align:center; line-height:1.2; }
#drakoCfgSummary .dcfg-btn-cust { background:#fff; color:var(--dcfg-blue); border:1.5px solid var(--dcfg-blue); }
#drakoCfgSummary .dcfg-btn-cust:hover { background:#eef4fb; }
#drakoCfgSummary .dcfg-btn-cart { background:var(--dcfg-blue); color:#fff; border:1.5px solid var(--dcfg-blue); }
#drakoCfgSummary .dcfg-btn-cart:hover { background:var(--dcfg-blue-d); border-color:var(--dcfg-blue-d); }
#drakoCfgSummary .dcfg-btn-cart:disabled { background:#aab4c0; border-color:#aab4c0; cursor:wait; }
#drakoCfgSummary .dcfg-sum-msg { font-size:12.5px; margin-top:8px; text-align:center; min-height:15px; }
#drakoCfgSummary .dcfg-sum-msg.is-error { color:var(--dcfg-red); }
#drakoCfgSummary .dcfg-sum-msg.is-ok { color:var(--dcfg-green); font-weight:700; }
#drakoCfgSummary .dcfg-tabs { display:flex; gap:2px; border-bottom:1px solid var(--dcfg-border); margin:16px 0 0; padding:0; }
#drakoCfgSummary .dcfg-tab { background:none; border:none; border-bottom:2px solid transparent; padding:9px 4px; margin-right:16px; font-size:13px; font-weight:600; color:var(--dcfg-muted); cursor:pointer; font-family:inherit; }
#drakoCfgSummary .dcfg-tab.is-active { color:var(--dcfg-blue); border-bottom-color:var(--dcfg-blue); }
#drakoCfgSummary .dcfg-tabpane { padding-top:10px; }
#drakoCfgSummary .dcfg-tabpane[hidden] { display:none; }
#drakoCfgSummary .dcfg-complist { list-style:none; margin:0; padding:0; }
#drakoCfgSummary .dcfg-cl-row { display:flex; align-items:center; gap:10px; padding:9px 6px; border-bottom:1px solid #eef1f4; cursor:pointer; border-radius:5px; transition:background .12s; }
#drakoCfgSummary .dcfg-cl-row:hover { background:#f4f8fd; }
#drakoCfgSummary .dcfg-cl-row:last-child { border-bottom:none; }
#drakoCfgSummary .dcfg-cl-txt { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; }
#drakoCfgSummary .dcfg-cl-slot { font-size:10.5px; text-transform:uppercase; letter-spacing:.03em; color:var(--dcfg-muted); font-weight:700; }
#drakoCfgSummary .dcfg-cl-val { font-size:13px; color:var(--dcfg-ink); line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#drakoCfgSummary .dcfg-cl-edit { flex:0 0 auto; font-size:12px; font-weight:700; color:var(--dcfg-blue); }
#drakoCfgSummary .dcfg-cl-row.has-issue { background:var(--dcfg-red-bg); }
#drakoCfgSummary .dcfg-cl-row.has-issue .dcfg-cl-val { color:var(--dcfg-red); }
#drakoCfgSummary .dcfg-cl-row.has-issue::after { content:"\26A0"; color:var(--dcfg-red); font-size:14px; margin-left:2px; }
#drakoCfgSummary .dcfg-alert { display:flex; align-items:flex-start; gap:10px; border-radius:8px; padding:12px 14px; font-size:13.5px; font-weight:600; line-height:1.45; margin-bottom:10px; }
#drakoCfgSummary .dcfg-alert:last-child { margin-bottom:0; }
#drakoCfgSummary .dcfg-alert-ico { flex:0 0 auto; font-size:19px; line-height:1.2; }
#drakoCfgSummary .dcfg-alert.is-error { background:var(--dcfg-red-bg); color:#8a1a1f; border:1px solid #f3b4b6; border-left:4px solid var(--dcfg-red); }
#drakoCfgSummary .dcfg-alert.is-warn { background:var(--dcfg-amber-bg); color:var(--dcfg-amber); border:1px solid #f3d68a; border-left:4px solid var(--dcfg-amber); }
/* ======================= PERSONALIZZATORE (full-width) =================== */
#drakoCfgCustomizer.dcfg-cust { background:#f5f6f8; border:1px solid var(--dcfg-border); border-radius:10px; padding:18px; margin:8px 0 28px; }
#drakoCfgCustomizer.dcfg-cust[hidden] { display:none; }
#drakoCfgCustomizer .drako-pcb2-opt { display:flex; align-items:center; gap:12px; padding:10px 12px; background:#fff; border:1px solid var(--dcfg-border); border-radius:6px; cursor:pointer; position:relative; transition:border-color .15s,box-shadow .15s; }
#drakoCfgCustomizer .drako-pcb2-opt:hover { border-color:var(--dcfg-blue); box-shadow:0 1px 4px rgba(28,99,171,.12); }
#drakoCfgCustomizer .drako-pcb2-opt input[type=radio],
#drakoCfgCustomizer .drako-pcb2-opt input[type=checkbox] { position:absolute; opacity:0; pointer-events:none; }
#drakoCfgCustomizer .drako-pcb2-opt-radio { display:none; }
#drakoCfgCustomizer .drako-pcb2-opt.is-selected { border-color:var(--dcfg-green); box-shadow:0 0 0 2px var(--dcfg-green) inset; background:#f0fdf4; }
#drakoCfgCustomizer .drako-pcb2-opt.is-selected .drako-pcb2-opt-radio { border-color:var(--dcfg-blue); }
#drakoCfgCustomizer .drako-pcb2-opt.is-selected .drako-pcb2-opt-radio::after { content:""; position:absolute; inset:3px; border-radius:50%; background:var(--dcfg-blue); }
#drakoCfgCustomizer .drako-pcb2-opt-img { flex:0 0 auto; width:48px; height:48px; object-fit:contain; background:#fff; border-radius:4px; }
#drakoCfgCustomizer .drako-pcb2-opt-body { flex:1 1 auto; min-width:0; }
#drakoCfgCustomizer .drako-pcb2-opt-brand { font-size:10px; text-transform:uppercase; letter-spacing:.05em; color:var(--dcfg-muted); font-weight:700; }
#drakoCfgCustomizer .drako-pcb2-opt-name { font-size:13px; font-weight:600; color:var(--dcfg-ink); line-height:1.3; }
#drakoCfgCustomizer .drako-pcb2-opt-specs { display:flex; flex-wrap:wrap; gap:4px 8px; margin-top:3px; }
#drakoCfgCustomizer .drako-pcb2-opt-specs span { font-size:11px; color:#4b5563; background:#f0f2f5; border-radius:3px; padding:1px 6px; }
#drakoCfgCustomizer .drako-pcb2-opt-price { flex:0 0 auto; text-align:right; }
#drakoCfgCustomizer .drako-pcb2-opt-delta { font-size:14px; font-weight:700; white-space:nowrap; color:#1a1a1a; }
/* IL COLORE TORNA A SIGNIFICARE (15/08) — vedi anche la regola gemella ~riga 556.
   is-positive = sovrapprezzo (delta > 0), is-negative = risparmio (delta < 0):
   confermato in pc_configurator_v2.php:961-966. Erano entrambi #1a1a1a, quindi
   un risparmio di 330 € era colorato identico a un sovrapprezzo di 40 e chi
   guardava non poteva sapere se l'opzione fosse meglio o peggio.
   Si resta dentro l'intenzione dell'autore («non verde/rosso»): NIENTE rosso.
   Il sovrapprezzo è neutro, solo il risparmio si tinge — #15803d su bianco =
   5,01:1, #374151 = 10,31:1. */
#drakoCfgCustomizer .drako-pcb2-opt-delta.is-positive,
#drakoCfgCustomizer .drako-pcb2-opt-delta.delta-plus { color:#374151; }
#drakoCfgCustomizer .drako-pcb2-opt-delta.is-negative,
#drakoCfgCustomizer .drako-pcb2-opt-delta.delta-minus { color:#15803d; }
#drakoCfgCustomizer .drako-pcb2-opt-delta.is-included, #drakoCfgCustomizer .drako-pcb2-opt-delta.delta-zero { color:var(--dcfg-muted); font-weight:700; font-size:11px; text-transform:uppercase; letter-spacing:.03em; }
#drakoCfgCustomizer .drako-pcb2-opt-amount { font-size:11px; color:var(--dcfg-muted); margin-top:2px; }
#drakoCfgCustomizer .drako-pcb2-opt-code { display:none; }
#drakoCfgCustomizer .drako-pcb2-opt-rating { display:flex; align-items:center; gap:5px; margin-top:2px; }
#drakoCfgCustomizer .dcfg-stars { color:#f5a623; font-size:12px; letter-spacing:1px; line-height:1; }
#drakoCfgCustomizer .dcfg-rating-num { font-size:10px; color:var(--dcfg-muted); }
/* indicatore di disponibilita' (l'ordinamento mette i disponibili prima) */
#drakoCfgCustomizer .drako-pcb2-opt-avail { font-size:10px; font-weight:700; margin-top:3px; display:inline-flex; align-items:center; gap:4px; }
#drakoCfgCustomizer .drako-pcb2-opt-avail::before { content:"\25CF"; font-size:8px; }
#drakoCfgCustomizer .drako-pcb2-opt-avail.is-avail { color:#15803d; }
#drakoCfgCustomizer .drako-pcb2-opt-avail.is-order { color:var(--dcfg-muted); }
/* incompatibile: SELEZIONABILE ma segnalato (stile iBUYPOWER) */
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat { border-color:var(--dcfg-border); background:#fff; }
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat .drako-pcb2-opt-radio { border-color:#c9ced6; }
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat.is-selected { border-color:var(--dcfg-red); box-shadow:0 0 0 1px var(--dcfg-red) inset; background:var(--dcfg-red-bg); }
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat.is-selected .drako-pcb2-opt-radio::after { background:var(--dcfg-red); }
#drakoCfgCustomizer .drako-pcb2-opt-incompat-msg { display:flex; align-items:flex-start; gap:6px; margin-top:6px; font-size:12px; font-weight:500; color:#4b5563; background:#f3f4f6; border:1px solid var(--dcfg-border); border-radius:6px; padding:6px 9px; line-height:1.35; }
#drakoCfgCustomizer .drako-pcb2-opt-oos-msg { margin-top:5px; font-size:12.5px; color:var(--dcfg-amber); font-weight:700; }
#drakoCfgCustomizer .drako-pcb2-opt.is-oos { opacity:.55; cursor:not-allowed; }
/* "Non disponibile" (no coda/backorder + fuori stock): grigio e non cliccabile, card e lista */
#drakoCfgCustomizer .drako-pcb2-opt.is-unavailable { opacity:.6; filter:grayscale(.5); cursor:not-allowed; pointer-events:none; }
/* prodotti incompatibili: non selezionabili (input disabled) + cursore not-allowed; motivo inline sempre visibile */
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat:not(.is-selected) { cursor:not-allowed; }
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat:not(.is-selected) * { cursor:not-allowed; }
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat:hover { border-color:var(--dcfg-border); box-shadow:none; }
/* incompatibili: niente prezzo (non e' selezionabile, il delta sarebbe fuorviante); !important perche' la feature FPS forza display:flex sul prezzo */
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat .drako-pcb2-opt-price { display:none !important; }
/* icona info (i) sull'angolo dell'immagine -> apre la modale scheda tecnica */
#drakoCfgCustomizer .drako-pcb2-opt-info { position:absolute; top:6px; right:6px; z-index:6; width:30px; height:30px; padding:0; border-radius:50%; border:1px solid #c7d2e0; background:#fff; color:#1c63ab; display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 1px 3px rgba(16,24,40,.22); transition:background .15s,color .15s,border-color .15s; }
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat:not(.is-selected) .drako-pcb2-opt-info, #drakoCfgCustomizer .drako-pcb2-opt.is-incompat:not(.is-selected) .drako-pcb2-opt-info * { cursor:pointer !important; }
#drakoCfgCustomizer .drako-pcb2-opt-info > span { font-family:Georgia,'Times New Roman',serif; font-style:italic; font-weight:700; font-size:15px; line-height:1; }
#drakoCfgCustomizer .drako-pcb2-opt-info:hover { background:#1c63ab; color:#fff; border-color:#1c63ab; }
/* in lista l'immagine e' piccola: l'icona info in alto-destra si sovrappone al badge Promo -> spostata in basso-destra */
/* Vista a LISTA: la "i" va ancorata all'IMMAGINE, non alla card. Senza un
   contenitore posizionato si riferiva alla riga intera, che e' larga quanto il
   pannello, e finiva in fondo a destra staccata dalla miniatura. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-imgwrap { position:relative; flex:0 0 auto; display:inline-flex; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-info { width:18px; height:18px; top:auto; left:auto; bottom:1px; right:1px; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-info > span { font-size:12px; }
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-info { background:#141a24; color:#7fb2ff; border-color:#2b3444; }
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-info:hover { background:#1c63ab; color:#fff; border-color:#1c63ab; }
/* Modale scheda tecnica (aperta dall'icona "i"): nome + immagini + tutta la scheda tecnica */
#dcfgInfoModal { position:fixed; inset:0; z-index:100000; background:rgba(15,23,42,.6); display:flex; align-items:center; justify-content:center; padding:28px 18px; }
#dcfgInfoModal[hidden] { display:none; }
#dcfgInfoModal .dcfg-info-box { position:relative; background:#fff; color:#1f2937; border-radius:12px; max-width:900px; width:100%; max-height:min(880px, calc(100vh - 56px)); display:flex; flex-direction:column; overflow:hidden; box-shadow:0 24px 70px rgba(0,0,0,.4); }
#dcfgInfoModal .dcfg-info-content { flex:1 1 auto; display:flex; flex-direction:column; min-height:0; padding:22px 24px 20px; }
#dcfgInfoModal .dcfg-info-scroll { flex:1 1 auto; min-height:0; overflow-y:auto; padding-right:6px; }
#dcfgInfoModal .dcfg-info-close { position:absolute; top:9px; right:11px; width:30px; height:30px; border:none; background:transparent; color:#6b7280; font-size:26px; line-height:1; cursor:pointer; border-radius:6px; }
#dcfgInfoModal .dcfg-info-close:hover { background:#f0f2f5; color:#111827; }
#dcfgInfoModal .dcfg-info-head { flex:0 0 auto; display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin:0 0 14px; padding-right:36px; }
#dcfgInfoModal .dcfg-info-title { margin:0; font-size:19px; font-weight:800; line-height:1.3; color:#1f2937; }
#dcfgInfoModal .dcfg-info-link { flex:0 0 auto; display:inline-flex; align-items:center; gap:5px; font-size:13px; font-weight:700; color:#1c63ab; text-decoration:none; border:1px solid #c7d2e0; border-radius:999px; padding:5px 13px; white-space:nowrap; transition:background .15s,color .15s,border-color .15s; }
#dcfgInfoModal .dcfg-info-link:hover { background:#1c63ab; color:#fff; border-color:#1c63ab; }
html[data-theme="dark"] #dcfgInfoModal .dcfg-info-link { color:#7fb2ff; border-color:#2b3444; }
html[data-theme="dark"] #dcfgInfoModal .dcfg-info-link:hover { background:#1c63ab; color:#fff; border-color:#1c63ab; }
/* galleria: immagine grande + strip di miniature (come la pagina prodotto) */
#dcfgInfoModal .dcfg-info-gallery { margin:0 0 18px; }
#dcfgInfoModal .dcfg-info-main-wrap { display:flex; align-items:center; justify-content:center; background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:12px; margin-bottom:10px; }
#dcfgInfoModal .dcfg-info-main { max-width:100%; width:auto; max-height:400px; object-fit:contain; }
#dcfgInfoModal .dcfg-info-thumbs { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-start; }
#dcfgInfoModal .dcfg-info-thumb { width:58px; height:58px; background:#fff; border:1px solid #e5e7eb; border-radius:8px; padding:3px; cursor:pointer; transition:border-color .15s,box-shadow .15s; }
#dcfgInfoModal .dcfg-info-thumb img { display:block; width:100%; height:100%; object-fit:contain; }
#dcfgInfoModal .dcfg-info-thumb:hover { border-color:#1c63ab; }
#dcfgInfoModal .dcfg-info-thumb.is-active { border-color:#1c63ab; box-shadow:0 0 0 1px #1c63ab; }
#dcfgInfoModal .dcfg-info-thumb:focus-visible { outline:2px solid var(--drako-focus-ring, #1c63ab); outline-offset:2px; }
/* scheda tecnica = descrizione prodotto (classe product_desc_text): resa identica alla pagina prodotto */
#dcfgInfoModal .dcfg-info-desc { font-size:14px; line-height:1.55; }
#dcfgInfoModal .dcfg-info-desc img { max-width:100%; height:auto; }
#dcfgInfoModal .dcfg-info-desc table { max-width:100%; }
#dcfgInfoModal .dcfg-info-desc > *:first-child { margin-top:0; }
#dcfgInfoModal .dcfg-info-loading, #dcfgInfoModal .dcfg-info-empty { color:#6b7280; font-size:14px; padding:24px 0; text-align:center; }
html[data-theme="dark"] #dcfgInfoModal .dcfg-info-box { background:#21252e; color:#e6eaf0; }
html[data-theme="dark"] #dcfgInfoModal .dcfg-info-title { color:#eef1f6; }
html[data-theme="dark"] #dcfgInfoModal .dcfg-info-close { color:#aeb6c2; }
html[data-theme="dark"] #dcfgInfoModal .dcfg-info-close:hover { background:#2a2f3a; color:#fff; }
html[data-theme="dark"] #dcfgInfoModal .dcfg-info-desc { color:#e6eaf0; }
html[data-theme="dark"] #dcfgInfoModal .dcfg-info-main-wrap, html[data-theme="dark"] #dcfgInfoModal .dcfg-info-thumb { border-color:#333b49; }
/* warning sull'immagine delle componenti incompatibili (velo rosso + triangolo, in card e lista) */
#drakoCfgCustomizer .drako-pcb2-opt-imgwrap { position:relative; flex:0 0 auto; display:inline-block; line-height:0; }
#drakoCfgCustomizer .dcfg-cat-grid:not(.is-list) .drako-pcb2-opt-imgwrap { display:block; width:100%; }
#drakoCfgCustomizer .drako-pcb2-opt-imgwrap > .drako-pcb2-opt-img { display:block; }
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat.is-selected .drako-pcb2-opt-imgwrap::after { content:"\26A0"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:22px; color:#fff; background:rgba(207,38,50,.42); border-radius:4px; z-index:2; pointer-events:none; }
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt.is-incompat.is-selected .drako-pcb2-opt-imgwrap::after { background:rgba(122,32,40,.52); color:#ffe1e3; }
/* card view: icona incompatibilita' grande che copre tutta l'immagine (in lista resta 22px) */
/* FASE A 2026-07-13: rimosso il triangolo 150px in vista griglia (restava solo sul conflitto attivo, 22px) */
/* Sticky bar: blocco "Consegna stimata / Pagamenti sicuri" leggermente tagliato -> piu' respiro verticale
   (line-height stretta + icone emoji piu' alte del box venivano clippate da overflow:hidden). Alta specificita' per vincere sulle regole accumulate. */
html body #drakoCfgBar.dcfg-bar .dcfg-bar-data-line{ overflow:visible !important; line-height:1.45 !important; align-content:center !important; }
html body #drakoCfgBar.dcfg-bar .dcfg-bar-data-line i{ line-height:1 !important; vertical-align:middle !important; }
/* Alimentatore: stato ambra (regge il carico ma sotto la potenza consigliata) - NON incompatibile */
#drakoCfgCustomizer .dcfg-psu-verdict.warn,
#drakoCfgSummary .dcfg-psu-verdict.warn,
#drakoCfgBar .dcfg-psu-verdict.warn { background:rgba(240,180,41,.14); color:#92600a; }
#drakoCfgCustomizer .dcfg-psu-gauge-cap.warn,
#drakoCfgSummary .dcfg-psu-gauge-cap.warn,
#drakoCfgBar .dcfg-psu-gauge-cap.warn { background:#e6a417; }
#drakoCfgBar .dcfg-bar-psu.is-warn,
#drakoCfgCustomizer .dcfg-bar-psu.is-warn { background:#fff6e5; border-color:#e8cf9a; }
#drakoCfgBar .dcfg-bar-psu.is-warn .dcfg-bar-badge-txt b,
#drakoCfgCustomizer .dcfg-bar-psu.is-warn .dcfg-bar-badge-txt b { color:#92600a; }
/* opzione "Nessuno" per periferiche opzionali */
#drakoCfgCustomizer .drako-pcb2-opt.dcfg-opt-none { border-style:dashed; }
#drakoCfgCustomizer .drako-pcb2-opt.dcfg-opt-none .drako-pcb2-opt-name { color:var(--dcfg-muted); }
/* ===================== BARRA STICKY IN ALTO (CyberPowerPC) ================= */
/* per i prodotti configuratore il riepilogo destro NON e' sticky: scorre via e
   la barra in alto prende il suo posto */
.drako-pi-info.dcfg-info-nostick { position:static; top:auto; }
/* colonna dx configuratore: sottotitolo + codici restano sotto il titolo (come nella
   scheda standard); il blocco commerciale (spedizione/reso/ritiro) e' ricreato in stile
   CyberPowerPC dentro il riepilogo (.dcfg-facts), quindi nascondo solo i blocchi ridondanti.
   rev 07-15k: .drako-pi-trust NON piu' nascosto (ripristino parita' scheda standard, richiesta utente)
   rev 07-15l: idem .drako-pi-askbot ("Hai domande?") - resta nascosto solo .drako-pi-stock */
.drako-pi-info.dcfg-info-nostick .drako-pi-stock { display:none !important; }
#drakoCfgBar {
  position:fixed; left:0; right:0; top:131px; z-index:890;
  background:#fff; color:#1f2937; border-bottom:1px solid #e2e6eb;
  box-shadow:0 3px 14px rgba(0,0,0,.10);
  opacity:0; visibility:hidden; transform:translateY(-10px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
  font-family:"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
#drakoCfgBar.is-visible { opacity:1; visibility:visible; transform:translateY(0); }
#drakoCfgBar *, #drakoCfgBar *::before, #drakoCfgBar *::after { box-sizing:border-box; }
#drakoCfgBar .dcfg-bar-inner { max-width:1240px; margin:0 auto; padding:9px 20px; display:flex; align-items:center; gap:18px; }
#drakoCfgBar .dcfg-bar-summary { background:none; border:none; font-size:15px; font-weight:700; color:#1f2937; cursor:pointer; display:inline-flex; align-items:center; gap:6px; font-family:inherit; white-space:nowrap; }
#drakoCfgBar .dcfg-bar-chev { font-size:12px; color:var(--dcfg-muted); transition:transform .2s; }
#drakoCfgBar.is-open .dcfg-bar-chev { transform:rotate(180deg); }
#drakoCfgBar .dcfg-bar-badge { display:inline-flex; align-items:center; gap:8px; background:#f0f4f8; border:1px solid var(--dcfg-border); border-radius:8px; padding:5px 12px; }
#drakoCfgBar .dcfg-bar-badge-img { width:30px; height:30px; display:block; flex:0 0 auto; filter:drop-shadow(0 1px 2px rgba(20,30,55,.25)); }
#drakoCfgBar .dcfg-bar-badge-txt { display:flex; flex-direction:column; line-height:1.15; }
#drakoCfgBar .dcfg-bar-badge-txt small, #drakoCfgBar .dcfg-bar-ship small { font-size:9px; text-transform:uppercase; letter-spacing:.04em; color:var(--dcfg-muted); font-weight:700; }
#drakoCfgBar .dcfg-bar-badge-txt b { font-size:14px; }
#drakoCfgBar .dcfg-bar-psu.is-bad { background:#fdecec; border-color:#f3b4b6; }
#drakoCfgBar .dcfg-bar-ship { display:flex; flex-direction:column; line-height:1.15; }
#drakoCfgBar .dcfg-bar-ship b { font-size:13px; }
#drakoCfgBar .dcfg-bar-spacer { flex:1 1 auto; }
#drakoCfgBar .dcfg-bar-total { font-size:22px; color:var(--dcfg-green); white-space:nowrap; }
#drakoCfgBar .dcfg-bar-add { background:var(--dcfg-blue); color:#fff; border:none; border-radius:6px; padding:10px 22px; font-size:14px; font-weight:700; cursor:pointer; font-family:inherit; white-space:nowrap; }
#drakoCfgBar .dcfg-bar-add:hover { background:var(--dcfg-blue-d); }
#drakoCfgBar .dcfg-bar-add:disabled { background:#aab4c0; cursor:wait; }
#drakoCfgBar .dcfg-bar-dropdown { max-width:1240px; margin:0 auto; padding:2px 20px 14px; border-top:1px solid #f0f2f5; }
#drakoCfgBar .dcfg-bar-dropdown[hidden] { display:none; }
#drakoCfgBar .dcfg-bar-complist { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:0 28px; }
#drakoCfgBar .dcfg-bar-complist li { display:flex; justify-content:space-between; gap:12px; padding:5px 0; border-bottom:1px solid #f0f2f5; font-size:12.5px; }
#drakoCfgBar .dcfg-bar-cl-slot { color:var(--dcfg-muted); font-weight:600; white-space:nowrap; }
#drakoCfgBar .dcfg-bar-cl-val { color:#1f2937; text-align:right; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:820px){#drakoCfgBar .dcfg-bar-ship { display:none; }
#drakoCfgBar .dcfg-bar-badge-txt small { display:none; }
#drakoCfgBar .dcfg-bar-complist { grid-template-columns:1fr; }}
/* ===== prezzi (richiesta): SOLO il Totale build + la variazione per componente =====
   - il Totale torna visibile (stile "Subtotal" CyberPowerPC)
   - sulla card opzione si mostra SOLO il delta rispetto al prodotto di default
     (non il prezzo assoluto)
   - niente chip di specifiche */
#drakoCfgCustomizer .drako-pcb2-opt-amount { display:none !important; }
/* chip: spec-pill sulle card + badge chip nella barra: non servono.
   ⚠️ 16/08: la mannaia era su TUTTE le specifiche, con `!important`, e teneva
   spenta anche la riga di sigle della vista ELENCO — dove invece è il dato su
   cui si sceglie. Ristretta alla vista a CARD, che è quella per cui era nata:
   là le tre pastiglie disegnavano riquadri e rubavano peso al nome. */
#drakoCfgCustomizer .dcfg-cat-grid:not(.is-list) .drako-pcb2-opt-specs,
#drakoCfgBar .dcfg-bar-psu { display:none !important; }
/* ============= PERSONALIZZATORE full-width stile CyberPowerPC ============= */
/* (override del vecchio box accordion) */
#drakoCfgCustomizer.dcfg-cust { background:transparent; border:none; padding:0; margin:26px 0 36px; }
#drakoCfgCustomizer .dcfg-cust-shell { display:grid; grid-template-columns:320px 1fr; gap:34px; align-items:start; }
@media (max-width:900px){#drakoCfgCustomizer .dcfg-cust-shell { grid-template-columns:1fr; }}
/* nav categorie (sinistra, sticky) */
#drakoCfgCustomizer .dcfg-cnav { position:sticky; top:88px; align-self:start; }
@media (max-width:900px){#drakoCfgCustomizer .dcfg-cnav { position:static; top:auto; margin-bottom:10px; }}
#drakoCfgCustomizer .dcfg-cnav-group { margin-bottom:16px; }
#drakoCfgCustomizer .dcfg-cnav-group ul { list-style:none; margin:0; padding:0; }
#drakoCfgCustomizer .dcfg-cnav-link { position:relative; display:flex; align-items:center; gap:13px; padding:9px 8px; font-size:13px; color:#374151; text-decoration:none; border-left:2px solid transparent; border-radius:0 4px 4px 0; }
#drakoCfgCustomizer .dcfg-cnav-link:hover { background:#f0f4f8; color:#1c63ab; }
#drakoCfgCustomizer .dcfg-cnav-link.is-active { background:#eef4fb; color:#1c63ab; border-left-color:#1c63ab; font-weight:700; }
/* nav laterale: warning = ambra, incompatibilita' (error) = rosso */
#drakoCfgCustomizer .dcfg-cnav-link.has-issue { font-weight:700; }
#drakoCfgCustomizer .dcfg-cnav-link.has-issue::after { content:"\26A0"; position:absolute; top:3px; right:5px; font-size:12px; }
#drakoCfgCustomizer .dcfg-cnav-link.has-warn { color:#92600a; }
#drakoCfgCustomizer .dcfg-cnav-link.has-error { color:var(--dcfg-red); }
/* riepilogo visivo nella nav (stile CyberPowerPC): foto case + miniatura/nome per componente, senza prezzi */
#drakoCfgCustomizer .dcfg-cnav-hero { display:none; }
#drakoCfgCustomizer .dcfg-cnav-hero-img { max-width:100%; max-height:210px; object-fit:contain; }
#drakoCfgCustomizer .dcfg-cnav-thumb { flex:0 0 64px; width:64px; height:64px; display:flex; align-items:center; justify-content:center; background:#fff; border:1px solid #eef0f3; border-radius:8px; overflow:hidden; }
#drakoCfgCustomizer .dcfg-cnav-thumb img { max-width:100%; max-height:100%; object-fit:contain; }
#drakoCfgCustomizer .dcfg-cnav-thumb:empty { background:#f6f7f9; }
#drakoCfgCustomizer .dcfg-cnav-txt { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; line-height:1.25; }
#drakoCfgCustomizer .dcfg-cnav-lbl { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:#5f6774; }
#drakoCfgCustomizer .dcfg-cnav-name { font-size:14px; font-weight:600; color:#1f2937; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#drakoCfgCustomizer .dcfg-cnav-link:hover .dcfg-cnav-name { color:#1c63ab; }
#drakoCfgCustomizer .dcfg-cnav-link.has-warn .dcfg-cnav-name { color:#92600a; }
#drakoCfgCustomizer .dcfg-cnav-link.has-error .dcfg-cnav-name { color:var(--dcfg-red); }
#drakoCfgCustomizer .dcfg-cnav-edit { display:none; }
/* aree categoria (destra) */
#drakoCfgCustomizer .dcfg-cmain { min-width:0; }
/* --- FPS stimati "sotto la configurazione": blocco full-width sotto lo shell.
   Il tab FPS e' rimosso SOLO dal pannello riepilogo (drako_cfg_render_summary);
   qui sotto resta il widget completo (con readout multi-gioco). --- */
/* Alimentazione (PSU): pannello nel riepilogo nascosto su richiesta (resta
   accessibile dal dropdown Alimentazione della barra sticky, che ne clona il
   contenuto). force-hide: la classe .dcfg-psu porta un display che vince
   sull'attributo hidden, quindi serve !important. */
#drakoCfgSummary [data-role="psu"] { display:none !important; }
/* Nav allineata al titolo della prima categoria SENZA margine sulla nav: la nav
   e' sticky, quindi un margin-top lascerebbe uno spazio vuoto sopra la hero allo
   scroll. Invece azzero il padding-top della prima .dcfg-cat (il titolo "Case"
   sale all'altezza della hero) e allineo con il padding della hero. */
#drakoCfgCustomizer .dcfg-cmain .dcfg-cat:first-child { padding-top:0; }
/* Il click su "Personalizza" (e sulle righe della nav) scrolla al configuratore
   con scrollIntoView; senza offset il titolo categoria finisce sotto la barra
   sticky (~80px). scroll-margin-top lo ferma sotto la barra, cosi' il titolo
   "Case" resta intero e non tagliato. */
#drakoCfgCustomizer, #drakoCfgCustomizer .dcfg-cat { scroll-margin-top: 104px; }
#drakoCfgCustomizer .dcfg-cat { padding:6px 0 8px; border-bottom:1px solid #e8ebef; scroll-margin-top:104px; }
#drakoCfgCustomizer .dcfg-cat:last-child { border-bottom:none; }
#drakoCfgCustomizer .dcfg-cat-head { display:flex; align-items:baseline; gap:8px; margin-bottom:14px; flex-wrap:wrap; }
#drakoCfgCustomizer .dcfg-cat-title { font-size:17px; font-weight:800; color:#1f2937; }
#drakoCfgCustomizer .dcfg-cat-sep { color:#9aa3ad; }
#drakoCfgCustomizer .dcfg-cat-sel { font-size:14px; color:#1c63ab; font-weight:600; }
#drakoCfgCustomizer .dcfg-cat.has-warn .dcfg-cat-sel { color:#92600a; }
#drakoCfgCustomizer .dcfg-cat.has-error .dcfg-cat-sel { color:#cf2632; }
#drakoCfgCustomizer .dcfg-cat.has-issue .dcfg-cat-title::after { content:"\26A0"; margin-left:8px; font-size:18px; vertical-align:-1px; }
#drakoCfgCustomizer .dcfg-cat.has-warn .dcfg-cat-title::after { color:#92600a; }
#drakoCfgCustomizer .dcfg-cat.has-error .dcfg-cat-title::after { color:var(--dcfg-red); }
#drakoCfgCustomizer .dcfg-cat.has-warn .dcfg-cat-title { color:#92600a; }
#drakoCfgCustomizer .dcfg-cat.has-error .dcfg-cat-title { color:var(--dcfg-red); }
/* riepilogo (colonna dx): componente con problema evidenziato - warning ambra, incompatibilita' rossa */
#drakoCfgSummary .dcfg-cl-row.has-warn .dcfg-cl-slot { color:#92600a; font-weight:700; }
#drakoCfgSummary .dcfg-cl-row.has-error .dcfg-cl-slot { color:var(--dcfg-red); font-weight:700; }
#drakoCfgSummary .dcfg-cl-row.has-issue .dcfg-cl-slot::after { content:" \26A0"; }
/* incompatibilita': respiro che TOGLIE e RIMETTE il bordo rosso (tutte le card incompat, sempre).
   Il bordo statico e' reso trasparente: il bordo rosso lo disegna il box-shadow animato, che a
   meta' ciclo sparisce (0, trasparente) e poi torna (2px rosso). */
@keyframes dcfgBreatheBox { 0%{box-shadow:0 0 0 0 rgba(146,96,10,0) inset;} 16%{box-shadow:0 0 0 2px rgba(146,96,10,.85) inset;} 33%{box-shadow:0 0 0 0 rgba(146,96,10,0) inset;} 50%{box-shadow:0 0 0 2px rgba(146,96,10,.85) inset;} 66%{box-shadow:0 0 0 0 rgba(146,96,10,0) inset;} 83%{box-shadow:0 0 0 2px rgba(146,96,10,.85) inset;} 100%{box-shadow:0 0 0 0 rgba(146,96,10,0) inset;} }
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat,
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat.is-selected { border-color:transparent; }
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat { animation:dcfgBreatheBox 1.6s ease-in-out infinite; }
/* griglia di card 3 colonne */
#drakoCfgCustomizer .dcfg-cat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media (max-width:1200px){#drakoCfgCustomizer .dcfg-cat-grid { grid-template-columns:repeat(3,1fr); }}
@media (max-width:900px){#drakoCfgCustomizer .dcfg-cat-grid { grid-template-columns:repeat(2,1fr); }}
@media (max-width:560px){#drakoCfgCustomizer .dcfg-cat-grid { grid-template-columns:1fr; }}
/* card opzione (override del layout orizzontale -> verticale) */
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt { flex-direction:column; align-items:stretch; text-align:left; gap:7px; padding:12px; }
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-img { width:100%; height:92px; }
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-name { font-size:12px; }
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-radio { position:absolute; top:10px; right:10px; }
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-body { flex:1 1 auto; min-width:0; }
/* gruppi nav sempre aperti (non collassabili) */
/* sezioni categoria sempre aperte (non collassabili) */
#drakoCfgCustomizer .dcfg-cat-head { padding:8px 0; margin-bottom:20px; }
/* riepilogo: lista componenti scrollabile (come CyberPowerPC) */
#drakoCfgSummary .dcfg-complist { max-height:340px; overflow-y:auto; }
/* reset configurazione */
/* toggle vista Card/Lista nell'header categoria: default dal back-office,
   l'utente puo' comunque cambiarlo. Filtro rimosso. */
#drakoCfgCustomizer .dcfg-cat-view { margin-left:auto; align-self:center; display:inline-flex; border:1px solid #d7dce2; border-radius:6px; overflow:hidden; }
#drakoCfgCustomizer .dcfg-view-btn { border:none; background:#fff; color:#6b7280; cursor:pointer; font-family:inherit; font-size:12px; font-weight:600; padding:4px 12px; line-height:1.4; }
#drakoCfgCustomizer .dcfg-view-btn + .dcfg-view-btn { border-left:1px solid #d7dce2; }
#drakoCfgCustomizer .dcfg-view-btn.is-active { background:#1c63ab; color:#fff; }
/* vista LISTA (override card verticale -> orizzontale) */
#drakoCfgCustomizer .dcfg-cat-grid.is-list { grid-template-columns:1fr; gap:6px; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt { flex-direction:row; align-items:center; gap:10px; padding:6px 12px; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-img { width:40px; height:40px; flex:0 0 auto; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-radio { position:static; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-body { flex:1 1 auto; display:flex; flex-direction:column; justify-content:center; gap:1px; }
/* Modalita' LISTA compatta: righe basse, meta ravvicinate, niente chip specifiche */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-body > * { margin:0; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-name { line-height:1.2; font-size:13px; min-height:0; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-brand { font-size:11px; line-height:1.1; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-code,
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-avail { font-size:11px; line-height:1.2; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-specs { display:none; }
/* ===================================================================== */
/*  Intestazione full-width configuratore (marca + titolo + valutazione) */
/*  Mostrata sopra l'immagine quando il flag configuratore e' attivo.    */
/* ===================================================================== */
.drako-pi-cfghead { font-family:"Segoe UI",Roboto,Arial,sans-serif; padding:4px 0 18px; margin:0 0 8px; border-bottom:1px solid #e5e7eb; }
.drako-pi-cfghead .drako-pi-cfghead-brand { display:inline-block; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--dcfg-blue,#1c63ab); text-decoration:none; margin:0 0 6px; }
.drako-pi-cfghead .drako-pi-cfghead-brand:hover { text-decoration:underline; }
.drako-pi-cfghead .drako-pi-cfghead-title { font-size:28px; line-height:1.18; font-weight:800; color:#0f172a; margin:0 0 8px; }
.drako-pi-cfghead .drako-pi-cfghead-sub { font-size:14px; line-height:1.5; color:#64748b; margin:0 0 10px; max-width:78ch; }
.drako-pi-cfghead .drako-pi-cfghead-rating { display:flex; align-items:center; gap:8px; }
.drako-pi-cfghead .dcfg-stars { display:inline-flex; gap:2px; line-height:0; }
.drako-pi-cfghead .dcfg-star { width:18px; height:18px; display:block; }
.drako-pi-cfghead .dcfg-star.is-full { fill:#f59e0b; }
.drako-pi-cfghead .dcfg-star.is-empty { fill:#d1d5db; }
.drako-pi-cfghead .drako-pi-cfghead-rcount { font-size:13px; color:#475569; font-weight:600; }
.drako-pi-cfghead .drako-pi-cfghead-rcount.is-none { color:#94a3b8; font-weight:400; }
@media (max-width:640px){.drako-pi-cfghead .drako-pi-cfghead-title { font-size:22px; }}
/* ===================================================================== */
/*  Tab Alimentazione - stile scheda (selezione attuale + watt richiesti) */
/* ===================================================================== */
#drakoCfgSummary .dcfg-psu,
#drakoCfgCustomizer .dcfg-psu { display:block; }
#drakoCfgSummary .dcfg-psu-intro,
#drakoCfgCustomizer .dcfg-psu-intro { font-size:12.5px; line-height:1.5; color:var(--dcfg-muted); margin:0 0 12px; }
#drakoCfgSummary .dcfg-psu-card,
#drakoCfgCustomizer .dcfg-psu-card { display:flex; align-items:center; gap:12px; border:1px solid var(--dcfg-border); border-radius:10px; padding:10px 12px; background:var(--dcfg-card,#fff); margin:0 0 14px; }
#drakoCfgSummary .dcfg-psu-card.is-empty,
#drakoCfgCustomizer .dcfg-psu-card.is-empty { border-style:dashed; }
#drakoCfgSummary .dcfg-psu-thumb,
#drakoCfgCustomizer .dcfg-psu-thumb { flex:0 0 auto; width:56px; height:56px; border-radius:8px; background:#f4f6f9; display:flex; align-items:center; justify-content:center; overflow:hidden; }
#drakoCfgSummary .dcfg-psu-thumb img,
#drakoCfgCustomizer .dcfg-psu-thumb img { max-width:100%; max-height:100%; object-fit:contain; }
#drakoCfgSummary .dcfg-psu-cardbody,
#drakoCfgCustomizer .dcfg-psu-cardbody { display:flex; flex-direction:column; gap:2px; min-width:0; }
#drakoCfgSummary .dcfg-psu-cardlabel,
#drakoCfgCustomizer .dcfg-psu-cardlabel { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--dcfg-muted); }
#drakoCfgSummary .dcfg-psu-cardname,
#drakoCfgCustomizer .dcfg-psu-cardname { font-size:13.5px; font-weight:600; color:var(--dcfg-ink); line-height:1.3; }
#drakoCfgSummary .dcfg-psu-cardwatt,
#drakoCfgCustomizer .dcfg-psu-cardwatt { font-size:12px; color:var(--dcfg-blue); font-weight:700; }
#drakoCfgSummary .dcfg-psu-power,
#drakoCfgCustomizer .dcfg-psu-power { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:2px 0 6px; }
#drakoCfgSummary .dcfg-psu-recnum,
#drakoCfgCustomizer .dcfg-psu-recnum { font-size:16px; color:var(--dcfg-ink); }
#drakoCfgSummary .dcfg-psu-recnum b,
#drakoCfgCustomizer .dcfg-psu-recnum b { font-size:34px; font-weight:800; line-height:1; letter-spacing:-.01em; }
#drakoCfgSummary .dcfg-psu-recnum span,
#drakoCfgCustomizer .dcfg-psu-recnum span { font-size:16px; color:var(--dcfg-muted); font-weight:600; }
#drakoCfgSummary .dcfg-psu-change,
#drakoCfgCustomizer .dcfg-psu-change { flex:0 0 auto; border:1px solid var(--dcfg-blue); background:#fff; color:var(--dcfg-blue); font-weight:700; font-size:13px; padding:8px 18px; border-radius:999px; cursor:pointer; transition:background .15s,color .15s; }
#drakoCfgSummary .dcfg-psu-change:hover,
#drakoCfgCustomizer .dcfg-psu-change:hover { background:var(--dcfg-blue); color:#fff; }
#drakoCfgSummary .dcfg-psu-reqline,
#drakoCfgCustomizer .dcfg-psu-reqline { font-size:12.5px; color:var(--dcfg-muted); margin:0 0 12px; }
#drakoCfgSummary .dcfg-psu-reqline b,
#drakoCfgCustomizer .dcfg-psu-reqline b { color:var(--dcfg-ink); }
#drakoCfgSummary .dcfg-psu-verdict,
#drakoCfgCustomizer .dcfg-psu-verdict { display:flex; align-items:center; gap:9px; font-size:13.5px; font-weight:700; padding:10px 13px; border-radius:8px; }
#drakoCfgSummary .dcfg-psu-verdict svg,
#drakoCfgCustomizer .dcfg-psu-verdict svg { width:18px; height:18px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
#drakoCfgSummary .dcfg-psu-verdict.ok,
#drakoCfgCustomizer .dcfg-psu-verdict.ok { background:rgba(22,163,74,.09); color:var(--dcfg-green); }
#drakoCfgSummary .dcfg-psu-verdict.bad,
#drakoCfgCustomizer .dcfg-psu-verdict.bad { background:rgba(207,38,50,.08); color:var(--dcfg-red); }
/* ===================================================================== */
/*  Barra sticky arricchita: 2 righe (codici + prezzo + azioni /          */
/*  riepilogo + fatti). Su scroll prende il posto di menu + ricerca.      */
/* ===================================================================== */
#drakoCfgBar .dcfg-bar-inner { flex-direction:column; align-items:stretch; gap:9px; padding-top:11px; padding-bottom:11px; }
#drakoCfgBar .dcfg-bar-main { display:flex; align-items:center; gap:16px; }
#drakoCfgBar .dcfg-bar-sub { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
#drakoCfgBar .dcfg-bar-codes { display:flex; flex-wrap:wrap; gap:2px 14px; font-size:12px; color:var(--dcfg-muted); }
#drakoCfgBar .dcfg-bar-codes b { color:var(--dcfg-ink); font-weight:700; }
#drakoCfgBar .dcfg-bar-priceblk { display:flex; flex-direction:column; line-height:1.05; }
#drakoCfgBar .dcfg-bar-priceblk small { font-size:10px; letter-spacing:.04em; color:var(--dcfg-muted); }
#drakoCfgBar .dcfg-bar-total { font-size:23px; font-weight:800; color:var(--dcfg-green); }
#drakoCfgBar .dcfg-bar-cust { border:1px solid var(--dcfg-blue); background:#fff; color:var(--dcfg-blue); font-weight:700; font-size:13px; padding:9px 18px; border-radius:8px; cursor:pointer; white-space:nowrap; transition:background .15s,color .15s; }
#drakoCfgBar .dcfg-bar-cust:hover { background:var(--dcfg-blue); color:#fff; }
#drakoCfgBar .dcfg-bar-sub .dcfg-bar-psu { display:inline-flex !important; }
/* fatti clonati nel bar: riga orizzontale, stesso stile item della scheda */
#drakoCfgBar .dcfg-facts { list-style:none; margin:0; padding:0; display:flex; flex-flow:row wrap; gap:6px 18px; border:0; }
#drakoCfgBar .dcfg-fact { display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--dcfg-ink); line-height:1.2; }
#drakoCfgBar .dcfg-fact svg { flex:0 0 auto; width:16px; height:16px; color:var(--dcfg-blue); }
#drakoCfgBar .dcfg-fact b { font-weight:700; }
/* Su scroll (barra attiva): nascondi il menu e la barra di ricerca del sito */
/* Immagine prodotto piu' grande col configuratore attivo:
   colonna info destra piu' stretta -> la galleria a sinistra si allarga */
.drako-pi-wrapper.dcfg-on .drako-pi-info { width:430px; }
@media (max-width:900px){.drako-pi-wrapper.dcfg-on .drako-pi-info { width:auto; }}
/* Refinement: su scroll nascondi l'intero header (niente riga-logo vuota); la barra va a top:0 */
#drakoCfgBar .dcfg-bar-logo { display:inline-flex; align-items:center; flex:0 0 auto; margin-right:2px; }
#drakoCfgBar .dcfg-bar-logo img { height:26px; width:auto; display:block; }
/* Bar piu' alta, piu' respiro in altezza (feedback) + badge alimentazione cliccabile/stati */
#drakoCfgBar .dcfg-bar-inner { padding-top:18px; padding-bottom:18px; gap:14px; }
#drakoCfgBar .dcfg-bar-main { min-height:46px; }
#drakoCfgBar .dcfg-bar-psu.is-ok, #drakoCfgBar .dcfg-bar-psu.is-ok .dcfg-bar-badge-ico { color:var(--dcfg-green); }
#drakoCfgBar .dcfg-bar-psu.is-bad, #drakoCfgBar .dcfg-bar-psu.is-bad .dcfg-bar-badge-ico { color:var(--dcfg-red); }
/* Gauge margine watt nel tab Alimentazione (UX) */
#drakoCfgSummary .dcfg-psu-gauge,
#drakoCfgCustomizer .dcfg-psu-gauge { margin:12px 0 4px; }
#drakoCfgSummary .dcfg-psu-gauge-track,
#drakoCfgCustomizer .dcfg-psu-gauge-track { position:relative; height:12px; border-radius:6px; background:#eef1f5; overflow:hidden; }
#drakoCfgSummary .dcfg-psu-gauge-cap,
#drakoCfgCustomizer .dcfg-psu-gauge-cap { position:absolute; left:0; top:0; bottom:0; background:rgba(22,163,74,.16); }
#drakoCfgSummary .dcfg-psu-gauge-cap.bad,
#drakoCfgCustomizer .dcfg-psu-gauge-cap.bad { background:rgba(207,38,50,.14); }
#drakoCfgSummary .dcfg-psu-gauge-fill,
#drakoCfgCustomizer .dcfg-psu-gauge-fill { position:absolute; left:0; top:0; bottom:0; background:var(--dcfg-blue); border-radius:6px; }
#drakoCfgSummary .dcfg-psu-gauge-mark,
#drakoCfgCustomizer .dcfg-psu-gauge-mark { position:absolute; top:-3px; bottom:-3px; width:2px; background:var(--dcfg-ink); }
#drakoCfgSummary .dcfg-psu-gauge-legend,
#drakoCfgCustomizer .dcfg-psu-gauge-legend { display:flex; flex-wrap:wrap; gap:4px 14px; margin-top:8px; font-size:11.5px; color:var(--dcfg-muted); }
#drakoCfgSummary .dcfg-psu-gauge-legend .lg,
#drakoCfgCustomizer .dcfg-psu-gauge-legend .lg { display:inline-flex; align-items:center; gap:5px; }
#drakoCfgSummary .dcfg-psu-gauge-legend .lg b,
#drakoCfgCustomizer .dcfg-psu-gauge-legend .lg b { color:var(--dcfg-ink); }
#drakoCfgSummary .dcfg-psu-gauge-legend .lg::before,
#drakoCfgCustomizer .dcfg-psu-gauge-legend .lg::before { content:''; width:10px; height:10px; border-radius:2px; }
#drakoCfgSummary .dcfg-psu-gauge-legend .lg-fill::before,
#drakoCfgCustomizer .dcfg-psu-gauge-legend .lg-fill::before { background:var(--dcfg-blue); }
#drakoCfgSummary .dcfg-psu-gauge-legend .lg-mark::before,
#drakoCfgCustomizer .dcfg-psu-gauge-legend .lg-mark::before { width:3px; height:12px; border-radius:0; background:var(--dcfg-ink); }
#drakoCfgSummary .dcfg-psu-gauge-legend .lg-cap::before,
#drakoCfgCustomizer .dcfg-psu-gauge-legend .lg-cap::before { background:rgba(22,163,74,.5); }
/* Reassurance conversione sotto il CTA */
#drakoCfgSummary .dcfg-reassure { display:flex; flex-wrap:wrap; gap:6px 16px; margin:10px 0 2px; font-size:12px; color:var(--dcfg-green); font-weight:600; }
#drakoCfgSummary .dcfg-reassure span { white-space:nowrap; }
/* Riepilogo componenti: miniatura + prezzo per riga (UX/conversione) */
#drakoCfgSummary .dcfg-cl-row { display:flex; align-items:center; gap:10px; }
#drakoCfgSummary .dcfg-cl-thumb { flex:0 0 auto; width:38px; height:38px; object-fit:contain; border:1px solid var(--dcfg-border); border-radius:6px; background:#fff; padding:2px; box-sizing:border-box; }
#drakoCfgSummary .dcfg-cl-row .dcfg-cl-txt { flex:1 1 auto; min-width:0; }
#drakoCfgSummary .dcfg-cl-price { flex:0 0 auto; font-weight:700; font-size:12.5px; color:var(--dcfg-ink); white-space:nowrap; }
/* Badge Alimentazione barra -> dropdown pannello PSU dall'alto */
#drakoCfgBar .dcfg-bar-psu { cursor:pointer; }
#drakoCfgBar.is-psu-open .dcfg-bar-psu { color:var(--dcfg-blue); }
#drakoCfgBar [data-role="bar-psu-panel"] { max-width:580px; }
/* Badge FPS barra -> dropdown pannello benchmark: cappato in larghezza (leggibile),
   non tutta la barra. Come il dropdown PSU. */
/* Pannello espanso alla "dimensione giusta" del mockup approvato (~960px), centrato:
   a questa larghezza l'hero FPS/Bilanciamento/Alimentazione sta su 3 colonne. */
#drakoCfgBar .dcfg-bar-fps { cursor:pointer; }
#drakoCfgBar .dcfg-psu { display:block; }
#drakoCfgBar .dcfg-psu-intro { font-size:12.5px; line-height:1.5; color:var(--dcfg-muted); margin:0 0 12px; }
#drakoCfgBar .dcfg-psu-card { display:flex; align-items:center; gap:12px; border:1px solid var(--dcfg-border); border-radius:10px; padding:10px 12px; background:var(--dcfg-card,#fff); margin:0 0 14px; }
#drakoCfgBar .dcfg-psu-card.is-empty { border-style:dashed; }
#drakoCfgBar .dcfg-psu-thumb { flex:0 0 auto; width:56px; height:56px; border-radius:8px; background:#f4f6f9; display:flex; align-items:center; justify-content:center; overflow:hidden; }
#drakoCfgBar .dcfg-psu-thumb img { max-width:100%; max-height:100%; object-fit:contain; }
#drakoCfgBar .dcfg-psu-cardbody { display:flex; flex-direction:column; gap:2px; min-width:0; }
#drakoCfgBar .dcfg-psu-cardlabel { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--dcfg-muted); }
#drakoCfgBar .dcfg-psu-cardname { font-size:13.5px; font-weight:600; color:var(--dcfg-ink); line-height:1.3; }
#drakoCfgBar .dcfg-psu-cardwatt { font-size:12px; color:var(--dcfg-blue); font-weight:700; }
#drakoCfgBar .dcfg-psu-power { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:2px 0 6px; }
#drakoCfgBar .dcfg-psu-recnum { font-size:16px; color:var(--dcfg-ink); }
#drakoCfgBar .dcfg-psu-recnum b { font-size:34px; font-weight:800; line-height:1; letter-spacing:-.01em; }
#drakoCfgBar .dcfg-psu-recnum span { font-size:16px; color:var(--dcfg-muted); font-weight:600; }
#drakoCfgBar .dcfg-psu-change { flex:0 0 auto; border:1px solid var(--dcfg-blue); background:#fff; color:var(--dcfg-blue); font-weight:700; font-size:13px; padding:8px 18px; border-radius:999px; cursor:pointer; transition:background .15s,color .15s; }
#drakoCfgBar .dcfg-psu-change:hover { background:var(--dcfg-blue); color:#fff; }
#drakoCfgBar .dcfg-psu-reqline { font-size:12.5px; color:var(--dcfg-muted); margin:0 0 12px; }
#drakoCfgBar .dcfg-psu-reqline b { color:var(--dcfg-ink); }
#drakoCfgBar .dcfg-psu-verdict { display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600; padding:9px 12px; border-radius:8px; }
#drakoCfgBar .dcfg-psu-verdict svg { width:18px; height:18px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
#drakoCfgBar .dcfg-psu-verdict.ok { background:rgba(22,163,74,.09); color:var(--dcfg-green); }
#drakoCfgBar .dcfg-psu-verdict.bad { background:rgba(207,38,50,.08); color:var(--dcfg-red); }
#drakoCfgBar .dcfg-psu-gauge { margin:12px 0 4px; }
#drakoCfgBar .dcfg-psu-gauge-track { position:relative; height:12px; border-radius:6px; background:#eef1f5; overflow:hidden; }
#drakoCfgBar .dcfg-psu-gauge-cap { position:absolute; left:0; top:0; bottom:0; background:rgba(22,163,74,.16); }
#drakoCfgBar .dcfg-psu-gauge-cap.bad { background:rgba(207,38,50,.14); }
#drakoCfgBar .dcfg-psu-gauge-fill { position:absolute; left:0; top:0; bottom:0; background:var(--dcfg-blue); border-radius:6px; }
#drakoCfgBar .dcfg-psu-gauge-mark { position:absolute; top:-3px; bottom:-3px; width:2px; background:var(--dcfg-ink); }
#drakoCfgBar .dcfg-psu-gauge-legend { display:flex; flex-wrap:wrap; gap:4px 14px; margin-top:8px; font-size:11.5px; color:var(--dcfg-muted); }
#drakoCfgBar .dcfg-psu-gauge-legend .lg { display:inline-flex; align-items:center; gap:5px; }
#drakoCfgBar .dcfg-psu-gauge-legend .lg b { color:var(--dcfg-ink); }
#drakoCfgBar .dcfg-psu-gauge-legend .lg::before { content:''; width:10px; height:10px; border-radius:2px; }
#drakoCfgBar .dcfg-psu-gauge-legend .lg-fill::before { background:var(--dcfg-blue); }
#drakoCfgBar .dcfg-psu-gauge-legend .lg-mark::before { width:3px; height:12px; border-radius:0; background:var(--dcfg-ink); }
#drakoCfgBar .dcfg-psu-gauge-legend .lg-cap::before { background:rgba(22,163,74,.5); }
/* Fix pulsante Cambia nel dropdown PSU della barra (specificita' alta) */
/* FIX: variabili --dcfg-* disponibili anche nella barra (erano solo su Summary/Customizer) */
#drakoCfgBar {
  --dcfg-blue:#1c63ab; --dcfg-blue-d:#154e87; --dcfg-green:#16a34a;
  --dcfg-card:#ffffff; --dcfg-border:#e2e6eb; --dcfg-ink:#1f2937; --dcfg-muted:#6b7280;
  --dcfg-red:#cf2632; --dcfg-red-bg:#fdecec; --dcfg-amber:#92600a; --dcfg-amber-bg:#fff6e5;
}
/* Barra snella: badge Alimentazione+FPS in riga principale, totale piu' grande */
#drakoCfgBar .dcfg-bar-main .dcfg-bar-psu, #drakoCfgBar .dcfg-bar-fps { display:inline-flex !important; }
#drakoCfgBar .dcfg-bar-total { font-size:30px; }
#drakoCfgBar .dcfg-bar-main { gap:14px; align-items:center; }
/* Spacer in-flow per la barra fissa-sotto-header in cima */
/* Logo barra: solo su takeover (in cima l'header del sito ha gia' il suo logo) */
#drakoCfgBar .dcfg-bar-logo { display:none; }
/* Barra una riga: padding piu' contenuto */
#drakoCfgBar .dcfg-bar-inner { padding-top:12px; padding-bottom:12px; }
/* ===== Etichetta negozio (PROMO/NOVITA') + countdown offerta in scadenza (adattati al configuratore) ===== */
#drakoCfgCustomizer .drako-pcb2-opt-badges { position:absolute; top:8px; left:8px; z-index:4; display:flex; gap:4px; pointer-events:none; }
#drakoCfgCustomizer .drako-pcb2-opt-badge {
  font-size:10px; font-weight:800; letter-spacing:.03em; text-transform:uppercase;
  color:#fff; padding:3px 8px; border-radius:4px; line-height:1.25;
  box-shadow:0 1px 3px rgba(15,23,42,.22); white-space:nowrap;
}
#drakoCfgCustomizer .drako-pcb2-opt-badge.is-promo { background:#e65100; }
#drakoCfgCustomizer .drako-pcb2-opt-badge.is-new  { background:var(--dcfg-blue, #1c63ab); }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-badges { top:6px; left:6px; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-badge { font-size:9px; padding:2px 6px; }
/* SCADENZA: pastiglia, non fascia (15/08)
   ---------------------------------------------------------------------------
   Era una fascia rossa piena a tutta larghezza (#cf2632, bianco sopra), ripetuta
   fino a nove volte in una sola schermata di opzioni. Risultato misurato
   nell'audit: l'oggetto più forte della pagina era un conto alla rovescia su una
   RAM da 500 €, mentre la macchina da 4.888 € aveva il prezzo a 3,13:1. L'urgenza
   era applicata all'oggetto sbagliato.
   Ora è una pastiglia in linea: dice la stessa cosa, occupa lo spazio che le
   compete e lascia il rosso pieno al prezzo e al pulsante.
   #b91c1c su #fdecec = 5,67:1. */
#drakoCfgCustomizer .drako-pcb2-opt-countdown {
  display:inline-flex; align-items:center; justify-content:center; gap:5px;
  width:auto; margin-top:8px; box-sizing:border-box;
  background:var(--dcfg-red-bg, #fdecec); color:#b91c1c;
  border:1px solid #f3c9c9;
  font-size:11px; font-weight:700; font-variant-numeric:tabular-nums;
  padding:3px 9px; border-radius:100px; letter-spacing:.02em;
}
#drakoCfgCustomizer .drako-pcb2-opt-countdown .dcfg-cd-ico { font-size:13px; line-height:1; }
/* list view: la riga resta singola; il countdown va a capo a tutta larghezza sotto */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt { flex-wrap:wrap; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-countdown { flex:0 0 auto; margin-top:10px; }
/* ===== Card opzione allineate alle card del negozio (immagine grande, tipografia, variazione, CTA, countdown a filo) ===== */
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt { border-radius:8px; padding:12px; gap:0; text-align:left; }
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-img { width:100%; height:auto; aspect-ratio:1/1; max-height:180px; object-fit:contain; background:#fff; margin-bottom:4px; }
#drakoCfgCustomizer .dcfg-cat { scroll-margin-top:135px; }
#drakoCfgCustomizer .dcfg-cnav-link, #drakoCfgCustomizer .dcfg-cnav-hero { transition:background-color .15s ease, color .15s ease; }
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-brand { font-size:11px; letter-spacing:.04em; color:#9ca3af; font-weight:700; margin-bottom:2px; }
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-name { font-size:13px; line-height:1.4; font-weight:600; color:#3a3a3a; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.8em; margin-bottom:2px; }
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-code { font-size:11px; color:#9ca3af; margin-bottom:4px; }
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-avail { font-size:12px; font-weight:400; margin-top:3px; }
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-avail.is-avail { color:#15803d; }
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-price { text-align:left; margin-top:12px; }
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-delta { font-size:17px; font-weight:700; }
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-delta.is-included { font-size:14px; }
/* CTA stile bottone negozio (tutta la card resta cliccabile) */
#drakoCfgCustomizer .drako-pcb2-opt-cta { display:none; margin-top:10px; padding:9px 12px; border-radius:6px; background:#1c63ab; color:#fff; text-align:center; font-size:13px; font-weight:700; line-height:1.2; transition:background .15s; }
#drakoCfgCustomizer .drako-pcb2-opt-cta::before { content:"Seleziona"; }
#drakoCfgCustomizer .drako-pcb2-opt:hover .drako-pcb2-opt-cta { background:#154e87; }
#drakoCfgCustomizer .drako-pcb2-opt.is-selected .drako-pcb2-opt-cta { background:#16a34a; }
#drakoCfgCustomizer .drako-pcb2-opt.is-selected .drako-pcb2-opt-cta::before { content:"Selezionato"; }
/* 15/08: `:not(.is-included)` — la variazione sparisce sulla scheda scelta, ma
   «Nel prezzo» deve restare, altrimenti la card scelta è l'unica bianca in una
   griglia di cifre. Regola gemella a ~riga 1200. */
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt.is-selected .drako-pcb2-opt-delta:not(.is-included) { display:none; }
/* 15/08: era «countdown a filo del fondo card» — cioè la stessa fascia rossa
   piena, allargata fino ai bordi della scheda, che la rendeva l'oggetto più
   forte della griglia. Resta la pastiglia definita sopra: qui si aggiusta solo
   la spaziatura, non si reintroduce la fascia. */
#drakoCfgCustomizer .dcfg-cat-grid:not(.is-list) .drako-pcb2-opt-countdown { margin:10px 0 0; }
/* list view: niente bottone CTA (riga compatta), countdown a piena larghezza sotto */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-cta { display:none; }
/* brand rimosso dalle card opzione (ridondante: il nome inizia gia' col brand) */
#drakoCfgCustomizer .drako-pcb2-opt-brand { display:none !important; }
/* ===== Incompatibilita': bordo statico, respiro SOLO al click (~2.4s), selezionato = verde come i compatibili ===== */
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat { animation:none; border-color:var(--dcfg-border); }
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat.dcfg-breathe { animation:dcfgBreatheBox 2.4s ease-in-out; }
/* FASE A 2026-07-13: rimossa l'animazione sul contenitore (.dcfg-breathing) - respira solo la card cliccata (.dcfg-breathe) */
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat.is-selected { border-color:#cf2632; box-shadow:none; background:#fff5f5; }
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat.is-selected .drako-pcb2-opt-cta { background:#cf2632; }
/* Storicamente: «variazione in colore neutro (blu), non verde/rosso» — ma il
   valore scritto era #1a1a1a (quasi nero, non blu) su ENTRAMBE le classi, e la
   regola stava qui *e* a riga ~75, duplicata. 15/08: il rosso resta bandito,
   il sovrapprezzo resta neutro, solo il risparmio si tinge di verde. Le due
   regole ora dicono la stessa cosa; se ne tocchi una, tocca anche l'altra. */
#drakoCfgCustomizer .drako-pcb2-opt-delta.is-positive { color:#374151; }
#drakoCfgCustomizer .drako-pcb2-opt-delta.is-negative { color:#15803d; }
/* disponibilita' identica alle card del negozio (classi pdm-stock riusate) */
#drakoCfgCustomizer .drako-pcb2-opt-stock { margin:4px 0 0; }
/* Riepilogo + FPS tolti dal pannello riepilogo su richiesta: l'FPS va mostrato
   come variazione nelle card di CPU e GPU. (Il blocco PSU nascosto resta per il
   dropdown della barra.) */
#drakoCfgSummary .dcfg-tabs, #drakoCfgSummary .dcfg-tabpane { display:none !important; }
/* ===== Nav sinistra: ogni blocco = riquadro bianco arrotondato ===== */
#drakoCfgCustomizer .dcfg-cnav-hero { background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:14px 12px; margin-bottom:12px; box-shadow:0 1px 3px rgba(15,23,42,.05); }
#drakoCfgCustomizer .dcfg-cnav-group ul { display:flex; flex-direction:column; gap:8px; }
#drakoCfgCustomizer .dcfg-cnav-link { background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:10px; box-shadow:0 1px 3px rgba(15,23,42,.05); }
#drakoCfgCustomizer .dcfg-cnav-link:hover { background:#f8fafc; border-color:#cfe0f2; }
#drakoCfgCustomizer .dcfg-cnav-link.is-active { background:#eef4fb; border-color:#1c63ab; }
#drakoCfgCustomizer .dcfg-cnav-link.has-error { border-color:#e9a4a7; }
#drakoCfgCustomizer .dcfg-cnav-link.has-warn { border-color:#e8cf9a; }
/* ===== Card prodotto: stessa resa a riquadro bianco arrotondato ===== */
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt { box-shadow:0 1px 3px rgba(15,23,42,.05); }
/* ============ NAV: blocco FPS mini + riepilogo unico compatto ============ */
/* FPS (dov'era la foto del case): mostra SOLO il numero; hover/focus = widget completo */
#drakoCfgCustomizer .dcfg-cnav-fps { position:relative; margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid #e2e6eb; }
#drakoCfgCustomizer .dcfg-cnav-fps-badge { display:flex; align-items:center; gap:10px; padding:11px 12px; border:1px solid #dfe6ef; border-radius:12px; background:linear-gradient(180deg,#f7fafd,#eaf2fb); cursor:help; }
#drakoCfgCustomizer .dcfg-cnav-fps-ic { flex:0 0 auto; color:#1c63ab; }
#drakoCfgCustomizer .dcfg-cnav-fps-num { font-size:26px; font-weight:800; line-height:1; color:#16a34a; letter-spacing:-.01em; }
/* flyout col widget completo: adiacente (no gap) cosi' l'hover non si perde */
/* Riepilogo nav: UNICO blocco compatto, senza titoli */
#drakoCfgCustomizer .dcfg-cnav-riepilogo { margin-bottom:0; }
#drakoCfgCustomizer .dcfg-cnav-riepilogo .dcfg-cnav-link { gap:9px; padding:5px 6px; }
#drakoCfgCustomizer .dcfg-cnav-riepilogo .dcfg-cnav-thumb { flex:0 0 42px; width:42px; height:42px; border-radius:7px; }
#drakoCfgCustomizer .dcfg-cnav-riepilogo .dcfg-cnav-name { font-size:12.5px; }
#drakoCfgCustomizer .dcfg-cnav-riepilogo .dcfg-cnav-lbl { font-size:9.5px; }
/* Fix: la nav (prima nel DOM) finiva SOTTO le card -> il flyout FPS si vedeva
   trasparente/sovrapposto. Alzo lo stacking della nav e del flyout. */
#drakoCfgCustomizer .dcfg-cust-shell { position:relative; }
#drakoCfgCustomizer .dcfg-cnav { z-index:50; }
/* variazione FPS su opzioni CPU/GPU (pill neutra sotto la variazione prezzo) */
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-price { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; justify-content:space-between; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-price { justify-content:flex-end; }
#drakoCfgCustomizer .drako-pcb2-opt-fps { font-size:17px; font-weight:800; color:#1a1a1a; font-variant-numeric:tabular-nums; display:inline-flex; align-items:center; gap:5px; }
/* 14/08/2026 - il badge è di UN colore solo, segno + numero + "FPS" insieme: prima la
   sigla restava blu e usciva un accostamento blu/verde che sembrava un errore.
   Verde #15803d e non #16a34a: su bianco fa 5,0:1 invece di 3,3:1, e la sigla "FPS" è
   testo piccolo (13px), che a 3,3:1 non si legge abbastanza. */
#drakoCfgCustomizer .drako-pcb2-opt-fps.is-up { color:#15803d; }
/* #b91c1c e non #b03636: quest'ultimo è il rosso del BACKOFFICE (--dk-bad in
   admin_palette.css), arrivato qui per contagio. Il frontend usa la triade
   #15803d / #b45309 / #b91c1c, tutti della stessa famiglia; #b03636 era il
   solo fuori scala e faceva due rossi indistinguibili nella stessa pagina. */
#drakoCfgCustomizer .drako-pcb2-opt-fps.is-down { color:#b91c1c; }
/* 14/08/2026 - niente pittogramma del gioco sulle variazioni FPS, né in elenco né in
   card: la stessa iconcina ripetuta su ogni opzione è rumore, e il gioco lo dichiara
   già il badge in cima alla colonna. Resta il numero, che è ciò su cui si sceglie. */
/* lista: FPS prima del prezzo */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-fps { order:-1; }
/* Foto del case rimessa (in cima alla nav, gli FPS vanno sotto) - compatta */
#drakoCfgCustomizer .dcfg-cnav-hero { display:block !important; text-align:center; padding:2px 4px 12px; margin:0 0 12px; border-bottom:1px solid #e2e6eb; }
#drakoCfgCustomizer .dcfg-cnav-hero-img { max-width:100%; max-height:150px; object-fit:contain; }
/* Badge FPS: due righe -> [icona + numero + FPS] sopra, [gioco . risoluzione] sotto */
#drakoCfgCustomizer .dcfg-cnav-fps-badge { flex-direction:column; align-items:stretch; gap:3px; }
#drakoCfgCustomizer .dcfg-cnav-fps-top { display:flex; align-items:center; gap:8px; }
#drakoCfgCustomizer .dcfg-cnav-fps-unit { font-size:12px; font-weight:800; color:#1c63ab; letter-spacing:.03em; }
#drakoCfgCustomizer .dcfg-cnav-fps-game { color:#1c63ab; }
/* Flyout FPS: non deve uscire dal viewport (prima era tagliato a destra) */
/* lista: prezzo e FPS in colonne allineate a destra, ben separate */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-price { justify-content:flex-end; gap:18px; flex-wrap:nowrap; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-delta { min-width:94px; text-align:right; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-fps { min-width:78px; text-align:right; }
/* Flyout FPS: adattamento ROBUSTO al viewport (prima veniva tagliato a destra).
   Largh. limitata allo spazio disponibile; alto quanto il viewport con scroll
   per vedere la lista multi-gioco completa. */
/* ===== Badge FPS: TUTTO SU UNA RIGA (numero . gioco . risoluzione) ===== */
#drakoCfgCustomizer .dcfg-cnav-fps-badge { flex-direction:row !important; align-items:center; gap:5px; flex-wrap:nowrap; overflow:hidden; }
#drakoCfgCustomizer .dcfg-cnav-fps-num { font-size:20px; line-height:1; }
#drakoCfgCustomizer .dcfg-cnav-fps-unit { font-size:12px; font-weight:800; color:#1c63ab; }
#drakoCfgCustomizer .dcfg-cnav-fps-game { font-size:12px; font-weight:700; color:#1c2430; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
#drakoCfgCustomizer .dcfg-cnav-fps-res { font-size:12px; font-weight:700; color:#5f6774; flex:0 0 auto; }
/* Flyout: formattazione ORIGINALE (single-column), aperto piu' in ALTO (dal top
   della nav) e SENZA scrollbar cosi' ci sta tutto. */
#drakoCfgCustomizer .dcfg-cnav-fps { position:static; }
/* Nel flyout nav: niente scrollbar INTERNA sulla lista multi-gioco (mostra tutti i titoli) */
/* Flyout FPS ancora un po' piu' in alto (richiesta utente) */
/* Lista multi-gioco nel flyout: RIMETTO la scrollbar (era "troppo" alta senza) e
   piu' spazio tra le righe (erano "troppo attaccati"). */
/* Lista giochi flyout: piu' COMPATTA (barra sottile, badge piccolo) ma con le
   righe piu' SEPARATE (i 144hz erano troppo attaccati). */
/* Righe lista giochi PIU' separate (i 144hz erano ancora troppo attaccati) */
/* FIX: la lista era display:block (gap ignorato!). Torno a grid single-column
   cosi' il gap tra le righe funziona davvero (144hz separati). */
/* Flyout FPS piu' BASSO (era tagliato sopra e sotto): comprimo il blocco
   risultato (contatore + card) e accorcio la lista. */
/* Flyout leggermente piu' in BASSO (richiesta utente, era un filo troppo su) */
/* Chip FPS: immagine del gioco accanto al nome + tolta l'iconcina controller */
#drakoCfgCustomizer .dcfg-cnav-fps-ic { display:none !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-gimg { width:18px; height:18px; border-radius:4px; object-fit:cover; flex:0 0 auto; }
#drakoCfgCustomizer .dcfg-cnav-fps-gimg[hidden] { display:none !important; }
/* ADATTA il contenuto del flyout allo spazio disponibile: altezza max = viewport;
   la lista giochi riempie lo spazio che resta e scrolla (niente taglio sopra/sotto). */
/* REVERT: l'adattamento va sul BADGE, non sul flyout. Ripristino il flyout compatto. */
/* Badge FPS: adatto gli elementi allo spazio disponibile -> il NOME GIOCO e'
   l'elemento flessibile (cresce/si stringe con ellissi), tutto il resto e' fisso
   e sempre visibile (numero, FPS, immagine, risoluzione). */
#drakoCfgCustomizer .dcfg-cnav-fps-badge { min-width:0; }
#drakoCfgCustomizer .dcfg-cnav-fps-num,
#drakoCfgCustomizer .dcfg-cnav-fps-unit,
#drakoCfgCustomizer .dcfg-cnav-fps-sep,
#drakoCfgCustomizer .dcfg-cnav-fps-gimg,
#drakoCfgCustomizer .dcfg-cnav-fps-res { flex:0 0 auto !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-game { flex:1 1 auto !important; min-width:0 !important; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* Badge FPS: nome + FOTO del gioco CENTRATI (FPS a sinistra, risoluzione a
   destra), senza il punto separatore. Griglia 1fr|auto|1fr -> il centro e'
   davvero centrato nel badge. */
#drakoCfgCustomizer .dcfg-cnav-fps-badge { display:grid !important; grid-template-columns:1fr auto 1fr !important; align-items:center !important; gap:8px !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-res { justify-self:end; }
/* Badge FPS piu' alto */
#drakoCfgCustomizer .dcfg-cnav-fps-badge { padding:14px 13px !important; }
/* Sezioni categoria in stile "Gaming RIG": barra bianca + accento blu a sinistra,
   titolo a sx e scelta Card/Lista DENTRO la barra (a destra). */
#drakoCfgCustomizer .dcfg-cat-head { display:flex !important; align-items:center !important; gap:8px !important; flex-wrap:wrap; background:#fff; border:1px solid #e2e6eb; border-left:4px solid #1c63ab; border-radius:10px; padding:12px 16px !important; margin-bottom:18px !important; box-shadow:0 1px 3px rgba(16,32,64,.05); }
#drakoCfgCustomizer .dcfg-cat-view { margin-left:auto; }
/* Hero case nella nav: foto PIU' GROSSA + riquadro bianco con padding attorno,
   come la gallery della scheda prodotto (Image #33). */
#drakoCfgCustomizer .dcfg-cnav-hero { background:#fff !important; border:1px solid #e5e7eb !important; border-radius:12px !important; box-shadow:0 1px 3px rgba(15,23,42,.05) !important; padding:18px 16px !important; margin:0 0 14px !important; }
#drakoCfgCustomizer .dcfg-cnav-hero-img { max-width:100% !important; max-height:220px !important; object-fit:contain !important; }
/* === Nav: hero cliccabile + riga CASE rimossa + badge piu' grande (Image #33) === */
/* Hero: <a> cliccabile -> scrolla alla sezione Case; foto "come adesso" su blocco bianco. */
#drakoCfgCustomizer a.dcfg-cnav-hero { display:block !important; cursor:pointer; text-decoration:none; padding:12px 8px !important; transition:box-shadow .15s, border-color .15s; }
#drakoCfgCustomizer a.dcfg-cnav-hero:hover { border-color:#c9d4e2 !important; box-shadow:0 3px 10px rgba(15,23,42,.12) !important; }
/* Togli la riga CASE dalla lista (il case e' gia' l'hero cliccabile in cima). */
#drakoCfgCustomizer .dcfg-cnav-riepilogo li:has(a[data-goto="case"]) { display:none !important; }
/* Badge FPS piu' grande. */
#drakoCfgCustomizer .dcfg-cnav-fps-badge { padding:18px 15px !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-num { font-size:27px !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-unit { font-size:13px !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-game { font-size:14.5px !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-res { font-size:13px !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-gimg { width:22px !important; height:22px !important; }
/* Righe lista un filo piu' ariose. */
#drakoCfgCustomizer .dcfg-cnav-riepilogo .dcfg-cnav-link { padding:7px 9px !important; }
/* Hero: il BIANCO e' lo sfondo del BLOCCO (non della foto). Blocco ampio con la
   foto piccola centrata, come la gallery della scheda prodotto (Image #34). */
#drakoCfgCustomizer a.dcfg-cnav-hero { display:flex !important; flex-direction:column; align-items:center; justify-content:center; gap:12px; min-height:230px; background:#fff !important; }
#drakoCfgCustomizer .dcfg-cnav-hero-img { max-width:100% !important; width:100% !important; height:auto !important; max-height:none !important; object-fit:contain !important; }
#drakoCfgCustomizer .dcfg-cnav-case-caption { display:block; width:100%; padding-top:10px; border-top:1px solid #eef0f3; text-align:left; }
#drakoCfgCustomizer a.dcfg-cnav-hero:hover .dcfg-cnav-hero-name { color:#1c63ab; }
#drakoCfgCustomizer .dcfg-cnav-case-lbl { display:none !important; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; color:#5f6774; line-height:1.2; margin-bottom:2px; }
#drakoCfgCustomizer .dcfg-cnav-hero-name { display:block; width:100%; font-size:13px; line-height:1.25; font-weight:400; color:#1f2937; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* ============================================================
   NAV = PANNELLO BIANCO (il "background del blocco" che mancava):
   tutto il contenitore nav ha sfondo bianco, non piu' il grigio tra le card. */
#drakoCfgCustomizer .dcfg-cnav { background:#fff !important; border:1px solid #e5e7eb !important; border-radius:12px !important; padding:12px !important; box-shadow:0 1px 3px rgba(15,23,42,.06) !important; }
/* Card interne: via le ombre (niente alone grigio sul pannello bianco), bordo tenue. */
#drakoCfgCustomizer a.dcfg-cnav-hero { box-shadow:none !important; border-color:#eef0f3 !important; }
#drakoCfgCustomizer .dcfg-cnav-riepilogo .dcfg-cnav-link { box-shadow:none !important; }
/* Badge FPS nettamente piu' grande. */
#drakoCfgCustomizer .dcfg-cnav-fps-badge { padding:20px 15px !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-num { font-size:30px !important; }
/* ============================================================
   PANNELLO PRODOTTO (scheda cfg-on) = BIANCO (Image #38): il wrapper che
   contiene galleria + riepilogo aveva sfondo trasparente (si vedeva il grigio). */
.drako-pi-wrapper.dcfg-on { background:#fff !important; border:1px solid #e5e7eb; border-radius:14px; padding:22px 22px 26px; box-shadow:0 1px 3px rgba(15,23,42,.05); }
/* Badge FPS: rimetto l'ICONA CONTROLLER (come il chip FPS del topbar, dcfg_ic_game.png)
   e lo faccio ancora piu' grande. */
#drakoCfgCustomizer .dcfg-cnav-fps-ic { display:inline-block !important; width:22px !important; height:22px !important; object-fit:contain; vertical-align:middle; flex:0 0 auto; }
#drakoCfgCustomizer .dcfg-cnav-fps-badge { padding:22px 16px !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-num { font-size:34px !important; }
/* ===== Menu unificato barra: FPS+Alimentazione affiancati + finanziamento + trust + lista ===== */
#drakoCfgBar .dcfg-bar-uni { max-width:1240px; margin:0 auto; padding:16px 20px 18px; border-top:1px solid #f0f2f5; max-height:72vh; overflow-y:auto; }
#drakoCfgBar .dcfg-bar-uni-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
@media (max-width:820px){#drakoCfgBar .dcfg-bar-uni-grid { grid-template-columns:1fr; }}
#drakoCfgBar .dcfg-bar-uni-card { background:#f8fafc; border:1px solid #e5e7eb; border-radius:10px; padding:12px; }
#drakoCfgBar .dcfg-bar-uni-h { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--dcfg-muted); margin:0 0 8px; display:flex; align-items:center; gap:5px; }
#drakoCfgBar .dcfg-uni-h-ic { width:30px; height:30px; flex:0 0 30px; object-fit:contain; }
/* ============================================================
   HEADER prodotto (brand+titolo+descrizione+recensioni) UNITO al pannello:
   .drako-pi-cfghead (sopra) + .drako-pi-wrapper.dcfg-on (sotto) = 1 blocco bianco. */
.drako-pi-cfghead { background:#fff !important; border:1px solid #e5e7eb !important; border-bottom:none !important; border-radius:14px 14px 0 0 !important; padding:20px 22px 12px !important; margin:0 !important; }
.drako-pi-wrapper.dcfg-on { border-top:none !important; border-radius:0 0 14px 14px !important; margin-top:0 !important; padding-top:12px !important; }
/* Badge FPS: fix sovrapposizioni. Griglia auto|1fr|auto -> il gioco riempie il centro
   e va in ellissi, niente collisioni. Numero piu' contenuto. */
#drakoCfgCustomizer .dcfg-cnav-fps-badge { grid-template-columns:auto 1fr auto !important; padding:16px 13px !important; gap:8px !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-num { font-size:26px !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-ic { width:20px !important; height:20px !important; }
/* Ritocco finale nav: case actions + badge FPS piu' alto. */
#drakoCfgCustomizer .dcfg-cnav-actions { display:flex; align-items:center; justify-content:center; gap:18px; padding:2px 2px 12px; margin:-6px 0 12px; border-bottom:1px solid #e2e6eb; text-align:center; }
#drakoCfgCustomizer .dcfg-cnav-action { appearance:none; border:0; background:none; padding:0; display:inline-flex; align-items:center; gap:5px; font-family:inherit; font-size:12.5px; font-weight:600; color:#475569; cursor:pointer; white-space:nowrap; }
#drakoCfgCustomizer .dcfg-cnav-action:hover { color:#1c63ab; }
#drakoCfgCustomizer .dcfg-cnav-action svg { width:14px; height:14px; flex:0 0 auto; }
#drakoCfgCustomizer .dcfg-cnav-fps { margin-top:0 !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-badge { min-height:74px !important; padding:22px 16px !important; border-color:#9cc8f4 !important; background:linear-gradient(135deg,#eef7ff 0%,#e8f8ef 100%) !important; box-shadow:0 0 0 3px rgba(28,99,171,.08), 0 8px 18px rgba(28,99,171,.14) !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-badge:hover,
#drakoCfgCustomizer .dcfg-cnav-fps:focus-within .dcfg-cnav-fps-badge { border-color:#1c63ab !important; box-shadow:0 0 0 3px rgba(28,99,171,.14), 0 10px 24px rgba(28,99,171,.20) !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-num { font-size:34px !important; color:#10a64a !important; text-shadow:0 1px 0 rgba(255,255,255,.75); }
#drakoCfgCustomizer .dcfg-cnav-fps-game { font-size:15px !important; }
/* Ritocco finale sticky bar: niente logo, griglia full-width, badge piu' evidenti. */
#drakoCfgBar .dcfg-bar-logo { display:none !important; }
#drakoCfgBar .dcfg-bar-inner { max-width:none !important; padding:14px 28px !important; }
#drakoCfgBar .dcfg-bar-main { grid-template-columns:minmax(150px,1fr) minmax(165px,1fr) minmax(220px,1.25fr) minmax(190px,.95fr) minmax(210px,.95fr); gap:18px !important; min-height:68px !important; }
#drakoCfgBar .dcfg-bar-spacer { display:none !important; }
#drakoCfgBar .dcfg-bar-badge { min-height:56px; box-sizing:border-box; padding:10px 16px !important; border-radius:10px; }
#drakoCfgBar .dcfg-bar-badge-img { width:34px !important; height:34px !important; }
#drakoCfgBar .dcfg-bar-fps { background:#eef4ff; border-color:#c7d7f5; }
#drakoCfgBar .dcfg-bar-finance.is-paypal { background:#f4f8ff; border-color:#c7d7f5; }
#drakoCfgBar .dcfg-bar-finance.is-klarna { background:#fff3f8; border-color:#f7c8dc; }
#drakoCfgBar .dcfg-bar-finance.is-sella { background:#f3f7ff; border-color:#bfd0ef; }
#drakoCfgBar .dcfg-bar-priceblk { justify-self:end; }
#drakoCfgBar .dcfg-bar-total { font-size:32px !important; line-height:1; }
#drakoCfgBar .dcfg-bar-add { width:100%; min-height:54px; border-radius:8px; font-size:15px; }
#drakoCfgBar .dcfg-bar-uni { max-width:none !important; box-sizing:border-box; padding:18px 28px 22px !important; }
#drakoCfgBar .dcfg-bar-uni-grid { grid-template-columns:1fr 1fr 1fr !important; }
#drakoCfgBar .dcfg-bar-data { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px 16px; }
#drakoCfgBar .dcfg-bar-data li { display:flex; align-items:center; gap:8px; font-size:13px; color:#1f2937; min-width:0; }
@media (max-width:1100px){#drakoCfgBar .dcfg-bar-main { grid-template-columns:repeat(3,minmax(150px,1fr)); }
#drakoCfgBar .dcfg-bar-priceblk { justify-self:start; }
#drakoCfgBar .dcfg-bar-data { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
/* Sticky bar: rientra nel binario della scheda prodotto, con spazi compatti. */
#drakoCfgBar .dcfg-bar-inner { padding:9px 20px !important; }
#drakoCfgBar .dcfg-bar-main { width:100%; grid-template-columns:minmax(140px,178px) minmax(155px,190px) minmax(190px,238px) minmax(24px,1fr) auto minmax(176px,220px); gap:12px !important; min-height:54px !important; }
#drakoCfgBar .dcfg-bar-spacer { display:block !important; min-width:24px; }
#drakoCfgBar .dcfg-bar-badge { width:100%; min-height:46px !important; padding:7px 12px !important; border-radius:8px !important; justify-content:flex-start; overflow:hidden; }
#drakoCfgBar .dcfg-bar-badge-img { width:30px !important; height:30px !important; }
#drakoCfgBar .dcfg-bar-badge-txt { min-width:0; }
#drakoCfgBar .dcfg-bar-badge-txt small { font-size:9px !important; }
#drakoCfgBar .dcfg-bar-badge-txt b { font-size:14px !important; line-height:1.15; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#drakoCfgBar .dcfg-bar-priceblk { align-items:flex-end; min-width:150px; }
#drakoCfgBar .dcfg-bar-priceblk small { font-size:9px; text-transform:uppercase; color:var(--dcfg-muted); }
#drakoCfgBar .dcfg-bar-total { font-size:25px !important; }
#drakoCfgBar .dcfg-bar-add { width:100%; min-height:46px !important; padding:10px 18px !important; border-radius:7px !important; font-size:14px !important; }
#drakoCfgBar .dcfg-bar-uni { max-width:1240px !important; width:100%; margin:0 auto !important; padding:14px 20px 18px !important; }
#drakoCfgBar .dcfg-bar-uni-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.15fr) !important; gap:14px !important; }
#drakoCfgBar .dcfg-bar-uni-card { border-radius:8px !important; padding:12px !important; }
#drakoCfgBar .drako-pi-installments { border:1px solid #e5e7eb; border-radius:8px; background:#fff; padding:10px 12px; font-size:13px; color:#374151; }
#drakoCfgBar .drako-pi-inst-row { display:flex; align-items:center; justify-content:space-between; gap:10px; }
#drakoCfgBar .drako-pi-inst-text strong { color:#111827; font-size:15px; }
#drakoCfgBar .drako-pi-inst-logos { display:inline-flex; align-items:center; gap:6px; flex:0 0 auto; }
#drakoCfgBar .drako-pi-inst-logos img { display:block; height:20px; width:auto; }
#drakoCfgBar .drako-pi-inst-sub { margin-top:5px; font-size:11.5px; line-height:1.35; color:var(--dcfg-muted); }
#drakoCfgBar .drako-pi-inst-sub a { color:var(--dcfg-blue); text-decoration:underline; }
#drakoCfgBar .dcfg-paypal-more strong { color:#0070ba; font-size:15px; font-style:italic; }
#drakoCfgBar .dcfg-bar-data { grid-template-columns:repeat(5,minmax(0,1fr)) !important; gap:8px 14px !important; }
#drakoCfgBar .dcfg-bar-data li { font-size:12.5px !important; }
@media (max-width:1100px){#drakoCfgBar .dcfg-bar-main { grid-template-columns:minmax(135px,1fr) minmax(145px,1fr) minmax(175px,1fr); }

#drakoCfgBar .dcfg-bar-priceblk { justify-self:start !important; }
#drakoCfgBar .dcfg-bar-add { grid-column:auto; }
#drakoCfgBar .dcfg-bar-uni-grid { grid-template-columns:1fr !important; }
#drakoCfgBar .dcfg-bar-data { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }}
@media (max-width:680px){#drakoCfgBar .dcfg-bar-inner { padding:8px 12px !important; }
#drakoCfgBar .dcfg-bar-main { grid-template-columns:1fr 1fr; gap:8px !important; }

#drakoCfgBar .dcfg-bar-priceblk { grid-column:1; }
#drakoCfgBar .dcfg-bar-add { grid-column:2; }
#drakoCfgBar .dcfg-bar-total { font-size:21px !important; }
#drakoCfgBar .dcfg-bar-data { grid-template-columns:1fr !important; }}
/* Dettagli finanziamento della sticky bar: modal compatto, non altera gli spazi della barra. */
.dcfg-fin-modal { position:fixed; inset:0; z-index:3000; display:flex; align-items:center; justify-content:center; padding:18px; background:rgba(15,23,42,.38); }
.dcfg-fin-modal[hidden] { display:none !important; }
.dcfg-fin-modal-box { position:relative; width:min(680px,100%); max-height:86vh; overflow:auto; background:#fff; border:1px solid #e5e7eb; border-radius:10px; box-shadow:0 18px 54px rgba(15,23,42,.28); padding:20px 22px 22px; font-family:"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; color:#1f2937; }
.dcfg-fin-modal-close { position:absolute; top:10px; right:12px; width:30px; height:30px; border:0; background:#f3f4f6; border-radius:50%; color:#374151; font-size:22px; line-height:28px; cursor:pointer; }
.dcfg-fin-modal h2,
.dcfg-fin-modal h3 { margin:0 38px 10px 0; font-size:20px; line-height:1.25; color:#0f172a; }
.dcfg-fin-modal p { margin:0 0 12px; font-size:13px; line-height:1.45; color:#475569; }
.dcfg-fin-providers { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:12px 0; }
.dcfg-fin-providers > div { border:1px solid #e5e7eb; border-radius:8px; padding:10px; display:grid; gap:5px; align-content:start; }
.dcfg-fin-providers img { display:block; max-width:82px; height:auto; }
.dcfg-fin-providers strong { font-size:14px; color:#111827; }
.dcfg-fin-providers span { font-size:12px; line-height:1.35; color:#64748b; }
.dcfg-sella-rates { width:100%; border-collapse:collapse; margin:12px 0; font-size:13px; }
.dcfg-sella-rates th, .dcfg-sella-rates td { padding:8px 9px; border-bottom:1px solid #e5e7eb; text-align:left; white-space:nowrap; }
.dcfg-sella-rates th { color:#64748b; font-size:11px; text-transform:uppercase; letter-spacing:.04em; }
.dcfg-sella-rates tr.is-best td { background:#f0f7ff; font-weight:700; color:#0f172a; }
.dcfg-fin-note { font-size:12px !important; color:#64748b !important; margin-bottom:0 !important; }
@media (max-width:620px){.dcfg-fin-providers { grid-template-columns:1fr; }
.dcfg-sella-rates { font-size:12px; }
.dcfg-sella-rates th, .dcfg-sella-rates td { padding:7px 6px; }}
/* Sticky bar finale: piu' alta, elementi distribuiti nel layout prodotto, finanziamento solo in barra. */
#drakoCfgBar .dcfg-bar-inner { max-width:1240px !important; padding:13px 20px !important; }
#drakoCfgBar .dcfg-bar-main { grid-template-columns:minmax(170px,1fr) minmax(170px,1fr) minmax(230px,1.25fr) minmax(24px,.35fr) auto minmax(220px,.9fr) !important; min-height:72px !important; }
#drakoCfgBar .dcfg-bar-badge { min-height:60px !important; padding:11px 15px !important; border-radius:9px !important; cursor:pointer; }
#drakoCfgBar .dcfg-bar-badge-img,
#drakoCfgBar .dcfg-bar-badge-ico { width:34px !important; height:34px !important; }
#drakoCfgBar .dcfg-bar-badge-txt small { font-size:10px !important; }
#drakoCfgBar .dcfg-bar-badge-txt b { font-size:16px !important; }
#drakoCfgBar .dcfg-bar-total { font-size:30px !important; }
#drakoCfgBar .dcfg-bar-priceblk { min-width:175px !important; }
#drakoCfgBar .dcfg-bar-add { min-height:60px !important; padding:12px 20px !important; font-size:15px !important; border-radius:8px !important; }
#drakoCfgBar .dcfg-bar-uni-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important; gap:16px !important; }
#drakoCfgBar .dcfg-bar-data { display:grid !important; grid-template-columns:1fr !important; gap:8px !important; }
#drakoCfgBar .dcfg-bar-data li { font-size:13px !important; line-height:1.25; }
@media (max-width:1100px){#drakoCfgBar .dcfg-bar-main { min-height:auto !important; }
#drakoCfgBar .dcfg-bar-spacer { display:none !important; }}
@media (max-width:680px){#drakoCfgBar .dcfg-bar-inner { padding:10px 12px !important; }
#drakoCfgBar .dcfg-bar-main { gap:9px !important; }
#drakoCfgBar .dcfg-bar-badge { min-height:54px !important; }
#drakoCfgBar .dcfg-bar-finance { grid-column:1 / -1; }
#drakoCfgBar .dcfg-bar-total { font-size:23px !important; }
#drakoCfgBar .dcfg-bar-add { min-height:52px !important; }}
/* Sticky: i 5 elementi occupano tutto il binario utile, senza colonna vuota centrale. */
#drakoCfgBar .dcfg-bar-inner{padding:14px 22px!important}
#drakoCfgBar .dcfg-bar-main{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(240px,1.18fr) minmax(190px,.72fr) minmax(230px,.9fr)!important;gap:14px!important;min-height:76px!important}
#drakoCfgBar .dcfg-bar-spacer{display:none!important}
#drakoCfgBar .dcfg-bar-badge{min-height:62px!important}
#drakoCfgBar .dcfg-bar-priceblk{min-width:190px!important}
#drakoCfgBar .dcfg-bar-add{min-height:62px!important}
#drakoCfgBar .dcfg-bar-uni{max-width:1580px!important;padding-left:22px!important;padding-right:22px!important}
@media (max-width:1100px){#drakoCfgBar .dcfg-bar-main{grid-template-columns:repeat(3,minmax(160px,1fr))!important}}
@media (max-width:680px){
#drakoCfgBar .dcfg-bar-priceblk{justify-self:start!important}}
/* Dropdown sticky pulito: solo FPS e Alimentazione, niente dati/riepilogo nel pannello. */
#drakoCfgBar .dcfg-bar-uni{padding-bottom:14px!important;}
#drakoCfgBar .dcfg-bar-uni-grid{grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr)!important;align-items:start!important;}
@media (max-width:900px){#drakoCfgBar .dcfg-bar-uni-grid{grid-template-columns:1fr!important}}
/* Sticky con dati dentro la barra e respiro rispetto al prodotto sottostante. */
#drakoCfgBar .dcfg-bar-inner{padding:14px 22px 10px!important;}
#drakoCfgBar .dcfg-bar-main{grid-template-columns:minmax(190px,1fr) minmax(190px,1fr) minmax(250px,1.18fr) minmax(210px,.78fr) minmax(245px,.92fr)!important;}
#drakoCfgBar .dcfg-bar-data-line{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px 18px;margin:9px auto 0;padding-top:8px;border-top:1px solid #eef2f6;font-size:12px;line-height:1.25;max-width:1500px;}
#drakoCfgBar .dcfg-bar-data-line span{white-space:nowrap;}
#drakoCfgBar .dcfg-bar-data-line i{font-size:13px;width:15px;}
#drakoCfgBar .dcfg-bar-uni{margin-top:10px!important;}
#drakoCfgBar + .drako-pi-cfghead,
#drakoCfgBar ~ .drako-pi-cfghead{margin-top:16px!important;}
#drakoCfgBar.is-visible{box-shadow:0 5px 18px rgba(15,23,42,.12)!important;}
@media (max-width:1100px){#drakoCfgBar .dcfg-bar-data-line{justify-content:flex-start;font-size:11.5px}}
/* Sticky finale: dati a fianco dei badge, non sotto. */
#drakoCfgBar .dcfg-bar-inner{display:block!important;max-width:1580px!important;padding:12px 22px!important;}
#drakoCfgBar .dcfg-bar-main{display:grid!important;grid-template-columns:minmax(132px,.72fr) minmax(150px,.78fr) minmax(190px,.92fr) minmax(360px,1.55fr) minmax(160px,.68fr) minmax(220px,.86fr)!important;gap:10px!important;min-height:72px!important;}
#drakoCfgBar .dcfg-bar-badge{min-height:56px!important;padding:9px 12px!important;}
#drakoCfgBar .dcfg-bar-badge-img,
#drakoCfgBar .dcfg-bar-badge-ico{width:30px!important;height:30px!important;}
#drakoCfgBar .dcfg-bar-badge-txt small{font-size:9px!important;}
#drakoCfgBar .dcfg-bar-badge-txt b{font-size:14px!important;}
#drakoCfgBar .dcfg-bar-data-line{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;justify-content:stretch;gap:4px 14px;margin:0!important;padding:0!important;border-top:0!important;max-width:none!important;color:#475569;font-size:11.5px;line-height:1.2;min-width:0;}
#drakoCfgBar .dcfg-bar-data-line span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis;}
#drakoCfgBar .dcfg-bar-data-line i{font-style:normal;color:var(--dcfg-blue);width:14px;text-align:center;flex:0 0 auto;}
#drakoCfgBar .dcfg-bar-data-line strong{color:#111827;font-weight:800;}

#drakoCfgBar .dcfg-bar-total{font-size:28px!important;}
#drakoCfgBar .dcfg-bar-add{min-height:56px!important;padding:10px 18px!important;}
#drakoCfgBar .dcfg-bar-uni{margin-top:0!important;}
@media (max-width:1250px){#drakoCfgBar .dcfg-bar-main{grid-template-columns:repeat(3,minmax(145px,1fr))!important}
.dcfg-bar-data-line{grid-column:1 / -1!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media (max-width:680px){#drakoCfgBar .dcfg-bar-main{grid-template-columns:1fr 1fr!important}
#drakoCfgBar .dcfg-bar-data-line{display:none!important}}
/* Sticky: finanziamento come blocco osCommerce standard, non badge. */
#drakoCfgBar .dcfg-bar-main{grid-template-columns:minmax(125px,.58fr) minmax(140px,.62fr) minmax(300px,1.22fr) minmax(390px,1.46fr) minmax(160px,.62fr) minmax(220px,.82fr)!important;gap:12px!important;}
#drakoCfgBar .dcfg-bar-fintext{width:100%;min-width:0;align-self:center;cursor:pointer;color:#374151;line-height:1.18;}
#drakoCfgBar .dcfg-bar-fintext .drako-pi-installments{border:0!important;background:transparent!important;padding:0!important;margin:0!important;border-radius:0!important;font-size:12px!important;color:#374151!important;}
#drakoCfgBar .dcfg-bar-fintext .drako-pi-inst-row{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;min-width:0;}
#drakoCfgBar .dcfg-bar-fintext .drako-pi-inst-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
#drakoCfgBar .dcfg-bar-fintext .drako-pi-inst-text strong{font-size:14px!important;color:#111827!important;font-weight:800!important;}
#drakoCfgBar .dcfg-bar-fintext .drako-pi-inst-sub{margin-top:2px!important;font-size:10.5px!important;line-height:1.2!important;color:#64748b!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#drakoCfgBar .dcfg-bar-fintext .drako-pi-inst-sub a{color:var(--dcfg-blue)!important;text-decoration:underline!important;}
#drakoCfgBar .dcfg-bar-fintext .drako-pi-inst-logos{margin-left:auto;display:inline-flex!important;gap:5px!important;flex:0 0 auto;}
#drakoCfgBar .dcfg-bar-fintext .drako-pi-inst-logos img{height:18px!important;width:auto!important;display:block;}
#drakoCfgBar .dcfg-bar-fin-placeholder{font-size:12px;color:#64748b;font-weight:700;}
#drakoCfgBar .dcfg-bar-finance.is-paypal,
#drakoCfgBar .dcfg-bar-finance.is-klarna,
#drakoCfgBar .dcfg-bar-finance.is-sella{background:transparent!important;border:0!important;}
#drakoCfgBar .dcfg-bar-badge{min-height:52px!important;padding:8px 11px!important;}
#drakoCfgBar .dcfg-bar-badge-img{width:28px!important;height:28px!important;}
#drakoCfgBar .dcfg-bar-badge-txt b{font-size:13.5px!important;}
#drakoCfgBar .dcfg-bar-data-line{font-size:11px!important;gap:3px 12px!important;}
#drakoCfgBar .dcfg-bar-total{font-size:27px!important;}
#drakoCfgBar .dcfg-bar-add{min-height:54px!important;}
@media (max-width:1250px){#drakoCfgBar .dcfg-bar-fintext{grid-column:auto!important}
}
@media (max-width:680px){#drakoCfgBar .dcfg-bar-fintext{grid-column:1 / -1!important}
.dcfg-bar-fintext .drako-pi-inst-sub{display:none!important}}
/* Sticky: layout compatto con finanziamento osCommerce visibile subito. */
#drakoCfgBar .dcfg-bar-inner{max-width:1660px!important;padding:10px 20px!important;}
#drakoCfgBar .dcfg-bar-main{grid-template-columns:minmax(120px,.55fr) minmax(135px,.6fr) minmax(330px,1.22fr) minmax(410px,1.45fr) minmax(165px,.58fr) minmax(220px,.78fr)!important;min-height:60px!important;}
#drakoCfgBar .dcfg-bar-badge{padding:7px 10px!important;border-radius:8px!important;}
#drakoCfgBar .dcfg-bar-badge-img,#drakoCfgBar .dcfg-bar-badge-ico{width:27px!important;height:27px!important;}
#drakoCfgBar .dcfg-bar-badge-txt small{font-size:8.5px!important;line-height:1!important;}
#drakoCfgBar .dcfg-bar-badge-txt b{font-size:13px!important;line-height:1.05!important;}
#drakoCfgBar .dcfg-bar-fintext{min-width:0!important;padding-right:4px!important;}
#drakoCfgBar .dcfg-bar-fintext .drako-pi-installments{font-size:11.5px!important;line-height:1.15!important;}
#drakoCfgBar .dcfg-bar-fintext .drako-pi-inst-text strong{font-size:13.5px!important;}
#drakoCfgBar .dcfg-bar-fintext .drako-pi-inst-sub{font-size:10px!important;margin-top:1px!important;}
#drakoCfgBar .dcfg-bar-data-line{gap:3px 10px!important;}
#drakoCfgBar .dcfg-bar-total{line-height:1!important;}
#drakoCfgBar .dcfg-bar-priceblk small{font-size:8.5px!important;line-height:1!important;}
#drakoCfgBar .dcfg-bar-add{padding:9px 16px!important;font-size:14px!important;border-radius:7px!important;}
/* Sticky: allineata al binario della scheda prodotto. */
#drakoCfgBar .dcfg-bar-inner{max-width:1530px!important;width:100%!important;margin:0 auto!important;padding:10px 0!important;box-sizing:border-box;}
#drakoCfgBar .dcfg-bar-main{grid-template-columns:minmax(150px,170px) minmax(165px,180px) minmax(270px,300px) minmax(330px,1fr) minmax(135px,150px) minmax(205px,230px)!important;gap:10px!important;min-height:58px!important;align-items:center!important;}
#drakoCfgBar .dcfg-bar-badge{min-height:48px!important;padding:7px 11px!important;}
#drakoCfgBar .dcfg-bar-fintext{align-self:center!important;}
#drakoCfgBar .dcfg-bar-fintext .drako-pi-inst-row{gap:6px!important;}
#drakoCfgBar .dcfg-bar-fintext .drako-pi-inst-text{max-width:100%;}
#drakoCfgBar .dcfg-bar-fintext .drako-pi-inst-sub{max-width:100%;}
#drakoCfgBar .dcfg-bar-data-line{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:3px 12px!important;font-size:10.5px!important;line-height:1.15!important;align-content:center!important;}
#drakoCfgBar .dcfg-bar-data-line span{white-space:nowrap!important;}
#drakoCfgBar .dcfg-bar-priceblk{justify-self:end!important;text-align:right!important;min-width:0!important;}
#drakoCfgBar .dcfg-bar-total{font-size:25px!important;white-space:nowrap!important;}
#drakoCfgBar .dcfg-bar-add{width:100%!important;min-height:50px!important;}
#drakoCfgBar .dcfg-bar-uni{max-width:1530px!important;margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important;}
@media (max-width:1580px){#drakoCfgBar .dcfg-bar-inner{padding-left:16px!important;padding-right:16px!important;}
#drakoCfgBar .dcfg-bar-uni{padding-left:16px!important;padding-right:16px!important;}}
@media (max-width:1250px){#drakoCfgBar .dcfg-bar-main{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
#drakoCfgBar .dcfg-bar-data-line{grid-column:1 / -1!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;}
#drakoCfgBar .dcfg-bar-priceblk{justify-self:start!important;text-align:left!important;}
#drakoCfgBar .dcfg-bar-add{width:auto!important;}}
/* Sticky: stesso binario visivo della scheda prodotto, non del sito intero. */
#drakoCfgBar.dcfg-bar .dcfg-bar-inner{max-width:1150px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-main{grid-template-columns:130px 145px 235px minmax(0,270px) 130px 190px!important;justify-content:center!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-badge{min-height:46px!important;padding:7px 10px!important;border-radius:7px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-badge-img,#drakoCfgBar.dcfg-bar .dcfg-bar-badge-ico{width:26px!important;height:26px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-badge-txt small{font-size:8px!important;line-height:1!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-badge-txt b{font-size:12.5px!important;line-height:1.05!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext{padding:0!important;overflow:hidden!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-installments{font-size:10.5px!important;line-height:1.12!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-row{gap:4px!important;}

#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-text strong{font-size:12.5px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-sub{font-size:9.2px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line{grid-template-columns:1fr 1fr!important;gap:2px 8px!important;font-size:9.6px!important;line-height:1.12!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line span{min-width:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line i{width:12px!important;font-size:11px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-priceblk{justify-self:end!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-priceblk small{font-size:8px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-total{font-size:23px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-add{min-height:48px!important;padding:8px 14px!important;font-size:13px!important;border-radius:7px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-uni{max-width:1150px!important;padding-left:0!important;padding-right:0!important;}
@media (max-width:1190px){#drakoCfgBar.dcfg-bar .dcfg-bar-inner{padding-left:14px!important;padding-right:14px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-main{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line{grid-column:1 / -1!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-priceblk{justify-self:start!important;text-align:left!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-add{width:auto!important;}}
/* Sticky: riempie tutto il layout prodotto indicato dalle guide arancioni. */
#drakoCfgBar.dcfg-bar .dcfg-bar-inner{display:block!important;max-width:1160px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-main{grid-template-columns:130px 145px 260px minmax(0,290px) 125px 160px!important;gap:10px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-badge{width:100%!important;box-sizing:border-box!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext{width:100%!important;box-sizing:border-box!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line{box-sizing:border-box!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-add{box-sizing:border-box!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-priceblk{width:100%!important;box-sizing:border-box!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-total{font-size:22px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-add{font-size:12.5px!important;padding-left:10px!important;padding-right:10px!important;}
@media (min-width:1191px){#drakoCfgBar.dcfg-bar .dcfg-bar-inner{padding-left:0!important;padding-right:0!important;}}
/* Sticky: occupa tutto il binario del configuratore/prodotto, da nav sinistra a ultima colonna. */
#drakoCfgBar.dcfg-bar .dcfg-bar-inner{max-width:1440px!important;width:100%!important;margin-left:auto!important;margin-right:auto!important;padding:9px 0!important;box-sizing:border-box!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-main{width:100%!important;display:grid!important;grid-template-columns:minmax(145px,.7fr) minmax(160px,.75fr) minmax(330px,1.45fr) minmax(420px,1.75fr) minmax(150px,.65fr) minmax(230px,.95fr)!important;min-height:56px!important;justify-content:stretch!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-badge,#drakoCfgBar.dcfg-bar .dcfg-bar-fintext,#drakoCfgBar.dcfg-bar .dcfg-bar-data-line,#drakoCfgBar.dcfg-bar .dcfg-bar-priceblk,#drakoCfgBar.dcfg-bar .dcfg-bar-add{width:100%!important;box-sizing:border-box!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-badge{min-height:48px!important;padding:7px 11px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-installments{line-height:1.14!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-sub{font-size:9.8px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line{gap:3px 14px!important;font-size:10.2px!important;line-height:1.15!important;}

#drakoCfgBar.dcfg-bar .dcfg-bar-total{font-size:24px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-add{min-height:50px!important;font-size:13px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-uni{max-width:1440px!important;width:100%!important;margin-left:auto!important;margin-right:auto!important;}
@media (max-width:1480px){#drakoCfgBar.dcfg-bar .dcfg-bar-inner{padding-left:16px!important;padding-right:16px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-uni{padding-left:16px!important;padding-right:16px!important;}}
@media (max-width:1250px){#drakoCfgBar.dcfg-bar .dcfg-bar-main{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line{grid-column:1 / -1!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-priceblk{text-align:left!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-add{width:auto!important;}}
/* Sticky: blocco dati/codici leggibile dentro la barra. */
#drakoCfgBar.dcfg-bar .dcfg-bar-main{grid-template-columns:125px 140px minmax(260px,.95fr) minmax(450px,1.55fr) 140px 190px!important;gap:12px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:auto!important;align-content:center!important;gap:4px 18px!important;line-height:1.2!important;color:#374151!important;overflow:visible!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line strong{font-weight:800!important;color:#111827!important;}
/* Sticky finance: PayPal/Klarna separati e leggibili, modal sopra ogni header. */
.dcfg-fin-modal{z-index:100000!important;}
.dcfg-fin-providers-one{grid-template-columns:1fr!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext{overflow:visible!important;}


#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .dcfg-paypal-more{display:flex!important;align-items:center!important;gap:4px!important;min-width:0!important;color:#475569!important;}
#drakoCfgBar.dcfg-bar .dcfg-paypal-more span{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#drakoCfgBar.dcfg-bar .dcfg-paypal-more img{height:15px!important;width:auto!important;display:block!important;flex:0 0 auto;margin:0 1px!important;}
#drakoCfgBar.dcfg-bar .dcfg-paypal-more a{flex:0 0 auto;color:var(--dcfg-blue)!important;text-decoration:underline!important;font-weight:700!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-logos img{height:17px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-main{grid-template-columns:125px 140px minmax(300px,1.08fr) minmax(430px,1.45fr) 140px 190px!important;}
/* Sticky finance: PayPal ufficiale via SDK messages. */
#drakoCfgBar.dcfg-bar .dcfg-paypal-more{display:block!important;min-height:18px!important;overflow:visible!important;white-space:normal!important;text-overflow:clip!important;}
#drakoCfgBar.dcfg-bar .dcfg-paypal-ppmsg{display:block!important;min-height:18px!important;line-height:1.2!important;overflow:visible!important;}
#drakoCfgBar.dcfg-bar .dcfg-paypal-ppmsg iframe{max-width:100%!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-sub.dcfg-paypal-more{font-size:11px!important;margin-top:2px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-main{grid-template-columns:125px 140px minmax(330px,1.18fr) minmax(410px,1.35fr) 140px 190px!important;}
/* Sticky finance: badge Klarna vicino al testo, non spinto a destra. */
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-row{justify-content:flex-start!important;gap:7px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-logos{margin-left:4px!important;flex:0 0 auto!important;gap:4px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-logos img{height:16px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-text{flex:0 1 auto!important;}
/* ===== FPS nav v3 (07-lug): badge FPS PIATTO (no gradient) piu' alto e piu' grande,
   1% low accanto agli FPS, nessuna riga di separazione; slot e CASE senza bordo ===== */
/* slot "singoli" senza bordo */
#drakoCfgCustomizer .dcfg-cnav-link{border:0!important;background:transparent!important;box-shadow:none!important;border-radius:8px!important;padding:9px 8px!important;}
#drakoCfgCustomizer .dcfg-cnav-link:hover{background:#f2f6fb!important;}
#drakoCfgCustomizer .dcfg-cnav-link.is-active{background:#eef4fb!important;}
/* CASE hero: niente bordo/ombra/divisori */
#drakoCfgCustomizer a.dcfg-cnav-hero,#drakoCfgCustomizer .dcfg-cnav-hero{border:0!important;box-shadow:none!important;background:transparent!important;border-radius:10px!important;}
#drakoCfgCustomizer a.dcfg-cnav-hero:hover{border:0!important;box-shadow:none!important;}
#drakoCfgCustomizer .dcfg-cnav-case-caption{border-top:0!important;}
/* nessuna riga divisoria attorno al blocco FPS */
#drakoCfgCustomizer .dcfg-cnav-fps{border:0!important;}
/* badge FPS: fondo PIATTO, piu' alto e piu' grande */
#drakoCfgCustomizer .dcfg-cnav-fps-badge{display:flex!important;flex-direction:column!important;align-items:stretch!important;grid-template-columns:none!important;gap:12px!important;padding:24px 16px!important;background:#e9f2fd!important;background-image:none!important;}
#drakoCfgCustomizer .dcfg-cnav-fps-top{display:flex!important;align-items:center!important;gap:9px!important;min-width:0;}
#drakoCfgCustomizer .dcfg-cnav-fps-ic{width:46px!important;height:46px!important;object-fit:contain;flex:0 0 auto;}
#drakoCfgCustomizer .dcfg-cnav-fps-num{font-size:48px!important;line-height:.88!important;font-weight:900!important;}
#drakoCfgCustomizer .dcfg-cnav-fps-unit{font-size:16px!important;font-weight:800!important;color:#1c63ab!important;align-self:flex-end;margin-bottom:6px;}
#drakoCfgCustomizer .dcfg-cnav-fps-low{display:inline-flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center;margin-left:12px!important;line-height:1.02!important;}
#drakoCfgCustomizer .dcfg-cnav-fps-low b{font-size:22px!important;font-weight:800!important;color:#1c2430!important;}
#drakoCfgCustomizer .dcfg-cnav-fps-low small{font-size:10px!important;font-weight:700!important;color:#5f6774!important;text-transform:uppercase;letter-spacing:.03em;}
#drakoCfgCustomizer .dcfg-cnav-fps-bot{display:flex!important;align-items:center!important;gap:9px!important;min-width:0;padding-top:0!important;border-top:0!important;}
#drakoCfgCustomizer .dcfg-cnav-fps-gimg{width:28px!important;height:28px!important;border-radius:6px;object-fit:cover;flex:0 0 auto;}
#drakoCfgCustomizer .dcfg-cnav-fps-game{flex:1 1 auto!important;min-width:0!important;font-size:15px!important;font-weight:700!important;color:#1c2430!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#drakoCfgCustomizer .dcfg-cnav-fps-res{flex:0 0 auto!important;font-size:13.5px!important;font-weight:800!important;color:#1c63ab!important;background:rgba(28,99,171,.12);padding:3px 10px;border-radius:999px;}
/* Card configuratore: variazione prezzo a sinistra, FPS a destra. */
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-price{
  width:100%!important;
  display:flex!important;
  align-items:baseline!important;
  justify-content:space-between!important;
  gap:14px!important;
  flex-wrap:nowrap!important;
  text-align:left!important;
}
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-delta{
  order:0!important;
  margin-right:auto!important;
  margin-left:0!important;
  font-size:16px!important;
  font-weight:700!important;
  /* 15/08 — RIMOSSA: color:#1a1a1a!important
     Questa regola serve l'impaginazione della variazione dentro la card
     (ordine, margini, corpo, allineamento). Il colore c'era finito dentro per
     inerzia, ma con !important schiacciava le due classi semantiche
     is-positive/is-negative definite a riga ~75 e ~556: un risparmio di 330 €
     usciva identico a un sovrapprezzo di 40, e le due regole "giuste" erano
     lettera morta senza che nulla lo segnalasse.
     Il colore ora lo decide chi ha l'informazione. Non rimetterlo qui: se serve
     cambiarlo, si cambiano le regole semantiche. */
  font-family:'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif!important;
  letter-spacing:-.3px!important;
  line-height:1.05!important;
  display:inline-flex!important;
  align-items:baseline!important;
  justify-content:flex-start!important;
  gap:5px!important;
  white-space:nowrap!important;
}
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-fps{
  order:1!important;
  margin-left:auto!important;
  margin-right:0!important;
  font-size:21px!important;
  line-height:1!important;
  font-weight:900!important;
  font-family:'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif!important;
  letter-spacing:-.3px!important;
  font-variant-numeric:tabular-nums!important;
  display:inline-flex!important;
  align-items:baseline!important;
  justify-content:flex-end!important;
  gap:3px!important;
  white-space:nowrap!important;
}
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-fps.is-up{color:#15803d!important;}
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-fps.is-down{color:#b91c1c!important;}
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-fps-sign{margin-right:3px!important;}
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-fps-unit{
  margin-left:3px!important;
  font-size:13px!important;
  font-weight:800!important;
  /* eredita il colore del badge (verde in salita, grigio in discesa): era fissa a
     #1c63ab e faceva il mix blu/verde. Il badge nasce sempre con is-up o is-down -
     a delta zero il JS lo rimuove - quindi non esiste uno stato senza colore. */
  color:inherit!important;
}
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-sign{
  margin-right:4px!important;
  flex:0 0 auto!important;
}
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-value{flex:0 0 auto!important;}
/* 15/08 — la scheda SCELTA torna a dire qualcosa. Prima il badge era nascosto:
   in una griglia dove ogni sorella mostra una cifra, la card scelta restava
   bianca proprio nel punto che si guarda, e un vuoto fra numeri si legge come
   dato mancante, non come «nessun sovrapprezzo». Ora porta «Nel prezzo»
   (#64748b su bianco = 4,76:1).
   Resta nascosto delta-zero: è un'opzione NON scelta che costa quanto quella
   corrente, e lì lo zero è davvero rumore. */
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt.is-selected .drako-pcb2-opt-delta.delta-zero{display:none!important;}
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-delta.is-included,
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-delta.delta-zero{
  color:#64748b!important;
  font-size:12px!important;
  font-weight:700!important;
  text-transform:uppercase!important;
  letter-spacing:0!important;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-price{
  justify-content:flex-end!important;
  gap:20px!important;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-delta{
  min-width:112px!important;
  justify-content:flex-start!important;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-fps{
  min-width:98px!important;
  justify-content:flex-end!important;
}
/* Card configuratore: piccolo respiro tra segno +/- e simbolo euro. */
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-delta .drako-pcb2-opt-sign{
  margin-right:6px!important;
}
/* Card configuratore: segno piu' vicino all'euro e delta sempre nascosto sul selezionato. */
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-delta{
  gap:0!important;
}
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt-delta .drako-pcb2-opt-sign{
  margin-right:3px!important;
}
/* 15/08: idem alla regola di ~riga 563 — si nasconde la variazione, non
   l'etichetta «Nel prezzo». */
#drakoCfgCustomizer .dcfg-cat-grid .drako-pcb2-opt.is-selected .drako-pcb2-opt-delta:not(.is-included){
  display:none!important;
}
/* Lista configuratore: ripristino layout precedente, senza ereditare la disposizione card. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-price{
  width:auto!important;
  margin-left:auto!important;
  display:flex!important;
  justify-content:flex-end!important;
  align-items:baseline!important;
  gap:18px!important;
  flex-wrap:nowrap!important;
  text-align:right!important;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-fps{
  order:-1!important;
  min-width:78px!important;
  margin-left:0!important;
  margin-right:0!important;
  text-align:right!important;
  justify-content:flex-end!important;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-delta{
  order:0!important;
  min-width:94px!important;
  margin-left:0!important;
  margin-right:0!important;
  text-align:right!important;
  justify-content:flex-end!important;
}
/* Alimentazione: dettaglio componenti selezionati che contribuiscono al TDP. */
#drakoCfgSummary .dcfg-psu-loadlist,
#drakoCfgBar .dcfg-psu-loadlist,
#drakoCfgCustomizer .dcfg-psu-loadlist{
  margin-top:10px;
  border:1px solid #e2e6eb;
  border-radius:8px;
  background:#fff;
  overflow:hidden;
}
#drakoCfgSummary .dcfg-psu-loadlist h5,
#drakoCfgBar .dcfg-psu-loadlist h5,
#drakoCfgCustomizer .dcfg-psu-loadlist h5{
  margin:0;
  padding:9px 12px;
  font-size:11px;
  line-height:1.2;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#6b7280;
  background:#f7f9fc;
  border-bottom:1px solid #e9edf2;
}
#drakoCfgSummary .dcfg-psu-loadlist ul,
#drakoCfgBar .dcfg-psu-loadlist ul,
#drakoCfgCustomizer .dcfg-psu-loadlist ul{
  list-style:none;
  margin:0;
  padding:0;
}
#drakoCfgSummary .dcfg-psu-loadlist li,
#drakoCfgBar .dcfg-psu-loadlist li,
#drakoCfgCustomizer .dcfg-psu-loadlist li{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 12px;
  border-bottom:1px solid #eef1f4;
}
#drakoCfgSummary .dcfg-psu-loadlist li:last-child,
#drakoCfgBar .dcfg-psu-loadlist li:last-child,
#drakoCfgCustomizer .dcfg-psu-loadlist li:last-child{border-bottom:0;}
#drakoCfgSummary .dcfg-psu-loadtext,
#drakoCfgBar .dcfg-psu-loadtext,
#drakoCfgCustomizer .dcfg-psu-loadtext{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
#drakoCfgSummary .dcfg-psu-loadtext b,
#drakoCfgBar .dcfg-psu-loadtext b,
#drakoCfgCustomizer .dcfg-psu-loadtext b{
  font-size:10.5px;
  color:#6b7280;
  text-transform:uppercase;
  letter-spacing:.03em;
}
#drakoCfgSummary .dcfg-psu-loadtext em,
#drakoCfgBar .dcfg-psu-loadtext em,
#drakoCfgCustomizer .dcfg-psu-loadtext em{
  font-style:normal;
  font-size:12.5px;
  line-height:1.25;
  color:#1f2937;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#drakoCfgSummary .dcfg-psu-loadlist strong,
#drakoCfgBar .dcfg-psu-loadlist strong,
#drakoCfgCustomizer .dcfg-psu-loadlist strong{
  flex:0 0 auto;
  font-size:13px;
  color:#1a1a1a;
  font-weight:800;
  white-space:nowrap;
}
/* Alimentazione: mini-card TDP con immagine prodotto. */
#drakoCfgSummary .dcfg-psu-loadlist li,
#drakoCfgBar .dcfg-psu-loadlist li,
#drakoCfgCustomizer .dcfg-psu-loadlist li{
  justify-content:flex-start!important;
  min-height:62px;
}
#drakoCfgSummary .dcfg-psu-loadthumb,
#drakoCfgBar .dcfg-psu-loadthumb,
#drakoCfgCustomizer .dcfg-psu-loadthumb{
  flex:0 0 46px;
  width:46px;
  height:46px;
  border-radius:7px;
  background:#f4f6f9;
  border:1px solid #e5eaf0;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
#drakoCfgSummary .dcfg-psu-loadthumb img,
#drakoCfgBar .dcfg-psu-loadthumb img,
#drakoCfgCustomizer .dcfg-psu-loadthumb img{
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  display:block;
}
#drakoCfgSummary .dcfg-psu-loadthumb.is-empty,
#drakoCfgBar .dcfg-psu-loadthumb.is-empty,
#drakoCfgCustomizer .dcfg-psu-loadthumb.is-empty{
  display:none;
}
#drakoCfgSummary .dcfg-psu-loadtext,
#drakoCfgBar .dcfg-psu-loadtext,
#drakoCfgCustomizer .dcfg-psu-loadtext{
  flex:1 1 auto;
}
#drakoCfgSummary .dcfg-psu-loadlist strong,
#drakoCfgBar .dcfg-psu-loadlist strong,
#drakoCfgCustomizer .dcfg-psu-loadlist strong{
  margin-left:auto;
}
/* Alimentazione: prodotti TDP cliccabili e wattaggio sotto al nome. */
#drakoCfgSummary .dcfg-psu-loadtext,
#drakoCfgBar .dcfg-psu-loadtext,
#drakoCfgCustomizer .dcfg-psu-loadtext{
  gap:2px!important;
}
#drakoCfgSummary .dcfg-psu-loadwatt,
#drakoCfgBar .dcfg-psu-loadwatt,
#drakoCfgCustomizer .dcfg-psu-loadwatt{
  font-size:12px;
  line-height:1.2;
  color:var(--dcfg-blue);
  font-weight:800;
}
#drakoCfgSummary .dcfg-psu-loadlist strong,
#drakoCfgBar .dcfg-psu-loadlist strong,
#drakoCfgCustomizer .dcfg-psu-loadlist strong{
  display:none!important;
}
/* Alimentazione: mini-card TDP informative, non cliccabili. */
#drakoCfgSummary .dcfg-psu-loadlist li,
#drakoCfgBar .dcfg-psu-loadlist li,
#drakoCfgCustomizer .dcfg-psu-loadlist li{
  cursor:default!important;
}
#drakoCfgSummary .dcfg-psu-loadlist li:hover,
#drakoCfgBar .dcfg-psu-loadlist li:hover,
#drakoCfgSummary .dcfg-psu-loadlist li:focus,
#drakoCfgBar .dcfg-psu-loadlist li:focus,
#drakoCfgCustomizer .dcfg-psu-loadlist li:hover,
#drakoCfgCustomizer .dcfg-psu-loadlist li:focus{
  background:#fff!important;
  box-shadow:none!important;
}
/* Modale Sella / Rate in Rete: layout richiesta finanziamento. */
.dcfg-fin-modal .dcfg-fin-modal-box{
  width:min(505px,100%)!important;
  border-radius:10px!important;
  padding:28px 32px 28px!important;
}
.dcfg-fin-modal .dcfg-fin-modal-close{
  top:12px!important;
  right:12px!important;
  background:transparent!important;
  color:#8a8f98!important;
  font-size:26px!important;
  font-weight:400!important;
}
.dcfg-sella-form h2{
  margin:0 32px 16px 0!important;
  font-size:19px!important;
  color:#2b2f36!important;
  font-weight:800!important;
}
.dcfg-sella-ref{
  margin:0 0 14px!important;
  font-size:13px!important;
  color:#555b66!important;
}
.dcfg-sella-form .dcfg-sella-rates{
  margin:0 0 14px!important;
  font-size:13px!important;
  border-collapse:collapse!important;
}
.dcfg-sella-form .dcfg-sella-rates th{
  background:#f0f1f3!important;
  color:#5f636b!important;
  font-size:12px!important;
  text-transform:none!important;
  letter-spacing:0!important;
  font-weight:700!important;
  padding:10px 9px!important;
  text-align:center!important;
}
.dcfg-sella-form .dcfg-sella-rates td{
  padding:9px!important;
  border-bottom:1px solid #e8eaee!important;
  color:#4a4f58!important;
  text-align:center!important;
  white-space:nowrap!important;
}
.dcfg-sella-form .dcfg-sella-rates tr.is-best td{
  background:#fff!important;
  color:#4a4f58!important;
  font-weight:400!important;
}
.dcfg-sella-form .dcfg-sella-rates td strong{
  color:#2d3138!important;
  font-weight:800!important;
}
.dcfg-rate-radio{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}
.dcfg-rate-radio input{position:absolute;opacity:0;pointer-events:none;}
.dcfg-rate-radio span,
.dcfg-sella-best::before{
  content:'';
  width:13px;
  height:13px;
  border:1px solid #8c939d;
  border-radius:50%;
  background:#fff;
  box-sizing:border-box;
}
.dcfg-rate-radio input:checked + span{
  border-color:#1f6bb7;
  box-shadow:inset 0 0 0 3px #fff;
  background:#1f6bb7;
}
.dcfg-sella-best{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin:4px 0 17px;
  font-size:13px;
  color:#4b5563;
  cursor:pointer;
}
.dcfg-sella-best input{position:absolute;opacity:0;pointer-events:none;}
.dcfg-sella-best:has(input:checked)::before{
  border-color:#1f6bb7;
  box-shadow:inset 0 0 0 3px #fff;
  background:#1f6bb7;
}
.dcfg-sella-sep{
  height:1px;
  background:#dfe3e8;
  margin:0 0 18px;
}
.dcfg-sella-form h3{
  margin:0 0 8px;
  font-size:16px;
  color:#2b2f36;
  font-weight:800;
}
.dcfg-sella-copy{
  margin:0 0 16px!important;
  color:#5b616b!important;
  font-size:13px!important;
  line-height:1.45!important;
}
.dcfg-sella-fields{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:14px;
}
.dcfg-sella-field{ display:flex; flex-direction:column; gap:5px; min-width:0; }
.dcfg-sella-field > span{ font-size:12px; font-weight:650; color:#374151; }
.dcfg-sella-field:has(input[name="phone"]),
.dcfg-sella-field:has(textarea){ grid-column:1 / -1; }
.dcfg-sella-fields input,
.dcfg-sella-fields textarea{
  width:100%;
  border:1px solid #cfd6df;
  border-radius:6px;
  padding:10px 11px;
  font:13px 'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  color:#20242b;
  box-sizing:border-box;
}
.dcfg-sella-fields input:focus,
.dcfg-sella-fields textarea:focus{
  outline:none;
  border-color:#1f6bb7;
  box-shadow:0 0 0 2px rgba(31,107,183,.12);
}
.dcfg-sella-submit{
  width:100%;
  border:0;
  border-radius:6px;
  background:#2468ad;
  color:#fff;
  font-size:15px;
  font-weight:800;
  padding:12px 16px;
  cursor:pointer;
}
.dcfg-sella-submit:hover{background:#1d5792;}
.dcfg-sella-privacy{
  margin:28px 0 16px!important;
  font-size:12.5px!important;
  color:#6b7280!important;
}
.dcfg-sella-msg{
  margin-top:12px;
  border-radius:6px;
  padding:10px 12px;
  font-size:13px;
  font-weight:700;
}
.dcfg-sella-msg.is-ok{
  background:#e8f7ee;
  color:#15803d;
}
@media (max-width:560px){
  .dcfg-fin-modal .dcfg-fin-modal-box{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%;
    min-width:0;
    padding:24px 18px!important;
  }
  .dcfg-sella-rates-scroll{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
  }
  .dcfg-sella-fields{grid-template-columns:1fr;}
}
/* Configuratore dentro scheda prodotto: layout standard piu' compatto, senza stock/askbot duplicati */
.drako-pi-wrapper.dcfg-on {
  border:1px solid #e5e7eb !important;
  border-radius:14px !important;
  margin-top:0 !important;
  padding:12px 22px 20px !important;
}
/* rev 07-15l: .drako-pi-askbot ("Hai domande?") non piu' nascosto, come scheda standard */
.drako-pi-wrapper.dcfg-on .drako-pi-stock {
  display:none !important;
}
/* Riduzione spazio alto nella scheda prodotto configuratore */
.drako-pi-wrapper.dcfg-on {
  padding-top:8px !important;
}
/* Avvicina la scheda prodotto alla sticky bar del configuratore */
.drako-pi-wrapper.dcfg-on {
  margin-top:-46px !important;
}
/* Sticky bar: layout anti-sovrapposizione */
#drakoCfgBar.dcfg-bar .dcfg-bar-inner{
  max-width:1460px!important;
  padding:8px 18px!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-main{
  grid-template-columns:minmax(135px,150px) minmax(150px,180px) minmax(250px,300px) minmax(260px,330px) minmax(175px,195px) minmax(205px,230px)!important;
  gap:16px!important;
  align-items:center!important;
  min-height:58px!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-badge{
  min-width:0!important;
  min-height:50px!important;
  padding:7px 10px!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext{
  min-width:0!important;
  overflow:hidden!important;
  padding-right:0!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-installments{
  font-size:11px!important;
  line-height:1.18!important;
  min-width:0!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-row{
  display:flex!important;
  align-items:baseline!important;
  gap:5px!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-text{
  min-width:0!important;
  white-space:nowrap!important;
  text-overflow:ellipsis!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-text strong{
  font-size:13px!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-sub{
  margin-top:1px!important;
  font-size:9.6px!important;
  line-height:1.15!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line{
  display:grid!important;
  gap:4px!important;
  min-width:0!important;
  overflow:hidden!important;
  font-size:11px!important;
  line-height:1.18!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-priceblk{
  min-width:0!important;
  text-align:right!important;
  justify-self:stretch!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-total{
  font-size:26px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-add{
  width:100%!important;
  min-height:54px!important;
  padding:9px 14px!important;
  white-space:nowrap!important;
}
@media (max-width:1350px){#drakoCfgBar.dcfg-bar .dcfg-bar-main{
    grid-template-columns:minmax(125px,145px) minmax(135px,160px) minmax(220px,260px) minmax(230px,290px) minmax(160px,180px) minmax(185px,210px)!important;
  }
#drakoCfgBar.dcfg-bar .dcfg-bar-total{font-size:23px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-add{font-size:13px!important;}}
/* Sticky bar: contenimento definitivo colonne centrali */
#drakoCfgBar.dcfg-bar .dcfg-bar-main{
  grid-template-columns:150px 180px minmax(250px,290px) minmax(260px,290px) 190px 230px!important;
  gap:14px!important;
  justify-content:center!important;
  overflow:hidden!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-main > *{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext,
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line{
  overflow:hidden!important;
  max-width:100%!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext *{
  max-width:100%!important;
  box-sizing:border-box!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-installments{
  overflow:hidden!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-row{
  display:block!important;
  min-width:0!important;
  overflow:hidden!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-text{
  display:block!important;
  white-space:normal!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  line-height:1.12!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-sub{
  display:block!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  max-width:100%!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .dcfg-paypal-ppmsg,
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .dcfg-paypal-ppmsg iframe{
  max-width:100%!important;
  width:100%!important;
  overflow:hidden!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line{
  padding-left:8px!important;
  border-left:1px solid #e5e7eb!important;
  grid-template-columns:1fr!important;
  gap:3px!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line > span{
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
@media (max-width:1350px){#drakoCfgBar.dcfg-bar .dcfg-bar-main{
    grid-template-columns:130px 150px minmax(210px,240px) minmax(220px,250px) 170px 200px!important;
    gap:10px!important;
  }
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-text strong{font-size:12px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-fintext .drako-pi-inst-sub{font-size:9px!important;}
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line{font-size:10px!important;}}
/* Sticky bar: indica che FPS e Alimentazione aprono un dropdown */
#drakoCfgBar.dcfg-bar .dcfg-bar-fps,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu{
  position:relative!important;
  cursor:pointer!important;
  padding-right:30px!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fps::after,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu::after{
  content:"";
  position:absolute;
  right:12px;
  top:50%;
  width:7px;
  height:7px;
  border-right:2px solid #64748b;
  border-bottom:2px solid #64748b;
  transform:translateY(-65%) rotate(45deg);
  transition:transform .16s ease,border-color .16s ease;
  pointer-events:none;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fps:hover::after,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu:hover::after,
#drakoCfgBar.dcfg-bar .dcfg-bar-fps:focus-visible::after,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu:focus-visible::after{
  border-color:#1c63ab;
}
#drakoCfgBar.dcfg-bar.is-open .dcfg-bar-fps::after,
#drakoCfgBar.dcfg-bar.is-open .dcfg-bar-psu::after{
  transform:translateY(-35%) rotate(225deg);
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fps:hover,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu:hover,
#drakoCfgBar.dcfg-bar .dcfg-bar-fps:focus-visible,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu:focus-visible{
  border-color:#9ec5f8!important;
  box-shadow:0 0 0 2px rgba(28,99,171,.10)!important;
}
/* Sticky bar: indicatore dropdown soft sotto ai badge */
#drakoCfgBar.dcfg-bar .dcfg-bar-fps,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu{
  padding-right:12px!important;
  padding-bottom:15px!important;
  overflow:hidden!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fps::after,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu::after{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  right:auto!important;
  top:auto!important;
  bottom:6px!important;
  width:18px!important;
  height:8px!important;
  border:0!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,rgba(28,99,171,0),rgba(28,99,171,.55),rgba(28,99,171,0))!important;
  transform:translateX(-50%)!important;
  opacity:.55!important;
  pointer-events:none!important;
  animation:dcfgBadgeDropdownPulse 2.4s ease-in-out infinite!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fps::before,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:8px;
  width:7px;
  height:7px;
  border-right:2px solid rgba(28,99,171,.75);
  border-bottom:2px solid rgba(28,99,171,.75);
  transform:translateX(-50%) rotate(45deg);
  pointer-events:none;
  animation:dcfgBadgeChevronFloat 2.4s ease-in-out infinite;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fps:hover::after,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu:hover::after,
#drakoCfgBar.dcfg-bar .dcfg-bar-fps:focus-visible::after,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu:focus-visible::after{
  opacity:.85!important;
}
@keyframes dcfgBadgeDropdownPulse{
  0%,100%{opacity:.30;transform:translateX(-50%) scaleX(.82);}
  50%{opacity:.70;transform:translateX(-50%) scaleX(1.08);}
}
@keyframes dcfgBadgeChevronFloat{
  0%,100%{opacity:.45;transform:translate(-50%,-1px) rotate(45deg);}
  50%{opacity:.9;transform:translate(-50%,2px) rotate(45deg);}
}
@media (prefers-reduced-motion:reduce){#drakoCfgBar.dcfg-bar .dcfg-bar-fps::after,
  #drakoCfgBar.dcfg-bar .dcfg-bar-psu::after,
  #drakoCfgBar.dcfg-bar .dcfg-bar-fps::before,
  #drakoCfgBar.dcfg-bar .dcfg-bar-psu::before{animation:none!important;}}
/* Sticky bar: dropdown indicator pulito, senza background */
#drakoCfgBar.dcfg-bar .dcfg-bar-fps::after,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu::after{
  display:none!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fps::before,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu::before{
  bottom:7px!important;
  width:8px!important;
  height:8px!important;
  border-right:2px solid rgba(28,99,171,.62)!important;
  border-bottom:2px solid rgba(28,99,171,.62)!important;
  filter:none!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fps:hover::before,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu:hover::before,
#drakoCfgBar.dcfg-bar .dcfg-bar-fps:focus-visible::before,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu:focus-visible::before{
  border-color:#1c63ab!important;
}
/* Sticky bar: frecce dropdown leggermente piu' scure */
#drakoCfgBar.dcfg-bar .dcfg-bar-fps::before,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu::before{
  border-right-color:rgba(15,23,42,.72)!important;
  border-bottom-color:rgba(15,23,42,.72)!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fps:hover::before,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu:hover::before,
#drakoCfgBar.dcfg-bar .dcfg-bar-fps:focus-visible::before,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu:focus-visible::before{
  border-right-color:#0f172a!important;
  border-bottom-color:#0f172a!important;
}
/* Sticky bar: frecce dropdown ancora piu' visibili */
#drakoCfgBar.dcfg-bar .dcfg-bar-fps::before,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu::before{
  border-right-color:rgba(15,23,42,.88)!important;
  border-bottom-color:rgba(15,23,42,.88)!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-fps:hover::before,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu:hover::before,
#drakoCfgBar.dcfg-bar .dcfg-bar-fps:focus-visible::before,
#drakoCfgBar.dcfg-bar .dcfg-bar-psu:focus-visible::before{
  border-right-color:#020617!important;
  border-bottom-color:#020617!important;
}
/* Nav FPS flyout: rimosso blocco "La tua build sui giochi piu' giocati" (richiesta utente 7-lug).
   Scoping su .dcfg-cnav-fps-pop -> NON impatta il dropdown GIOCO (.dfps-controls) ne' altri widget FPS.
   La lista aveva scroll interno (max-height) = appariva tagliata; rimossa del tutto. */
/* --- Nav FPS flyout (7-lug): rimuovi dropdown GIOCO + Risoluzione/Dettaglio/Upscaling su 1 riga
       + fix "si taglia quando scrollo": il popover era ancorato a .dcfg-cust-shell (che scrolla),
       quindi il suo top usciva sotto la barra sticky. Ancoralo al badge dentro la nav sticky. --- */
#drakoCfgCustomizer .dcfg-cnav { overflow:visible !important; }
#drakoCfgCustomizer .dcfg-cnav-fps { position:relative !important; overflow:visible !important; }
/* ============================================================================
   DARK MODE configuratore.
   - CHROME (barra, nav, card opzione, riepilogo, scheda prodotto, modali) =
     stile DARK della SCHEDA PRODOTTO del sito (charcoal: #22262e / #2a2f38 /
     #363c48, testo #c8cdd5 / #dbe0e8).
   - Pannelli FPS + Alimentazione (dropdown/flyout) = stile NAVY del widget FPS
     (#0d1626 / #111d33 / #263a5e, testo #eaf0fb).
   ============================================================================ */
/* ===== CHROME: barra sticky (charcoal) ===== */
html[data-theme="dark"] #drakoCfgBar{ background:#1c2029 !important; border-bottom:1px solid #363c48; }
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-dropdown{ background:#1c2029; border-color:#363c48; }
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-badge{ background:#2a2f38; border-color:#363c48; color:#dbe0e8; }
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-fps{ background:#262c36; border-color:#3a4557; }
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-psu.is-ok{ background:rgba(34,197,94,.12); border-color:rgba(34,197,94,.30); }
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-badge-val,
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-badge b{ color:#e8ecf2; }
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-finance,
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-data-line{ color:#aab2c0; }
html[data-theme="dark"] body #drakoCfgBar.dcfg-bar .dcfg-bar-data-line strong,
html[data-theme="dark"] body #drakoCfgBar.dcfg-bar .dcfg-bar-finance strong{ color:#e8ecf2 !important; }
html[data-theme="dark"] body #drakoCfgBar.dcfg-bar .dcfg-bar-data-line,
html[data-theme="dark"] body #drakoCfgBar.dcfg-bar .dcfg-bar-data-line span{ color:#aab2c0 !important; }
html[data-theme="dark"] body #drakoCfgBar.dcfg-bar .dcfg-bar-data-line i,
html[data-theme="dark"] body #drakoCfgBar.dcfg-bar .dcfg-bar-finance i,
html[data-theme="dark"] body #drakoCfgBar.dcfg-bar .dcfg-bar-finance a{ color:#7fb2ff !important; }
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-total{ color:#4ade80; }
html[data-theme="dark"] #drakoCfgBar a{ color:#7fb2ff; }
html[data-theme="dark"] #drakoCfgBar.dcfg-bar .dcfg-bar-fps::after,
html[data-theme="dark"] #drakoCfgBar.dcfg-bar .dcfg-bar-psu::after{ background:linear-gradient(90deg,rgba(127,178,255,0),rgba(127,178,255,.9),rgba(127,178,255,0))!important; opacity:.9!important; }
html[data-theme="dark"] #drakoCfgBar.dcfg-bar .dcfg-bar-fps::before,
html[data-theme="dark"] #drakoCfgBar.dcfg-bar .dcfg-bar-psu::before{ border-right-color:#7fb2ff!important; border-bottom-color:#7fb2ff!important; }
#drakoCfgBar .dcfg-bar-data-line{ flex-direction:column !important; align-items:flex-start !important; justify-content:center !important; gap:3px !important; overflow:visible !important; }
#drakoCfgBar .dcfg-bar-data-line > *{ white-space:nowrap !important; overflow:visible !important; text-overflow:clip !important; max-width:none !important; }
html body #drakoCfgBar.dcfg-bar .dcfg-bar-fintext.dcfg-bar-finance .drako-pi-inst-sub{ font-size:11px !important; overflow:visible !important; text-overflow:clip !important; }
/* ===== CHROME: nav sinistra (charcoal) ===== */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav{ background:#22262e !important; border-color:#363c48 !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-thumb{ background:#2a2f38; border-color:#363c48; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-name,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-hero-name{ color:#dbe0e8; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-cat,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-lbl,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-case-lbl{ color:#8891a0; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-action{ color:#8891a0; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-action:hover{ color:#dbe0e8; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-edit{ color:#7fb2ff; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-link:hover{ background:#323840 !important; color:#dbe0e8 !important; border-color:#3a4557 !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-fps-badge{ background:#2a2f38 !important; background-image:none !important; border-color:#363c48 !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-fps-badge .dcfg-cnav-fps-game,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-fps-badge b,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-fps-low{ color:#c8cdd5 !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-fps-unit{ color:#c8cdd5 !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-fps-res{ color:#7fb2ff !important; }
/* ===== CHROME: header categoria + toggle vista (charcoal) ===== */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-head{ background:#22262e; border-color:#363c48; color:#dbe0e8; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-title,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-head h3{ color:#dbe0e8; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-sel{ color:#7fb2ff !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-view-btn{ background:#2a2f38; border-color:#363c48; color:#aab2c0; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-view-btn.is-active{ background:#1c63ab; border-color:#1c63ab; color:#fff; }
/* ===== CHROME: card opzione (charcoal) ===== */
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt{ background:#22262e; border-color:#363c48; color:#dbe0e8; }
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt .drako-pcb2-opt-name,
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt h4{ color:#dbe0e8; }
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-code,
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt .pdm-code{ color:#8891a0; }
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-fps-unit,
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-fps-res{ color:#7fb2ff !important; }
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt.is-selected:not(.is-incompat){ background:rgba(34,197,94,.10); border-color:rgba(34,197,94,.65); }
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt.is-incompat.is-selected{ background:rgba(239,107,107,.10); border-color:#ef5350; box-shadow:0 0 0 1px #ef5350 inset; }
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-incompat-msg{ background:#7f2831 !important; color:#ffe1e3 !important; }
html[data-theme="dark"] #drakoCfgCustomizer .span{ background:#2a2f38; color:#c8cdd5; }
/* ===== CHROME: riepilogo dx + scheda prodotto (charcoal) ===== */
html[data-theme="dark"] .drako-pi-wrapper.dcfg-on{ background:#22262e !important; border-color:#363c48 !important; }
html[data-theme="dark"] #drakoCfgSummary .dcfg-cl-thumb{ background:#2a2f38; border-color:#363c48; }
html[data-theme="dark"] #drakoCfgSummary .h5,
html[data-theme="dark"] #drakoCfgSummary h5{ background:transparent; color:#dbe0e8; }
html[data-theme="dark"] #drakoCfgSummary .dcfg-btn-cust{ background:#2a2f38; border-color:#363c48; color:#dbe0e8; }
html[data-theme="dark"] #drakoCfgSummary .dcfg-cl-row:hover{ background:#323840 !important; }
html[data-theme="dark"] #drakoCfgSummary .dcfg-btn-cust:hover{ background:#323840 !important; }
/* ===== PANNELLI FPS + ALIMENTAZIONE (navy, stile widget FPS) ===== */
html[data-theme="dark"] .dcfg-bar-uni-card{ background:#0d1626 !important; border-color:#263a5e !important; }
html[data-theme="dark"] .dcfg-bar-uni-h{ color:#93a3c2; }
html[data-theme="dark"] .dcfg-psu{ color:#eaf0fb; }
html[data-theme="dark"] .dcfg-psu-card{ background:#0d1626 !important; border-color:#263a5e !important; }
html[data-theme="dark"] .dcfg-psu-thumb,
html[data-theme="dark"] .dcfg-psu-loadthumb{ background:#0a1220 !important; border-color:#263a5e !important; }
html[data-theme="dark"] .dcfg-psu-change{ background:#111d33 !important; border-color:#263a5e !important; color:#eaf0fb !important; }
html[data-theme="dark"] .dcfg-psu-gauge-track{ background:rgba(255,255,255,.10) !important; }
html[data-theme="dark"] .dcfg-psu-loadlist{ border-color:#263a5e !important; background:rgba(255,255,255,.03) !important; }
html[data-theme="dark"] .dcfg-psu h5{ background:transparent !important; color:#b9c6de !important; border-color:#263a5e !important; }
html[data-theme="dark"] .dcfg-psu b,
html[data-theme="dark"] .dcfg-psu em,
html[data-theme="dark"] .dcfg-psu .dcfg-psu-cardname,
html[data-theme="dark"] .dcfg-psu-loadname{ color:#eaf0fb !important; }
html[data-theme="dark"] .dcfg-psu-intro,
html[data-theme="dark"] .dcfg-psu-reqline,
html[data-theme="dark"] .dcfg-psu-cardlabel,
html[data-theme="dark"] .dcfg-psu-loadhead,
html[data-theme="dark"] .dcfg-psu-loadsub,
html[data-theme="dark"] .dcfg-psu .span{ color:#93a3c2 !important; }
html[data-theme="dark"] .dcfg-psu-loadwatt,
html[data-theme="dark"] .dcfg-psu-cardwatt{ color:#7fb2ff !important; }
html[data-theme="dark"] #drakoCfgBar .dcfg-psu-loaditem:hover,
html[data-theme="dark"] #drakoCfgSummary .dcfg-psu-loaditem:hover,
html[data-theme="dark"] #drakoCfgBar .dcfg-psu-loadlist li:hover,
html[data-theme="dark"] #drakoCfgSummary .dcfg-psu-loadlist li:hover,
html[data-theme="dark"] .dcfg-psu-card:hover,
html[data-theme="dark"] .dcfg-psu-cardsel:hover,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-psu-loaditem:hover,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-psu-loadlist li:hover{ background:rgba(43,123,208,.14) !important; }
html[data-theme="dark"] .dfps-mrow:hover{ background:rgba(43,123,208,.10) !important; }
/* ===== MODALI FINANZIAMENTO (stile scheda prodotto charcoal + scrim) ===== */
html[data-theme="dark"] .dcfg-fin-modal,
html[data-theme="dark"] .drako-inst-modal{ background:rgba(0,0,0,.72) !important; }
html[data-theme="dark"] .drako-inst-modal-box{ border:1px solid var(--drako-border-strong,#363c48) !important; box-shadow:0 24px 64px rgba(0,0,0,.7) !important; }
html[data-theme="dark"] .dcfg-fin-modal-box{ background:#22262e !important; border:1px solid #363c48 !important; color:#dbe0e8 !important; }
html[data-theme="dark"] .dcfg-fin-modal-box h2,
html[data-theme="dark"] .dcfg-fin-modal-box h3,
html[data-theme="dark"] .dcfg-fin-modal-box strong,
html[data-theme="dark"] .dcfg-fin-modal-box p,
html[data-theme="dark"] .dcfg-fin-modal-box li,
html[data-theme="dark"] .dcfg-fin-modal-box label{ color:#dbe0e8 !important; }
html[data-theme="dark"] .dcfg-fin-modal-box .dcfg-fin-note,
html[data-theme="dark"] .dcfg-fin-modal-box small{ color:#8891a0 !important; }
html[data-theme="dark"] .dcfg-fin-modal-box input,
html[data-theme="dark"] .dcfg-fin-modal-box textarea,
html[data-theme="dark"] .dcfg-fin-modal-box select{ background:#2a2f38 !important; border-color:#363c48 !important; color:#dbe0e8 !important; }
html[data-theme="dark"] .dcfg-sella-rates thead,
html[data-theme="dark"] .dcfg-sella-rates thead tr,
html[data-theme="dark"] .dcfg-sella-rates th{ background:#2a2f38 !important; color:#c8cdd5 !important; border-color:#363c48 !important; }
html[data-theme="dark"] .dcfg-sella-rates td{ color:#dbe0e8 !important; border-color:#363c48 !important; }
html[data-theme="dark"] .dcfg-sella-rates td b,
html[data-theme="dark"] .dcfg-sella-rates td strong{ color:#ffffff !important; }
html[data-theme="dark"] .dcfg-sella-rates tr:hover td{ background:#323840 !important; }
html[data-theme="dark"] .dcfg-sella-form .dcfg-sella-rates tr.is-best td{ background:rgba(74,141,184,.22) !important; color:#eaf0fb !important; }
html[data-theme="dark"] .dcfg-sella-form .dcfg-sella-rates tr.is-best td b,
html[data-theme="dark"] .dcfg-sella-form .dcfg-sella-rates tr.is-best td strong{ color:#ffffff !important; }
html[data-theme="dark"] .dcfg-sella-rates input[type="radio"],
html[data-theme="dark"] .drako-inst-modal input[type="radio"]{ accent-color:#4a8db8; }
html[data-theme="dark"] .drako-inst-modal-box{ background:#22262e !important; }
html[data-theme="dark"] .drako-inst-modal th{ background:#2a2f38 !important; color:#c8cdd5 !important; }
html[data-theme="dark"] .drako-inst-modal td{ color:#dbe0e8 !important; }
/* ============================================================================
   FIX gap-scroll: il dropdown della barra era in-flow (position:static) dentro
   la barra FISSA, gonfiandone l'altezza (123 -> 771px). Lo script di takeover
   usa l'altezza barra per lo spacer -> grande spazio vuoto scrollando con un
   dropdown aperto. Reso overlay (absolute): la barra resta 123px, niente gap.
   ============================================================================ */
#drakoCfgBar .dcfg-bar-dropdown{ position:absolute !important; top:100% !important; left:0; right:0; }
/* ============================================================================
   Modali configuratore "Salva" e "Condividi" (DUE modali distinti) - stile
   admin dui: card pulita, Segoe UI, blu #1c63ab. Riusano il guscio
   .dcfg-fin-modal per overlay/scrim/centratura. Base light + dark charcoal.
   ============================================================================ */
.dcfg-cfgm-box{ max-width:460px; position:relative; font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif; padding:22px 22px 20px; border-radius:12px; }
.dcfg-cfgm-close{ position:absolute; top:12px; right:14px; width:30px; height:30px; border:0; background:transparent; font-size:24px; line-height:1; color:#6b7280; cursor:pointer; border-radius:8px; }
.dcfg-cfgm-close:hover{ background:rgba(0,0,0,.06); color:#111827; }
.dcfg-cfgm-head{ display:flex; align-items:center; gap:11px; margin-bottom:6px; }
.dcfg-cfgm-ico{ flex:0 0 auto; width:38px; height:38px; display:flex; align-items:center; justify-content:center; border-radius:10px; background:rgba(28,99,171,.10); color:#1c63ab; }
.dcfg-cfgm-head h3{ margin:0; font-size:18px; font-weight:700; color:#111827; }
.dcfg-cfgm-sub{ margin:0 0 16px; font-size:13.5px; line-height:1.5; color:#6b7280; }
.dcfg-cfgm-lbl{ display:block; font-size:12px; font-weight:600; color:#6b7280; margin-bottom:6px; }
.dcfg-cfgm-linkrow{ display:flex; gap:8px; margin-bottom:16px; }
.dcfg-cfgm-link{ flex:1 1 auto; min-width:0; padding:9px 11px; border:1px solid #d7dee7; border-radius:9px; background:#f6f8fb; font-size:13px; color:#374151; }
.dcfg-cfgm-copy{ flex:0 0 auto; padding:9px 16px; border:0; border-radius:9px; background:#1c63ab; color:#fff; font-weight:600; font-size:13px; cursor:pointer; white-space:nowrap; }
.dcfg-cfgm-copy:hover{ background:#17518c; }
.dcfg-cfgm-copy.is-done{ background:#16a34a; }
.dcfg-cfgm-foot{ display:flex; justify-content:flex-end; }
.dcfg-cfgm-ok{ padding:9px 20px; border:0; border-radius:9px; background:#1c63ab; color:#fff; font-weight:600; font-size:13px; cursor:pointer; }
.dcfg-cfgm-ok:hover{ background:#17518c; }
/* dark (charcoal, coerente con la scheda prodotto) */
html[data-theme="dark"] .dcfg-cfgm-close{ color:#8891a0; }
html[data-theme="dark"] .dcfg-cfgm-close:hover{ background:rgba(255,255,255,.08); color:#e8ecf2; }
html[data-theme="dark"] .dcfg-cfgm-ico{ background:rgba(74,141,184,.18); color:#7fb2ff; }
html[data-theme="dark"] .dcfg-cfgm-head h3{ color:#e8ecf2; }
html[data-theme="dark"] .dcfg-cfgm-sub,
html[data-theme="dark"] .dcfg-cfgm-lbl{ color:#8891a0; }
html[data-theme="dark"] .dcfg-cfgm-link{ background:#2a2f38 !important; border-color:#363c48 !important; color:#dbe0e8 !important; }
/* ============================================================================
   "Salva la build nell'account" - modale riepilogo (case/CPU/GPU) + nome.
   Riusa il guscio .dcfg-fin-modal-box / .dcfg-cfgm-box. Base light + dark.
   ============================================================================ */
.dcfg-savebuild-box{ max-width:464px; }
.dcfg-mdl-ic{ flex:0 0 auto; width:40px; height:40px; object-fit:contain; filter:drop-shadow(0 1px 2px rgba(0,0,0,.18)); }
.dcfg-sb-summary{ margin:6px 0 18px; background:none; border:0; border-radius:0; padding:0; }
.dcfg-sb-summary .dcfg-sb-complist{ margin:13px 2px 0; gap:11px; }
.dcfg-sb-hero{ text-align:center; overflow:visible; }
.dcfg-sb-hero-img{ display:inline-block; padding:14px; background:#fff; border-radius:12px; max-width:100%; box-sizing:border-box; line-height:0; }
.dcfg-sb-hero-img img{ height:220px; width:auto; max-width:100%; object-fit:contain; display:block; }
.dcfg-sb-hero-empty{ min-width:200px; min-height:200px; background:repeating-linear-gradient(45deg,#f4f6f9,#f4f6f9 8px,#eef1f5 8px,#eef1f5 16px); }
html[data-theme="dark"] .dcfg-sb-summary{ background:none; border:0; }
html[data-theme="dark"] .dcfg-sb-hero-img{ background:#fff; }
.dcfg-sb-row{ display:flex; align-items:center; gap:12px; padding:9px 12px; }
.dcfg-sb-row + .dcfg-sb-row{ border-top:1px solid #eef1f5; }
.dcfg-sb-thumb{ flex:0 0 auto; width:46px; height:46px; border-radius:8px; background:#f4f6f9; border:1px solid #e6eaef; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.dcfg-sb-thumb img{ max-width:100%; max-height:100%; object-fit:contain; display:block; }
.dcfg-sb-thumb-empty{ background:repeating-linear-gradient(45deg,#f4f6f9,#f4f6f9 6px,#eef1f5 6px,#eef1f5 12px); }
.dcfg-sb-txt{ min-width:0; display:flex; flex-direction:column; gap:2px; }
.dcfg-sb-cat{ font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#5f6774; }
.dcfg-sb-name{ font-size:13.5px; font-weight:600; color:#1f2937; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dcfg-sb-lbl{ display:block; font-size:12px; font-weight:600; color:#6b7280; margin-bottom:6px; }
.dcfg-sb-input + .dcfg-sb-lbl{ margin-top:16px; }
.dcfg-sb-input{ width:100%; box-sizing:border-box; padding:10px 12px; border:1px solid #d7dee7; border-radius:9px; background:#fff; font-size:14px; color:#1f2937; font-family:inherit; }
.dcfg-sb-input::placeholder{ color:#9aa3af; opacity:1; font-weight:400; }
.dcfg-sb-input:focus{ outline:none; border-color:#1c63ab; box-shadow:0 0 0 3px rgba(28,99,171,.12); }
.dcfg-sb-msg{ margin-top:10px; padding:9px 12px; border-radius:9px; font-size:13px; line-height:1.4; }
.dcfg-sb-msg.is-err{ background:#fdecec; color:#b42431; }
.dcfg-sb-msg.is-info{ background:#eaf1fb; color:#1c63ab; }
.dcfg-sb-foot{ display:flex; justify-content:space-between; gap:10px; margin-top:18px; }
.dcfg-sb-btn{ padding:10px 18px; border-radius:9px; font-weight:600; font-size:13.5px; cursor:pointer; border:1px solid transparent; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; font-family:inherit; }
.dcfg-sb-ghost{ background:#fff; border-color:#d7dee7; color:#374151; }
.dcfg-sb-ghost:hover{ background:#f2f6fb; border-color:#1c63ab; color:#1c63ab; }
.dcfg-sb-save{ background:#1c63ab; color:#fff; border-color:#1c63ab; box-shadow:0 2px 10px rgba(28,99,171,.30); }
.dcfg-sb-save:hover{ background:#17518c; border-color:#17518c; }
.dcfg-sb-save:disabled{ opacity:.6; cursor:default; }
.dcfg-sb-done{ margin:2px 0 4px; font-size:14px; line-height:1.5; color:#374151; }
.dcfg-sb-okico{ background:rgba(22,163,74,.12) !important; color:#16a34a !important; }
html[data-theme="dark"] .dcfg-sb-row + .dcfg-sb-row{ border-top-color:#2f353f; }
html[data-theme="dark"] .dcfg-sb-thumb{ background:#2a2f38; border-color:#363c48; }
html[data-theme="dark"] .dcfg-sb-thumb-empty{ background:repeating-linear-gradient(45deg,#2a2f38,#2a2f38 6px,#323840 6px,#323840 12px); }
html[data-theme="dark"] .dcfg-sb-cat{ color:#8891a0; }
html[data-theme="dark"] .dcfg-sb-name{ color:#e8ecf2; }
html[data-theme="dark"] .dcfg-sb-lbl{ color:#8891a0; }
html[data-theme="dark"] .dcfg-sb-input{ background:#2a2f38 !important; border-color:#363c48 !important; color:#dbe0e8 !important; }
html[data-theme="dark"] .dcfg-sb-input::placeholder{ color:#727a86 !important; opacity:1; }
html[data-theme="dark"] .dcfg-sb-input:focus{ border-color:#4a8db8 !important; box-shadow:0 0 0 3px rgba(74,141,184,.2); }
html[data-theme="dark"] .dcfg-sb-msg.is-err{ background:rgba(207,38,50,.16); color:#ff9b9b; }
html[data-theme="dark"] .dcfg-sb-msg.is-info{ background:rgba(74,141,184,.16); color:#8fc0ea; }
html[data-theme="dark"] .dcfg-sb-ghost{ background:#2a2f38; border-color:#363c48; color:#dbe0e8; }
html[data-theme="dark"] .dcfg-sb-ghost:hover{ background:#323840; border-color:#4a8db8; color:#e8ecf2; }
html[data-theme="dark"] .dcfg-sb-done{ color:#c8cdd5; }
html[data-theme="dark"] .dcfg-sb-okico{ background:rgba(22,163,74,.2) !important; color:#4ade80 !important; }
/* Condividi con la Community - CTA nel modale share + form regole. Base light + dark. */
.dcfg-comm-cta{ width:100%; }
.dcfg-sb-btn:disabled{ opacity:.5; cursor:not-allowed; box-shadow:none; }
.dcfg-sb-complist{ list-style:none; margin:10px 0 0; padding:0; display:flex; flex-direction:column; gap:9px; }
.dcfg-sb-complist li{ display:flex; align-items:center; gap:10px; min-width:0; }
.dcfg-sb-ci{ flex:0 0 auto; width:20px; height:20px; color:#8a94a3; display:inline-flex; align-items:center; justify-content:center; }
.dcfg-sb-ci svg{ display:block; }
.dcfg-sb-cn{ min-width:0; font-size:13px; font-weight:600; color:#37424f; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
html[data-theme="dark"] .dcfg-sb-ci{ color:#8891a0; }
html[data-theme="dark"] .dcfg-sb-cn{ color:#c8cdd5; }
.dcfg-comm-rules-row{ display:flex; align-items:flex-start; gap:8px; margin-top:12px; font-size:12.5px; line-height:1.4; color:#374151; cursor:pointer; }
.dcfg-comm-rules-row input[type="checkbox"]{ margin-top:1px; flex:0 0 auto; accent-color:#1c63ab; }
.dcfg-comm-rules-row a{ color:#1c63ab; font-weight:600; text-decoration:underline; }
.dcfg-comm-rules-list{ margin:0; padding-left:18px; font-size:12px; line-height:1.6; color:#6b7280; }
html[data-theme="dark"] .dcfg-comm-rules-row{ color:#c8cdd5; }
html[data-theme="dark"] .dcfg-comm-rules-row a{ color:#8fc0ea; }
html[data-theme="dark"] .dcfg-comm-rules-list{ color:#9aa3b0; }
/* ============================================================================
   Dark: delta FPS su card/lista opzione in palette AUTUNNALE (verde caldo /
   rosso rust) + evidenziazione item attivo nel nav adattata al dark.
   ============================================================================ */
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-fps.is-up,
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-fps.is-up *,
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-fps.is-plus,
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-fps.is-plus *{ color:#8fb84e !important; }
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-fps.is-down,
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-fps.is-down *,
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-fps.is-minus,
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-fps.is-minus *{ color:#e1815b !important; }
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-fps.is-same,
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-fps.is-same *,
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-fps.is-flat,
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-fps.is-flat *{ color:#8891a0 !important; }
/* Evidenziazione item attivo nel nav (dark: stesso stile blu ma scuro) */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-link.is-active{ background:rgba(74,141,184,.16) !important; border-color:#4a8db8 !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-link.is-active .dcfg-cnav-name{ color:#8fc0ea !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-link.is-active .dcfg-cnav-lbl{ color:#7fb2ff !important; }
/* highlight nav attivo: batte html body ...riepilogo...is-active !important */
html[data-theme="dark"] body #drakoCfgCustomizer .dcfg-cnav-riepilogo .dcfg-cnav-link.is-active{ background:rgba(74,141,184,.16) !important; border-color:#4a8db8 !important; }
html[data-theme="dark"] body #drakoCfgCustomizer .dcfg-cnav-riepilogo .dcfg-cnav-link.is-active .dcfg-cnav-name{ color:#8fc0ea !important; }
html[data-theme="dark"] body #drakoCfgCustomizer .dcfg-cnav-riepilogo .dcfg-cnav-link.is-active .dcfg-cnav-lbl{ color:#7fb2ff !important; }
/* ============================================================
   Fix dark mode configuratore (2026-07-08)
   - riga divisoria tra sezioni (visibile solo in dark)
   - colori warning/incompatibilita' sulle sezioni
   - stato ambra alimentatore (verdetto/gauge)
   - badge alimentatore sticky bar (verde/ambra/rosso)
   ============================================================ */
/* Task 3: riga chiara #e8ebef tra le sezioni -> invisibile su fondo scuro */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat { border-bottom-color:transparent !important; }
/* Task 2: warning (ambra) e incompatibilita' (rosso) sezioni, leggibili su fondo scuro */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat.has-warn .dcfg-cat-sel,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat.has-warn .dcfg-cat-title::after,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cl-row.has-warn .dcfg-cl-slot,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-link.has-warn,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-link.has-warn .dcfg-cnav-name,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-link.has-warn .dcfg-cnav-lbl { color:#f4c04e !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-link.has-warn { border-color:#8a6d1f !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat.has-error .dcfg-cat-sel,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat.has-error .dcfg-cat-title::after,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cl-row.has-error .dcfg-cl-slot,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-link.has-error,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-link.has-error .dcfg-cnav-name,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-link.has-error .dcfg-cnav-lbl { color:#ff8f8f !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-link.has-error { border-color:#a15c5f !important; }
/* Task 1 (dark): stato ambra alimentatore */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-psu-verdict.warn,
html[data-theme="dark"] #drakoCfgSummary .dcfg-psu-verdict.warn,
html[data-theme="dark"] #drakoCfgBar .dcfg-psu-verdict.warn { background:rgba(240,180,41,.16) !important; color:#f4c04e !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-psu-gauge-cap.warn,
html[data-theme="dark"] #drakoCfgBar .dcfg-psu-gauge-cap.warn { background:#e6a417 !important; }
/* Task 4: badge alimentatore sticky bar - colori stato visibili in dark */
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-psu.is-ok { background:rgba(34,197,94,.16) !important; border-color:rgba(34,197,94,.5) !important; }
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-psu.is-ok .dcfg-bar-badge-txt b { color:#4ade80 !important; }
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-psu.is-warn { background:rgba(240,180,41,.18) !important; border-color:rgba(240,180,41,.55) !important; }
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-psu.is-warn .dcfg-bar-badge-txt b { color:#f4c04e !important; }
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-psu.is-bad { background:rgba(239,68,68,.18) !important; border-color:rgba(239,68,68,.55) !important; }
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-psu.is-bad .dcfg-bar-badge-txt b { color:#ff8f8f !important; }
/* ============================================================================
   Dropdown FPS/Alimentazione: dopo il fix gap (position:absolute overlay) il
   contenitore era TRASPARENTE in light -> si vedeva la pagina dietro ("non
   c'e' il background"). Sfondo opaco + ombra = pannello flottante distinto.
   ============================================================================ */
#drakoCfgBar .dcfg-bar-dropdown{ background:#ffffff !important; border:1px solid #e5e7eb !important; box-shadow:0 18px 44px rgba(15,23,42,.20) !important; border-radius:0 0 14px 14px; }
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-dropdown{ background:#1c2029 !important; border-color:#363c48 !important; box-shadow:0 18px 44px rgba(0,0,0,.55) !important; }
/* Scheda prodotto configuratore: aumenta solo lo spazio sopra la foto */
.drako-pi-wrapper.dcfg-on .drako-pi-main-img{
  padding-top:34px!important;
  box-sizing:border-box;
}
@media (max-width:900px){.drako-pi-wrapper.dcfg-on .drako-pi-main-img{ padding-top:22px!important; }}
/* Scheda prodotto configuratore: padding uniforme */
.drako-pi-wrapper.dcfg-on{
  padding:20px!important;
}
/* Sticky bar: dati consegna/pagamenti allineati e non tagliati */
#drakoCfgBar.dcfg-bar .dcfg-bar-main{
  grid-template-columns:minmax(135px,155px) minmax(165px,180px) minmax(300px,1fr) minmax(300px,320px) minmax(170px,190px) minmax(210px,230px)!important;
  column-gap:18px!important;
  overflow:visible!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line{
  gap:6px!important;
  width:100%!important;
  max-width:none!important;
  padding-left:0!important;
  border-left:0!important;
  font-size:12px!important;
  line-height:1.25!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line > span,
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line > span:not(.dcfg-bar-data-codes){
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
  min-width:max-content!important;
  max-width:none!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line i{
  flex:0 0 16px!important;
  width:16px!important;
  min-width:16px!important;
  text-align:center!important;
  line-height:1!important;
}
@media (max-width:1280px){#drakoCfgBar.dcfg-bar .dcfg-bar-main{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    row-gap:10px!important;
  }
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line{
    grid-column:1 / -1!important;
    flex-direction:row!important;
    gap:10px 22px!important;
  }}
/* Sticky bar: consegna e pagamenti sempre impilati e allineati */
#drakoCfgBar.dcfg-bar .dcfg-bar-data-line{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:5px!important;
  min-width:300px!important;
  overflow:visible!important;
  text-align:left!important;
}
@media (max-width:1280px){#drakoCfgBar.dcfg-bar .dcfg-bar-data-line{
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    gap:5px!important;
    min-width:0!important;
  }}
/* ============================================================
   Slot MULTI (piu' modelli + quantita'): selettore quantita'
   DI FIANCO al bottone Seleziona/Selezionato della card.
   ============================================================ */
#drakoCfgCustomizer .drako-pcb2-opt-actions { display:flex; align-items:stretch; gap:8px; margin-top:0; }
#drakoCfgCustomizer .drako-pcb2-opt-actions .drako-pcb2-opt-cta { margin-top:0; flex:1 1 auto; }
#drakoCfgCustomizer .drako-pcb2-opt-qty { display:none; flex:0 0 auto; align-items:stretch; border:1px solid var(--dcfg-border); border-radius:6px; overflow:hidden; background:#fff; }
#drakoCfgCustomizer .drako-pcb2-opt.is-selected .drako-pcb2-opt-qty { display:inline-flex; }
/* col CTA rimosso, il selettore quantita' (solo su card selezionata) tiene lo spazio dall'alto */
#drakoCfgCustomizer .drako-pcb2-opt.is-selected .drako-pcb2-opt-actions { margin-top:10px; }
#drakoCfgCustomizer .dcfg-qbtn { width:30px; border:0; background:#f1f5f9; color:#1c63ab; font-size:16px; font-weight:700; line-height:1; cursor:pointer; padding:0; display:inline-flex; align-items:center; justify-content:center; transition:background .15s; }
#drakoCfgCustomizer .dcfg-qbtn:hover:not(:disabled) { background:#e2e8f0; }
#drakoCfgCustomizer .dcfg-qbtn:disabled { opacity:.38; cursor:default; }
#drakoCfgCustomizer .dcfg-qval { min-width:28px; text-align:center; font-size:13px; font-weight:700; color:#0f172a; padding:0 4px; display:inline-flex; align-items:center; justify-content:center; background:#fff; }
/* feedback quando si tocca il cap (max_quantity dello slot) */
#drakoCfgCustomizer .dcfg-cat.dcfg-cap-hit .dcfg-cat-title { animation:dcfgCapPulse .8s ease; }
@keyframes dcfgCapPulse { 0%,100%{ color:inherit; } 30%{ color:#b45309; } }
/* vista LISTA: il CTA e' nascosto, ma lo stepper resta accanto sui selezionati */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-actions { margin-top:0; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-selected .drako-pcb2-opt-qty { display:inline-flex; }
/* dark: palette navy dei pannelli configuratore (coerente con lo schema esistente) */
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-qty { background:#0d1626; border-color:#263a5e; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-qbtn { background:#111d33; color:#8fb7ff; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-qbtn:hover:not(:disabled) { background:#1b2b4d; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-qval { background:#0d1626; color:#eaf0fb; }
/* Avviso di CAPIENZA (slot multi al massimo): WARNING ambra, NON incompatibilita' (rosso).
   COLORI DAI TOKEN DEL SITO, non scritti a mano: erano due palette separate - una
   chiara e una per html[data-theme="dark"] - e bastava che una delle due non
   agganciasse per ritrovarsi il riquadro color crema dentro una pagina scura.
   Coi token il tema lo segue da solo, in tutte e due le direzioni. */
/* FONDO AMBRA, ma ricavato dal token e TRASPARENTE: una velatura del colore di
   avviso sopra la superficie del tema. Cosi' l'ambra c'e' in tutti e due i temi -
   pallida sul chiaro, calda sullo scuro - senza due palette da tenere allineate,
   che e' quello che aveva fatto uscire il riquadro crema dentro la pagina scura.
   La riga rgba resta come ripiego per i browser senza color-mix. */
/* RIVISTO 17/08: la velatura ambra piu' il bordo ambra pieno facevano, al buio,
   una fascia oliva che pesava piu' della riga di prodotto sotto - ed e' una
   nota di servizio ("resta spazio per due moduli"), non un errore. L'ambra
   resta dove serve a dire di che avviso si tratta: il segno di attenzione e
   una barretta a sinistra. Il resto e' la superficie del tema, come le altre
   note del configuratore. */
#drakoCfgCustomizer .dcfg-multi-note { margin:6px 0 2px; padding:8px 11px; border-radius:6px; background:var(--drako-bg-elevated,#f9fafb); border:1px solid var(--drako-border,#e5e7eb); border-left:3px solid var(--drako-warning,#f59e0b); color:var(--drako-text-secondary,#444); font-size:12px; line-height:1.35; display:flex; align-items:center; gap:7px; }
#drakoCfgCustomizer .dcfg-multi-note > span:first-child { color:var(--drako-warning,#f59e0b); flex:0 0 auto; }
/* La riga si puo' chiudere: ha fatto il suo lavoro appena letta, e il "+" resta
   spento comunque - l'informazione non va perduta, si toglie solo di mezzo.
   Stessa idea della X sull'avviso FPS del generatore. */
#drakoCfgCustomizer .dcfg-multi-note-x { margin-left:auto; flex:0 0 auto; border:0; background:none; cursor:pointer; padding:0 2px; font-size:16px; line-height:1; color:var(--drako-text-muted,#666); }
#drakoCfgCustomizer .dcfg-multi-note-x:hover { color:var(--drako-text,#1a1a1a); }
#drakoCfgCustomizer .dcfg-multi-note[hidden] { display:none; }
#drakoCfgCustomizer .dcfg-multi-note.dcfg-note-pulse { animation:dcfgNotePulse .7s ease; }
/* Il lampeggio NON tocca piu' il fondo: le sue vecchie keyframe erano crema fissa
   (#fff7ed) e su tema scuro il riquadro sbiancava per tutta la durata
   dell'animazione. Ora pulsa un alone ambra, che sta bene su qualunque fondo. */
@keyframes dcfgNotePulse { 0%,100%{ box-shadow:0 0 0 0 rgba(245,158,11,0); } 35%{ box-shadow:0 0 0 3px rgba(245,158,11,.38); } }
/* WARNING di capienza DENTRO la card/riga selezionata (ambra, come l'incompat ma non bloccante). */
#drakoCfgCustomizer .drako-pcb2-opt-warn-msg { margin-top:6px; padding:7px 11px; border-radius:5px; background:#fbe7b6; border:1px solid #e3bf5f; color:#7a4e08; font-size:14px; font-weight:700; line-height:1.3; display:flex; align-items:flex-start; gap:6px; }
#drakoCfgCustomizer .drako-pcb2-opt-warn-msg .dcfg-optwarn-ico { color:#d97706; flex:0 0 auto; }
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-warn-msg { background:rgba(205,160,60,.24); border-color:rgba(222,175,72,.62); color:#f0cd80; }
/* --- "Aggiungi al carrello" bloccato: configurazione incompatibile o incompleta --- */
[data-role="add"].is-cfg-blocked,
.drako-pi-add-btn.is-cfg-blocked,
.dcfg-btn-cart.is-cfg-blocked {
  background:#d1d5db !important;
  border-color:#d1d5db !important;
  color:#6b7280 !important;
  cursor:not-allowed !important;
  box-shadow:none !important;
  filter:grayscale(1);
}
[data-role="add"].is-cfg-blocked svg,
.drako-pi-add-btn.is-cfg-blocked svg,
.dcfg-btn-cart.is-cfg-blocked svg { opacity:.6; }
html[data-theme="dark"] [data-role="add"].is-cfg-blocked,
html[data-theme="dark"] .drako-pi-add-btn.is-cfg-blocked,
html[data-theme="dark"] .dcfg-btn-cart.is-cfg-blocked {
  background:#3a3f47 !important;
  border-color:#3a3f47 !important;
  color:#9aa1ac !important;
}
/* ===== FPS / Alimentazione: badge -> finestre MODALI separate, centrate, stesse misure ===== */
.dcfg-bar-uni.dcfg-uni-modal{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:auto!important;height:auto!important;max-width:none!important;min-width:0!important;margin:0!important;padding:20px!important;display:flex!important;align-items:center!important;justify-content:center!important;background:rgba(4,7,11,.62)!important;border:0!important;border-top:0!important;border-radius:0!important;box-shadow:none!important;max-height:none!important;overflow:auto!important;z-index:2147483000!important;}
.dcfg-bar-uni.dcfg-uni-modal[hidden]{display:none!important;}
.dcfg-uni-modal .dcfg-bar-uni-grid{display:block!important;grid-template-columns:none!important;gap:0!important;box-sizing:border-box!important;background:#fff!important;border:0!important;border-radius:16px!important;box-shadow:0 24px 70px rgba(0,0,0,.45)!important;width:900px!important;max-width:calc(100vw - 40px)!important;min-height:360px!important;max-height:84vh!important;overflow:auto!important;padding:28px 24px 22px!important;position:relative!important;animation:dcfgUniIn .16s ease;}
@keyframes dcfgUniIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-card[data-card="psu"],
.dcfg-uni-modal[data-show="psu"] .dcfg-bar-uni-card[data-card="fps"]{display:none!important;}
.dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-card[data-card="fps"] .dcfg-bar-uni-h{display:none!important;}
.dcfg-uni-modal .dcfg-bar-uni-card{background:transparent!important;border:0!important;padding:0!important;margin:0!important;}
.dcfg-uni-modal .dcfg-bar-uni-h{font-size:15px!important;color:#0f172a!important;margin:0 0 16px!important;}
.dcfg-uni-close{position:absolute!important;top:10px;right:12px;width:34px;height:34px;border:0;background:#eef2f7;color:#334155;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;z-index:2;}
.dcfg-uni-close:hover{background:#e2e8f0;}
html[data-theme="dark"] .dcfg-uni-modal .dcfg-bar-uni-grid{background:#1c2029!important;box-shadow:0 24px 70px rgba(0,0,0,.7)!important;}
html[data-theme="dark"] .dcfg-uni-modal .dcfg-bar-uni-h{color:#e5e7eb!important;}
html[data-theme="dark"] .dcfg-uni-close{background:#263a5e;color:#cbd5e1;}
html[data-theme="dark"] .dcfg-uni-close:hover{background:#31507f;}
#drakoCfgBar.dcfg-bar.is-open{transform:none!important;transition:none!important;}
/* FIX 07-14: senza transition il transform va a none nello stesso frame - niente piu' "nastro" di ~200ms: il transform attivo faceva da containing block e teneva la modale fixed prigioniera della barra */
#drakoCfgBar .dcfg-bar-uni.dcfg-uni-modal{max-width:none!important;width:auto!important;margin:0!important;}
#drakoCfgBar .dcfg-uni-modal .dcfg-psu{max-width:none!important;width:100%!important;}
/* content tweaks: equal height, FPS hz, RAM/verdict highlight */
#drakoCfgBar .dcfg-uni-modal .dcfg-bar-uni-grid{height:700px!important;min-height:0!important;}
#drakoCfgBar .dcfg-uni-modal .dfps-mtier{display:none!important;}
#drakoCfgBar .dcfg-uni-modal .dcfg-psu-verdict{font-size:15px!important;font-weight:700!important;padding:14px 16px!important;}
/* content tweaks 2: game-dd dark, hz-gap, ram bigger, psu fill-height */
html[data-theme="dark"] .dfps-suggest{background:#1a1d24!important;border-color:#2a3344!important;box-shadow:0 14px 44px rgba(0,0,0,.6)!important;}
html[data-theme="dark"] .dfps-sug{background:#1a1d24!important;color:#e5e7eb!important;}
html[data-theme="dark"] .dfps-sug *{color:#e5e7eb!important;}
html[data-theme="dark"] .dfps-sug:hover,html[data-theme="dark"] .dfps-sug.is-active{background:#263a5e!important;}
html[data-theme="dark"] .dfps-sug:hover *{color:#ffffff!important;}
#drakoCfgBar .dcfg-uni-modal .dfps-mrow{grid-template-columns:150px 1fr 62px!important;}
#drakoCfgBar .dcfg-uni-modal[data-show="psu"] .dcfg-bar-uni-card[data-card="psu"]{display:flex!important;flex-direction:column!important;height:100%!important;}
#drakoCfgBar .dcfg-uni-modal .dcfg-psu{flex:1 1 auto!important;display:flex!important;flex-direction:column!important;justify-content:flex-start!important;}
/* content tweaks 4: gameart fill, unmerge psu cell, gauge consumo, nav pointer, no-X */

#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-psu{display:none!important;}
#drakoCfgBar .dcfg-uni-modal .dcfg-psu-gauge-legend .lg-fill{display:none!important;}
.dcfg-cnav-fps,.dcfg-cnav-fps-badge,.dcfg-cnav-fps-badge *{cursor:pointer!important;}
#drakoCfgBar .dcfg-uni-modal .dcfg-uni-close{display:none!important;}
/* --- 10-lug: layout FPS widget dentro la modale unificata (dropdown FPS) --- */
#drakoCfgBar .dcfg-uni-modal .dfps-result .dfps-hero{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px 16px!important;align-items:start!important;margin-bottom:12px!important;}
#drakoCfgBar .dcfg-uni-modal .dfps-result .dfps-cell{padding:10px 12px!important;}
#drakoCfgBar .dcfg-uni-modal .dfps-cell-gameart{padding:0!important;overflow:hidden!important;border-radius:10px!important;}
#drakoCfgBar .dcfg-uni-modal .dfps-cell-gameart .dfps-gameart-fg{width:100%!important;height:150px!important;object-fit:cover!important;object-position:center 30%!important;display:block!important;border-radius:10px!important;}
#drakoCfgBar .dcfg-uni-modal .dfps-thumb{width:46px!important;height:46px!important;min-width:46px!important;object-fit:cover!important;border-radius:7px!important;}
#drakoCfgBar .dcfg-uni-modal .dfps-multi .dfps-mlist{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px 18px!important;max-height:none!important;}
/* 10-lug: ripristino visuale dropdown FPS - solo CSS, struttura invariata */
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-grid{
  width:900px!important;
  max-width:calc(100vw - 64px)!important;
  height:auto!important;
  max-height:86vh!important;
  padding:12px!important;
  background:#fff!important;
  border:1px solid #dbe3ee!important;
  border-radius:8px!important;
  overflow:auto!important;
  box-sizing:border-box!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-card[data-card="fps"]{
  background:#0f1b2e!important;
  border:1px solid #2b3f61!important;
  border-radius:12px!important;
  padding:18px!important;
  color:#e8eef8!important;
  box-shadow:none!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps *{
  box-sizing:border-box!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head{
  display:flex!important;
  justify-content:space-between!important;
  gap:12px!important;
  margin:0 0 18px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-title{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  font-size:18px!important;
  line-height:1.2!important;
  font-weight:900!important;
  color:#fff!important;
  margin:0!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-title img,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head img{
  width:32px!important;
  height:32px!important;
  object-fit:contain!important;
  flex:0 0 auto!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-controls{
  display:grid!important;
  grid-template-columns:minmax(270px,1.35fr) minmax(170px,.8fr) minmax(130px,.62fr) minmax(170px,.8fr)!important;
  gap:12px!important;
  align-items:end!important;
  margin:0 0 16px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-field{
  position:relative!important;
  min-width:0!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-label,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-field label{
  display:block!important;
  margin:0 0 6px!important;
  color:#9fafc4!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps select,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps input{
  width:100%!important;
  height:36px!important;
  min-height:36px!important;
  border:1px solid #40516d!important;
  border-radius:8px!important;
  background:#121c2c!important;
  color:#fff!important;
  padding:0 12px!important;
  font-size:13px!important;
  font-weight:600!important;
  box-shadow:none!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-hero{
  display:grid!important;
  grid-template-columns:minmax(210px,.72fr) minmax(300px,1.05fr) minmax(260px,.9fr)!important;
  gap:12px!important;
  align-items:stretch!important;
  margin:0 0 14px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell{
  background:#16243a!important;
  border:1px solid #314766!important;
  border-radius:10px!important;
  padding:14px!important;
  color:#dbe6f4!important;
  min-width:0!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-gameart{
  position:relative!important;
  min-height:118px!important;
  padding:0!important;
  overflow:hidden!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-gameart img,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-game-art img,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-gameart img{
  width:100%!important;
  height:118px!important;
  max-height:118px!important;
  display:block!important;
  object-fit:cover!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-game-caption,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-gameart figcaption{
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  min-height:28px!important;
  padding:7px 10px!important;
  background:linear-gradient(180deg,rgba(15,27,46,0),rgba(15,27,46,.95))!important;
  color:#fff!important;
  font-size:12px!important;
  font-weight:900!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-low{
  font-size:24px!important;
  font-weight:900!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-sub,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta{
  color:#aebed3!important;
  font-size:12px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-multi{
  margin-top:14px!important;
  padding-top:16px!important;
  border-top:1px solid #314766!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:8px!important;
  max-height:242px!important;
  overflow-y:auto!important;
  padding-right:6px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mrow{
  display:grid!important;
  gap:10px!important;
  align-items:center!important;
  min-height:22px!important;
  color:#d8e2f1!important;
  font-size:12px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mtrack{
  height:7px!important;
  border-radius:999px!important;
  overflow:hidden!important;
  background:#223047!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mfps{
  text-align:right!important;
  color:#eaf2ff!important;
  font-size:14px!important;
  font-weight:900!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mfps small{font-size:9px!important;color:#a8bad1!important;}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mtier,
#drakoCfgCustomizer .dcfg-cnav-fps-pop .dfps-mtier{
  display:none!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-note{
  display:flex!important;
  align-items:flex-start!important;
  gap:9px!important;
  margin-top:16px!important;
  padding:11px 13px!important;
  border:1px solid #2b4a75!important;
  border-radius:9px!important;
  background:#10203a!important;
  color:#cfe2ff!important;
  font-size:12.5px!important;
  font-weight:600!important;
  line-height:1.45!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-note .dfps-warn{ flex:0 0 auto!important; width:17px!important; height:16px!important; margin-top:2px!important; color:#7fb2ff!important; }
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-suggest{
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:calc(100% + 6px)!important;
  z-index:50!important;
  max-height:260px!important;
  overflow-y:auto!important;
  background:#111b2d!important;
  border:1px solid #41516a!important;
  border-radius:8px!important;
  box-shadow:0 14px 36px rgba(0,0,0,.42)!important;
  padding:5px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-sug{
  display:grid!important;
  grid-template-columns:34px minmax(0,1fr)!important;
  gap:9px!important;
  align-items:center!important;
  min-height:46px!important;
  padding:6px 8px!important;
  border-radius:7px!important;
  background:transparent!important;
  color:#eef5ff!important;
  font-size:12px!important;
  font-weight:800!important;
  cursor:pointer!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-sug:hover{background:#1b2d49!important;}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-sug img{
  width:34px!important;
  height:34px!important;
  border-radius:6px!important;
  object-fit:cover!important;
  display:block!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-sug *{
  min-width:0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
@media (max-width:900px){#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-grid{max-width:calc(100vw - 24px)!important;}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-controls,
  #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-hero{grid-template-columns:1fr!important;}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mrow{grid-template-columns:minmax(110px,150px) minmax(90px,1fr) 52px!important;}}
/* 10-lug: agganci esatti classi widget FPS condiviso - solo CSS */
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-card:first-child{
  background:#0f1b2e!important;
  border:1px solid #2b3f61!important;
  border-radius:12px!important;
  padding:18px!important;
  color:#e8eef8!important;
  box-shadow:none!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-card:first-child > .dcfg-bar-uni-h{
  margin:0 0 12px!important;
  color:#9fafc4!important;
  font-size:11px!important;
  font-weight:900!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head{
  display:grid!important;
  grid-template-columns:34px 1fr auto!important;
  gap:10px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-title{
  justify-self:start!important;
  text-align:left!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-lbl{
  display:block!important;
  margin:0 0 6px!important;
  color:#9fafc4!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-gamebox{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  width:100%!important;
  min-height:36px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-thumb{
  flex:0 0 34px!important;
  border-radius:6px!important;
  object-fit:cover!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-search{
  flex:1 1 auto!important;
  min-width:0!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-resgroup{
  display:flex!important;
  height:36px!important;
  overflow:hidden!important;
  border:1px solid #40516d!important;
  border-radius:8px!important;
  background:#121c2c!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-resbtn{
  flex:1 1 0!important;
  height:34px!important;
  min-width:0!important;
  border:0!important;
  border-right:1px solid #40516d!important;
  border-radius:0!important;
  background:transparent!important;
  color:#fff!important;
  font-size:13px!important;
  font-weight:800!important;
  padding:0 10px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-resbtn:last-child{border-right:0!important;}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-resbtn.is-active{
  background:#1264b3!important;
  color:#fff!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-gameart-cap{
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  display:flex!important;
  justify-content:space-between!important;
  gap:10px!important;
  min-height:30px!important;
  padding:8px 10px!important;
  background:linear-gradient(180deg,rgba(15,27,46,0),rgba(15,27,46,.96))!important;
  color:#fff!important;
  font-size:12px!important;
  font-weight:800!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-gameart-cap b,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-gameart-cap span{
  min-width:0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-lab{
  margin:0 0 10px!important;
  color:#9fafc4!important;
  font-size:10px!important;
  font-weight:900!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mtrack i{
  display:block!important;
  height:100%!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,#2f82da,#5fdb90)!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mrow.is-sel .dfps-mtrack i{
  background:linear-gradient(90deg,#f0a80a,#ffd35f)!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mfps u{
  text-decoration:none!important;
  margin-left:2px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-suggest[hidden]{display:none!important;}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-suggest{
  display:block!important;
  width:100%!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-sug{
  width:100%!important;
  border:0!important;
  text-align:left!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-sug-empty{
  display:block!important;
  padding:10px!important;
  color:#cbd5e1!important;
  font-size:12px!important;
}
/* 10-lug: correzione finale specificita' FPS dropdown - solo CSS */
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-hero{
  display:grid!important;
  grid-template-columns:minmax(210px,.72fr) minmax(300px,1.05fr) minmax(260px,.9fr)!important;
  gap:12px!important;
  align-items:stretch!important;
  margin:0 0 14px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-cell{
  padding:14px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-cell-gameart{
  padding:0!important;
  min-height:118px!important;
  max-height:118px!important;
  border-radius:10px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-cell-gameart .dfps-gameart-fg{
  width:100%!important;
  height:118px!important;
  max-height:118px!important;
  object-fit:cover!important;
  object-position:center!important;
  display:block!important;
  border-radius:0!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-multi .dfps-mlist{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:8px!important;
  max-height:242px!important;
  overflow-y:auto!important;
  padding-right:6px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mrow{
  grid-template-columns:minmax(150px,180px) minmax(120px,1fr) 58px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mtier,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mrow .dfps-mtier,
#drakoCfgCustomizer .dcfg-cnav-fps-pop .dfps-mtier{
  display:none!important;
  visibility:hidden!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-thumb{
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
}
@media (max-width:900px){#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-hero{grid-template-columns:1fr!important;}}
/* 10-lug: nav badge FPS cliccabile - hover e puntatore */
#drakoCfgCustomizer .dcfg-cnav-fps,
#drakoCfgCustomizer .dcfg-cnav-fps-badge,
#drakoCfgCustomizer .dcfg-cnav-fps-badge *{
  cursor:pointer!important;
}
#drakoCfgCustomizer .dcfg-cnav-fps-badge{
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease, transform .16s ease!important;
}
#drakoCfgCustomizer .dcfg-cnav-fps-badge:hover,
#drakoCfgCustomizer .dcfg-cnav-fps:focus-within .dcfg-cnav-fps-badge{
  border-color:#9ec5f8!important;
  background:linear-gradient(180deg,#f3f8ff,#e5f0ff)!important;
  box-shadow:0 4px 14px rgba(28,99,171,.14)!important;
  transform:translateY(-1px)!important;
}
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-fps-badge:hover,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-fps:focus-within .dcfg-cnav-fps-badge{
  border-color:#4f83c4!important;
  background:#303844!important;
  box-shadow:0 4px 14px rgba(0,0,0,.32)!important;
}
/* 10-lug: FPS e Bilanciamento come widget originale - solo CSS */
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-fps,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-bl{
  min-height:118px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-fps .dfps-cell-lab,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-bl .dfps-cell-lab{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  margin:0 0 12px!important;
  color:#93a3bb!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:.05em!important;
  text-transform:uppercase!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-bl .dfps-cell-ico{
  width:22px!important;
  height:22px!important;
  flex:0 0 22px!important;
  object-fit:contain!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-fpsbig{
  display:flex!important;
  align-items:flex-end!important;
  gap:14px!important;
  margin:0 0 12px!important;
  white-space:nowrap!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-n{
  display:inline-flex!important;
  align-items:baseline!important;
  color:#b9d2f2!important;
  font-size:46px!important;
  line-height:.9!important;
  font-weight:900!important;
  letter-spacing:0!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-n u{
  color:#dbeafe!important;
  font-size:16px!important;
  line-height:1!important;
  font-weight:900!important;
  text-decoration:none!important;
  margin-left:3px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-low{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-end!important;
  gap:1px!important;
  color:#b8c6da!important;
  line-height:1!important;
  margin-bottom:2px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-low b{
  display:block!important;
  color:#b8c6da!important;
  font-size:24px!important;
  line-height:.9!important;
  font-weight:900!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-low small{
  display:block!important;
  color:#9fafc4!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:900!important;
  text-transform:uppercase!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-fps .dfps-gm,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-bl .dfps-gm{
  color:#b8c6da!important;
  font-size:12px!important;
  line-height:1.35!important;
  white-space:normal!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-fps .dfps-gm b,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-bl .dfps-gm b{
  color:#f4f8ff!important;
  font-weight:900!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-bl-head{
  display:grid!important;
  grid-template-columns:auto 1fr auto!important;
  align-items:center!important;
  gap:10px!important;
  width:100%!important;
  margin:0 0 9px!important;
  color:#dbe6f4!important;
  font-size:12px!important;
  line-height:1!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-bl-side{
  display:inline-flex!important;
  align-items:baseline!important;
  gap:3px!important;
  white-space:nowrap!important;
  color:#dbe6f4!important;
  font-size:12px!important;
  font-weight:700!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-bl-side b{
  color:#f4f8ff!important;
  font-size:12px!important;
  font-weight:900!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-bl-label{
  justify-self:center!important;
  color:#b9d2f2!important;
  font-size:11px!important;
  font-weight:900!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-bl-bar{
  position:relative!important;
  width:100%!important;
  height:7px!important;
  margin:0 0 10px!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,#31b653 0 58%,#f0a80a 58% 100%)!important;
}
/* 10-lug: FPS dropdown gradient corretto in light/dark mode */
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-card:first-child,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-card[data-card="fps"]{
  background:
    radial-gradient(circle at 18% 0%, rgba(48,105,174,.28), transparent 34%),
    linear-gradient(180deg,#162947 0%,#0f1d33 48%,#0b1728 100%)!important;
  border-color:#2e4669!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06)!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell{
  background:linear-gradient(180deg,#1b3150 0%,#162842 100%)!important;
  border-color:#334d72!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-fps{
  background:linear-gradient(135deg,#203b61 0%,#172a46 58%,#13233b 100%)!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-bl{
  background:linear-gradient(135deg,#1d344f 0%,#162842 62%,#13233b 100%)!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-n{
  color:#bcd7f8!important;
  text-shadow:0 1px 0 rgba(255,255,255,.08)!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-bl-bar{
  background:linear-gradient(90deg,#36c05e 0%,#45c777 55%,#f0a80a 55%,#f3a20d 100%)!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mbar,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mtrack i{
  background:linear-gradient(90deg,#2f82da 0%,#33a5c8 48%,#5fdb90 100%)!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mrow.is-sel .dfps-mtrack i{
  background:linear-gradient(90deg,#f0a80a 0%,#ffd35f 100%)!important;
}
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-card:first-child,
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-card[data-card="fps"]{
  background:
    radial-gradient(circle at 18% 0%, rgba(48,105,174,.18), transparent 34%),
    linear-gradient(180deg,#101b2f 0%,#0c1627 52%,#08111f 100%)!important;
}

/* 10-lug: scrollbar FPS corretta in modalita' chiara */
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-grid,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-suggest{
  scrollbar-color:#c7d3e2 #eef3f8!important;
  scrollbar-width:thin!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-grid::-webkit-scrollbar,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist::-webkit-scrollbar,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-suggest::-webkit-scrollbar{
  width:9px!important;
  height:9px!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-grid::-webkit-scrollbar-track,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist::-webkit-scrollbar-track,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-suggest::-webkit-scrollbar-track{
  background:#eef3f8!important;
  border-radius:999px!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-grid::-webkit-scrollbar-thumb,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist::-webkit-scrollbar-thumb,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-suggest::-webkit-scrollbar-thumb{
  background:#c7d3e2!important;
  border:2px solid #eef3f8!important;
  border-radius:999px!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-grid::-webkit-scrollbar-thumb:hover,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist::-webkit-scrollbar-thumb:hover,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-suggest::-webkit-scrollbar-thumb:hover{
  background:#9fb0c6!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"]{
  color-scheme:light!important;
}
/* 10-lug: FPS modal light mode reale, non skin dark */
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-card:first-child,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-card[data-card="fps"]{
  background:linear-gradient(180deg,#f8fbff 0%,#eef5ff 100%)!important;
  border-color:#d7e2f0!important;
  color:#172033!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9)!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-card:first-child > .dcfg-bar-uni-h,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-lab,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-lbl{
  color:#6b778a!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-title,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-multi-head,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-fps .dfps-gm b,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-bl .dfps-gm b{
  color:#0f172a!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps select,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps input,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-search{
  background:#fff!important;
  border-color:#cbd7e6!important;
  color:#0f172a!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-resgroup{
  background:#fff!important;
  border-color:#cbd7e6!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-resbtn{
  color:#0f172a!important;
  border-right-color:#cbd7e6!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-resbtn.is-active{
  background:#1c63ab!important;
  color:#fff!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-fps,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-bl{
  background:linear-gradient(180deg,#ffffff 0%,#f0f6ff 100%)!important;
  border-color:#d4dfec!important;
  color:#172033!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-n{
  color:#16a34a!important;
  text-shadow:none!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-n u{
  color:#1c63ab!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-low b,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-low,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-low small,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-fps .dfps-gm,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-bl .dfps-gm,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-sub,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta{
  color:#5f6f84!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-bl-side,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-bl-side b,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-bl-label,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mfps,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mname{
  color:#172033!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mrow{
  color:#172033!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mtrack{
  background:#dfe7f1!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-multi{
  border-top-color:#d6e0ed!important;
  color:#5f6f84!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-note{
  background:#eef4fb!important;
  border-color:#b9d4f0!important;
  color:#154e87!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-note .dfps-warn{ color:var(--dcfg-blue)!important; }
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-suggest{
  background:#fff!important;
  border-color:#cbd7e6!important;
  box-shadow:0 14px 36px rgba(15,23,42,.18)!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-sug{
  color:#172033!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-sug:hover{
  background:#edf4ff!important;
}
/* 10-lug: ripristino stile flyout FPS nella nav laterale */
/* 10-lug: flyout FPS nav laterale compatto, senza tagli dei controlli */
/* 10-lug: ripristino flyout FPS nav come versione precedente */
/* 10-lug: wrapper modal FPS realmente dark in modalita' scura */
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-grid{
  background:#1c2029!important;
  border-color:#363c48!important;
  box-shadow:0 24px 70px rgba(0,0,0,.72)!important;
  color-scheme:dark!important;
}
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"]{
  color-scheme:dark!important;
}
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-card:first-child,
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dcfg-bar-uni-card[data-card="fps"]{
  background:linear-gradient(180deg,#101b2f 0%,#0c1627 52%,#08111f 100%)!important;
  border-color:#263a5e!important;
  color:#e8eef8!important;
}
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell{
  background:linear-gradient(180deg,#14243b 0%,#101d31 100%)!important;
  border-color:#263a5e!important;
  color:#e8eef8!important;
}
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps select,
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps input,
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-search,
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-resgroup{
  background:#121c2c!important;
  border-color:#40516d!important;
  color:#fff!important;
}
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-suggest{
  background:#111b2d!important;
  border-color:#41516a!important;
  box-shadow:0 14px 36px rgba(0,0,0,.42)!important;
}
/* 10-lug: stato finale flyout FPS nav = layout riferimento 09-07 */
/* 10-lug: controlli flyout FPS nav scuri come riferimento */
/* 10-lug: flyout FPS nav in light mode, dopo override dark riferimento */
/* 10-lug: allineamento RAM nel modal FPS */
/* 10-lug: spazio tra badge RAM e variabilita' FPS */
/* 10-lug: PSU cardbody senza background ereditato dal dark globale */
html[data-theme="dark"] .dcfg-psu-cardbody,
html[data-theme="dark"] #drakoCfgSummary .dcfg-psu-cardbody,
html[data-theme="dark"] #drakoCfgBar .dcfg-psu-cardbody,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-psu-cardbody{
  background-color:transparent!important;
  background-image:none!important;
}
/* 10-lug: rimuovi background dark globale anche dai figli PSU cardbody */
html[data-theme="dark"] .dcfg-psu-cardbody,
html[data-theme="dark"] .dcfg-psu-cardbody *,
html[data-theme="dark"] .dcfg-psu-cardbody .dcfg-psu-cardlabel,
html[data-theme="dark"] .dcfg-psu-cardbody .dcfg-psu-cardname,
html[data-theme="dark"] .dcfg-psu-cardbody .dcfg-psu-cardwatt,
html[data-theme="dark"] #drakoCfgSummary .dcfg-psu-cardbody,
html[data-theme="dark"] #drakoCfgSummary .dcfg-psu-cardbody *,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-psu-cardbody,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-psu-cardbody *,
html[data-theme="dark"] #drakoCfgBar .dcfg-psu-cardbody,
html[data-theme="dark"] #drakoCfgBar .dcfg-psu-cardbody *{
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
}
/* ==========================================================================
   FASE A 2026-07-13 - Stati incompatibili "spenti + badge" (audit UX 07-13)
   Le opzioni non selezionabili si SPENGONO (desaturate) invece di urlare in
   rosso; il rosso pieno resta SOLO sul conflitto attivo (.is-incompat.is-selected).
   ========================================================================== */
/* immagine desaturata e nome attenuato sulle card bloccate (non selezionate) */
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat:not(.is-selected) .drako-pcb2-opt-imgwrap img { filter:grayscale(1); opacity:.55; }
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat:not(.is-selected) .drako-pcb2-opt-name { color:var(--dcfg-muted); }
/* niente badge PROMO/NOVITA e niente riga stock sulle card bloccate */
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat:not(.is-selected) .drako-pcb2-opt-badges { display:none; }
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat:not(.is-selected) .drako-pcb2-opt-stock,
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat:not(.is-selected) .drako-pcb2-opt-avail { display:none; }
/* icona e testo del messaggio quieto + link guidato */
#drakoCfgCustomizer .dcfg-incompat-ico { flex:0 0 auto; color:var(--dcfg-amber); font-size:12px; line-height:1.35; }
#drakoCfgCustomizer .dcfg-incompat-txt { flex:1 1 auto; }
#drakoCfgCustomizer .dcfg-fix-link { color:var(--dcfg-blue); font-weight:700; white-space:nowrap; text-decoration:none; margin-left:4px; cursor:pointer !important; }
#drakoCfgCustomizer .dcfg-fix-link:hover { text-decoration:underline; }
/* conflitto ATTIVO (selezionata ma incompatibile): il messaggio resta rosso */
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat.is-selected .drako-pcb2-opt-incompat-msg { color:#a82019; background:#fbd5d7; border-color:#ef9ea2; font-weight:600; }
/* focus visibile da tastiera sulle card */
#drakoCfgCustomizer .drako-pcb2-opt:has(input:focus-visible) { outline:2px solid var(--drako-focus-ring, #1c63ab); outline-offset:2px; }
/* ancoraggio sezioni sotto la barra sticky per il link guidato */
#drakoCfgCustomizer .dcfg-cat { scroll-margin-top:120px; }
/* stock badge (classi pdm-*) dentro il configuratore: contrasto AA */
#drakoCfgCustomizer .drako-pcb2-opt-stock.pdm-stock-ok, #drakoCfgCustomizer .drako-pcb2-opt-stock .pdm-stock-ok { color:#15803d; }
#drakoCfgCustomizer .drako-pcb2-opt-stock.pdm-stock-order, #drakoCfgCustomizer .drako-pcb2-opt-stock .pdm-stock-order { color:var(--dcfg-amber); }
/* conflitto ATTIVO: bordo rosso garantito (vince per ordine sul layer griglia) */
#drakoCfgCustomizer .drako-pcb2-opt.is-incompat.is-selected { border-color:var(--dcfg-red); box-shadow:0 0 0 1px var(--dcfg-red) inset; }
/* ==========================================================================
   P0 MOBILE 2026-07-14 - configuratore usabile a <=640px (audit UX 07-13)
   Cause overflow misurate: .dcfg-cnav (535px) + card; barra sticky 228px.
   ========================================================================== */
/* CTA "rogue": la sticky-bar mobile di prodotto invia il form BASE (bypassa la
   config di sessione, drako_pc_cfg_store vive solo nell'AJAX) - mai su pagine cfg */
body:has(.drako-pi-wrapper.dcfg-on) .drako-pi-sticky-bar { display:none !important; }
@media (max-width:640px){/* niente rail sinistro: primo contributore dell'overflow (535px) e 2500px di muro verticale */
#drakoCfgCustomizer .dcfg-cnav { display:none !important; }
#drakoCfgCustomizer .dcfg-cust-shell { display:block !important; }
/* griglie e card entro il viewport */
#drakoCfgCustomizer { overflow-x:clip; }
#drakoCfgCustomizer .dcfg-cat { min-width:0 !important; }
#drakoCfgCustomizer .dcfg-cat-grid { grid-template-columns:1fr !important; }
#drakoCfgCustomizer .drako-pcb2-opt { width:auto !important; max-width:100% !important; min-width:0 !important; }
#drakoCfgCustomizer .dcfg-cat-head { flex-wrap:wrap; }
/* tap target */
#drakoCfgCustomizer .dcfg-view-btn { min-height:40px !important; }
#drakoCfgCustomizer .dcfg-qbtn { min-width:34px !important; min-height:30px !important; }}
/* Barra sticky configuratore mobile: UNA riga - chips FPS/W + totale + CTA */
@media (max-width:768px){html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-inner { padding:8px 10px !important; }
html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-main { display:flex !important; flex-wrap:nowrap !important; align-items:center !important; gap:8px !important; min-height:0 !important; }
html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-data-line,
  html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-fintext,
  html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-finance { display:none !important; }
html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-badge { padding:4px 6px !important; border-radius:8px !important; min-height:40px !important; }
html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-badge::after,
  html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-badge-txt::after { display:none !important; }
html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-badge-img { width:18px !important; height:18px !important; }
html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-badge-txt small { display:none !important; }
html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-badge-txt { max-width:none !important; overflow:visible !important; }
html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-badge-txt b { font-size:12px !important; white-space:nowrap !important; max-width:none !important; overflow:visible !important; text-overflow:clip !important; }
html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-priceblk { flex:1 1 auto !important; min-width:0 !important; text-align:right !important; justify-self:auto !important; }
html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-priceblk small { display:none !important; }
html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-total { font-size:17px !important; white-space:nowrap !important; }
html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-add { padding:10px 12px !important; font-size:13px !important; min-height:44px !important; box-shadow:none !important; }
/* dropdown FPS/PSU della barra: compatti e dentro lo schermo */
html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-dropdown,
  html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-psu-dropdown,
  html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-fps-dropdown { padding:10px !important; }}
/* A 320px la priorita' e' acquisto: FPS, totale e CTA restano leggibili; il
   wattaggio (gia' disponibile nel configuratore) non comprime il prezzo. */
@media (max-width:340px){html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-psu { display:none !important; }}
/* FASE B 2026-07-14: barra sopra il banner promo fixed (z 9999) sulle pagine configuratore */
html body #drakoCfgBar.dcfg-bar.is-visible { z-index:10001 !important; }
/* FASE B fix 2026-07-14: l'header del sito (.drako-header-wrap: fixed, z-index:900) crea uno
   stacking context che INTRAPPOLA i suoi dropdown (menu account, megamenu, suggerimenti ricerca).
   Con la barra a z-index:10001 quei menu a tendina finivano SOTTO la barra (vedi menu "Ciao,..."
   tagliato). Non basta alzare lo z-index del singolo dropdown: resta confinato ai 900 dell'header.
   Alzo l'intero header sopra la barra, ma SOLO sulle pagine configuratore (:has) e solo quando la
   barra e' visibile, cosi' i dropdown tornano sopra e la barra resta comunque sopra il banner
   Twitch fixed (z 9999). Ordine finale: header 10002 > barra 10001 > banner 9999. */
html body:has(#drakoCfgBar.dcfg-bar.is-visible) .drako-header-wrap { z-index:10002 !important; }
/* FASE B: sezioni accessorio collassate di default (accordion) */
#drakoCfgCustomizer .dcfg-cat[data-optional="1"] .dcfg-cat-head { cursor:pointer; }
/* rev 07-14: caret ::after rimosso - sostituito dal bottone .dcfg-cat-collapse (SVG allineato) */
#drakoCfgCustomizer .dcfg-cat.is-collapsed [data-role="panel"] { display:none !important; }
/* rail: core slot senza selezione = "Da scegliere" in ambra */
#drakoCfgCustomizer .dcfg-cnav-name.is-empty { color:var(--dcfg-amber); font-style:italic; font-weight:600; }
/* rev 07-14: controlli header sezione - SVG puliti nei bottoni vista + bottone chevron collasso */
#drakoCfgCustomizer .dcfg-view-btn { display:inline-flex; align-items:center; justify-content:center; padding:6px 11px; }
#drakoCfgCustomizer .dcfg-view-btn svg { width:15px; height:15px; display:block; }
#drakoCfgCustomizer .dcfg-cat-collapse { flex:0 0 auto; margin-left:8px; align-self:center; display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border:1px solid #d7dce2; border-radius:6px; background:#fff; color:#6b7280; cursor:pointer; padding:0; }
#drakoCfgCustomizer .dcfg-cat-collapse:hover { color:#1c63ab; border-color:#1c63ab; }
#drakoCfgCustomizer .dcfg-cat-collapse svg { width:15px; height:15px; display:block; transition:transform .18s ease; }
#drakoCfgCustomizer .dcfg-cat.is-collapsed .dcfg-cat-collapse svg { transform:rotate(-90deg); }
@media (prefers-reduced-motion:reduce){#drakoCfgCustomizer .dcfg-cat-collapse svg { transition:none; }}
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-collapse { background:#2a2f38; border-color:#363c48; color:#aab2c0; }
@media (max-width:640px){#drakoCfgCustomizer .dcfg-cat-collapse { width:40px; height:40px; }}
/* rev 07-14: popover hover FPS del rail ELIMINATO (feedback utente: ripetitivo e ingombrante).
   Il click sul badge apre la modale (proxy verso il badge della barra); il widget nel popover
   resta montato ma invisibile: continua ad alimentare i numeri del badge. */
/* rev 07-14: hero rail a TAGLIA FISSA - il caricamento immagine non puo' piu' spostare il layout
   (chiude il conflitto tra le 4 generazioni di regole: 210px / 150px / 220px / auto) */
#drakoCfgCustomizer .dcfg-cnav-hero-img { width:100% !important; height:230px !important; max-height:none !important; object-fit:contain !important; display:block !important; }
/* rev 07-14: risoluzioni FPS - singolo bottone senza dati = spento (guardia futura);
   gruppo flat gia' gestito da .is-disabled */
#drakoCfgBar .dfps-resbtn:disabled, #drakoCfgCustomizer .dfps-resbtn:disabled { opacity:.45; cursor:not-allowed; }
#drakoCfgBar .dfps-resbtn.is-missing, #drakoCfgCustomizer .dfps-resbtn.is-missing { opacity:.35; text-decoration:line-through; }
/* rev 07-14: BILANCIAMENTO = barra PROPORZIONALE (fill = quota GPU da
   sinistra, traccia restante = CPU). Sostituisce il cursore su scala sfumata, poco chiaro. */
#drakoCfgBar .dfps-bl-bar, #drakoCfgCustomizer .dfps-bl-bar, #drakoCfgSummary .dfps-bl-bar,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-bl-bar,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-bl-bar {
  position:relative !important; height:10px !important; border-radius:999px !important;
  background:#dfe4ea !important; overflow:hidden !important;
}
html[data-theme="dark"] #drakoCfgBar .dfps-bl-bar,
html[data-theme="dark"] #drakoCfgCustomizer .dfps-bl-bar,
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-bl-bar {
  background:#2b3444 !important;
}
#drakoCfgBar .dfps-bl-fill, #drakoCfgCustomizer .dfps-bl-fill, #drakoCfgSummary .dfps-bl-fill {
  display:block !important; height:100% !important; background:#1c63ab !important; min-width:2% !important; max-width:100% !important;
  transition:width .25s ease !important;
}
@media (prefers-reduced-motion:reduce){#drakoCfgBar .dfps-bl-fill, #drakoCfgCustomizer .dfps-bl-fill { transition:none !important; }}
/* rev 07-14 (2): bilanciamento A BILANCIA - fill ancorato al CENTRO, sporge verso il lato
   che domina (GPU=sinistra blu, CPU=destra ambra); tacca centrale = punto di equilibrio */
#drakoCfgBar .dfps-bl-fill, #drakoCfgCustomizer .dfps-bl-fill, #drakoCfgSummary .dfps-bl-fill {
  position:absolute !important; top:0 !important; bottom:0 !important; height:auto !important;
  min-width:0 !important; border-radius:999px !important;
  transition:left .25s ease, width .25s ease !important;
}
#drakoCfgBar .dfps-bl-fill.is-cpu, #drakoCfgCustomizer .dfps-bl-fill.is-cpu, #drakoCfgSummary .dfps-bl-fill.is-cpu { background:#b45309 !important; }
#drakoCfgBar .dfps-bl-bar, #drakoCfgCustomizer .dfps-bl-bar, #drakoCfgSummary .dfps-bl-bar { overflow:visible !important; }
/* ===== BETA feedback: pill + modale (2026-07-14) ===== */
#dcfgFbBtn { position:fixed; right:16px; bottom:170px; z-index:900; display:inline-flex; align-items:center; gap:7px; background:#fff; color:#1f2937; border:1px solid #d7dce2; border-radius:999px; padding:9px 14px; font:600 12.5px 'Segoe UI',Roboto,Arial,sans-serif; cursor:pointer; box-shadow:0 4px 14px rgba(16,24,40,.18); }
#dcfgFbBtn b { background:#1c63ab; color:#fff; font-size:10px; letter-spacing:.04em; border-radius:4px; padding:2px 6px; font-weight:800; }
#dcfgFbBtn:hover { border-color:#1c63ab; color:#1c63ab; }
@media (max-width:640px){#dcfgFbBtn { bottom:150px; right:12px; padding:8px 12px; font-size:12px; }}
#dcfgFbWrap { position:fixed; inset:0; z-index:10005; background:rgba(4,7,11,.55); display:flex; align-items:center; justify-content:center; padding:16px; }
.dcfg-fb-box { width:440px; max-width:100%; background:#fff; border-radius:14px; padding:18px 18px 16px; box-shadow:0 24px 70px rgba(0,0,0,.4); font-family:'Segoe UI',Roboto,Arial,sans-serif; color:#1f2937; }
.dcfg-fb-head { display:flex; align-items:center; gap:8px; font-size:16px; }
.dcfg-fb-head b { flex:1; }
.dcfg-fb-beta { background:#1c63ab; color:#fff; font-size:10px; font-weight:800; letter-spacing:.04em; border-radius:4px; padding:2px 7px; }
.dcfg-fb-x { background:none; border:none; font-size:22px; line-height:1; color:#6b7280; cursor:pointer; padding:2px 6px; }
.dcfg-fb-x:hover { color:#1f2937; }
.dcfg-fb-sub { margin:8px 0 12px; font-size:12.5px; color:#4b5563; line-height:1.45; }
.dcfg-fb-cats { display:flex; flex-direction:column; gap:6px; margin:0 0 12px; font-size:13px; }
.dcfg-fb-cats input { margin-right:6px; }
.dcfg-fb-lbl { display:block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:#4b5563; margin:10px 0 4px; }
.dcfg-fb-box textarea, .dcfg-fb-box input[type="email"] { width:100%; box-sizing:border-box; border:1px solid #d7dce2; border-radius:8px; padding:8px 10px; font:13px 'Segoe UI',Roboto,Arial,sans-serif; color:#1f2937; }
.dcfg-fb-box textarea:focus, .dcfg-fb-box input[type="email"]:focus { outline:2px solid var(--drako-focus-ring, #1c63ab); outline-offset:1px; }
.dcfg-fb-hp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.dcfg-fb-foot { display:flex; align-items:center; gap:10px; margin-top:14px; }
.dcfg-fb-send { background:#1c63ab; color:#fff; border:none; border-radius:8px; padding:10px 16px; font:600 13.5px 'Segoe UI',Roboto,Arial,sans-serif; cursor:pointer; }
.dcfg-fb-send:hover { background:#154e87; }
.dcfg-fb-send:disabled { opacity:.6; cursor:wait; }
.dcfg-fb-note { font-size:12px; color:#15803d; font-weight:600; }
html[data-theme="dark"] .dcfg-fb-box { background:#22262e; color:#e5e7eb; }
html[data-theme="dark"] .dcfg-fb-box textarea, html[data-theme="dark"] .dcfg-fb-box input[type="email"] { background:#1b1f26; border-color:#363c48; color:#e5e7eb; }
html[data-theme="dark"] .dcfg-fb-sub, html[data-theme="dark"] .dcfg-fb-lbl { color:#aab2bf; }
html[data-theme="dark"] #dcfgFbBtn { background:#22262e; color:#e5e7eb; border-color:#363c48; }
/* feedback BETA: area screenshot (cattura/incolla/file) + anteprima */
.dcfg-fb-shot { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.dcfg-fb-cap, .dcfg-fb-file-lbl { display:inline-flex; align-items:center; gap:6px; background:#f3f6fa; color:#1c63ab; border:1px solid #cfe0f2; border-radius:8px; padding:7px 11px; font:600 12px 'Segoe UI',Roboto,Arial,sans-serif; cursor:pointer; }
.dcfg-fb-cap:hover, .dcfg-fb-file-lbl:hover { background:#e0edff; }
.dcfg-fb-file-lbl input[type="file"] { display:none; }
.dcfg-fb-shot-hint { font-size:11px; color:#6b7280; }
.dcfg-fb-prev { position:relative; margin-top:10px; display:inline-block; }
.dcfg-fb-prev img { max-width:180px; max-height:110px; border:1px solid #d7dce2; border-radius:8px; display:block; }
.dcfg-fb-prev-x { position:absolute; top:-8px; right:-8px; width:22px; height:22px; border-radius:50%; border:1px solid #d7dce2; background:#fff; color:#6b7280; font-size:14px; line-height:1; cursor:pointer; box-shadow:0 1px 4px rgba(16,24,40,.2); }
.dcfg-fb-prev-x:hover { color:#c62828; border-color:#c62828; }
html[data-theme="dark"] .dcfg-fb-cap, html[data-theme="dark"] .dcfg-fb-file-lbl { background:#1b1f26; border-color:#363c48; color:#7fb2ff; }
/* fix 07-14: [hidden] deve vincere sul display della classe (trap UA-stylesheet) */
.dcfg-fb-prev[hidden] { display:none !important; }
/* rev 07-14 (3, DEFINITIVO): bilanciamento = GAUGE a zone fisse + indicatore.
   Zone simmetriche sul semiasse: verde 37.5-62.5 (equilibrio), ambra, ROSSO <25 e >75
   (= un componente oltre il 75% del carico). Indicatore = quota CPU (verso chi domina). */
/* rev 07-14 (3b): il gauge deve vincere anche sui layer modale/dark della traccia piatta rev1 */
/* SPEC FINALE UTENTE 07-14 (non ridisegnare): bilanciamento = barra riempimento da sinistra,
   larghezza = quota GPU, colore unico per stato: verde <=49, gialla 50-80, rossa >80.
   La traccia neutra arriva dalle regole rev1 (.dfps-bl-bar flat); il fill2 e' un layer nuovo. */
.dfps-bl-fill2 { display:block; height:100%; border-radius:999px; transition:width .25s ease; }
.dfps-bl-fill2.is-green { background:#16a34a; }
.dfps-bl-fill2.is-yellow { background:#eab308; }
.dfps-bl-fill2.is-red { background:#dc2626; }
@media (prefers-reduced-motion:reduce){.dfps-bl-fill2 { transition:none; }}
/* rev 07-14: lista multi-gioco - scrollbar IMPUGNABILE e contenuto mai sotto la barra
   (prima: thumb 9px chiarissimo con bordo 2px = ~5px visibili + padding 6px) */
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist,
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist {
  padding-right:16px !important;
  scrollbar-width:auto !important;
  scrollbar-gutter:stable;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist { scrollbar-color:#8fa3ba #eef3f8 !important; }
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist { scrollbar-color:#4b5a70 #1b2230 !important; }
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist::-webkit-scrollbar,
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist::-webkit-scrollbar,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist::-webkit-scrollbar {
  width:12px !important; height:12px !important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist::-webkit-scrollbar-thumb,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist::-webkit-scrollbar-thumb {
  background:#8fa3ba !important; border:1px solid #eef3f8 !important; border-radius:999px !important; min-height:32px;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist::-webkit-scrollbar-thumb:hover,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist::-webkit-scrollbar-thumb:hover {
  background:#64748b !important;
}
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-mlist::-webkit-scrollbar-thumb {
  background:#4b5a70 !important; border:1px solid #1b2230 !important; border-radius:999px !important; min-height:32px;
}
/* rev 07-14 (b): stessi prefissi del layer .dfps-multi .dfps-mlist (riga ~3196) per vincere */
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-multi .dfps-mlist {
  padding-right:16px !important;
  scrollbar-width:auto !important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-multi .dfps-mlist::-webkit-scrollbar,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-multi .dfps-mlist::-webkit-scrollbar,
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-multi .dfps-mlist::-webkit-scrollbar {
  width:12px !important; height:12px !important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-multi .dfps-mlist::-webkit-scrollbar-thumb,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-multi .dfps-mlist::-webkit-scrollbar-thumb {
  background:#8fa3ba !important; border:1px solid #eef3f8 !important; border-radius:999px !important; min-height:32px !important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-multi .dfps-mlist::-webkit-scrollbar-thumb:hover,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-multi .dfps-mlist::-webkit-scrollbar-thumb:hover {
  background:#64748b !important;
}
html[data-theme="dark"] #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-multi .dfps-mlist::-webkit-scrollbar-thumb {
  background:#4b5a70 !important; border:1px solid #1b2230 !important; border-radius:999px !important; min-height:32px !important;
}
/* rev 07-14: LAYOUT modale FPS riorganizzato (richiesta utente):
   game-art ALTA a sinistra (2 righe) | riga1: FPS + Bilanciamento | riga2: RAM + variabilita' */
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result {
  display:grid !important;
  grid-template-columns:250px minmax(0,1fr) minmax(0,1fr) !important;
  grid-template-rows:auto auto !important;
  gap:12px 16px !important;
  align-items:stretch !important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-hero,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-hero {
  display:contents !important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-gameart,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-gameart {
  grid-column:1 !important; grid-row:1 / span 2 !important;
  position:relative !important; overflow:hidden !important; border-radius:10px !important;
  min-height:0 !important; margin:0 !important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-gameart .dfps-gameart-fg,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-gameart .dfps-gameart-fg {
  position:absolute !important; inset:0 !important; width:100% !important; height:100% !important;
  object-fit:cover !important; object-position:center 25% !important; border-radius:10px !important; display:block !important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-fps { grid-column:2 !important; grid-row:1 !important; margin:0 !important; }
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-cell-bl { grid-column:3 !important; grid-row:1 !important; margin:0 !important; }
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta {
  grid-column:2 / 4 !important; grid-row:2 !important;
  display:flex !important; align-items:center !important; gap:14px !important;
  margin:0 !important; align-self:start !important;
}
/* rev 07-14 (c): art = STESSA altezza della colonna destra + immagine a riempimento totale.
   Catena con .dfps-result replicata dal layer vincitore (height:118px, riga ~3200s). */
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-cell-gameart {
  min-height:0 !important; max-height:none !important; height:auto !important; align-self:stretch !important; margin:0 !important;
  position:relative !important; overflow:hidden !important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-cell-gameart .dfps-gameart-fg,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-cell-gameart .dfps-gameart-fg,
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-cell-gameart img {
  position:absolute !important; inset:0 !important;
  width:100% !important; height:100% !important; max-height:none !important; min-height:0 !important;
  object-fit:cover !important; object-position:center 20% !important;
  border-radius:10px !important; display:block !important;
}
/* ==== rev 07-14 (d): nota "Stima indicativa" nell'header del widget FPS
   (sostituisce il vecchio tag pill "Stima"; la copia in fondo e' stata rimossa
   dal markup JS). Head grid: icona | titolo (auto) | nota (riempe il resto). */
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head{
  grid-template-columns:34px auto minmax(0,1fr)!important;
  align-items:center!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head .dfps-note,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head .dfps-note{
  margin:0 0 0 6px!important;
  padding:7px 11px!important;
  font-size:11.5px!important;
  line-height:1.4!important;
  font-weight:600!important;
  justify-self:stretch!important;
  align-items:center!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head .dfps-note .dfps-warn{
  width:15px!important; height:14px!important; margin-top:0!important;
}
@media (max-width:640px){#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head{
    grid-template-columns:34px 1fr!important;
  }
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head .dfps-note,
  html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head .dfps-note{
    grid-column:1 / -1!important;
    grid-row:2!important;
    margin:10px 0 0!important;
  }}
/* ==== rev 07-14 (f): il regrid hero (3 colonne) vale solo desktop.
   Su mobile <=640px si torna allo stack a colonna singola: art (altezza
   fissa), FPS, Bilanciamento, chip-box/meta. Senza questo la colonna art
   da 250px schiaccia meta a ~16px e i chip sbordano dal modale. */
@media (max-width:640px){#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result{
    grid-template-columns:1fr!important;
    grid-template-rows:none!important;
  }
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-cell-gameart{
    grid-column:1!important;
    grid-row:auto!important;
    height:170px!important;
    min-height:170px!important;
  }
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-cell-fps,
  #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-cell-bl{
    grid-column:1!important;
    grid-row:auto!important;
  }
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-meta,
  #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta{
    grid-column:1!important;
    grid-row:auto!important;
  }}
/* ==== rev 07-14 (f2): twin light-theme per lo stack mobile (i layer del
   regrid hanno gemelli html:not([data-theme="dark"]) che battono la media
   query semplice: qui li pareggiamo). */
@media (max-width:640px){#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result,
  html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result{
    grid-template-columns:1fr!important;
    grid-template-rows:none!important;
  }
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-cell-gameart,
  html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-cell-gameart{
    grid-column:1!important;
    grid-row:auto!important;
    height:170px!important;
    min-height:170px!important;
  }
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-cell-fps,
  html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-cell-fps,
  #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-cell-bl,
  html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-cell-bl{
    grid-column:1!important;
    grid-row:auto!important;
  }
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-meta,
  html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-result .dfps-meta,
  html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta{
    grid-column:1!important;
    grid-row:auto!important;
  }}
/* ==== rev 07-14 (h) DEFINITIVA chip-box CPU/GPU: due card al 50% che
   riempiono la riga, stile IDENTICO alle altre celle del modale (sfondo
   trasparente + bordo tema), logo alla dimensione originale
   (40px, area max 100px). Supera le rev (e)/(g). */
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta{
  display:flex!important;
  gap:12px!important;
  align-items:stretch!important;
  flex-wrap:nowrap!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip{
  flex:1 1 0!important;
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  padding:10px 14px!important;
  border-radius:10px!important;
  background:transparent!important;
  border:1px solid #263a5e!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip{
  border-color:#d4dfec!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip .dfps-chip-logo,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip .dfps-chip-logo{
  height:40px!important;
  width:auto!important;
  max-width:100px!important;
  display:block!important;
  object-fit:contain!important;
  flex:0 0 auto!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip .dfps-chip-name,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip .dfps-chip-name{
  font-size:15px!important;
  font-weight:800!important;
  line-height:1.2!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  min-width:0!important;
  color:#fff!important;
}
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip .dfps-chip-name{
  color:#0f172a!important;
}
@media (max-width:640px){#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta{
    flex-wrap:wrap!important;
  }
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip,
  html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip{
    flex:1 1 100%!important;
  }}
/* ==== rev 07-14 (i): header senza icona gamepad (titolo | nota) e nota
   SEMPRE su una riga (nowrap + ellipsis; testo integrale nel title). */
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head{
  grid-template-columns:auto minmax(0,1fr)!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head .dfps-note,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head .dfps-note{
  min-width:0!important;
  flex-wrap:nowrap!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head .dfps-note span,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head .dfps-note span{
  display:block!important;
  min-width:0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
@media (max-width:640px){#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head,
  html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-head{
    grid-template-columns:1fr!important;
  }}
/* ==== rev 07-14 (l): nome chip in Montserrat 600 14px
   e MAI troncato: niente ellipsis, se non ci sta va a capo
   (il box cresce e la game-art segue via grid stretch). Font self-hosted. */
@font-face{
  font-family:'Montserrat';
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url('../fonts/montserrat-600-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip .dfps-chip-name,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip .dfps-chip-name{
  font-family:'Montserrat','Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif!important;
  font-size:14px!important;
  font-weight:600!important;
  line-height:1.25!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
/* ==== rev 07-14 (m): metriche chip per far stare su UNA riga anche il nome
   piu' lungo ("GeForce RTX 5070 Ti" @ Montserrat 600 14px ~160px):
   logo 36px (RTX ~79px), padding 10/12, gap 10 -> ~165px per il testo. */
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip{
  padding:10px 12px!important;
  gap:10px!important;
}
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip .dfps-chip-logo,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip .dfps-chip-logo{
  height:36px!important;
}
/* ==== rev 07-14 (n): il contain letterboxava il logo (drawn ~90px) in un box
   da 100px lasciando un vuoto fantasma; 92px ancorati a sinistra liberano gli
   ultimi px che servivano a "GeForce RTX 5070 Ti" per stare su una riga. */
#drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip .dfps-chip-logo,
html:not([data-theme="dark"]) #drakoCfgBar .dcfg-uni-modal[data-show="fps"] .dfps-meta .dfps-chip .dfps-chip-logo{
  max-width:92px!important;
  object-position:left center!important;
}
/* ==== rev 07-14 (o): totale barra = STESSO stile/font del prezzo scheda
   (.drako-pi-price: Oswald 700 28px). Family/peso a tutti i breakpoint;
   la size 28px solo desktop largo (i breakpoint stretti tengono le loro). */
html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-total,
html body #drakoCfgBar.dcfg-bar .dcfg-bar-total,
#drakoCfgBar .dcfg-bar-total{
  font-family:'Oswald','Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif!important;
  font-weight:700!important;
}
@media (min-width:1351px){html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-total,
  html body #drakoCfgBar.dcfg-bar .dcfg-bar-total,
  #drakoCfgBar .dcfg-bar-total{
    font-size:28px!important;
    line-height:1.15!important;
  }}

/* ==== cleanup 2026-07-14: guardie per elementi legacy ancora nel markup.
   .dcfg-cnav-fps-pop = vecchio popup hover del badge FPS (il click ora apre
   il modale della barra): TUTTI i suoi layer decorativi sono stati rimossi,
   deve solo restare invisibile finche' il markup non verra' tolto. */
#drakoCfgCustomizer .dcfg-cnav-fps-pop{ display:none!important; }

/* ==== rev 07-15b: la nav/rail sticky del configuratore si aggancia sotto la
   barra takeover quando questa e' visibile (offset dinamico misurato dal
   posizionatore inline via --dcfg-cnav-top; fallback 88px = sotto l'header). */
#drakoCfgCustomizer .dcfg-cnav{ top:var(--dcfg-cnav-top, 88px)!important; }

/* ==== rev 07-15c FPS-HERO (RESTORE: rimuovere QUESTO blocco fino a fine file
   + DCFG_FPS_HERO=false in drako_pc_configurator_embed.js; backup completi in
   *.bak_pre_fpshero20260715). Desktop: FPS solo nella card rail (chip barra
   nascosto, grid barra a 5 colonne); card amplificata con fasce colore e
   flash al cambio. Mobile <=768: chip barra INVARIATO. */
@media (min-width:769px){
  html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-fps{ display:none !important; }
  html body #drakoCfgBar.dcfg-bar.is-visible .dcfg-bar-main{
    grid-template-columns:auto minmax(225px,.95fr) minmax(285px,1.2fr) auto auto !important;
  }
}
#drakoCfgCustomizer .dcfg-cnav-fps-num{ font-size:44px !important; letter-spacing:-0.5px !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-unit{ font-size:14px !important; }
/* fasce colore per tier (light) */
/* 14/08/2026 - il badge grande è di UN colore solo: la sigla "FPS" segue la fascia
   insieme al numero, non resta blu. Le tinte sono più profonde di prima perché ora le
   porta anche un testo da 14px: #16a34a su bianco faceva 3,3:1, sotto la soglia di
   leggibilità; questi stanno tutti sopra 5:1 e restano distinguibili fra loro.
   I due verdi storici (#16a34a e #43a047) erano già quasi identici a occhio: diventano
   un verde solo, la differenza fra 111 e 150 fps la dice il numero. */
#drakoCfgCustomizer .dcfg-cnav-fps-badge.is-t144 .dcfg-cnav-fps-num,
#drakoCfgCustomizer .dcfg-cnav-fps-badge.is-t144 .dcfg-cnav-fps-unit{ color:#15803d !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-badge.is-t100 .dcfg-cnav-fps-num,
#drakoCfgCustomizer .dcfg-cnav-fps-badge.is-t100 .dcfg-cnav-fps-unit{ color:#15803d !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-badge.is-t60  .dcfg-cnav-fps-num,
#drakoCfgCustomizer .dcfg-cnav-fps-badge.is-t60  .dcfg-cnav-fps-unit{ color:#b45309 !important; }
#drakoCfgCustomizer .dcfg-cnav-fps-badge.is-t30  .dcfg-cnav-fps-num,
#drakoCfgCustomizer .dcfg-cnav-fps-badge.is-t30  .dcfg-cnav-fps-unit{ color:#b91c1c !important; }
/* Nessuna fascia = dato mancante (N/A): la sigla non torna blu, resta neutra. Specificità
   più bassa delle quattro regole qui sopra, quindi non le scavalca. */
#drakoCfgCustomizer .dcfg-cnav-fps-unit{ color:#5f6774 !important; }
/* ...e nemmeno il numero resta verde: senza dato scrive "N/A", che in verde sembrava un
   risultato buono. Grigio tutt'e due, come la sigla. */
#drakoCfgCustomizer .dcfg-cnav-fps-badge:not(.is-t144):not(.is-t100):not(.is-t60):not(.is-t30) .dcfg-cnav-fps-num{ color:#5f6774 !important; }
/* twins dark */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-fps-badge.is-t144 .dcfg-cnav-fps-num,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-fps-badge.is-t144 .dcfg-cnav-fps-unit{ color:#4ade80 !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-fps-badge.is-t100 .dcfg-cnav-fps-num,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-fps-badge.is-t100 .dcfg-cnav-fps-unit{ color:#66bb6a !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-fps-badge.is-t60  .dcfg-cnav-fps-num,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-fps-badge.is-t60  .dcfg-cnav-fps-unit{ color:#ffb74d !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-fps-badge.is-t30  .dcfg-cnav-fps-num,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav-fps-badge.is-t30  .dcfg-cnav-fps-unit{ color:#ef5350 !important; }
/* flash al cambio valore */
@keyframes dcfgFpsBump{ 0%{transform:scale(1)} 30%{transform:scale(1.05)} 100%{transform:scale(1)} }
#drakoCfgCustomizer .dcfg-cnav-fps-badge.is-bump{ animation:dcfgFpsBump .45s cubic-bezier(.22,1,.36,1); box-shadow:0 0 0 3px rgba(28,99,171,.18); transition:box-shadow .6s ease .2s; }
@media (prefers-reduced-motion: reduce){
  #drakoCfgCustomizer .dcfg-cnav-fps-badge.is-bump{ animation:none !important; box-shadow:none !important; }
}

/* ==== rev 07-15d BOX-STD (RESTORE: rimuovere questo blocco fino a fine file).
   La scheda iniziale del prodotto configuratore torna alle DIMENSIONI della
   scheda prodotto standard: colonna info 500px (era 430), niente cornice/
   padding propri (la scheda standard poggia nuda sul .content bianco),
   margin-top 0 (il -46px serviva ad avvicinarla alla barra sempre-visibile,
   che ora in cima e' nascosta) e niente spazio extra sopra la foto (il 34px
   serviva sotto la barra). Restano le differenze di CONTENUTO del cfg
   (nostick, stock/askbot nascosti, pannello riepilogo). */
.drako-pi-wrapper.dcfg-on{
  margin-top:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}
html[data-theme="dark"] .drako-pi-wrapper.dcfg-on{
  background:transparent !important;
  border:0 !important;
}
.drako-pi-wrapper.dcfg-on .drako-pi-info{ width:500px !important; }
@media (max-width:900px){
  .drako-pi-wrapper.dcfg-on .drako-pi-info{ width:auto !important; }
}
.drako-pi-wrapper.dcfg-on .drako-pi-main-img{ padding:16px !important; } /* pixel-true: lo standard ha 16px uniformi */


/* ==== rev 07-15f CARD-WRAPPER (RESTORE: rimuovere questo blocco). La card
   bianca avvolge SOLO il blocco prodotto iniziale (feedback utente): il
   .content resta trasparente sulle pagine cfg (regola 10-lug in
   stylesheet.css) cosi' le sezioni del configuratore sotto restano separate
   sul grigio. I margini negativi estendono la card ai bordi del .content
   (padding 20) -> larghezza visiva 1480 = identica alla card della scheda
   standard; il padding interno 20 mantiene le colonne a 908/500. */
.drako-pi-wrapper.dcfg-on{
  background:#fff !important;
  border-radius:8px !important;
  padding:20px !important;
  margin:-20px -20px 24px !important;
}
html[data-theme="dark"] .drako-pi-wrapper.dcfg-on{
  background:var(--drako-bg-surface, #22262e) !important;
}
@media (max-width:900px){
  .drako-pi-wrapper.dcfg-on{ margin:-20px -20px 16px !important; padding:14px !important; }
}

/* ==== rev 07-15g ALLINEAMENTO BLOCCHI (RESTORE: rimuovere questo blocco).
   La card prodotto (07-15f) si estende ai bordi del .content con margini
   -20px; il configuratore sotto restava largo 1440 dentro il padding ->
   20px di rientro per lato (feedback utente con screenshot). Stessi margini
   negativi anche al customizer: tutti i blocchi a 1480, bordi allineati. */
#drakoCfgCustomizer{
  margin-left:-20px !important;
  margin-right:-20px !important;
}

/* ===========================================================================
   CONFIGURATORE SENZA BUILD GENERATA
   La scheda del prodotto base mostrava prezzo, rate e carrello di una
   configurazione che il cliente non aveva chiesto (i default del prodotto).
   Finche' non genera, quei dati sono N/A e l'acquisto e' spento.
   =========================================================================== */

/* Prezzo N/A: stesso posto e stesso peso del prezzo vero, ma spento - il verde
   da prezzo attivo su un "N/A" sembrava un errore di rendering. */
.drako-pi-price-na {
  color: #94a3b8 !important;
  font-weight: 600;
}

/* Fascia sulla foto di esempio. Sta DENTRO .drako-pi-main-img (position
   relative gia' impostata dal badge "Novita'"), in basso per non coprire il
   nastro d'angolo. */
/* Il blocco copre TUTTA la foto e centra il pulsante: e' li' che guarda chi apre
   la pagina, non sulla barra in cima. Velo leggero perche' la foto di esempio si
   deve continuare a vedere - deve leggersi come "ecco cosa otterrai". */
.drako-pi-cfg-empty {
  position: absolute; inset: 0; z-index: 4;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
  padding: 16px;
  background: rgba(12, 34, 58, .45);
  color: #fff;
  text-align: center;
  border-radius: 8px;
}
.drako-pi-cfg-empty-tag {
  position: absolute; left: 0; right: 0; bottom: 12px;
  font-size: 11px; letter-spacing: .08em; text-transform: uppercase;
  color: #f5b301; font-weight: 700;
}
.drako-pi-cfg-empty-txt {
  font-size: 14px; font-weight: 600; line-height: 1.35;
  text-shadow: 0 1px 4px rgba(0, 0, 0, .5);
}
/* Pulsante centrale: stessa tinta e stesso peso del "Genera la build" della
   barra, perche' fa esattamente la stessa cosa. */
.drako-pi-cfg-empty-go {
  appearance: none; border: 0; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-width: 210px; padding: 14px 28px;
  background: #ffd23f; color: #23303e;
  font-size: 16px; font-weight: 800;
  border-radius: 12px;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .3);
  transition: transform .15s, background .15s;
}
.drako-pi-cfg-empty-go:hover { transform: translateY(-1px); background: #ffdb63; }
.drako-pi-cfg-empty-go:disabled { cursor: default; transform: none; }
/* Caricamento: il testo resta (dice cosa sta succedendo) e accanto gira una
   rotella. Sostituire l'etichetta con la sola rotella lasciava il dubbio se il
   clic fosse stato preso. */
.drako-pi-cfg-empty-go-load { display: none; }
.drako-pi-cfg-empty-go.is-loading .drako-pi-cfg-empty-go-lbl::after { content: " in corso..."; }
.drako-pi-cfg-empty-go.is-loading .drako-pi-cfg-empty-go-load {
  display: block; width: 17px; height: 17px;
  border: 2px solid rgba(35, 48, 62, .3); border-top-color: #23303e;
  border-radius: 50%;
  animation: drakoPiCfgSpin .7s linear infinite;
}
@keyframes drakoPiCfgSpin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .drako-pi-cfg-empty-go.is-loading .drako-pi-cfg-empty-go-load { animation: none; }
}
@media (max-width: 600px) {
  .drako-pi-cfg-empty-go { min-width: 0; padding: 12px 20px; font-size: 15px; }
  .drako-pi-cfg-empty-txt { font-size: 13px; }
}

/* Carrello spento: resta al suo posto, dichiaratamente non premibile. */
.drako-pi-add-btn.is-disabled,
.drako-pi-add-btn[disabled] {
  background: #cbd5e1 !important;
  color: #64748b !important;
  cursor: not-allowed;
  box-shadow: none !important;
}
.drako-pi-add-btn.is-disabled svg { opacity: .6; }

/* Personalizzatore BLOCCATO: nessuna build generata, quindi non c'e' ancora
   niente da personalizzare. Si vede (fa capire cosa si potra' fare) ma non si
   tocca. La guardia funzionale sta in selectOption(): pointer-events non ferma
   la tastiera, perche' le opzioni sono <label> con un radio dentro. */
#drakoCfgCustomizer.dcfg-locked { position: relative; }
#drakoCfgCustomizer.dcfg-locked .dcfg-cmain,
#drakoCfgCustomizer.dcfg-locked .dcfg-cnav {
  pointer-events: none;
  opacity: .55;
  filter: saturate(.55);
}
#drakoCfgCustomizer.dcfg-locked .drako-pcb2-opt { cursor: not-allowed; }
/* La pillola "Genera una build per personalizzarla" e' stata TOLTA su richiesta
   (2026-08-03): il generatore e' gia' in cima alla pagina e lo dice da solo, il
   velo sulle sezioni basta a far capire che non si tocca. */

/* Colonna di sinistra SCORREVOLE. La lista dei componenti e' cresciuta (core +
   accessori + eventuale monitor) e su schermi bassi finiva sotto il bordo della
   finestra: essendo sticky non la si raggiungeva scorrendo la pagina, perche' la
   colonna resta ferma. Limite legato all'altezza della finestra meno l'offset
   dello sticky (88px, vedi la regola .dcfg-cnav qui sopra) piu' un margine. */
/* ATTENZIONE: NON mettere overflow sulla colonna .dcfg-cnav. Piu' su c'e'
   'overflow:visible !important' messo apposta (7-lug) perche' il flyout FPS,
   ancorato al badge dentro la nav sticky, veniva TAGLIATO. Qui si limita e si
   fa scorrere solo la LISTA dei componenti, che e' l'unica parte che cresce:
   il blocco FPS e' un fratello e resta fuori dal ritaglio.
   La colonna diventa un flex verticale con un'altezza massima legata alla
   finestra (meno l'offset dello sticky, top:88px): cosi' la lista prende quello
   che avanza, senza numeri fissi che invecchiano se cambia la foto del case. */
/* SCORRIMENTO INTERNO RIMOSSO (richiesta 2026-08-03): la lista torna ad altezza
   naturale e scorre insieme alla pagina. Serviva a non far uscire la colonna
   sticky dallo schermo sui monitor bassi, ma su schermi normali sbordava di
   poche decine di pixel e la barra compariva per niente.
   Se un domani si volesse rimettere: max-height sulla colonna + overflow-y sulla
   sola .dcfg-cnav-riepilogo, MAI su .dcfg-cnav (li' c'e' un
   overflow:visible !important che serve al flyout FPS, vedi piu' su). */
#drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo {
  padding-right: 0;
}
#drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo::-webkit-scrollbar { width: 8px; }
#drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo::-webkit-scrollbar-track { background: transparent; }
#drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo::-webkit-scrollbar-thumb { background: #c3ccd8; border-radius: 8px; }
#drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo::-webkit-scrollbar-thumb:hover { background: #a8b4c4; }
/* Su mobile la colonna non e' sticky (vedi media query sopra): niente altezza
   massima, altrimenti si crea un secondo scorrimento dentro la pagina. */
@media (max-width: 900px) {
  #drakoCfgCustomizer .dcfg-cnav { max-height: none; display: block; }
  #drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo { overflow-y: visible; padding-right: 0; }
}
[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo { scrollbar-color: #4a5464 transparent; }
[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo::-webkit-scrollbar-thumb { background: #4a5464; }

/* Zoom foto sulle pagine configuratore: stessa aria che lascia una scheda
   prodotto normale. Le foto dei case hanno l'originale piu' grande e arrivavano
   al 96% dell'altezza schermo contro l'88% del resto del negozio. */
#piLightbox.dcfg-on .drako-pi-lb-img {
  max-height: 88% !important;
  max-width: calc(100% - 200px) !important;
}

/* Sezione senza prodotti (nessuna build generata): una riga di spiegazione al
   posto della griglia, cosi' la categoria si vede ma non sembra un elenco fra
   cui scegliere. */
#drakoCfgCustomizer .dcfg-cat-empty {
  grid-column: 1 / -1;
  margin: 0; padding: 22px 16px;
  text-align: center; font-size: 13.5px; color: #94a3b8;
}
[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-empty { color: #8891a0; }

/* "Genera la build in corso...": il testo sbiadiva perche' il bottone, una volta
   disabilitato, prendeva l'opacita' ridotta delle regole globali sui disabled.
   Durante l'attesa deve restare LEGGIBILE: e' l'unico posto che dice al cliente
   che sta succedendo qualcosa. */
.drako-pi-cfg-empty-go.is-loading,
.drako-pi-cfg-empty-go:disabled {
  opacity: 1 !important;
  background: #ffd23f !important;
  color: #23303e !important;
}
.drako-pi-cfg-empty-go.is-loading .drako-pi-cfg-empty-go-lbl { font-weight: 800; }

/* TEMA SCURO: il testo del pulsante centrale diventava bianco (bottone) e grigio
   chiaro (etichetta) per via di due regole globali con !important in
   stylesheet.css - una su [class*="-btn"], una su tutti gli span. Su un fondo
   giallo sono illeggibili. Il colore va riaffermato sia sul bottone sia sui
   figli, altrimenti la regola sugli span vince sull'etichetta. */
[data-theme="dark"] .drako-pi-cfg-empty-go,
[data-theme="dark"] .drako-pi-cfg-empty-go span,
[data-theme="dark"] .drako-pi-cfg-empty-go .drako-pi-cfg-empty-go-lbl,
html[data-theme="dark"] .drako-pi-cfg-empty-go.is-loading,
html[data-theme="dark"] .drako-pi-cfg-empty-go.is-loading span {
  color: #23303e !important;
}

/* Scorrimento della colonna sinistra: la barra nativa era sottile, quasi
   invisibile e attaccata al testo. Ora e' SEMPRE visibile, con una pista che si
   vede anche da ferma, e la lista ha spazio a destra per non finirci sotto. */
#drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo {
  padding-right: 10px;
  scrollbar-width: auto;
  scrollbar-color: #8a97a8 rgba(120, 135, 155, .18);
  scroll-behavior: smooth;
}
#drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo::-webkit-scrollbar { width: 11px; }
#drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo::-webkit-scrollbar-track {
  background: rgba(120, 135, 155, .18); border-radius: 8px;
}
#drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo::-webkit-scrollbar-thumb {
  background: #8a97a8; border-radius: 8px; border: 2px solid transparent; background-clip: padding-box;
}
#drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo::-webkit-scrollbar-thumb:hover { background: #6f7d90; }
[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo {
  scrollbar-color: #5a6575 rgba(255, 255, 255, .08);
}
[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo::-webkit-scrollbar-track { background: rgba(255, 255, 255, .08); }
[data-theme="dark"] #drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo::-webkit-scrollbar-thumb { background: #5a6575; }

/* Chiusura definitiva sullo scorrimento della colonna sinistra: le regole qui
   sopra (max-height, overflow, barra disegnata) restano nel file come storia dei
   tentativi, ma NON devono valere. La lista ha altezza naturale e scorre con la
   pagina. Ultima regola del foglio, quindi vince su tutte le precedenti. */
#drakoCfgCustomizer .dcfg-cnav { max-height: none !important; display: block !important; }
#drakoCfgCustomizer .dcfg-cnav > .dcfg-cnav-riepilogo {
  max-height: none !important;
  overflow-y: visible !important;
  overflow-x: visible !important;
  padding-right: 0 !important;
  scrollbar-width: auto;
}

/* ---- RICERCA PER MARCHIO sopra le alternative (2026-08-04) ---------------
   Sta nell'intestazione della categoria, quindi vale sia in vista card sia in
   vista lista senza doverla duplicare. */
#drakoCfgCustomizer .dcfg-brand { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:0 2px 10px; }
#drakoCfgCustomizer .dcfg-brand-field { position:relative; }
#drakoCfgCustomizer .dcfg-brand-input {
  width:230px; padding:7px 11px; border:1px solid #c7d2e0; border-radius:8px;
  background:#fff; color:#1c2430; font-size:13px; outline:none;
}
#drakoCfgCustomizer .dcfg-brand-input:focus { border-color:var(--dcfg-blue); box-shadow:0 0 0 3px rgba(28,99,171,.14); }
#drakoCfgCustomizer .dcfg-brand-list {
  position:absolute; z-index:30; top:calc(100% + 4px); left:0; width:250px; max-height:260px;
  overflow:auto; margin:0; padding:4px; list-style:none; background:#fff;
  border:1px solid #c7d2e0; border-radius:8px; box-shadow:0 8px 22px rgba(16,24,40,.16);
}
#drakoCfgCustomizer .dcfg-brand-opt { padding:7px 10px; border-radius:6px; font-size:13px; color:#1c2430; cursor:pointer; }
#drakoCfgCustomizer .dcfg-brand-opt:hover, #drakoCfgCustomizer .dcfg-brand-opt.is-on { background:#eaf1fa; color:var(--dcfg-blue); }
#drakoCfgCustomizer .dcfg-brand-empty { padding:7px 10px; font-size:12.5px; color:#8a94a6; }
#drakoCfgCustomizer .dcfg-brand-pill {
  display:inline-flex; align-items:center; gap:7px; padding:5px 6px 5px 12px;
  border-radius:999px; background:var(--dcfg-blue); color:#fff; font-size:12.5px; font-weight:600;
}
#drakoCfgCustomizer .dcfg-brand-x {
  border:0; background:rgba(255,255,255,.22); color:#fff; width:19px; height:19px;
  border-radius:50%; cursor:pointer; font-size:15px; line-height:1; padding:0;
}
#drakoCfgCustomizer .dcfg-brand-x:hover { background:rgba(255,255,255,.38); }
/* L'attributo hidden deve vincere: .dcfg-brand-pill ha un display esplicito e
   sovrascriveva il display:none del browser, cosi' la pillola restava a video
   vuota anche senza marchio scelto. */
#drakoCfgCustomizer .dcfg-brand-pill[hidden] { display:none; }
#drakoCfgCustomizer .dcfg-brand-list[hidden] { display:none; }

/* ===========================================================================
   IMPIANTO A DUE COLONNE — .dcfg-2col (prova dietro ?ui=2, 15/08)
   ===========================================================================
   Perché una griglia sul wrapper e display:contents sulla colonna sinistra:
   la galleria e la griglia opzioni sono figli di .drako-pi-left, ma devono
   finire in due CELLE diverse (riga 1 colonna 1, riga 2 colonne 1-2). Con
   display:contents il contenitore sparisce dal layout e i suoi figli diventano
   elementi della griglia del wrapper, collocabili uno per uno. Senza, servirebbe
   spostare il markup — cioè riscrivere 400 righe di product_info.php.

   Le misure non sono scelte a occhio: il contenitore foto riservava 642 px per
   un'immagine che si disegna a 500 (sorgente 686). I 142 px di vuoto diventano
   la fascia informazioni; la pagina resta larga 1.214 come prima.

      ┌──────────── 582 ───────────┬──── 1fr ────┬── 370 ──┐
      │ galleria (72 min. + foto)  │ informazioni│ pannello│
      ├────────────────────────────┴─────────────┤ (sticky)│
      │ griglia opzioni                          │         │
      └──────────────────────────────────────────┴─────────┘

   La prima colonna era 500 e la foto ne usava 468. Portando le miniature a
   SINISTRA (invece che sotto) la foto sarebbe scesa a 386: ma la richiesta era
   guadagnare aria in VERTICALE, non rimpicciolire la foto. La colonna cresce
   quindi esattamente di quanto costano le miniature — 72 + 10 di stacco — e la
   foto resta della misura di prima. La pagina non si allarga: i 82 px li cede
   la colonna informazioni, che con `1fr` si adatta da sola.
   =========================================================================== */
.drako-pi-wrapper.dcfg-2col {
  display:grid;
  grid-template-columns:582px minmax(0,1fr) 370px;
  grid-template-areas:
    "foto info pannello"
    "opz  opz  pannello";
  column-gap:24px;
  row-gap:14px;
  align-items:start;
}
/* i figli della colonna sinistra diventano elementi della griglia */
.drako-pi-wrapper.dcfg-2col > .drako-pi-left { display:contents; }

.dcfg-2col .drako-pi-gallery { grid-area:foto; min-width:0; }
.dcfg-2col > .dcfg-pan { grid-area:pannello; }

/* I due !important qui sotto non sono pigrizia: annullano due !important
   dell'impianto VECCHIO, che erano giusti per quello e sbagliati per questo.
     · .dcfg-on .drako-pi-info{width:500px!important}  bloccava la colonna destra
       a 500 px; qui la larghezza la decide la griglia (1fr).
     · #drakoCfgCustomizer{margin:0 -20px!important}   serviva a far sfondare il
       configuratore fuori dalla pagina, quando era una fascia a tutta larghezza
       sotto il prodotto; dentro la griglia quel margine lo fa uscire dalla colonna.
   Restano appesi alla classe .dcfg-2col: fuori da questo impianto non toccano nulla. */
/* Quattro classi, non due: la regola da battere è `.drako-pi-wrapper.dcfg-on
   .drako-pi-info{width:500px!important}` (tre classi). Fra due !important vince
   la specificità più alta, non l'ordine — con due classi la mia perdeva e la
   fascia restava larga 500, sovrapposta al pannello per 220 px. */
.drako-pi-wrapper.dcfg-on.dcfg-2col > .drako-pi-info {
  grid-area:info; min-width:0;
  width:auto !important;
  position:static;      /* l'appiccicato qui è il pannello, non la fascia */
}
.dcfg-2col #drakoCfgCustomizer {
  grid-area:opz; min-width:0; width:auto;
  margin-left:0 !important; margin-right:0 !important;
}

/* La fascia informazioni tiene identità e rassicurazioni. Prezzo, azioni e
   striscia FPS se ne vanno: vivono nel pannello, in un posto solo. Tenerli
   anche qui vorrebbe dire dire il prezzo due volte nella stessa schermata. */
.dcfg-2col > .drako-pi-info > .drako-pi-price-block,
.dcfg-2col > .drako-pi-info > .drako-pi-actions,
.dcfg-2col > .drako-pi-info > .drako-pi-fps { display:none !important; }

.dcfg-2col > .drako-pi-info .drako-pi-title { font-size:20px; line-height:1.18; }

/* La rail interna del configuratore non serve più: il pannello è il suo posto.
   L'id nel selettore NON è decorativo. La regola da battere è
   `#drakoCfgCustomizer .dcfg-cnav{display:block!important}` (id + classe): fra
   due !important vince la specificità più alta, e un id pesa più di qualunque
   numero di classi. `.dcfg-2col .dcfg-cnav!important` perdeva, e la rail restava
   a video spingendo la griglia a destra. */
.dcfg-2col #drakoCfgCustomizer .dcfg-cnav { display:none !important; }

/* Nascondere la rail non basta: .dcfg-cust-shell è una griglia a due colonne
   `320px 1fr`, e una colonna riservata resta riservata anche se il suo unico
   contenuto è display:none — la griglia opzioni restava larga 426 px su 780
   disponibili. Colonna unica, e lo spazio torna alle schede. */
.dcfg-2col #drakoCfgCustomizer .dcfg-cust-shell {
  grid-template-columns:minmax(0,1fr) !important;
  column-gap:0 !important;
}

/* UNA SCHEDA SOLA PER CATEGORIA
   ---------------------------------------------------------------------------
   Nel layout a fascia l'intestazione era una card che galleggiava da sola sopra
   un fondo grigio, quindi aveva bordo, raggio e ombra sue. Dentro la colonna
   anche .dcfg-cat è diventata una card, e le due si sommavano: due bordi, due
   ombre e due raggi annidati a 2 px di distanza.
   Resta il contenitore esterno; l'intestazione torna a essere un'intestazione —
   nessun bordo proprio, solo la barretta blu che marca la categoria e una riga
   di separazione dalla griglia.

   Seconda passata (15/08): via del tutto anche il riquadro esterno. Dodici card
   incassate in una colonna dentro un'altra card sono tre livelli di scatola per
   dire una cosa sola; le opzioni hanno già il loro bordo e bastano a delimitare.
   Resta solo l'intestazione, che però deve VEDERSI: bianca su bianca non separa
   niente. Prende un fondo azzurrino e la barretta blu piena. */
.dcfg-2col #drakoCfgCustomizer .dcfg-cat {
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:transparent !important;
  padding:0 0 22px !important;
}
.dcfg-2col #drakoCfgCustomizer .dcfg-cat-head {
  border:0 !important;
  border-left:5px solid #1c63ab !important;
  border-radius:0 6px 6px 0 !important;
  box-shadow:none !important;
  background:#e9f0f8 !important;
  margin:0 0 12px !important;
  padding:10px 14px !important;
}
.dcfg-2col #drakoCfgCustomizer .dcfg-cat-grid { padding:0; }
.dcfg-2col #drakoCfgCustomizer .dcfg-cat-grid.is-list { padding:0; }

/* ---------------------------------------------------------------------------
   Il pannello
   --------------------------------------------------------------------------- */
.dcfg-pan {
  position:sticky;
  /* ANCORAGGIO AL FONDO QUANDO NON CI STA (15/08) — chiude il difetto aperto da
     tre passate.
     ---------------------------------------------------------------------------
     Senza scorrimento interno (richiesta esplicita) il pannello è alto quanto il
     contenuto: 1.002 px, che chiedono una finestra da 1.110. Su un portatile
     1366×768 il pulsante d'acquisto non entrava MAI in vista, e non lo raggiunge
     nemmeno `scrollIntoView`: su un elemento appiccicato non c'è scorrimento che
     tenga.
     `min()` fa da sé la scelta: finché il pannello ci sta, `100vh - h - 12` è
     maggiore di 96 e vince 96 (comportamento di prima, appeso in alto); quando è
     più alto della finestra l'espressione scende sotto 96 — anche negativa — e il
     pannello si appende per il FONDO. A video restano coda dell'elenco, totale e
     carrello; esce dall'alto l'identità, che è comunque nel titolo di pagina,
     nel breadcrumb e nella foto grande a sinistra.
     L'altezza vera la scrive il JS in `--dcfg-pan-h` (misurata, non stimata: il
     pannello cresce quando adotta foto, azioni e badge FPS). Il valore iniziale
     0px non è pigrizia — è il ripiego: con la variabile a zero `min()` sceglie
     sempre 96, cioè esattamente il comportamento vecchio, se il JS non gira.
     `top:96px` scritto prima resta per i browser senza `min()`.
     TENTATO E SCARTATO: `top:auto; bottom:12px` — `position:sticky` può solo
     spostare l'elemento IN AVANTI rispetto al flusso, e questo è già in cima alla
     propria area di griglia; misurato, a 3.000 px di scorrimento finiva a -2.685. */
  --dcfg-pan-h:0px;
  top:96px;
  top:min(96px, calc(100vh - var(--dcfg-pan-h) - 12px));
  background:#fff;
  border:1px solid #e3e7ee;
  border-radius:8px;
  padding:14px;
  font-size:13px;
  color:#141c26;
}
/* L'intestazione porta marca + nome con le classi della scheda prodotto
   (.drako-pi-brand-link, .drako-pi-title): il blocco cambia colonna, non
   aspetto. Qui si dichiara solo che non scorre. Nessuna regola di carattere:
   dichiararne una qui vorrebbe dire far divergere questa pagina dalle altre. */
.dcfg-pan-tit { margin:0 0 11px; }
/* min-height:0 non è pleonastico: senza, un figlio flex non scende MAI sotto la
   dimensione del proprio contenuto e l'overflow non scatta — il pannello
   crescerebbe oltre il tetto invece di far scorrere l'elenco. */
/* ⚠️ APERTO — a 1366×768 il pulsante d'acquisto resta fuori schermo.
   ---------------------------------------------------------------------------
   Senza scorrimento interno il pannello è alto quanto il contenuto: misurato,
   795 px. Con `top:96` su una finestra da 768 il fondo cade a 891, e il fondo
   è dove stanno totale e carrello: restano sotto il bordo comunque si scorra.
   Non è un caso raro, è la risoluzione portatile più diffusa.
   TENTATO E SCARTATO: `top:auto; bottom:12px`. Non funziona — `position:sticky`
   può solo spostare l'elemento IN AVANTI rispetto alla sua posizione di flusso,
   e il pannello è già in cima alla propria area di griglia, quindi non c'è
   margine per tirarlo su. Misurato: a 3.000 px di scorrimento finiva a -2.685.
   Le strade praticabili, da decidere: (a) `top:calc(100vh - altezza - 12px)`,
   che vuole l'altezza vera del pannello scritta da JS in una custom property;
   (b) far tornare la riga della barra sticky sotto una certa altezza di
   finestra, riusando un componente che esiste già. */

/* Contenitore neutro: ha avuto per qualche ora `overflow-y:auto` più un tetto di
   altezza sul pannello. La barra dentro la colonna non si vuole (15/08), quindi
   il div resta solo perché lo cerca il JS. */
/* .dcfg-pan-id / .dcfg-pan-foto rimossi col markup: il nome è salito
   nell'intestazione ancorata e la miniatura ripeteva la foto grande accanto. */

/* LO STATO NORMALE NON SI DIPINGE
   ---------------------------------------------------------------------------
   Era verde su verde chiaro, e per reggere il contrasto a 11px serviva un
   #166534 diverso dal #15803d del resto: due verdi per dire la stessa cosa.
   Ma "nessuna incompatibilità" è la condizione di partenza — è vera per tutta
   la durata della configurazione tranne quando non lo è. Dipingerla consuma
   il colore che serve al caso opposto. Neutra qui, il rosso resta solo su
   .is-ko: se in un pannello altrimenti grigio compare una riga rossa, non
   c'è modo di non vederla. Grigio #4b5563 su bianco = 7,5:1. */
.dcfg-pan-compat {
  display:flex; align-items:center; gap:7px;
  background:#f7f9fc; border:1px solid #e3e7ee; color:#4b5563;
  border-radius:6px; padding:6px 9px; font-size:11px; font-weight:600; margin-bottom:11px;
}
.dcfg-pan-compat.is-ko { background:#fdeaea; border-color:#f3c9c9; color:#b91c1c; }
/* ⚠️ `hidden` è un attributo, e la regola della UA che lo traduce in `display:none`
   PERDE contro qualunque `display` dichiarato dall'autore: qui sopra c'è
   `display:flex`, quindi senza questa riga il JS metterebbe l'attributo e l'avviso
   resterebbe a video. Quando si dichiara un `display` su un elemento che il JS
   nasconde con `hidden`, la coppia va scritta sempre. */
.dcfg-pan-compat[hidden] { display:none; }

/* LA FOTO DEL CASE E LE AZIONI, ADOTTATE ANCH'ESSE DALLA RAIL
   ---------------------------------------------------------------------------
   Stesso meccanismo del badge FPS: il JS SPOSTA i nodi qui, e visto che non
   vivono più sotto #drakoCfgCustomizer nessuna delle loro regole li raggiunge —
   nemmeno il `display`. Va ridichiarato tutto, misure comprese.
   La foto è più piccola dell'originale (170 invece di 230): in una colonna da
   370 che deve contenere anche FPS, sei componenti, totale e carrello, 230 px
   di case spingevano il resto troppo in basso. Serve a riconoscere la macchina
   mentre si scorre, non a mostrarne il dettaglio — quello è nella foto grande
   a sinistra. */
/* La riga chiude la FOTO, non le azioni (correzione 15\08): col separatore in
   fondo, le tre azioni finivano dentro il riquadro dell'identità e sembravano
   didascalia del case. Sono invece cose che si fanno alla configurazione
   intera, quindi stanno di là dalla riga, in apertura di ciò che segue. */
.dcfg-pan .dcfg-cnav-hero {
  display:flex; flex-direction:column; align-items:center; gap:9px;
  text-decoration:none; color:inherit;
  padding:0 0 12px; margin:0 0 12px;
  border-bottom:1px solid #e3e7ee;
}
.dcfg-pan .dcfg-cnav-hero-img { width:100%; height:170px; object-fit:contain; display:block; }
/* Finestra bassa: la foto si stringe. Non serve a far entrare il pannello — non
   basterebbe — ma a lasciare più elenco a video insieme al prezzo. È il blocco
   che si può ridurre senza perdere nulla: la stessa foto è enorme nella colonna
   di sinistra e di nuovo nella griglia delle opzioni Case. */
@media (max-height:900px) {
  .dcfg-pan .dcfg-cnav-hero-img { height:110px; }
}
.dcfg-pan .dcfg-cnav-case-caption { display:block; width:100%; text-align:left; }
.dcfg-pan .dcfg-cnav-case-lbl { display:none; }
/* La didascalia si spezza come le righe dell'elenco: usciva «Asus ProArt PA602
   Walnut Wood Edition - Tempered …», cioè troncata sulla variante, che è l'unica
   cosa che distingue i quattro PA602 a catalogo. I due figli li scrive
   window.dcfgScriviNomeSpezzato(); se il nome non si spezza resta un testo solo,
   e l'ellissi lavora come prima. */
/* Niente grassetto (21/08, Alex): e' la didascalia della foto, non un titolo.
   Il peso lo porta gia' il nome della categoria qui accanto; due grassetti
   vicini non gerarchizzano niente, si annullano. */
.dcfg-pan .dcfg-cnav-hero-name {
  display:flex; width:100%; font-size:13px; line-height:1.25; font-weight:400;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
/* `0 1 auto` e non `1 1 auto`: la testa deve poter SOLO stringersi. Con la
   crescita attiva, su un nome corto la testa si allargava a tutta riga e
   spingeva la coda contro il bordo destro, lasciando un buco in mezzo — qui
   sono una frase sola, non due colonne (nell'elenco invece la coda a destra è
   voluta: incolonna i valori). */
.dcfg-pan .dcfg-cnav-hero-name .dcfg-nome-testa { flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }
/* ⚠️ `white-space:pre` E' LO SPAZIO PRIMA DEL TRATTINO (20/08/2026, segnalato da Alex).
   Usciva «Asus ROG Strix Helios II- Nero», attaccato. Il testo giusto c'e' —
   dcfgScriviNomeSpezzato() scrive « - Nero» con lo spazio in testa, e il
   `textContent` del contenitore torna intero, come i tre punti che lo rileggono
   pretendono. A mangiarlo e' il flex: lo spazio iniziale di un elemento flex
   viene potato in fase di resa, e con `gap` a zero i due pezzi si toccano.
   `pre` lo tiene senza spostare il separatore fuori dal testo (un ::before lo
   toglierebbe dal textContent e romperebbe condivisione e riepilogo).
   Non un `gap`: quello aggiungerebbe spazio anche quando la coda non c'e'. */
.dcfg-pan .dcfg-cnav-hero-name .dcfg-nome-val   { flex:0 0 auto; white-space:pre; }
.dcfg-pan .dcfg-cnav-hero:hover .dcfg-cnav-hero-name { color:#1c63ab; }
.dcfg-pan .dcfg-cnav-hero:focus-visible { outline:2px solid var(--drako-focus-ring, #1c63ab); outline-offset:2px; }

/* Le azioni stanno SOTTO LA FOTO, non in fondo al pannello: in coda, dopo il
   totale e il carrello, condividere la build non si vedeva. Stanno però oltre
   il separatore, non attaccate al case: nessun bordo qui sotto, altrimenti
   tornerebbero a leggersi come parte del riquadro della foto. */
.dcfg-pan .dcfg-cnav-actions {
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  margin:0 0 12px; padding:0; border-bottom:0;
}
/* L'aspetto lo porta .drako-cart-act-btn, la classe dei controlli secondari del
   carrello, aggiunta dal JS in fase di adozione (bordo tenue, 6×12 di padding,
   13 px, hover che scurisce). Qui resta solo ciò che la colonna stretta impone:
   i tre pulsanti si dividono la riga e l'icona è più piccola di quella del
   carrello, che sta su una riga alta il doppio. */
.dcfg-pan .dcfg-cnav-action { flex:1 1 0; justify-content:center; padding:6px 8px; }
.dcfg-pan .dcfg-cnav-action svg { width:14px; height:14px; flex:0 0 auto; }
/* ⚠️ .drako-cart-act-btn non ha uno stato di fuoco in stylesheet.css: chi naviga
   da tastiera attraversa questi tre controlli senza vedere dove si trova. Qui si
   chiude per il pannello; **nel carrello il difetto resta** e va chiuso di là,
   sulla classe, non replicando questa riga in ogni pagina che la usa. */
.dcfg-pan .dcfg-cnav-action:focus-visible { outline:2px solid var(--drako-focus-ring, #1c63ab); outline-offset:2px; }

/* IL BADGE FPS GRANDE, ADOTTATO DALLA RAIL
   ---------------------------------------------------------------------------
   Il nodo `.dcfg-cnav-fps` non viene copiato: viene SPOSTATO qui dal JS
   (dcfgPanelAdottaFps). Copiarlo avrebbe voluto dire due markup da tenere
   allineati e, soprattutto, un secondo gestore del clic da riscrivere: il
   listener che apre la finestra di scelta gioco è attaccato a quel nodo, e
   spostando il nodo il listener viene con lui.
   Le regole originali sono agganciate a #drakoCfgCustomizer e qui non arrivano
   più, quindi l'aspetto va ridichiarato. I valori NON sono inventati: sono
   quelli misurati sul badge vero prima dello spostamento. */
.dcfg-pan .dcfg-cnav-fps { margin:0 0 12px; cursor:pointer; }
/* Il pannello a comparsa viaggiava col nodo adottato ed è ricomparso: la regola
   che lo nascondeva era agganciata a #drakoCfgCustomizer, che qui non c'è più.
   Il dettaglio si apre nella finestra vera, non srotolato dentro la colonna. */
.dcfg-pan .dcfg-cnav-fps-pop { display:none !important; }
/* UN SOLO COLORE, E SUL NUMERO
   ---------------------------------------------------------------------------
   Com'era: quattro livelli con fondo E bordo propri (verde/blu/ambra/rosso),
   il "1440p" azzurro su un'etichetta che non è cliccabile, due grigi per il
   1% low e un terzo per il nome del gioco. Sette tinte in un riquadro alto
   130px, dentro una colonna che ne ha già altre.
   Peggio del rumore, però, c'era una bugia: le classi di livello qui sotto
   dipingevano solo il fondo, mentre il numero restava fissato a #15803d. Le
   regole che coloravano il numero per livello sono agganciate a
   #drakoCfgCustomizer e il nodo, adottato dal pannello, non ci vive più —
   quindi 25 FPS uscivano in verde esattamente come 561. E i due livelli alti
   (t144 e t100) avevano fondo diverso ma numero identico: il fondo dichiarava
   una distinzione che il testo smentiva.
   Com'è: la superficie è neutra e sempre la stessa, il livello lo dice il
   COLORE DEL NUMERO e nient'altro, in tre passi invece di quattro (t144 e
   t100 collassano su "buono": la loro differenza non esisteva già prima).
   Il rosso è #b91c1c, lo stesso dell'avviso di incompatibilità, non il
   quasi-uguale #b03636 che aggiungeva una tinta per niente.
   Il colore non resta l'unico portatore del significato: 561 e 25 si leggono
   come numeri, quindi WCAG 1.4.1 regge senza aggiungere un'etichetta. */
/* ⚠️ L'IMPAGINAZIONE È QUELLA DELLA RAIL, NON UNA NUOVA.
   Avevo centrato tutto in colonna (`align-items:center`, `text-align:center`,
   icona spenta): il riquadro restava per lo più vuoto ai lati mentre la rail
   usava la riga per intero — icona, numero, unità e 1% low affiancati, e sotto
   gioco e risoluzione. Qui si ricopiano quelle misure (righe 1085-1096 di
   questo foglio); cambia solo la tavolozza, che è la modifica chiesta. */
/* Il badge è un <button>: qui si tolgono i default dell'elemento (carattere,
   larghezza, appearance), non si aggiunge un aspetto nuovo. Vale per ogni sede,
   quindi la regola non è scopata al pannello. */
.dcfg-cnav-fps-badge { appearance:none; -webkit-appearance:none; font:inherit; color:inherit; width:100%; cursor:pointer; }
.dcfg-pan .dcfg-cnav-fps-badge {
  display:flex; flex-direction:column; align-items:stretch; gap:10px;
  background:#f7f9fc; border:1px solid #e3e7ee; border-radius:12px;
  padding:12px 14px 13px; text-align:left;
}
.dcfg-pan .dcfg-cnav-fps-top { display:flex; align-items:center; gap:9px; min-width:0; }
.dcfg-pan .dcfg-cnav-fps-ic  { display:block; width:46px; height:46px; object-fit:contain; flex:0 0 auto; }
.dcfg-pan .dcfg-cnav-fps-num { font-size:46px; font-weight:900; line-height:.88; font-variant-numeric:tabular-nums; }
.dcfg-pan .dcfg-cnav-fps-unit{ font-size:15px; font-weight:800; align-self:flex-end; margin-bottom:6px; }
/* Senza livello il numero non promette nulla: grigio.
   Il pannello ha TRE livelli di neutro e bastano: #141c26 primario,
   #4b5563 secondario, #6b7280 terziario. Il #5f6774 che stava qui era un
   quarto grigio a un passo dal secondario, indistinguibile e non deciso. */
/* ⚠️ IL NUMERO NON PORTA PIÙ LA FASCIA (ridisegno 15/08)
   ---------------------------------------------------------------------------
   Il livello di prestazione era detto SOLO dal colore del numero, e il colore
   del livello alto era `#15803d` — **lo stesso identico verde del prezzo**,
   misurato, a 300 px di distanza nella stessa colonna. Due significati, una
   tinta: sul prezzo è identità di marca, qui era semantica. Su una build debole
   il pannello mostrava «27 FPS» in rosso sopra «€ 5.077,90» in verde, e a colpo
   d'occhio sembrava un errore.
   In più il colore era l'UNICO portatore del significato: chi non distingue
   rosso e verde — l'8% dei maschi, cioè una fetta grossa di chi compra PC da
   gioco — vedeva un numero grande e basta (WCAG 1.4.1).
   Ora il numero è neutro e la fascia si LEGGE, nel verdetto qui sotto; il
   colore resta lì come rinforzo. Il numero è 46 px in peso 900: non gli serve
   il colore per essere l'oggetto più forte del riquadro. */
.dcfg-pan .dcfg-cnav-fps-num  { color:#141c26; }
.dcfg-pan .dcfg-cnav-fps-unit { color:#4b5563; }
/* `margin-left:auto` e non i 12px dell'originale: è l'unico scostamento, e
   serve proprio a togliere il vuoto. Nella rail da 320 px i 12 px bastavano a
   riempire la riga; nel pannello, largo 370, restavano 78 px scoperti a destra
   mentre la riga sotto (gioco + risoluzione) arrivava fino al bordo. Così le
   due righe chiudono sulla stessa verticale. */
.dcfg-pan .dcfg-cnav-fps-low { display:inline-flex; flex-direction:column; align-items:flex-start; justify-content:center; margin-left:auto; line-height:1.02; }
/* Niente colore dichiarato: eredita il nero del pannello (#141c26). Scriverne
   uno proprio (#1c2430) aggiungeva un secondo nero che nessuno distingue. */
.dcfg-pan .dcfg-cnav-fps-low b     { font-size:22px; font-weight:800; font-variant-numeric:tabular-nums; }
/* 12 px e non 10: è un dato, e la regola del negozio dice che confidenza, errore
   e costo non scendono sotto i 12. Niente maiuscoletto: «minimi» deve leggersi
   in coppia con «FPS», non travestirsi da etichetta di sistema. */
.dcfg-pan .dcfg-cnav-fps-low small { font-size:12px; font-weight:600; color:#4b5563; }

/* LA RIGA DELLE CONDIZIONI = IL COMANDO
   ---------------------------------------------------------------------------
   `order:-1` e non uno spostamento nel markup: nella rail il badge conserva la
   sua disposizione storica, e qui il PHP resta uno solo.
   Gioco, risoluzione e dettaglio sono le tre cose che si possono cambiare, ed
   erano didascalia sotto i numeri. Ora sono in cima e si vestono da controllo —
   superficie bianca, bordo, freccia — perché l'unica cosa che dichiarava il clic
   era una scritta, e toglierla ha lasciato il riquadro muto (l'hover valeva
   l'1,5% di luminanza: invisibile). */
.dcfg-pan .dcfg-cnav-fps-bot {
  order:-1; display:flex; align-items:center; gap:7px; min-width:0;
  background:#fff; border:1px solid #e3e7ee; border-radius:8px; padding:5px 7px 5px 6px;
}
.dcfg-pan .dcfg-cnav-fps-badge:hover .dcfg-cnav-fps-bot { border-color:#c9d9ea; }
.dcfg-pan .dcfg-cnav-fps-gimg { width:22px; height:22px; border-radius:5px; object-fit:cover; flex:0 0 auto; }
.dcfg-pan .dcfg-cnav-fps-game { flex:1 1 auto; min-width:0; font-size:13px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* Risoluzione e dettaglio: due dati appaiati, stesso peso. Non azzurri — nel
   riquadro il clic è la riga intera, non una delle due pastiglie. */
.dcfg-pan .dcfg-cnav-fps-res,
.dcfg-pan .dcfg-cnav-fps-preset { flex:0 0 auto; font-size:12px; font-weight:700; color:#4b5563; }
.dcfg-pan .dcfg-cnav-fps-preset::before { content:"·"; margin:0 5px 0 0; color:#9aa5b6; }
.dcfg-pan .dcfg-cnav-fps-preset[hidden] { display:none; }
.dcfg-pan .dcfg-cnav-fps-chev { flex:0 0 auto; color:#1c63ab; margin-left:1px; }

/* Guardia per la rail: freccia, dettaglio e verdetto nascono per il pannello, e
   se un giorno il badge restasse nella colonna sinistra (nessun pannello) là non
   hanno regole e uscirebbero come testo sciolto. Là non si mostrano. */
#drakoCfgCustomizer .dcfg-cnav-fps-chev,
#drakoCfgCustomizer .dcfg-cnav-fps-preset,
#drakoCfgCustomizer .dcfg-cnav-fps-verdetto { display:none !important; }

/* IL VERDETTO — la fascia detta a parole, col colore come rinforzo. */
.dcfg-pan .dcfg-cnav-fps-verdetto { font-size:12px; font-weight:600; line-height:1.3; color:#4b5563; }
.dcfg-pan .dcfg-cnav-fps-verdetto[hidden] { display:none; }
.dcfg-pan .is-t144 .dcfg-cnav-fps-verdetto,
.dcfg-pan .is-t100 .dcfg-cnav-fps-verdetto { color:#15803d; }
.dcfg-pan .is-t60  .dcfg-cnav-fps-verdetto { color:#b45309; }
.dcfg-pan .is-t30  .dcfg-cnav-fps-verdetto { color:#b91c1c; }
/* ⚠️ LO ZOOM AL CAMBIO DI FPS — stessa causa dei colori per livello.
   `@keyframes dcfgFpsBump` c'è ed è globale, e il JS accende `is-bump` su TUTTI
   i nodi `[data-role="fps-host"]` (quindi anche su questo): a non arrivare qui
   era solo la regola, agganciata a `#drakoCfgCustomizer`. Ricambiando un pezzo
   il numero si aggiornava senza che nulla lo segnalasse.
   Valori come l'originale (riga 3732); l'alone è appena più tenue, .14 invece
   di .18, perché qui il riquadro è neutro e su fondo chiaro si vedeva troppo. */
.dcfg-pan .dcfg-cnav-fps-badge.is-bump {
  animation:dcfgFpsBump .45s cubic-bezier(.22,1,.36,1);
  box-shadow:0 0 0 3px rgba(28,99,171,.14);
  transition:box-shadow .6s ease .2s;
}
@media (prefers-reduced-motion: reduce) {
  .dcfg-pan .dcfg-cnav-fps-badge.is-bump { animation:none !important; box-shadow:none !important; }
}
/* Il badge è un pulsante: si vede che lo è. */
.dcfg-pan .dcfg-cnav-fps-badge:hover { filter:brightness(.985); }
.dcfg-pan .dcfg-cnav-fps-badge:focus-visible { outline:2px solid var(--drako-focus-ring, #1c63ab); outline-offset:2px; }
/* (Qui stava .dcfg-cnav-fps-cta, la didascalia «Cambia gioco o risoluzione»: tolta
   il 15/08 insieme al nodo che la creava. Il badge è già un pulsante e lo dichiara
   da sé con cursore, hover e focus.) */

/* ⚠️ NOTA — su questa griglia `order` NON serve e NON funziona: i figli sono
   piazzati per NOME (`grid-area:foto|info|pannello|opz`), e il piazzamento
   esplicito ignora l'ordine. Per riordinare si scambiano le righe in
   `grid-template-areas` (vedi la media query mobile più sotto). */

/* Il blocco «come lo costruiamo» resta ESATTAMENTE com'è sulla scheda normale:
   nella colonna informazioni cambia solo il posto, non l'aspetto. Il contenuto
   da aggiungere è una decisione di merito, non di stile, e va deciso a parte. */

/* LE MINIATURE A SINISTRA DELLA FOTO, NON SOTTO
   ---------------------------------------------------------------------------
   Sotto costavano 64 px di altezza + 12 di stacco a tutta larghezza, proprio
   nella colonna che detta l'altezza della prima schermata; a sinistra stanno
   nella stessa aria della foto e non tolgono niente in verticale.
   Il markup resta com'è (foto grande PRIMA, miniature DOPO): le colonne le
   assegna la griglia, così l'ordine di lettura per chi non vede la pagina
   continua a essere «ecco il prodotto, ecco le altre viste».
   La striscia scorre da sola se le viste sono tante, con un tetto legato
   all'altezza della foto e non a un numero inventato. */
@media (min-width:1024px) {
  .dcfg-2col .drako-pi-gallery {
    display:grid;
    grid-template-columns:72px minmax(0,1fr);
    gap:10px;
    align-items:start;
  }
  .dcfg-2col .drako-pi-main-img { grid-column:2; grid-row:1; }
  .dcfg-2col .drako-pi-thumbs {
    grid-column:1; grid-row:1;
    flex-direction:column;
    margin-top:0;
    overflow-x:visible;
    overflow-y:auto;
    max-height:100%;
    padding-bottom:0;
    padding-right:2px;          /* respiro per il riquadro di fuoco */
    scrollbar-width:thin;
  }
  .dcfg-2col .drako-pi-thumb { flex:0 0 64px; }
}

/* IL RIQUADRO RATE PORTAVA DENTRO I GRIGI STORICI DEL SITO
   ---------------------------------------------------------------------------
   `.drako-pi-installments` arriva dalla pagina prodotto e viaggia con #444 sul
   testo, #222 sul grassetto e #888 sul sottotitolo: tre grigi che nel pannello
   si aggiungono ai suoi (#141c26 / #4b5563 / #6b7280) senza aggiungere un
   significato — sei grigi in una colonna larga 370.
   Il #888 non è solo ridondante: su bianco fa 3,54:1, sotto la soglia AA, e
   la riga che colora è "TAN 9,45% fisso · TAEG 12,09%", cioè le condizioni
   economiche del finanziamento. #6b7280 = 4,83:1.
   Ambito ristretto al pannello di proposito: il difetto del #888 esiste anche
   sulla pagina prodotto normale, ma lì è una correzione da fare a parte e da
   verificare su tutte le pagine che usano il riquadro, non di straforo qui. */
.dcfg-pan .drako-pi-installments,
.dcfg-pan .drako-pi-inst-row,
.dcfg-pan .drako-pi-inst-text { color:#4b5563; }
.dcfg-pan .drako-pi-inst-text strong { color:#141c26; }
.dcfg-pan .drako-pi-inst-sub { color:#6b7280; }

/* LA RIGA DELLA BARRA STICKY SI SPEGNE, IL CONTENITORE NO
   ---------------------------------------------------------------------------
   Sopra i 1024 la barra ripeterebbe totale, consegna e carrello, che il pannello
   ha già ed espone sempre. Ma dentro #drakoCfgBar vive anche la finestra di
   scelta gioco/risoluzione: spegnere il contenitore renderebbe il badge FPS del
   pannello un pulsante che non apre niente. Si spegne solo la riga.
   La classe .dcfg-bar--2col la mette il JS, e serve per la specificità: la regola
   da battere è `#drakoCfgBar.dcfg-bar .dcfg-bar-inner{display:block!important}`
   (id + 2 classi) e sta in questo foglio, che si carica dopo lo <style> in
   pagina — a parità di specificità fra due !important vince l'ultima. Con tre
   classi la questione non dipende più dall'ordine. */
@media (min-width:1024px) {
  #drakoCfgBar.dcfg-bar.dcfg-bar--2col .dcfg-bar-inner { display:none !important; }
}

/* Ripiego server-side, sostituito dal nodo adottato appena il JS gira. */
.dcfg-pan-fps {
  display:flex; align-items:center; gap:11px; margin-bottom:12px;
  border:1px solid #c9dcef; border-left:3px solid #1c63ab;
  background:linear-gradient(180deg,#f4f9ff,#eaf2fb);
  border-radius:7px; padding:9px 11px;
}
.dcfg-pan-fps.is-t144 { border-left-color:#15803d; }
.dcfg-pan-fps.is-t100 { border-left-color:#1c63ab; }
.dcfg-pan-fps.is-t60  { border-left-color:#b45309; }
.dcfg-pan-fps.is-t30  { border-left-color:#b91c1c; }
.dcfg-pan-fps-main, .dcfg-pan-fps-low, .dcfg-pan-fps-ctx { display:flex; flex-direction:column; min-width:0; line-height:1; }
.dcfg-pan-fps-main b { font-family:'Oswald','Arial Narrow','Segoe UI',sans-serif; font-size:26px; font-weight:600; color:#1c63ab; font-variant-numeric:tabular-nums; }
.dcfg-pan-fps-low b  { font-family:'Oswald','Arial Narrow','Segoe UI',sans-serif; font-size:17px; font-weight:600; color:#3b4657; font-variant-numeric:tabular-nums; }
.dcfg-pan-fps span, .dcfg-pan-fps-lbl { font-size:8.5px; letter-spacing:.09em; text-transform:uppercase; color:#4b5563; margin-top:3px; }
.dcfg-pan-fps-sep { width:1px; align-self:stretch; background:#c9dcef; flex:none; margin:0; }
.dcfg-pan-fps-game { display:inline-flex; align-items:center; gap:5px; font-size:10.5px; font-weight:600; color:#1c63ab; text-transform:none; letter-spacing:0; margin-top:2px; }
.dcfg-pan-fps-game b { font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:120px; }
.dcfg-pan-fps-game span { font-size:10.5px; text-transform:none; letter-spacing:0; color:#4b5563; margin:0; }

.dcfg-pan-righe { list-style:none; margin:0; padding:11px 0 0; border-top:1px solid #e3e7ee; display:flex; flex-direction:column; gap:9px; }
/* La griglia sta sull'ÀNCORA, non sul <li>: l'area cliccabile deve coincidere con
   la riga intera, non con le sole parole. Il colore lo eredita dal pannello — è un
   link di servizio dentro un elenco, non un invito, e l'azzurro nel pannello resta
   riservato al pulsante e ai due link veri. */
.dcfg-pan-riga { display:block; }
.dcfg-pan-salta {
  display:grid; grid-template-columns:26px minmax(0,1fr); gap:9px; align-items:center;
  color:inherit; text-decoration:none; border-radius:6px;
  /* Il rientro orizzontale è compensato da un margine uguale e contrario: la
     riga guadagna respiro attorno al fondo colorato dello stato d'errore senza
     spostare di un pixel il testo, e la larghezza utile del nome resta quella
     (se cambiasse, cambierebbe anche il punto in cui scatta l'ellissi).
     Il margine negativo era vietato in orizzontale finché il contenitore aveva
     `overflow-y:auto` — che implica `overflow-x:auto` — e produceva una barra di
     scorrimento orizzontale. Lo scorrimento interno non c'è più, e comunque
     .dcfg-pan ha 14 px di padding: 6 di sconfinamento restano dentro. */
  padding:2px 6px;
  margin:-2px -6px;
}
/* LO SLOT COLPEVOLE SI VEDE, E CI SI CLICCA SOPRA
   ---------------------------------------------------------------------------
   L'avviso in cima dice quante incompatibilità ci sono; da solo lascia il
   cliente a cercarle fra dodici categorie. Le classi le mette lo stesso
   `markIssue()` che già segna la rail e le sezioni, quindi la riga rossa e la
   sezione rossa non possono discordare. La riga è già un'àncora alla categoria:
   segnarla la rende anche il modo per andarla a sistemare.
   Nessun colore nuovo: rosso e ambra sono quelli che il pannello usa già.

   ⚠️ L'AVVISO VA SCRITTO PRIMA DELL'ERRORE, e non è estetica dell'ordine.
   `markIssue()` aggiunge una classe per OGNI problema e non toglie l'altra: una
   riga con un errore e un avviso insieme porta `has-error has-warn` — misurato
   sulla riga Case della 34312, che ha la scheda madre fuori formato (errore) e le
   ventole (avviso). A parità di specificità vince l'ultima regola scritta, quindi
   con l'errore per primo la riga usciva col fondo rosso e il testo ambra. Scritto
   in quest'ordine, il più grave vince. Stesso ordine della rail (righe 259-260). */
.dcfg-pan-riga.has-warn .dcfg-pan-nome,
.dcfg-pan-riga.has-warn .dcfg-pan-ic { color:#b45309; }
.dcfg-pan-riga.has-error .dcfg-pan-salta { background:#fdeaea; }
.dcfg-pan-riga.has-error .dcfg-pan-nome,
.dcfg-pan-riga.has-error .dcfg-pan-ic { color:#b91c1c; }
/* Sottolineatura al passaggio del mouse TOLTA (20/08/2026, richiesta di Alex):
   la riga si illumina gia' di fondo e filetto, e il trattino sotto un nome che
   spesso finisce in ellissi tagliava la riga a meta' invece di segnalarla.
   La riga resta un collegamento: lo dicono il cursore e gli altri due segnali.

   ⚠️ LA REGOLA VA SUL LINK, NON SUL NOME (corretto il 20/08/2026, stessa
   giornata). Prima stava su .dcfg-pan-nome e non serviva a niente: la riga la
   disegna `a:hover { text-decoration: underline }` di stylesheet.css:19, cioe'
   l'ANTENATO, e una decorazione dell'antenato viene dipinta ATTRAVERSO i figli
   in linea - un `text-decoration:none` sul figlio non puo' cancellarla. Va
   spenta dove nasce. Misurato: la riga sotto il puntatore restava sottolineata
   nonostante le due regole scritte apposta per toglierla.
   `:focus` accanto a `:hover` perche' dopo un clic il link resta a fuoco e la
   riga si sarebbe sottolineata da sola, senza mouse sopra. */
.dcfg-pan-salta:hover,
.dcfg-pan-salta:focus,
.dcfg-pan-salta:focus-visible { text-decoration: none; }
.dcfg-pan-salta:focus-visible { outline:2px solid var(--drako-focus-ring, #1c63ab); outline-offset:1px; }
/* Lo scostamento sotto l'intestazione appiccicata: senza, il salto porta il titolo
   della categoria dietro la testata. 96 di testata + 12 di respiro. */
#drakoCfgCustomizer .dcfg-cat { scroll-margin-top:108px; }
/* Nessuna piastrella dietro l'icona: sei riquadri grigi in colonna disegnano una
   seconda colonna che non significa niente e ruba peso ai nomi dei componenti,
   che sono l'informazione. L'icona è un segno, non un pulsante. */
.dcfg-pan-ic { width:26px; height:26px; display:flex; align-items:center; justify-content:center; flex:none; color:#6b7280; }
.dcfg-pan-svg { display:block; }
/* Alla riga scelta l'icona prende il blu del marchio: è l'unico punto in cui il
   colore cambia, e segnala la riga a cui l'occhio sta tornando. */
.dcfg-pan-salta:hover .dcfg-pan-ic,
.dcfg-pan-salta:focus-visible .dcfg-pan-ic { color:#1c63ab; }
/* La riga è UNA cosa in tre pezzi: nome (si tronca), valore e conteggio (mai).
   `min-width:0` non è pleonastico né qui né sul nome: senza, un figlio flex non
   scende sotto la dimensione del proprio contenuto e l'ellissi non scatta mai. */
.dcfg-pan-txt { min-width:0; display:flex; align-items:baseline; gap:5px; }
/* Il valore è il dato su cui si scorre la lista: peso pieno, cifre allineate,
   e `flex:none` perché è esattamente ciò che non deve mai sparire. */
.dcfg-pan-val {
  flex:0 0 auto; font-size:11.5px; font-weight:700; color:#141c26;
  font-variant-numeric:tabular-nums;
}
.dcfg-pan-val[hidden] { display:none; }
/* Il conteggio dei pezzi: informazione di secondo livello, ma intoccabile — è la
   differenza fra due dischi e quattro. */
.dcfg-pan-qta { flex:0 0 auto; font-size:11.5px; color:#4b5563; white-space:nowrap; }
.dcfg-pan-qta[hidden] { display:none; }
/* UNA RIGA, SEMPRE (15/08). Il nome va in ellissi invece di andare a capo: sei
   componenti con nomi lunghi facevano dodici righe, e il pannello — che è
   appiccicato e deve stare nella finestra — cresceva di una novantina di pixel a
   seconda di cosa si sceglieva. Il testo intero resta nel `title`; il posto dove
   si legge davvero è la scheda opzione, a un clic da qui.
   `min-width:0` su .dcfg-pan-txt qui sopra non è pleonastico: senza, la cella di
   griglia non scende sotto la larghezza del contenuto e l'ellissi non scatta mai. */
.dcfg-pan-nome {
  flex:1 1 auto; min-width:0;
  font-size:11.5px; font-weight:600; line-height:1.28;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
/* (Qui stava .dcfg-pan-sub, la seconda riga descrittiva: tolta il 15/08 insieme a
   tutto ciò che la produceva. Con lei se n'è andata la trappola `hidden` vs
   `display` che l'aveva tenuta a video a dire «16 GB» di una scheda non più
   scelta — la regola resta scritta nel doc, perché il tipo di errore torna.) */

/* IL PIEDE = IL RIQUADRO PREZZO DEL NEGOZIO
   ---------------------------------------------------------------------------
   Dentro .dcfg-pan-tot ora vive .drako-pi-price-block con le SUE regole
   (stylesheet.css: fondo #f8f9fa, bordo, 16 di padding, prezzo Oswald 28/700).
   Qui non si ridichiara niente di tutto ciò — sarebbe la stessa divergenza che
   questo cambio è servito a chiudere. Si aggiusta solo ciò che la colonna
   stretta impone: il distacco sotto, e le tre voci a piena riga.

   ⚠️ Cade l'allineamento a destra che il piede aveva prima: il riquadro del
   negozio è allineato a sinistra e le sue righe sono composte così — i loghi
   Klarna/PayPal a fine riga rate, l'icona del camion in testa alla nota
   spedizione. Girarlo a destra avrebbe voluto dire riscriverne l'interno,
   cioè tenersi la seconda grammatica. */
/* Niente riga sopra: il riquadro prezzo ha già un bordo suo, e le due insieme
   facevano due separazioni a undici pixel l'una dall'altra. Resta lo stacco. */
.dcfg-pan-tot { margin-top:14px; }
.dcfg-pan-tot > .drako-pi-price-block { margin-bottom:0; }
/* L'etichetta sopra la cifra: 12 px, il corpo minimo del negozio per un dato —
   sotto si scende nel «carattere in piccolo», e questa riga serve proprio a non
   far leggere male il numero più grande della pagina. Grigio #4b5563 su #f8f9fa
   = 7,2:1. Nessun maiuscoletto: la scheda prodotto non ne usa. */
.dcfg-pan-tot-k { display:block; font-size:12px; color:#4b5563; margin-bottom:1px; }
/* Involucro del blocco rate: nessun aspetto proprio, lo porta
   .drako-pi-installments. Serve solo come bersaglio stabile per il JS che lo
   ridipinge al cambio di totale. */
.dcfg-pan-rata { min-width:0; }
.dcfg-pan-rata[hidden] { display:none; }
/* Il pulsante si veste da solo. Le regole di .dcfg-btn-cart sono agganciate al
   riepilogo e alla barra (`#drakoCfgSummary .dcfg-btn-cart`, `.dcfg-bar ...`):
   qui non matchano, e senza queste righe resterebbe il bottone grigio di sistema
   su una pagina da 5.000 euro. Le classi restano per il JS, che aggancia
   [data-role="add"]. Bianco su #1c63ab = 6,14:1. */
.dcfg-pan-cta {
  margin-top:12px; width:100%; height:44px;
  display:flex; align-items:center; justify-content:center; gap:7px;
  background:#1c63ab; color:#fff; border:0; border-radius:7px;
  font-family:'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  font-size:14px; font-weight:600; cursor:pointer;
  transition:background .15s;
}
.dcfg-pan-cta:hover { background:#154e88; }
.dcfg-pan-cta:focus-visible { outline:2px solid var(--drako-focus-ring, #1c63ab); outline-offset:2px; }
.dcfg-pan-cta[disabled],
.dcfg-pan-cta.is-disabled { background:#9aa5b6; cursor:not-allowed; }
/* Il motivo del blocco, scritto sotto il pulsante. 12 px — il minimo per un dato
   che cambia una decisione — e il rosso già in uso nel pannello: #b91c1c su
   bianco = 6,4:1. Nessun fondo: il pulsante grigio sopra è già il segnale, qui
   serve la frase. */
.dcfg-pan-blocco { margin:7px 0 0; font-size:12px; line-height:1.35; color:#b91c1c; }
.dcfg-pan-blocco[hidden] { display:none; }

/* ---------------------------------------------------------------------------
   Sotto i 1024: una colonna sola. Il pannello smette di essere appiccicato e
   diventa un blocco dopo la fascia informazioni; la barra sticky in alto torna
   visibile (la nasconde solo la media query oltre i 1024, in product_info.php).
   --------------------------------------------------------------------------- */
@media (max-width:1023px) {
  .drako-pi-wrapper.dcfg-2col {
    grid-template-columns:minmax(0,1fr);
    /* Il pannello PRIMA delle informazioni: da quando porta il nome della
       macchina, lasciarlo terzo metteva il titolo a 1.327 px dall'inizio —
       si scorreva la foto e tutto «come la costruiamo» prima di sapere che
       cosa si sta guardando. Così la pila è: foto → che cos'è, quanto costa,
       carrello → perché da noi. */
    grid-template-areas:"foto" "pannello" "info" "opz";
    row-gap:12px;
  }
  .dcfg-2col .drako-pi-gallery { width:100%; }
  .dcfg-pan { position:static; max-height:none; overflow:visible; }
}

/* Il titolo di categoria è passato da <span> a <h2> (15/08) per dare un indice
   al flusso del configuratore. Qui si neutralizzano i default dell'elemento:
   corpo, peso e colore restano quelli già definiti per .dcfg-cat-title. */
#drakoCfgCustomizer h2.dcfg-cat-title { margin:0; display:inline; font-size:inherit; }

/* QUANDO ARRIVA, nel riquadro prezzo (15/08)
   ---------------------------------------------------------------------------
   La data di consegna della build sta sopra la piega, dentro .drako-pi-price-block.
   Volutamente SOMMESSA: la cifra deve restare l'oggetto più forte del riquadro,
   qui serve un fatto leggibile, non un secondo richiamo che le compete contro.
   Testo #374151 su bianco = 10,31:1; l'icona prende il blu del marchio. */
.drako-pi-cfg-eta {
  display:flex; align-items:center; gap:7px;
  margin-top:6px; font-size:13px; line-height:1.4; color:#374151;
}
.drako-pi-cfg-eta svg { color:#1c63ab; flex:none; }
.drako-pi-cfg-eta strong { color:#141c26; font-weight:600; }
/* In tema scuro il riquadro prezzo diventa #2a2f38 (regola del negozio), e questa
   riga restava #374151 su quel fondo: 1,3:1, cioè invisibile. Stessi due grigi che
   il negozio usa lì dentro — #c8cdd5 su #2a2f38 = 7,8:1. Vale anche sulla scheda
   prodotto, dove la riga vive nello stesso riquadro. */
html[data-theme="dark"] .drako-pi-cfg-eta { color:#c8cdd5; }
html[data-theme="dark"] .drako-pi-cfg-eta strong { color:#f0f2f5; }

/* PRESTAZIONI ATTESE, sopra la piega (15/08)
   ---------------------------------------------------------------------------
   La striscia FPS nel buy box. È il posto dove si spende la baldanza di questa
   colonna: il resto del riquadro resta sommesso proprio perché questa parli.
   Contrasti verificati: numero #1c63ab su #f4f9ff = 5,80:1; etichette #4b5563
   su #f4f9ff = 7,14:1. La fascia colore (is-t144…is-t30) la mette il pittore
   dcfgFpsPaint, la stessa che colora la card della rail. */
.drako-pi-fps {
  display:flex; align-items:center; gap:14px;
  border:1px solid #c9dcef; border-radius:8px;
  background:linear-gradient(180deg,#f4f9ff,#eaf2fb);
  padding:10px 13px; margin:10px 0 12px;
}
.drako-pi-fps-main { display:flex; flex-direction:column; line-height:1; }
.drako-pi-fps-num {
  font-family:'Oswald','Arial Narrow','Segoe UI',sans-serif;
  font-size:30px; font-weight:600; color:#1c63ab; line-height:.95;
  font-variant-numeric:tabular-nums; letter-spacing:.005em;
}
.drako-pi-fps-unit,
.drako-pi-fps-lbl,
.drako-pi-fps-side span {
  font-size:9.5px; letter-spacing:.09em; text-transform:uppercase; color:#4b5563;
  margin-top:3px;
}
.drako-pi-fps-sep { width:1px; align-self:stretch; background:#c9dcef; flex:none; }
.drako-pi-fps-side { display:flex; flex-direction:column; line-height:1; }
.drako-pi-fps-side b {
  font-family:'Oswald','Arial Narrow','Segoe UI',sans-serif;
  font-size:20px; font-weight:600; color:#3b4657; line-height:.95;
  font-variant-numeric:tabular-nums;
}
.drako-pi-fps-ctx { display:flex; flex-direction:column; min-width:0; }
.drako-pi-fps-ctx .drako-pi-fps-lbl { margin:0 0 4px; }
.drako-pi-fps-game {
  display:inline-flex; align-items:center; gap:5px;
  font-size:12px; font-weight:600; color:#1c63ab;
  border:1px solid #c9dcef; background:#fff; border-radius:100px; padding:3px 9px;
  max-width:100%; overflow:hidden;
}
.drako-pi-fps-game b { font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.drako-pi-fps-res { color:#4b5563; font-weight:400; flex:none; }
.drako-pi-fps-game img { border-radius:3px; flex:none; }

/* Fascia di prestazione: la stessa scala della card della rail, applicata al
   bordo sinistro perché qui non c'è spazio per un fondo colorato senza mettersi
   a competere col prezzo. */
.drako-pi-fps.is-t144 { border-left:3px solid #15803d; }
.drako-pi-fps.is-t100 { border-left:3px solid #1c63ab; }
.drako-pi-fps.is-t60  { border-left:3px solid #b45309; }
.drako-pi-fps.is-t30  { border-left:3px solid #b91c1c; }

@media (prefers-reduced-motion: no-preference) {
  .drako-pi-fps.is-bump .drako-pi-fps-num { animation:drakoPiFpsBump .42s ease-out; }
  @keyframes drakoPiFpsBump { 0%{transform:scale(1)} 40%{transform:scale(1.08)} 100%{transform:scale(1)} }
}

@media (max-width:560px) {
  .drako-pi-fps { gap:10px; padding:9px 11px; }
  .drako-pi-fps-num { font-size:26px; }
  .drako-pi-fps-ctx { flex:1 1 100%; }
}

/* ============================================================================
   VISTA ELENCO — LA RIGA PRODOTTO SI INCOLONNA (16/08)
   ============================================================================
   Il guadagno non è estetico: è che le righe si CONFRONTANO. Prima ogni riga era
   una frase da rileggere da capo — nome lungo di catalogo, marca ripetuta,
   codice, disponibilità infilata sotto il nome — e per scegliere fra dodici
   processori l'occhio doveva cercare ogni volta lo stesso dato in un punto
   diverso. Ora identità, sigle, disponibilità, FPS e prezzo stanno su colonne
   fisse: si scorre in verticale.

   Tre decisioni prese con Alex, da non ribaltare senza motivo:
   · dove gli FPS non ci sono (tutto ciò che non è processore o scheda video) la
     colonna NON si riempie con altro: resta vuota;
   · gli FPS restano un DELTA rispetto alla scelta corrente, non un assoluto;
   · le sigle vengono dalle chiavi canoniche dove esistono (cpu, gpu, ram,
     storage); altrove si ripiega sulla coda del nome, non si inventa.

   Marca e codice spariscono DALL'ELENCO — non dalla scheda: la marca è già la
   prima parola del nome e il codice, in un selettore, è rumore. Restano nella
   vista a card e nella scheda tecnica dietro la (i). */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt { gap:13px; padding:9px 14px; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-img { width:50px; height:50px; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-brand,
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-code,
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-rating { display:none; }

/* Il corpo diventa due colonne: identità a sinistra, disponibilità incolonnata.
   126 px è la misura di «Non disponibile», la più lunga delle etichette. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-body {
  display:grid; grid-template-columns:minmax(0,1fr) 126px;
  align-items:center; column-gap:14px; row-gap:1px;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-name  { grid-column:1; grid-row:1; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-specs { grid-column:1; grid-row:2; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-stock { grid-column:2; grid-row:1 / 3; justify-self:start; margin:0; }
/* La collocazione degli avvisi in vista elenco sta in fondo al foglio, nel
   blocco "AVVISI DENTRO L'ELENCO: RIGHE DI TESTO, NON RIQUADRI" (18/08).
   Qui stava la versione a fascia intera del 17/08: il riquadro rosso finiva
   nella colonna della disponibilita' (126 px, tre capoversi, riga da 60 a 99
   px) e la prima correzione gli aveva dato la riga intera. Pesava comunque
   troppo per un elenco, e adesso e' una riga di testo. */

/* Modello sopra, sigle sotto. I due pezzi li scrive il PHP dentro
   .drako-pcb2-opt-name tenendo la virgola nel secondo, così `textContent` resta
   quello di prima: il JS del pannello rilegge quel nodo. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-name { display:block; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .dcfg-opt-tit {
  display:block; font-size:13.5px; font-weight:700; line-height:1.25; color:#3a3a3a;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .dcfg-opt-sub {
  display:block; font-size:12px; font-weight:400; line-height:1.3; color:#6b7280;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
/* Con le sigle canoniche la coda del nome è ridondante: si tace. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-body.has-sigle .dcfg-opt-sub { display:none; }

/* Le sigle: una riga, separate da punto medio, non pastiglie. Le pastiglie
   disegnavano tre riquadri per tre parole e rubavano peso al nome. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-specs {
  display:flex; flex-wrap:nowrap; align-items:baseline; gap:0;
  font-size:12px; color:#4b5563; min-width:0; overflow:hidden;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-specs span {
  background:none; border:0; padding:0; font-size:12px; color:#4b5563; white-space:nowrap;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-specs span + span::before {
  content:"·"; margin:0 6px; color:#9aa5b6;
}
/* La disponibilità è un dato di colonna, non una nota sotto il nome. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-stock { font-size:12.5px; line-height:1.2; }

/* ⚠️ LA COLONNA VUOTA DEVE RESTARE VUOTA, NON SPARIRE (16/08)
   «Dove gli FPS non ci sono non riempiamo» non vuol dire lasciar collassare lo
   spazio: senza il nodo FPS il blocco prezzo passava da 190 a 94 px e la colonna
   della disponibilità di quelle righe scivolava 96 px più a destra — misurato,
   proprio sulle righe che il dato non ce l'hanno. Le colonne tengono la misura,
   la casella resta bianca.
   ⚠️ `min-width` NON basta, e il perché è istruttivo: con 190 di minimo la riga
   «− 127 FPS» (tre cifre) sfonda di 6 px e ruba quei 6 px al corpo, spostando la
   disponibilità solo su QUELLA riga — misurato, una riga su otto disallineata.
   Una colonna si tiene con una misura FISSA: 210 = 84 (FPS a tre cifre) + 18 +
   108 (prezzo a quattro cifre). Il contenuto più corto lascia spazio, non lo
   toglie a nessuno. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-price { flex:0 0 210px; min-width:210px; }

/* Il pallino di scelta, che nell'elenco mancava del tutto.
   Nella vista a card la selezione la dichiara la cornice verde e il pallino è
   spento; in un elenco di righe tutte uguali serve il segno esplicito, ed è
   quello che chiunque si aspetta da una lista di opzioni. Il riempimento blu su
   .is-selected lo porta già la regola generale (riga 66). */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-radio {
  display:block; position:relative; flex:0 0 auto;
  width:18px; height:18px; border-radius:50%;
  border:2px solid #c9ced6; background:#fff;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt:hover .drako-pcb2-opt-radio { border-color:#9aa5b6; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-selected .drako-pcb2-opt-radio { border-color:#1c63ab; }

/* Anche la quantità è una colonna, e va riservata su TUTTE le righe.
   Il selettore ± esiste su ogni opzione degli slot multipli ma si mostra solo
   sulla riga scelta: senza una misura fissa, quella riga era larga 96 px in più
   e la colonna della disponibilità ballava — misurato sulla RAM, tre posizioni
   diverse in una sola categoria. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-actions { flex:0 0 96px; min-width:96px; display:flex; justify-content:flex-end; }

/* ⚠️ IL CORPO DEVE PARTIRE DA ZERO, NON DAL PROPRIO CONTENUTO
   `flex:1 1 auto` (regola storica) dà a ogni riga una base pari alla larghezza
   del suo testo: nomi lunghi = corpo largo, nomi corti = corpo stretto, e le
   colonne di destra ballano di riga in riga. Misurato nella stessa categoria:
   corpi da 590, 699 e 922 px. Con base 0 tutte le righe ricevono la stessa
   quota e le colonne stanno ferme; `min-width:0` è la coppia obbligatoria,
   altrimenti un figlio flex non scende mai sotto il proprio contenuto e
   l'ellissi non scatta. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-body { flex:1 1 0; min-width:0; }
/* Niente a capo: la riga è una riga. Con `flex-wrap:wrap` (regola storica per i
   countdown) un nome lungo mandava il blocco prezzo sotto, e quella riga
   diventava alta il doppio. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt { flex-wrap:nowrap; }

/* ============================================================================
   VISTA ELENCO — RIFINITURE (16/08, seconda tornata su riscontro di Alex)
   ============================================================================ */

/* 1 — SELEZIONE: bastano il pallino e il bordo.
   Il fondo verde su tutta la riga faceva due volte lo stesso lavoro e, in una
   lista dove più righe possono essere scelte insieme (RAM, dischi), riempiva
   mezza schermata di verde. Restano il bordo e il pallino blu, che sono il
   segno che chiunque cerca in un elenco di opzioni. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-selected { background:#fff; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-selected { background:transparent; }

/* 2 — IL PALLINO AL CENTRO DELLA SUA COLONNA.
   `align-items:center` centra rispetto alla riga, ma il pallino è alto 18 px in
   una riga di 74: senza una colonna sua restava incollato al testo e sembrava
   sfalsato di poco, che è il modo peggiore di essere sbagliato. Larghezza fissa
   e centratura esplicita: sta al centro dello spazio che gli spetta, sempre.

   ⚠️ Lo scarto NON era di allineamento: la regola della vista a card mette il
   pallino in `position:absolute; top:10px; right:10px`, e la riga d'elenco lo
   riportava a `static` **senza azzerare `top`**. Risultato: `position:relative`
   ereditata da altrove più un `top:10px` orfano lo spingevano 10 px sotto il
   centro — misurato, centro a 47 su una riga la cui metà è 37. Uno scarto
   piccolo e costante è il modo peggiore di sbagliare: si vede che qualcosa non
   torna senza capire cosa. Si azzerano gli offset, non si compensa. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-radio {
  flex:0 0 18px; align-self:center; margin:0;
  /* ⚠️ `relative`, NON `static`: il riempimento blu della selezione è un
     `::after` in `position:absolute; inset:3px`, che senza un antenato posizionato
     si àncora alla RIGA — e la riga scelta diventava un'ellisse blu larga quanto
     tutta la lista. Visto in schermata, non nelle misure: il rettangolo del
     pallino era corretto lo stesso. Serve `relative` per contenere il figlio e
     offset `auto` per non spostarlo. */
  position:relative; top:auto; right:auto; bottom:auto; left:auto;
}

/* 3 — «PROMO» NON SOPRA IL PALLINO.
   Era in posizione assoluta a 6 px dall'angolo, cioè esattamente sopra il
   pallino di scelta: copriva il comando con un'etichetta decorativa, e sulla
   prima riga li vedevi sovrapposti. Nell'elenco la promozione riguarda il
   PREZZO, quindi va nella colonna del prezzo, sopra la cifra: nessuna
   sovrapposizione, e la lettura resta «quanto costa e perché».

   ⚠️ Resta in posizione ASSOLUTA, non diventa una casella della riga: come
   figlio flex occupava larghezza solo sulle righe che ce l'hanno, e quelle
   righe scivolavano di 70 px rispetto alle sorelle — misurato, due posizioni
   della colonna disponibilità nella stessa categoria. Una decorazione non deve
   poter spostare una colonna.

   Sta **prima del prezzo** e alla sua altezza, non appeso all'angolo: il badge
   qualifica la cifra, quindi si legge nell'ordine in cui la si legge. Àncora il
   blocco prezzo (che qui diventa `relative`) e resta assoluto dentro di esso:
   così vive nello spazio vuoto a sinistra della cifra — che c'è sempre, perché
   la colonna è larga 210 px fissi e il contenuto è allineato a destra — senza
   spostare di un pixel né gli FPS né il prezzo. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-price { position:relative; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-badges {
  top:50%; bottom:auto; right:auto; left:16px;
  transform:translateY(-50%);
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-badge {
  font-size:9px; padding:2px 6px; letter-spacing:.04em;
}

/* 4 — SEPARATORI VERTICALI fra le colonne, come nel modello di riferimento.
   Non sono decorazione: in una tabella senza righe orizzontali sono ciò che
   dichiara che quelle sono colonne e non testo che capita lì. Tinta tenue, più
   chiara del bordo della riga, o disegnerebbero una griglia da foglio di
   calcolo. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-stock {
  border-left:1px solid #eceff3; padding-left:16px; align-self:stretch;
  display:flex; align-items:center;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-price {
  border-left:1px solid #eceff3; padding-left:16px; align-self:stretch;
  align-items:center;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-delta {
  border-left:1px solid #eceff3; padding-left:18px;
  display:flex; align-items:center; justify-content:flex-end; align-self:stretch;
}
/* Senza FPS il separatore del prezzo sarebbe doppio, appiccicato all'altro. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-price > .drako-pcb2-opt-delta:first-child {
  border-left:0; padding-left:0;
}

/* 5 — LA (i) FUORI DALLA FOTO, in fondo alla riga.
   Sulla miniatura da 50 px copriva il prodotto ed era il primo bersaglio che il
   dito incontrava: un comando secondario messo davanti a quello principale.
   Resta dov'è nel DOM (spostarla vorrebbe dire toccare anche la vista a card, e
   là sulla foto sta bene): qui si àncora al bordo destro della riga, che ha una
   striscia riservata apposta. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt { padding-right:46px; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-info {
  position:absolute; top:50%; right:10px; bottom:auto; left:auto;
  transform:translateY(-50%);
  width:24px; height:24px; border-radius:50%;
  background:#f2f4f7; border:1px solid #e3e7ee; color:#6b7280;
  display:flex; align-items:center; justify-content:center;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-info:hover {
  background:#e9eef5; border-color:#c9d9ea; color:#1c63ab;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-info > span { font-size:12px; font-weight:700; }

/* La (i) si àncora alla RIGA, quindi la miniatura non deve fare da riferimento:
   con `position:relative` sull'involucro foto il bottone restava incollato lì e
   il `right:10px` lo metteva a 960 px dal bordo destro della riga — misurato.
   Nella vista a card l'involucro resta relativo, che è dove serve. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-imgwrap { position:static; }

/* «Incluso» (e la cifra, e gli FPS) al centro dell'altezza della riga.
   La colonna prezzo aveva `align-items:baseline !important` da una regola
   storica: i figli si allineavano alla linea di base del testo, non al centro,
   e su una riga alta 74 px l'etichetta usciva 6 px sotto il mezzo — misurato,
   centro a 43 contro 37. L'`!important` qui non è pigrizia: è l'unico modo di
   scavalcare un `!important` esistente senza riscrivere il blocco storico, che
   serve ancora alla vista a card. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-price { align-items:center !important; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-delta,
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-fps { align-self:center !important; }

/* ⚠️ E il colpevole vero del disallineamento verticale: `margin-top:12px` sul
   blocco prezzo (riga 558, nato per la vista a CARD, dove serve a staccare il
   prezzo dal nome). Con `align-self:stretch` quel margine sposta in basso tutta
   la colonna: il blocco andava da 22 a 64 in una riga alta 74, centro a 43
   invece di 37. Le altre colonne, senza margine, erano a 37 — ecco perché il
   disallineamento si vedeva solo sul prezzo. Nell'elenco il margine non ha
   ragione di esistere: non c'è nessun nome sopra da cui staccarsi. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-price { margin-top:0; }

/* ⚠️ SU TELEFONO LE COLONNE NON CI STANNO, E VANNO SCIOLTE (16/08)
   ---------------------------------------------------------------------------
   Misurato a 375 px: il selettore ± finiva a x=465, cioè **90 px fuori dallo
   schermo**, e siccome la pagina non scorre in orizzontale i due pulsanti erano
   irraggiungibili. Il conto non torna e non può tornare: 14+18+13+50+13 di
   identità, poi 210 fissi di prezzo, 96 di quantità e 46 di striscia (i) fanno
   460 px prima ancora del nome.
   Sotto gli 860 px le misure fisse cadono e la riga torna a comporsi da sé: la
   disponibilità rientra sotto il nome, prezzo e quantità prendono lo spazio che
   serve. Si perde l'incolonnamento, che a quella larghezza non è comunque
   possibile; non si perde nessun dato e nessun comando. */
@media (max-width:860px) {
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt { padding-right:40px; gap:10px; }
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-body {
    grid-template-columns:minmax(0,1fr); row-gap:2px;
  }
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-stock {
    grid-column:1; grid-row:3; border-left:0; padding-left:0; align-self:start;
  }
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-price {
    flex:0 1 auto; min-width:0; padding-left:10px; gap:10px !important;
  }
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-delta { min-width:0 !important; padding-left:0; border-left:0; }
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-fps   { min-width:0 !important; }
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-actions { flex:0 0 auto; min-width:0; }
  /* Il badge torna all'angolo: nella colonna prezzo stretta non c'è più il vuoto
     a sinistra della cifra in cui viveva. */
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-badges {
    position:absolute; top:6px; left:6px; right:auto; transform:none;
  }
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-info { right:8px; }
}

/* ============================================================================
   QUATTRO CORREZIONI DALL'ANALISI DELLA PAGINA (16/08)
   ============================================================================ */

/* 1 — RIPRISTINA LA CONFIGURAZIONE ORIGINALE.
   Link e non pulsante: sta accanto a una CTA da 5.000 € e non deve poterle
   somigliare. Grigio a riposo, blu al passaggio — la stessa promessa di ogni
   altro link del pannello. 12 px, il minimo del negozio per un comando scritto. */
.dcfg-pan-reset {
  display:inline-flex; align-items:center; gap:6px;
  margin:10px 0 0; padding:4px 0;
  font-size:12px; font-weight:600; color:#4b5563; text-decoration:none;
}
.dcfg-pan-reset:hover { color:#1c63ab; text-decoration:underline; }
.dcfg-pan-reset:focus-visible { outline:2px solid var(--drako-focus-ring, #1c63ab); outline-offset:2px; border-radius:4px; }
.dcfg-pan-reset svg { flex:0 0 auto; }

/* 2 — «PROMO»: bianco su #e65100 dava 3,79 (serve 4,5, e a 9 px è testo piccolo
   a tutti gli effetti). #c2410c porta il rapporto a **5,18** restando lo stesso
   arancione bruciato: cambia la luminosità, non la tinta. */
#drakoCfgCustomizer .drako-pcb2-opt-badge.is-promo { background:#c2410c; }

/* 3 — IL SELETTORE CARD/ELENCO era 31×21: sotto il minimo di 24×24, e ripetuto
   su ogni categoria. È il comando che decide come si legge tutta la lista.
   Il tetto dei 40 px c'era già, ma **solo dentro la media query del telefono**
   (riga 3224): su desktop non l'ha mai raggiunto nessuno. */
#drakoCfgCustomizer .dcfg-view-btn { min-height:32px; min-width:38px; padding:6px 11px; }
/* Anche i ± della quantità erano 30×20. */
#drakoCfgCustomizer .dcfg-qbtn { min-width:30px; min-height:26px; }

/* 4 — SU TELEFONO LE CATEGORIE NASCONO CHIUSE.
   La pagina era alta 23.504 px: sessantadue schermate di scorrimento per
   arrivare in fondo. Chiuse, si apre solo quella su cui si sta decidendo.
   Il chevron ora esiste su tutte le categorie (serve per riaprirle), ma su
   DESKTOP resta visibile solo dove c'era prima — le opzionali — così la scheda
   grande non cambia di una virgola. */
@media (min-width:861px) {
  #drakoCfgCustomizer .dcfg-cat:not([data-optional="1"]) .dcfg-cat-collapse { display:none; }
}

/* ============================================================================
   TEMA SCURO — LA RESA DEI CONTI DEL RIFACIMENTO 15-16/08 (17/08)
   ============================================================================
   Il tema scuro del configuratore è di luglio: ~470 righe `[data-theme=dark]`
   scritte a mano, perché questo foglio non ha un livello di token da ribaltare.
   Il rifacimento di ferragosto — colonna `.dcfg-2col`, pannello `.dcfg-pan`,
   vista elenco — ha aggiunto un livello NUOVO di colori chiari, e quelle regole
   di luglio le scavalca per specificità:

     · `.dcfg-2col #drakoCfgCustomizer .dcfg-cat-head` (1,3,1) con `!important`
       batte `html[data-theme=dark] #drakoCfgCustomizer .dcfg-cat-head` (1,2,1):
       intestazione azzurra con sopra il testo chiaro del tema scuro, 1,02:1.
       Il nome della categoria era invisibile su TUTTE e dodici.
     · `.dcfg-cat-grid.is-list .dcfg-opt-tit` nasce `#3a3a3a` — grigio scuro su
       card scura, 1,33:1: i nomi dei prodotti, cioè la sola cosa che si legge
       in un elenco, sparivano su ventitré righe.
     · `.dcfg-pan` non lo pesca nessuna regola generale (né `-panel` né `-card`
       stanno in `dcfg-pan`): restava una colonna BIANCA alta quanto la pagina,
       con sopra il testo chiaro ereditato dal tema. Totale, rata e componenti
       a 1,6:1.

   Misurato in pagina, non a occhio: contrasto calcolato sul fondo dipinto
   davvero (gradienti compresi), soglia 4,5:1.

   ⚠️ NESSUN VALORE NUOVO. Tutto quello che segue è scritto con i token del tema
   scuro del SITO (`--drako-*`, dichiarati in stylesheet.css su
   `[data-theme="dark"]`), non con esadecimali scelti qui:

     superfici   --drako-bg-surface (cornici) · --drako-bg-elevated (rilievo)
                 --drako-bg-input (campi) · --drako-bg-hover
     bordi       --drako-border-strong (visibile) · --drako-border (appena)
     inchiostri  --drako-text · --drako-text-body · --drako-text-secondary
                 --drako-text-muted
     azione      --drako-accent + --drako-text-on-accent · --drako-link
     stati       --drako-success · --drako-warning · --drako-error

   Il vantaggio non è di ordine: se il sito ritocca la sua scala di grigi, il
   configuratore la segue senza che nessuno lo tocchi. Le ~470 righe di luglio
   restano invece a esadecimali propri — vanno convertite, ma è un giro a sé.

   DUE ECCEZIONI DICHIARATE, e il perché:
   · `--drako-error` come TESTO fa 4,0:1 sulle superfici scure, sotto la soglia.
     Il sito stesso non lo usa così: nel suo `.errorbox` al buio il testo è
     neutro e lo stato lo porta il BORDO. Si fa uguale.
   · Il fondo rosso pieno dell'avviso di incompatibilità (regola di luglio,
     `.drako-pcb2-opt-incompat-msg`) NON si tocca: il sito al buio non ha
     superfici di stato, ma qui quel rosso dice "questo pezzo non ci sta" in un
     configuratore. Smorzarlo è una decisione da prendere apposta, non un
     effetto collaterale di un riordino di colori.
   ============================================================================ */

/* ---- 1. Intestazione di categoria (colonna 2col) -------------------------
   In chiaro la fascia e' una BANDA TINTA (#e9f0f8) con la barretta blu: e'
   quella tinta a dire dove comincia una sezione, perche' pagina e card sono
   entrambe bianche. Al buio con --drako-bg-surface la fascia prendeva lo
   stesso grigio delle card e la sezione spariva: restavano un testo e una
   barretta sospesi nel vuoto.
   Provato --drako-accent-soft (#1a2530, cioe' il token che in chiaro vale
   proprio quella tinta): al buio e' PIU' SCURO della tela e la fascia si
   vedeva ancora meno. La traduzione letterale del colore non e' la traduzione
   del rapporto: in chiaro la banda si stacca perche' e' l'unica cosa non
   bianca, al buio deve staccarsi ALZANDOSI. --drako-bg-elevated e' il gradino
   sopra le card (#2a2f38 contro #22262e) e la barretta d'accento resta a dire
   di che sezione si tratta.
   Serve la doppia condizione della regola chiara: pari specificita' e la
   dichiarazione forzata. */
html[data-theme="dark"] .dcfg-2col #drakoCfgCustomizer .dcfg-cat-head {
  background:var(--drako-bg-elevated) !important;
  border-left-color:var(--drako-accent) !important;
}

/* ---- 2. Vista elenco: i tre livelli di testo della riga ------------------ */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .dcfg-opt-tit { color:var(--drako-text); }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .dcfg-opt-sub,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-specs,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-specs span { color:var(--drako-text-secondary); }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-specs span + span::before { color:var(--drako-text-muted); }
/* «Incluso» nasce `#64748b !important` (riga 1182): senza !important resta a
   3,19:1, ed è l'etichetta che dice quale pezzo NON si paga. */
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-delta.is-included { color:var(--drako-text-secondary) !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-rating-num { color:var(--drako-text-secondary); }
/* I separatori fra le colonne prezzo/FPS: righe chiare su fondo scuro. */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-price,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-delta { border-left-color:var(--drako-border-strong); }

/* Il pallino di scelta, nato bianco con bordo chiaro. */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-radio {
  background:var(--drako-bg-input);
  border-color:var(--drako-border-strong);
}
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt:hover .drako-pcb2-opt-radio { border-color:var(--drako-text-muted); }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-selected .drako-pcb2-opt-radio { border-color:var(--drako-accent); }

/* La (i) di fine riga: il blocco del 16/08 la ridipinge chiara e batte la
   regola scura di luglio (riga 126) per specificità. Il `color` va imposto
   perché stylesheet.css mette `color:#fff !important` su ogni <button>. */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-info {
  background:var(--drako-bg-elevated);
  border-color:var(--drako-border-strong);
  color:var(--drako-text-body) !important;
}
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-info:hover {
  background:var(--drako-accent);
  border-color:var(--drako-accent);
  color:var(--drako-bg-surface) !important;
}

/* ---- 3. L'avviso di incompatibilità -------------------------------------
   Sul fondo rosso di luglio ci finivano l'ambra e l'azzurro dei link, 1,73:1
   e 2,99:1. Su quel rosso l'unico inchiostro che tiene è quello primario. */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-incompat-ico { color:var(--drako-text) !important; }
/* Il colore dei link al buio arriva da stylesheet.css e vale per tutto il sito:
   è tarato sul fondo grafite, non sul rosso. */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-fix-link { color:var(--drako-text) !important; text-decoration:underline; }
/* «Spedizione entro…»: ambra scura su card scura. */
html[data-theme="dark"] #drakoCfgCustomizer .pdm-stock-incoming { color:var(--drako-warning); }

/* ---- 4. Il pannello di destra ------------------------------------------- */
html[data-theme="dark"] .dcfg-pan {
  background:var(--drako-bg-surface);
  border-color:var(--drako-border-strong);
  color:var(--drako-text-body);
}
html[data-theme="dark"] .dcfg-pan .drako-pi-title,
html[data-theme="dark"] .dcfg-pan .dcfg-cnav-hero-name,
html[data-theme="dark"] .dcfg-pan .dcfg-nome-testa,
html[data-theme="dark"] .dcfg-pan .dcfg-nome-val,
html[data-theme="dark"] .dcfg-pan .dcfg-pan-nome,
html[data-theme="dark"] .dcfg-pan .dcfg-pan-val,
html[data-theme="dark"] .dcfg-pan .drako-pi-inst-text strong { color:var(--drako-text); }
html[data-theme="dark"] .dcfg-pan .dcfg-pan-qta,
html[data-theme="dark"] .dcfg-pan .dcfg-pan-tot-k,
html[data-theme="dark"] .dcfg-pan .drako-pi-installments,
html[data-theme="dark"] .dcfg-pan .drako-pi-inst-row,
html[data-theme="dark"] .dcfg-pan .drako-pi-inst-text { color:var(--drako-text-body); }
html[data-theme="dark"] .dcfg-pan .dcfg-pan-ic { color:var(--drako-text-muted); }
/* Le due righe in caratteri piccoli (IVA e TAN/TAEG) prendono --drako-text-faint
   dal tema globale: è un grigio tarato sul fondo pagina, non sul pannello, e
   qui scende a 2,19:1. Sono l'informazione obbligatoria del prezzo: si legge.
   Si sale di un gradino nella STESSA scala, non si inventa un grigio. */
html[data-theme="dark"] .dcfg-pan .drako-pi-inst-sub,
html[data-theme="dark"] .dcfg-pan .drako-pi-vat { color:var(--drako-text-muted) !important; }
html[data-theme="dark"] .dcfg-pan .drako-pi-brand-link,
html[data-theme="dark"] .dcfg-pan a { color:var(--drako-link) !important; }
html[data-theme="dark"] .dcfg-pan .drako-pi-vat a { color:#7fb2ff !important; }
html[data-theme="dark"] .dcfg-pan .dcfg-pan-righe { border-top-color:var(--drako-border-strong); }
html[data-theme="dark"] .dcfg-pan .dcfg-pan-compat {
  background:var(--drako-bg-elevated);
  border-color:var(--drako-border);
  color:var(--drako-text-body);
}
/* Stato KO: superficie neutra e BORDO che parla, come fa il sito nel suo
   `.errorbox` al buio. Il testo resta l'inchiostro primario perché
   --drako-error come testo si ferma a 4,0:1. */
html[data-theme="dark"] .dcfg-pan .dcfg-pan-compat.is-ko,
html[data-theme="dark"] .dcfg-pan .dcfg-pan-riga.has-error .dcfg-pan-salta {
  background:var(--drako-bg-elevated);
  border-color:var(--drako-error);
  color:var(--drako-text);
}
html[data-theme="dark"] .dcfg-pan .dcfg-pan-riga.has-error .dcfg-pan-nome,
html[data-theme="dark"] .dcfg-pan .dcfg-pan-riga.has-error .dcfg-pan-ic,
html[data-theme="dark"] .dcfg-pan .dcfg-pan-blocco { color:var(--drako-text); }
html[data-theme="dark"] .dcfg-pan .dcfg-pan-riga.has-warn .dcfg-pan-nome,
html[data-theme="dark"] .dcfg-pan .dcfg-pan-riga.has-warn .dcfg-pan-ic { color:var(--drako-warning); }
html[data-theme="dark"] .dcfg-pan .dcfg-pan-cta[disabled],
html[data-theme="dark"] .dcfg-pan .dcfg-pan-cta.is-disabled { background:var(--drako-bg-hover); }

/* Il badge FPS del pannello. Il blocco del 15/08 lo ridipinge chiaro con
   `!important` e scavalca la regola scura di luglio (riga 1908). */
html[data-theme="dark"] .dcfg-pan .dcfg-cnav-fps-badge {
  background:var(--drako-bg-elevated) !important;
  background-image:none !important;
  border-color:var(--drako-border-strong) !important;
}
html[data-theme="dark"] .dcfg-pan .dcfg-cnav-fps-bot { background:var(--drako-bg-surface); border-color:var(--drako-border-strong); }
html[data-theme="dark"] .dcfg-pan .dcfg-cnav-fps-badge:hover .dcfg-cnav-fps-bot { border-color:var(--drako-accent); }
html[data-theme="dark"] .dcfg-pan .dcfg-cnav-fps-num { color:var(--drako-text) !important; }
html[data-theme="dark"] .dcfg-pan .dcfg-cnav-fps-unit,
html[data-theme="dark"] .dcfg-pan .dcfg-cnav-fps-low small,
html[data-theme="dark"] .dcfg-pan .dcfg-cnav-fps-res,
html[data-theme="dark"] .dcfg-pan .dcfg-cnav-fps-preset,
html[data-theme="dark"] .dcfg-pan .dcfg-cnav-fps-verdetto { color:var(--drako-text-secondary) !important; }
html[data-theme="dark"] .dcfg-pan .dcfg-cnav-fps-low b,
html[data-theme="dark"] .dcfg-pan .dcfg-cnav-fps-game { color:var(--drako-text) !important; }
html[data-theme="dark"] .dcfg-pan .dcfg-cnav-fps-preset::before { color:var(--drako-text-muted) !important; }
html[data-theme="dark"] .dcfg-pan .dcfg-cnav-fps-chev { color:var(--drako-link) !important; }
/* I verdetti per fascia: verde/ambra/rosso del sito, non tinte nuove. */
html[data-theme="dark"] .dcfg-pan .is-t144 .dcfg-cnav-fps-verdetto,
html[data-theme="dark"] .dcfg-pan .is-t100 .dcfg-cnav-fps-verdetto { color:var(--drako-success) !important; }
html[data-theme="dark"] .dcfg-pan .is-t60 .dcfg-cnav-fps-verdetto { color:var(--drako-warning) !important; }
html[data-theme="dark"] .dcfg-pan .is-t30 .dcfg-cnav-fps-verdetto { color:var(--drako-text) !important; }

/* Il riquadro FPS compatto (.dcfg-pan-fps). Il gradiente azzurro chiaro serviva
   a dare volume su bianco: al buio è una sfumatura che nessuno vede. */
html[data-theme="dark"] .dcfg-pan-fps {
  background:var(--drako-bg-elevated);
  background-image:none;
  border-color:var(--drako-border-strong);
}
html[data-theme="dark"] .dcfg-pan-fps-main b { color:var(--drako-text); }
html[data-theme="dark"] .dcfg-pan-fps-low b { color:var(--drako-text-body); }
html[data-theme="dark"] .dcfg-pan-fps span,
html[data-theme="dark"] .dcfg-pan-fps-lbl,
html[data-theme="dark"] .dcfg-pan-fps-game span { color:var(--drako-text-secondary); }
html[data-theme="dark"] .dcfg-pan-fps-game { color:var(--drako-link); }
html[data-theme="dark"] .dcfg-pan-fps-sep { background:var(--drako-border-strong); }
html[data-theme="dark"] .dcfg-pan-fps.is-t144 { border-left-color:var(--drako-success); }
html[data-theme="dark"] .dcfg-pan-fps.is-t100 { border-left-color:var(--drako-accent); }
html[data-theme="dark"] .dcfg-pan-fps.is-t60 { border-left-color:var(--drako-warning); }
html[data-theme="dark"] .dcfg-pan-fps.is-t30 { border-left-color:var(--drako-error); }

/* ============================================================================
   UN BLOCCO SOLO IN FONDO AL PANNELLO (17/08/2026, scelta di Alex)
   ============================================================================
   Il totale viveva in un riquadro suo (.drako-pi-price-block: fondo, bordo,
   16 di padding, angoli), dentro il pannello che e' gia' un riquadro. Due
   cornici annidate per dire una cosa sola, e il pulsante d'acquisto lasciato
   FUORI dalla seconda: il prezzo sembrava un inserto e non la conclusione
   dell'elenco che sta appena sopra.
   Via la cornice interna. Totale, IVA, finanziamento, consegna e carrello
   scendono in fila nel pannello, separati dall'elenco da un filetto - lo
   stesso segno che gia' separa le righe dei componenti. Si recuperano anche
   i 32 px dei due padding, che sul pannello lungo non sono pochi.
   ============================================================================ */
/* Il fondo va imposto: al buio lo dipinge una regola generale gia' forzata
   (l'elenco [data-theme=dark] .drako-pi-card, .drako-pi-price-block... con
   --drako-bg-elevated !important), e senza questo il riquadro perdeva bordo e
   padding ma restava una macchia piu' chiara a mezz'aria - peggio di prima. */
.dcfg-pan .drako-pi-price-block {
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}
/* Il filetto sostituisce la cornice: divide senza incassare. */
.dcfg-pan .dcfg-pan-tot {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e3e7ee;
}
html[data-theme="dark"] .dcfg-pan .dcfg-pan-tot { border-top-color: var(--drako-border-strong); }


/* ============================================================================
   PAGINA DEI GENERATORI: IL PREZZO PRIMA DI TUTTO (.dcfg-gen, 17/08/2026)
   ============================================================================
   Vale SOLO su budget e gioco. Il configuratore manuale non ha questa classe e
   resta identico a prima.

   Perche' un rifacimento e non l'ennesima limatura: questa pagina usava il
   trittico della scheda prodotto - foto | informazioni | pannello d'acquisto -
   ma qui il prodotto NON ESISTE ANCORA. La foto grande era di un componente su
   dieci (il case), la colonna di mezzo era riempitivo, e il prezzo finiva ultimo
   perche' nel trittico il prezzo viene dopo l'identita'. Da li' i 677 px fra
   l'inizio del pannello e il totale: non un problema di altezze, l'ordine di
   lettura di un altro tipo di pagina. Ogni riduzione tentata o rompeva qualcosa
   o non bastava.

   Tre mosse, nessuna delle quali stringe un'altezza:
     1. via la foto grande (decisione del committente): la griglia passa da tre
        colonne a due e le categorie salgono;
     2. le medaglie prendono la larghezza liberata: da 72 px l'una in una colonna
        da 395 a ~190 in una da 990, cioe' leggibili in riga come chiesto;
     3. il pannello si rovescia: prima il totale e il carrello, poi i componenti.
        Su un configuratore il numero e' il dato primario - lo guardi cambiare
        mentre scegli - e siccome il pannello e' appiccicato ti segue lungo tutti
        i 7.600 px di opzioni.
   ============================================================================ */

/* --- 1. Due colonne invece di tre ---------------------------------------- */
.drako-pi-wrapper.dcfg-2col.dcfg-gen {
  grid-template-columns: minmax(0, 1fr) 370px;
  grid-template-areas:
    "info pannello"
    "opz  pannello";
}
.dcfg-gen .drako-pi-gallery { display: none; }

/* --- 2. Medaglie in riga, ora che c'e' la larghezza ----------------------- */
.dcfg-gen .drako-pi-bi-tiles {
  flex-direction: row;
  gap: 10px;
}
.dcfg-gen .drako-pi-bi-tile {
  flex: 1 1 0;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  padding: 12px 10px;
}
/* In colonna la dicitura torna a due righe: gli <br> non ci sono piu' nel PHP,
   quindi si lascia andare a capo da sola e si toglie il limite di riga. */
.dcfg-gen .drako-pi-bi-tile > span { flex: 0 1 auto; }
.dcfg-gen .drako-pi-bi-tile img { width: 40px; height: 40px; }
.dcfg-gen .drako-pi-bi-tile .drako-pi-bi-logo { width: auto; height: 28px; max-width: 100%; }
.dcfg-gen .drako-pi-bi-tile .drako-pi-bi-occt { width: auto; height: 38px; max-width: 100%; }
/* Il chevron torna in alto a destra: in colonna, a fondo riga, non avrebbe una
   riga sua e spingerebbe la dicitura. */
.dcfg-gen .drako-pi-bi-go { position: absolute; top: 6px; right: 7px; margin: 0; }
.dcfg-gen .drako-pi-buildinfo { margin: 0 0 4px; }

/* --- 3. LA SCHEDA LATERALE NON SI TOCCA ----------------------------------
   Qui era stato provato il pannello rovesciato (prima il totale, poi i
   componenti) per portare il prezzo sopra la piega. Il committente l'ha
   bocciato: la scheda d'acquisto resta identica al configuratore manuale -
   stessa sequenza, stessa foto del case, stesso posto del totale.
   Conseguenza da conoscere, non da nascondere: il totale torna a ~1.190 px
   dall'inizio pagina e su finestre basse non si vede senza scorrere. Il
   pannello e' pero' appiccicato e si ancora in basso, quindi rientra tutto in
   vista alla prima tacca di rotella.
   Se un domani si volesse il prezzo subito senza toccare la sequenza, la via
   che resta e' la barra appiccicata #drakoCfgBar: il totale ce l'ha gia',
   e in questo impianto a due colonne e' solo spenta. */
/* Sotto i 1100 px la griglia a due colonne non ci sta piu': tutto in colonna,
   e le medaglie tornano barre lunghe, che a quella larghezza si leggono meglio
   di cinque colonnine. */
@media (max-width: 1100px) {
  .drako-pi-wrapper.dcfg-2col.dcfg-gen {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "info" "pannello" "opz";
  }
  .dcfg-gen .drako-pi-bi-tiles { flex-direction: column; }
  .dcfg-gen .drako-pi-bi-tile { flex-direction: row; align-items: center; text-align: left; }
  .dcfg-gen .drako-pi-bi-go { position: static; margin-left: auto; }
}

/* --- 4. IL GENERATORE NON DEVE ACCAVALLARSI (17/08/2026) ------------------
   Misurato: il generatore finiva a 501, il riquadro sotto cominciava a 493 -
   otto pixel di sovrapposizione, e si vedevano. La colpa non era del
   generatore ma del riquadro sotto: `.drako-pi-wrapper` porta
   `margin:-20px -20px 24px` con `padding:20px`, cioe' sfonda di venti pixel
   per ogni lato. Serviva quando sopra non c'era niente; con il generatore
   sopra, quel -20 se lo mangia.
   Si azzera il margine ALTO del riquadro, solo sui generatori: gli altri tre
   lati restano come sono, perche' li' lo sfondamento serve ancora. Le due
   misure combaciano cosi' da sole - generatore e riquadro sotto hanno
   entrambi 1.395 px di contenuto, allineati a filo. */
/* Tre classi e forzatura: la regola da battere e' .drako-pi-wrapper.dcfg-on
   { margin:-20px -20px 24px !important } - due classi, gia' forzata. Fra due
   !important vince la specificita' piu' alta, non l'ordine. */
.drako-pi-wrapper.dcfg-on.dcfg-gen { margin-top: 0 !important; }

/* Meno spesso. `.drako-ab-embed` esiste solo sulle pagine dei generatori,
   quindi non serve altro ambito. Il riquadro blu aveva il respiro della pagina
   intera, dove era l'unica cosa a video; qui e' il primo di tre blocchi.
   La riga dei campi NON si tocca - cursore, cifra e pulsante hanno la misura
   che serve a essere usati - si toglie solo l'aria intorno. */
.drako-ab-embed .drako-ab-hero { padding: 11px 22px 12px; }
.drako-ab-embed .drako-ab-h1 { font-size: 19px; margin-bottom: 1px; }
.drako-ab-embed .drako-ab-sub { font-size: 12.5px; margin-bottom: 6px; }
.drako-ab-embed .drako-ab-kicker { margin-bottom: 4px; }

/* =====================================================================
   STRISCIA DEL DATO DI SEZIONE (17/08/2026)
   ---------------------------------------------------------------------
   Alimentatori, processore e scheda video portano un numero che conta
   piu' della fila di card sotto, e quel numero viveva SOLO dentro la
   modale della barra sticky: per leggerlo bisognava uscire dalla sezione
   che lo riguarda.
   La fascia riprende il vestito dell'intestazione di sezione - fondo
   azzurrino, barretta d'accento a sinistra, stesso raggio - ma e' piu'
   alta (14/16 contro 10/14, minimo 62px): li' c'e' un titolo, qui ci
   sono cifre, e le cifre hanno bisogno di respiro sotto e sopra.
   Due comportamenti diversi, e si vedono dal comando a destra:
     - psu       -> chevron in giu', la fascia si APRE sul pannello intero;
     - cpu / gpu -> freccia a destra, porta ALTROVE (la finestra FPS).
   Il colore della barretta e della pillola segue lo stato: verde/ambra/
   rosso per l'alimentazione, la stessa scala di fascia del badge FPS
   della rail per gli FPS. Il colore non e' mai l'unico portatore: la
   pillola dice a parole la stessa cosa (WCAG 1.4.1).
   ===================================================================== */
#drakoCfgCustomizer .dcfg-catstrip{
  margin:0 0 20px;
  border:0;
  border-left:5px solid #1c63ab;
  border-radius:0 6px 6px 0;
  background:#e9f0f8;
  overflow:hidden;
}
#drakoCfgCustomizer .dcfg-catstrip-psu{ display:block; }
#drakoCfgCustomizer .dcfg-catstrip-head,
#drakoCfgCustomizer .dcfg-catstrip-fps{
  display:flex; align-items:center; gap:10px 14px; flex-wrap:wrap;
  width:100%; box-sizing:border-box;
  padding:11px 16px; min-height:70px;
  -webkit-appearance:none; appearance:none;
  font:inherit; color:#1f2937; text-align:left; cursor:pointer;
  transition:background .15s ease;
}
/* ATTENZIONE - qui `border:0; background:transparent` NON puo' stare insieme
   alla riga qui sopra. La striscia FPS non CONTIENE il pulsante: LO E'. Porta
   entrambe le classi, e le due regole hanno la stessa specificita': vincendo
   l'ultima dichiarata, il vestito della fascia (fondo azzurrino + barretta
   d'accento) veniva cancellato dal reset del <button>. Misurato: fondo
   trasparente e barretta 0px sulle sezioni cpu e gpu.
   Il reset serve solo alla testata della striscia psu, che invece e' un
   pulsante DENTRO il contenitore.
   Stessa storia col MARGINE, e ci e ricascato: un margin:0 messo qui azzerava
   quello della fascia e le strisce FPS restavano incollate alle card sotto
   (misurato: 0 px, mentre l alimentazione ne aveva 16). Il margine lo decide
   il contenitore, il reset resta alla testata. */
#drakoCfgCustomizer .dcfg-catstrip-head{ margin:0; border:0; background:transparent; }
#drakoCfgCustomizer .dcfg-catstrip-head:hover,
#drakoCfgCustomizer .dcfg-catstrip-fps:hover{ background:rgba(255,255,255,.5); }
#drakoCfgCustomizer .dcfg-catstrip-head:focus-visible,
#drakoCfgCustomizer .dcfg-catstrip-fps:focus-visible{ outline:2px solid var(--drako-focus-ring, #1c63ab); outline-offset:-2px; }
/* Larghezza FISSA e non "quanto serve": e' l'etichetta a decidere dove
   comincia la fila delle caselle, e con due parole diverse ("Alimentazione",
   "FPS stimati") le file di due sezioni partivano da due ascisse diverse. */
#drakoCfgCustomizer .dcfg-catstrip-lbl{ flex:0 0 124px; font-size:15px; font-weight:800; letter-spacing:-.01em; }

/* Le caselle dei numeri: una scatoletta chiara per dato, cosi' si leggono
   come valori e non come una frase.
   GRIGLIA, NON FILA LIBERA - tre giri per arrivarci, e vale la pena scriverlo.
   Con le caselle larghe quanto il contenuto (flex) ognuna prendeva una misura
   diversa dalle altre e nessuna si allineava con la sezione sopra; con
   `space-between` per riempire la riga il vuoto si spostava fra una casella e
   l'altra ed erano piccole e sparse; facendole crescere a `flex:1 1 0` con il
   testo a sinistra diventavano scatoloni mezzi vuoti.
   `grid-auto-columns:1fr` risolve le tre cose insieme: colonne IDENTICHE fra
   loro, che si spartiscono tutta la larghezza rimasta, e con il contenuto
   centrato la casella e' piena a qualunque misura. Sommato all'etichetta di
   larghezza fissa, le caselle di alimentazione e FPS cadono sulle stesse
   ascisse: le fasce si leggono come una tabella, non come tre righe scollegate. */
/* Tre colonne dichiarate, non "quante ne arrivano": le fasce ne hanno sempre
   tre, e la terza porta TESTO mentre le prime due portano un numero di tre
   cifre. A parti uguali quella del testo era l'unica a troncare ("Counter-S..."),
   e le altre due restavano mezze vuote per solidarieta'. 1.45 e' la misura che
   fa entrare i titoli dei giochi e "CONSUMO STIMATO", che e' l'etichetta piu'
   lunga dell'alimentazione: le due fasce restano cosi' sulla stessa griglia. */
#drakoCfgCustomizer .dcfg-catstrip-facts{
  display:grid; grid-template-columns:1fr 1fr 1.45fr;
  align-items:stretch; gap:10px; flex:1 1 300px; min-width:0;
}
#drakoCfgCustomizer .dcfg-catstrip-fact{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
  min-width:0; padding:8px 12px; border-radius:9px; text-align:center;
  background:rgba(255,255,255,.85); border:1px solid rgba(28,99,171,.18);
}
#drakoCfgCustomizer .dcfg-catstrip-fact b{
  display:flex; align-items:center; justify-content:center; gap:7px; max-width:100%;
  font-size:20px; font-weight:800; line-height:1.15; letter-spacing:-.02em; color:#101828;
}
#drakoCfgCustomizer .dcfg-catstrip-fact.is-big b{ font-size:27px; }
#drakoCfgCustomizer .dcfg-catstrip-fact small{
  display:flex; justify-content:center; gap:5px; max-width:100%;
  font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  color:#667085; white-space:nowrap;
}
#drakoCfgCustomizer .dcfg-catstrip-fact.is-game b{ font-size:15px; font-weight:700; min-width:0; }
#drakoCfgCustomizer .dcfg-catstrip-fact.is-game b span{ display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#drakoCfgCustomizer .dcfg-catstrip-gimg{ flex:0 0 auto; width:22px; height:22px; border-radius:4px; object-fit:cover; }

/* Il verdetto a parole. */
#drakoCfgCustomizer .dcfg-catstrip-verdict{
  flex:0 0 auto; min-width:0;
  display:flex; align-items:center; justify-content:center;
  padding:9px 16px; border-radius:999px;
  font-size:13px; font-weight:700; line-height:1.3;
  background:rgba(28,99,171,.10); color:#1c63ab;
}
#drakoCfgCustomizer .dcfg-catstrip.is-ok{ border-left-color:#16a34a; }
#drakoCfgCustomizer .dcfg-catstrip.is-ok .dcfg-catstrip-verdict{ background:rgba(22,163,74,.12); color:#166534; }
#drakoCfgCustomizer .dcfg-catstrip.is-warn{ border-left-color:#e0a11a; }
#drakoCfgCustomizer .dcfg-catstrip.is-warn .dcfg-catstrip-verdict{ background:rgba(240,180,41,.20); color:#7c4a03; }
#drakoCfgCustomizer .dcfg-catstrip.is-bad{ border-left-color:#cf2632; }
#drakoCfgCustomizer .dcfg-catstrip.is-bad .dcfg-catstrip-verdict{ background:rgba(207,38,50,.10); color:#b91c1c; }

/* Fasce FPS: stessi valori del badge della rail (riga ~3786), una scala sola. */
#drakoCfgCustomizer .dcfg-catstrip-fps.is-t144{ border-left-color:#15803d; }
#drakoCfgCustomizer .dcfg-catstrip-fps.is-t100{ border-left-color:#3f9e4d; }
#drakoCfgCustomizer .dcfg-catstrip-fps.is-t60 { border-left-color:#b45309; }
#drakoCfgCustomizer .dcfg-catstrip-fps.is-t30 { border-left-color:#b91c1c; }
#drakoCfgCustomizer .dcfg-catstrip-fps.is-t144 .dcfg-catstrip-fact.is-big b,
#drakoCfgCustomizer .dcfg-catstrip-fps.is-t100 .dcfg-catstrip-fact.is-big b{ color:#15803d; }
#drakoCfgCustomizer .dcfg-catstrip-fps.is-t60  .dcfg-catstrip-fact.is-big b{ color:#b45309; }
#drakoCfgCustomizer .dcfg-catstrip-fps.is-t30  .dcfg-catstrip-fact.is-big b{ color:#b91c1c; }
#drakoCfgCustomizer .dcfg-catstrip-fps.is-t144 .dcfg-catstrip-verdict,
#drakoCfgCustomizer .dcfg-catstrip-fps.is-t100 .dcfg-catstrip-verdict{ background:rgba(22,163,74,.12); color:#166534; }
#drakoCfgCustomizer .dcfg-catstrip-fps.is-t60  .dcfg-catstrip-verdict{ background:rgba(240,180,41,.20); color:#7c4a03; }
#drakoCfgCustomizer .dcfg-catstrip-fps.is-t30  .dcfg-catstrip-verdict{ background:rgba(207,38,50,.10); color:#b91c1c; }
/* Il rimbalzo che dcfgFpsPaint accende quando il numero cambia dopo una scelta. */
#drakoCfgCustomizer .dcfg-catstrip-fps.is-bump .dcfg-catstrip-fact.is-big{ animation:dcfgStripBump .42s ease; }
@keyframes dcfgStripBump{ 0%{transform:scale(1)} 38%{transform:scale(1.07)} 100%{transform:scale(1)} }
@media (prefers-reduced-motion: reduce){
  #drakoCfgCustomizer .dcfg-catstrip-fps.is-bump .dcfg-catstrip-fact.is-big{ animation:none; }
  #drakoCfgCustomizer .dcfg-catstrip-chev{ transition:none; }
}

/* Il comando a destra. */
/* Senza `margin-left:auto`: quel margine si prendeva TUTTO lo spazio libero
   della riga prima che le caselle potessero crescere, e il risultato era
   "Counter-S..." troncato dentro una casella da 136 px con mezzo dito di
   azzurro vuoto qui accanto. Lo spazio deve finire nelle caselle - e' li' che
   ci sono i dati; il comando resta comunque in fondo, perche' e' l'ultimo
   elemento della riga. */
#drakoCfgCustomizer .dcfg-catstrip-more{
  flex:0 0 auto;
  display:inline-flex; align-items:center; gap:6px;
  font-size:13px; font-weight:700; color:#1c63ab;
}
#drakoCfgCustomizer .dcfg-catstrip-chev{ flex:0 0 auto; transition:transform .18s ease; }
#drakoCfgCustomizer .dcfg-catstrip.is-open .dcfg-catstrip-chev:not(.is-right){ transform:rotate(180deg); }

/* Il pannello dietro la fascia: e' il clone di quello della modale, quindi
   eredita tutte le regole .dcfg-psu-* (estese al personalizzatore piu' su). */
#drakoCfgCustomizer .dcfg-catstrip-body{ padding:2px 16px 16px; background:rgba(255,255,255,.55); }
#drakoCfgCustomizer .dcfg-catstrip-body .dcfg-psu-intro{ margin-top:0; }
/* Cambia/Scegli qui non serve: siamo GIA' nella sezione degli alimentatori,
   con la fila delle alternative subito sotto. Nella modale della barra invece
   e' l'unico modo di arrivarci, e li' resta. */
#drakoCfgCustomizer .dcfg-catstrip-body .dcfg-psu-change{ display:none; }
#drakoCfgCustomizer .dcfg-catstrip-body .dcfg-psu-power{ justify-content:flex-start; }

@media (max-width:720px){
  #drakoCfgCustomizer .dcfg-catstrip-head,
  #drakoCfgCustomizer .dcfg-catstrip-fps{ padding:12px 13px; gap:8px 10px; min-height:0; }
  /* L'etichetta lascia la larghezza fissa e prende la riga: sotto i 720px le
     tre caselle non ci starebbero accanto senza schiacciare i numeri. */
  #drakoCfgCustomizer .dcfg-catstrip-lbl{ flex:1 1 100%; font-size:14px; }
  #drakoCfgCustomizer .dcfg-catstrip-facts{ flex:1 1 100%; gap:8px; }
  #drakoCfgCustomizer .dcfg-catstrip-fact{ padding:6px 6px; }
  /* `nowrap`: in 81 px "750 W" andava a capo fra il numero e l'unita', e una
     misura spezzata in due righe non e' piu' una misura. */
  #drakoCfgCustomizer .dcfg-catstrip-fact b{ font-size:16px; white-space:nowrap; }
  #drakoCfgCustomizer .dcfg-catstrip-fact.is-big b{ font-size:20px; }
  #drakoCfgCustomizer .dcfg-catstrip-fact.is-game b{ font-size:13px; white-space:normal; }
  #drakoCfgCustomizer .dcfg-catstrip-fact small{ font-size:9.5px; letter-spacing:0; }
  /* Verdetto e comando dividono l'ultima riga. Il verdetto NON porta piu'
     `order:5`: mandandolo in coda finiva sotto la freccia, che restava
     spaiata a mezz'aria sopra di lui. */
  #drakoCfgCustomizer .dcfg-catstrip-verdict{ flex:1 1 auto; font-size:12px; padding:7px 12px; }
  #drakoCfgCustomizer .dcfg-catstrip-more{ align-self:center; }
  #drakoCfgCustomizer .dcfg-catstrip-more .dcfg-catstrip-more-txt{ display:none; }
  #drakoCfgCustomizer .dcfg-catstrip-body{ padding:2px 13px 13px; }
}

/* Dark: i token del sito, mai tinte inventate. La fascia deve staccarsi
   ALZANDOSI (bg-elevated e' il gradino sopra le card), come gia' fa
   l'intestazione di sezione alla riga ~5216. */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip{
  background:var(--drako-bg-elevated);
  border-left-color:var(--drako-accent);
}
/* La fascia FPS e' anche il <button>: la doppia classe evita che il fondo
   chiaro del controllo prevalga sul token dark, senza alterare l'hover. */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip.dcfg-catstrip-fps{
  background:var(--drako-bg-elevated);
}
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-head,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fps{ color:var(--drako-text); }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-head:hover,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fps:hover{ background:rgba(255,255,255,.05); }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fact{
  background:rgba(255,255,255,.05);
  border-color:var(--drako-border);
}
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fact b{ color:var(--drako-text); }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fact small{ color:var(--drako-text-secondary); }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-more{ color:var(--drako-accent); }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-body{ background:rgba(0,0,0,.18); }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-verdict{ background:rgba(255,255,255,.07); color:var(--drako-text-secondary); }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip.is-ok{ border-left-color:#4ade80; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip.is-ok .dcfg-catstrip-verdict{ background:rgba(74,222,128,.14); color:#4ade80; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip.is-warn{ border-left-color:#ffb74d; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip.is-warn .dcfg-catstrip-verdict{ background:rgba(255,183,77,.16); color:#ffb74d; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip.is-bad{ border-left-color:#ef5350; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip.is-bad .dcfg-catstrip-verdict{ background:rgba(239,83,80,.16); color:#ff8a85; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fps.is-t144{ border-left-color:#4ade80; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fps.is-t100{ border-left-color:#66bb6a; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fps.is-t60 { border-left-color:#ffb74d; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fps.is-t30 { border-left-color:#ef5350; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fps.is-t144 .dcfg-catstrip-fact.is-big b{ color:#4ade80; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fps.is-t100 .dcfg-catstrip-fact.is-big b{ color:#66bb6a; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fps.is-t60  .dcfg-catstrip-fact.is-big b{ color:#ffb74d; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fps.is-t30  .dcfg-catstrip-fact.is-big b{ color:#ef5350; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fps.is-t144 .dcfg-catstrip-verdict,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fps.is-t100 .dcfg-catstrip-verdict{ background:rgba(74,222,128,.14); color:#4ade80; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fps.is-t60  .dcfg-catstrip-verdict{ background:rgba(255,183,77,.16); color:#ffb74d; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fps.is-t30  .dcfg-catstrip-verdict{ background:rgba(239,83,80,.16); color:#ff8a85; }

/* --- 5. STESSA LARGHEZZA DEL BLOCCO SOTTO (17/08/2026) --------------------
   Misurato: il generatore andava da 553 a 1.993, il riquadro sotto da 533 a
   2.013. Venti pixel di scarto per lato - non un caso: il riquadro sotto
   sfonda di venti con `margin:-20px -20px` e il generatore no. A video sono
   due schede che quasi si allineano, che si legge peggio di due schede
   dichiaratamente diverse.
   Il generatore prende lo stesso sfondamento: i due bordi combaciano. */
.drako-ab-embed { margin-left: -20px; margin-right: -20px; }

/* Meno spesso, sul serio. La prima passata aveva tolto solo 5 px perche'
   toglieva aria dove non era: l'altezza la fanno DUE righe separate da un
   filetto - i campi sopra, marchi e interruttori sotto - e i 27 px fra le due
   (14 di margine + 13 di riempimento) pesano piu' del riquadro intero.
   Si stringe la cucitura, non i comandi: cursore, cifra e pulsante restano
   della misura che serve a essere usati. */
.drako-ab-embed .drako-abx-foot { margin-top: 8px; padding-top: 8px; }
.drako-ab-embed .drako-abx-flag-ic { width: 26px; height: 26px; }
.drako-ab-embed .drako-ab-hero { padding-bottom: 10px; }

/* ============================================================================
   BARRE UGUALI E A TUTTA ALTEZZA (manuale, 17/08/2026)
   ============================================================================
   Sul configuratore manuale le medaglie sono barre impilate in una colonna
   alta quanto la foto del case accanto (~505 px). Cinque barre ne occupavano
   312: sotto restava il vuoto, e le barre erano pure di altezze diverse -
   44 la pasta, 56 le altre - perche' ognuna si adattava alla propria immagine
   (logotipo 26, icone 40, badge OCCT 38).

   ⚠️ NON si tocca la griglia. Il tentativo precedente rendeva `.drako-pi-info`
   un contenitore flex e questo ribaltava la disposizione di TUTTI i suoi figli:
   layout rotto. Qui si cambia una sola cosa - come l'elemento si allinea
   NELLA riga di griglia - e da li' in giu' si distribuisce.

   `align-self:stretch` batte l'`align-items:start` del contenitore: la colonna
   prende l'altezza della riga, cioe' quella della foto. Poi il blocco e la
   pila crescono con lei e le barre si spartiscono lo spazio in parti uguali.
   La cassetta dell'immagine e' fissa a 40 px per tutte: e' quella a rendere
   uguali barre che contengono figure di formato diverso.
   ============================================================================ */
.drako-pi-wrapper.dcfg-on.dcfg-2col:not(.dcfg-gen) > .drako-pi-info { align-self: stretch; }
.dcfg-2col:not(.dcfg-gen) .drako-pi-buildinfo { height: 100%; }
.dcfg-2col:not(.dcfg-gen) .drako-pi-bi-tiles { height: 100%; }
.dcfg-2col:not(.dcfg-gen) .drako-pi-bi-tile { flex: 1 1 0; min-height: 56px; }
/* Cassetta dell'immagine uguale per tutte: dentro, ognuna tiene il suo
   formato (il logotipo non si quadra, il badge OCCT nemmeno). */
.dcfg-2col:not(.dcfg-gen) .drako-pi-bi-tile img,
.dcfg-2col:not(.dcfg-gen) .drako-pi-bi-tile .drako-pi-bi-logo,
.dcfg-2col:not(.dcfg-gen) .drako-pi-bi-tile .drako-pi-bi-occt {
  flex: 0 0 40px;
  width: 40px;
  height: auto;
  max-height: 36px;
  object-fit: contain;
}

/* --- CONTATORE DELL'OFFERTA IN SCADENZA, AL BUIO (18/08/2026) --------------
   La cromatura visibile vive su `.dcfg-cd-pill`: senza variante scura restava
   rosa chiaro (#fdecec) con la scritta rossa, cioe' una macchia
   luminosa sopra una card grafite. In chiaro funziona - superficie tinta chiara,
   inchiostro saturo - e al buio la stessa idea si ribalta: superficie tinta
   SCURA, inchiostro chiaro.
   Il rosso e' #7f2831, quello che questo foglio usa gia' per l'avviso di
   incompatibilita': meglio riusare la tinta di famiglia che inventarne una
   seconda per dire la stessa urgenza. L'inchiostro e' il token primario del
   sito, 8:1 su quel fondo. */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cd-pill {
  background: #7f2831;
  border-color: #93404a;
  color: var(--drako-text);
}
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cd-pill * { color: inherit; }

/* =====================================================================
   OPZIONE NON COMPATIBILE NELL'ELENCO (18/08/2026, seconda stesura)
   ---------------------------------------------------------------------
   La prima stesura aveva tolto il riquadro ma sbagliava il rapporto di
   forze: la riga di prodotto restava a piena voce (titolo bianco, peso
   700) e l'avviso, per farsi sentire sopra di essa, doveva gridare -
   frase tutta rossa in grassetto, glifo rosso, barretta rossa da 3 px
   sul fianco. Quattro colori su tre righe, e il link di riparazione
   dipinto dello STESSO colore del titolo: l'unica cosa cliccabile della
   riga non sembrava cliccabile.
   L'inversione: un pezzo che non si puo' scegliere non e' un prodotto in
   valutazione, e' un prodotto FUORI GIOCO. Non deve essere l'avviso ad
   alzare la voce, deve essere la riga ad abbassarla. Il nome arretra al
   grigio secondario, la coda di sigle sparisce (di un pezzo che non
   entra non interessa il colore), e la spiegazione resta l'unica cosa
   alla luce normale - in tinta neutra, non in rosso.
   Cosi' il rosso torna a essere un accento e non un fondale: ne resta
   una sola macchia da quattordici pixel, l'icona. La regola del 10%.
   Tre cose in meno rispetto a ieri: la barretta laterale (un bordo
   colorato oltre 1 px su una riga di elenco e' il costume che si mette
   quando non si sa come dare gerarchia), il grassetto rosso, e la coda
   di sigle. Una cosa in piu': il link di riparazione prende il colore
   d'accento e diventa riconoscibile come comando.
   L'icona non e' piu' il glifo unicode 26A0 ma il tracciato che il
   configuratore usa gia' nel verdetto dell'alimentazione: stesso
   disegno, stesso spessore, stesso raccordo. Le icone si disegnano.
   ===================================================================== */

/* La riga arretra ------------------------------------------------------ */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat:not(.is-selected) .dcfg-opt-tit { color:var(--drako-text-secondary,#5b6472); font-weight:600; }
/* Sigle e coda del nome: rumore su un pezzo fuori gioco. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat .dcfg-opt-sub,
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat .drako-pcb2-opt-specs { display:none; }
/* "Disponibile" su un pezzo che non si puo' prendere e' una mezza verita',
   e quelle 126 px servono alla spiegazione. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat .drako-pcb2-opt-stock { display:none; }
/* LA BARRETTA ROSSA TORNA (richiesta esplicita: "mi piaceva prima che aveva
   il rosso quando incompatibile"). Era stata tolta perche una barretta
   colorata oltre 1 px su una riga di elenco e di solito il costume che si
   mette quando non si sa come dare gerarchia - ma qui la gerarchia c e gia
   (nome arretrato, foto spenta) e il rosso fa da segnale di SCANSIONE: le
   righe bloccate si trovano scorrendo il margine, senza leggerle.
   NON UN BORDO, UN OMBRA INTERNA - e qui stanno i due difetti che il bordo
   si portava dietro.
   1. Un border-left segue il RAGGIO dell angolo: sui 3 px si assottiglia in
      cima e in fondo e la barretta sembra mozzata alle due estremita. E la
      cosa che si vede ingrandendo il margine sinistro. L ombra interna
      abbraccia la curva e resta piena per tutta l altezza.
   2. Un bordo occupa spazio: da 1 a 3 px spingeva dentro tutto il contenuto
      di 2 px, e radio e miniatura delle righe bloccate uscivano dalla
      colonna delle altre. L ombra non e nel flusso: zero spostamento,
      niente padding da compensare.
   Ripetuta su :hover perche la riga 111 azzera li ogni box-shadow. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat:not(.is-selected),
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat:not(.is-selected):hover {
  box-shadow:inset 3px 0 0 #c62828 !important;
}

/* La spiegazione ------------------------------------------------------- */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-incompat-msg {
  grid-column:1 / -1; grid-row:2;
  display:flex; align-items:center; gap:7px; min-width:0;
  margin:1px 0 0 !important; padding:0 !important;
  background:none !important; border:0 !important; border-radius:0 !important;
  font-size:12px; font-weight:400; line-height:1.35;
  color:var(--drako-text-secondary,#5b6472) !important;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-incompat-msg .dcfg-incompat-txt { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* L'unica macchia di rosso della riga. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-incompat-msg .dcfg-incompat-ico {
  flex:0 0 auto; width:14px; height:14px;
  color:#c62828 !important; stroke:currentColor; fill:none;
}

/* Il comando: e' l'unica cosa che si puo' fare su questa riga, e si vede.
   Va riaffermato con forza perche' al buio una regola generale dipinge
   tutti i .dcfg-fix-link del colore del testo - cioe' del titolo. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-incompat-msg .dcfg-fix-link {
  color:var(--dcfg-blue,#1c63ab) !important;
  font-weight:600; text-decoration:none; margin-left:2px;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-incompat-msg .dcfg-fix-link:hover { text-decoration:underline; }

/* LO STATO CHE NON DEVE TACERE. Un pezzo bloccato ma NON scelto e rumore
   di fondo: si spegne. Un pezzo bloccato e SCELTO e la tua build che non
   sta in piedi, e li il rapporto si rovescia - il nome resta a piena voce
   e la spiegazione passa al rosso pieno, perche non e piu una nota a
   margine, e il problema. La riga porta gia il suo anello rosso e la
   miniatura barrata: e uno stato, non un avviso. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat.is-selected .drako-pcb2-opt-incompat-msg { color:#a82019 !important; font-weight:600; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat.is-selected .drako-pcb2-opt-incompat-msg .dcfg-incompat-ico { color:#a82019; }

/* IL BADGE CHE SI ALLARGAVA A TUTTA LA RIGA.
   Il segno di "bloccato" sulla riga scelta e disegnato come ::after
   dell involucro foto, con inset:0 - cioe si distende sul primo antenato
   POSIZIONATO. In vista elenco quell involucro e volutamente static (r.5124:
   serve perche la (i) si ancori alla riga e non alla miniatura), quindi il
   riferimento diventava la riga intera: il velo rosso al 42% copriva tutti i
   970 px - ecco da dove veniva il "lavaggio rosa" - e il glifo, centrato su
   quel rettangolo, atterrava in mezzo al testo, sopra "Cambia Processore".
   Misurato: involucro 50 px a x=46, velo largo quanto la riga.
   Non si rimette relative (rimetterebbe la (i) sulla miniatura, difetto gia
   pagato una volta). In elenco il velo si spegne e basta: la riga scelta e
   rotta ha gia l anello rosso e la frase rossa, e in una lista fitta un
   bollino da 22 px su una foto da 50 non aggiunge niente. Nella vista a card
   l involucro E relativo e il bollino resta, che e dove serve. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat.is-selected .drako-pcb2-opt-imgwrap::after { display:none; }

/* Al buio ------------------------------------------------------------- */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat:not(.is-selected),
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat:not(.is-selected):hover { box-shadow:inset 3px 0 0 #ef5350 !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat:not(.is-selected) .dcfg-opt-tit { color:var(--drako-text-secondary,#b0b8c4); }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-incompat-msg { background:none !important; color:var(--drako-text-secondary,#b0b8c4) !important; }
/* #c62828 sul fondo scuro sta a 2,6:1 e sparisce: al buio il rosso si alza. */
/* !important obbligato: piu su una regola generale del tema scuro dipinge
   OGNI .dcfg-incompat-ico del colore del testo, con !important. Senza questo
   l unica macchia di rosso della riga tornava bianca - misurato, icona a
   rgb(240,242,245) - e il segnale spariva. */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-incompat-msg .dcfg-incompat-ico { color:#ef5350 !important; }
/* NON --drako-accent qui: #4a8db8 su #22262e sta a 4,18:1, sotto il minimo
   per un testo da 12 px. #7fb2ff e il blu che questo stesso foglio usa gia
   al buio per i watt dell alimentatore (r.1963) e sale a 7,5:1. */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-incompat-msg .dcfg-fix-link { color:#7fb2ff !important; text-decoration:none; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-incompat-msg .dcfg-fix-link:hover { text-decoration:underline; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat.is-selected .drako-pcb2-opt-incompat-msg { color:#ff8a85 !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat.is-selected .drako-pcb2-opt-incompat-msg .dcfg-incompat-ico { color:#ff8a85 !important; }

/* Nota di capienza: stessa lingua, senza cornice ---------------------- */
#drakoCfgCustomizer .dcfg-multi-note {
  display:flex; align-items:center; gap:7px;
  margin:0 0 9px !important; padding:0 2px !important;
  background:none !important; border:0 !important; border-radius:0 !important;
  font-size:12px; font-weight:500; line-height:1.35;
  color:var(--drako-text-muted,#667085) !important;
}
#drakoCfgCustomizer .dcfg-multi-note > span:first-child { color:var(--drako-warning,#e0a11a) !important; font-size:12px; }
#drakoCfgCustomizer .dcfg-multi-note-x { margin-left:auto; font-size:15px; }

/* Su telefono ---------------------------------------------------------- */
@media (max-width:720px){
  /* La colonna e' larga un terzo: i puntini mangiavano la frase dopo quattro
     parole ("La scheda m..."), e un motivo illeggibile non e' un motivo. Qui
     va a capo, e il sovrapprezzo di un pezzo non selezionabile lascia il
     posto - su schermo largo restano tutti e due, lo spazio c'e'. */
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-incompat-msg { align-items:flex-start; font-size:11.5px; }
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-incompat-msg .dcfg-incompat-ico { margin-top:1px; }
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-incompat-msg .dcfg-incompat-txt { white-space:normal; overflow:visible; text-overflow:clip; }
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat .drako-pcb2-opt-price { display:none !important; }
}

/* =========================================================================
   LA FRASE PORTA IL COLORE DELLA GRAVITA' (18/08/2026)
   Richiesta di Alex, sul <span class="dcfg-incompat-txt">: rossa quando il
   pezzo e' incompatibile, ambra quando e' un avviso. Le parole non si toccano.
   Mancava solo lo stato NON selezionato: li' la frase restava grigia
   (#4b5563 al chiaro, --drako-text-secondary al buio) e il rosso compariva
   soltanto dopo aver scelto il pezzo - cioe' il segnale arrivava dopo il
   danno. Selezionata era gia' rossa e resta com'era, di un tono piu' acceso.
   Al buio in vista a SCHEDE non si tocca nulla: li' c'e' il riquadro rosso
   #7f2831 e la frase e' gia' rosa chiaro, l'unico rosso che regge su quel
   fondo (un #ef5350 li sopra farebbe 1,5:1).
   ========================================================================= */
html:not([data-theme="dark"]) #drakoCfgCustomizer .drako-pcb2-opt.is-incompat .drako-pcb2-opt-incompat-msg,
html:not([data-theme="dark"]) #drakoCfgCustomizer .drako-pcb2-opt.is-incompat .dcfg-incompat-ico {
  color: #a82019 !important;
}
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat .drako-pcb2-opt-incompat-msg,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat .dcfg-incompat-ico {
  color: #f26461 !important;   /* #ef5350 faceva 4,35:1, sotto soglia */
}

/* =========================================================================
   NELLA LISTA I DUE AVVISI SI SOMIGLIANO (18/08/2026)
   Richiesta di Alex, cerchiando la riga intera: in vista elenco incompatibilita'
   e avviso hanno la stessa forma - riga di testo, niente riquadro - e il colore
   prende TUTTA la frase, comando compreso.
   Prima: la rossa era testo nudo con il comando azzurro (la riga si leggeva in
   due pezzi, come se il link fosse un'altra cosa); l'ambra invece aveva riquadro,
   bordo, 14px in grassetto - cioe' l'avviso che NON blocca pesava piu'
   dell'errore che impedisce l'acquisto.
   Il comando resta riconoscibile per il grassetto e la freccia, non per il colore.
   ========================================================================= */

/* 1. Il comando RESTA AZZURRO (scelta di Alex, 18/08): e' l'unica cosa
      cliccabile della riga e l'azzurro e' il segno che nel sito significa
      "qui si va da un'altra parte". Prendendo il rosso spariva dentro la
      frase. Qui si allinea solo il peso, cosi' non stona con la riga. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-warn-msg .dcfg-fix-link {
  color: var(--dcfg-blue, #1c63ab) !important;
  font-weight: 700;
  text-decoration: none;
}
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-warn-msg .dcfg-fix-link {
  color: #7fb2ff !important;
}

/* 2. L'ambra perde il riquadro e prende la forma della rossa. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-warn-msg,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-warn-msg {
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  margin-top: 6px;
  font-size: 13px;   /* leggermente piu' grande, richiesta 18/08 */
  font-weight: 500;
  line-height: 1.35;
}

/* 3. Anche l'icona e' parte della frase: una riga, un colore. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-warn-msg .dcfg-optwarn-ico {
  color: inherit !important;
}

/* -------------------------------------------------------------------------
   LA RADICE: il testo sta nello SPAN, non nel contenitore (18/08/2026)
   Il messaggio e' <div class="...incompat-msg"><svg><span class="dcfg-incompat-txt">
   testo</span></div>. Al buio stylesheet.css ha una regola a tappeto
   `[data-theme="dark"] p, span:not(...), li, td, th, label { color: var(--drako-text-body) }`
   con specificita' (0,4,1): dipinge QUELLO SPAN di grigio #c8cdd5 e si mangia
   qualunque colore messo sul div. Colorare il contenitore non serviva a niente,
   e "la frase non e' rossa" era letteralmente vero.
   `inherit` e' la forma giusta: lo span riprende il colore del suo contenitore,
   quindi vale per chiaro e buio, elenco e schede, selezionata e non - una regola
   sola invece di otto. Il comando dentro la frase la segue.
   ------------------------------------------------------------------------- */
#drakoCfgCustomizer .drako-pcb2-opt-incompat-msg .dcfg-incompat-txt {
  color: inherit !important;
}
/* Anche nella vista a SCHEDE l'icona segue la frase: era rimasta bianca dentro
   il riquadro rosso, unico pezzo fuori tono di una riga ormai di un colore solo.
   Il rosa regge sul #7f2831 (7,61:1), l'azzurro no - per quello il comando li'
   dentro resta chiaro e non azzurro. */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid:not(.is-list) .drako-pcb2-opt-incompat-msg .dcfg-incompat-ico {
  color: inherit !important;
}

/* Corpo di entrambe le righe allineato e un filo piu' grande (13px invece di
   12): a 12 la riga di gravita' spariva sotto il nome del prodotto, e queste
   due frasi sono l'unica cosa che spiega perche' un pezzo non va bene. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-incompat-msg {
  font-size: 13px;
}

/* -------------------------------------------------------------------------
   IL FILETTO AMBRA (18/08/2026)
   Gemello di quello rosso: stessa forma, stesso spessore, colore della gravita'.
   La riga con l'avviso NON porta una classe che lo dichiari - il messaggio lo
   appende il JS (applyMultiWarningsToSection) - quindi la si riconosce dal
   figlio con :has(). Cosi' non serve toccare il JavaScript, e il filetto
   compare e sparisce insieme al messaggio senza doverli tenere in sincrono.
   :not(.is-incompat) perche' se una riga fosse insieme incompatibile e
   avvisata deve restare ROSSA: l'errore ha la precedenza sull'avviso.
   ------------------------------------------------------------------------- */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt:not(.is-incompat):has(.drako-pcb2-opt-warn-msg),
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt:not(.is-incompat):has(.drako-pcb2-opt-warn-msg):hover {
  box-shadow: inset 3px 0 0 #d97706 !important;
}
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt:not(.is-incompat):has(.drako-pcb2-opt-warn-msg),
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt:not(.is-incompat):has(.drako-pcb2-opt-warn-msg):hover {
  box-shadow: inset 3px 0 0 #deaf48 !important;
}

/* =========================================================================
   L'AVVISO SI VEDE PRIMA DI SCEGLIERE (18/08/2026)
   Richiesta di Alex: "che resti come quello rosso, non che selezionandolo lo
   diventa". L'incompatibilita' e' sempre stata valutata per OGNI candidato dal
   PHP, quindi si vede scorrendo l'elenco; l'avviso invece lo calcolava il JS
   sulla configurazione ATTUALE, e poteva appenderlo solo alla riga scelta.
   Ora anche l'avviso e' per-candidato: stessa riga, classe .is-warn, tinta
   ambra. La riga del JS resta per gli avvisi di CAPIENZA (moduli RAM, ventole),
   che sono della build e non del singolo pezzo, con una guardia che evita il
   doppione.
   ========================================================================= */
#drakoCfgCustomizer .drako-pcb2-opt-incompat-msg.is-warn {
  color: #b45309 !important;
  background: none !important;
  border: 0 !important;
}
#drakoCfgCustomizer .drako-pcb2-opt-incompat-msg.is-warn .dcfg-incompat-ico { color: inherit !important; }
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-incompat-msg.is-warn {
  color: #f0cd80 !important;
  background: none !important;
  border: 0 !important;
}
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-incompat-msg.is-warn .dcfg-incompat-ico { color: inherit !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-incompat-msg.is-warn .dcfg-incompat-ico { color: inherit !important; }

/* Il filetto ambra riconosce anche la riga nuova. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt:not(.is-incompat):has(.drako-pcb2-opt-incompat-msg.is-warn),
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt:not(.is-incompat):has(.drako-pcb2-opt-incompat-msg.is-warn):hover {
  box-shadow: inset 3px 0 0 #d97706 !important;
}
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt:not(.is-incompat):has(.drako-pcb2-opt-incompat-msg.is-warn),
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt:not(.is-incompat):has(.drako-pcb2-opt-incompat-msg.is-warn):hover {
  box-shadow: inset 3px 0 0 #deaf48 !important;
}
/* In vista ELENCO la regola generica della lista (--drako-text-secondary,
   specificita' 1,4,1) batteva quella dell'avviso (1,3,1) e lo riportava a
   grigio. Stessa tinta, selettore pari grado. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-incompat-msg.is-warn { color: #b45309 !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-incompat-msg.is-warn { color: #f0cd80 !important; }

/* L'avviso per-opzione vale SOLO in vista ELENCO (richiesta di Alex, 18/08).
   Nelle card resta il comportamento di prima: l'avviso lo mette il JS sulla
   sola card selezionata, con il suo riquadro. Nascondere qui invece di non
   generare a monte e' voluto: la vista si cambia da browser, senza ricaricare,
   quindi il markup deve esserci gia' per entrambe. */
#drakoCfgCustomizer .dcfg-cat-grid:not(.is-list) .drako-pcb2-opt-incompat-msg.is-warn { display: none !important; }

/* =========================================================================
   LA NOTA DI CAPIENZA TORNA A VEDERSI (18/08/2026)
   Era stata resa "senza cornice" per parlare la stessa lingua delle altre
   righe, ma quelle hanno il colore addosso e questa no: restava grigia su
   fondo scuro e spariva. Un limite raggiunto che non si nota non serve.
   Fondo ambra con gli STESSI valori di .drako-pcb2-opt-warn-msg, cosi' i due
   avvisi si riconoscono come parenti, e respiro sotto: sfiorava il riquadro
   della sezione seguente.
   ========================================================================= */
#drakoCfgCustomizer .dcfg-multi-note {
  background: #fbe7b6 !important;
  border: 1px solid #e3bf5f !important;
  border-radius: 6px !important;
  padding: 8px 11px !important;
  margin: 6px 0 14px !important;
  color: #7a4e08 !important;
  font-size: 13px;
  font-weight: 600;
}
#drakoCfgCustomizer .dcfg-multi-note > span:first-child { color: #b45309 !important; font-size: 13px; }
#drakoCfgCustomizer .dcfg-multi-note-x { color: #7a4e08 !important; }

html[data-theme="dark"] #drakoCfgCustomizer .dcfg-multi-note {
  background: rgba(205, 160, 60, .24) !important;
  border-color: rgba(222, 175, 72, .62) !important;
  color: #f0cd80 !important;
}
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-multi-note > span:first-child,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-multi-note-x { color: #f0cd80 !important; }

/* =========================================================================
   POSTO FINITO: SI VEDE PRIMA DI PROVARE (18/08/2026)
   Il rifiuto del clic c'era gia' (capRoomFor nel gestore), ma le card non
   scelte restavano identiche alle altre: il divieto si scopriva solo
   cliccando, e il lampeggio della nota sembrava un guasto.
   Stesso linguaggio dell'incompatibilita' - puntatore di divieto e pezzo in
   sordina - ma piu' leggero: qui il pezzo va benissimo, semplicemente ora non
   c'e' posto. Per questo niente scala di grigi sull'immagine: torna
   selezionabile appena se ne toglie un altro.
   La card SCELTA non si marca mai: e' deselezionandola che si libera il posto.
   ========================================================================= */
#drakoCfgCustomizer .drako-pcb2-opt.is-capfull { cursor: not-allowed; }
#drakoCfgCustomizer .drako-pcb2-opt.is-capfull * { cursor: not-allowed; }
#drakoCfgCustomizer .drako-pcb2-opt.is-capfull .drako-pcb2-opt-imgwrap,
#drakoCfgCustomizer .drako-pcb2-opt.is-capfull .drako-pcb2-opt-name,
#drakoCfgCustomizer .drako-pcb2-opt.is-capfull .dcfg-opt-tit,
#drakoCfgCustomizer .drako-pcb2-opt.is-capfull .drako-pcb2-opt-price,
#drakoCfgCustomizer .drako-pcb2-opt.is-capfull .drako-pcb2-opt-delta { opacity: .5; }
#drakoCfgCustomizer .drako-pcb2-opt.is-capfull:hover { border-color: var(--dcfg-border); box-shadow: none; }
/* La (i) resta cliccabile: guardare la scheda non occupa posto. */
#drakoCfgCustomizer .drako-pcb2-opt.is-capfull .drako-pcb2-opt-info,
#drakoCfgCustomizer .drako-pcb2-opt.is-capfull .drako-pcb2-opt-info * { cursor: pointer !important; opacity: 1; }

/* Respiro della nota di capienza TOLTO (18/08/2026, richiesta di Alex).
   Pulsava a ogni clic respinto (@keyframes dcfgNotePulse, alone ambra 0.7s).
   Ora il divieto e' gia' scritto nella nota e confermato dal puntatore sulle
   card: muovere il riquadro non aggiunge niente. Spento anche qui, oltre che
   alla fonte in flashCap(), cosi' resta fermo se qualcuno riattiva la classe. */
#drakoCfgCustomizer .dcfg-multi-note.dcfg-note-pulse { animation: none !important; }

/* ============================================================================
   IL SEGNO DI SCELTA: SPUNTA GRANDE CHE SBORDA DALLA CASELLA (19/08)
   ============================================================================
   Prima era un pallino con riempimento blu: la forma del "radio", che promette
   «una sola scelta possibile». Ma nell'elenco convivono slot a scelta singola e
   slot MULTIPLI (RAM, dischi, servizi), dove di righe se ne accendono più d'una:
   il pallino diceva la cosa sbagliata su metà delle categorie.

   Poi è stato un quadratino con una spunta interna, troppo piccola per la sua
   funzione: quel segno è la risposta alla domanda «cosa ho scelto?», la si legge
   scorrendo l'elenco con la coda dell'occhio, e stava dentro 14×14.
   Ora la spunta **sborda dalla casella** (24×20 su una casella di 18) come nelle
   caselle di scelta dei sistemi operativi: si vede da lontano e non ruba spazio,
   perché cresce nel margine che la riga ha già (28 px sopra e sotto, 13 a destra
   prima della foto — misurati).

   La casella resta NEUTRA in tutti gli stati e il colore lo porta il segno: la
   riga scelta ha già la cornice verde, e tre verdi nello stesso punto sono uno
   spreco. Il rosso dell'incompatibilità si limita quindi a cambiare una
   variabile, `--dcfg-spunta`.

   Il segno è una **maschera SVG** (`mask-image`) e non un disegno colorato: la
   forma sta nella maschera, il colore in `background`. Così un solo tracciato
   serve il verde e il rosso, e il tema scuro non ha nulla da riscrivere.
   ============================================================================ */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-radio {
  border-radius:4px;
  --dcfg-spunta:var(--dcfg-green);
}

/* --- RIPIEGO: spunta piccola disegnata coi bordi ---------------------------
   Vale dove `mask-image` non c'è. Senza questo strato la maschera non applicata
   lascerebbe un rettangolo verde pieno di 30×26: un guasto vistoso al posto di
   un segno. Il ripiego sta DENTRO la casella, che è sempre leggibile. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-selected .drako-pcb2-opt-radio {
  border-color:#9aa5b6;
  background:#fff;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-selected .drako-pcb2-opt-radio::after {
  content:"";
  position:absolute;
  inset:auto;                /* disfa l'inset:3px del pallino tondo */
  left:4.5px; top:.5px;
  width:5px; height:9px;
  border:solid var(--dcfg-spunta);
  border-width:0 2.5px 2.5px 0;
  border-radius:0;           /* disfa il 50% */
  background:none;           /* disfa il riempimento blu */
  transform:rotate(45deg);
}

/* --- LA SPUNTA GRANDE ------------------------------------------------------
   Tracciato in una tela 30×26 (1 unità = 1 px, niente deformazione), vertice a
   (11,20). La tela è spostata di (-5.5,-10) rispetto all'area interna della
   casella perché quel vertice cada a (7.5,12) in coordinate casella: dentro, in
   basso a sinistra, mentre il braccio lungo esce in alto a destra. */
@supports ((-webkit-mask-image:url("")) or (mask-image:url(""))) {
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-selected .drako-pcb2-opt-radio::after {
    left:-5.5px; top:-10px;
    width:30px; height:26px;
    border:0;
    transform:none;
    background:var(--dcfg-spunta);
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 26'%3E%3Cpath d='M5 14L11 20L24 5' fill='none' stroke='black' stroke-width='4.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
            mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 26'%3E%3Cpath d='M5 14L11 20L24 5' fill='none' stroke='black' stroke-width='4.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
    -webkit-mask-size:100% 100%;   mask-size:100% 100%;
    pointer-events:none;       /* il clic resta della riga, non del segno */
  }
}

/* Incompatibile e scelto: il segno passa al rosso dell'avviso, o direbbe «tutto
   a posto» su una riga che a posto non è. Una variabile, non una regola nuova. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-incompat.is-selected .drako-pcb2-opt-radio {
  --dcfg-spunta:var(--dcfg-red);
  border-color:#c9ced6;
}

/* Tema scuro: casella scura, segno verde. Il verde regge su entrambi i fondi e
   qui è il colore del significato, non della decorazione. */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt.is-selected .drako-pcb2-opt-radio {
  border-color:var(--drako-border-strong);
  background:var(--drako-bg-input);
}

/* =========================================================================
   IL LIMITE DI CAPIENZA E' UNA QUANTITA', NON UN ALLARME (19/08/2026)
   =========================================================================
   Terzo e ultimo giro su `.dcfg-multi-note`, e i due tentativi falliti dicono
   qual era il problema vero.

   - **Ambra** (18/08): evidente, ma con la grammatica sbagliata. In questo
     configuratore l'ambra vuol dire «attenzione a questo pezzo»
     (`.drako-pcb2-opt-warn-msg`). Qui non c'e' niente di sbagliato: gli slot
     sono pieni, e basta.
   - **Agganciata alla testata** (19/08, mattina): grammatica giusta, ma la nota
     prendeva il fondo della barra di categoria e finiva per **leggersi come una
     continuazione della barra**. Un messaggio che si traveste da cornice smette
     di essere un messaggio.

   La diagnosi: la nota cercava di essere una **frase** per una cosa che e' una
   **quantita'**. «Slot di memoria pieni» sono 4 banchi su 4 — e le quantita'
   questo configuratore le sa gia' dire: la testata scrive «2 modelli (4 pz)».

   Percio': il contatore **4/4 banchi** diventa l'elemento forte, pieno, in
   inchiostro pieno; alla frase resta il solo mestiere che le compete, dire cosa
   fare («Togli un modulo per sceglierne un altro»). E la nota torna a essere un
   **oggetto dentro l'elenco** — stessa superficie e stesso raggio delle righe
   opzione, aria sopra e sotto — invece di una striscia dentro la cornice: e'
   la riga che spiega perche' le altre sono spente, quindi sta con loro.

   L'evidenza qui viene dal **riempimento**, non dalla tinta: un rettangolo
   pieno di inchiostro in mezzo a righe bianche si vede da lontano e non dice
   «pericolo». Nel tema scuro il contatore si **inverte** (chiaro su scuro):
   la regola non e' un colore, e' «il contatore e' sempre l'opposto del fondo
   su cui sta», e cosi' il contrasto e' massimo per costruzione in entrambi i temi.
   ========================================================================= */
#drakoCfgCustomizer .dcfg-multi-note {
  display:flex; align-items:center; gap:11px;
  margin:12px 0 14px !important;         /* aria su ENTRAMBI i lati: e' cio' che
                                            la rende un oggetto e non una fascia */
  padding:9px 13px !important;
  background:#eef1f5 !important;         /* GRIGIO, non bianco: le righe opzione sono
                                            bianche, e un riquadro bianco fra riquadri
                                            bianchi si legge come «un'altra riga». Il
                                            grigio la stacca senza usare una tinta, che
                                            qui vorrebbe dire allarme. */
  border:0 !important;                   /* il pieno E' gia' la definizione: bordo E
                                            fondo insieme fanno il riquadro fantasma */
  border-radius:8px !important;          /* identico alle righe */
  color:#374151 !important;
  font-size:13px;
  font-weight:500;
  line-height:1.35;
}
/* IL CONTATORE. Inchiostro pieno, non blu: il blu in questa pagina e' dei
   pulsanti (carrello, vista attiva) e un rettangolo blu pieno chiederebbe di
   essere cliccato. L'inchiostro non promette niente e si vede lo stesso. */
#drakoCfgCustomizer .dcfg-multi-note-n {
  flex:0 0 auto;
  background:#1f2937; color:#fff;
  padding:4px 9px;
  border-radius:5px;
  font-size:11.5px; font-weight:700; letter-spacing:.03em;
  font-variant-numeric:tabular-nums;     /* 2/4 e 4/4 non ballano fra un giro e l'altro */
  white-space:nowrap;
}
#drakoCfgCustomizer .dcfg-multi-note-n[hidden] { display:none; }
#drakoCfgCustomizer .dcfg-multi-note-x { margin-left:auto; flex:0 0 auto; font-size:16px; color:#5b6472 !important; }
#drakoCfgCustomizer .dcfg-multi-note-x:hover { color:#1f2937 !important; }

html[data-theme="dark"] #drakoCfgCustomizer .dcfg-multi-note {
  background:#323843 !important;         /* piu' CHIARO delle righe (#252930): al buio si
                                            stacca salendo, come alla luce si stacca scendendo */
  color:#d3dae6 !important;
}
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-multi-note-n { background:#e6eaf0; color:#1b1f27; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-multi-note-x { color:#98a2b3 !important; }
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-multi-note-x:hover { color:#f0f2f5 !important; }

/* Su telefono il contatore va a capo con la frase invece di stringerla. */
@media (max-width:600px){
  #drakoCfgCustomizer .dcfg-multi-note { flex-wrap:wrap; row-gap:6px; }
  #drakoCfgCustomizer .dcfg-multi-note > span { flex:1 1 100%; order:3; }
  #drakoCfgCustomizer .dcfg-multi-note-x { order:2; }
}

/* =========================================================================
   IL GENERATORE ENTRA NELLA SCHEDA (19/08/2026)
   "Come funziona" + generatore stavano SOPRA la scheda e spingevano giu tutto,
   pannello compreso: il totale cadeva a 1400 px su una finestra da 1305, fuori
   dalla prima schermata, e sui portatili molto peggio.
   Ora sono una riga DENTRO la griglia, che occupa le prime due colonne: spingono
   giu solo la foto e le medaglie, mentre il pannello - che sta a cavallo di tutte
   le righe - resta ancorato in alto. Il prezzo risale di 374 px senza che sia
   stato tolto o rimpicciolito niente. Solo sui generatori: il manuale non ha
   quel blocco.
   ========================================================================= */
.drako-pi-wrapper.dcfg-2col.dcfg-genpage {
  grid-template-areas:
    "gen  gen  pannello"
    "foto info pannello"
    "opz  opz  pannello";
}
.dcfg-genpage > .dcfg-genhead { grid-area: gen; min-width: 0; }
/* Il generatore era una fascia a tutta pagina: dentro la colonna non deve piu'
   sfondare ai lati, o esce dalla griglia. */
.dcfg-genpage > .dcfg-genhead > * { margin-left: 0; margin-right: 0; }

/* --- I campi si rimisurano sulla colonna ---------------------------------
   Il blocco e' passato da una fascia larga 1240 px a una colonna da 785 (il
   gioco; 999 il budget, che non ha la copertina). I campi avevano misure
   pensate per la fascia - il gioco con flex-basis 560 - e andavano a capo male:
   il pulsante finiva a meta' riga con 411 px di vuoto a destra. */
.dcfg-genhead .drako-ab-bar-fps {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 110px 110px auto;
  align-items: end;
  gap: 14px 18px;
}
.dcfg-genhead .drako-ab-bar-fps > * { min-width: 0; }
.dcfg-genhead .drako-ab-bar-fps .drako-ab-go { margin-left: 0; }

/* --- Il piede -------------------------------------------------------------
   Misure voluto da Alex: campo marchio 160, interruttori 320 l'uno. A queste
   misure il piede sta in UNA riga dove la colonna e' larga (budget, 999) e in
   due dove non lo e' (gioco, 785): 308 + 20 + 658 = 986. Non e' una scelta di
   stile, e' quanto spazio c'e'.
   Il CHIP del marchio scelto sta di fianco al campo che lo ha generato: prima
   prendeva una terza riga tutta per se', larga 785 e piena per 110, mentre
   sopra restavano 400 px vuoti accanto all'input. Due mezze righe vuote una
   sopra l'altra. Per questo il gruppo del marchio NON cresce (flex 0 1 auto):
   crescendo si prendeva tutta la riga e ributtava il chip sotto. */
.dcfg-genhead .drako-abx-foot {
  display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px 20px;
}
.dcfg-genhead .drako-abx-brands {
  order: 0; display: flex; align-items: center; gap: 10px;
  flex: 0 1 auto; min-width: 0; margin: 0;
}
.dcfg-genhead .drako-abx-brands .drako-abx-brand-field { flex: 0 1 160px; min-width: 0; max-width: 160px; }
.dcfg-genhead .drako-abx-brands .drako-abx-brand-field > input,
.dcfg-genhead .drako-abx-brands .drako-ab-combo-input { width: 100%; max-width: none; }
/* I CHIP VANNO SOTTO (19/08/2026, richiesta di Alex). Affiancandoli al campo
   del marchio spingevano i due interruttori sulla riga dopo, e il marchio
   restava solo con un gran vuoto in mezzo. Riga propria in fondo: sopra
   restano marchio e interruttori insieme, come devono.
   Sul generatore GIOCO non vale: li' il piede e' una griglia e i chip hanno
   la loro casella accanto al marchio, sotto la copertina. */
.dcfg-genhead .drako-abx-chips {
  order: 3; flex: 1 0 100%; width: auto; min-width: 0; margin: 0;
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
}
/* 320 e' il MINIMO chiesto da Alex, non la misura fissa: dove la riga e' larga
   - sul gioco il piede ha 785 px tutti per loro - i due interruttori la
   riempiono e tornano visibili come prima (383 l'uno). Dove lo spazio e' poco
   restano ai 320 e non si stringono oltre. */
.dcfg-genhead .drako-abx-flags {
  order: 2; display: grid;
  grid-template-columns: minmax(320px, 1fr) minmax(320px, 1fr);
  gap: 12px 18px; flex: 0 1 auto; min-width: 0;
}
.dcfg-genhead .drako-abx-flag { width: 100%; }
/* "Solo prodotti disponibili" andava a capo dentro il suo interruttore: 175 px
   di testo in una casella da 160, e faceva sembrare un interruttore alto il
   doppio dell'altro. */
.dcfg-genhead .drako-abx-flag .drako-abx-sw-lbl { white-space: nowrap; }

@media (max-width: 1100px) {
  /* Quattro campi in riga qui si stringono troppo: il nome del gioco scenderebbe
     sotto i 200 px e non si leggerebbe piu'. */
  .dcfg-genhead .drako-ab-bar-fps { grid-template-columns: minmax(0, 1fr) 110px; }
  .dcfg-genhead .drako-abx-flags { grid-template-columns: 1fr; }
}
@media (max-width: 1024px) {
  /* A colonna singola l'ordine torna quello naturale: si spiega, si genera, si guarda. */
  .drako-pi-wrapper.dcfg-2col.dcfg-genpage {
    grid-template-areas: "gen" "foto" "info" "pannello" "opz";
  }
}
/* Il piede aveva justify-content:space-between ereditato: con il chip presente
   il marchio restava a sinistra e il chip volava all'estremita' destra, con un
   buco in mezzo. I gruppi vanno accostati, non spinti ai bordi. */
.dcfg-genhead .drako-abx-foot { justify-content: flex-start; }

/* =========================================================================
   LA COPERTINA CRESCE, I COMANDI SI STRINGONO (19/08/2026, richiesta di Alex)
   Prima il piede sfondava di 215 px a sinistra per portare il marchio sotto la
   locandina: recuperava spazio ma spezzava l'incolonnamento, e la locandina
   restava alta 260 in una colonna da 369 con un vuoto sotto.
   Ora il contrario: la copertina si allunga fino in fondo al blocco e TUTTO il
   resto - campi, avviso, interruttori, marchio - resta nella colonna di destra,
   incolonnato. Niente margini negativi, niente riga che passa sotto l'immagine.
   ========================================================================= */
.dcfg-genhead .drako-abx-side { align-items: stretch; }
.dcfg-genhead .drako-abx-cover { align-self: stretch; display: flex; }
.dcfg-genhead .drako-abx-cover .drako-abx-game-thumb {
  width: 100%; height: 100%; object-fit: cover; border-radius: 10px;
}

/* I comandi si stringono: meno aria fra le fasce, cosi' il blocco non cresce
   quando la copertina si allunga. */
.dcfg-genhead .drako-abx-side-main { gap: 4px 24px; }
.dcfg-genhead .drako-abx-headrow { margin-bottom: 2px; }
.dcfg-genhead .drako-abx-fpswarn { margin: 2px 0; }
.dcfg-genhead .drako-abx-side-main > .drako-abx-foot {
  margin: 0; width: auto;
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px;
  border-top: 1px solid rgba(255, 255, 255, .22); padding-top: 10px;
}
/* Ordine: interruttori sopra, marchio e chip sulla riga sotto - insieme. */
.dcfg-genhead .drako-abx-side-main > .drako-abx-foot > .drako-abx-flags  { order: 0; flex: 1 0 100%; }
.dcfg-genhead .drako-abx-side-main > .drako-abx-foot > .drako-abx-brands { order: 1; flex: 0 1 auto; }
.dcfg-genhead .drako-abx-side-main > .drako-abx-foot > .drako-abx-chips  { order: 2; flex: 0 1 auto; }

/* BUDGET: tutto su una riga sola, niente elementi stirati (19/08/2026).
   Gli interruttori riempivano meta' schermo l'uno - 490 px per una scritta da
   180 - e sotto restava una riga quasi vuota col solo campo del marchio: due
   righe per un contenuto che ne occupa una.
   Ora ognuno prende la sua misura e stanno in fila: marchio, chip, interruttori.
   308 + 142 + 658 sfora i 999 della riga solo quando un marchio e' scelto, e in
   quel caso vanno a capo gli interruttori, che sono i piu' larghi. */
.dcfg-genhead .drako-abx-foot > .drako-abx-brands { order: 0; flex: 0 1 auto; }
.dcfg-genhead .drako-abx-foot > .drako-abx-chips  { order: 1; flex: 0 1 auto; }
.dcfg-genhead .drako-abx-foot > .drako-abx-flags  {
  order: 2; flex: 0 1 auto;
  grid-template-columns: 320px 320px;   /* misura fissa: niente stiramento */
}

/* Il FILETTO passa dal piede alla riga degli interruttori. Il piede lo faccio
   sfondare di 215 px a sinistra per portare il marchio sotto la copertina, e il
   suo bordo superiore ci andava dietro: partiva da 280 invece che da 495, cioe'
   passava SOTTO la locandina. Sulla riga degli interruttori - che e' gia'
   rientrata di 215 - parte e finisce dove deve. */
.dcfg-genhead .drako-abx-side-main > .drako-abx-foot {
  border-top: 0 !important;
  padding-top: 0 !important;
}
.dcfg-genhead .drako-abx-side-main > .drako-abx-foot > .drako-abx-flags {
  border-top: 1px solid rgba(255, 255, 255, .22);
  padding-top: 12px;
}

/* Il pillolo e' piu' largo del suo contenuto perche' la riga si divide in due
   parti uguali. Centrarlo non e' piaciuto (19/08): il gruppo restava piccolo in
   mezzo al vuoto. Si allarga invece il contenuto - testo piu' grande e piu'
   respiro fra le parti - tenendolo allineato a sinistra come prima. */
.dcfg-genhead .drako-abx-flag { justify-content: flex-start; gap: 12px; }
.dcfg-genhead .drako-abx-flag .drako-abx-sw-lbl { font-size: 16.5px; }
.dcfg-genhead .drako-abx-flag .drako-abx-flag-ic { width: 30px; height: 30px; }

/* =========================================================================
   ICONA INFORMATIVA SUI MESSAGGI DI ESITO (19/08/2026, richiesta di Alex)
   Stessa "i" in tondo dell'avviso FPS: dice "leggi", non "fermati". Il limite
   delle 10 configurazioni non e' un guasto - e' una regola del servizio - e un
   triangolo di pericolo li' insegnerebbe a ignorare i pericoli veri.
   Il contenitore .dcfg-cfgm-ico c'e' gia' (38x38, angoli tondi): qui si da'
   solo la tinta, azzurra come l'informazione altrove nel configuratore.
   ========================================================================= */
.dcfg-sb-infoico { background: rgba(28, 99, 171, .12) !important; color: #1c63ab !important; }
html[data-theme="dark"] .dcfg-sb-infoico { background: rgba(74, 141, 184, .18) !important; color: #7fb2ff !important; }

/* Anche il messaggio in linea dentro la finestra di salvataggio porta il segno:
   l'icona e' una maschera, cosi' prende da sola il colore del testo - rosso
   nell'errore, azzurro nell'informazione - senza doverne disegnare due. */
.dcfg-sb-msg.is-err, .dcfg-sb-msg.is-info { display: flex; align-items: flex-start; gap: 8px; }
.dcfg-sb-msg.is-err::before, .dcfg-sb-msg.is-info::before {
  content: ""; flex: 0 0 auto; width: 16px; height: 16px; margin-top: 1px;
  background-color: currentColor;
  -webkit-mask: var(--dcfg-ico-info) center / contain no-repeat;
          mask: var(--dcfg-ico-info) center / contain no-repeat;
}
:root {
  --dcfg-ico-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Ccircle cx='12' cy='12' r='9.2'/%3E%3Cpath d='M12 10.8v5.6' stroke-width='1.9' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='7.7' r='1.15' fill='%23000' stroke='none'/%3E%3C/svg%3E");
}

/* =========================================================================
   LA BARRETTA SULLA CATEGORIA (19/08/2026, richiesta di Alex)
   Passando sopra una voce della lista nel pannello compare un filetto verticale
   a sinistra. E' lo stesso segno gia' in uso nell'elenco opzioni per marcare
   una riga - inset box-shadow, non un border: il border sposterebbe il testo
   di 3 px al passaggio del mouse, e la riga "salterebbe".
   Colore: l'azzurro dei collegamenti, perche' quella riga porta alla categoria.
   ========================================================================= */
.dcfg-pan-salta { transition: box-shadow .12s ease, background-color .12s ease; }
.dcfg-pan-salta:hover,
.dcfg-pan-salta:focus-visible {
  box-shadow: inset 3px 0 0 var(--dcfg-blue, #1c63ab);
}
html[data-theme="dark"] .dcfg-pan-salta:hover,
html[data-theme="dark"] .dcfg-pan-salta:focus-visible {
  box-shadow: inset 3px 0 0 #7fb2ff;
}

/* Il CURSORE del budget si trascinava per 650 px, quasi tutta la fascia, per
   scegliere un numero che poi si legge grande qui accanto. Accorciato: la corsa
   resta comoda e la riga smette di sembrare vuota a destra. (19/08/2026) */
/* Il cursore si ADATTA allo spazio che resta, non lo impone: affiancato al
   titolo la colonna dei comandi vale 762 px, e a 420 fissi il valore e il
   pulsante andavano a capo. Con flex 1 1 220 prende quel che avanza. */
/* Da battere: .drako-ab-embed .drako-abx-panel[data-abx-panel="budget"]
   .drako-abx-slider-field { flex: 0 0 650px } - quattro pesi, e inchiodava il
   cursore a 650 px anche dopo averlo affiancato al titolo, facendo andare a capo
   valore e pulsante. Stesso selettore piu' .dcfg-genhead: cinque, e vince. */
.dcfg-genhead .drako-ab-embed .drako-abx-panel[data-abx-panel="budget"] .drako-abx-slider-field,
.dcfg-genhead .drako-abx-slider-field { flex: 1 1 220px; min-width: 180px; }

/* I CHIP vanno in fondo, non fra marchio e interruttori: prima spingevano i due
   interruttori a capo e restavano due righe mezze vuote, una col solo marchio e
   una coi soli interruttori. Ora la prima riga e' piena - marchio + i due
   interruttori, 948 px su 999 - e il chip, quando c'e', prende una riga corta
   sotto. */
.dcfg-genhead .drako-abx-foot > .drako-abx-flags { order: 1; }
.dcfg-genhead .drako-abx-foot > .drako-abx-chips { order: 2; }

/* =========================================================================
   BUDGET: TITOLO E COMANDI SULLA STESSA RIGA (19/08/2026)
   Misurato: la riga del titolo era larga 218 px su 1000 - 782 vuoti - e sotto
   il cursore prendeva una riga tutta sua. Due righe per un contenuto che ne
   riempie una: affiancati, sparisce il vuoto in alto a destra e il blocco si
   accorcia di 55 px.
   Solo sul BUDGET: il generatore gioco ha .drako-abx-side (copertina + colonna)
   e li' la disposizione e' gia' a due colonne sue.
   ========================================================================= */
.dcfg-genhead .drako-ab-hero-inner:not(:has(.drako-abx-side)) {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas:
    "testa comandi"
    "piede piede";
  column-gap: 24px;
  row-gap: 8px;
  align-items: center;
  min-height: 0;
}
.dcfg-genhead .drako-ab-hero-inner:not(:has(.drako-abx-side)) > .drako-abx-headrow { grid-area: testa; }
.dcfg-genhead .drako-ab-hero-inner:not(:has(.drako-abx-side)) > .drako-abx-panel   { grid-area: comandi; }
.dcfg-genhead .drako-ab-hero-inner:not(:has(.drako-abx-side)) > .drako-abx-foot    { grid-area: piede; }

/* Il chip torna di fianco al marchio: da solo su una riga usava 142 px su 1000.
   Accanto al campo che lo genera la riga finale si accorcia e si riempie. */
/* Ordine chiesto da Alex (19/08): interruttori sopra, marchio e chip sotto.
   I due interruttori misurano 658, marchio piu' chip 450: insieme sforano i
   1000 della riga, quindi vanno a capo da soli - senza doverlo imporre. */
.dcfg-genhead .drako-ab-hero-inner:not(:has(.drako-abx-side)) > .drako-abx-foot > .drako-abx-flags  { order: 0; }
/* A CAPO SEMPRE, non solo quando non ci sta (19/08). Un elemento invisibile alto
   zero e largo tutta la riga, messo fra gli interruttori e il marchio: chiude la
   riga e manda a capo quel che segue. Serve un separatore perche' l'alternativa
   - stirare gli interruttori al 100% - li riporterebbe larghi mezza fascia, che
   e' proprio quello che avevamo tolto. */
.dcfg-genhead .drako-ab-hero-inner:not(:has(.drako-abx-side)) > .drako-abx-foot::after {
  content: ""; order: 1; flex: 0 0 100%; height: 0; margin: 0;
}
.dcfg-genhead .drako-ab-hero-inner:not(:has(.drako-abx-side)) > .drako-abx-foot > .drako-abx-brands { order: 2; }
.dcfg-genhead .drako-ab-hero-inner:not(:has(.drako-abx-side)) > .drako-abx-foot > .drako-abx-chips  { order: 3; }

/* =========================================================================
   GENERATORE GIOCO: COPERTINA PIU' GRANDE, COMANDI PIU' STRETTI (19/08/2026)
   La locandina era 195 px in un blocco da 1046: piccola per un'immagine che e'
   il soggetto della pagina, e finiva sopra la riga del marchio invece di
   arrivarci. Portata a 250 e allungata fino in fondo; la colonna dei comandi
   perde quei 55 px e si stringe, che era l'altra meta' della richiesta.
   ========================================================================= */
.dcfg-genhead .drako-abx-cover { flex: 0 0 250px; }
.dcfg-genhead .drako-abx-side { align-items: stretch; }
.dcfg-genhead .drako-abx-cover .drako-abx-game-thumb { height: 100%; object-fit: cover; }

/* L'aria fra le fasce cresce insieme alla copertina (19/08, secondo giro).
   Stringendo i comandi a 2 px di stacco le righe si erano incollate fra loro
   mentre la locandina si allungava: sproporzionato. Con 14 px il blocco respira
   e la colonna dei comandi accompagna l'altezza dell'immagine invece di
   rincorrerla. */
.dcfg-genhead .drako-abx-side-main { gap: 14px 20px; justify-content: center; }
.dcfg-genhead .drako-ab-bar-fps { gap: 12px 14px; }
.dcfg-genhead .drako-abx-side-main > .drako-abx-foot { gap: 12px 16px; padding-top: 12px; }

/* L'AVVISO FPS SALE IN ALTO A DESTRA (19/08/2026, richiesta di Alex).
   Accanto a "Genera la tua build" restavano circa 500 px vuoti, e l'avviso
   prendeva una riga tutta sua larga quanto la colonna: con quella larghezza
   sembrava una fascia d'errore invece di una nota. Spostato li', occupa il
   vuoto e il blocco perde una riga.
   Serve la griglia perche' i quattro pezzi sono fratelli in colonna: il titolo
   e l'avviso condividono la prima riga, campi e piede restano a tutta larghezza. */
.dcfg-genhead .drako-abx-side-main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas:
    "testa avviso"
    "campi campi"
    "piede piede";
  align-items: center;
}
.dcfg-genhead .drako-abx-side-main > .drako-abx-headrow { grid-area: testa; }
.dcfg-genhead .drako-abx-side-main > .drako-abx-fpswarn {
  grid-area: avviso;
  justify-self: end;            /* accostato al bordo destro, non stirato */
  width: auto; max-width: 100%;
  margin: 0; padding-top: 7px; padding-bottom: 7px;
}
.dcfg-genhead .drako-abx-side-main > .drako-abx-panel { grid-area: campi; }
.dcfg-genhead .drako-abx-side-main > .drako-abx-foot  { grid-area: piede; }
/* La copertina aveva height:260px fisso, e un'altezza esplicita ANNULLA lo
   stretch: restavano 63 px di vuoto sotto l'immagine, proprio dove finisce la
   riga del marchio. Tolto il vincolo, si allunga fino in fondo da sola. */
.dcfg-genhead .drako-abx-side > .drako-abx-cover { height: auto; align-self: stretch; }
.dcfg-genhead .drako-abx-side > .drako-abx-cover > .drako-abx-game-thumb {
  height: 100%; width: 100%; object-fit: cover;
}

/* La copertina detta l'altezza del blocco, e le tre fasce dei comandi si
   distribuiscono in quello che c'e' (19/08/2026). Prima la locandina si
   adattava ai comandi: allungandola e' il contrario, e le righe guadagnano
   respiro senza doverlo aggiungere a mano una per una.
   360 px: la locandina di un gioco e' 285x380, quindi a questa altezza si vede
   quasi per intero invece di essere tagliata a meta'. */
/* 360 era troppo: le fasce si allontanavano fra loro e il blocco diventava
   piu' alto del suo contenuto. 300 e' il compromesso - la locandina si vede
   larga e distesa, i comandi respirano senza galleggiare. */
.dcfg-genhead .drako-abx-side > .drako-abx-cover { min-height: 300px; }
.dcfg-genhead .drako-abx-side-main {
  align-content: center;   /* le fasce restano vicine fra loro, centrate */
  align-items: center;
  row-gap: 12px;
}
/* Il filetto resta sulla categoria in cui ti trovi mentre scorri, non solo al
   passaggio del mouse: e' un indicatore di posizione, e un indicatore che si
   vede solo quando lo cerchi col puntatore non indica niente. */
.dcfg-pan-salta.is-active { box-shadow: inset 3px 0 0 var(--dcfg-blue, #1c63ab); }
html[data-theme="dark"] .dcfg-pan-salta.is-active { box-shadow: inset 3px 0 0 #7fb2ff; }
/* Lo stacco fra la riga del titolo e quella dei campi era troppo: la griglia
   distribuiva l'altezza della copertina anche li'. Righe compatte in alto, lo
   spazio che avanza va in fondo. */
.dcfg-genhead .drako-abx-side-main { row-gap: 6px; align-content: start; padding: 4px 0; }

/* =========================================================================
   COPERTINA: SMETTE DI DETTARE L'ALTEZZA (20/08/2026)
   Il 19/08 la locandina era stata portata a 250x300 apposta per allontanare
   fra loro le fasce dei comandi. Il 20/08 l'occhiello e il titolo del
   generatore sono stati tolti: la colonna dei comandi ha perso ~50 px e il
   pavimento di 300 e' rimasto li' a reggere il vuoto.
   Misurato in pagina: contenuto 199 px dentro un blocco da 300 -> 101 px di
   niente, meta' sopra la riga dei campi e meta' sotto.
   Adesso il pavimento sta SOTTO l'altezza del contenuto (190): non aggiunge
   mai spazio, serve solo a impedire che la locandina si riduca a una striscia
   se un domani i comandi si accorciano ancora. La larghezza scende in
   proporzione, se no da 250x199 la copertina diventava panoramica e
   object-fit tagliava il titolo del gioco.
   ========================================================================= */
.dcfg-genhead .drako-abx-cover { flex: 0 0 190px; }
/* 230 e non 190 (20/08, secondo giro): a filo del contenuto la locandina
   sembrava schiacciata. Cosi' resta piu' alta di ~30 px del necessario -
   respiro, non il vuoto da 101 px di prima - e la proporzione (190x230)
   si avvicina a quella vera di una copertina, 285x380. */
.dcfg-genhead .drako-abx-side > .drako-abx-cover { min-height: 230px; }

/* =========================================================================
   I COMANDI SEGUONO LA COPERTINA (20/08/2026)
   Con `align-content: start` le due fasce si accatastavano in alto e i ~30 px
   che avanzano rispetto alla locandina cadevano tutti in fondo, come un
   gradino. Distribuendoli, la riga dei campi resta in alto e quella degli
   interruttori arriva a filo del bordo basso dell'immagine: la colonna dei
   comandi accompagna la copertina invece di finire prima.
   La prima traccia della griglia e' quella dell'occhiello, ormai vuota (0 px):
   resta in cima e si prende una parte dello stacco, ed e' il motivo per cui i
   campi non partono esattamente a filo. Voluto: attaccati al bordo superiore
   stavano peggio.
   ========================================================================= */
.dcfg-genhead .drako-abx-side-main { align-content: space-between; }

/* =========================================================================
   A FILO CON I BORDI DELLA COPERTINA (20/08/2026)
   Con `space-between` i comandi si distribuivano si', ma la prima traccia della
   griglia - quella dell'occhiello, ormai vuota - restava in cima e si prendeva
   una fetta di stacco: misurato, i campi partivano 21 px sotto il bordo alto
   della locandina mentre in basso ne restavano 4. Qui la traccia vuota sparisce
   e le righe diventano due: campi a filo del bordo alto, interruttori a filo di
   quello basso.
   SE UN GIORNO TORNA L'AVVISO (.drako-abx-fpswarn, tolto il 20/08 insieme
   all'occhiello) va rimessa la sua riga qui dentro, altrimenti finisce
   posizionato d'ufficio in coda.
   ========================================================================= */
.dcfg-genhead .drako-abx-side-main {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "campi"
    "piede";
}
.dcfg-genhead .drako-abx-side-main > .drako-abx-headrow { display: none; }

/* =========================================================================
   LA RIGA ATTIVA SI VEDE ANCHE DAL FONDO (20/08/2026)
   Il solo filetto azzurro e' un segnale sottile su un elenco di sei righe tutte
   uguali: da fermo si trova, scorrendo no. Un fondo appena piu' chiaro della
   carta del pannello dice "sei qui" senza gridare.
   La sottolineatura del nome se ne va: era la grammatica del collegamento sotto
   il puntatore, e sulla riga in cui ci si TROVA non significa niente - il fondo
   e il filetto dicono gia' tutto, e tre segnali per la stessa cosa sono rumore.
   Colori dai token del sito, non inventati: la stessa superficie di passaggio
   che usano le altre righe dell'interfaccia.
   ========================================================================= */
.dcfg-pan-salta.is-active { background: var(--drako-bg-hover, #eef2f7); }
html[data-theme="dark"] .dcfg-pan-salta.is-active { background: var(--drako-bg-hover, #323840); }
.dcfg-pan-salta.is-active,
.dcfg-pan-salta.is-active:hover { text-decoration: none; }


/* ============================================================================
   VISTA ELENCO — LE COLONNE NELL'ORDINE CHIESTO DA ALEX (21/08)
   ============================================================================
   Ordine: [scelta] [foto] [nome + sigle] [promo + scadenza] [disponibilita']
           [prezzo] [quantita'] [(i)]

   Il difetto misurato sulla RAM della 033-456, dieci righe: il corpo era largo
   330 px sulle righe in promozione e 443 su tutte le altre. Causa unica: il
   countdown non aveva una colonna riservata, era un elemento in piu' in coda
   alla riga. Dove c'era si prendeva 113 px, dove non c'era quei 113 px
   tornavano al corpo — che e' l'unico elemento elastico. E siccome la
   disponibilita' stava DENTRO il corpo, si spostava con lui: partiva a 313 px
   sulle righe in offerta e a 426 sulle altre.

   Non serviva riscrivere la riga in `grid`: bastava dare una misura fissa alla
   cella che non ce l'aveva e togliere la disponibilita' dal corpo. E' la stessa
   dottrina gia' scritta qui sopra per gli FPS e per il selettore quantita' —
   «la colonna vuota deve restare vuota, non sparire».

   Il markup lo cambia il PHP (drako_pcb2_render_opt in pc_configurator_v2.php):
   nasce `.drako-pcb2-opt-flags` fra il corpo e la disponibilita'. */

/* La cella promo+scadenza. 118 px = la pastiglia del countdown (100) piu' il
   respiro ai lati; il badge PROMO, piu' corto, ci sta comodo. I due dati si
   impilano: la riga e' alta 74 px, ci stanno senza crescere. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-flags {
  flex:0 0 118px; min-width:118px; align-self:stretch;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
  border-left:1px solid #eceff3;
}
/* Il badge torna un elemento normale: nell'elenco non e' piu' un'etichetta
   appoggiata sopra il prezzo. In vista a card resta assoluto sulla foto. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-badges {
  position:static; top:auto; left:auto; right:auto; bottom:auto; transform:none;
  display:flex; gap:4px; pointer-events:none;
}
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-countdown {
  margin:0; flex:0 0 auto;
}

/* La disponibilita' e' una colonna della riga, non un figlio del corpo.
   126 px e' la misura di «Non disponibile», l'etichetta piu' lunga: era gia'
   la larghezza scelta quando la colonna viveva dentro il corpo. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-stock {
  flex:0 0 126px; min-width:126px;
  border-left:1px solid #eceff3; padding-left:16px; align-self:stretch;
  display:flex; align-items:center; margin:0;
}
/* Il corpo torna a una colonna sola: nome sopra, sigle sotto. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-body {
  grid-template-columns:minmax(0,1fr); column-gap:0;
}

/* Separatori: la cella promo e' la prima delle colonne di destra, quindi il
   filo verticale parte da li'. */
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-flags,
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-stock {
  border-left-color:var(--drako-border-strong);
}

/* ⚠️ LA VISTA A CARD NON DEVE ACCORGERSENE.
   `display:contents` fa sparire il contenitore e lascia i due figli dove
   erano nel flusso; il countdown, che nella scheda sta in fondo, ci torna con
   `order` — nella colonna flex della card l'ordine dichiarato vince su quello
   del DOM. Il badge e' `position:absolute`: non lo tocca nessuno dei due. */
#drakoCfgCustomizer .dcfg-cat-grid:not(.is-list) .drako-pcb2-opt-flags { display:contents; }
#drakoCfgCustomizer .dcfg-cat-grid:not(.is-list) .drako-pcb2-opt-countdown { order:9; }
/* ⚠️ E LO SPAZIO VUOTO DELLA SCHEDA VA RIMESSO DOV'ERA.
   `.drako-pcb2-opt-body` è `flex:1 1 auto`: nella scheda si allarga fino a
   spingere il prezzo in fondo, e finché la disponibilità stava DENTRO il corpo
   il vuoto le restava sotto. Portandola fuori il vuoto è rimasto nel corpo e la
   riga «Disponibile» è scivolata giù di 10 px, verificato al pixel sul
   confronto prima/dopo della vista a schede.
   Il vuoto lo prende ora la disponibilità con `margin-bottom:auto` — nel flex a
   colonna il margine automatico si mangia lo spazio libero — e il corpo torna a
   occupare la sua altezza naturale. Risultato identico a prima. */
#drakoCfgCustomizer .dcfg-cat-grid:not(.is-list) .drako-pcb2-opt-body { flex:0 0 auto; }
#drakoCfgCustomizer .dcfg-cat-grid:not(.is-list) .drako-pcb2-opt-stock { margin-bottom:auto; margin-top:2px; }
/* I 2 px non sono un numero magico: sono margini che prima si FONDEVANO.
   Dentro il corpo, `.drako-pcb2-opt-name` (margine sotto 2 px) e la
   disponibilità (margine sopra 4 px) erano fratelli in un blocco, e due margini
   adiacenti collassano nel maggiore dei due: 4 px in tutto. Portando la
   disponibilità fuori dal corpo il bordo del contenitore li separa e i margini
   si sommano: 6 px, e la scheda cresceva di 2. Verificato: con 4 px la scheda
   sta a 302, con 2 torna ai 300 dell'originale. */

/* ⚠️ LA COLONNA PREZZO LARGA 210 px SERVE SOLO DOVE CI SONO GLI FPS.
   Quella misura nasce come 84 (FPS a tre cifre) + 18 + 108 (prezzo a quattro
   cifre), ma gli FPS li inietta il JS **solo** su `cpu` e `gpu` — è scritto a
   chiare lettere in dcfgInjectFps(). Altrove quei 102 px erano vuoto riservato,
   e il vuoto lo pagava il nome: con la nuova cella promo il corpo della RAM
   scendeva a 179 px e i nomi Corsair si troncavano a metà.
   Il prezzo da solo chiede 110 px («+ € 1.299,00») più i 16 del separatore.
   La deroga è agganciata allo slot, esattamente come la regola del JS: se un
   domani gli FPS arrivano altrove, si aggiunge lo slot qui e là. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-price { flex:0 0 126px; min-width:126px; }
#drakoCfgCustomizer .dcfg-cat[data-slot="cpu"] .dcfg-cat-grid.is-list .drako-pcb2-opt-price,
#drakoCfgCustomizer .dcfg-cat[data-slot="gpu"] .dcfg-cat-grid.is-list .drako-pcb2-opt-price { flex:0 0 210px; min-width:210px; }
/* Due pixel per colonna tolti allo spazio fra le celle: sei intercapedini, e
   il nome se li riprende tutti. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt { gap:11px; }

/* ⚠️ SU TELEFONO IL NOME DEL PRODOTTO ERA LARGO 3 PIXEL — E LO ERA GIA' PRIMA
   ---------------------------------------------------------------------------
   Misurato a 390 px sulla PRODUZIONE, prima di questo intervento: nella vista
   elenco `.drako-pcb2-opt-body` era largo **3 px**. Il nome del prodotto — il
   dato su cui si sceglie — semplicemente non c'era. Il blocco del 16/08 diceva
   che «sotto gli 860 px le misure fisse cadono», ma cadevano solo per prezzo e
   quantita': la riga restava `flex-wrap:nowrap`, e in una riga che non va a
   capo l'unico elemento con `min-width:0` e' quello che si schiaccia. Era il
   corpo.
   Qui la riga va a capo davvero: al corpo si da' una base pari alla riga meno
   scelta, foto e intercapedini, cosi' occupa da solo la prima linea; promo,
   disponibilita', prezzo e quantita' scendono sotto e si dispongono da se'.
   La riga diventa piu' alta: e' il prezzo da pagare per far vedere il nome, ed
   e' un prezzo che su un telefono si paga volentieri. */
@media (max-width:860px) {
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt {
    flex-wrap:wrap; row-gap:7px; align-items:center;
  }
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-body {
    flex:1 1 calc(100% - 90px); min-width:0;
  }
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-flags {
    flex:0 0 auto; min-width:0; flex-direction:row; gap:6px;
    border-left:0; padding-left:0; align-self:center;
  }
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-stock {
    flex:0 0 auto; min-width:0; border-left:0; padding-left:0; align-self:center;
  }
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-price {
    flex:1 1 auto; min-width:0; align-self:center;
  }
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-actions {
    flex:0 0 auto; min-width:0;
  }
  /* Il nome puo' respirare su due righe: qui lo spazio verticale c'e'. */
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .dcfg-opt-tit { white-space:normal; }
  /* Con la riga su piu' linee la (i) centrata verticalmente resta sospesa a
     mezz'aria: si aggancia in alto, all'altezza del nome a cui si riferisce. */
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-info {
    top:10px; right:8px; transform:none;
  }
}


/* ============================================================================
   ULTIME ILLUSTRAZIONI FANTASY SOSTITUITE + TINTE DI STATO PIU' CONTRASTATE
   (21/08)
   ============================================================================ */

/* 1 — Le tre icone rimaste illustrate diventano segni come le altre.
   `dcfg_ic_save` e `dcfg_ic_share` stanno in testa alle finestre Salva e
   Condividi (40 px), `dcfg_ic_game` e' il controller del pannello FPS (46 px)
   e del distintivo nella barra fissa (18-34 px). Tutti e tre i fondi sono
   chiari — misurati: #f7f9fc il pannello FPS, #eef4ff il distintivo — quindi
   il nero al 80% e' il trattamento giusto, esattamente come per le icone di
   categoria.
   ⚠️ Via l'ombra portata: era nata per un'illustrazione con volume, sotto un
   tratto di 2 px disegna una sbavatura grigia e basta. */
/* ⚠️ `.dcfg-cnav-fps-ic` vive in `.dcfg-pan`, FUORI da #drakoCfgCustomizer:
   il selettore con l'id non lo prende. Verificato risalendo la catena in
   pagina, non leggendo il PHP. */
#drakoCfgCustomizer .dcfg-mdl-ic,
.dcfg-mdl-ic,
.dcfg-cnav-fps-ic,
#drakoCfgBar .dcfg-bar-badge-img,
.dcfg-uni-h-ic {
  filter:none;
  opacity:.8;
}
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-mdl-ic,
html[data-theme="dark"] .dcfg-mdl-ic,
html[data-theme="dark"] .dcfg-cnav-fps-ic,
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-badge-img,
html[data-theme="dark"] .dcfg-uni-h-ic {
  filter:invert(1);
  opacity:.82;
}

/* 2 — Ambra e rosso dell'intestazione di categoria, misurati sul loro fondo
   reale (#e9f0f8):
     avviso  #92600a = 4,69:1  ->  #7a4c00 = 6,39:1
     errore  #cf2632 = 4,60:1  ->  #b21e28 = 5,88:1
   Le vecchie passavano il minimo per il rotto della cuffia su un testo che
   dice «qui c'e' qualcosa da sistemare»: e' l'ultimo posto dove si puo'
   sbiadire. Si tocca SOLO il testo dell'intestazione — non il token
   `--dcfg-red`, che tinge anche bordi e fondi dove il contrasto non e' in
   discussione, e non il tema scuro, che ha gia' le sue tinte chiare
   (#f4c04e, #ff8f8f) su fondo scuro. */
#drakoCfgCustomizer .dcfg-cat.has-warn .dcfg-cat-title,
#drakoCfgCustomizer .dcfg-cat.has-warn .dcfg-cat-title::after,
#drakoCfgCustomizer .dcfg-cat.has-warn .dcfg-cat-sel { color:#7a4c00; }
#drakoCfgCustomizer .dcfg-cat.has-error .dcfg-cat-title,
#drakoCfgCustomizer .dcfg-cat.has-error .dcfg-cat-title::after,
#drakoCfgCustomizer .dcfg-cat.has-error .dcfg-cat-sel { color:#b21e28; }


/* ============================================================================
   LA SCADENZA DELLA PROMO SOPRA IL PREZZO, IN ENTRAMBE LE VISTE (21/08)
   ============================================================================
   Prima la pastiglia stava nella cella promo insieme al badge, e la coppia
   veniva centrata come blocco: il badge PROMO scendeva a 29..45 px dall'alto
   della riga dove la scadenza non c'era e saliva a 15..30 dove c'era — stesso
   badge, due altezze, misurato sui dissipatori della 033-456.
   La scadenza qualifica il prezzo scontato, quindi vive nella cella del prezzo
   e sta SOPRA la cifra. In elenco e nella scheda con due meccaniche diverse,
   perche' i due contenitori sono diversi, ma con lo stesso esito visivo.

   ⚠️ L'involucro serve. Nella scheda la riga propria si ottiene con
   `flex:0 0 100%`, che pero' stirerebbe il fondo rosa per tutta la larghezza
   (era il difetto segnalato): l'involucro prende la riga, `.dcfg-cd-pill`
   dentro resta della misura del testo. */

/* La cromatura della pastiglia sta sull'involucro interno, non sul blocco. */
#drakoCfgCustomizer .drako-pcb2-opt-countdown {
  background:none; border:0; padding:0; border-radius:0;
  display:flex; align-items:center;
}
#drakoCfgCustomizer .dcfg-cd-pill {
  display:inline-flex; align-items:center; justify-content:center; gap:4px;
  background:var(--dcfg-red-bg, #fdecec); color:#b91c1c;
  border:1px solid #f3c9c9; box-sizing:border-box;
  font-size:10px; font-weight:700; font-variant-numeric:tabular-nums;
  padding:2px 8px; border-radius:100px; letter-spacing:0; line-height:1.35;
  white-space:nowrap; max-width:100%;
}
#drakoCfgCustomizer .dcfg-cd-pill > * { color:inherit; }

/* ELENCO — riga alta 74 px: la pastiglia fluttua sopra la cifra senza
   spostarla di un pixel. Impilarle avrebbe spinto giu' il prezzo di 13 px
   sulle sole righe in promozione, cioe' avrebbe mosso il dato piu' importante
   della riga per fare posto a un accessorio. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-countdown {
  position:absolute; top:-3px; right:0; margin:0; justify-content:flex-end;
}
/* ⚠️ NELL'ELENCO LA PASTIGLIA DEVE STARE DENTRO LA SUA COLONNA.
   Con l'etichetta intera misura 175 px e la cella prezzo, sugli slot senza FPS,
   ne ha 126 (110 di contenuto): la pastiglia scavalcava il filo verticale fra
   disponibilita' e prezzo e sembrava una barra buttata di traverso sulle righe.
   Nell'elenco resta «Promo 9g 06:27:17» — senza orologio e senza «finisce fra»:
   102 px, dentro la colonna. Ci si puo' permettere la forma corta perche' li' il
   badge PROMO e' sulla stessa riga, due celle piu' in la', alla stessa altezza:
   il nesso si vede. Nella scheda no — il badge sta in alto sull'immagine — e
   infatti li' l'etichetta resta per intero. */
/* L'orologio non serve piu': l'etichetta dice gia' che si parla di tempo, e i
   15 px che occupava servono. Nella scheda con l'orologio la pastiglia stava a
   169 px dentro 171 di spazio utile — due pixel di margine, cioe' un guasto in
   attesa del primo carattere in piu'. */
#drakoCfgCustomizer .dcfg-cd-ico { display:none; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .dcfg-cd-lab2 { display:none; }
#drakoCfgCustomizer .dcfg-cat-grid.is-list .dcfg-cd-pill { padding:2px 7px; }

/* L'ETICHETTA: senza, la pastiglia e' un numero che scorre e non si capisce a
   cosa si riferisca — il badge PROMO nella scheda sta in alto sull'immagine,
   lontano. «Promo finisce fra 10g 07:03:14» dice le due cose in una riga: che
   c'e' una promozione e quanto le resta. Sotto il giorno il JS toglie i giorni
   e resta «Promo finisce fra 04:12:33», che si legge lo stesso. */
#drakoCfgCustomizer .dcfg-cd-lab { font-weight:600; letter-spacing:0; }
#drakoCfgCustomizer .dcfg-cd-pill { gap:4px; }
#drakoCfgCustomizer .dcfg-cd-val { font-variant-numeric:tabular-nums; }
/* La cella promo ora ha un solo inquilino: si centra da se'. */
#drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-flags { gap:0; }

/* SCHEDA — riga propria sopra «Incluso»/prezzo. Lo stacco lo da' il `gap:10px`
   che `.drako-pcb2-opt-price` ha gia': aggiungere anche un margine faceva 20 px
   e la griglia cresceva di 63 px (misurato col confronto A/B). */
/* ⚠️ `flex-wrap:wrap` sul blocco prezzo: nella scheda arrivava `nowrap` da una
   regola storica, e con quello la base 100% non manda a capo niente — la
   pastiglia finiva schiacciata sulla stessa riga della cifra, sovrapposta.
   Verificato leggendo lo stile calcolato in pagina, non il foglio. */
/* Serve `!important`: la regola storica di riga 1141 impone `nowrap!important`
   al blocco prezzo della scheda, e senza pari forza la base 100% non manda a
   capo nulla — la pastiglia restava schiacciata sulla cifra. */
#drakoCfgCustomizer .dcfg-cat-grid:not(.is-list) .drako-pcb2-opt-price { flex-wrap:wrap !important; }
#drakoCfgCustomizer .dcfg-cat-grid:not(.is-list) .drako-pcb2-opt-countdown {
  position:static; flex:0 0 100%; order:-1; margin:0; justify-content:flex-start;
}

@media (max-width:860px) {
  /* Sciolte le colonne, la pastiglia torna in linea come gli altri dati. */
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-countdown {
    position:static; margin:0 0 0 8px; justify-content:flex-start;
  }
}

/* FASE 2 — accessibilita e robustezza (test, 2026-08-22). */
#drakoCfgBar button.dcfg-bar-badge,
#drakoCfgBar button.dcfg-bar-finance {
  appearance:none;
  font:inherit;
  text-align:left;
}
#drakoCfgBar button.dcfg-bar-finance .drako-pi-installments { display:block; }
#dcfgFbWrap[hidden] { display:none !important; }
.dcfg-fin-modal-close:focus-visible,
.dcfg-cfgm-close:focus-visible,
.dcfg-fb-x:focus-visible,
.dcfg-fb-prev-x:focus-visible,
#dcfgInfoModal .dcfg-info-close:focus-visible,
#drakoCfgCustomizer .drako-pcb2-opt-info:focus-visible,
#drakoCfgCustomizer .dcfg-view-btn:focus-visible,
#drakoCfgCustomizer .dcfg-cat-collapse:focus-visible,
#drakoCfgCustomizer .dcfg-qbtn:focus-visible {
  outline:2px solid var(--drako-focus-ring, #1c63ab);
  outline-offset:2px;
}
html[data-theme="dark"] .dcfg-sella-field > span { color:var(--drako-text-secondary); }
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-stock.pdm-stock-order {
  color:var(--drako-warning) !important;
}
html[data-theme="dark"] #drakoCfgCustomizer .drako-pcb2-opt-stock.pdm-stock-order::before {
  background:var(--drako-warning) !important;
}
html[data-theme="dark"] #drakoCfgBar .dcfg-bar-badge-txt small {
  color:var(--drako-text-secondary) !important;
}
html[data-theme="dark"] #drakoCfgBar .drako-pi-inst-sub {
  color:var(--drako-text-muted) !important;
}
html[data-theme="dark"] #drakoCfgCustomizer .dcfg-catstrip-fact small {
  color:var(--drako-text-secondary) !important;
}

@media (max-width:860px) {
  #drakoCfgCustomizer .drako-pcb2-opt-info,
  #drakoCfgCustomizer .dcfg-cat-grid.is-list .drako-pcb2-opt-info,
  #drakoCfgCustomizer .dcfg-view-btn,
  #drakoCfgCustomizer .dcfg-qbtn,
  #drakoCfgCustomizer .dcfg-cat-collapse,
  #dcfgInfoModal .dcfg-info-close,
  .dcfg-fin-modal-close,
  .dcfg-cfgm-close,
  .dcfg-fb-x,
  .dcfg-fb-prev-x {
    min-width:44px !important;
    width:44px !important;
    min-height:44px !important;
    height:44px !important;
  }
  .dcfg-pan .dcfg-cnav-action { min-height:44px; }
  #drakoCfgBar .dcfg-bar-finance { min-height:44px !important; }
  .dcfg-sella-fields input,
  .dcfg-sella-submit,
  .dcfg-sella-best,
  .dcfg-rate-radio,
  .dcfg-fb-send,
  .dcfg-fb-cap,
  .dcfg-fb-file-lbl { min-height:44px; }
  .dcfg-rate-radio { min-width:44px; display:inline-flex; align-items:center; justify-content:center; }
  .dcfg-sella-rates td { height:44px; box-sizing:border-box; }
}

@media (max-width:768px) {
  .dcfg-sella-fields { grid-template-columns:1fr; }
  .dcfg-sella-field:has(input[name="phone"]),
  .dcfg-sella-field:has(textarea) { grid-column:auto; }
}

@media (prefers-reduced-motion:reduce) {
  #dcfgInfoModal .dcfg-info-thumb,
  #dcfgInfoModal .dcfg-info-link,
  #drakoCfgCustomizer .drako-pcb2-opt-info,
  #drakoCfgCustomizer .dcfg-qbtn,
  #drakoCfgCustomizer .dcfg-cat-collapse svg,
  .dcfg-fin-modal,
  .dcfg-fin-modal-box,
  .dcfg-cfgm-modal,
  .dcfg-fb-box,
  .dcfg-uni-modal,
  .dcfg-uni-modal .dcfg-bar-uni-grid,
  #dcfgAutoToast,
  .dcfg-cnav-riepilogo,
  #drakoCfgBar,
  #drakoCfgCustomizer .dcfg-cnav-fps-badge,
  .drako-pi-cfg-empty-go,
  #drakoCfgCustomizer .drako-pcb2-opt.is-incompat.dcfg-breathe,
  #drakoCfgCustomizer .dcfg-cat.dcfg-cap-hit .dcfg-cat-title {
    animation:none !important;
    transition:none !important;
    scroll-behavior:auto !important;
  }
}
