: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;
}
