/* ===================================================================
   ALLO RENTRÉE — rentree.css · DS V2 · web responsive (desktop-first)
   Chrome violet · accents sémantiques (mint=fait, gold=à confirmer,
   coral=alerte, sky=info). Ton calme, familial, non marchand.
   =================================================================== */
.allo-rentree{
  --violet:#7B61FF; --violet-deep:#5538D9; --violet-soft:#EDE9FF;
  --coral:#FF6B7E; --coral-deep:#F0496B; --coral-soft:#FFE9ED;
  --gold:#FFB73D; --gold-deep:#F59300; --gold-soft:#FFF1D6;
  --mint:#1FCBB0; --mint-deep:#0E9C84; --mint-soft:#E4FBF4;
  --sky:#4DA8FF; --sky-deep:#2486E6; --sky-soft:#EAF5FF;
  --ink:#241D49; --ink-soft:#4A4470; --muted:#8E89AE;
  --bg:#EFEAFF; --surface:#F5F2FF; --card:#FFFFFF; --line:#E4DEF8; --line-strong:#D3C9F2;
  --d:'Nunito','Trebuchet MS',sans-serif; --b:'DM Sans',system-ui,sans-serif; --m:'JetBrains Mono',monospace;
  --r-sm:10px; --r-md:14px; --r-lg:18px; --r-xl:26px;
  --sh-sm:0 6px 18px -12px rgba(50,32,110,.45);
  --sh-md:0 16px 36px -22px rgba(50,32,110,.5);
  --sh-lg:0 28px 60px -30px rgba(50,32,110,.55);
  --ease:cubic-bezier(.2,1.3,.4,1);
  --maxw:1080px;
}
.allo-rentree *{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
.allo-rentree{scroll-behavior:smooth}
.allo-rentree{font-family:var(--b);color:var(--ink);line-height:1.6;font-size:15px;-webkit-font-smoothing:antialiased;text-wrap:pretty;
  background:radial-gradient(760px 460px at 10% -6%,rgba(123,97,255,.42),transparent 58%),radial-gradient(680px 460px at 100% 0%,rgba(255,107,126,.30),transparent 60%),radial-gradient(700px 520px at 50% 116%,rgba(31,203,176,.26),transparent 60%),var(--bg);
  background-attachment:fixed;min-height:100vh}
.allo-rentree h1,.allo-rentree h2,.allo-rentree h3{font-family:var(--d);color:var(--ink);line-height:1.12;letter-spacing:-.015em;font-weight:900}
.allo-rentree button{font-family:inherit;cursor:pointer}
.allo-rentree a{color:var(--violet-deep);text-decoration:none}
.allo-rentree a:hover{text-decoration:underline}
.allo-rentree :focus-visible{outline:3px solid var(--violet);outline-offset:2px;border-radius:8px}

/* ---- Bandeau de contexte (intégration site hôte, PAS un header, non-sticky) ---- */
.allo-rentree .ctxbar{border-bottom:1px solid var(--line);background:rgba(255,255,255,.55);backdrop-filter:blur(8px)}
.allo-rentree .ctx-inner{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:12px;padding:11px 22px}
.allo-rentree .ctx-brand{display:inline-flex;align-items:center;gap:9px;border:none;background:none;cursor:pointer}
.allo-rentree .ctx-logo{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex-shrink:0;
  background:linear-gradient(150deg,var(--violet),var(--violet-deep));box-shadow:0 6px 14px -6px rgba(123,97,255,.7)}
.allo-rentree .ctx-name{font-family:var(--d);font-weight:900;font-size:14px;color:var(--ink)}
.allo-rentree .ctx-crumb{font-family:var(--b);font-size:12.5px;color:var(--muted);font-weight:600}
.allo-rentree .ctxbar .sep{flex:1}
.allo-rentree .ctx-link{font-family:var(--d);font-weight:800;font-size:12.5px;color:var(--violet-deep);background:var(--violet-soft);border:none;padding:7px 13px;border-radius:9px;cursor:pointer}
.allo-rentree .ctx-link:hover{filter:brightness(.97)}
@media(max-width:620px){.allo-rentree .ctx-crumb{display:none}}

.allo-rentree .shell{max-width:var(--maxw);margin:0 auto;padding:26px 22px 90px}

/* ---- Buttons ---- */
.allo-rentree .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--d);font-weight:900;font-size:15px;
  border-radius:14px;padding:14px 24px;border:1.6px solid transparent;transition:transform .15s var(--ease),box-shadow .2s;min-height:48px}
.allo-rentree .btn:active{transform:scale(.97)}
.allo-rentree .btn-primary{color:#fff;background:linear-gradient(135deg,var(--violet),var(--coral));box-shadow:0 14px 26px -10px rgba(123,97,255,.7)}
.allo-rentree .btn-primary:hover{transform:translateY(-2px);text-decoration:none}
.allo-rentree .btn-ghost{color:var(--violet-deep);background:#fff;border-color:var(--line-strong);box-shadow:var(--sh-sm)}
.allo-rentree .btn-ghost:hover{border-color:var(--violet);text-decoration:none}
.allo-rentree .btn-mint{color:#fff;background:linear-gradient(135deg,var(--mint),var(--mint-deep));box-shadow:0 12px 22px -10px rgba(31,203,176,.6)}
.allo-rentree .btn-block{width:100%}

/* ---- Kicker / banners ---- */
.allo-rentree .kicker{display:inline-flex;align-items:center;gap:7px;font-family:var(--d);font-weight:900;font-size:12px;letter-spacing:.04em;
  color:var(--violet-deep);background:linear-gradient(180deg,#fff,var(--violet-soft));border:1px solid var(--line-strong);
  border-radius:99px;padding:6px 13px;box-shadow:var(--sh-sm)}
.allo-rentree .trust{display:flex;align-items:center;gap:10px;background:var(--sky-soft);border:1px solid #CFE6FB;border-radius:var(--r-md);
  padding:11px 15px;font-size:12.5px;color:var(--ink-soft)}
.allo-rentree .trust .i{flex-shrink:0;color:var(--sky-deep)}
.allo-rentree .note-indic{font-size:11.5px;color:var(--muted);font-style:italic}

/* ---- Hero ---- */
.allo-rentree .hero{position:relative;overflow:hidden;border-radius:var(--r-xl);padding:clamp(28px,4vw,48px);margin-bottom:22px;
  background:linear-gradient(150deg,#fff 0%,#E4DBFF 48%,#FFD9E0 100%);border:1px solid var(--line-strong);box-shadow:var(--sh-lg)}
.allo-rentree .hero::before{content:"";position:absolute;right:-70px;top:-80px;width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle,rgba(123,97,255,.5),transparent 66%)}
.allo-rentree .hero::after{content:"";position:absolute;left:-60px;bottom:-90px;width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,107,126,.4),transparent 66%);pointer-events:none}
.allo-rentree .hero>*{position:relative}
.allo-rentree .hero h1{font-size:clamp(30px,5vw,46px);margin:14px 0 12px;max-width:16ch;text-wrap:balance}
.allo-rentree .hero h1 .g{background:linear-gradient(95deg,var(--violet),var(--coral));-webkit-background-clip:text;background-clip:text;color:transparent}
.allo-rentree .hero .lead{font-size:clamp(15px,1.7vw,18px);color:var(--ink-soft);max-width:52ch;margin-bottom:22px;line-height:1.55}
.allo-rentree .hero .cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}

/* ---- Benefits grid ---- */
.allo-rentree .benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:22px 0}
.allo-rentree .benefit{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;box-shadow:var(--sh-sm)}
.allo-rentree .benefit .bic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;margin-bottom:11px;color:#fff}
.allo-rentree .benefit h3{font-size:15px;margin-bottom:5px}
.allo-rentree .benefit p{font-size:12.5px;color:var(--muted);line-height:1.45}
@media(max-width:900px){.allo-rentree .benefits{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.allo-rentree .benefits{grid-template-columns:1fr}}

/* ---- Class selector ---- */
.allo-rentree .class-group{margin-bottom:22px}
.allo-rentree .class-group h3{font-size:16px;margin-bottom:12px;display:flex;align-items:center;gap:9px}
.allo-rentree .class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:11px}
.allo-rentree .class-card{position:relative;text-align:left;background:var(--card);border:2px solid var(--line);border-radius:var(--r-lg);padding:16px;
  transition:transform .16s var(--ease),border-color .16s,box-shadow .2s;box-shadow:var(--sh-sm);overflow:hidden}
.allo-rentree .class-card::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--cc,var(--violet));opacity:.9}
.allo-rentree .class-card:hover{transform:translateY(-3px);border-color:var(--cc,var(--violet));box-shadow:var(--sh-md)}
.allo-rentree .cc-go{position:absolute;top:16px;right:14px;opacity:0;transform:translateX(-4px);transition:.16s var(--ease)}
.allo-rentree .class-card:hover .cc-go{opacity:1;transform:translateX(0)}
.allo-rentree .grp-dot{width:14px;height:14px;border-radius:50%;display:inline-block;box-shadow:0 3px 7px -3px currentColor}
.allo-rentree .class-card .cc-ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-size:19px;margin-bottom:10px;color:#fff}
.allo-rentree .class-card .cc-lv{font-family:var(--d);font-weight:900;font-size:19px}
.allo-rentree .class-card .cc-sub{font-size:11px;color:var(--muted)}

/* ---- Checklist layout (desktop 2-col) ---- */
.allo-rentree .checklist-wrap{display:grid;grid-template-columns:1fr 320px;gap:22px;align-items:start}
@media(max-width:900px){.allo-rentree .checklist-wrap{grid-template-columns:1fr}}
.allo-rentree .aside-sticky{position:sticky;top:16px;display:flex;flex-direction:column;gap:14px}
@media(max-width:900px){.allo-rentree .aside-sticky{position:static}}

.allo-rentree .panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm)}
.allo-rentree .panel-pad{padding:18px}

/* progress ring header */
.allo-rentree .cl-head{display:flex;align-items:center;gap:16px;padding:18px;background:linear-gradient(135deg,var(--violet-soft),#fff);
  border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:16px;box-shadow:var(--sh-sm)}
.allo-rentree .cl-head .txt{flex:1}
.allo-rentree .cl-head h2{font-size:20px}
.allo-rentree .cl-head .reste{font-size:13px;color:var(--ink-soft);margin-top:2px}

/* category */
.allo-rentree .cat{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:12px;overflow:hidden;box-shadow:var(--sh-sm)}
.allo-rentree .cat-head{display:flex;align-items:center;gap:11px;padding:14px 16px;cursor:pointer;user-select:none}
.allo-rentree .cat-head .cdot{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:15px;color:#fff;flex-shrink:0}
.allo-rentree .cat-head h3{flex:1;font-size:15px}
.allo-rentree .cat-head .cnt{font-family:var(--m);font-size:11px;font-weight:700;color:var(--muted)}
.allo-rentree .cat-head .chev{transition:transform .25s var(--ease);color:var(--muted)}
.allo-rentree .cat.closed .chev{transform:rotate(-90deg)}
.allo-rentree .cat.closed .cat-body{display:none}
.allo-rentree .cat-body{padding:0 12px 10px}

/* item */
.allo-rentree .item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--r-md);transition:background .15s}
.allo-rentree .item+.item{border-top:1px solid var(--line)}
.allo-rentree .item:hover{background:var(--surface)}
.allo-rentree .item .st{width:30px;height:30px;border-radius:9px;border:2px solid var(--line);background:#fff;flex-shrink:0;display:grid;place-items:center;font-size:14px;transition:.15s}
.allo-rentree .item.s-already .st{background:var(--mint);border-color:var(--mint);color:#fff}
.allo-rentree .item.s-bought .st{background:var(--violet);border-color:var(--violet);color:#fff}
.allo-rentree .item.s-confirm .st{background:var(--gold);border-color:var(--gold);color:#fff}
.allo-rentree .item .lbl{flex:1;min-width:0}
.allo-rentree .item .lbl .nm{font-family:var(--d);font-weight:800;font-size:14px}
.allo-rentree .item.done .lbl .nm{text-decoration:line-through;color:var(--muted)}
.allo-rentree .item .lbl .meta{font-size:11px;color:var(--muted)}
.allo-rentree .item .warn{color:var(--gold-deep);font-size:11px;font-weight:700}
.allo-rentree .item .qty{display:flex;align-items:center;gap:6px;flex-shrink:0}
.allo-rentree .item .qty button{width:28px;height:28px;border-radius:8px;border:1.5px solid var(--line);background:#fff;font-weight:900;color:var(--violet-deep);font-size:14px}
.allo-rentree .item .qty span{font-family:var(--d);font-weight:900;font-size:14px;min-width:18px;text-align:center}
.allo-rentree .item .price{font-family:var(--d);font-weight:900;font-size:13px;color:var(--ink);flex-shrink:0;min-width:52px;text-align:right}

/* add free item */
.allo-rentree .addfree{display:flex;gap:8px;padding:12px}
.allo-rentree .addfree input{flex:1;padding:11px 13px;border-radius:var(--r-md);border:1.5px solid var(--line);font-family:var(--b);font-size:13.5px;outline:none}
.allo-rentree .addfree input:focus{border-color:var(--violet)}

/* budget card */
.allo-rentree .bigbudget{padding:18px;background:linear-gradient(150deg,#fff,var(--gold-soft));border:1px solid #F6DCAE;border-radius:var(--r-lg)}
.allo-rentree .bigbudget .bb-val{font-family:var(--d);font-weight:900;font-size:32px;color:var(--ink);line-height:1}
.allo-rentree .bigbudget .bb-lbl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700;font-family:var(--m)}
.allo-rentree .tiers{display:flex;gap:6px;margin:14px 0}
.allo-rentree .tier{flex:1;text-align:center;padding:10px 6px;border-radius:var(--r-md);border:2px solid var(--line);background:#fff;cursor:pointer;transition:.15s}
.allo-rentree .tier.on{border-color:var(--gold);background:var(--gold-soft)}
.allo-rentree .tier .t-nm{font-family:var(--d);font-weight:900;font-size:12px}
.allo-rentree .tier .t-pr{font-family:var(--m);font-size:11px;color:var(--muted);font-weight:700}
.allo-rentree .tier.on .t-pr{color:var(--gold-deep)}
.allo-rentree .breakdown{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.allo-rentree .bd-row{display:flex;align-items:center;gap:9px}
.allo-rentree .bd-row .bd-bar{flex:1;height:7px;border-radius:99px;background:var(--surface);overflow:hidden}
.allo-rentree .bd-row .bd-fill{height:100%;border-radius:99px}
.allo-rentree .bd-row .bd-lbl{font-size:11.5px;color:var(--ink-soft);min-width:92px}
.allo-rentree .bd-row .bd-amt{font-family:var(--d);font-weight:800;font-size:12px;min-width:44px;text-align:right}

/* store mode */
.allo-rentree .store{position:fixed;inset:0;z-index:60;background:linear-gradient(180deg,#1C1440,#2A1F55);color:#fff;display:flex;flex-direction:column}
.allo-rentree .storehead{display:flex;align-items:center;gap:14px;padding:20px 22px;border-bottom:1px solid rgba(255,255,255,.12)}
.allo-rentree .storehead h2{color:#fff;font-size:20px;flex:1}
.allo-rentree .storehead .close{width:40px;height:40px;border-radius:11px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.1);color:#fff;font-size:18px}
.allo-rentree .store-prog{height:8px;background:rgba(255,255,255,.15);margin:0 22px;border-radius:99px;overflow:hidden}
.allo-rentree .store-prog .f{height:100%;background:linear-gradient(90deg,var(--mint),var(--mint-deep));border-radius:99px;transition:width .3s var(--ease)}
.allo-rentree .store-list{flex:1;overflow-y:auto;padding:18px 22px}
.allo-rentree .store-cat{font-family:var(--m);font-size:11px;font-weight:700;letter-spacing:.08em;color:rgba(255,255,255,.6);text-transform:uppercase;margin:16px 0 8px}
.allo-rentree .sitem{display:flex;align-items:center;gap:15px;padding:16px;border-radius:16px;background:rgba(255,255,255,.07);margin-bottom:9px;cursor:pointer;min-height:64px}
.allo-rentree .sitem .sbox{width:34px;height:34px;border-radius:10px;border:2.5px solid rgba(255,255,255,.4);flex-shrink:0;display:grid;place-items:center;font-size:17px}
.allo-rentree .sitem.taken{opacity:.5}
.allo-rentree .sitem.taken .sbox{background:var(--mint);border-color:var(--mint)}
.allo-rentree .sitem .snm{flex:1;font-family:var(--d);font-weight:800;font-size:16px}
.allo-rentree .sitem.taken .snm{text-decoration:line-through}
.allo-rentree .sitem .sqty{font-family:var(--m);font-weight:700;font-size:13px;color:rgba(255,255,255,.7)}
.allo-rentree .store-done{flex:1;display:grid;place-items:center;text-align:center;padding:30px}

/* bottom sheet (item) */
.allo-rentree .scrim{position:fixed;inset:0;z-index:55;background:rgba(20,12,40,.5);backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center}
@media(min-width:700px){.allo-rentree .scrim{align-items:center}}
.allo-rentree .sheet{width:100%;max-width:520px;background:var(--card);border-radius:24px 24px 0 0;padding:8px 22px 26px;box-shadow:0 -20px 50px -12px rgba(20,12,50,.4);animation:sheetUp .4s var(--ease)}
@media(min-width:700px){.allo-rentree .sheet{border-radius:22px;animation:pop .4s var(--ease)}}
.allo-rentree .sheet .grip{width:42px;height:4px;border-radius:99px;background:var(--line);margin:0 auto 14px}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes pop{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
.allo-rentree .seg{display:flex;gap:5px;background:var(--surface);border-radius:12px;padding:5px;margin:14px 0}
.allo-rentree .seg button{flex:1;padding:10px 4px;border-radius:9px;border:none;background:transparent;font-family:var(--d);font-weight:800;font-size:11.5px;color:var(--muted)}
.allo-rentree .seg button.on{background:#fff;box-shadow:var(--sh-sm)}
.allo-rentree .seg button.on.st-already{color:var(--mint-deep)}
.allo-rentree .seg button.on.st-bought{color:var(--violet-deep)}
.allo-rentree .seg button.on.st-confirm{color:var(--gold-deep)}
.allo-rentree .seg button.on.st-to_buy{color:var(--ink)}

/* revision bridge */
.allo-rentree .revhero{position:relative;overflow:hidden;border-radius:var(--r-xl);padding:28px;color:#fff;
  background:linear-gradient(150deg,var(--mint),var(--mint-deep));box-shadow:0 22px 44px -22px rgba(31,203,176,.7);margin-bottom:16px}
.allo-rentree .revhero h2{color:#fff;font-size:26px;margin-bottom:8px}
.allo-rentree .revhero p{color:rgba(255,255,255,.92);font-size:14px;max-width:44ch}
.allo-rentree .revrow{display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:14px 16px;margin-bottom:10px;box-shadow:var(--sh-sm)}
.allo-rentree .revrow .ric{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:20px;color:#fff;flex-shrink:0}
.allo-rentree .revrow .rtx{flex:1}
.allo-rentree .revrow .rtx b{font-family:var(--d);font-weight:900;font-size:15px}
.allo-rentree .revrow .rtx p{font-size:12px;color:var(--muted)}

/* section titles */
.allo-rentree .sect-title{display:flex;align-items:center;gap:9px;margin:26px 0 14px}
.allo-rentree .sect-title h2{font-size:23px}
.allo-rentree .sect-title .line{flex:1;height:2px;border-radius:99px;background:linear-gradient(90deg,var(--line),transparent)}

/* offline banner */
.allo-rentree .offline{display:flex;align-items:center;gap:10px;background:var(--gold-soft);border:1px solid #F6DCAE;border-radius:var(--r-md);
  padding:11px 15px;margin-bottom:14px;font-size:12.5px;color:var(--gold-deep);font-weight:600}

/* dev bar */
.allo-rentree .devbar{position:fixed;right:14px;bottom:14px;z-index:80;display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.allo-rentree .devbar .dtoggle{font-family:var(--m);font-size:10px;font-weight:700;color:#fff;background:var(--ink);border:none;border-radius:10px;padding:8px 12px;letter-spacing:.06em;box-shadow:var(--sh-md)}
.allo-rentree .devpanel{background:var(--ink);border-radius:14px;padding:12px;max-width:230px;max-height:60vh;overflow-y:auto;box-shadow:var(--sh-lg)}
.allo-rentree .devpanel .dt{font-family:var(--m);font-size:9px;color:rgba(255,255,255,.6);font-weight:700;letter-spacing:.08em;margin:8px 0 5px}
.allo-rentree .devpanel button{display:block;width:100%;text-align:left;font-family:var(--b);font-size:11px;color:#fff;background:rgba(255,255,255,.08);border:none;border-radius:7px;padding:7px 9px;margin-bottom:4px}
.allo-rentree .devpanel button:hover{background:rgba(255,255,255,.18)}

.allo-rentree .footer{max-width:var(--maxw);margin:0 auto;padding:24px 22px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;text-align:center}
/* ---- Confirmation popin (actions destructives) ---- */
.allo-rentree .confirm-card{width:100%;max-width:400px;background:var(--card);border-radius:22px;padding:26px 24px;text-align:center;box-shadow:0 30px 60px -20px rgba(20,12,50,.5);animation:pop .35s var(--ease)}
.allo-rentree .confirm-card .cf-ic{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;margin:0 auto 14px}
.allo-rentree .confirm-card h2{font-size:20px;margin-bottom:8px}
.allo-rentree .confirm-card p{font-size:13.5px;color:var(--ink-soft);line-height:1.5;margin-bottom:20px}
.allo-rentree .cf-actions{display:flex;gap:10px}
.allo-rentree .cf-actions .btn{flex:1}
.allo-rentree .btn-danger{color:#fff;background:linear-gradient(135deg,var(--coral),var(--coral-deep));box-shadow:0 12px 22px -10px rgba(240,73,107,.6)}

/* ---- Toast (feedback d'action) ---- */
.allo-rentree .toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:95;display:flex;align-items:center;gap:10px;
  background:var(--ink);color:#fff;font-family:var(--d);font-weight:800;font-size:13px;padding:13px 20px;border-radius:14px;
  box-shadow:0 18px 40px -12px rgba(20,12,50,.6);animation:toastUp .3s var(--ease);max-width:calc(100vw - 32px)}
.allo-rentree .toast.ok{background:linear-gradient(135deg,var(--mint-deep),#0B7A68)}
.allo-rentree .toast.info{background:linear-gradient(135deg,var(--violet),var(--violet-deep))}
@keyframes toastUp{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}

/* ---- Empty states ---- */
.allo-rentree .empty-state{text-align:center;padding:48px 24px;background:var(--card);border:1px dashed var(--line-strong);border-radius:var(--r-xl);box-shadow:var(--sh-sm)}
.allo-rentree .empty-state .es-ic{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;margin:0 auto 16px;background:var(--violet-soft)}
.allo-rentree .empty-state h3{font-size:19px;margin-bottom:6px}
.allo-rentree .empty-state p{font-size:13.5px;color:var(--muted);max-width:40ch;margin:0 auto 18px;line-height:1.5}
.allo-rentree .store-empty{flex:1;display:grid;place-items:center;text-align:center;padding:30px;color:#fff}
.allo-rentree .store-empty .se-ic{width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,.14);display:grid;place-items:center;margin:0 auto 16px}

@media(prefers-reduced-motion:reduce){.allo-rentree *{animation:none!important;transition:none!important}}

/* ── Intégration site (V DEF 07/07) ─────────────────────────────────
   ContextBar designer = bandeau interne non-sticky (prévu pour vivre sous
   la nav du site hôte) → pas de barre custom. On pousse juste la rubrique
   sous le header FIXED du site (81px) et on style le CTA Enregistrer. */
.allo-rentree{padding-top:88px;background:var(--bg);min-height:100vh}
@media (max-width:680px){ .allo-rentree{padding-top:72px} }
/* [SAVE-MANUEL] CTA Enregistrer dans la ContextBar (pattern Planner/Board) */
.allo-rentree .ctx-save{margin-left:auto;border:none;cursor:pointer;font-family:var(--body);font-weight:700;font-size:12.5px;
  padding:7px 14px;border-radius:999px;background:var(--surface);color:var(--muted);transition:.15s}
.allo-rentree .ctx-save.dirty{background:linear-gradient(135deg,var(--violet),var(--coral));color:#fff;box-shadow:0 6px 14px -6px rgba(123,97,255,.55)}
.allo-rentree .ctx-save:disabled{opacity:.6;cursor:wait}
/* zone droite de la ContextBar libérée (ContentActionBar site fixed top-20 right-4) */
@media (min-width:900px){ .allo-rentree .ctxbar .ctx-inner{padding-right:210px} }
/* [SAVE-MANUEL] panneau sauvegarde (Boss 07/07) */
.allo-rentree .savepanel{margin-bottom:12px;display:flex;flex-direction:column;gap:7px}
.allo-rentree .savepanel .savehint{font-size:11.5px;line-height:1.45;color:var(--muted);text-align:center}
/* ── Visuels éditoriaux réalistes (Boss 07/07) — additif, design V DEF intact ── */
.allo-rentree .hero{position:relative;overflow:hidden}
.allo-rentree .hero-img{position:absolute;top:0;right:0;bottom:0;width:44%;height:100%;object-fit:cover;border-radius:0 var(--r-xl) var(--r-xl) 0;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%);mask-image:linear-gradient(90deg,transparent 0,#000 22%)}
.allo-rentree .hero>*:not(.hero-img){position:relative;z-index:2;max-width:56%}
@media (max-width:900px){ .allo-rentree .hero-img{display:none} .allo-rentree .hero>*:not(.hero-img){max-width:100%} }
.allo-rentree .edito-img{width:100%;height:auto;border-radius:var(--r-lg);box-shadow:var(--shadow-card);margin:6px 0 18px;display:block}
.allo-rentree .rev-img{width:100%;max-width:520px;height:auto;border-radius:var(--r-lg);box-shadow:var(--shadow-card);margin:0 auto 18px;display:block}

/* ── IMPRESSION (Boss 07/07) ─────────────────────────────────────────
   Le site met body{visibility:hidden} en print (pattern fiches PDF) →
   on rétablit et on imprime UNIQUEMENT la checklist, propre. */
@media print{
  html,body{visibility:visible!important;overflow:visible!important;height:auto!important;background:#fff!important}
  /* chrome site : header/footer/toolbar/mascotte/cookies/bannières */
  header,footer,#devbar,[data-mascot-root],body [class*="fixed"]{display:none!important}
  .allo-rentree{visibility:visible!important;padding-top:0!important;background:#fff!important;min-height:auto!important}
  /* éléments d'action inutiles sur papier */
  .allo-rentree .ctxbar,.allo-rentree .savepanel,.allo-rentree .addfree,.allo-rentree .offline,
  .allo-rentree .btn,.allo-rentree .hero-img,.allo-rentree .rev-img,.allo-rentree .devbar,.allo-rentree .toast{display:none!important}
  /* liste pleine largeur + budget en dessous, cartes à plat */
  .allo-rentree .checklist-wrap{display:block!important}
  .allo-rentree .aside-sticky{position:static!important;margin-top:14px}
  .allo-rentree .panel,.allo-rentree .cat-head{box-shadow:none!important;border:1px solid #e2e0ef!important;break-inside:avoid}
  .allo-rentree .cat-body{display:block!important}
  a{text-decoration:none;color:inherit}
}
@media print{
  /* bulle mascotte/voix + tout overlay réseau hors rubrique */
  body [class*="edtech-"],body [id*="edtech"],body [class*="voice" i],body [class*="mascot" i]{display:none!important}
  /* instructions écran + steppers (on garde la quantité) */
  .allo-rentree .trust{display:none!important}
  .allo-rentree .stepper button{display:none!important}
  .allo-rentree .stepper{border:none!important;background:none!important;padding:0!important}
}
/* [Boss 07/07] ajout article : champs quantité + prix */
.allo-rentree .addfree .af-qty{flex:0 0 62px;width:62px;text-align:center}
.allo-rentree .addfree .af-price{flex:0 0 84px;width:84px;text-align:center}
@media (max-width:620px){ .allo-rentree .addfree{flex-wrap:wrap} .allo-rentree .addfree input:first-child{flex:1 1 100%} }
/* ── Page classe SEO (redesign DS V2, Boss 07/07) ── */
.allo-rentree .cls-budget{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.allo-rentree .cls-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.allo-rentree .cls-item{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;box-shadow:var(--shadow-card);text-decoration:none;color:inherit}
.allo-rentree .cls-item .ci-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;font-size:16px;color:#fff}
.allo-rentree .cls-item .ci-body{display:flex;flex-direction:column;min-width:0}
.allo-rentree .cls-item .ci-body b{font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.allo-rentree .cls-item .ci-body small{font-size:11px;color:var(--muted)}
.allo-rentree .cls-more{border-style:dashed;border-color:var(--violet)}
.allo-rentree .cls-faq{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:900px){ .allo-rentree .cls-budget,.allo-rentree .cls-faq{grid-template-columns:1fr} }
/* ── Liste dynamique (Boss 07/07) : poubelle ligne, + rubrique, autocomplete, picker ── */
.allo-rentree .item .row-del{flex:0 0 auto;width:28px;height:28px;border-radius:8px;border:none;background:transparent;cursor:pointer;display:grid;place-items:center;opacity:.45;transition:.14s;margin-left:2px}
.allo-rentree .item:hover .row-del{opacity:1}
.allo-rentree .item .row-del:hover{background:#FFF1F3}
.allo-rentree .cat-add{flex:0 0 auto;width:30px;height:30px;border-radius:9px;border:1.4px solid var(--violet-soft);background:#fff;cursor:pointer;display:grid;place-items:center;margin-right:4px;transition:.14s}
.allo-rentree .cat-add:hover{background:var(--violet-soft);border-color:var(--violet)}
.allo-rentree .af-suggest{position:absolute;left:12px;right:12px;bottom:calc(100% - 6px);z-index:60;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-float);overflow:hidden}
.allo-rentree .af-suggest button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;background:#fff;cursor:pointer;text-align:left;font-family:var(--body)}
.allo-rentree .af-suggest button:hover{background:var(--violet-soft)}
.allo-rentree .af-suggest .as-nm{font-weight:700;font-size:13.5px;color:var(--ink)}
.allo-rentree .af-suggest small{margin-left:auto;color:var(--muted);font-size:11.5px;white-space:nowrap}
.allo-rentree .as-ic{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:13px;flex:0 0 auto;color:#fff}
.allo-rentree .picker-card{max-width:520px;width:92vw}
.allo-rentree .picker-list{max-height:52vh;overflow-y:auto;margin:12px 0;border:1px solid var(--line);border-radius:var(--r-md)}
.allo-rentree .picker-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);cursor:pointer;font-size:13.5px}
.allo-rentree .picker-row:last-child{border-bottom:none}
.allo-rentree .picker-row:hover{background:var(--surface)}
.allo-rentree .picker-row input{width:17px;height:17px;accent-color:var(--violet);flex:0 0 auto}
.allo-rentree .picker-row .pr-nm{font-weight:600;color:var(--ink);flex:1;min-width:0}
.allo-rentree .picker-row .pr-warn{color:var(--gold-deep);font-weight:500}
.allo-rentree .picker-row .pr-pr{color:var(--muted);font-size:12px;white-space:nowrap}
@media print{ .allo-rentree .row-del,.allo-rentree .cat-add,.allo-rentree .af-suggest{display:none!important} }

/* ── Pages fournitures (PACK V1, wireframes 02) ── */
.allo-rentree .sp-shell{max-width:1020px;margin:0 auto;padding:22px 20px 44px}
.allo-rentree .sp-crumb{font-size:12.5px;color:var(--muted);margin-bottom:12px}
.allo-rentree .sp-crumb a{color:var(--violet-deep);font-weight:600}
.allo-rentree .sp-hero{margin-bottom:16px}
.allo-rentree .sp-hero h1{font-size:clamp(24px,3.4vw,34px)}
.allo-rentree .sp-trust{display:flex;gap:10px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 14px;font-size:12px;color:var(--ink-soft);margin-bottom:18px;box-shadow:var(--shadow-card)}
.allo-rentree .sp-sect{margin-top:26px}
.allo-rentree .sp-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:18px}
.allo-rentree .sp-sum-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:12px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow-card)}
.allo-rentree .sp-sum-card .ic{font-size:18px}
.allo-rentree .sp-sum-card small{color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em}
.allo-rentree .sp-sum-card b{font-size:13px;color:var(--ink);line-height:1.3}
.allo-rentree .sp-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:26px}
.allo-rentree .sp-budget h3,.allo-rentree .sp-reuse h3{font-family:var(--display);font-size:15px;margin-bottom:8px}
.allo-rentree .sp-budget p,.allo-rentree .sp-reuse p{font-size:13px;color:var(--ink-soft);line-height:1.5}
.allo-rentree .sp-tiers{display:flex;gap:10px;margin:8px 0 10px}
.allo-rentree .sp-tiers>div{flex:1;background:var(--surface);border-radius:12px;padding:10px;text-align:center}
.allo-rentree .sp-tiers small{display:block;color:var(--muted);font-size:10.5px;text-transform:uppercase}
.allo-rentree .sp-tiers b{font-family:var(--display);font-size:18px;color:var(--violet-deep)}
.allo-rentree .sp-usage{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.allo-rentree .sp-usage>div{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;display:flex;justify-content:space-between;align-items:center;font-size:13px;box-shadow:var(--shadow-card)}
.allo-rentree .sp-usage b{color:var(--ink)} .allo-rentree .sp-usage span{color:var(--violet-deep);font-weight:700}
.allo-rentree .sp-mistakes{display:grid;gap:10px}
.allo-rentree .sp-mistake{display:flex;gap:10px;background:#FFF9EE;border:1px solid #F5E3BD;border-radius:var(--r-md);padding:11px 13px;font-size:13px;color:var(--ink-soft);line-height:1.5}
.allo-rentree .sp-confirm{margin-top:22px}
.allo-rentree .sp-faq details{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:8px;box-shadow:var(--shadow-card)}
.allo-rentree .sp-faq summary{cursor:pointer;padding:13px 15px;font-weight:700;font-size:13.5px;color:var(--ink);list-style:none;display:flex;justify-content:space-between}
.allo-rentree .sp-faq summary::after{content:'+';color:var(--violet-deep);font-weight:800}
.allo-rentree .sp-faq details[open] summary::after{content:'−'}
.allo-rentree .sp-faq details p{padding:0 15px 13px;font-size:13px;color:var(--ink-soft);line-height:1.55}
.allo-rentree .sp-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.allo-rentree .sp-rel-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 14px;text-decoration:none;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:4px;transition:.14s}
.allo-rentree .sp-rel-card:hover{transform:translateY(-2px);border-color:var(--violet)}
.allo-rentree .sp-rel-card b{font-size:13px;color:var(--ink);line-height:1.35}
.allo-rentree .sp-rel-card small{color:var(--violet-deep);font-size:11.5px;font-weight:600}
.allo-rentree .sp-steps{display:grid;gap:8px}
.allo-rentree .sp-step{display:flex;gap:10px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:11px 13px;font-size:13.5px;color:var(--ink-soft);cursor:pointer;box-shadow:var(--shadow-card)}
.allo-rentree .sp-step input{width:17px;height:17px;accent-color:var(--mint-deep);flex:0 0 auto;margin-top:1px}
/* AddToListCard */
.allo-rentree .atl-card{background:var(--card);border:1.6px solid var(--violet-soft);border-radius:var(--r-lg);padding:16px;box-shadow:var(--shadow-card);margin:4px 0 8px}
.allo-rentree .atl-head{font-family:var(--display);font-weight:800;font-size:15px;color:var(--ink);margin-bottom:10px}
.allo-rentree .atl-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.allo-rentree .atl-nm{flex:1;font-weight:600;color:var(--ink)} .allo-rentree .atl-in{color:var(--mint-deep);font-weight:600}
.allo-rentree .atl-qty{display:inline-flex;align-items:center;gap:8px}
.allo-rentree .atl-qty button{width:28px;height:28px;border-radius:8px;border:1.4px solid var(--line);background:#fff;cursor:pointer;color:var(--violet-deep);font-weight:800}
.allo-rentree .atl-pr{color:var(--muted);font-size:12px;min-width:52px;text-align:right}
.allo-rentree .atl-status{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}
.allo-rentree .atl-chip{border:1.4px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600;color:var(--ink-soft);cursor:pointer}
.allo-rentree .atl-chip.on{background:var(--violet-soft);border-color:var(--violet);color:var(--violet-deep)}
.allo-rentree .atl-note{display:block;text-align:center;color:var(--muted);font-size:11px;margin-top:8px}
@media (max-width:760px){ .allo-rentree .sp-2col{grid-template-columns:1fr} .allo-rentree .sp-trust{flex-direction:column;gap:4px} }
@media print{ .allo-rentree .atl-card,.allo-rentree .sp-crumb{display:none!important} }

/* ── contenu rédigé V2 (tables, intro, richtext) ── */
.allo-rentree .sp-intro{margin-bottom:16px}
.allo-rentree .sp-p{font-size:13.5px;color:var(--ink-soft);line-height:1.6;margin:0 0 10px}
.allo-rentree .sp-p:last-child{margin-bottom:0}
.allo-rentree .sp-h{margin-top:14px;color:var(--ink)}
.allo-rentree .sp-ul{margin:0 0 10px 18px;font-size:13.5px;color:var(--ink-soft);line-height:1.6}
.allo-rentree .sp-ul li{margin-bottom:4px}
.allo-rentree .sp-tablewrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-card);margin-bottom:12px}
.allo-rentree .sp-table{width:100%;border-collapse:collapse;font-size:13px}
.allo-rentree .sp-table th{background:var(--violet-soft);color:var(--violet-deep);text-align:left;padding:10px 12px;font-family:var(--display);font-size:12px;white-space:nowrap}
.allo-rentree .sp-table td{padding:9px 12px;border-top:1px solid var(--line);color:var(--ink-soft);line-height:1.5;vertical-align:top}
.allo-rentree .sp-table tr td:first-child{color:var(--ink);font-weight:600;white-space:nowrap}
.allo-rentree .sp-understand h3{font-family:var(--display);font-size:15px;margin-bottom:8px}
.allo-rentree .sp-faq-a{padding:0 15px 13px}
.allo-rentree .sp-faq-a .sp-p{font-size:13px}
.allo-rentree .sp-confirm-rich .sp-p{display:inline;margin:0;font-size:inherit;color:inherit}
@media (max-width:760px){ .allo-rentree .sp-table td:first-child{white-space:normal} }

/* ── Pages liées v2 (vignettes) + AddToList mutualisé ── */
.allo-rentree .sp-rel-v2{flex-direction:row;align-items:center;gap:11px}
.allo-rentree .sp-rel-thumb{width:52px;height:52px;border-radius:12px;background:var(--violet-soft);flex:0 0 auto;display:grid;place-items:center;overflow:hidden}
.allo-rentree .sp-rel-thumb img{width:100%;height:100%;object-fit:cover}
.allo-rentree .sp-rel-emoji{font-size:22px}
.allo-rentree .sp-rel-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.allo-rentree .sp-rel-v2 b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.allo-rentree .atl-open{background:none;border:none;padding:0;text-align:left;cursor:pointer;font:inherit;color:var(--ink);font-weight:600;flex:1}
.allo-rentree .atl-open:hover{color:var(--violet-deep)}
.allo-rentree .atl-cfg{color:var(--violet-deep);font-weight:600;font-size:11.5px}

/* ── prix saisissable (popin) + CTA hero ── */
.allo-rentree .sheet-price{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line);border-radius:10px;background:#fff;padding:4px 10px}
.allo-rentree .sheet-price input{width:64px;border:none;outline:none;font-family:var(--display);font-weight:800;font-size:17px;color:var(--ink);text-align:right;background:transparent}
.allo-rentree .sheet-price span{color:var(--muted);font-weight:700}
.allo-rentree .sheet-price:focus-within{border-color:var(--violet)}
.allo-rentree .btn-hero{padding:14px 26px;font-size:15px}

/* ── HUB PREMIUM (Boss 08/07) — cards gradient classes, familles image-top, objets photo, guides tuiles ── */
.allo-rentree .sect-ic{margin-right:8px}
.allo-rentree .sp-badge{display:inline-flex;align-items:center;gap:5px;background:var(--violet-soft);color:var(--violet-deep);border-radius:999px;padding:3px 10px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;width:fit-content}
.allo-rentree .sp-badge .ar{font-size:12px;transition:transform .15s}
.allo-rentree .sp-rel-card:hover .sp-badge .ar{transform:translateX(3px)}
/* classes par groupe */
.allo-rentree .sp-cls-row{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.allo-rentree .sp-cls-group{color:#fff;font-family:var(--display);font-weight:800;font-size:12.5px;border-radius:999px;padding:8px 14px;flex:0 0 auto;box-shadow:0 4px 12px rgba(31,23,64,.14)}
.allo-rentree .sp-cls-cards{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.allo-rentree .sp-cls-card{position:relative;display:flex;flex-direction:column;gap:1px;background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:9px 30px 9px 13px;text-decoration:none;box-shadow:var(--shadow-card);transition:.16s;min-width:86px}
.allo-rentree .sp-cls-card b{font-family:var(--display);font-size:14.5px;color:var(--ink)}
.allo-rentree .sp-cls-card small{font-size:10px;color:var(--muted)}
.allo-rentree .sp-cls-card .go{position:absolute;right:9px;top:50%;transform:translateY(-50%);color:var(--violet);font-weight:800;transition:transform .15s}
.allo-rentree .sp-cls-card:hover{transform:translateY(-2px);border-color:var(--violet);box-shadow:var(--shadow-pop)}
.allo-rentree .sp-cls-card:hover .go{transform:translateY(-50%) translateX(3px)}
/* familles : image en tête */
.allo-rentree .sp-fam-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.allo-rentree .sp-fam-card{position:relative;display:flex;align-items:center;gap:12px;background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-lg);padding:10px 34px 10px 10px;text-decoration:none;box-shadow:var(--shadow-card);transition:.16s;overflow:hidden}
.allo-rentree .sp-fam-img{width:64px;height:64px;border-radius:14px;background:linear-gradient(135deg,var(--violet-soft),#EDE9FF);flex:0 0 auto;display:grid;place-items:center;overflow:hidden}
.allo-rentree .sp-fam-img img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.allo-rentree .sp-fam-card:hover .sp-fam-img img{transform:scale(1.08)}
.allo-rentree .sp-fam-img .ph{font-size:26px}
.allo-rentree .sp-fam-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.allo-rentree .sp-fam-body b{font-family:var(--display);font-size:14px;color:var(--ink);line-height:1.25}
.allo-rentree .sp-fam-body small{font-size:11.5px;color:var(--violet-deep);font-weight:600}
.allo-rentree .sp-fam-card .go,.allo-rentree .sp-q-card .go{position:absolute;right:11px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;background:var(--violet-soft);color:var(--violet-deep);display:grid;place-items:center;font-weight:800;font-size:13px;transition:.16s}
.allo-rentree .sp-fam-card:hover,.allo-rentree .sp-q-card:hover{transform:translateY(-2px);border-color:var(--violet);box-shadow:var(--shadow-pop)}
.allo-rentree .sp-fam-card:hover .go,.allo-rentree .sp-q-card:hover .go{background:var(--violet);color:#fff;transform:translateY(-50%) translateX(2px)}
/* objets qui posent question : photo + prix */
.allo-rentree .sp-q-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.allo-rentree .sp-q-card{position:relative;display:flex;align-items:center;gap:11px;background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-md);padding:9px 32px 9px 9px;text-decoration:none;box-shadow:var(--shadow-card);transition:.16s}
.allo-rentree .sp-q-img{width:48px;height:48px;border-radius:11px;background:#F6F4FF;flex:0 0 auto;display:grid;place-items:center;overflow:hidden}
.allo-rentree .sp-q-img img{width:100%;height:100%;object-fit:cover}
.allo-rentree .sp-q-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.allo-rentree .sp-q-body b{font-size:13px;color:var(--ink);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.allo-rentree .sp-q-body small{font-size:11px;color:var(--muted);font-weight:600}
/* guides : tuiles gradient */
.allo-rentree .sp-guide-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.allo-rentree .sp-guide-card{display:flex;flex-direction:column;gap:6px;background:linear-gradient(150deg,#FFFFFF,#F4F1FF);border:1.5px solid var(--line);border-radius:var(--r-lg);padding:16px;text-decoration:none;box-shadow:var(--shadow-card);transition:.16s}
.allo-rentree .sp-guide-ic{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--violet),var(--coral));display:grid;place-items:center;font-size:20px;box-shadow:0 6px 14px rgba(123,97,255,.25)}
.allo-rentree .sp-guide-card b{font-family:var(--display);font-size:14px;color:var(--ink);line-height:1.3}
.allo-rentree .sp-guide-card small{font-size:11.5px;color:var(--violet-deep);font-weight:700}
.allo-rentree .sp-guide-card:hover{transform:translateY(-3px);border-color:var(--violet);box-shadow:var(--shadow-pop)}
@media (max-width:640px){ .allo-rentree .sp-cls-row{flex-direction:column;align-items:flex-start} .allo-rentree .sp-fam-grid,.allo-rentree .sp-q-grid{grid-template-columns:1fr 1fr} }

/* ── PATCH FINITION 08/07 : orientation hub, quick-choice, catégories classe, confirm, budget qualitatif ── */
.allo-rentree .sp-scope{font-size:10.5px;font-weight:700;color:var(--violet-deep);background:var(--violet-soft);border-radius:999px;padding:3px 10px;margin-left:8px;vertical-align:middle;text-transform:uppercase;letter-spacing:.04em}
.allo-rentree .sp-brow{margin-bottom:6px}
.allo-rentree .sp-disclaimer{font-size:11.5px;color:var(--muted);border-top:1px dashed var(--line);padding-top:8px;margin-top:10px}
.allo-rentree .sp-quickchoice{margin:16px 0;border-left:4px solid var(--mint-deep);background:linear-gradient(150deg,#F2FBF8,#fff)}
.allo-rentree .sp-quickchoice h3{font-family:var(--display);font-size:14.5px;margin-bottom:8px;color:var(--mint-deep)}
.allo-rentree .sp-orient{margin-bottom:18px}
.allo-rentree .sp-orient h3{font-family:var(--display);font-size:15px;margin-bottom:10px}
.allo-rentree .sp-orient-paths{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.allo-rentree .sp-orient-path{background:var(--violet-soft);color:var(--violet-deep);font-weight:700;font-size:13px;border-radius:999px;padding:9px 16px;text-decoration:none;transition:.15s}
.allo-rentree .sp-orient-path:hover{background:var(--violet);color:#fff;transform:translateY(-1px)}
.allo-rentree .sp-orient-links{display:flex;gap:6px 14px;flex-wrap:wrap;font-size:12.5px}
.allo-rentree .sp-orient-links a{color:var(--ink-soft);text-decoration:none;border-bottom:1px dashed var(--line)}
.allo-rentree .sp-orient-links a:hover{color:var(--violet-deep);border-color:var(--violet)}
.allo-rentree .cls-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.allo-rentree .cls-cat{background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-lg);padding:13px;box-shadow:var(--shadow-card)}
.allo-rentree .cls-cat-head{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.allo-rentree .cls-cat-head b{font-family:var(--display);font-size:13.5px;color:var(--ink);flex:1}
.allo-rentree .cls-cat-head small{color:var(--muted);font-size:11px}
.allo-rentree .cls-cat ul{list-style:none;margin:0;padding:0}
.allo-rentree .cls-cat li{font-size:12.5px;color:var(--ink-soft);padding:4px 0;border-bottom:1px dashed var(--line);display:flex;gap:6px;align-items:center}
.allo-rentree .cls-cat li:last-child{border-bottom:none}
.allo-rentree .cls-cat li .q{color:var(--violet-deep);font-weight:700;margin-left:auto}
.allo-rentree .cls-cat li .r{font-size:11px}
.allo-rentree .cls-cat li.more a{color:var(--violet-deep);font-weight:600;text-decoration:none;font-size:12px}
.allo-rentree .cls-confirm{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:7px}
.allo-rentree .cls-confirm li{font-size:13px;color:var(--ink-soft);background:var(--surface);border-radius:10px;padding:8px 11px}

/* ═══════════ UI TOKENS V1 (cockpit 08/07 — anti banana split) ═══════════
   Système strict sous le hero : cards blanches bord violet soft, radius 18/14,
   1 ombre unique, icônes outline, gradients réservés hero+CTA, notices officielles. */
.allo-rentree{--ar-bg:#F3EEFF;--ar-surface:#FFFFFF;--ar-soft:#FAF8FF;--ar-border:#E6DCF8;--ar-ink:#22164F;--ar-ink2:#6B5A8A;--ar-violet:#6D4CFF;--ar-violet-dark:#4B32C3;--ar-pink:#F45F9D;--ar-info:#EEF7FF;--ar-success:#ECFDF5;--ar-warn:#FFF7E6;--ar-danger:#FFF1F2;--ar-shadow:0 8px 24px rgba(48,31,100,.08)}
/* cards : MÊME radius/ombre/padding partout */
.allo-rentree .sp-shell .panel,.allo-rentree .sp-shell .sp-sum-card,.allo-rentree .sp-shell .sp-rel-card,
.allo-rentree .sp-shell .sp-fam-card,.allo-rentree .sp-shell .sp-q-card,.allo-rentree .sp-shell .sp-guide-card,
.allo-rentree .sp-shell .cls-item,.allo-rentree .sp-shell .sp-mistake,.allo-rentree .sp-shell .sp-infocard,
.allo-rentree .sp-shell .sp-tablewrap,.allo-rentree .sp-shell .sp-faq details,.allo-rentree .sp-shell .atl-card,
.allo-rentree .sp-shell .sp-usage>div,.allo-rentree .sp-shell .sp-step,.allo-rentree .sp-shell .sp-cls-card,
.allo-rentree .cls-cats .cls-cat,.allo-rentree .cls-budget .benefit{
  border-radius:18px;border:1px solid var(--ar-border);box-shadow:var(--ar-shadow);background:var(--ar-surface)}
.allo-rentree .sp-shell .sp-sum-card,.allo-rentree .sp-shell .sp-cls-card,.allo-rentree .sp-shell .sp-step,
.allo-rentree .sp-shell .sp-usage>div,.allo-rentree .sp-shell .sp-infocard{border-radius:14px}
.allo-rentree .sp-shell .panel-pad{padding:24px}
.allo-rentree .sp-sect{margin-top:40px}
/* typo : titres nets, corps lisible */
.allo-rentree .sp-shell .sect-title h2{font-size:25px;display:flex;align-items:center;gap:9px}
.allo-rentree .sp-shell .sp-p{font-size:15px;line-height:1.65;color:var(--ar-ink2)}
.allo-rentree .sp-shell .sp-ul{font-size:15px;line-height:1.65;color:var(--ar-ink2)}
.allo-rentree .sp-shell h3{color:var(--ar-ink);display:flex;align-items:center;gap:7px;font-size:16px}
/* notices officielles §9 */
.allo-rentree .sp-notice{display:flex;gap:11px;align-items:flex-start;border-radius:14px;padding:14px 16px;font-size:14px;line-height:1.55;color:var(--ar-ink2);border:1px solid var(--ar-border)}
.allo-rentree .sp-notice b{color:var(--ar-ink)}
.allo-rentree .sp-notice .i{flex:0 0 auto;margin-top:1px}
.allo-rentree .sp-notice-info{background:var(--ar-info);border-color:#D8EAFB}
.allo-rentree .sp-notice-soft{background:var(--ar-soft)}
/* erreurs fréquentes : cards blanches, icône ambre — fini le jaune pleine largeur */
.allo-rentree .sp-shell .sp-mistakes{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.allo-rentree .sp-shell .sp-mistake{background:var(--ar-surface);border:1px solid var(--ar-border);padding:14px 16px;font-size:14px;line-height:1.55;color:var(--ar-ink2)}
.allo-rentree .sp-shell .sp-mistake .mi{flex:0 0 auto;width:30px;height:30px;border-radius:9px;background:var(--ar-warn);display:grid;place-items:center}
/* InfoGrid §16 : tables 2 colonnes en cards propres */
.allo-rentree .sp-infogrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-bottom:12px}
.allo-rentree .sp-infocard{padding:16px 18px}
.allo-rentree .sp-infocard b{display:block;font-family:var(--display);font-size:14px;color:var(--ar-ink);margin-bottom:6px}
.allo-rentree .sp-infocard p{font-size:13.5px;color:var(--ar-ink2);line-height:1.55;margin:0}
/* tables §10 : aérées, jamais collées */
.allo-rentree .sp-shell .sp-table th{padding:14px 16px;background:var(--ar-soft);color:var(--ar-violet-dark)}
.allo-rentree .sp-shell .sp-table td{padding:14px 16px;border-top:1px solid #EFE8FF;font-size:14px;line-height:1.6}
/* checklist §11 : vrai composant, lignes séparées */
.allo-rentree .sp-shell .sp-steps{display:block;background:var(--ar-surface);border:1px solid var(--ar-border);border-radius:18px;box-shadow:var(--ar-shadow);overflow:hidden}
.allo-rentree .sp-shell .sp-step{display:flex;border:none;border-radius:0;box-shadow:none;border-bottom:1px solid #EFE8FF;padding:14px 18px;font-size:15px;color:var(--ar-ink)}
.allo-rentree .sp-shell .sp-step:last-child{border-bottom:none}
.allo-rentree .sp-shell .sp-step input{width:18px;height:18px;accent-color:var(--ar-violet)}
/* hub calme : pills groupe soft (plus de 3 gradients), tuiles guides blanches */
.allo-rentree .sp-cls-group{background:var(--ar-soft);border:1px solid var(--ar-border);color:var(--ar-ink);display:inline-flex;align-items:center;gap:7px;box-shadow:none}
.allo-rentree .sp-guide-card{background:var(--ar-surface)}
.allo-rentree .sp-guide-ic{background:var(--ar-soft);border:1px solid var(--ar-border);box-shadow:none}
/* quick-choice : carte calme bord vert */
.allo-rentree .sp-quickchoice{background:var(--ar-surface);border-left:4px solid #0E9C84}
/* related sobres §14 */
.allo-rentree .sp-rel-thumb{background:var(--ar-soft)}
/* budget/confirm classe (page site) */
.allo-rentree .cls-confirm li{background:var(--ar-info);color:var(--ar-ink2);display:flex;gap:8px;align-items:flex-start}
.allo-rentree .cls-confirm li::before{content:'';flex:0 0 14px;height:14px;margin-top:2px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236D4CFF' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E")}
.allo-rentree .sp-shell .hero{box-shadow:0 18px 48px rgba(48,31,100,.14)}
@media (max-width:640px){ .allo-rentree .sp-shell .panel-pad{padding:18px} .allo-rentree .sp-sect{margin-top:28px} .allo-rentree .sp-shell .sect-title h2{font-size:21px} }

/* ── Boss 08/07 soir : ctxbar 2 lignes, icônes centrées, qty0, partage, fiche→produit, print brandé ── */
.allo-rentree .ctx-2rows{padding:8px 0}
.allo-rentree .ctx-2rows .ctx-inner{min-height:0;padding:2px 20px}
.allo-rentree .ctx-row2{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-start;padding-bottom:6px}
.allo-rentree .ctx-row2 .ctx-crumb{margin:0}
/* icônes TOUJOURS centrées dans leurs boutons (fix +/− et X décalés) */
.allo-rentree .item .qty button,.allo-rentree .storehead .close,.allo-rentree .row-del,.allo-rentree .cat-add,
.allo-rentree .sheet button[aria-label="moins"],.allo-rentree .sheet button[aria-label="plus"],.allo-rentree .sheet button[aria-label="Fermer"]{
  display:inline-grid!important;place-items:center;padding:0;line-height:1}
.allo-rentree .storehead .close.store-save{width:auto;padding:0 16px;font-family:var(--display);font-weight:800;font-size:13px;background:var(--mint);border-color:transparent}
/* article non choisi (qty 0) */
.allo-rentree .item.q0{opacity:.5}
.allo-rentree .item.q0 .nm{text-decoration:none}
/* menu partager */
.allo-rentree .share-opt{display:flex;align-items:center;gap:10px;width:100%;background:var(--surface);border:1.4px solid var(--line);border-radius:13px;padding:12px 14px;margin-bottom:8px;cursor:pointer;text-align:left;transition:.14s}
.allo-rentree .share-opt:hover{border-color:var(--violet);background:#fff}
.allo-rentree .share-opt .so-body{flex:1;display:flex;flex-direction:column;gap:1px}
.allo-rentree .share-opt b{font-size:14px;color:var(--ink)}
.allo-rentree .share-opt small{font-size:11.5px;color:var(--muted)}
.allo-rentree .share-opt .so-ar{color:var(--violet-deep);font-weight:800;font-size:16px}
/* fiche → page produit */
.allo-rentree .sheet-guide{display:flex;align-items:center;gap:7px;margin-top:10px;background:var(--violet-soft);border-radius:11px;padding:10px 12px;font-size:12.5px;font-weight:700;color:var(--violet-deep);text-decoration:none}
.allo-rentree .sheet-guide:hover{background:#E3DBFF}
/* scrim au-dessus du mode magasin */
.allo-rentree .scrim{z-index:300}
/* ═══ PRINT BRANDÉ (Boss : logo site + budget d'abord + cases + footer URL/Rentrée scolaire, compact) ═══ */
.allo-rentree .print-sheet{display:none}
@media print{
  .allo-rentree .ctxbar,.allo-rentree .shell,.allo-rentree .store,.allo-rentree .devbar,.allo-rentree .toast,.allo-rentree .scrim,.allo-rentree .subnav{display:none!important}
  .allo-rentree .print-sheet{display:block!important;color:#111;font:12px/1.45 Arial,Helvetica,sans-serif}
  @page{margin:11mm}
  .allo-rentree .pr-head{border-bottom:2.5px solid #6D4CFF;padding-bottom:8px;margin-bottom:10px}
  .allo-rentree .pr-brand{font-weight:800;font-size:17px;color:#4B32C3;letter-spacing:.02em}
  .allo-rentree .pr-brand span{color:#888;font-weight:600;font-size:12px;letter-spacing:0}
  .allo-rentree .pr-title{font-size:21px;font-weight:800;margin-top:2px;color:#111}
  .allo-rentree .pr-date{color:#666;font-size:10px}
  .allo-rentree table.pr-budget{width:100%;border-collapse:collapse;margin:8px 0 12px}
  .allo-rentree .pr-budget th,.allo-rentree .pr-budget td{border:1px solid #bbb;padding:6px 9px;text-align:center;font-size:11.5px}
  .allo-rentree .pr-budget th:first-child,.allo-rentree .pr-budget td:first-child{text-align:left}
  .allo-rentree .pr-budget th{background:#F1EDFF;color:#4B32C3}
  .allo-rentree .pr-cats{columns:2;column-gap:20px}
  .allo-rentree .pr-cat{break-inside:avoid;margin-bottom:9px}
  .allo-rentree .pr-cat-h{font-weight:800;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:#4B32C3;border-bottom:1px solid #ddd;margin-bottom:3px;padding-bottom:2px}
  .allo-rentree .pr-row{display:flex;align-items:center;gap:6px;padding:2.5px 0;font-size:11.5px}
  .allo-rentree .pr-box{width:10px;height:10px;border:1.3px solid #444;border-radius:2px;display:inline-block;position:relative;flex:0 0 auto}
  .allo-rentree .pr-box.on::after{content:'✓';position:absolute;top:-4.5px;left:.5px;font-size:11px;color:#0E9C84;font-weight:900}
  .allo-rentree .pr-nm{color:#222}
  .allo-rentree .pr-q{color:#4B32C3;font-weight:700}
  .allo-rentree .pr-foot{margin-top:12px;border-top:1px solid #ccc;padding-top:6px;text-align:center;font-size:11.5px;color:#333;font-weight:700}
  .allo-rentree .pr-foot span{font-weight:600;color:#777;font-size:10px}
}
.allo-rentree a.benefit-link{text-decoration:none;display:block;cursor:pointer;transition:.15s}
.allo-rentree a.benefit-link:hover{transform:translateY(-3px);border-color:var(--violet);box-shadow:var(--shadow-pop)}

/* ── RentreeModal : la checklist en POPIN (pattern Notes/Planner/Board, Boss 12/07) ── */
.allo-rentree.ar-modal-scrim{position:fixed;inset:0;z-index:400;background:rgba(24,16,53,.55);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:18px}
.allo-rentree .ar-modal-panel{position:relative;width:min(1180px,100%);height:min(92vh,100%);background:var(--ar-bg,#F3EEFF);border-radius:22px;box-shadow:0 30px 80px rgba(24,16,53,.45);overflow:hidden;display:flex;flex-direction:column}
.allo-rentree .ar-modal-close{position:absolute;top:12px;right:12px;z-index:20;width:38px;height:38px;border-radius:50%;border:none;background:#fff;color:var(--ar-ink,#22164F);font-size:17px;font-weight:800;cursor:pointer;box-shadow:0 6px 18px rgba(24,16,53,.18);display:grid;place-items:center}
.allo-rentree .ar-modal-close:hover{background:var(--ar-violet,#6D4CFF);color:#fff}
.allo-rentree .ar-modal-body{flex:1;overflow-y:auto;overscroll-behavior:contain}
@media (max-width:640px){ .allo-rentree.ar-modal-scrim{padding:0} .allo-rentree .ar-modal-panel{height:100%;border-radius:0} }
@media print{ .allo-rentree.ar-modal-scrim{position:static;background:none;padding:0} .allo-rentree .ar-modal-panel{height:auto;box-shadow:none} .allo-rentree .ar-modal-close{display:none!important} }
