:root,[data-theme=light]{--surface: #f7f3ea;--surface-raised: #fffdf8;--surface-sunken: #efe9dc;--line: #e2dacb;--line-strong: #8c8573;--ink: #1a2b22;--ink-muted: #55645a;--brand: #1e4634;--on-brand: #f7f3ea;--brand-soft: #dce8df;--on-brand-soft: #1e4634;--leaf: #0b6635;--card-deep: #1e4634;--on-card-deep: #f7f3ea;--on-card-deep-muted: #b9c9be;--gold: #d9b864;--on-gold: #1e4634;--gold-ink: #7a5c14;--gold-soft: #fbf1d6;--qr-ground: #ffffff;--qr-ink: #0f1a14;--info: #1d5b86;--info-soft: #e3eef6;--success: #1e6b45;--success-soft: #e1f0e6;--warning: #9a4a00;--warning-soft: #fbebdc;--danger: #a3352a;--danger-soft: #f9e4e0;--focus: #1d5b86;--level-1: #1e6b45;--level-2: #557f2e;--level-3: #946a0a;--level-4: #b5531f;--level-5: #9c3b2e;--shadow-sm: 0 1px 2px #1a2b220f, 0 1px 3px #1a2b2214;--shadow-md: 0 4px 12px #1a2b221a, 0 12px 32px -8px #1a2b2229;--focus-ring: 0 0 0 2px #f7f3ea, 0 0 0 4px #1d5b86}[data-theme=dark]{--surface: #101c16;--surface-raised: #18271f;--surface-sunken: #0b1511;--line: #26372d;--line-strong: #6f7f74;--ink: #eef2ec;--ink-muted: #a9b7ad;--brand: #86c9a0;--on-brand: #101c16;--brand-soft: #1c3428;--on-brand-soft: #cde7d6;--leaf: #7fbf95;--card-deep: #1a3a2b;--on-card-deep: #eef2ec;--on-card-deep-muted: #c9d6cd;--gold: #d9b864;--on-gold: #1e4634;--gold-ink: #e3c77d;--gold-soft: #3a3016;--qr-ground: #ffffff;--qr-ink: #0f1a14;--info: #8ec2ea;--info-soft: #142838;--success: #86c9a0;--success-soft: #17301f;--warning: #f2b37a;--warning-soft: #3a2410;--danger: #f29a8c;--danger-soft: #3a1a16;--focus: #8ec2ea;--level-1: #86c9a0;--level-2: #b5d27e;--level-3: #e3c77d;--level-4: #f2a56b;--level-5: #f29a8c;--shadow-sm: 0 1px 2px #00000080;--shadow-md: 0 8px 24px #000000b3;--focus-ring: 0 0 0 2px #101c16, 0 0 0 4px #8ec2ea;color-scheme:dark}:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--target-min: 48px;--control-height: 48px;--control-height-sm: 40px;--cashier-key-size: 88px;--qr-size: 200px;--font-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;--font-sans: Montserrat, "Segoe UI", Roboto, system-ui, sans-serif}.display{font-family:var(--font-serif);font-size:40px;line-height:44px;font-weight:600}.title-1{font-family:var(--font-serif);font-size:30px;line-height:36px;font-weight:600}.title-2{font-family:var(--font-serif);font-size:24px;line-height:30px;font-weight:600}.points{font-family:var(--font-sans);font-size:36px;line-height:40px;font-weight:600;letter-spacing:-.01em}.heading{font-family:var(--font-sans);font-size:18px;line-height:24px;font-weight:600}.body{font-family:var(--font-sans);font-size:16px;line-height:24px;font-weight:400}.body-strong{font-family:var(--font-sans);font-size:16px;line-height:24px;font-weight:600}.body-sm{font-family:var(--font-sans);font-size:14px;line-height:20px;font-weight:400}.label{font-family:var(--font-sans);font-size:14px;line-height:20px;font-weight:600;letter-spacing:.01em}.caption{font-family:var(--font-sans);font-size:12px;line-height:16px;font-weight:500;letter-spacing:.04em}.cashier-amount{font-family:var(--font-sans);font-size:56px;line-height:64px;font-weight:600}.cashier-key{font-family:var(--font-sans);font-size:28px;line-height:32px;font-weight:600}@font-face{font-family:Montserrat;src:url(/assets/Montserrat-400-BfmCfwfZ.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/assets/Montserrat-500-CN3hDfLq.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/assets/Montserrat-600-CFh7D7Z4.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/assets/Montserrat-700-Dkxlx_w4.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url(/assets/CormorantGaramond-500-1LI_Nn-7.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url(/assets/CormorantGaramond-600-BgV6qtQt.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}body{margin:0;font-family:var(--font-sans);font-size:16px;line-height:24px;background:var(--surface);color:var(--ink);-webkit-font-smoothing:antialiased}.zp-stage{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:flex-start;padding:var(--space-4)}.zp-stack{display:flex;flex-direction:column;gap:var(--space-3)}.zp-ico{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.zp-num{font-variant-numeric:tabular-nums}.zp-caption{font-size:12px;line-height:16px;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.zp-btn{font:inherit;font-size:14px;line-height:20px;font-weight:600;letter-spacing:.01em;min-height:var(--control-height);min-width:var(--target-min);padding:0 var(--space-5);border-radius:var(--radius-md);border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);cursor:pointer;box-sizing:border-box;text-decoration:none}.zp-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.zp-btn-primary{background:var(--brand);color:var(--on-brand)}.zp-btn-secondary{background:var(--surface-raised);color:var(--brand);border-color:var(--line-strong)}.zp-btn-ghost{background:transparent;color:var(--brand)}.zp-btn-gold{background:var(--gold);color:var(--on-gold)}.zp-btn-danger{background:var(--surface-raised);color:var(--danger);border-color:var(--danger)}.zp-btn-block{width:100%}.zp-btn-sm{min-height:var(--control-height-sm);padding:0 var(--space-4)}.zp-btn[disabled]{background:var(--surface-sunken);color:var(--ink-muted);border-color:var(--line);cursor:not-allowed}.zp-field{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.zp-field label{font-size:14px;line-height:20px;font-weight:600;color:var(--ink)}.zp-input{font:inherit;font-size:16px;min-height:var(--control-height);padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);box-sizing:border-box;width:100%}.zp-input::placeholder{color:var(--ink-muted)}.zp-input:focus-visible{outline:none;box-shadow:var(--focus-ring);border-color:var(--focus)}.zp-field-help{font-size:14px;line-height:20px;color:var(--ink-muted)}.zp-field-error .zp-input{border-color:var(--danger);border-width:2px}.zp-field-error .zp-field-help{color:var(--danger);display:flex;gap:var(--space-1);align-items:center}.zp-prefix{display:flex;align-items:stretch}.zp-prefix span{display:flex;align-items:center;padding:0 var(--space-3);border:1px solid var(--line-strong);border-right:0;border-radius:var(--radius-md) 0 0 var(--radius-md);background:var(--surface-sunken);color:var(--ink-muted);font-size:16px}.zp-prefix .zp-input{border-radius:0 var(--radius-md) var(--radius-md) 0}.zp-check{display:flex;gap:var(--space-3);align-items:flex-start;min-height:var(--target-min);font-size:14px;line-height:20px;color:var(--ink)}.zp-check input{width:24px;height:24px;margin:0;accent-color:var(--brand);flex:none}.zp-qrcard{width:342px;box-sizing:border-box;background:var(--card-deep);color:var(--on-card-deep);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-md);border:1px solid var(--line);display:flex;flex-direction:column;gap:var(--space-4);position:relative;overflow:hidden}.zp-qrcard-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.zp-qrcard-brand{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-serif);font-size:20px;line-height:24px;font-weight:600}.zp-qrcard-brand img{width:28px;height:28px}.zp-qr{align-self:center;background:var(--qr-ground);border-radius:var(--radius-lg);padding:var(--space-3);line-height:0}.zp-qr svg{width:var(--qr-size);height:var(--qr-size)}.zp-qr svg path{fill:var(--qr-ink)}.zp-qrcard-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--space-3)}.zp-qrcard-muted{color:var(--on-card-deep-muted);font-size:14px;line-height:20px}.zp-qrcard-points{font-family:var(--font-sans);font-size:36px;line-height:40px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap}.zp-qrcard-vip{border-color:var(--gold);border-width:2px}.zp-qrcard-vip .zp-qrcard-brand{color:var(--gold)}.zp-offline{display:inline-flex;align-items:center;gap:var(--space-1);font-size:12px;line-height:16px;font-weight:600;color:var(--on-card-deep-muted)}.zp-tier{display:inline-flex;align-items:center;gap:var(--space-1);height:28px;padding:0 var(--space-3);border-radius:var(--radius-full);font-size:12px;line-height:16px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.zp-tier-decouverte{background:var(--brand-soft);color:var(--on-brand-soft)}.zp-tier-fidele{background:var(--surface-raised);color:var(--brand);border:1px solid var(--brand)}.zp-tier-vip{background:var(--gold);color:var(--on-gold)}.zp-tier-etudiant{background:var(--surface-raised);color:var(--ink);border:1px dashed var(--line-strong)}.zp-gauge{width:342px;box-sizing:border-box;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);box-shadow:var(--shadow-sm)}.zp-gauge-top{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.zp-gauge-goal{font-size:16px;line-height:24px;font-weight:600}.zp-gauge-track{height:12px;border-radius:var(--radius-full);background:var(--surface-sunken);overflow:hidden;border:1px solid var(--line)}.zp-gauge-fill{height:100%;background:var(--brand);border-radius:var(--radius-full)}.zp-gauge-vip .zp-gauge-fill{background:var(--gold)}.zp-gauge-scale{display:flex;justify-content:space-between;font-size:12px;line-height:16px;color:var(--ink-muted);font-variant-numeric:tabular-nums}.zp-gauge-note{font-size:14px;line-height:20px;color:var(--ink-muted)}.zp-diag{width:342px;box-sizing:border-box;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4);box-shadow:var(--shadow-sm)}.zp-diag-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3)}.zp-diag-title{font-family:var(--font-serif);font-size:24px;line-height:30px;font-weight:600;margin:0}.zp-diag-meta{font-size:14px;line-height:20px;color:var(--ink-muted)}.zp-diag-rows{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0;list-style:none}.zp-diag-row{display:grid;grid-template-columns:minmax(0,1fr) 82px 92px;align-items:center;gap:var(--space-3);min-height:32px}.zp-diag-name{font-size:14px;line-height:20px;font-weight:600}.zp-diag-word{font-size:12px;line-height:16px;color:var(--ink-muted);display:block;font-weight:500}.zp-level{display:flex;gap:3px;align-items:center}.zp-level i{width:14px;height:8px;border-radius:2px;background:var(--surface-sunken);border:1px solid var(--line);box-sizing:border-box}.zp-level i.on{height:14px;border:0}.zp-l1{color:var(--level-1)}.zp-level i.on.zp-l1{background:var(--level-1)}.zp-l2{color:var(--level-2)}.zp-level i.on.zp-l2{background:var(--level-2)}.zp-l3{color:var(--level-3)}.zp-level i.on.zp-l3{background:var(--level-3)}.zp-l4{color:var(--level-4)}.zp-level i.on.zp-l4{background:var(--level-4)}.zp-l5{color:var(--level-5)}.zp-level i.on.zp-l5{background:var(--level-5)}.zp-diag-word b{font-weight:600}.zp-trend{display:inline-flex;align-items:center;gap:2px;font-size:12px;line-height:16px;font-weight:600;min-width:72px;justify-content:flex-end}.zp-trend .zp-ico{width:16px;height:16px}.zp-trend-better{color:var(--success)}.zp-trend-worse{color:var(--warning)}.zp-trend-flat{color:var(--ink-muted)}.zp-diag-advice{background:var(--brand-soft);color:var(--on-brand-soft);border-radius:var(--radius-md);padding:var(--space-3);font-size:14px;line-height:20px}.zp-note{width:342px;box-sizing:border-box;display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-3);align-items:start;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:14px;line-height:20px;color:var(--ink)}.zp-note .zp-ico{margin-top:2px}.zp-note strong{display:block;font-weight:600}.zp-note-close{width:var(--target-min);height:var(--target-min);margin:calc(-1 * var(--space-3)) calc(-1 * var(--space-3)) 0 0;border:0;background:transparent;color:var(--ink-muted);border-radius:var(--radius-md);display:grid;place-items:center;cursor:pointer}.zp-note-close:focus-visible{outline:none;box-shadow:var(--focus-ring)}.zp-note-info{background:var(--info-soft)}.zp-note-info>.zp-ico{color:var(--info)}.zp-note-success{background:var(--success-soft)}.zp-note-success>.zp-ico{color:var(--success)}.zp-note-warning{background:var(--warning-soft)}.zp-note-warning>.zp-ico{color:var(--warning)}.zp-note-danger{background:var(--danger-soft)}.zp-note-danger>.zp-ico{color:var(--danger)}.zp-note-reward{background:var(--gold-soft)}.zp-note-reward>.zp-ico{color:var(--gold-ink)}.zp-status{display:inline-flex;align-items:center;gap:var(--space-2);height:28px;padding:0 var(--space-3) 0 var(--space-2);border-radius:var(--radius-full);font-size:13px;line-height:16px;font-weight:600;white-space:nowrap}.zp-status .zp-ico{width:16px;height:16px;stroke-width:2}.zp-status-envoyee{background:var(--info-soft);color:var(--info)}.zp-status-lue{background:var(--surface-sunken);color:var(--ink)}.zp-status-repondue{background:var(--success-soft);color:var(--success)}.zp-status-close{background:transparent;color:var(--ink-muted);border:1px solid var(--line-strong)}.zp-ticket{width:342px;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);min-height:var(--target-min)}.zp-ticket-top{display:flex;justify-content:space-between;gap:var(--space-2);align-items:center}.zp-ticket-type{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted)}.zp-ticket-subject{font-size:16px;line-height:24px;font-weight:600;margin:0}.zp-ticket-meta{font-size:14px;line-height:20px;color:var(--ink-muted)}body{margin:0;background:var(--surface);color:var(--ink);font-family:var(--font-sans)}a{color:var(--brand)}.zp-loading{padding:var(--space-8);color:var(--ink-muted)}.zp-login{min-height:100vh;display:grid;place-items:center;padding:var(--space-4);box-sizing:border-box}.zp-login-card{width:100%;max-width:420px;display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-8) var(--space-6);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);box-sizing:border-box}.zp-login-card h1{margin:0}.zp-login-brand{display:flex;align-items:center;gap:var(--space-3);color:var(--brand)}.zp-app{min-height:100vh;display:flex;flex-wrap:wrap}.zp-side{flex:1 1 232px;max-width:100%;background:var(--card-deep);color:var(--on-card-deep);padding:var(--space-5) var(--space-3);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--space-1)}.zp-side-brand{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-2) var(--space-4)}.zp-side a{display:flex;align-items:center;gap:var(--space-2);min-height:var(--control-height-sm);padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--on-card-deep-muted);text-decoration:none}.zp-side-label{flex:1}.zp-side-badge{min-width:24px;height:24px;padding:0 var(--space-2);border-radius:var(--radius-full);background:var(--gold);color:var(--on-gold);display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.zp-side a:hover{color:var(--on-card-deep)}.zp-side a.active{background:var(--on-card-deep);color:var(--card-deep)}.zp-side a:focus-visible{outline:none;box-shadow:var(--focus-ring)}.zp-side-foot{margin-top:auto;padding:var(--space-4) var(--space-2) 0;color:var(--on-card-deep-muted)}.zp-side-foot b{color:var(--on-card-deep)}.zp-side-logout{margin-top:var(--space-3);color:var(--on-card-deep)}.zp-main{flex:999 1 560px;min-width:0;padding:var(--space-6) clamp(var(--space-4),3vw,var(--space-8));box-sizing:border-box;display:flex;flex-direction:column;gap:var(--space-6)}.zp-page-head h1{margin:0}.zp-muted{color:var(--ink-muted)}.zp-page-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--space-3)}.zp-page-head p{margin:var(--space-1) 0 0}.zp-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.zp-panel{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.zp-panel-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-2)}.zp-panel-head h2{margin:0}.zp-panel-body{padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.zp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-4)}.zp-cols{display:flex;flex-wrap:wrap;gap:var(--space-6);align-items:flex-start}.zp-cols>.zp-col-main{flex:2 1 480px;min-width:0;display:flex;flex-direction:column;gap:var(--space-4)}.zp-cols>.zp-col-side{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;gap:var(--space-4)}.zp-table-wrap{overflow-x:auto}.zp-table{width:100%;border-collapse:collapse}.zp-table th,.zp-table td{text-align:left;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);vertical-align:middle}.zp-table th{color:var(--ink-muted);font-weight:600;background:var(--surface-sunken)}.zp-table tr:last-child td{border-bottom:0}.zp-table .zp-right{text-align:right}.zp-row-link{cursor:pointer}.zp-row-link:hover td{background:var(--surface-sunken)}.zp-kpi{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5)}.zp-kpi-up{color:var(--success)}.zp-kpi-down{color:var(--warning)}.zp-bars{display:flex;align-items:flex-end;gap:var(--space-2);height:160px;padding:var(--space-4) var(--space-5)}.zp-bar{flex:1;background:var(--brand);border-radius:var(--radius-sm) var(--radius-sm) 0 0;min-height:2px}.zp-tabs{display:flex;flex-wrap:wrap;gap:var(--space-1);border-bottom:1px solid var(--line)}.zp-tab{font:inherit;border:0;background:transparent;padding:0 var(--space-4);min-height:var(--control-height-sm);color:var(--ink-muted);border-bottom:2px solid transparent;cursor:pointer}.zp-tab[aria-selected=true]{color:var(--brand);border-bottom-color:var(--brand)}.zp-tab:focus-visible{outline:none;box-shadow:var(--focus-ring)}.zp-flag{display:flex;align-items:center;gap:var(--space-4);min-height:64px;padding:var(--space-2) var(--space-5);border-bottom:1px solid var(--line);cursor:pointer}.zp-flag:last-child{border-bottom:0}.zp-flag-text{flex:1;min-width:0;display:flex;flex-direction:column}.zp-switch{appearance:none;width:48px;height:28px;border-radius:var(--radius-full);background:var(--surface-sunken);border:1px solid var(--line-strong);position:relative;flex:none;margin:0;cursor:pointer}.zp-switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--ink-muted)}.zp-switch:checked{background:var(--brand);border-color:var(--brand)}.zp-switch:checked:after{left:23px;background:var(--on-brand)}.zp-switch:focus-visible{outline:none;box-shadow:var(--focus-ring)}.zp-switch:disabled{cursor:not-allowed;opacity:.6}.zp-param{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,220px);gap:var(--space-3);align-items:center;padding:var(--space-2) var(--space-5);border-bottom:1px solid var(--line)}.zp-param:last-child{border-bottom:0}.zp-param .zp-input{min-height:var(--control-height-sm);text-align:right}.zp-form-row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end}.zp-form-row>.zp-field{flex:1 1 180px}.zp-grid dd{margin:0}.zp-panel .zp-ticket{width:100%;text-align:left;font:inherit;color:var(--ink);cursor:pointer;border-radius:0;border-width:0 0 1px}.zp-panel .zp-ticket[aria-pressed=true]{background:var(--brand-soft)}.zp-panel .zp-ticket:focus-visible{outline:none;box-shadow:var(--focus-ring)}.zp-bubble{max-width:85%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--surface-sunken)}.zp-bubble-staff{margin-left:auto;background:var(--brand-soft);color:var(--on-brand-soft)}.zp-bubble-photo{display:block;max-width:100%;border-radius:var(--radius-md);margin-block:var(--space-2)}
