:root{--cupme-font: "Inter", "Sora", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--cupme-gradient: linear-gradient(180deg, #f3f9ff 0%, #ffffff 60%, #fef4ff 100%);--cupme-text: #0f1f3c;--cupme-muted: rgba(15, 31, 60, .7);--cupme-surface: #ffffff;--cupme-surface-muted: rgba(255, 255, 255, .95);--cupme-border-soft: rgba(144, 170, 211, .3);--cupme-border-strong: rgba(6, 48, 88, .25);--cupme-chip-bg: rgba(144, 170, 211, .15);--cupme-shadow-soft: 0 25px 60px rgba(15, 31, 60, .08);--cupme-primary-start: #5fb0ff;--cupme-primary-end: #90d7ff;--cupme-primary: #4b78ff}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:var(--cupme-font),serif;background:var(--cupme-gradient);color:var(--cupme-text)}.page-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--cupme-gradient);color:var(--cupme-text);font-family:var(--cupme-font),serif;padding:1.5rem clamp(1rem,4vw,2rem) 2.5rem}.cupme-shell{width:100%;max-width:1200px;margin:0 auto}.section{padding:2.5rem;border-radius:30px;background:var(--cupme-surface-muted);border:1px solid var(--cupme-border-soft);box-shadow:var(--cupme-shadow-soft)}h1,h2,h3{margin-top:0;margin-bottom:.5rem;font-weight:700;letter-spacing:-.02em}h1{font-size:clamp(1.6rem,3.5vw,2.4rem)}h2{font-size:clamp(1.4rem,3vw,2rem)}h3{font-size:clamp(1.2rem,2.5vw,1.6rem)}.section-header{max-width:760px;margin-bottom:2rem}.section-header h2{margin:0 0 .5rem;color:var(--cupme-text)}.section-header p{color:var(--cupme-muted);margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.3em;font-size:.7rem;color:var(--cupme-primary);margin-bottom:.5rem}.badge{display:inline-flex;align-items:center;gap:.4rem;text-transform:uppercase;font-size:.65rem;letter-spacing:.25em;color:#3a8ef6}.action-row{display:flex;gap:1rem;flex-wrap:wrap}.primary-button,.secondary-button,.ghost-button{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:none;cursor:pointer;padding:.85rem 1.8rem;font-weight:600;background:none;color:inherit;transition:all .2s ease;font-family:inherit;text-decoration:none}.primary-button{background:linear-gradient(135deg,var(--cupme-primary-start),var(--cupme-primary-end));color:#063058;box-shadow:0 12px 24px #5fb0ff59}.secondary-button{border:1px solid var(--cupme-border-strong);background-color:var(--cupme-surface)}.ghost-button{padding:.65rem 1.2rem;border:1px solid rgba(6,48,88,.15);background-color:var(--cupme-chip-bg);color:var(--cupme-text)}.admin-page .controls-row{margin-top:.75rem;display:grid;grid-template-columns:1fr auto auto;gap:.5rem .75rem;align-items:center}.admin-page .actions-right,.admin-page .filters{display:inline-flex;gap:.5rem;align-items:center}.admin-page .actions-right{justify-self:end}.admin-page .filters{flex-wrap:wrap}.admin-page .search-box input[type=search]{width:100%;appearance:none;border:1px solid var(--cupme-border-soft);background:var(--cupme-surface);border-radius:12px;padding:.7rem .9rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.admin-page .search-box input[type=search]:focus-visible{border-color:var(--cupme-border);box-shadow:0 0 0 3px color-mix(in oklab,var(--cupme-primary, #1a73e8) 20%,transparent)}.admin-page .chip,.admin-page .tab-button,.admin-page .btn-primary,.admin-page .btn-ghost,.admin-page .btn-danger{cursor:pointer}.admin-page .chip{border:1px solid var(--cupme-border-soft);background:var(--cupme-surface);color:var(--cupme-foreground);padding:.35rem .6rem;border-radius:999px;font-size:.9rem;transition:background .2s ease,border-color .2s ease,color .2s ease}.admin-page .chip:hover{background:var(--cupme-surface-2, #fafafa)}.admin-page .chip:disabled{opacity:.5;cursor:not-allowed}.admin-page .chip.active{background:var(--cupme-primary-soft, #eef5ff);color:var(--cupme-primary, #1a73e8);border-color:color-mix(in oklab,var(--cupme-primary, #1a73e8) 40%,var(--cupme-border-soft))}.admin-page .pagination-row{margin-top:.75rem;display:flex;align-items:center;justify-content:flex-end;gap:.75rem}.admin-page .sort select{border:1px solid var(--cupme-border-soft);background:var(--cupme-surface);border-radius:12px;padding:.5rem .75rem}.admin-page .admin-tabs{margin-top:.5rem;display:inline-flex;gap:.5rem;background:var(--cupme-surface);padding:.5rem;border-radius:999px;border:1px solid var(--cupme-border-soft)}.admin-page .tab-button{border:0;background:transparent;padding:.5rem 1rem;border-radius:999px;color:var(--cupme-muted);transition:background .2s ease,color .2s ease,box-shadow .2s ease}.admin-page .tab-button.active{background:var(--cupme-primary-soft, #eef5ff);color:var(--cupme-primary, #1a73e8);box-shadow:0 1px 2px #0000000f inset}.admin-page .tab-button:hover{background:var(--cupme-surface-2, #fafafa)}.admin-page .tab-button .badge{margin-left:.4rem;vertical-align:middle}.admin-page .btn-primary{border:1px solid color-mix(in oklab,var(--cupme-primary, #1a73e8) 50%,var(--cupme-border-soft));background:var(--cupme-primary, #1a73e8);color:#fff;border-radius:10px;padding:.55rem .9rem;font-weight:600;transition:filter .15s ease,transform .02s ease}.admin-page .btn-primary:hover{filter:brightness(1.05)}.admin-page .btn-primary:active{transform:translateY(1px)}.admin-page .btn-ghost,.admin-page .btn-danger{border-radius:8px;padding:.35rem .55rem;font-size:.85rem;transition:background .15s ease,border-color .15s ease,color .15s ease}.admin-page .btn-ghost{border:1px solid var(--cupme-border-soft);background:var(--cupme-surface);color:var(--cupme-foreground)}.admin-page .btn-ghost:hover{background:var(--cupme-surface-2, #fafafa);border-color:var(--cupme-border)}.admin-page .btn-danger{border:1px solid #ffccd5;background:#fff0f3;color:#c92a2a}.admin-page .btn-danger:hover{background:#c92a2a;color:#fff;border-color:#c92a2a}.admin-page .badge{display:inline-flex;align-items:center;gap:.25rem;padding:.1rem .45rem;margin-left:.5rem;border-radius:999px;font-size:.72rem;line-height:1.2;border:1px solid var(--cupme-border-soft);background:var(--cupme-surface-2, #fafafa)}.admin-page .badge.info{color:var(--cupme-primary, #1a73e8);background:var(--cupme-primary-soft, #eef5ff);border-color:color-mix(in oklab,var(--cupme-primary, #1a73e8) 35%,var(--cupme-border-soft))}.admin-page .badge.warn{color:#a15c00;background:#fff5e6;border-color:#fddeae}.admin-page .badge.danger{color:#8a1022;background:#ffe8ec;border-color:#ffd0d8}.admin-page .badge.success{color:#2b8a3e;background:#ebfbee;border-color:#d3f9d8}.admin-page .badge.muted{color:var(--cupme-muted);background:var(--cupme-surface-2);border-color:var(--cupme-border-soft)}.parcours__timer{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f0f0f0;border-radius:2rem;border:none;cursor:pointer;transition:background .2s ease;font-weight:600;color:inherit}.parcours__timer:hover{background:#e0e0e0}.parcours__timer--idle{animation:pulse 1.8s infinite;box-shadow:0 0 #1976d259}.parcours__timer--running{animation:none;background:#e3f2fd;color:#1976d2}.parcours__timer--running:hover{background:#bbdefb}.parcours__timer--done{animation:none;background:#e8f5e9;color:#2e7d32;border:1px solid rgba(46,125,50,.35);cursor:default}.parcours__timer--done:hover{background:#e8f5e9}.parcours__timer .timer-icon{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;flex-shrink:0}.parcours__timer .timer-icon--svg svg{display:block}.parcours__timer .timer-value{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:700}.cupping-icon{height:2rem;width:4rem;display:inline-block;vertical-align:middle;background-position:center;background-repeat:no-repeat;background-size:contain;flex-shrink:0}.cupping-icon.cup-pistol-icon{background-image:url(/assets/icons/pistol.png);background-size:100%}.cupping-icon.tuto-icon{width:2.5rem;height:2.5rem;background-image:url(/assets/icons/info-tutorial.jpg);background-size:100%;cursor:pointer;border-radius:50%}a:focus-visible,button:focus-visible,[role=button]:focus-visible{outline:3px solid rgba(75,120,255,.45);outline-offset:2px;border-radius:8px}.auth-modal-backdrop{position:fixed;inset:0;background:#0610208c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:40;border:none}.auth-modal{position:fixed;inset:0;display:grid;place-items:center;z-index:45;padding:1.5rem}.auth-modal__panel{width:min(520px,100%);background:var(--cupme-surface);border-radius:24px;border:1px solid var(--cupme-border-soft);box-shadow:0 30px 80px #08122b59;padding:2rem;position:relative}.auth-modal__panel app-auth-box{display:block}.auth-modal__close{position:absolute;top:.9rem;right:.9rem;width:38px;height:38px;border-radius:50%;border:none;background:#06305814;color:var(--cupme-text);font-size:1.4rem;cursor:pointer;display:grid;place-items:center}.auth-modal__close:hover{background:#06305826}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{box-shadow:0 0 #1976d266}70%{box-shadow:0 0 0 10px #1976d200}to{box-shadow:0 0 #1976d200}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes bounce-down{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slide-in-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes card-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.section{padding:1.8rem}.action-row{flex-direction:column}.action-row button{width:100%}}
