/* LVE Rating System v1.3.0 */
:root {
    --lve-blue:#2563EB; --lve-green:#16A34A; --lve-star:#FBBF24;
    --lve-star-empty:#D1D5DB; --lve-border:#E5E7EB;
    --lve-bg:#FFFFFF; --lve-bg-light:#F9FAFB;
    --lve-text:#111827; --lve-text-light:#6B7280;
    --lve-shadow:0 1px 3px rgba(0,0,0,.1); --lve-radius:8px; --lve-t:.15s ease;
}

/* ─── Bloc ─────────────────────────────────────────────────── */
.lve-rating-block {
    border:1px solid var(--lve-border);border-radius:var(--lve-radius);
    background:var(--lve-bg);box-shadow:var(--lve-shadow);
    overflow:hidden;margin:2em 0;font-family:inherit;
}

/* ─── Header ───────────────────────────────────────────────── */
.lve-rating-header {
    display:flex;align-items:center;gap:10px;
    padding:10px 14px;border-bottom:1px solid var(--lve-border);background:var(--lve-bg-light);
}
.lve-rating-icon-sq {
    display:inline-block;width:14px;height:14px;border-radius:3px;
    background:var(--lve-blue);flex-shrink:0;
}
.lve-rating-title {
    font-weight:700;font-size:12px;letter-spacing:.05em;color:var(--lve-text);text-transform:uppercase;
}
.lve-rating-title small {
    font-weight:400;font-size:11px;color:var(--lve-text-light);
    letter-spacing:0;text-transform:none;margin-left:4px;
}
.lve-rating-global-badge {
    margin-left:auto;background:var(--lve-blue);color:#fff;
    font-size:12px;font-weight:700;padding:3px 10px;border-radius:20px;white-space:nowrap;
}
.lve-badge-count{font-weight:400;font-size:11px;opacity:.85}

/* ─── Résultats ────────────────────────────────────────────── */
.lve-rating-results{display:none;padding:12px 14px}
.lve-rating-results.lve-visible{display:block}
.lve-results-inner{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.lve-global-score{text-align:center;min-width:70px}
.lve-global-number{font-size:34px;font-weight:800;color:var(--lve-text);line-height:1}
.lve-global-stars{margin:3px 0;font-size:16px}
.lve-global-count{font-size:11px;color:var(--lve-text-light)}
.lve-criteria-bars{flex:1;min-width:160px;display:flex;flex-direction:column;gap:7px}
.lve-bar-row{display:flex;align-items:center;gap:8px}
.lve-bar-label{font-size:11px;color:var(--lve-text-light);width:110px;flex-shrink:0}
.lve-bar-track{flex:1;height:7px;background:var(--lve-border);border-radius:4px;overflow:hidden}
.lve-bar-fill{height:100%;background:linear-gradient(90deg,var(--lve-blue),#60A5FA);border-radius:4px;transition:width .5s ease}
.lve-bar-value{font-size:11px;font-weight:700;color:var(--lve-text);width:20px;text-align:right}
.lve-ro-star{font-size:17px}
.lve-ro-star--full{color:var(--lve-star)}
.lve-ro-star--half{color:var(--lve-star);opacity:.6}
.lve-ro-star--empty{color:var(--lve-star-empty)}
.lve-no-votes{color:var(--lve-text-light);font-style:italic;font-size:13px;margin:0;padding:6px 0}

/* ─── Formulaire base ──────────────────────────────────────── */
.lve-rating-form{border-top:1px solid var(--lve-border);overflow:hidden}
.lve-already-voted{
    display:flex;align-items:center;gap:8px;padding:12px 14px;
    font-size:13px;font-weight:600;color:var(--lve-green);border-top:1px solid var(--lve-border);
}
.lve-check-icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:20px;height:20px;background:var(--lve-green);color:#fff;border-radius:50%;font-size:12px;flex-shrink:0;
}

/* ─── MODE SINGLE ──────────────────────────────────────────── */
.lve-single-form { text-align:center; padding-bottom:4px; }

.lve-single-cta {
    display:flex;flex-direction:column;align-items:center;
    padding:14px 16px 10px;
    background:linear-gradient(90deg,#FEF3C7,#FFF7ED);
    border-bottom:1px solid #FDE68A;
}
.lve-single-cta-text { font-size:14px;color:#92400E;line-height:1.4; }
.lve-single-cta-text strong { color:#78350F; }
.lve-single-cta-hint { font-size:11px;color:#B45309;margin-top:3px; }

.lve-single-stars {
    display:flex;justify-content:center;align-items:center;
    gap:4px;padding:16px 10px 8px;
}
.lve-star-xl {
    font-size:42px !important;
    padding:4px 3px !important;
}

.lve-single-labels {
    display:flex;justify-content:space-between;
    padding:0 10px 12px;
    font-size:10px;color:var(--lve-text-light);
}

.lve-single-msg {
    padding:6px 14px 14px;font-size:12px;min-height:20px;
    color:var(--lve-text-light);font-style:italic;
}
.lve-single-msg.lve-msg--success { color:var(--lve-green);font-style:normal;font-weight:600; }
.lve-single-msg.lve-msg--error   { color:#DC2626;font-style:normal; }

/* ─── MODE MULTI ───────────────────────────────────────────── */
.lve-inline-cta{
    display:flex;align-items:center;gap:10px;padding:10px 14px;
    background:linear-gradient(90deg,#FEF3C7,#FFF7ED);border-bottom:1px solid #FDE68A;
}
.lve-inline-cta-stars{font-size:14px;color:var(--lve-star);letter-spacing:1px;flex-shrink:0}
.lve-inline-cta-text{font-size:12px;color:#92400E;line-height:1.4}
.lve-inline-cta-text strong{color:#78350F}

.lve-criteria-grid{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    margin:0;padding:0;
}
.lve-criterion{
    display:flex !important;flex-direction:column;gap:5px;
    padding:10px 14px;
    border-bottom:1px solid var(--lve-border);border-right:1px solid var(--lve-border);
    box-sizing:border-box;
}
.lve-criterion:nth-child(2n){border-right:none}
.lve-criterion:nth-last-child(-n+2){border-bottom:none}
.lve-crit-label{display:flex !important;align-items:center;gap:6px;flex-wrap:nowrap}
.lve-crit-letter{
    display:inline-flex;align-items:center;justify-content:center;
    width:20px;height:20px;background:var(--lve-blue);color:#fff;
    font-size:11px;font-weight:800;border-radius:4px;flex-shrink:0;
}
.lve-criterion-name{font-size:12px;font-weight:700;color:var(--lve-text);display:inline !important}
.lve-criterion-en{font-size:10px;color:var(--lve-text-light);font-style:italic;font-weight:400;display:block}

.lve-stars-input{display:flex !important;flex-direction:row !important;align-items:center;gap:0}
.lve-star-btn{
    font-size:22px;color:var(--lve-star-empty);cursor:pointer;
    transition:color var(--lve-t);line-height:1;user-select:none;-webkit-user-select:none;
    padding:2px 2px;flex-shrink:0;
}
.lve-star-btn:hover,.lve-star-btn.lve-hover,.lve-star-btn.lve-selected{color:var(--lve-star)}

.lve-form-footer{
    display:flex;align-items:center;gap:10px;flex-wrap:wrap;
    padding:10px 14px;background:var(--lve-bg-light);border-top:1px solid var(--lve-border);
}
.lve-submit-btn{
    display:inline-flex;align-items:center;gap:5px;
    background:linear-gradient(135deg,#F59E0B,#F97316);color:#fff;border:none;border-radius:6px;
    padding:9px 18px;font-size:13px;font-weight:800;cursor:pointer;
    transition:opacity var(--lve-t);box-shadow:0 2px 8px rgba(245,158,11,.35);
    white-space:nowrap;font-family:inherit;
}
.lve-submit-btn:hover:not(:disabled){opacity:.9}
.lve-submit-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}
.lve-form-note{font-size:11px;color:var(--lve-text-light);font-style:italic}
.lve-form-message{padding:6px 14px 10px;font-size:13px;font-weight:600;min-height:16px}
.lve-form-message.lve-msg--success{color:var(--lve-green)}
.lve-form-message.lve-msg--error{color:#DC2626}

/* ─── Sticky button — centré en bas ───────────────────────── */
.lve-sticky-btn{
    position:fixed;bottom:20px;left:50%;
    transform:translateX(-50%) translateY(70px);
    z-index:9990;background:var(--lve-blue);color:#fff;border:none;
    border-radius:30px;padding:10px 20px;
    display:flex;align-items:center;gap:8px;
    font-size:14px;font-weight:700;
    box-shadow:0 4px 16px rgba(37,99,235,.4);cursor:pointer;
    transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .3s;
    opacity:0;pointer-events:none;white-space:nowrap;font-family:inherit;
}
.lve-sticky-btn.lve-sticky-visible{transform:translateX(-50%) translateY(0);opacity:1;pointer-events:auto}
.lve-sticky-star{font-size:18px}

/* ─── Modal sticky ─────────────────────────────────────────── */
.lve-sticky-modal{
    position:fixed;inset:0;z-index:9999;
    display:flex;align-items:flex-end;justify-content:center;padding:0 0 70px;
}
.lve-sticky-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.35);cursor:pointer;z-index:0}
.lve-sticky-panel{
    position:relative;z-index:1;background:var(--lve-bg);
    border-radius:12px 12px 0 0;box-shadow:0 -4px 30px rgba(0,0,0,.2);
    width:100%;max-width:700px;overflow:hidden;max-height:90vh;overflow-y:auto;
}
.lve-sticky-header{
    display:flex;align-items:center;gap:10px;padding:12px 16px;
    background:var(--lve-bg-light);border-bottom:1px solid var(--lve-border);
    position:sticky;top:0;
}
.lve-sticky-close{
    margin-left:auto;background:none;border:1px solid var(--lve-border);
    border-radius:50%;width:28px;height:28px;cursor:pointer;
    color:var(--lve-text-light);font-size:13px;display:flex;
    align-items:center;justify-content:center;transition:background var(--lve-t);
}
.lve-sticky-close:hover{background:var(--lve-border)}
.lve-sticky-summary{
    display:flex;align-items:center;gap:4px;flex-wrap:wrap;
    padding:8px 16px;font-size:14px;font-weight:600;border-bottom:1px solid var(--lve-border);
}
.lve-sticky-grid{grid-template-columns:1fr 1fr !important}
.lve-sticky-footer{justify-content:center;padding:12px 16px}

/* ─── Top rated [lve_top_rated] ────────────────────────────── */
.lve-top-rated{border:1px solid var(--lve-border);border-radius:var(--lve-radius);background:var(--lve-bg);box-shadow:var(--lve-shadow);overflow:hidden;margin:2em 0;font-family:inherit}
.lve-tr-empty{padding:16px;color:var(--lve-text-light);font-style:italic;margin:0}
.lve-tr-list{list-style:none;margin:0;padding:0}
.lve-tr-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--lve-border);transition:background var(--lve-t)}
.lve-tr-item:last-child{border-bottom:none}
.lve-tr-item:hover{background:var(--lve-bg-light)}
.lve-tr-rank{font-size:22px;flex-shrink:0;width:32px;text-align:center;line-height:1}
.lve-tr-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.lve-tr-top{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}
.lve-tr-title{font-weight:700;font-size:13px;color:var(--lve-blue);text-decoration:none;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lve-tr-title:hover{text-decoration:underline}
.lve-tr-score{display:flex;align-items:center;gap:5px;flex-shrink:0;white-space:nowrap}
.lve-tr-number{font-size:18px;font-weight:800;color:var(--lve-text);line-height:1}
.lve-tr-stars{font-size:14px}
.lve-tr-count{font-size:11px;color:var(--lve-text-light)}
.lve-tr-bar-track{height:5px;background:var(--lve-border);border-radius:3px;overflow:hidden}
.lve-tr-bar-fill{height:100%;background:linear-gradient(90deg,var(--lve-blue),#60A5FA);border-radius:3px}
.lve-tr-criteria{display:flex;gap:8px;flex-wrap:wrap}
.lve-tr-crit{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--lve-text-light);background:var(--lve-bg-light);border:1px solid var(--lve-border);border-radius:4px;padding:2px 6px}
.lve-tr-crit-val{font-weight:700;color:var(--lve-text)}
.lve-tr-btn{flex-shrink:0;background:var(--lve-blue);color:#fff;text-decoration:none;font-size:12px;font-weight:700;padding:7px 12px;border-radius:6px;white-space:nowrap;transition:background var(--lve-t)}
.lve-tr-btn:hover{background:#1D4ED8;color:#fff}

/* ─── Badge cards comparateur ──────────────────────────────── */
.lve-card-badge{
    display:inline-flex;align-items:center;gap:3px;
    background:#FBBF24;color:#78350F;font-size:12px;font-weight:700;
    padding:2px 7px;border-radius:12px;margin-left:6px;
    vertical-align:middle;white-space:nowrap;line-height:1.6;
}
.lve-card-badge small{font-size:10px;font-weight:400;opacity:.8}

/* ─── Responsive ───────────────────────────────────────────── */
@media (max-width:480px){
    .lve-criteria-grid{grid-template-columns:1fr !important}
    .lve-criterion{border-right:none}
    .lve-criterion:nth-last-child(-n+2){border-bottom:1px solid var(--lve-border)}
    .lve-criterion:last-child{border-bottom:none}
    .lve-sticky-grid{grid-template-columns:1fr !important}
    .lve-sticky-grid .lve-criterion{border-right:none}
    .lve-sticky-panel{border-radius:12px 12px 0 0}
    .lve-sticky-modal{padding-bottom:60px}
    .lve-results-inner{flex-direction:column}
    .lve-tr-item{flex-wrap:wrap}
    .lve-tr-btn{width:100%;text-align:center}
    .lve-tr-title{white-space:normal}
    .lve-star-xl{font-size:36px !important}
}
