/*
 * Tariff Planner Mercosur
 * Tutte le regole sono confinate sotto .tp-embedded e le classi interne hanno prefisso tp-,
 * per non interferire con Bootstrap 4 e con il tema del sito (ce-2019).
 * Palette e font derivati da TemplatesUSR/Site/IT/TemplatesUSR-Site-css/ce-2019 (flex.css, marika.css, fonts.css).
 */
/*
 * Unica regola fuori da .tp-embedded: la pagina non ha la testata (.testata-pag) che nelle altre pagine
 * sta sotto l'header fisso, quindi breadcrumb e planner finirebbero coperti dal menu.
 * Altezza header: 80px sotto i 992px, 86px da lì in su.
 */
body:has(.tp-embedded) { padding-top:80px; }
@media (min-width:992px) { body:has(.tp-embedded) { padding-top:86px; } }

.tp-embedded {
  --tp-accent:#0096c3; --tp-accent-dark:#006f90; --tp-accent-soft:#e6f4f9; --tp-accent-border:#b3dfec;
  --tp-text:#3c3b40; --tp-muted:#706f73; --tp-border:#ddddde; --tp-soft:#f5f5f5; --tp-zebra:#fafafa;
  --tp-series2:#706f73; --tp-grid:#ddddde;
  --tp-danger:#d63460; --tp-danger-dark:#a3203f; --tp-danger-bg:#fbe9ee; --tp-danger-border:#f0b6c5;
  --tp-ok:#45af0d; --tp-ok-dark:#2f7a08; --tp-ok-bg:#eef8e7; --tp-ok-border:#c5e5ae;
  --tp-warn:#8a5a00; --tp-warn-bg:#fff7e6; --tp-warn-border:#ffe0a3;
  --tp-font:"GEOG-regular", sans-serif; --tp-font-bold:"GEOG-smbold", sans-serif;
  font-family:var(--tp-font); font-size:15px; line-height:20px; color:var(--tp-text);
  padding-bottom:20px;
}
.tp-embedded *, .tp-embedded *::before, .tp-embedded *::after { box-sizing:border-box; }
.tp-embedded .tp-app-shell { display:flex; flex-direction:column; justify-content:flex-start; }
.tp-embedded .tp-header { margin-bottom:10px; }
.tp-embedded .tp-subtitle { color:var(--tp-muted); line-height:22px; margin:0; max-width:780px; font-size:17px; }
.tp-embedded .tp-card { background:#fff; border:1px solid var(--tp-border); border-top:3px solid var(--tp-accent); padding:22px; margin-bottom:18px; }
.tp-embedded .tp-search-card { width:100%; }
.tp-embedded .tp-form-grid { display:grid; grid-template-columns:minmax(260px,1.25fr) minmax(220px,.95fr) 160px; gap:16px; align-items:start; }
.tp-embedded .tp-mfn-grid { grid-template-columns:minmax(220px,.75fr) 180px; max-width:560px; margin:12px 0 0; }
.tp-embedded .tp-mta-note { color:var(--tp-muted); line-height:20px; margin:12px 0 0; max-width:760px; font-size:14px; }
.tp-embedded .tp-mta-note a { color:var(--tp-accent); font-family:var(--tp-font-bold); text-decoration:none; }
.tp-embedded .tp-mta-note a:hover { color:var(--tp-accent-dark); text-decoration:underline; }
.tp-embedded .tp-selected-summary { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:14px 0; }
.tp-embedded .tp-summary-box { border:1px solid var(--tp-border); background:var(--tp-soft); padding:12px; text-align:left; }
.tp-embedded .tp-summary-box .tp-summary-label { font-size:12px; line-height:16px; text-transform:uppercase; color:var(--tp-muted); letter-spacing:.04em; font-family:var(--tp-font-bold); }
.tp-embedded .tp-summary-box .tp-summary-value { margin-top:5px; font-family:var(--tp-font-bold); line-height:20px; }
.tp-embedded .tp-field { display:flex; flex-direction:column; min-height:88px; }
.tp-embedded label { display:block; font-family:var(--tp-font-bold); font-weight:normal; font-size:15px; line-height:20px; margin-bottom:7px; color:var(--tp-text); }
.tp-embedded input, .tp-embedded select { width:100%; height:48px; padding:0 14px; border:1px solid var(--tp-border); border-radius:0; font-family:var(--tp-font); font-size:16px; color:var(--tp-text); background:#fff; outline:none; box-shadow:none; }
.tp-embedded input:focus, .tp-embedded select:focus { border-color:var(--tp-accent); box-shadow:none; }
.tp-embedded input::placeholder { color:#999; }
.tp-embedded button { width:100%; height:48px; margin-top:27px; padding:0 25px; border:2px solid var(--tp-accent); border-radius:0; background:var(--tp-accent); color:#fff; font-family:var(--tp-font-bold); font-weight:normal; font-size:15px; line-height:15px; box-shadow:none; cursor:pointer; transition:background-color .2s, color .2s; }
.tp-embedded button:hover, .tp-embedded button:focus-visible { background:#fff; color:var(--tp-accent); outline:none; }
.tp-embedded .tp-secondary-btn { width:auto; margin:16px 12px 0 0; border-color:var(--tp-text); background:var(--tp-text); }
.tp-embedded .tp-secondary-btn:hover, .tp-embedded .tp-secondary-btn:focus-visible { background:#fff; color:var(--tp-text); }
.tp-embedded .tp-pdf-btn { border-color:var(--tp-danger); background:var(--tp-danger); }
.tp-embedded .tp-pdf-btn:hover, .tp-embedded .tp-pdf-btn:focus-visible { background:#fff; color:var(--tp-danger); }
.tp-embedded .tp-csv-btn { border-color:var(--tp-ok); background:var(--tp-ok); }
.tp-embedded .tp-csv-btn:hover, .tp-embedded .tp-csv-btn:focus-visible { background:#fff; color:var(--tp-ok); }
.tp-embedded .tp-hint { font-size:13px; line-height:18px; color:var(--tp-muted); margin-top:8px; min-height:18px; }
.tp-embedded .tp-input-instructions { color:var(--tp-muted); line-height:20px; margin:2px 0 0; max-width:760px; font-size:15px; }
.tp-embedded.has-results .tp-input-instructions { display:none; }
.tp-embedded .tp-msg { display:none; padding:13px 14px; margin-top:14px; line-height:20px; }
.tp-embedded .tp-msg.is-info { background:var(--tp-accent-soft); color:#00536b; border:1px solid var(--tp-accent-border); }
.tp-embedded .tp-msg.is-warn { background:var(--tp-warn-bg); color:var(--tp-warn); border:1px solid var(--tp-warn-border); }
.tp-embedded .tp-msg.is-error { background:var(--tp-danger-bg); color:var(--tp-danger-dark); border:1px solid var(--tp-danger-border); }
.tp-embedded .tp-results-card { display:none; animation:tpFadeIn .28s ease both; }
@keyframes tpFadeIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
.tp-embedded .tp-result-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:18px; }
.tp-embedded .tp-kpi { border:1px solid var(--tp-border); border-top:3px solid var(--tp-accent); padding:12px 14px; background:var(--tp-soft); min-width:0; text-align:center; }
.tp-embedded .tp-kpi.tp-kpi-description { grid-column:3 / 5; }
.tp-embedded #kpiGrid > .tp-kpi:first-child { grid-column:1 / 3; }
.tp-embedded .tp-kpi-label { font-size:12px; line-height:16px; color:var(--tp-muted); text-transform:uppercase; letter-spacing:.04em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tp-embedded .tp-kpi-value { font-family:var(--tp-font-bold); font-size:20px; line-height:24px; margin-top:5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tp-embedded.has-results .tp-kpi { padding:10px 12px; }
.tp-embedded.has-results .tp-kpi-value { font-size:18px; }
.tp-embedded.has-results .tp-kpi-label { font-size:11px; }
.tp-embedded .tp-kpi-description .tp-kpi-value { white-space:normal; font-size:15px; line-height:20px; }
.tp-embedded .tp-chart-box { position:relative; height:395px; border:1px solid var(--tp-border); padding:12px; background:#fff; margin:16px 0 8px; }
.tp-embedded canvas { width:100%; height:100%; display:block; }
.tp-embedded .tp-tooltip { position:absolute; display:none; pointer-events:none; transform:translate(-50%,-112%); background:var(--tp-text); color:#fff; padding:9px 11px; font-size:13px; line-height:18px; box-shadow:0 4px 12px rgba(0,0,0,.18); white-space:nowrap; z-index:3; }
.tp-embedded .tp-legend { display:flex; flex-wrap:wrap; gap:10px 18px; align-items:center; justify-content:center; margin:8px 0 16px; color:var(--tp-text); font-size:14px; }
.tp-embedded .tp-legend-item { display:inline-flex; align-items:center; gap:8px; }
.tp-embedded .tp-legend-line { width:28px; height:0; border-top:4px solid var(--tp-accent); }
.tp-embedded .tp-legend-line.tp-grey { border-top-color:var(--tp-series2); border-top-style:dashed; }
.tp-embedded .tp-table-wrap { overflow:auto; border:1px solid var(--tp-border); }
.tp-embedded table { width:100%; border-collapse:collapse; min-width:560px; margin:0; }
.tp-embedded th, .tp-embedded td { padding:12px 14px; border:0; border-bottom:1px solid var(--tp-border); text-align:left; line-height:20px; color:var(--tp-text); }
.tp-embedded th { background:var(--tp-soft); border-bottom:2px solid var(--tp-accent); font-family:var(--tp-font-bold); font-weight:normal; font-size:13px; text-transform:uppercase; letter-spacing:.04em; }
.tp-embedded tbody tr:nth-child(even) td { background:var(--tp-zebra); }
.tp-embedded tbody tr:hover td { background:var(--tp-border); }
.tp-embedded tr:last-child td { border-bottom:0; }
.tp-embedded .tp-rule-section { margin:16px 0; }
.tp-embedded .tp-rule-section h2 { margin:0 0 8px; }
.tp-embedded .tp-note { font-size:15px; color:var(--tp-text); background:var(--tp-soft); border:1px solid var(--tp-border); padding:14px; line-height:20px; }
.tp-embedded .tp-note.danger { color:var(--tp-danger-dark); background:var(--tp-danger-bg); border-color:var(--tp-danger-border); font-family:var(--tp-font-bold); }
.tp-embedded .tp-note.ok { color:var(--tp-ok-dark); background:var(--tp-ok-bg); border-color:var(--tp-ok-border); font-family:var(--tp-font-bold); }
.tp-embedded .tp-note.warn { color:var(--tp-warn); background:var(--tp-warn-bg); border-color:var(--tp-warn-border); font-family:var(--tp-font-bold); }
.tp-embedded .tp-section-title { margin:0 0 12px; }
.tp-embedded .tp-footer { font-size:12px; line-height:16px; color:var(--tp-muted); margin-top:14px; }
.tp-embedded .tp-print-actions { text-align:left; }

.tp-embedded .tp-choice-card { display:none; width:100%; }
.tp-embedded .tp-choice-card h2 { margin:0 0 8px; }
.tp-embedded .tp-choice-intro { margin:0 0 14px; color:var(--tp-muted); line-height:20px; }
.tp-embedded .tp-auth-card { width:100%; }
.tp-embedded .tp-auth-grid { grid-template-columns:minmax(260px,1fr) minmax(180px,.7fr) 160px; }
.tp-embedded .tp-auth-card #authOtpField,
.tp-embedded .tp-auth-card #authVerifyWrap { display:none; }
.tp-embedded .tp-auth-card.otp-step-open #authOtpField { display:flex; }
.tp-embedded .tp-auth-card.otp-step-open #authVerifyWrap { display:block; }
.tp-embedded.auth-locked .tp-search-card,
.tp-embedded.auth-locked .tp-input-instructions,
.tp-embedded.auth-locked #candidateCard,
.tp-embedded.auth-locked #mfnCard,
.tp-embedded.auth-locked #results { display:none !important; }
.tp-embedded .tp-candidate-table { width:100%; border-collapse:collapse; min-width:760px; }
.tp-embedded .tp-candidate-table th, .tp-embedded .tp-candidate-table td { vertical-align:top; }
.tp-embedded .tp-candidate-table .tp-code-cell { font-family:var(--tp-font-bold); white-space:nowrap; }
.tp-embedded .tp-select-ncm-btn { width:auto; height:38px; margin:0; padding:0 18px; font-size:14px; }
.tp-embedded .tp-search-actions-label { white-space:nowrap; }

@media (max-width:1000px) {
  .tp-embedded .tp-form-grid, .tp-embedded .tp-auth-grid { grid-template-columns:1fr 1fr; }
  .tp-embedded .tp-mfn-grid { grid-template-columns:1fr 180px; }
  .tp-embedded .tp-selected-summary { grid-template-columns:1fr; }
  .tp-embedded .tp-result-grid { grid-template-columns:1fr 1fr; }
  .tp-embedded #kpiGrid > .tp-kpi:first-child { grid-column:1 / 2; }
  .tp-embedded .tp-kpi.tp-kpi-description { grid-column:2 / 3; }
}
@media (max-width:620px) {
  .tp-embedded .tp-form-grid, .tp-embedded .tp-mfn-grid, .tp-embedded .tp-auth-grid { grid-template-columns:1fr; }
  .tp-embedded button { margin-top:0; }
  .tp-embedded .tp-secondary-btn { margin-top:12px; }
  .tp-embedded .tp-card { padding:16px; }
  .tp-embedded .tp-result-grid { grid-template-columns:1fr; }
  .tp-embedded #kpiGrid > .tp-kpi:first-child, .tp-embedded .tp-kpi.tp-kpi-description { grid-column:1 / 2; }
  .tp-embedded .tp-chart-box { height:360px; }
  .tp-embedded .tp-subtitle { font-size:15px; }
}
@media print {
  html.tp-printing body > * { display:none !important; }
  html.tp-printing body > .tp-print-root { display:block !important; }
  html.tp-printing .tp-print-root { width:100% !important; margin:0 !important; padding:0 !important; }
  html.tp-printing .tp-print-root .tp-embedded { width:100% !important; margin:0 !important; padding:0 !important; }
  .tp-embedded * { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .tp-embedded .tp-app-shell, .tp-embedded .tp-footer, .tp-embedded .tp-print-actions, .tp-embedded .tp-msg, .tp-embedded button { display:none !important; }
  .tp-embedded .tp-card { border:1px solid var(--tp-border); border-top:3px solid var(--tp-accent); break-inside:avoid; }
  .tp-embedded .tp-results-card { display:block !important; animation:none; }
  .tp-embedded .tp-chart-box { height:330px; }
}
