/* ================================================
   IP Catalog Connect — Configurateur CSS v1.1.0
   Couleurs : jetons de charte --ip-*
   ================================================ */

.ipc-configurator {
    margin: 28px 0;
    font-family: inherit;
}

/* Loading overlay */
.ipc-loading-state .ipc-configurator {
    opacity: .5;
    pointer-events: none;
}

/* Attribute block */
.ipc-attr {
    margin-bottom: 20px;
}
.ipc-attr label {
    display: block;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #1A1A2E;
    margin-bottom: 8px;
}

/* Button group */
.ipc-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.ipc-opt {
    background: #f7f7f7;
    border: 2px solid #e0e0e0;
    border-radius: 5px;
    padding: 7px 14px;
    font-size: 13px;
    cursor: pointer;
    transition: border-color .15s, background .15s, color .15s;
    line-height: 1.3;
}
.ipc-opt:hover {
    border-color: #F4A41C;
    background: #fff8ec;
}
.ipc-opt--active {
    background: #F4A41C;
    border-color: #F4A41C;
    color: #fff;
    font-weight: 700;
}

/* Select */
.ipc-select {
    padding: 9px 14px;
    border: 2px solid #e0e0e0;
    border-radius: 5px;
    font-size: 14px;
    width: 100%;
    max-width: 420px;
    background: #fff;
    cursor: pointer;
    transition: border-color .15s;
}
.ipc-select:focus {
    outline: none;
    border-color: #F4A41C;
}

/* Price table wrapper */
.ipc-price-wrap {
    margin-top: 28px;
}

.ipc-prices {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.ipc-prices thead th {
    background: #1A1A2E;
    color: #fff;
    padding: 10px 14px;
    text-align: right;
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.ipc-prices thead th:first-child { text-align: center; }
.ipc-prices tbody td {
    padding: 8px 14px;
    border-bottom: 1px solid #e8e8e8;
    text-align: right;
}
.ipc-prices tbody tr:nth-child(even) { background: #fafafa; }
.ipc-prices tbody tr:hover { background: #fff8ec; }

.ipc-col-qty   { text-align: center !important; font-weight: 700; color: #1A1A2E; }
.ipc-col-price { font-weight: 700; color: #1A1A2E; }
.ipc-col-unit  { color: #555; }
.ipc-col-days  { color: #777; font-size: 12px; }

.ipc-note {
    font-size: 11px;
    color: #999;
    margin-top: 8px;
}
.ipc-hint {
    font-size: 13px;
    color: #777;
    margin-top: 16px;
    font-style: italic;
}
.ipc-loading {
    font-size: 13px;
    color: #aaa;
    margin-top: 16px;
}
.ipc-error {
    color: #c0392b;
    font-size: 13px;
    margin-top: 12px;
}

/* Responsive */
@media (max-width: 640px) {
    .ipc-prices { font-size: 12px; }
    .ipc-prices thead th,
    .ipc-prices tbody td { padding: 7px 8px; }
    .ipc-opt { font-size: 12px; padding: 6px 10px; }
}


/* --- recapitulatif de configuration (v1.1.0) --- */
.ip-recap{list-style:none;margin:0 0 .75rem;padding:.75rem 0 0;border-top:1px solid var(--ip-filigrane,#E5DFD2)}
.ip-recap li{display:flex;justify-content:space-between;gap:1rem;padding:.2rem 0;font-size:.9375rem}
.ip-recap-k{color:var(--ip-graphite,#6F6B61)}
.ip-recap-v{font-weight:600;text-align:right}
.ip-qty-locked{display:inline-block;font-variant-numeric:tabular-nums}
.fa-col-tvac{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.fa-col-price{font-weight:600}

/* --- demande de devis (mode transitoire) --- */
.ip-devis{margin-top:1rem}
.ip-devis-note{margin:.5rem 0 0;font-size:.875rem;color:var(--ip-graphite,#6F6B61);max-width:52ch}
.ip-devis-form{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--ip-filigrane,#E5DFD2);max-width:52ch}
.ip-devis-titre{margin:0 0 .5rem;font-size:1.375rem;font-weight:400}
.ip-devis-intro,.ip-devis-modif,.ip-devis-oblig{font-size:.9375rem;color:var(--ip-graphite,#6F6B61)}
.ip-devis-config{margin:1rem 0;padding:1rem;background:var(--ip-filigrane,#E5DFD2)}
.ip-devis-config-titre{display:block;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}
.ip-devis-config .ip-recap{border-top:0;padding-top:.5rem;margin-bottom:0}
.ip-devis-champ{display:block;margin:0 0 1rem}
.ip-devis-label{display:block;font-weight:600;margin-bottom:.25rem}
.ip-devis-champ input,.ip-devis-champ textarea{width:100%;padding:.625rem .75rem;border:1px solid var(--ip-graphite,#6F6B61);border-radius:var(--ip-radius,2px);background:var(--ip-papier,#F6F3EC);font:inherit}
.ip-devis-champ input:focus-visible,.ip-devis-champ textarea:focus-visible{outline:2px solid var(--ip-bleu,#2440C8);outline-offset:1px}
.ip-devis-aide{display:block;margin-top:.25rem;font-size:.8125rem;color:var(--ip-graphite,#6F6B61)}
.ip-devis-rgpd{font-size:.8125rem;color:var(--ip-graphite,#6F6B61);margin:1rem 0}
.ip-devis-erreur{padding:.75rem;border-left:3px solid #B3261E;background:#fff;color:#B3261E;font-size:.9375rem}
.ip-devis-merci{margin-top:1rem;padding:1.25rem;border-left:3px solid var(--ip-bleu,#2440C8);background:#fff;max-width:52ch}
.ip-devis-merci h3{margin:0 0 .5rem;font-size:1.25rem;font-weight:400}
.ip-devis-ref{font-family:"IBM Plex Mono",monospace;font-size:.8125rem;color:var(--ip-graphite,#6F6B61)}

/* --- vitesse de production (v1.7.5) --- */
.ip-prod{border:0;margin:1rem 0 0;padding:0}
.ip-prod-titre{padding:0;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ip-graphite,#6F6B61)}
.ip-prod-choix{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;padding:.55rem .75rem;margin-top:.4rem;border:1px solid var(--ip-filigrane,#E5DFD2);border-radius:var(--ip-radius,2px);cursor:pointer;background:#fff}
.ip-prod-choix:has(.ip-prod-radio:checked){border-color:var(--ip-bleu,#2440C8);box-shadow:inset 0 0 0 1px var(--ip-bleu,#2440C8)}
.ip-prod-choix:focus-within{outline:2px solid var(--ip-bleu,#2440C8);outline-offset:1px}
.ip-prod-nom{font-weight:600}
.ip-prod-delai{color:var(--ip-graphite,#6F6B61);font-size:.9375rem}
.ip-prod-sup{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:600}
.ip-prod-sup--nul{font-weight:400;color:var(--ip-graphite,#6F6B61)}
.ip-prod-seul{margin:1rem 0 0;font-size:.9375rem;color:var(--ip-graphite,#6F6B61)}


/* --- Tirage choisi : on replie la liste sur la seule ligne retenue --- */
.ip-tirage-masque{ display:none }
.ip-tirage-choisi td{ background:var(--ip-filigrane,#E5DFD2); font-weight:600 }
.ip-tirage-choisi .fa-choose-btn{ visibility:hidden }
.ip-tirage-retour{ margin:.5rem 0 0 }
.ip-tirage-rouvrir{
  background:none; border:0; padding:0; font:inherit; font-size:.9375rem;
  color:var(--ip-bleu,#2440C8); text-decoration:underline; text-underline-offset:3px; cursor:pointer;
}
.ip-tirage-rouvrir:focus-visible{ outline:2px solid var(--ip-bleu,#2440C8); outline-offset:2px }

/* --- choix du tirage en mode devis (v1.7.7) --- */
.ip-tirage{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:.5rem 0 0}
.ip-tirage-label{font-weight:600}
.ip-tirage-select{flex:1 1 12rem;max-width:20rem;padding:.625rem .75rem;border:1px solid var(--ip-graphite,#6F6B61);border-radius:var(--ip-radius,2px);background:var(--ip-papier,#F6F3EC);font:inherit}
.ip-tirage-select:focus-visible{outline:2px solid var(--ip-bleu,#2440C8);outline-offset:1px}
