:root{--b:#0878f9;--n:#0a1633;--o:#ff9700;--bg:#f4f7fb;--line:#dce5ef;--muted:#64748b}.oreso-fid,.loyalty{font-family:Onest,Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--n)}.brand{display:flex;align-items:center;gap:7px;font-weight:800;letter-spacing:.04em;color:var(--b)}.brand i{width:20px;height:20px;border:7px solid var(--b);border-radius:50%;box-sizing:border-box;position:relative}.brand i:after{content:"";position:absolute;width:6px;height:6px;background:var(--o);border-radius:50%;right:-10px;bottom:-8px}.oreso-fid h1{font-size:38px;margin:14px 0 4px}.lead{font-size:17px;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:900px;margin:25px 0}.stats div,.oreso-fid section{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}.stats b{display:block;font-size:30px}.stats span{color:var(--muted)}.primary,.loyalty button{background:var(--b);color:#fff;border:0;border-radius:14px;padding:15px 22px;font-weight:800;font-size:16px}.oreso-fid section{max-width:860px;margin-top:22px}.oreso-fid form,.loyalty form{display:grid;gap:10px;max-width:520px}.oreso-fid input,.loyalty input{padding:13px;border:1px solid var(--line);border-radius:12px;font-size:16px}.loyalty{max-width:720px;margin:28px auto;background:#fff;border:1px solid var(--line);border-radius:26px;overflow:hidden;box-shadow:0 20px 55px rgba(10,22,51,.08)}.loyalty header{padding:30px;background:linear-gradient(135deg,#f6faff,#eef5ff)}.loyalty header h2{font-size:34px;margin:20px 0 3px}.loyalty header p{margin:0;color:var(--muted)}.loyalty main{padding:30px}.progress{text-align:center;font-size:25px}.progress b{font-size:50px;color:var(--b)}.stamps{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin:20px 0}.stamps span{font-size:32px;color:#dbe3ed}.stamps span.on{color:var(--b)}.reward{display:grid;gap:5px;background:#f5f8fc;border-radius:18px;padding:18px;margin:22px 0}.reward b{font-size:22px}.ready{background:#eaf9f0;border:1px solid #bce9cb;border-radius:14px;padding:15px;color:#08783f;font-weight:800}.qr{text-align:center;margin-top:26px;padding:22px;border:1px dashed #b9c8d9;border-radius:18px}.qr code{display:block;font-size:22px;letter-spacing:.12em;margin:12px}.qr p,.qr small{color:var(--muted)}.error{color:#b42318}@media(max-width:650px){.stats{grid-template-columns:1fr}.loyalty{margin:12px;border-radius:20px}.loyalty header,.loyalty main{padding:22px}.loyalty header h2{font-size:29px}.stamps span{font-size:27px}}
.oreso-fid-entry{margin:18px 0 24px}.oreso-fid-entry-btn{display:flex;align-items:center;gap:14px;width:100%;box-sizing:border-box;padding:16px 18px;border:1px solid #dce5ef;border-radius:18px;background:#fff;color:#0a1633!important;text-decoration:none!important;box-shadow:0 8px 24px rgba(15,23,42,.035)}.oreso-fid-entry-icon{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:13px;background:#eef5ff;color:#0878f9;font-size:19px}.oreso-fid-entry-btn>span:nth-child(2){display:grid;gap:2px;min-width:0;flex:1}.oreso-fid-entry-btn strong{font-size:16px}.oreso-fid-entry-btn small{color:#64748b;font-size:12px}.oreso-fid-entry-arrow{color:#0878f9;font-size:20px;font-weight:800}body:has(.loyalty) .entry-header,body:has(.loyalty) .entry-hero-container{display:none!important}@media(max-width:650px){.oreso-fid-entry-btn{padding:14px;border-radius:16px}.oreso-fid-entry-icon{width:38px;height:38px;flex-basis:38px}}

/* Oreso Fidélité V0.3 */
.scanner-panel{max-width:860px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;margin:22px 0}
#oreso-scanner{margin-top:18px;text-align:center}
#oreso-scanner-video{width:100%;max-width:520px;aspect-ratio:4/3;object-fit:cover;border-radius:18px;background:#0a1633}
#oreso-scanner-status{color:var(--muted)}
.manual-code{margin-top:18px!important;max-width:560px!important}
.manual-code>div{display:flex;gap:8px}.manual-code input{flex:1}
.oreso-member-list{display:grid;gap:8px}.oreso-member-list a{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:var(--n);background:#fff}.oreso-member-list a span{display:grid}.oreso-member-list small{color:var(--muted);margin-top:2px}.oreso-member-list strong{color:var(--b)}
.oreso-back{display:inline-block;margin:20px 0 8px;text-decoration:none;font-weight:700}
.merchant-client-card{max-width:720px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:26px;margin:18px 0;box-shadow:0 16px 40px rgba(10,22,51,.06)}
.merchant-client-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.merchant-client-top h1{margin:4px 0!important}.merchant-client-top p{margin:0;color:var(--muted)}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--b)}
.merchant-score{white-space:nowrap}.merchant-score b{font-size:48px;color:var(--b)}.merchant-score span{font-size:20px}
.merchant-actions{max-width:none!important;display:grid!important;grid-template-columns:1fr 1fr;gap:10px!important;margin-top:22px}.merchant-actions button{border:0;border-radius:15px;padding:17px;font-size:17px;font-weight:800;cursor:pointer}.merchant-add{background:var(--b);color:#fff}.merchant-redeem{background:#fff5df;color:#8a5200;border:1px solid #ffd88b!important}
.merchant-meta{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-top:18px;color:var(--muted);font-size:13px}
.oreso-history{display:grid;gap:8px}.oreso-history div{display:flex;justify-content:space-between;gap:20px;padding:12px 14px;border:1px solid var(--line);border-radius:12px}.oreso-history span{color:var(--muted)}
.oreso-qr-img{display:block;width:220px!important;height:220px!important;max-width:80%;margin:16px auto;border-radius:14px;background:#fff}.qr-fallback{display:block;color:var(--muted);font-size:12px;margin-top:8px}
@media(max-width:650px){.merchant-client-top{align-items:center}.merchant-score b{font-size:40px}.merchant-actions{grid-template-columns:1fr!important}.manual-code>div{display:grid}.oreso-member-list a{align-items:flex-start;flex-direction:column}.oreso-qr-img{width:200px!important;height:200px!important}}


/* Oreso Fidélité V0.4.1 — workspace natif Oreso Core */
.oreso-workspace-nav{display:flex;align-items:center;justify-content:space-between;max-width:860px;margin:14px 0 22px}
.oreso-workspace-nav a{text-decoration:none;font-weight:800;color:#0878f9}
.oreso-workspace-nav span{font-size:12px;font-weight:800;color:#08783f;background:#eaf9f0;border:1px solid #bce9cb;border-radius:999px;padding:6px 10px}

/* Oreso Fidélité V0.4.2 — espace commerçant front */
.oreso-fid-workspace{max-width:900px;margin:0 auto;color:#0a1633}
.oreso-fid-workspace h1{font-size:40px;line-height:1.08;margin:18px 0 8px}
.oreso-fid-workspace .lead{margin-bottom:24px}
.oreso-fid-workspace .stats{max-width:none}
.oreso-fid-workspace section,.oreso-fid-workspace .scanner-panel{max-width:none}
.oreso-fid-workspace .scanner-panel,.oreso-fid-workspace section{box-shadow:none}
.oreso-secondary-btn{border:1px solid #c8d7e7;background:#fff;color:#0878f9;border-radius:12px;padding:12px 16px;font-weight:800;cursor:pointer}
.oreso-save-btn{justify-self:start;margin-top:4px}
.oreso-fid-flash{margin:16px 0;padding:13px 15px;border-radius:13px;font-weight:700}
.oreso-fid-flash.success{background:#eaf9f0;border:1px solid #bce9cb;color:#08783f}
.oreso-fid-flash.error{background:#fff1f1;border:1px solid #ffcaca;color:#a51d1d}
.oreso-fid-local-back{display:inline-block;margin:18px 0 2px;color:#0878f9!important;text-decoration:none!important;font-weight:800}
@media(max-width:650px){
    .oreso-fid-workspace h1{font-size:32px}
    .oreso-fid-workspace .stats{grid-template-columns:1fr 1fr}
    .oreso-fid-workspace .stats div:last-child{grid-column:1/-1}
}

/* Oreso Fidélité 0.5.1 — BO commerçant peaufiné */
.oreso-fid{
    max-width:980px!important;
    margin:28px auto 50px!important;
    padding:0 22px!important;
    box-sizing:border-box;
}
.oreso-fid .brand{
    margin:18px 0 18px!important;
    font-size:18px;
}
.oreso-fid-topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:0 0 20px;
}
.oreso-fid-back-main{
    display:inline-flex;
    align-items:center;
    min-height:40px;
    padding:0 13px;
    border:1px solid #d7e2ee;
    border-radius:11px;
    background:#fff;
    color:#0878f9!important;
    text-decoration:none!important;
    font-weight:800;
}
.oreso-fid-back-main:hover{
    border-color:#b9cfe8;
    background:#f8fbff;
}
.oreso-fid-module-badge{
    padding:6px 10px;
    border:1px solid #bce9cb;
    border-radius:999px;
    background:#eaf9f0;
    color:#08783f;
    font-size:10px;
    font-weight:800;
    letter-spacing:.05em;
}
.oreso-fid-hero{
    margin:20px 0 24px;
}
.oreso-fid-eyebrow,
.oreso-fid-panel-head span{
    display:block;
    margin-bottom:6px;
    color:#0878f9;
    font-size:11px;
    font-weight:800;
    letter-spacing:.11em;
}
.oreso-fid-hero h1{
    margin:0 0 8px!important;
    color:#0a1633!important;
    font-size:42px!important;
    line-height:1.05!important;
    font-weight:800!important;
}
.oreso-fid-hero p{
    margin:0!important;
    color:#64748b!important;
    font-size:16px!important;
    line-height:1.5!important;
}
.oreso-fid .stats{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:14px!important;
    max-width:none!important;
    margin:22px 0!important;
}
.oreso-fid .stats>div{
    min-width:0;
    padding:20px 22px!important;
    border-radius:16px!important;
}
.oreso-fid .stats b{
    font-size:34px!important;
    line-height:1!important;
}
.oreso-fid .stats span{
    display:block;
    margin-top:5px;
    line-height:1.3;
}
.oreso-fid .scanner-panel,
.oreso-fid section{
    max-width:none!important;
    margin-top:18px!important;
    padding:22px!important;
    border-radius:18px!important;
}
.oreso-fid-panel-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    margin-bottom:14px;
}
.oreso-fid-panel-head h2{
    margin:0!important;
    color:#0a1633!important;
    font-size:21px!important;
}
.oreso-fid .primary{
    min-height:50px;
    padding:0 20px!important;
    border-radius:13px!important;
    font-size:15px!important;
}
.oreso-fid .manual-code{
    max-width:none!important;
}
.oreso-fid .manual-code>div{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:10px!important;
}
.oreso-fid .manual-code input{
    width:100%!important;
    min-width:0!important;
}

@media(max-width:782px){
    .oreso-fid{
        margin:18px auto 36px!important;
        padding:0 14px!important;
    }
    .oreso-fid-topbar{
        align-items:flex-start;
    }
    .oreso-fid-back-main{
        font-size:13px;
    }
    .oreso-fid-hero h1{
        font-size:34px!important;
    }
    .oreso-fid .stats{
        grid-template-columns:1fr 1fr!important;
    }
    .oreso-fid .stats>div:last-child{
        grid-column:1/-1;
    }
    .oreso-fid .manual-code>div{
        grid-template-columns:1fr!important;
    }
    .oreso-fid .manual-code button{
        width:100%!important;
    }
}
@media(max-width:520px){
    .oreso-fid .stats{
        grid-template-columns:1fr!important;
    }
    .oreso-fid .stats>div:last-child{
        grid-column:auto;
    }
    .oreso-fid-module-badge{
        display:none;
    }
}

/* V0.6 — parcours fidélité */
.oreso-fid-public-link{
    display:inline-flex;
    align-items:center;
    min-height:40px;
    padding:0 13px;
    border:1px solid #d7e2ee;
    border-radius:11px;
    background:#fff;
    color:#0878f9!important;
    text-decoration:none!important;
    font-weight:700;
}
.oreso-fid .merchant-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}
.oreso-fid .merchant-actions button{
    min-height:54px;
    border-radius:13px;
    font-weight:800;
}
.oreso-fid .merchant-actions button:disabled{
    opacity:.55;
    cursor:not-allowed;
}
.oreso-fid .ready{
    margin:18px 0;
    padding:16px 18px;
    border-radius:14px;
    font-weight:800;
}
@media(max-width:620px){
    .oreso-fid .merchant-actions{grid-template-columns:1fr;}
}

/* V0.6.1 — code client simple */
.oreso-fid .qr code,
.oreso-fid .merchant-meta code{
    font-size:22px;
    font-weight:800;
    letter-spacing:.16em;
    color:#0a1633;
}
.oreso-fid .manual-code input{
    text-transform:uppercase;
    letter-spacing:.12em;
    font-weight:800;
}

/* V0.6.2 — email + préparation Wallet */
.oreso-fid-resend{margin:12px 0 4px}
.oreso-fid-resend button{
    min-height:42px;padding:0 14px;border:1px solid #d7e2ee;border-radius:11px;
    background:#fff;color:#0878f9;font-weight:800;cursor:pointer
}
.oreso-wallet-ready{
    display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px
}
.oreso-wallet-ready span{
    padding:10px;border:1px solid #e1e8f0;border-radius:10px;background:#f8fafc;
    font-size:12px;font-weight:800;color:#64748b
}
.oreso-wallet-ready small{grid-column:1/-1;color:#94a3b8}

/* V0.6.5 — validation sans rafraîchissement manuel */
.oreso-fid .merchant-actions button[disabled],
.oreso-fid .oreso-fid-resend button[disabled]{
    opacity:.65;
    cursor:wait;
}

/* V1.1.0-beta — Wallet providers */
.oreso-fid-wallet-actions{
    display:grid;
    gap:10px;
    margin:20px 0;
}
.oreso-fid-wallet-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:50px;
    padding:0 18px;
    border-radius:12px;
    text-decoration:none!important;
    font-weight:800;
}
.oreso-fid-wallet-google{
    background:#111827;
    color:#fff!important;
}
.oreso-fid-google-settings textarea,
.oreso-fid-google-settings input[type="text"],
.oreso-fid-google-settings input[type="email"]{
    width:100%;
    max-width:760px;
}
.oreso-fid-google-settings textarea{
    font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
    font-size:12px;
}


/* Oreso Fidélité beta.11 — CTA public explicite sur la fiche commerçant */
.oreso-fid-entry{margin:18px 0 24px}
.oreso-fid-entry-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;box-sizing:border-box;padding:17px 18px;border:1px solid #cfe0f3;border-radius:18px;background:linear-gradient(135deg,#fff 0%,#f7fbff 100%);box-shadow:0 8px 24px rgba(15,23,42,.035)}
.oreso-fid-entry-content{display:grid;gap:3px;min-width:0}
.oreso-fid-entry-kicker{font-size:10px;line-height:1.2;font-weight:900;letter-spacing:.09em;color:#0878f9}
.oreso-fid-entry-content strong{font-size:15px;line-height:1.25;color:#0a1633}
.oreso-fid-entry-content small{font-size:11px;line-height:1.35;color:#64748b}
.oreso-fid-entry-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 15px;border-radius:12px;background:#0878f9;color:#fff!important;text-decoration:none!important;font-size:12px;font-weight:850;white-space:nowrap;box-shadow:0 7px 16px rgba(8,120,249,.16)}
.oreso-fid-entry-cta:hover{background:#066bdc;color:#fff!important}
.oreso-fid-entry-cta span{font-size:16px;line-height:1}
@media(max-width:650px){.oreso-fid-entry-card{grid-template-columns:auto minmax(0,1fr);padding:15px}.oreso-fid-entry-cta{grid-column:1/-1;width:100%;box-sizing:border-box;margin-top:2px}.oreso-fid-entry-content strong{font-size:14px}}

/* RC2-C public card: usable without Core or a theme. */
@font-face{font-family:Onest;src:url('one/Onest.ttf') format('truetype');font-weight:100 900;font-display:swap}
body.oreso-fid-standalone{margin:0;background:#f5f7fa;color:#101828;font:16px/1.5 Onest,system-ui,sans-serif}.o-public-card,.o-public-card *{box-sizing:border-box}.loyalty.o-public-card{width:calc(100% - 32px);max-width:480px;margin:24px auto;border:1px solid #e4e7ec;border-radius:16px;box-shadow:none;font-family:Onest,system-ui,sans-serif;color:#101828}.o-public-card header{padding:24px 24px 18px;background:white;border-bottom:1px solid #e4e7ec}.o-public-logo{width:100px;height:auto;display:block;margin:0 auto 18px}.o-public-card header h1{font-size:20px;line-height:1.35;margin:0 0 6px;text-align:center;font-weight:650}.o-public-card header p{font-size:13px;text-align:center;color:#667085}.o-public-card main{padding:24px}.o-public-card h2{font-size:20px;margin:0 0 12px;line-height:1.3}.o-public-card main>p{font-size:14px;color:#667085}.o-public-card .qr{border:0;padding:0;margin:0 0 24px;text-align:center}.o-public-card .qr h2{font-size:16px;margin-bottom:12px}.o-public-card .qr img{width:220px!important;height:220px!important;max-width:100%;margin:0 auto 12px;border-radius:0}.o-public-card .qr code{font-family:Onest,system-ui,sans-serif;display:block;font-size:24px;font-weight:700;letter-spacing:.2em;margin:8px 0 0;color:#101828}.o-public-card .qr-fallback{font-size:12px;color:#667085}.o-public-card .o-public-progress{border-top:1px solid #e4e7ec;padding-top:20px}.o-public-card .o-progress-label{font-size:14px;margin-bottom:10px}.o-public-card progress{appearance:none;width:100%;height:8px;border:0;border-radius:8px;overflow:hidden;display:block;background:#e4e7ec}.o-public-card progress::-webkit-progress-bar{background:#e4e7ec}.o-public-card progress::-webkit-progress-value{background:#0562d8}.o-public-card progress::-moz-progress-bar{background:#0562d8}.o-public-card .o-public-progress p{font-size:13px;color:#667085;margin:12px 0 0}.o-public-card .reward{border-radius:8px;padding:14px 16px;margin:16px 0 0;background:#f5f7fa;font-size:13px}.o-public-card .reward strong{font-size:16px}.o-public-card .o-public-wallet{margin-top:20px}.o-public-card footer{padding:0 24px 24px;text-align:center;color:#667085;font-size:11px}.o-public-card form{max-width:none;display:grid;gap:8px}.o-public-card label{font-size:13px;margin-top:10px}.o-public-card input{width:100%;min-width:0;padding:12px;font:16px Onest,system-ui,sans-serif;border:1px solid #d0d5dd;border-radius:8px;min-height:48px}.o-public-card button{font:600 16px Onest,system-ui,sans-serif;border-radius:8px;background:#0562d8;color:white;margin-top:16px;min-height:48px;padding:14px;cursor:pointer}.o-public-card .error,.o-public-card .ready{font-size:14px;padding:14px;border:1px solid #fecdca;border-radius:8px;background:#fef3f2;color:#b42318;margin-bottom:20px;font-weight:400}.o-public-card .ready{background:#ecfdf3;color:#027a48;border-color:#abefc6}.o-public-card .oreso-fid-privacy{font-size:12px;line-height:1.5;color:#667085;margin:20px 0 0}.o-public-card .o-privacy-link{font-size:12px;color:#0562d8}.o-public-card .o-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.o-public-card :is(a,button,input):focus-visible{outline:3px solid #0562d8;outline-offset:3px}
@media(max-width:520px){.loyalty.o-public-card{margin:16px auto}.o-public-card header{padding:20px 20px 16px}.o-public-card main{padding:20px}.o-public-card .qr img{width:200px!important;height:200px!important}}


/* 1.1.4-rc4.1 — Programmes flexibles: lisibilité + responsive */
.o-program-intro{margin:8px 0 22px}.o-program-intro h2{margin:0 0 7px;font-size:22px;line-height:1.25}.o-program-intro p{margin:0;color:#667085;max-width:820px}
.o-program-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 28px}
.o-program-choice{position:relative;display:flex;align-items:flex-start;gap:11px;min-width:0;padding:16px;border:1px solid #e4e7ec;border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.o-program-choice:hover{border-color:#b2ccff}.o-program-choice:has(input:checked){border-color:#0562d8;background:#f5f9ff;box-shadow:0 0 0 1px #0562d8}
.o-program-choice input{flex:0 0 auto;width:18px;height:18px;margin:2px 0 0;accent-color:#0562d8}
.o-program-choice span{display:block;min-width:0}.o-program-choice strong{display:block;color:#101828;font-size:15px;line-height:1.35;margin-bottom:4px}.o-program-choice small{display:block;color:#667085;font-size:13px;line-height:1.45}
.o-program-section{padding:24px 0;border-top:1px solid #e4e7ec}.o-program-section[hidden]{display:none!important}.o-program-section .o-section-head{margin-bottom:16px}.o-program-section h3{margin:2px 0 0;font-size:21px;line-height:1.3}
.o-program-form .o-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}.o-program-form .o-field-full{grid-column:1/-1}
.o-program-form .o-field>span{display:block;margin-bottom:7px;font-weight:600;color:#101828}.o-program-form .o-field small{display:block;margin-top:6px;color:#667085;line-height:1.45}
.o-program-form :is(input,select){width:100%;min-height:48px;border:1px solid #d0d5dd;border-radius:10px;background:#fff;color:#101828;padding:10px 13px;font:inherit;box-sizing:border-box}
.o-program-form :is(input,select):focus{outline:3px solid rgba(5,98,216,.13);outline-offset:1px;border-color:#0562d8}
.o-program-preview{margin:4px 0 16px;padding:16px 18px;border-radius:12px;background:#f5f9ff;border:1px solid #d6e4ff}.o-program-preview strong{display:block;margin-top:4px;color:#101828;font-size:16px}
.o-program-form .o-form-note{margin:0 0 18px;color:#667085;line-height:1.55}
@media(max-width:900px){.o-program-choices{grid-template-columns:1fr}.o-program-form .o-field-grid{grid-template-columns:1fr}.o-program-form .o-field-full{grid-column:auto}}

/* 1.1.5-rc5 — Programmes fidélité multiples, simples et sûrs */
.o-programs-manager{margin-top:22px!important}
.o-programs-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:20px}
.o-programs-head h2{margin:3px 0 6px!important;font-size:24px!important;color:#101828!important}
.o-programs-head p{margin:0;color:#667085;max-width:720px;line-height:1.55}
.o-program-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.o-program-card{min-width:0;padding:20px;border:1px solid #e4e7ec;border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(16,24,40,.035)}
.o-program-card.is-active{border-top:3px solid #0071f3}
.o-program-card.is-archived{background:#f8fafc;opacity:.86}
.o-program-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.o-program-card-top h3{margin:7px 0 0!important;font-size:19px!important;line-height:1.3;color:#101828!important}
.o-program-card-top>strong{flex:none;font-size:12px;color:#667085;font-weight:600}
.o-program-status{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;background:#eef5ff;color:#0562d8;font-size:11px;font-weight:700}
.o-program-card.is-archived .o-program-status{background:#f2f4f7;color:#667085}
.o-program-card>p{min-height:44px;margin:14px 0!important;color:#475467;line-height:1.45}
.o-program-editor{margin-top:24px;padding:24px;border:1px solid #d6e4ff;border-radius:16px;background:#fbfdff;scroll-margin-top:24px}
.o-program-editor>.o-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}
.o-program-editor>.o-section-head h2{margin:3px 0 0!important;font-size:24px!important}
.o-program-form .o-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.o-program-form .o-field-full{grid-column:1/-1}
.o-program-form .o-field{display:block;min-width:0}
.o-program-form .o-field>span{display:block;margin-bottom:7px;font-size:13px;font-weight:700;color:#344054}
.o-program-form .o-field input,
.o-program-form .o-field select{box-sizing:border-box!important;width:100%!important;max-width:100%!important;height:48px!important;margin:0!important;padding:10px 12px!important;border:1px solid #d0d5dd!important;border-radius:10px!important;background:#fff!important;color:#101828!important;font:400 16px/1.4 Onest,system-ui,sans-serif!important;box-shadow:none!important}
.o-program-form .o-field small{display:block;margin-top:6px;color:#667085;line-height:1.4}
.o-program-active{display:flex;align-items:flex-start;gap:11px;margin:20px 0;padding:15px 16px;border:1px solid #e4e7ec;border-radius:12px;background:#fff}
.o-program-active>input{appearance:auto!important;-webkit-appearance:auto!important;width:18px!important;height:18px!important;min-width:18px!important;margin:2px 0 0!important;accent-color:#0071f3!important}
.o-program-active span{display:block}.o-program-active strong{display:block;color:#101828}.o-program-active small{display:block;margin-top:3px;color:#667085;line-height:1.4}
.o-program-section{padding:22px 0!important;border-top:1px solid #e4e7ec!important}
.o-program-section[hidden]{display:none!important}
.o-program-reward h3{font-size:16px!important;margin:12px 0!important}
.o-program-preview{margin:6px 0 18px;padding:16px 18px;border:1px solid #d6e4ff;border-radius:12px;background:#f5f9ff}
.o-program-preview strong{display:block;margin-top:5px;color:#101828;font-size:16px;line-height:1.45}

/* Choix client : une seule carte, un seul programme actif. */
.o-public-programs{border:0!important;padding:0!important;margin:0 0 20px!important}
.o-public-programs legend{margin:0 0 10px;font-size:14px;font-weight:750;color:#101828}
.o-public-program{display:flex!important;align-items:flex-start!important;gap:10px!important;margin:0 0 10px!important;padding:14px!important;border:1px solid #dce3ec!important;border-radius:12px!important;background:#fff!important;cursor:pointer}
.o-public-program:has(input:checked){border-color:#0071f3!important;background:#f5f9ff!important;box-shadow:0 0 0 1px #0071f3}
.o-public-program>input{appearance:auto!important;-webkit-appearance:auto!important;display:block!important;position:static!important;opacity:1!important;width:18px!important;height:18px!important;min-width:18px!important;margin:2px 0 0!important;accent-color:#0071f3!important}
.o-public-program span{display:block!important}.o-public-program strong{display:block;color:#101828;font-size:15px}.o-public-program small{display:block;margin-top:4px;color:#667085;line-height:1.4}
.o-public-program-single,.o-public-program-name{margin:0 0 20px;padding:13px 15px;border-radius:11px;background:#f5f9ff;border:1px solid #d6e4ff;color:#344054}
.o-public-program-single strong{display:block;color:#101828}.o-public-program-single small{display:block;margin-top:3px;color:#667085}
.o-public-program-name{font-size:13px;line-height:1.45;text-align:center}

@media(max-width:960px){.o-program-list{grid-template-columns:1fr}.o-programs-head{flex-direction:column}.o-programs-head .oreso-btn{width:100%;justify-content:center}.o-program-form .o-field-grid{grid-template-columns:1fr}.o-program-form .o-field-full{grid-column:auto}}

/* 1.1.5-rc5.1 — finition UX programmes : nom client + mécanique séparée */
.o-program-card-top>div{min-width:0}
.o-program-mechanic{display:inline-flex;align-items:center;min-height:24px;margin-left:6px;padding:3px 8px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:11px;font-weight:650}
.o-program-card h3{word-break:break-word}
.o-program-rule{font-weight:500}
.o-public-program-help{margin:-4px 0 14px;color:#667085;font-size:13px;line-height:1.5}

/* 1.1.5-rc5.2 — Freeze UX / sécurité caisse */
.o-member-card.is-reward-ready{border-color:#fed7aa!important;box-shadow:0 0 0 1px rgba(255,140,0,.08)}
.o-reward-ready{display:flex!important;align-items:center;gap:14px;margin:18px 0!important;padding:16px 18px!important;border:1px solid #fed7aa!important;border-radius:14px!important;background:#fff7ed!important;color:#101828!important}
.o-reward-ready-icon{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:50%;background:#ff8c00;color:#fff;font-size:20px}
.o-reward-ready-kicker{display:block;font-size:11px;letter-spacing:.08em;font-weight:800;color:#c2410c}.o-reward-ready strong{display:block;margin-top:3px;font-size:18px}
.o-confirm-progress{display:flex;justify-content:space-between;gap:20px;margin:18px 0;padding:14px 16px;border-radius:12px;background:#f5f7fa;color:#475467}.o-confirm-progress strong{color:#101828;font-size:18px}.o-confirm-reward{padding:14px 16px;border-radius:12px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}.o-dialog-note{font-size:13px;color:#667085}.o-correction-link{display:block;margin:12px 0 0;border:0;background:transparent;color:#0562d8;font:600 14px Onest,system-ui,sans-serif;cursor:pointer;padding:0;text-align:left}.o-correction-link:hover{text-decoration:underline}.o-timeline li.is-cancelled .o-timeline-dot{background:#98a2b3!important}.o-timeline li.is-cancelled strong{color:#667085}
.o-public-card .o-public-program-name{display:grid;gap:3px;text-align:left;background:#f5f9ff;border-color:#d6e4ff;padding:14px 16px}.o-public-card .o-public-program-name>span{font-size:10px;font-weight:800;letter-spacing:.1em;color:#0562d8}.o-public-card .o-public-program-name>strong{font-size:16px;color:#101828}
.o-public-card .o-progress-label{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}.o-public-card .o-progress-label>span{font-size:11px;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:#667085}.o-public-card .o-progress-label>strong{font-size:15px;color:#101828}
.o-loyalty-steps{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:16px 0 4px;position:relative}.o-loyalty-steps:before{content:"";position:absolute;left:18px;right:18px;top:50%;height:2px;background:#e4e7ec;z-index:0}.o-loyalty-steps span{position:relative;z-index:1;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:2px solid #d0d5dd;background:#fff;color:#98a2b3;font-size:12px;font-weight:800}.o-loyalty-steps span.is-done{background:#0071f3;border-color:#0071f3;color:#fff}.o-loyalty-steps span.is-next{border-color:#0071f3;color:#0071f3;box-shadow:0 0 0 4px #eef5ff}.o-loyalty-steps span.is-reward{background:#ff8c00;border-color:#ff8c00;color:#fff;box-shadow:0 0 0 4px #fff7ed}
.o-public-card .o-progress-message{font-size:14px!important;line-height:1.5}.o-public-celebration{display:flex;gap:14px;align-items:flex-start;margin:18px 0 12px;padding:16px;border:1px solid #fed7aa;border-radius:14px;background:linear-gradient(135deg,#fff7ed,#fff)}.o-celebration-icon{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:50%;background:#ff8c00;color:#fff;font-size:20px}.o-public-celebration div>span{font-size:10px;font-weight:850;letter-spacing:.1em;color:#c2410c}.o-public-celebration div>strong{display:block;margin:2px 0 4px;font-size:18px;color:#101828}.o-public-celebration p{margin:0!important;color:#667085!important;font-size:13px!important}.o-public-card .reward.is-ready{background:#fff7ed;border:1px solid #fed7aa}.o-public-card .reward.is-ready>span{color:#9a3412;font-weight:700}
@media(max-width:520px){.o-confirm-progress{align-items:flex-start;flex-direction:column;gap:4px}.o-loyalty-steps span{width:30px;height:30px}.o-public-celebration{padding:14px}.o-public-card .o-progress-label{align-items:flex-start;flex-direction:column;gap:3px}}

/* 1.1.5-rc5.3 — Polish final de la carte client / branding commerce */
body.oreso-fid-standalone{
    background:
      radial-gradient(circle at 15% 0%,rgba(0,113,243,.055),transparent 28rem),
      #f5f7fa;
}
.loyalty.o-public-card{
    max-width:560px;
    border-radius:24px;
    border-color:#dfe3e8;
    box-shadow:0 24px 70px rgba(16,24,40,.08);
}
.o-public-card header{
    position:relative;
    padding:26px 28px 20px;
    background:linear-gradient(145deg,#fff 0%,#f8fbff 100%);
    border-top:4px solid #0071f3;
}
.o-public-brand-row{display:flex;align-items:center;gap:16px;min-width:0}
.o-public-business-mark{width:72px;height:72px;flex:0 0 72px;display:grid;place-items:center;border:1px solid #e4e7ec;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(16,24,40,.06);overflow:hidden}
.o-public-business-logo{display:block;max-width:58px;max-height:58px;width:auto;height:auto;object-fit:contain}
.o-public-business-logo.o-fid-business-initial,.o-fid-business-initial{font-size:26px;font-weight:850;color:#0071f3;text-transform:uppercase}
.o-public-brand-copy{min-width:0;flex:1}
.o-public-kicker{display:block;margin-bottom:3px;font-size:10px;font-weight:850;letter-spacing:.11em;color:#667085}
.o-public-card header h1{font-size:24px;line-height:1.15;text-align:left;margin:0 0 5px;color:#101828}
.o-public-card header p{font-size:14px;line-height:1.4;text-align:left;margin:0;color:#667085}
.o-public-powered{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin-top:14px;font-size:10px;color:#98a2b3}
.o-public-powered img{display:block;width:58px;height:auto;opacity:.8}
.o-public-card main{padding:26px 28px 30px}
.o-public-card .o-public-program-name{margin-bottom:18px;border-radius:14px;background:linear-gradient(135deg,#f5f9ff,#fff);padding:14px 16px}
.o-public-card .o-public-program-name>span{font-size:10px;letter-spacing:.11em}
.o-public-card .o-public-program-name>strong{font-size:17px;line-height:1.35}
.o-public-card .o-public-qr-card{margin:0 0 24px!important;padding:18px!important;border:1px solid #e4e7ec!important;border-radius:18px!important;background:#fff!important;box-shadow:0 10px 28px rgba(16,24,40,.035)}
.o-qr-heading{display:flex;align-items:center;gap:12px;text-align:left;margin-bottom:10px}
.o-qr-badge{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border-radius:12px;background:#eef5ff;color:#0071f3;font-size:19px;font-weight:800}
.o-public-card .o-qr-heading h2{font-size:17px;margin:0 0 2px}
.o-public-card .o-qr-heading p{margin:0;color:#667085;font-size:12px;line-height:1.35}
.o-public-card .qr img{width:216px!important;height:216px!important;margin:10px auto 8px;padding:7px;background:#fff;border:1px solid #eef0f3;border-radius:12px}
.o-public-card .qr-fallback{margin-top:8px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:750;color:#98a2b3}
.o-public-card .qr code{font-size:26px;letter-spacing:.22em;margin-top:4px}
.o-public-card .o-public-progress{padding-top:22px}
.o-public-card .o-progress-label{margin-bottom:11px}
.o-public-card .o-progress-label>span{font-size:11px}
.o-public-card .o-progress-label>strong{font-size:16px}
.o-public-card progress{height:10px;background:#e8edf3}
.o-public-card progress::-webkit-progress-bar{background:#e8edf3}
.o-public-card progress::-webkit-progress-value{background:linear-gradient(90deg,#0071f3,#0562d8)}
.o-public-card progress::-moz-progress-bar{background:#0071f3}
.o-loyalty-steps{margin:18px 0 10px}
.o-loyalty-steps:before{height:3px;left:19px;right:19px;background:#e4e7ec}
.o-loyalty-steps span{width:38px;height:38px;border-width:2px;font-size:13px;box-shadow:0 3px 8px rgba(16,24,40,.04)}
.o-loyalty-steps span.is-done{box-shadow:0 0 0 4px #eef5ff}
.o-loyalty-steps span.is-reward{box-shadow:0 0 0 5px #fff0df,0 6px 14px rgba(255,140,0,.18)}
.o-public-card .o-progress-message{margin-top:14px!important;font-size:14px!important}
.o-public-card .reward{padding:16px 17px;border:1px solid #e4e7ec;border-radius:14px;background:#f8fafc}
.o-public-card .reward span{font-size:12px;font-weight:700;color:#667085}
.o-public-card .reward strong{display:block;margin-top:3px;font-size:18px;color:#101828}
.o-public-celebration{
    position:relative;overflow:hidden;gap:16px;margin:20px 0 2px;padding:20px;
    border-radius:18px;background:
      radial-gradient(circle at 92% 15%,rgba(255,140,0,.16),transparent 5rem),
      linear-gradient(135deg,#fff7ed 0%,#fff 72%);
    box-shadow:0 12px 28px rgba(255,140,0,.08)
}
.o-public-celebration:after{content:"";position:absolute;width:74px;height:74px;border:14px solid rgba(0,113,243,.06);border-radius:50%;right:-30px;bottom:-34px}
.o-celebration-icon{width:48px;height:48px;flex-basis:48px;font-size:22px;box-shadow:0 0 0 5px #fff0df}
.o-public-celebration div>span{font-size:10px;letter-spacing:.12em}
.o-public-celebration div>strong{font-size:19px;margin:1px 0 5px}
.o-celebration-reward{font-size:22px;line-height:1.25;font-weight:850;color:#101828;margin:8px 0 8px}
.o-public-celebration p{font-size:14px!important;line-height:1.45}
.o-public-wallet{margin-top:22px;padding:18px;border-radius:18px;background:#f7f8fa;border:1px solid #e4e7ec}
.o-wallet-copy{display:grid;gap:2px;margin-bottom:12px}
.o-wallet-copy strong{font-size:14px;color:#101828}
.o-wallet-copy span{font-size:12px;line-height:1.4;color:#667085}
.o-public-card .oreso-fid-wallet-actions{margin:0}
.o-public-card .oreso-fid-wallet-btn{min-height:54px;border-radius:13px;font-size:15px}
.o-public-card footer{display:flex;align-items:center;justify-content:center;gap:5px;padding:0 24px 26px;font-size:10px;color:#98a2b3}
.o-public-card footer img{display:block;width:58px;height:auto;opacity:.8}

/* Confirmation publique : identité commerce en premier, ORESO en signature. */
body.o-fid-public-state{margin:0;background:#f5f7fa;color:#101828;font:16px/1.55 Onest,system-ui,sans-serif;padding:32px 16px}
.o-fid-public-state main{box-sizing:border-box;width:100%;max-width:620px;margin:0 auto;padding:32px;background:#fff;border:1px solid #e4e7ec;border-radius:20px;box-shadow:0 18px 55px rgba(16,24,40,.07)}
.o-fid-state-brand{display:flex;align-items:center;gap:14px;margin-bottom:26px}
.o-fid-state-logo{display:block;width:62px;height:62px;object-fit:contain;border:1px solid #e4e7ec;border-radius:14px;padding:7px;background:#fff;box-sizing:border-box}
.o-fid-state-logo.o-fid-business-initial{display:grid;place-items:center;font-size:23px;font-weight:850;color:#0071f3;padding:0}
.o-fid-state-brand small{display:block;font-size:10px;letter-spacing:.11em;font-weight:800;color:#667085}
.o-fid-state-brand strong{display:block;font-size:18px;color:#101828}
.o-fid-public-state h1{font-size:30px;line-height:1.2;margin:0 0 16px}
.o-fid-public-state p{color:#475467}
.o-fid-public-state button{appearance:none;border:0;border-radius:10px;background:#0071f3;color:#fff;font:700 16px Onest,system-ui,sans-serif;padding:14px 20px;cursor:pointer}
.o-fid-public-state a{color:#0562d8}
.o-fid-public-state footer{margin-top:28px;padding-top:18px;border-top:1px solid #e4e7ec;text-align:center;font-size:11px;color:#98a2b3}

@media(max-width:520px){
 .loyalty.o-public-card{width:calc(100% - 20px);margin:10px auto;border-radius:20px}
 .o-public-card header{padding:20px 18px 16px}
 .o-public-card main{padding:20px 18px 24px}
 .o-public-business-mark{width:60px;height:60px;flex-basis:60px;border-radius:15px}
 .o-public-business-logo{max-width:48px;max-height:48px}
 .o-public-card header h1{font-size:21px}
 .o-public-card .o-public-qr-card{padding:15px!important}
 .o-public-card .qr img{width:194px!important;height:194px!important}
 .o-loyalty-steps span{width:32px;height:32px}
 .o-public-celebration{padding:16px;gap:13px}
 .o-celebration-icon{width:42px;height:42px;flex-basis:42px}
 .o-celebration-reward{font-size:19px}
 .o-fid-public-state{padding:16px 10px}.o-fid-public-state main{padding:24px 20px;border-radius:16px}.o-fid-public-state h1{font-size:26px}
}
/* Fin 1.1.5-rc5.3 */
