/* =========================================================================
   Preventivatore Luce PMI — Completo — stile del widget interno
   (shortcode [PRV_LUCE_PMI_COMPLETO], riservato agli utenti loggati)
   Stessa identica grafica dello strumento completo (ex Artifact claude.ai),
   ma con OGNI selettore annidato sotto .plpmic-app (incluse le variabili
   CSS, rinominate --plpmic-*) per non toccare il tema del sito: nessuna
   regola su body/html/input/select globali come nel file originale, che
   lì poteva permetterselo essendo una pagina a sé stante.
   ========================================================================= */
.plpmic-app{
  --plpmic-bg:#FFFFFF; --plpmic-surface:#FFFFFF; --plpmic-surface-2:#F7F4F3; --plpmic-ink:#1B2420; --plpmic-ink-soft:#4B564F;
  --plpmic-border:#E3DFDD; --plpmic-accent:#C81F24; --plpmic-accent-strong:#9E181C; --plpmic-accent-soft:#FBE4E5;
  --plpmic-header-bg:#100A06; --plpmic-header-ink:#F5F1EE; --plpmic-header-ink-soft:#B9B2AC;
  --plpmic-highlight:#B9701E; --plpmic-highlight-strong:#8F5416; --plpmic-highlight-soft:#F6E6CE;
  --plpmic-success:#2E7D46; --plpmic-success-soft:#E4F3E6; --plpmic-danger:#B03A2E; --plpmic-danger-soft:#F8E4E1;
  --plpmic-shadow:0 1px 2px rgba(27,36,32,.06),0 8px 24px -12px rgba(27,36,32,.18); --plpmic-radius:10px;
  --plpmic-font-display:"Big Shoulders",Oswald,sans-serif;
  --plpmic-font-body:"IBM Plex Sans","Segoe UI",Arial,sans-serif;
  --plpmic-font-mono:"IBM Plex Mono",SFMono-Regular,Consolas,monospace;

  background:var(--plpmic-bg); color:var(--plpmic-ink); font-family:var(--plpmic-font-body);
  font-size:16px; line-height:1.5; -webkit-font-smoothing:antialiased;
  padding:8px 0 16px;
}
@media (prefers-color-scheme: dark){
  .plpmic-app:not([data-plpmic-theme="light"]){
    --plpmic-bg:#12181A; --plpmic-surface:#1B2325; --plpmic-surface-2:#202A2C; --plpmic-ink:#ECEAE2; --plpmic-ink-soft:#A9B3AC;
    --plpmic-border:#2E3A3B; --plpmic-accent:#E23A3E; --plpmic-accent-strong:#F28C8F; --plpmic-accent-soft:#3A1616;
    --plpmic-highlight:#E8A94E; --plpmic-highlight-strong:#F2C381; --plpmic-highlight-soft:#3A2C14;
    --plpmic-success:#57C278; --plpmic-success-soft:#1C3324; --plpmic-danger:#E17568; --plpmic-danger-soft:#3A211D;
    --plpmic-shadow:0 1px 2px rgba(0,0,0,.35),0 8px 24px -12px rgba(0,0,0,.55);
  }
}
.plpmic-app[data-plpmic-theme="dark"]{
  --plpmic-bg:#12181A; --plpmic-surface:#1B2325; --plpmic-surface-2:#202A2C; --plpmic-ink:#ECEAE2; --plpmic-ink-soft:#A9B3AC;
  --plpmic-border:#2E3A3B; --plpmic-accent:#E23A3E; --plpmic-accent-strong:#F28C8F; --plpmic-accent-soft:#3A1616;
  --plpmic-highlight:#E8A94E; --plpmic-highlight-strong:#F2C381; --plpmic-highlight-soft:#3A2C14;
  --plpmic-success:#57C278; --plpmic-success-soft:#1C3324; --plpmic-danger:#E17568; --plpmic-danger-soft:#3A211D;
  --plpmic-shadow:0 1px 2px rgba(0,0,0,.35),0 8px 24px -12px rgba(0,0,0,.55);
}
.plpmic-app, .plpmic-app *{ box-sizing:border-box; }
.plpmic-app ::selection{ background:var(--plpmic-accent-soft); color:var(--plpmic-accent-strong); }
.plpmic-app .app-shell{ max-width:920px; margin:0 auto; padding:16px 22px 48px; }
.plpmic-app header.app-header{
  display:flex; flex-direction:column; gap:6px; margin-bottom:30px;
  background:var(--plpmic-header-bg); color:var(--plpmic-header-ink); border-radius:var(--plpmic-radius);
  padding:24px 26px;
}
.plpmic-app .brand-eyebrow{
  font-family:var(--plpmic-font-mono); text-transform:uppercase; letter-spacing:.09em;
  font-size:.72rem; color:var(--plpmic-accent); font-weight:500;
}
.plpmic-app h1.app-title{
  font-family:var(--plpmic-font-display); font-weight:700; font-size:clamp(2rem,5vw,2.7rem);
  text-wrap:balance; margin:0; letter-spacing:.005em; line-height:1.05; color:var(--plpmic-header-ink);
}
.plpmic-app .app-tagline{ color:var(--plpmic-header-ink-soft); font-size:1rem; max-width:62ch; margin:2px 0 0; }
.plpmic-app .bollette-riconosciute{
  border:1px solid var(--plpmic-border); border-radius:var(--plpmic-radius); background:var(--plpmic-surface-2);
  padding:16px 18px; margin:0 0 26px;
}
.plpmic-app .br-eyebrow{
  font-family:var(--plpmic-font-mono); text-transform:uppercase; letter-spacing:.05em;
  font-size:.72rem; font-weight:600; color:var(--plpmic-ink-soft); margin:0 0 10px;
}
.plpmic-app .br-chips{ list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin:0 0 12px; padding:0; }
.plpmic-app .br-chips li{
  font-size:.82rem; font-weight:600; padding:5px 12px; border-radius:999px;
  background:var(--plpmic-surface); border:1px solid var(--plpmic-border); color:var(--plpmic-ink);
}
.plpmic-app .br-invito{ font-size:.86rem; color:var(--plpmic-ink-soft); margin:0; line-height:1.5; }
.plpmic-app .br-invito a{ color:var(--plpmic-accent); font-weight:600; text-decoration:underline; }
.plpmic-app nav.tabs{
  display:flex; gap:2px; border-bottom:1px solid var(--plpmic-border); margin-bottom:26px;
  overflow-x:auto;
}
.plpmic-app .tab-btn{
  font-family:var(--plpmic-font-body); font-weight:600; font-size:.92rem; padding:11px 16px;
  border:none; background:none; color:var(--plpmic-ink-soft); cursor:pointer;
  border-bottom:2px solid transparent; white-space:nowrap; margin-bottom:-1px;
}
.plpmic-app .tab-btn[aria-selected="true"]{ color:var(--plpmic-accent-strong); border-bottom-color:var(--plpmic-accent); }
.plpmic-app .tab-btn:hover{ color:var(--plpmic-ink); }
.plpmic-app .tab-btn:focus-visible{ outline:2px solid var(--plpmic-accent); outline-offset:2px; }
.plpmic-app .tab-panel[hidden]{ display:none; }
.plpmic-app .stack{ display:flex; flex-direction:column; gap:18px; }
.plpmic-app .card{
  background:var(--plpmic-surface); border:1px solid var(--plpmic-border); border-radius:var(--plpmic-radius);
  padding:22px 24px; box-shadow:var(--plpmic-shadow);
}
.plpmic-app .card h2{ font-family:var(--plpmic-font-display); font-weight:700; font-size:1.35rem; margin:0 0 4px; letter-spacing:.005em; }
.plpmic-app .card .card-sub{ color:var(--plpmic-ink-soft); font-size:.92rem; margin:0 0 16px; }
.plpmic-app .dropzone{
  border:1.5px dashed var(--plpmic-border); border-radius:var(--plpmic-radius); padding:26px 20px;
  text-align:center; background:var(--plpmic-surface-2); cursor:pointer; transition:border-color .15s;
}
.plpmic-app .dropzone:hover, .plpmic-app .dropzone.drag{ border-color:var(--plpmic-accent); }
/* Consensi al caricamento della bolletta (dalla 1.3.0) */
.plpmic-app .consensi{ display:flex; flex-direction:column; gap:10px; margin:0 0 14px; font-size:14px; line-height:1.45; }
.plpmic-app .consensi .consenso{ display:flex; align-items:flex-start; gap:10px; margin:0; font-weight:400; cursor:pointer; }
.plpmic-app .consensi .consenso input[type="checkbox"]{ flex:none; width:20px; height:20px; margin:1px 0 0; }
.plpmic-app .consensi .consenso a{ color:var(--plpmic-accent); text-decoration:underline; }
.plpmic-app .dropzone.bloccata{ opacity:.55; cursor:not-allowed; }
.plpmic-app .dropzone .dz-title{ font-weight:600; margin:0 0 4px; }
.plpmic-app .dropzone .dz-sub{ color:var(--plpmic-ink-soft); font-size:.86rem; margin:0; }
.plpmic-app input[type="file"]{ display:none; }
.plpmic-app .status-line{ font-size:.88rem; margin-top:10px; min-height:1.2em; }
.plpmic-app .status-line.ok{ color:var(--plpmic-success); }
.plpmic-app .status-line.err{ color:var(--plpmic-danger); }
.plpmic-app .status-line.busy{ color:var(--plpmic-ink-soft); }
.plpmic-app details.extract-preview{ margin-top:12px; }
.plpmic-app details.extract-preview summary{ cursor:pointer; font-size:.86rem; color:var(--plpmic-ink-soft); }
.plpmic-app details.extract-preview pre{
  white-space:pre-wrap; font-family:var(--plpmic-font-mono); font-size:.78rem; color:var(--plpmic-ink-soft);
  background:var(--plpmic-surface-2); border:1px solid var(--plpmic-border); border-radius:8px; padding:12px;
  max-height:220px; overflow:auto; margin-top:8px;
}
.plpmic-app .field-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px 16px; }
@media (max-width:560px){ .plpmic-app .field-grid{ grid-template-columns:1fr; } }
.plpmic-app .field{ display:flex; flex-direction:column; gap:5px; }
.plpmic-app .field[hidden]{ display:none; }
/* Aiuto sotto il campo del consumo annuo (dal 27/09/2026) */
.plpmic-app .aiuto-consumo{ margin-top:4px; padding:10px 12px; border-radius:10px; background:var(--plpmic-surface-2); border:1px solid var(--plpmic-border); font-size:.86rem; line-height:1.45; }
.plpmic-app .aiuto-consumo p{ margin:0 0 6px; }
.plpmic-app .aiuto-consumo ul{ margin:0 0 6px; padding-left:18px; }
.plpmic-app .aiuto-consumo summary{ cursor:pointer; color:var(--plpmic-accent); font-weight:600; }
.plpmic-app .field.span2{ grid-column:1 / -1; }
.plpmic-app .field label{ font-size:.84rem; font-weight:600; color:var(--plpmic-ink); }
.plpmic-app .field .hint{ font-size:.78rem; color:var(--plpmic-ink-soft); }
.plpmic-app input[type="number"], .plpmic-app input[type="text"], .plpmic-app select, .plpmic-app textarea{
  font-family:var(--plpmic-font-body); font-size:.95rem; padding:9px 11px; border-radius:8px;
  border:1px solid var(--plpmic-border); background:var(--plpmic-surface); color:var(--plpmic-ink); width:100%;
}
.plpmic-app input:focus-visible, .plpmic-app select:focus-visible, .plpmic-app textarea:focus-visible, .plpmic-app button:focus-visible{
  outline:2px solid var(--plpmic-accent); outline-offset:1px;
}
.plpmic-app .btn{
  font-family:var(--plpmic-font-body); font-weight:600; font-size:.92rem; padding:10px 18px;
  border-radius:8px; border:1px solid var(--plpmic-border); background:var(--plpmic-surface); color:var(--plpmic-ink);
  cursor:pointer; display:inline-flex; align-items:center; gap:8px;
}
.plpmic-app .btn:hover{ border-color:var(--plpmic-accent); }
.plpmic-app .btn-primary{ background:var(--plpmic-accent); border-color:var(--plpmic-accent); color:#fff; }
.plpmic-app .btn-primary:hover{ background:var(--plpmic-accent-strong); border-color:var(--plpmic-accent-strong); }
.plpmic-app .btn-ghost{ border-color:transparent; background:none; color:var(--plpmic-ink-soft); padding:8px 10px; }
.plpmic-app .btn-ghost:hover{ color:var(--plpmic-danger); }
.plpmic-app .btn-row{ display:flex; gap:10px; flex-wrap:wrap; margin-top:6px; }
.plpmic-app .btn:disabled{ opacity:.55; cursor:not-allowed; }
.plpmic-app .callout{
  border-left:3px solid var(--plpmic-accent); background:var(--plpmic-accent-soft); border-radius:0 8px 8px 0;
  padding:12px 16px; font-size:.88rem; color:var(--plpmic-ink);
}
.plpmic-app .callout.muted{ border-left-color:var(--plpmic-border); background:var(--plpmic-surface-2); color:var(--plpmic-ink-soft); }
.plpmic-app .callout.danger{ border-left-color:var(--plpmic-danger); background:var(--plpmic-danger-soft); color:var(--plpmic-danger); font-weight:600; }
.plpmic-app .num{ font-family:var(--plpmic-font-mono); font-variant-numeric:tabular-nums; }
.plpmic-app #results-summary{ font-size:.92rem; color:var(--plpmic-ink-soft); margin-bottom:16px; }
.plpmic-app #results-summary b{ color:var(--plpmic-ink); }
.plpmic-app .link-btn{ background:none; border:none; color:var(--plpmic-accent); font:inherit; cursor:pointer; padding:0; text-decoration:underline; }
.plpmic-app .offer-card{
  position:relative; display:flex; flex-direction:column; gap:10px; padding:20px 22px;
  border-radius:var(--plpmic-radius); border:1px solid var(--plpmic-border); background:var(--plpmic-surface);
  box-shadow:var(--plpmic-shadow);
}
.plpmic-app .offer-card.best{ border-color:var(--plpmic-highlight); box-shadow:0 0 0 2px var(--plpmic-highlight-soft), var(--plpmic-shadow); }
.plpmic-app .offer-card.offer-card-empty{ border-style:dashed; box-shadow:none; background:var(--plpmic-surface-2); }
.plpmic-app .offer-card.offer-card-empty .card-sub{ margin:0; }
.plpmic-app .offer-card .in-linea{ font-size:1.15rem; font-weight:700; margin:8px 0 4px; }
.plpmic-app .badge-best{
  position:absolute; top:-11px; right:18px; background:var(--plpmic-highlight); color:#241A08;
  font-family:var(--plpmic-font-mono); font-size:.68rem; font-weight:600; padding:4px 11px;
  border-radius:999px; letter-spacing:.04em; text-transform:uppercase;
}
.plpmic-app .offer-card.best.best-savings{ border-color:var(--plpmic-success); box-shadow:0 0 0 2px var(--plpmic-success-soft), var(--plpmic-shadow); }
.plpmic-app .badge-best.badge-savings{ background:var(--plpmic-success); color:#fff; }
.plpmic-app .offer-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap; }
.plpmic-app .offer-head h3{ font-family:var(--plpmic-font-display); font-size:1.2rem; font-weight:700; margin:0; }
.plpmic-app .offer-head .fornitore{ font-size:.82rem; color:var(--plpmic-ink-soft); text-transform:uppercase; letter-spacing:.04em; }
.plpmic-app .pill{ font-size:.72rem; font-weight:600; padding:3px 9px; border-radius:999px; text-transform:uppercase; letter-spacing:.03em; white-space:nowrap; }
.plpmic-app .pill-fisso{ background:var(--plpmic-accent-soft); color:var(--plpmic-accent-strong); }
.plpmic-app .pill-variabile{ background:var(--plpmic-highlight-soft); color:var(--plpmic-highlight-strong); }
.plpmic-app .pill-pos{ background:var(--plpmic-success-soft); color:var(--plpmic-success); }
.plpmic-app .pill-neg{ background:var(--plpmic-danger-soft); color:var(--plpmic-danger); }
.plpmic-app .pill-expired{ background:var(--plpmic-danger-soft); color:var(--plpmic-danger); }
.plpmic-app .offer-metrics{ display:flex; flex-wrap:wrap; gap:22px; }
.plpmic-app .metric .metric-label{ font-size:.74rem; color:var(--plpmic-ink-soft); text-transform:uppercase; letter-spacing:.04em; margin:0 0 2px; }
.plpmic-app .metric .metric-value{ font-size:1.05rem; font-weight:600; }
.plpmic-app .metric .metric-value.big{ font-size:1.5rem; font-family:var(--plpmic-font-mono); }
.plpmic-app .cost-bar-track{ height:6px; background:var(--plpmic-border); border-radius:999px; overflow:hidden; margin-top:2px; }
.plpmic-app .cost-bar-fill{ height:100%; background:var(--plpmic-accent); border-radius:999px; }
.plpmic-app .offer-card.best .cost-bar-fill{ background:var(--plpmic-highlight); }
.plpmic-app .offer-card .cost-bar-fill.bar-pos{ background:var(--plpmic-success); }
.plpmic-app .offer-card .cost-bar-fill.bar-neg{ background:var(--plpmic-danger); }
.plpmic-app table.offers-table{ width:100%; border-collapse:collapse; font-size:.9rem; }
.plpmic-app table.offers-table th{
  text-align:left; font-size:.74rem; text-transform:uppercase; letter-spacing:.03em;
  background:var(--plpmic-header-bg); color:var(--plpmic-header-ink-soft); padding:9px 10px;
}
.plpmic-app table.offers-table th:first-child{ border-top-left-radius:8px; }
.plpmic-app table.offers-table th:last-child{ border-top-right-radius:8px; }
.plpmic-app table.offers-table td{ padding:10px; border-bottom:1px solid var(--plpmic-border); vertical-align:top; }
.plpmic-app table.offers-table tr:last-child td{ border-bottom:none; }
.plpmic-app table.offers-table tr.offer-row-expired{ background:var(--plpmic-danger-soft); }
.plpmic-app .table-wrap{ overflow-x:auto; }
.plpmic-app .offer-note{ font-size:.78rem; color:var(--plpmic-ink-soft); }
.plpmic-app .scadenza-expired{ color:var(--plpmic-danger); font-weight:600; }
.plpmic-app .hint-scadute{ color:var(--plpmic-danger); font-weight:600; }
.plpmic-app footer.app-footer{ margin-top:40px; font-size:.8rem; color:var(--plpmic-ink-soft); border-top:1px solid var(--plpmic-border); padding-top:16px; }
.plpmic-app .toast{
  position:fixed; bottom:20px; left:50%; transform:translateX(-50%) translateY(8px);
  background:var(--plpmic-ink); color:var(--plpmic-bg); padding:10px 18px; border-radius:8px; font-size:.86rem;
  opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; z-index:50; max-width:90vw;
}
.plpmic-app .toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
@media (prefers-reduced-motion: reduce){ .plpmic-app, .plpmic-app *{ transition:none !important; } }

/* Messaggio "contenuto riservato" per i visitatori non loggati.
   Nota: qui NON usiamo le variabili --plpmic-* (che vivono solo dentro
   .plpmic-app quando lo strumento completo è renderizzato) perché questo
   blocco può comparire da solo, senza il resto del foglio di stile, per
   chi non ha effettuato l'accesso — quindi i colori sono valori fissi. */
.plpmic-locked{
  max-width:480px; margin:32px auto; padding:32px 28px; border-radius:12px;
  background:#FBFAF6; border:1px solid #DCD8CC; color:#1B2420;
  font-family:"IBM Plex Sans","Segoe UI",Arial,sans-serif; text-align:center;
  box-shadow:0 1px 2px rgba(27,36,32,.06), 0 8px 24px -12px rgba(27,36,32,.18);
}
.plpmic-locked-eyebrow{
  font-family:"IBM Plex Mono",SFMono-Regular,Consolas,monospace; text-transform:uppercase;
  letter-spacing:.1em; font-size:12px; font-weight:600; color:#CC3333; margin:0 0 10px;
}
.plpmic-locked-title{
  font-family:"Big Shoulders",Oswald,sans-serif; font-weight:700; font-size:24px;
  line-height:1.15; margin:0 0 10px; color:#1B2420;
}
.plpmic-locked-text{ font-size:15px; color:#4B564F; margin:0 0 18px; line-height:1.5; }
.plpmic-locked-cta{ margin:0; }
.plpmic-locked-cta a{
  display:inline-block; padding:12px 24px; border-radius:8px; background:#1B2420;
  color:#F6F4EE; text-decoration:none; font-weight:700; font-size:15px;
}
.plpmic-locked-cta a:hover{ opacity:.9; }
