@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;700;900&family=Montserrat:wght@400;700;900&family=Oswald:wght@400;700&family=Playfair+Display:wght@400;700;900&family=Pacifico&family=Orbitron:wght@400;700;900&display=swap');
:root{
  --navy:#0B1D34; --navy-2:#142B4A; --blue:#3D7ED4; --blue-d:#2d6ec4;
  --teal:#0FA8CC; --rouge:#D1092B; --vert:#23871B; --geo:#1B5090;
  --white:#FFFFFF; --off:#F5F7FA; --border:#DDE3EC;
  --body:#4A5568; --head:#0B1D34; --muted:#8A94A2;
  --ff-d:'Bebas Neue',Impact,sans-serif;
  --ff-b:'Lora',Georgia,serif;
  --ff-m:'Space Mono','Consolas',monospace;
  --ease-out:cubic-bezier(0.16,1,0.3,1);
  --shadow-sm:0 2px 8px rgba(11,29,52,.06);
  --shadow:0 8px 32px rgba(11,29,52,.10);
  --shadow-lg:0 32px 64px rgba(11,29,52,.14);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--ff-b);background:#fff;color:var(--body);line-height:1.65;overflow-x:hidden}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
h1,h2,h3,h4,h5{color:var(--head);font-family:var(--ff-d);letter-spacing:.04em;line-height:1}
h1{font-size:clamp(40px,5vw,72px)}
h2{font-size:clamp(28px,3.5vw,46px)}
h3{font-size:24px}
.W{max-width:1280px;margin:0 auto;padding:0 40px}
.container{max-width:1280px;margin:0 auto;padding:32px 40px}

/* Topbar */
.topbar{position:sticky;top:0;z-index:50;background:var(--navy);color:#fff;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid rgba(255,255,255,.06)}
.brand{display:flex;align-items:center;gap:12px;color:#fff;font-family:var(--ff-d);letter-spacing:.06em;font-size:22px}
.brand-logo{width:42px;height:42px;border-radius:8px;background:linear-gradient(135deg,var(--blue),var(--rouge));display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--ff-d);font-size:22px;box-shadow:0 6px 16px rgba(61,126,212,.35)}
.brand em{font-style:normal;color:var(--blue)}
.topbar nav{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.topbar nav a{color:rgba(255,255,255,.85);padding:9px 14px;border-radius:6px;font-family:var(--ff-d);font-size:15px;letter-spacing:.06em;text-transform:uppercase;transition:all .18s}
.topbar nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.topbar nav a.cta{background:var(--blue);color:#fff}
.topbar nav a.cta:hover{background:var(--blue-d)}
.topbar .badge-count{display:inline-flex;align-items:center;justify-content:center;background:var(--rouge);color:#fff;border-radius:999px;min-width:22px;height:22px;font-size:12px;font-family:var(--ff-d);padding:0 7px;margin-left:6px}
.topbar .tokens-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:4px;background:rgba(61,126,212,.18);color:#fff;font-family:var(--ff-d);font-size:14px;letter-spacing:.06em;border:1px solid rgba(61,126,212,.4)}
.topbar .role-pill{font-family:var(--ff-m);font-size:9px;letter-spacing:.18em;text-transform:uppercase;padding:4px 8px;border-radius:3px;background:rgba(255,255,255,.1);color:rgba(255,255,255,.7)}
.topbar .role-pill.mbr{background:rgba(35,135,27,.25);color:#9be58c}
.topbar .role-pill.adm{background:rgba(209,9,43,.3);color:#ffb3be}
.topbar .role-pill.mex{background:rgba(154,153,153,.3);color:#cdd5e0}

/* Footer */
.footer{margin-top:60px;background:var(--navy);color:rgba(255,255,255,.6);padding:48px 32px;text-align:center;border-top:4px solid var(--blue)}
.footer strong{color:#fff;font-family:var(--ff-d);letter-spacing:.06em;font-size:18px}
.footer a{color:var(--blue)}
.footer .ff-row{font-family:var(--ff-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:14px}

/* Ticker */
.ticker{background:var(--navy);padding:14px 0;overflow:hidden;border-top:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05)}
.ticker-track{display:flex;animation:ticker 28s linear infinite;width:max-content}
.ticker-item{font-family:var(--ff-d);font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.32);padding:0 24px;display:flex;align-items:center;gap:24px;white-space:nowrap}
.ticker-item em{color:var(--blue);font-style:normal}
.ticker-dot{width:5px;height:5px;border-radius:50%;background:var(--rouge);flex-shrink:0}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 60%,#3D1B1F 100%);color:#fff;padding:80px 40px 100px}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(225,29,72,.18),transparent 40%),radial-gradient(circle at 10% 80%,rgba(61,126,212,.22),transparent 45%);pointer-events:none}
.hero-inner{position:relative;z-index:1;max-width:900px}
.hero-tag{font-family:var(--ff-m);font-size:11px;letter-spacing:.22em;color:rgba(255,255,255,.5);text-transform:uppercase;margin-bottom:18px;display:flex;align-items:center;gap:12px}
.hero-tag::before{content:'';width:32px;height:2px;background:var(--blue)}
.hero h1{font-family:var(--ff-d);font-size:clamp(56px,8vw,108px);color:#fff;letter-spacing:.04em;line-height:.92;margin:0}
.hero h1 em{color:var(--blue);font-style:normal;display:inline-block}
.hero p.sub{font-family:var(--ff-b);font-size:17px;color:rgba(255,255,255,.7);line-height:1.7;margin-top:22px;max-width:580px}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--blue);color:#fff;border:none;border-radius:3px;padding:13px 26px;font-family:var(--ff-d);font-size:18px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:all .2s var(--ease-out);text-decoration:none}
.btn:hover{background:var(--blue-d);transform:translateY(-3px);box-shadow:0 12px 32px rgba(61,126,212,.4)}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.btn.accent{background:var(--rouge)}
.btn.accent:hover{background:#a30821;box-shadow:0 12px 32px rgba(209,9,43,.4)}
.btn.dark{background:var(--navy)}
.btn.dark:hover{background:var(--navy-2)}
.btn.ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.4)}
.btn.ghost:hover{background:rgba(255,255,255,.08);border-color:#fff}
.btn.ghost-dark{background:transparent;color:var(--head);border:2px solid var(--border)}
.btn.ghost-dark:hover{background:var(--off);border-color:var(--blue)}
.btn.danger{background:var(--rouge)}
.btn.danger:hover{background:#a30821}
.btn.small{padding:9px 14px;font-size:14px}
.btn.large{padding:16px 32px;font-size:20px}
.btn.full{width:100%}

/* Section title */
.section{padding:80px 0;background:#fff}
.section.dark{background:var(--navy);color:#fff}
.section.off{background:var(--off)}
.section-label{font-family:var(--ff-m);font-size:10px;letter-spacing:.22em;color:var(--blue);text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;gap:10px}
.section-label::before{content:'';width:24px;height:2px;background:var(--blue)}
.section h1, .section h2{margin:0}
.section h1 em, .section h2 em{color:var(--blue);font-style:normal}
.section-bar{width:48px;height:3px;background:var(--rouge);border-radius:2px;margin:22px 0 32px}
.section-title{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px;margin-bottom:32px}
.section-title h1, .section-title h2{margin-bottom:0}

/* Tabs */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}
.tabs a, .tabs button{padding:10px 18px;background:#fff;border:1px solid var(--border);border-radius:3px;color:var(--head);text-decoration:none;font-family:var(--ff-d);font-size:15px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:all .18s}
.tabs a:hover, .tabs button:hover{background:var(--off);transform:translateY(-2px)}
.tabs .active{background:var(--navy);color:#fff;border-color:var(--navy)}
.tabs .stock-toggle{background:rgba(35,135,27,.1);color:var(--vert);border-color:transparent}
.tabs .stock-toggle.active{background:var(--vert);color:#fff}

.search-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px;align-items:center}
.search-bar input[type="search"], .search-bar select{flex:1;min-width:240px;padding:13px 16px;border-radius:3px;border:1px solid var(--border);background:#fff;font-family:var(--ff-b);font-size:15px}

/* Grid produits */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:24px}
.card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px;box-shadow:var(--shadow-sm)}
.product-card{display:flex;flex-direction:column;gap:14px;border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden;color:var(--head);text-decoration:none;transition:all .3s var(--ease-out);position:relative}
.product-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--blue)}
.product-card .stripe{height:4px;background:linear-gradient(90deg,var(--blue),var(--teal))}
.product-card .img-wrap{position:relative;overflow:hidden;background:var(--off);aspect-ratio:4/3}
.product-card img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease-out)}
.product-card:hover img{transform:scale(1.04)}
.product-card .ribbons{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.product-card .ribbons-right{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.product-card .body{padding:0 18px 18px;display:flex;flex-direction:column;gap:10px;flex:1}
.product-card h3{font-family:var(--ff-d);font-size:22px;color:var(--head);letter-spacing:.04em;margin:0}
.product-card .description{font-family:var(--ff-b);font-size:13.5px;color:var(--muted);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-card .meta{display:flex;align-items:center;justify-content:space-between;margin-top:auto;gap:10px}
.product-card .price{font-family:var(--ff-d);font-size:26px;color:var(--head);letter-spacing:.04em}
.product-card .price small{font-family:var(--ff-m);font-size:11px;font-weight:400;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.product-card .price .crossed{text-decoration:line-through;color:var(--muted);font-size:18px;margin-right:6px}

/* Badges */
.badge{display:inline-flex;align-items:center;gap:5px;border-radius:3px;padding:5px 11px;font-family:var(--ff-d);font-size:12px;letter-spacing:.08em;text-transform:uppercase;line-height:1;background:#eef2ff;color:#3730a3}
.badge.ok{background:rgba(35,135,27,.12);color:var(--vert)}
.badge.warn{background:rgba(154,103,0,.12);color:#9a6700}
.badge.danger{background:rgba(209,9,43,.12);color:var(--rouge)}
.badge.accent{background:var(--rouge);color:#fff}
.badge.dark{background:var(--navy);color:#fff}
.badge.outline{background:transparent;border:1px solid var(--border);color:var(--head)}
.badge.blue{background:var(--blue);color:#fff}

/* Forms */
.form{display:grid;gap:16px}
.form-row{display:grid;gap:6px}
.form-row label, .form-row > span:first-child{font-family:var(--ff-m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--head)}
.form-row input,.form-row select,.form-row textarea{width:100%;border:1px solid var(--border);border-radius:6px;padding:13px 15px;background:#fff;font:inherit;font-family:var(--ff-b);transition:all .15s}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(61,126,212,.15)}
.form-row textarea{min-height:110px;resize:vertical}
.form-row input[type="color"]{height:46px;padding:4px;cursor:pointer}
.form-row input[type="file"]{padding:10px;cursor:pointer}
.checkbox-row{display:flex;align-items:center;gap:10px}
.checkbox-row input[type="checkbox"]{width:18px;height:18px;cursor:pointer;accent-color:var(--blue)}
.checkbox-row span{font-family:var(--ff-b)}

/* Alerts */
.alert{padding:14px 18px;border-radius:6px;margin:0 0 18px;font-family:var(--ff-b);display:flex;align-items:center;gap:12px}
.alert > span:first-child{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--ff-d);font-size:14px;flex-shrink:0}
.alert-success{background:rgba(35,135,27,.1);color:#14532d;border-left:4px solid var(--vert)}
.alert-success > span:first-child{background:var(--vert);color:#fff}
.alert-error{background:rgba(209,9,43,.08);color:#7f1d1d;border-left:4px solid var(--rouge)}
.alert-error > span:first-child{background:var(--rouge);color:#fff}
.alert-info{background:rgba(61,126,212,.08);color:#1e3a8a;border-left:4px solid var(--blue)}
.alert-info > span:first-child{background:var(--blue);color:#fff}

/* Tables */
.table-wrap{overflow:auto;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm)}
table{width:100%;border-collapse:collapse}
th,td{padding:14px 16px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;font-size:14px}
th{background:var(--off);font-family:var(--ff-m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
tr:last-child td{border-bottom:none}
tr:hover td{background:#fafbfc}

/* Product hero */
.product-hero{display:grid;grid-template-columns:minmax(320px,520px) 1fr;gap:40px;align-items:start}
.product-gallery{display:flex;flex-direction:column;gap:14px}
.product-gallery .main{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}
.product-gallery .main img{width:100%;height:100%;object-fit:cover}
.product-gallery .thumbs{display:flex;gap:10px;overflow-x:auto;padding:2px}
.product-gallery .thumbs img{width:78px;height:78px;border-radius:8px;object-fit:cover;cursor:pointer;border:2px solid var(--border);background:#fff;transition:border-color .15s}
.product-gallery .thumbs img:hover{border-color:var(--blue)}
.product-gallery .thumbs img.active{border-color:var(--rouge)}
.product-info{display:flex;flex-direction:column;gap:14px}
.product-info h1{font-family:var(--ff-d);font-size:clamp(36px,4vw,56px);color:var(--head);letter-spacing:.04em;line-height:1}
.product-info .price-block{background:#fff;border:1px solid var(--border);border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow-sm)}
.product-info .big-price{font-family:var(--ff-d);font-size:42px;color:var(--head);letter-spacing:.04em;line-height:1}
.product-info .big-price small{font-family:var(--ff-m);font-size:12px;font-weight:400;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.product-info .crossed{color:var(--muted);text-decoration:line-through;font-size:20px}
.member-price-note{background:rgba(61,126,212,.08);border:1px solid rgba(61,126,212,.2);border-radius:6px;padding:10px 14px;font-family:var(--ff-m);font-size:12px;letter-spacing:.04em;color:var(--geo)}
.member-price-note.warn{background:rgba(209,9,43,.08);border-color:rgba(209,9,43,.2);color:#a30821}

/* Sticker preview */
.sticker-section{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.sticker-preview-wrap{background:repeating-conic-gradient(var(--off) 0% 25%,#fff 25% 50%) 0 0/20px 20px;border:2px dashed var(--border);border-radius:14px;padding:30px;min-height:280px;display:flex;align-items:center;justify-content:center}
.preview-sticker{background:#fff;color:#111;font-weight:900;text-align:center;line-height:1.05;padding:20px 30px;box-shadow:0 12px 30px rgba(15,23,42,.18);transition:all .25s;word-break:break-word;max-width:100%;overflow:hidden;transform-origin:center center}
.preview-sticker.shape-rectangle{border-radius:6px}
.preview-sticker.shape-rounded{border-radius:22px}
.preview-sticker.shape-circle{border-radius:50%;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;padding:30px}
.preview-sticker.shape-star{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);padding:60px 30px;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}
.preview-sticker.font-sans{font-family:'Inter','Segoe UI',Arial,sans-serif}
.preview-sticker.font-serif{font-family:'Playfair Display',Georgia,'Times New Roman',serif}
.preview-sticker.font-cursive{font-family:'Pacifico','Brush Script MT','Lucida Handwriting',cursive}
.preview-sticker.font-bold{font-family:'Oswald',Impact,'Arial Black',sans-serif;letter-spacing:1px;text-transform:uppercase}
.sticker-advanced-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sticker-advanced-grid input[type="range"]{width:100%}
.sticker-advanced-grid .checkbox-row{margin-top:auto}
.sticker-custom-list{display:grid;gap:4px;margin-top:8px}
.sticker-custom-list span{display:block;color:var(--muted);font-size:13px;line-height:1.45}
.sticker-preview-note{margin-top:10px;color:var(--muted);font-size:12px}
.preview-sticker.finish-brillant{box-shadow:0 12px 30px rgba(15,23,42,.18),inset 0 18px 30px rgba(255,255,255,.4)}
.preview-sticker.finish-paillete{background-image:linear-gradient(45deg,rgba(255,215,0,.4),rgba(255,255,255,0)),radial-gradient(circle,rgba(255,255,255,.6) 1px,transparent 1px);background-size:auto,6px 6px}
.option-pills{display:flex;flex-wrap:wrap;gap:8px}
.option-pill{padding:9px 14px;border-radius:3px;border:2px solid var(--border);background:#fff;cursor:pointer;font-family:var(--ff-d);font-size:14px;letter-spacing:.06em;text-transform:uppercase;display:inline-flex;align-items:center;gap:6px;transition:all .15s}
.option-pill:hover{border-color:var(--blue)}
.option-pill.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.option-pill .extra{font-family:var(--ff-m);font-size:10px;letter-spacing:.04em;opacity:.7;text-transform:none}

/* Summary */
.summary{display:grid;gap:10px;font-family:var(--ff-b)}
.summary div{display:flex;justify-content:space-between;align-items:baseline;font-size:15px}
.summary .row-total{border-top:1px solid var(--border);padding-top:14px;margin-top:6px;font-family:var(--ff-d);font-size:22px;letter-spacing:.04em;color:var(--head)}
.summary strong{font-family:var(--ff-d);letter-spacing:.04em}

/* Admin */
.admin-layout{display:grid;grid-template-columns:240px 1fr;gap:24px;align-items:start}
.sidebar{background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px;box-shadow:var(--shadow-sm);position:sticky;top:90px}
.sidebar strong{display:block;padding:10px 12px;font-family:var(--ff-m);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.sidebar a{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:6px;text-decoration:none;color:var(--head);font-family:var(--ff-d);font-size:14px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px;transition:all .15s}
.sidebar a:hover{background:var(--off)}
.sidebar a.active{background:var(--navy);color:#fff}

/* KPI */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}
.kpi{background:#fff;border:1px solid var(--border);border-radius:14px;padding:22px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
.kpi::before{content:'';position:absolute;top:0;left:0;width:100%;height:4px;background:var(--blue)}
.kpi.b::before{background:var(--blue)}
.kpi.r::before{background:var(--rouge)}
.kpi.v::before{background:var(--vert)}
.kpi.t::before{background:var(--teal)}
.kpi .label{font-family:var(--ff-m);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.kpi strong{font-family:var(--ff-d);font-size:36px;display:block;letter-spacing:.02em;color:var(--head);line-height:1}
.kpi span{font-family:var(--ff-m);font-size:11px;color:var(--muted);margin-top:6px;display:block}
.kpi.dark{background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;border-color:transparent}
.kpi.dark::before{background:var(--rouge)}
.kpi.dark strong{color:#fff}
.kpi.dark .label, .kpi.dark span{color:rgba(255,255,255,.55)}

/* Misc */
.muted{color:var(--muted)}
.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.guide table{border:1px solid var(--border);border-radius:8px;overflow:hidden;width:100%}
.guide th,.guide td{border:1px solid var(--border);padding:10px 14px;font-family:var(--ff-b)}
.guide th{background:var(--off);font-family:var(--ff-m);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.empty-state{text-align:center;padding:60px 20px;color:var(--muted);background:#fff;border:2px dashed var(--border);border-radius:14px}
.empty-state h2{color:var(--head);font-family:var(--ff-d);font-size:32px;letter-spacing:.04em;margin-bottom:14px}

/* Modal */
.modal{position:fixed;inset:0;background:rgba(11,29,52,.7);backdrop-filter:blur(6px);z-index:200;display:none;align-items:center;justify-content:center;padding:20px}
.modal.open{display:flex}
.modal-content{background:#fff;border-radius:14px;max-width:680px;width:100%;max-height:90vh;overflow:auto;padding:32px;box-shadow:var(--shadow-lg);position:relative}
.modal-close{position:absolute;top:14px;right:14px;background:var(--off);border:0;width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:20px}

/* Image manager admin */
.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:16px}
.image-tile{position:relative;background:var(--off);border:1px solid var(--border);border-radius:8px;overflow:hidden;aspect-ratio:1/1}
.image-tile img{width:100%;height:100%;object-fit:cover}
.image-tile .actions{position:absolute;bottom:6px;left:6px;right:6px;display:flex;gap:6px;justify-content:space-between;opacity:0;transition:opacity .2s}
.image-tile:hover .actions{opacity:1}
.image-tile .actions form{margin:0}
.image-tile .actions button{font-family:var(--ff-d);font-size:11px;letter-spacing:.06em;padding:5px 8px;border-radius:3px;border:0;cursor:pointer}
.image-tile .actions .del{background:var(--rouge);color:#fff}
.image-tile .actions .main{background:var(--vert);color:#fff}
.image-tile.is-main::after{content:'PRINCIPALE';position:absolute;top:6px;left:6px;background:var(--rouge);color:#fff;font-family:var(--ff-d);font-size:10px;letter-spacing:.08em;padding:3px 7px;border-radius:3px}

/* Stepper */
.stepper{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.stepper li{display:flex;align-items:center;gap:12px;padding:8px 0;font-family:var(--ff-b)}
.stepper li .dot{width:14px;height:14px;border-radius:50%;background:var(--border);flex-shrink:0;border:2px solid #fff;box-shadow:0 0 0 2px var(--border)}
.stepper li.past .dot{background:var(--vert);box-shadow:0 0 0 2px var(--vert)}
.stepper li.current{font-family:var(--ff-d);letter-spacing:.04em;font-size:17px;color:var(--head)}
.stepper li.current .dot{background:var(--blue);box-shadow:0 0 0 2px var(--blue);animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 2px var(--blue)}50%{box-shadow:0 0 0 6px rgba(61,126,212,.3)}}

/* Reveal */
.reveal{opacity:0;transform:translateY(32px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}
.reveal.visible{opacity:1;transform:none}

/* Responsive */
@media(max-width:900px){
  .topbar{padding:12px 16px;flex-direction:column;align-items:flex-start;gap:10px}
  .topbar nav{width:100%}
  .product-hero{grid-template-columns:1fr}
  .admin-layout{grid-template-columns:1fr}
  .sidebar{position:static}
  .two-cols{grid-template-columns:1fr}
  .sticker-section{grid-template-columns:1fr}
  .hero{padding:50px 24px 70px}
  .container{padding:24px 16px}
  .W{padding:0 18px}
}
@media print{.topbar,.sidebar,.actions,.btn{display:none !important}body{background:#fff}.card{box-shadow:none;border:1px solid #ccc}}
.search-bar input[type="number"]{padding:13px 16px;border-radius:3px;border:1px solid var(--border);background:#fff;font-family:var(--ff-b);font-size:15px}

@media(max-width:760px){
  .sticker-advanced-grid{grid-template-columns:1fr}
}
