/* CUPPLES PRO dashboard. Visual system taken from the validated preview (MYCUPPLES vitrine: black, glass, gold). */
[hidden]{display:none!important}
html,body{margin:0}
body{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
/* Layout: the vitrine's editorial header (chapters become tabs) over its warm-black glowing stage;
   each tab is a two-line Bodoni title, then glass panels. Single dark theme, by choice, like the vitrine. */
:root{
  --night:#050404; --ink:#f6efe4; --ink-soft:#d8cfc2; --ink-mute:#b5a996;
  --hair:rgba(246,239,228,.14); --hair-2:rgba(246,239,228,.24); --hair-3:rgba(246,239,228,.5);
  --fill:rgba(246,239,228,.04); --fill-2:rgba(246,239,228,.07); --veil:rgba(10,8,7,.62);
  --gold:#e3b45f; --valid:#56d6c6; --fixed:#f2b33d; --alert:#ef8a77; --proposed:#a2968a;
  --font:'Space Grotesk','Helvetica Neue',Arial,sans-serif; --serif:'Bodoni Moda',Georgia,'Times New Roman',serif; --script:'Great Vibes',cursive;
  --ease:cubic-bezier(.16,1,.3,1);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{background:var(--night)}
body{margin:0;background:var(--night);color:var(--ink-soft);font:300 15px/1.6 var(--font);-webkit-font-smoothing:antialiased;min-height:100%}
.stage{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(38vw 30vw at 82% 8%,rgba(216,171,82,.20),transparent 70%),
    radial-gradient(30vw 26vw at 96% 58%,rgba(199,122,46,.13),transparent 70%),
    radial-gradient(50vw 40vw at 4% 104%,rgba(58,36,18,.55),transparent 70%),
    repeating-radial-gradient(circle at 82% 8%,transparent 0 119px,rgba(246,239,228,.022) 120px 121px),
    var(--night)}
h1,h2,h3{margin:0;font-weight:400;color:var(--ink);text-wrap:balance}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
:focus-visible{outline:1px solid var(--gold);outline-offset:4px;border-radius:6px}
.num{font-variant-numeric:tabular-nums}

/* header : same as the vitrine */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;height:70px;display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding-inline:clamp(16px,4vw,60px);background:linear-gradient(180deg,rgba(5,4,4,.92),rgba(5,4,4,.7));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid rgba(246,239,228,.065)}
.brand{display:inline-flex;align-items:center;gap:12px;color:var(--ink)}
.brand-mark{width:22px;height:22px;flex:none;background:var(--ink);-webkit-mask:url(/mycupples-embleme.png) center/contain no-repeat;mask:url(/mycupples-embleme.png) center/contain no-repeat}
.brand b{font-size:13px;font-weight:500;letter-spacing:.16em}
.brand i{font-style:normal;font-size:9.5px;letter-spacing:.24em;color:var(--gold);border:1px solid rgba(227,180,95,.4);border-radius:999px;padding:3px 8px}
nav.tabs{display:flex;gap:34px}
.tab{position:relative;padding:6px 0;font-size:12.5px;letter-spacing:.04em;color:rgba(246,239,228,.55);transition:color .4s;display:inline-flex;align-items:center;gap:8px}
.tab svg{display:none;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.tab .mb{display:none}
.tab::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--ink);transition:width .55s var(--ease)}
.tab:hover,.tab[aria-selected="true"]{color:var(--ink)}
.tab[aria-selected="true"]::after{width:100%}
.top-right{display:flex;align-items:center;gap:22px}
.live{display:inline-flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.08em;color:rgba(246,239,228,.55);white-space:nowrap}
.live b{color:var(--ink);font-weight:500}
.live::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--valid);box-shadow:0 0 10px var(--valid)}

main{position:relative;z-index:1;max-width:1480px;margin:0 auto;padding-inline:clamp(16px,4vw,60px);padding-block:34px 90px}
.note{display:flex;align-items:center;gap:10px;font-size:12.5px;letter-spacing:.02em;color:var(--ink-mute);margin-bottom:38px}
.note::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold);flex:none}
.note b{font-weight:500;color:var(--ink-soft)}

/* two-line editorial title */
.title{font-family:var(--serif);font-size:clamp(40px,5vw,72px);line-height:1;letter-spacing:-.035em;margin-bottom:18px}
.title span{display:block}
.title .m{color:var(--ink-mute)}
.title.sm{font-size:clamp(34px,3.6vw,54px);margin-bottom:0}
.head .eyebrow{margin-bottom:16px}
.lead{max-width:56ch;font-size:16px;line-height:1.7;color:var(--ink-soft)}
.eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:22px;font:500 11px/1 var(--font);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft)}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 10px var(--gold)}
.label{font:500 10.5px/1.4 var(--font);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute)}
.head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 40px;margin-bottom:40px}
.head>div{min-width:0}

/* glass panel, as the vitrine's contact card */
.glass{position:relative;border-radius:24px;padding:28px;min-width:0;
  background:linear-gradient(160deg,rgba(246,239,228,.07),rgba(246,239,228,.015));
  -webkit-backdrop-filter:blur(20px) saturate(160%);backdrop-filter:blur(20px) saturate(160%);
  box-shadow:0 30px 80px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.12)}
.glass::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  background:linear-gradient(135deg,rgba(255,246,232,.55),rgba(255,246,232,.07) 30%,rgba(255,246,232,.04) 62%,rgba(255,246,232,.3))}
.glass-h{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}
.glass-h h2{font-family:var(--serif);font-size:24px;letter-spacing:-.01em}
.grid{display:grid;gap:22px}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr))}

/* buttons */
.pill-btn{display:inline-flex;align-items:center;gap:14px;padding:13px 22px;border-radius:999px;white-space:nowrap;border:1px solid rgba(246,239,228,.55);background:rgba(246,239,228,.04);color:var(--ink);font:500 13px/1 var(--font);transition:background .3s,color .3s,transform .3s,border-color .3s}
.pill-btn .ar{font-size:15px}
.pill-btn:hover{background:var(--ink);color:var(--night);border-color:var(--ink);transform:translateY(-2px)}
.pill-btn.gold{border-color:var(--gold);background:rgba(227,180,95,.12)}
.pill-btn.gold:hover{background:var(--gold);color:var(--night)}
.pill-btn[disabled]{opacity:.35;pointer-events:none}
.ghost{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:1px solid rgba(246,239,228,.22);font:500 11px/1 var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;transition:border-color .3s,color .3s}
.ghost:hover{border-color:rgba(246,239,228,.7);color:var(--ink)}
.ghost.warn{color:var(--alert);border-color:rgba(239,138,119,.35)}

/* status tag, as the vitrine's language labels */
.st{display:inline-flex;align-items:center;gap:7px;font:500 9.5px/1.5 var(--font);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute)}
.st::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c,var(--proposed));flex:none}
.st.ok{--c:var(--valid)} .st.gold{--c:var(--gold)} .st.warn{--c:var(--fixed)} .st.bad{--c:var(--alert)}

/* ACCUEIL */
.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px;align-items:center;margin-bottom:56px}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:30px}
.hero-note{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute)}
.hero-note b{font-weight:500;color:var(--gold)}
/* glass book: the vitrine's object, at rest */
.book-wrap{perspective:1400px;display:grid;place-items:center;min-height:300px}
.book{position:relative;width:min(440px,100%);aspect-ratio:1.5;transform:rotateX(18deg) rotateZ(-4deg);transform-style:preserve-3d;animation:float 7s ease-in-out infinite}
@keyframes float{50%{transform:rotateX(16deg) rotateZ(-3deg) translateY(-8px)}}
.leaf{position:absolute;top:0;bottom:0;width:50%;padding:22px 20px;overflow:hidden;
  background:linear-gradient(150deg,rgba(255,246,234,.20),rgba(227,180,95,.06) 55%,rgba(226,54,111,.10));
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,246,234,.32);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 40px 70px rgba(0,0,0,.5)}
.leaf.l{left:0;border-radius:18px 4px 4px 18px;transform:rotateY(14deg);transform-origin:right center}
.leaf.r{right:0;border-radius:4px 18px 18px 4px;transform:rotateY(-14deg);transform-origin:left center}
.leaf::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.16) 45%,transparent 55%);pointer-events:none}
.leaf .mt{font-family:var(--serif);color:var(--ink);font-size:clamp(13px,1.6vw,19px);text-align:center;letter-spacing:.04em}
.leaf .ms{font-family:var(--script);color:var(--gold);font-size:clamp(13px,1.5vw,18px);text-align:center;margin-bottom:8px}
.leaf .mc{font-size:8px;letter-spacing:.26em;color:var(--gold);text-align:center;margin:8px 0 4px;text-transform:uppercase}
.leaf .ml{display:flex;justify-content:space-between;gap:6px;font-family:var(--serif);font-size:clamp(9px,1vw,12px);color:var(--ink-soft);line-height:1.7}
.leaf .ml i{font-style:normal;font-family:var(--font);color:var(--gold)}
.book-tag{position:absolute;left:50%;bottom:-18px;transform:translateX(-50%) translateZ(40px);padding:10px 14px;border-radius:14px;border:1px solid rgba(246,239,228,.2);background:var(--veil);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);white-space:nowrap;display:flex;gap:12px;align-items:center}
.book-tag b{font:500 20px/1 var(--font);color:var(--ink)}
.book-tag span{font-size:12px;color:var(--ink-soft);line-height:1.35}

.figures{display:flex;flex-wrap:wrap;gap:22px clamp(28px,4vw,64px);margin:0 0 56px;padding:26px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.figures div{min-width:0}
.figures dt{font-size:clamp(34px,3.2vw,48px);line-height:1;letter-spacing:-.03em;color:var(--ink);white-space:nowrap}
.figures dt small{font-size:.46em;letter-spacing:0;margin-left:.12em;color:var(--ink-mute)}
.figures dd{margin:10px 0 0;font-size:12.5px;color:var(--ink-mute)}
dl{margin:0}

.steps{list-style:none;margin:0;padding:0}
.steps li{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 0;border-top:1px solid var(--hair)}
.steps li:first-child{border-top:0;padding-top:0}
.steps .n{font-family:var(--serif);font-size:22px;color:var(--ink-mute)}
.steps .done .n{color:var(--valid)}
.steps .done .t{color:var(--ink-mute)}
.steps .t{color:var(--ink)}
.rows>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:baseline;padding:12px 0;border-top:1px solid var(--hair)}
.rows>div:first-child{border-top:0;padding-top:0}
.log>div{grid-template-columns:96px minmax(0,1fr)}
.log span:first-child{font-size:12px;color:var(--ink-mute)}

/* STUDIO */
.toolbar{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;padding:16px 22px;margin-bottom:24px;border-radius:999px}
.toolbar .grp{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.studio{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,340px) minmax(0,.85fr);gap:24px;align-items:start}
.cat-h{font:500 10.5px/1 var(--font);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:12px;margin:22px 0 6px}
.cat-h::after{content:"";flex:1;height:1px;background:rgba(227,180,95,.25)}
.cat-h:first-of-type{margin-top:0}
.dish{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;padding:12px 10px;margin-inline:-10px;border-radius:12px;cursor:pointer;transition:background .3s}
.dish:hover{background:var(--fill)}
.dish .n{font-family:var(--serif);font-size:17px;color:var(--ink);min-width:0;overflow-wrap:anywhere}
.dish .p{font-size:14px;color:var(--ink);text-align:right}
.dish .meta{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 16px}
.dish .chg{grid-column:1/-1;font-family:var(--serif);font-style:italic;font-size:13px;color:var(--gold)}
.add{width:100%;margin-top:14px;padding:12px;border:1px dashed var(--hair-2);border-radius:14px;color:var(--ink-mute);font-size:13px;transition:border-color .3s,color .3s}
.add:hover{border-color:var(--hair-3);color:var(--ink)}
.seg{display:flex;width:max-content;margin:0 auto 18px;padding:4px;gap:4px;border-radius:999px;border:1px solid var(--hair-2)}
.seg button{padding:8px 16px;border-radius:999px;font-size:12px;letter-spacing:.04em;color:var(--ink-mute);transition:background .3s,color .3s}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--night);font-weight:500}
.phone{position:relative;width:100%;max-width:300px;margin:0 auto;aspect-ratio:9/18.5;border-radius:42px;padding:9px;
  background:linear-gradient(150deg,rgba(255,246,234,.30),rgba(255,246,234,.05) 40%,rgba(227,180,95,.12));box-shadow:0 40px 90px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.3)}
/* several cards in one phone: swipe between pages */
.phone.multi{display:flex;flex-direction:column}
.pager{flex:1;min-height:0;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;border-radius:34px;background:#14100c;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x pan-y;cursor:grab}
.pager::-webkit-scrollbar{display:none}
.ptabs{position:absolute;top:21px;left:50%;transform:translateX(-50%);z-index:2;display:flex;gap:2px;padding:3px;border-radius:999px;background:rgba(20,16,12,.9);border:1px solid rgba(216,171,82,.35)}
.ptabs button{font:500 9.5px/1 var(--font);letter-spacing:.16em;text-transform:uppercase;color:#b5a996;padding:6px 11px;border-radius:999px;transition:background .3s,color .3s}
.ptabs button[aria-selected="true"]{background:#d8ab52;color:#14100c}
.pdots{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:2;pointer-events:none;padding:5px 8px;border-radius:999px;background:rgba(20,16,12,.92)}
.pdots i{width:6px;height:6px;border-radius:3px;background:rgba(216,171,82,.35);transition:width .3s,background .3s}
.pdots i.on{background:#d8ab52;width:16px}
.cartes{margin-bottom:22px}
/* langue, pictogrammes, infos pratiques sur la carte publique */
.lang-hint{font-size:12px;color:var(--ink-mute);text-align:center;margin-top:4px}
.picrow{display:inline-flex;gap:2px;margin-left:6px;vertical-align:1px}
.picrow svg{width:13px;height:13px;fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tags{display:flex;flex-wrap:wrap;gap:8px}
/* relecture des traductions */
.trans{margin-top:24px}
.tr-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;gap:10px 22px;align-items:center;padding:16px 0;border-top:1px solid var(--hair)}
.tr-row:first-of-type{border-top:0}
.tr-row .fr b{display:block;font-family:var(--serif);font-weight:400;font-size:16px;color:var(--ink)}
.tr-row .fr span,.tr-row .to span{font-size:13px;color:var(--ink-mute)}
.tr-row .to b{display:block;font-weight:500;color:var(--ink);font-size:14px}
.tr-row .act{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.tr-row .act .btns2{display:flex;gap:8px}
.tr-row .to .input{font-size:14px;padding:4px 0 8px}
.st.orig{--c:var(--gold)} .st.valid{--c:var(--valid)} .st.fixedc{--c:var(--fixed)} .st.prop{--c:var(--proposed)}
.tr-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}
.tr-modal{width:min(980px,100%)}
.tr-modal .trans{margin-top:0}
.tr-row .to textarea.input{min-height:64px;font-size:14px}
.tr-row .crit{display:block;margin-top:6px;font-size:12.5px;color:var(--alert)}
.st.review{--c:var(--alert)}
.tr-gloss summary{cursor:pointer}
.tr-add{display:flex;gap:10px;align-items:flex-end;margin-top:10px}
.tr-add .input{flex:1;min-width:0}
.tr-term{display:inline-flex;align-items:center;gap:4px;margin:2px 6px 2px 0}
.tr-term button{border:0;background:none;color:var(--ink-mute);cursor:pointer;min-width:28px;min-height:28px}
@media (max-width:720px){.tr-row{grid-template-columns:minmax(0,1fr)}.tr-row .act{align-items:flex-start}}
/* inscription / connexion */
.auth{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:22px;max-width:1080px;margin:0 auto}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;color:var(--ink-soft);cursor:pointer}
.consent input{margin-top:3px;accent-color:#e3b45f;width:16px;height:16px;flex:none}
.consent a{color:var(--gold)}
.linkish{color:var(--gold);font-size:13px;text-decoration:underline;text-underline-offset:3px;align-self:flex-start}
.okmsg{font-size:13px;line-height:1.6;color:var(--ink-soft);padding:12px 14px;border-radius:14px;border:1px solid var(--hair-2);background:var(--fill)}
.cartes .chip.add-c{border-style:dashed;color:var(--ink-mute)}
.swipe-hint{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:var(--ink-mute);margin-top:10px}
.view-note{text-align:center;font-size:12.5px;color:var(--ink-mute);margin-top:16px}
.ambs{display:flex;flex-wrap:wrap;gap:8px}
.amb{display:inline-flex;align-items:center;gap:9px;padding:7px 13px 7px 7px;border-radius:999px;border:1px solid var(--hair);background:rgba(246,239,228,.03);color:var(--ink-soft);font:500 12px/1 var(--font);transition:border-color .3s,color .3s,background .3s}
.amb:hover{border-color:rgba(246,239,228,.45);color:var(--ink)}
.amb[aria-pressed="true"]{border-color:var(--gold);color:var(--ink);background:rgba(246,239,228,.07)}
.dot{width:18px;height:18px;border-radius:50%;flex:none;background:radial-gradient(circle at 34% 34%,var(--a2) 0 26%,var(--a1) 29% 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
.field{display:flex;flex-direction:column;gap:10px;min-width:0}
.field>label,.field>.fl{font:500 12px/1 var(--font);letter-spacing:.04em;color:var(--ink-soft)}
.input{width:100%;background:transparent;border:0;border-radius:0;border-bottom:1px solid rgba(246,239,228,.22);padding:6px 0 11px;color:var(--ink);font:300 15px/1.4 var(--font);outline:none;-webkit-appearance:none;appearance:none;transition:border-color .3s}
.input:focus{border-bottom-color:var(--gold)}
.input::placeholder{color:var(--ink-mute);opacity:.8}
select.input{background-image:linear-gradient(45deg,transparent 50%,var(--ink-mute) 50%),linear-gradient(135deg,var(--ink-mute) 50%,transparent 50%);background-position:calc(100% - 10px) 52%,calc(100% - 5px) 52%;background-size:5px 5px;background-repeat:no-repeat;padding-right:24px}
select.input option{background:#0b0908;color:var(--ink)}
.stack{display:flex;flex-direction:column;gap:24px}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{padding:9px 15px;border-radius:999px;border:1px solid rgba(246,239,228,.22);font:400 13px/1 var(--font);color:var(--ink-soft);transition:border-color .3s,color .3s,background .3s}
.chip[aria-pressed="true"]{border-color:var(--gold);color:var(--ink);background:rgba(246,239,228,.06)}
.chip[disabled]{cursor:default}
.sws{display:flex;gap:10px}
.sw{width:26px;height:26px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.sw[aria-pressed="true"]{outline:1px solid var(--ink);outline-offset:3px}
.small{font-size:12.5px;color:var(--ink-mute);line-height:1.6}

/* IMPRIMERIE */
.source{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;padding:18px 24px;margin-bottom:46px;border-radius:999px}
.source p{flex:1 1 300px;min-width:0;font-size:14px}
.source p b{font-weight:500;color:var(--ink)}
.sec-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px 20px;margin-bottom:22px}
.sec-h h2{font-family:var(--serif);font-size:clamp(26px,2.6vw,34px);letter-spacing:-.02em}
.prods{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:22px;margin-bottom:64px}
.prod{display:flex;flex-direction:column;gap:14px;padding:18px}
.mock{height:190px;border-radius:16px;background:radial-gradient(80% 90% at 50% 100%,rgba(216,171,82,.16),transparent 70%),rgba(0,0,0,.25);display:grid;place-items:center;overflow:hidden}
.paper{background:#14100c;border:1px solid rgba(216,171,82,.35);box-shadow:0 18px 30px rgba(0,0,0,.5);display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 8px;color:#d8ab52;font-family:var(--serif);text-align:center}
.paper .pt{font-size:11px;letter-spacing:.06em}
.paper .ps{font-family:var(--script);font-size:11px;margin-top:-4px}
.paper .pl{width:78%;display:flex;justify-content:space-between;font-size:5.5px;color:#cdbfa8;font-family:var(--font)}
.paper .pr{width:60%;height:1px;background:rgba(216,171,82,.45);margin:2px 0}
.tent{width:120px;height:120px;position:relative;transform:perspective(500px) rotateX(24deg)}
.tent .paper{position:absolute;inset:0;justify-content:center}
.prod h3{font-size:16px;font-weight:500}
.prod p{font-size:13.5px;color:var(--ink-mute);line-height:1.55}
.prod .row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:auto}
.legal{padding:8px 28px}
.lg{display:grid;grid-template-columns:44px minmax(0,1.3fr) minmax(0,1fr) auto;gap:8px 18px;align-items:center;padding:18px 0;border-top:1px solid var(--hair)}
.lg:first-child{border-top:0}
.lg-i{width:44px;height:44px;border-radius:12px;border:1px solid rgba(246,239,228,.3);display:grid;place-items:center}
.lg-i svg{width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.lg h3{font-size:15px;font-weight:500}
.lg .ref{font-size:12px;color:var(--ink-mute)}
.lg .act{display:flex;align-items:center;gap:16px;justify-content:flex-end}
.foot-note{margin-top:22px;max-width:90ch;font-size:13px;line-height:1.7;color:var(--ink-mute)}
.foot-note b{color:var(--ink-soft);font-weight:500}

/* PARAMÈTRES / COMPTE */
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:28px 32px}
.wide{grid-column:1/-1}
.kv>div{display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr);gap:16px;padding:14px 0;border-top:1px solid var(--hair);font-size:14px}
.kv>div:first-child{border-top:0;padding-top:0}
.kv dt{color:var(--ink-mute)} .kv dd{margin:0;color:var(--ink);overflow-wrap:anywhere}
.btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}

/* modal & toast */
.scrim{position:fixed;inset:0;z-index:60;background:rgba(5,4,4,.7);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:16px}
.modal{width:min(580px,100%);max-height:90vh;overflow:auto;background:linear-gradient(160deg,rgba(40,33,26,.96),rgba(12,10,8,.98))}
.modal h2{font-family:var(--serif);font-size:30px;letter-spacing:-.02em;margin-bottom:6px}
.diff>div{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;padding:10px 0;border-top:1px solid var(--hair);font-size:14px}
.diff b{font-weight:500;color:var(--ink)}
.checks>div{display:flex;flex-direction:column;gap:4px;padding:10px 0;border-top:1px solid var(--hair);font-size:14px}
.confirm{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--ink);cursor:pointer}
.confirm input{margin-top:4px;accent-color:#e3b45f;width:16px;height:16px;flex:none}
.m-act{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px}
.toast{position:fixed;left:50%;bottom:calc(30px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:70;padding:12px 20px;border-radius:14px;border:1px solid rgba(246,239,228,.25);background:var(--veil);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--ink);font-size:13.5px;white-space:nowrap}

/* statistiques */
.stats{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:22px;margin-bottom:56px}
.bars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;align-items:end;height:240px;padding-top:30px;border-bottom:1px solid var(--hair);position:relative}
.bar{position:relative;height:100%;display:flex;align-items:flex-end;cursor:default}
.bar i{display:block;width:100%;max-width:34px;margin:0 auto;border-radius:4px 4px 0 0;background:linear-gradient(180deg,rgba(227,180,95,.95),rgba(227,180,95,.35))}
.bar:hover i,.bar:focus-visible i{background:var(--gold)}
.bar .tip{position:absolute;left:50%;bottom:calc(var(--h) + 8px);transform:translateX(-50%);padding:6px 10px;border-radius:10px;background:var(--veil);border:1px solid var(--hair-2);font-size:12px;color:var(--ink);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;z-index:2}
.bar.last .tip{left:auto;right:0;transform:none}
.bar:hover .tip,.bar:focus-visible .tip,.bar.last .tip{opacity:1}
.bars:hover .bar.last:not(:hover) .tip{opacity:0}
.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-top:8px;font-size:11px;color:var(--ink-mute);text-align:center}
.lang{display:grid;grid-template-columns:86px minmax(0,1fr) 44px;gap:12px;align-items:center;padding:9px 0;font-size:13.5px}
.lang .track{height:6px;border-radius:999px;background:var(--fill-2);overflow:hidden}
.lang .track i{display:block;height:100%;border-radius:999px;background:var(--gold)}
.lang .track i.off{background:var(--proposed)}
.lang b{font-weight:500;color:var(--ink);text-align:right}
.tip-line{margin-top:16px;padding-top:14px;border-top:1px solid var(--hair);font-size:13.5px}
.tip-line b{color:var(--gold);font-weight:500}

/* épuisé aujourd'hui */
.sold{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink-mute);cursor:pointer}
.sw2{width:32px;height:18px;border-radius:999px;background:var(--hair-2);position:relative;flex:none;transition:background .3s}
.sw2::after{content:"";position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:var(--ink);transition:left .3s var(--ease)}
.sold[aria-checked="true"]{color:var(--alert)}
.sold[aria-checked="true"] .sw2{background:rgba(239,138,119,.55)}
.sold[aria-checked="true"] .sw2::after{left:17px}
.dish.out .n{color:var(--ink-mute);text-decoration:line-through;text-decoration-color:rgba(239,138,119,.6)}
.ask{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--fill-2);font-size:13px;color:var(--ink)}

/* carte en ligne */
.live-sheet{width:min(420px,100%);display:flex;flex-direction:column;gap:18px;align-items:center;max-height:100%;overflow:auto}
.link-row{display:flex;gap:10px;align-items:center;width:100%;padding:8px 8px 8px 16px;border-radius:999px;border:1px solid var(--hair-2);background:var(--veil)}
.link-row code{flex:1;min-width:0;font:400 12.5px/1.3 var(--font);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:all}

/* assistant */
.fab{position:fixed;right:clamp(16px,3vw,36px);bottom:calc(26px + env(safe-area-inset-bottom,0px));z-index:45;display:inline-flex;align-items:center;gap:10px;padding:12px 18px 12px 14px;border-radius:999px;border:1px solid rgba(227,180,95,.55);background:rgba(20,16,12,.88);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--ink);font:500 13px/1 var(--font);box-shadow:0 18px 40px rgba(0,0,0,.5)}
.fab::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold)}
.assist{position:fixed;right:clamp(16px,3vw,36px);bottom:calc(86px + env(safe-area-inset-bottom,0px));z-index:46;width:min(380px,calc(100vw - 32px));max-height:min(560px,70vh);display:flex;flex-direction:column;gap:14px;padding:22px;overflow:auto;background:linear-gradient(160deg,rgba(40,33,26,.97),rgba(12,10,8,.98))}
.assist .who{display:flex;justify-content:space-between;align-items:center;gap:10px}
.assist .who b{font-family:var(--serif);font-size:20px;font-weight:400;color:var(--ink)}
.msg{max-width:88%;padding:10px 14px;border-radius:16px;font-size:13.5px;line-height:1.55}
.msg.me{align-self:flex-end;background:var(--fill-2);color:var(--ink);border-bottom-right-radius:4px}
.msg.ai{align-self:flex-start;border:1px solid var(--hair-2);border-bottom-left-radius:4px}
.assist .ctl{display:flex;flex-wrap:wrap;gap:8px}
.assist .human{border-top:1px solid var(--hair);padding-top:12px;font-size:12.5px;color:var(--ink-mute);display:flex;flex-direction:column;gap:10px;align-items:flex-start}

/* contact */
.tickets>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;padding:14px 0;border-top:1px solid var(--hair)}
.tickets>div:first-child{border-top:0;padding-top:0}
.tickets b{font-weight:500;color:var(--ink)}
.tickets small{grid-column:1/-1;font-size:12px;color:var(--ink-mute)}
textarea.input{min-height:110px;resize:vertical}
.mail{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:6px}
.mail code{font:400 17px/1.3 var(--font);color:var(--ink);padding-bottom:8px;border-bottom:1px solid var(--hair-3);user-select:all;overflow-wrap:anywhere}

/* équipe */
.team>div{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--hair)}
.team>div:first-child{border-top:0;padding-top:0}
.av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--hair-2);font-family:var(--serif);color:var(--gold)}
.team small{display:block;font-size:12px;color:var(--ink-mute)}

/* première connexion */
.onb{max-width:980px;margin:0 auto}
.stepper{display:flex;gap:10px;margin:0 0 30px;flex-wrap:wrap}
.stepper span{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:999px;border:1px solid var(--hair);font-size:12.5px;color:var(--ink-mute)}
.stepper span b{font-family:var(--serif);font-weight:400;font-size:16px}
.stepper span[aria-current="step"]{border-color:var(--gold);color:var(--ink)}
.stepper span.done{color:var(--valid);border-color:rgba(86,214,198,.35)}
.onb-body{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:30px;align-items:start}
.onb-act{display:flex;justify-content:space-between;gap:12px;margin-top:26px;flex-wrap:wrap}
.note .demo-btn{margin-left:auto}

/* pied de page */
.foot{position:relative;z-index:1;max-width:1480px;margin:0 auto;padding-inline:clamp(16px,4vw,60px);padding-block:28px 40px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px 30px;border-top:1px solid rgba(246,239,228,.065);font-size:12px;color:var(--ink-mute)}
.foot nav{display:flex;flex-wrap:wrap;gap:10px 24px}
.foot a{color:var(--ink-mute);text-decoration:none}
.foot a:hover{color:var(--ink)}

@media (max-width:1180px){.studio{grid-template-columns:minmax(0,1fr) minmax(280px,320px)}.studio .style{grid-column:1/-1}nav.tabs{gap:24px}.top-right .ghost{display:none}}
@media (max-width:900px){
  .top{height:60px;-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(5,4,4,.94)}
  nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:40;gap:0;justify-content:space-around;padding:8px 6px calc(8px + env(safe-area-inset-bottom,0px));background:rgba(8,6,5,.86);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--hair)}
  .tab{flex-direction:column;gap:4px;font-size:10px;letter-spacing:.02em;flex:1;padding:4px 2px}
  .tab svg{display:block}
  .tab::after{left:30%;width:0}
  .tab[aria-selected="true"]::after{width:40%}
  .tab[aria-selected="true"] svg{stroke:var(--gold)}
  main{padding-block:24px 120px}
  .hero{grid-template-columns:minmax(0,1fr)}
  .book-wrap{min-height:230px;order:-1}
  .studio{grid-template-columns:minmax(0,1fr)}
  .studio .preview{order:-1}
  .toolbar,.source{border-radius:24px}
  .lg{grid-template-columns:44px minmax(0,1fr)}
  .lg .ref,.lg .act{grid-column:2}
  .lg .act{justify-content:space-between}
  .toast{bottom:calc(90px + env(safe-area-inset-bottom,0px))}
  .live span{display:none}
  .stats,.onb-body{grid-template-columns:minmax(0,1fr)}
  .fab{bottom:calc(84px + env(safe-area-inset-bottom,0px));padding:12px 14px}
  .fab span{display:none}
  .fab::after{content:"?";font:600 15px/1 var(--font);color:var(--ink)}
  .assist{bottom:calc(140px + env(safe-area-inset-bottom,0px))}
  .foot{padding-block:24px 150px}
  nav.tabs .tab{font-size:9.5px}
  .note{flex-wrap:wrap}
  .note .demo-btn{margin-left:0}
  .tab .dk{display:none}
  .tr-row{grid-template-columns:minmax(0,1fr)}
  .tr-row .act{align-items:flex-start}
  .tab .mb{display:inline}
  .kv>div{grid-template-columns:minmax(0,1fr);gap:4px}
  .onb-body .phone{max-width:240px}
}
@media (max-width:420px){.brand i{display:none}.glass{padding:22px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- application additions (phase 4a) ---------- */
.banner{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:14px 20px;margin-bottom:28px;border-radius:18px;border:1px solid rgba(242,179,61,.4);background:rgba(242,179,61,.07);font-size:14px;color:var(--ink)}
.banner p{flex:1 1 280px;min-width:0}
.err{font-size:13px;color:var(--alert);min-height:0}
.err:empty{display:none}
.okmsg:empty{display:none}
.soon{display:flex;flex-direction:column;gap:14px;align-items:flex-start;max-width:640px}
.soon h2{font-family:var(--serif);font-size:26px}
.mt-s{margin-top:10px}.mt-m{margin-top:18px}.mt-l{margin-top:28px}.mb-m{margin-bottom:18px}
.center{text-align:center}
.auth-top{position:relative;z-index:1;display:flex;justify-content:center;padding-block:28px 8px}
.auth-wrap{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding-inline:clamp(16px,4vw,60px);padding-block:20px 80px}
.single{max-width:520px;margin:0 auto}
.loading{position:relative;z-index:1;display:grid;place-items:center;min-height:60vh;color:var(--ink-mute);font-size:13px;letter-spacing:.2em;text-transform:uppercase}
.empty{font-size:13.5px;color:var(--ink-mute)}
.legal-modal{width:min(520px,100%)}
.btn-link{color:inherit}
a.ghost{text-decoration:none}
.inline-form{display:grid;gap:22px}
.title.tight{margin-bottom:0}
.small-gap{gap:12px}
.mail-addr{font:400 17px/1.3 var(--font);color:var(--ink);padding-bottom:8px;border-bottom:1px solid var(--hair-3);user-select:all;overflow-wrap:anywhere}
.sr-svg{position:absolute}
.serif-h{font-family:var(--serif);font-size:28px}
.foot .linkish{color:var(--ink-mute);text-decoration:none;font-size:12px}
.foot .linkish:hover{color:var(--ink)}
.consent .linkish{font-size:inherit;display:inline;padding:0}
/* keep the floating Assistant button clear of the footer links */
.foot{padding-block-end:96px}

/* ---------- Studio (phase 4b) ---------- */
.pg{flex:0 0 100%;height:100%;overflow-y:auto;scroll-snap-align:start;scroll-snap-stop:always;scrollbar-width:none}
.pg::-webkit-scrollbar{display:none}
.pg>.menu{zoom:.8;min-height:125%}
.phone.multi .pager{border-radius:34px;background:#0a0908}
.phone.multi .ptabs:empty{display:none}
.multi-pages .pg>.menu .m-in{padding-top:44px}
.row-acts{display:inline-flex;flex-wrap:wrap;gap:6px}
.icon-btn{min-width:30px;height:30px;padding:0 8px;border-radius:999px;border:1px solid rgba(246,239,228,.18);color:var(--ink-soft);font-size:12px}
.icon-btn:hover{border-color:rgba(246,239,228,.6);color:var(--ink)}
.sec-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:22px 0 4px}
.sec-row:first-child{margin-top:0}
.sec-row .cat-h{flex:1;margin:0}
.dish .act{display:flex;gap:6px;align-items:center}
.empty-sec{font-size:13px;color:var(--ink-mute);padding:8px 0}
.resto-switch{width:auto;max-width:220px;padding:6px 26px 6px 10px;font-size:12px;border:1px solid var(--hair-2);border-radius:999px}
.chips .chip[disabled]{opacity:.45}
.view-note{text-align:center}
.warnline{color:var(--fixed)}
input[type=color].input{height:40px;padding:2px;cursor:pointer}
.studio .dish{cursor:default}
.studio .dish .n{cursor:pointer}
.team .ink{color:var(--ink)}
.picrow{display:inline-flex;gap:2px;margin-left:6px;vertical-align:1px}
.picrow svg{width:13px;height:13px;fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* Touch screens: every Studio control gets a 44 px target (control of phase 4b on phones). */
@media (pointer:coarse), (max-width:900px){
  .studio .icon-btn,.studio .chip,.studio .ghost,.toolbar .ghost{min-height:44px;min-width:44px}
  .studio .sold{min-height:44px;padding-right:6px}
}
/* Scrolling dialogs: a plain border instead of the decorative frame, which would scroll with the content. */
.modal.glass::before{display:none}
.modal.glass{border:1px solid rgba(255,246,232,.3)}

/* ---------- Bibliothèque (phase 5 ; proposition « Premium 3D Glass » du 2026-10-13, à valider par le propriétaire) ----------
   Deep black, greys and white (owner, 2026-10-13), tinted glass cards, illustrations in front, Bodoni titles. Two complementary
   views on the same data: « Exploration » (large pictures) and « Gestion » (a dense table). Every status is written in words
   with its own sign, never by colour alone. Scoped to the Library and its two dialogs; the rest of the dashboard is unchanged. */
.lib-premium .stage{background:
  radial-gradient(46vw 34vw at 86% 4%,rgba(255,255,255,.08),transparent 70%),
  radial-gradient(52vw 40vw at 8% 30%,rgba(88,88,92,.42),transparent 72%),
  radial-gradient(60vw 46vw at 70% 100%,rgba(40,40,43,.55),transparent 70%),
  repeating-radial-gradient(circle at 86% 4%,transparent 0 119px,rgba(255,255,255,.02) 120px 121px),
  #070708}
.lib-premium #p-bibliotheque,.lib-premium #send-modal,.lib-premium #revert-modal{
  --lib-deep:#0a0a0b; --lib-coal:#1b1b1d; --lib-ash:#3b3b3e; --lib-white:#f6f6f4; --lib-grey:#d4d4d6; --lib-accent:#ffffff; --lib-accent-soft:rgba(255,255,255,.5);
  --lib-glass:rgba(255,255,255,.06); --lib-edge:rgba(255,255,255,.14); --lib-edge-2:rgba(255,255,255,.26);
  --ink:var(--lib-white); --ink-soft:#d8d8da; --ink-mute:#a9a9ad; --gold:#e6e6e8; --valid:var(--lib-grey); --fixed:var(--lib-accent); --alert:#f2f2f2; --proposed:#a3a3a7;
  --hair:var(--lib-edge); --hair-2:var(--lib-edge-2); --fill:rgba(255,255,255,.04); --fill-2:rgba(255,255,255,.07)}
.lib-premium #p-bibliotheque .glass{background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(38,38,40,.28) 55%,rgba(12,12,13,.35))}
.lib-premium #p-bibliotheque .glass::before{background:linear-gradient(135deg,rgba(255,255,255,.6),rgba(255,255,255,.12) 30%,rgba(255,255,255,.04) 62%,rgba(255,255,255,.35))}
.lib-premium #send-modal .modal,.lib-premium #revert-modal .modal{background:linear-gradient(160deg,rgba(34,34,36,.97),rgba(10,10,11,.98));border-color:rgba(255,255,255,.4)}
.lib-premium #p-bibliotheque .pill-btn.gold,.lib-premium #send-modal .pill-btn.gold{background:rgba(255,255,255,.14)}
.lib-premium #send-modal .confirm input,.lib-premium #p-bibliotheque .confirm input{accent-color:#ffffff}
.lib-premium #send-modal .warnbox,.lib-premium #p-bibliotheque .warnbox{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.07)}
/* the recipe sheet's provenance pills follow the same neutral palette; their words and dots still tell them apart */
.lib-premium #p-bibliotheque .pv.user{border-color:rgba(255,255,255,.6)}
.lib-premium #p-bibliotheque .pv.ok{border-color:rgba(255,255,255,.4)}
.lib-premium #p-bibliotheque .pv.warn{border-color:rgba(255,255,255,.75);border-style:dashed}

.plate{width:54px;height:54px;fill:none;stroke:var(--gold);stroke-width:1.3;stroke-linecap:round;opacity:.8}
.lib-bar{display:grid;gap:18px}
.lib-top{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;justify-content:space-between}
.lib-search{flex:1 1 320px;display:flex;gap:12px;align-items:center;min-width:0;padding:2px 18px;border-radius:999px;border:1px solid var(--hair-2);background:rgba(0,0,0,.28)}
.lib-search:focus-within{border-color:var(--ink)}
.lib-search svg{width:18px;height:18px;flex:none;fill:none;stroke:var(--ink-mute);stroke-width:1.6;stroke-linecap:round}
.lib-search .input{flex:1;min-width:0;border:0;padding:11px 0}
.lib-search .small{white-space:nowrap;font-variant-numeric:tabular-nums}
.lib-view{margin:0}
.lib-filters{display:grid;gap:10px}
.lib-f{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;align-items:center}
.lib-f .chips{gap:8px}
.lib-f .chip{padding:7px 13px;font-size:12.5px}
.lib-note{margin:16px 0 4px;max-width:90ch}

/* Exploration */
.lib-grid{margin-top:22px}
.lib-grid.explore{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,272px),1fr));gap:22px}
.rx{position:relative;display:flex;flex-direction:column;min-width:0;border-radius:22px;overflow:hidden;
  background:linear-gradient(168deg,rgba(255,255,255,.09),rgba(38,38,40,.42) 46%,rgba(12,12,13,.72));
  border:1px solid var(--hair);box-shadow:0 28px 64px rgba(0,0,0,.42),0 2px 0 rgba(255,255,255,.05),inset 0 1px 0 rgba(255,255,255,.14);
  transition:transform .45s var(--ease),border-color .3s,box-shadow .45s var(--ease)}
.rx:hover,.rx:focus-within{transform:translateY(-3px);border-color:var(--lib-accent-soft,rgba(255,255,255,.55));box-shadow:0 38px 84px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.12),inset 0 1px 0 rgba(255,255,255,.2)}
.rx-ph{position:relative;aspect-ratio:4/3;display:grid;place-items:center;overflow:hidden;background:radial-gradient(80% 80% at 50% 38%,var(--lib-ash,#3b3b3e),var(--lib-deep,#0a0a0b))}
.rx-ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease)}
.rx:hover .rx-ph img{transform:scale(1.035)}
.rx-ph::after{content:"";position:absolute;left:0;right:0;bottom:0;height:40%;background:linear-gradient(transparent,rgba(8,8,9,.55));pointer-events:none}
.rx-ph.none{align-content:center;gap:8px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-mute);border-bottom:1px dashed var(--hair-2)}
.rx-ph.none::after{display:none}
.lib-premium .plate{stroke:var(--lib-accent,#ffffff)}
.rx-img{position:absolute;top:12px;left:12px;z-index:1;padding:4px 10px;border-radius:999px;background:rgba(12,12,13,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font:500 9.5px/1.4 var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--lib-white,#f6f6f4);border:1px solid rgba(255,255,255,.24)}
.rx-ph .ill-lab{position:absolute;left:0;right:0;bottom:0;z-index:1;background:rgba(8,8,9,.72);color:var(--lib-white,#f6f6f4);padding:4px 10px}
.rx-tx{display:flex;flex-direction:column;gap:9px;padding:18px 20px 18px;flex:1;min-width:0}
.rx-k{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--lib-accent,var(--ink-mute))}
.rx h3{font-family:var(--serif);font-weight:400;font-size:23px;line-height:1.15}
.rx-open{text-align:left;color:var(--ink);padding:0}
.rx-open::after{content:"";position:absolute;inset:0;border-radius:inherit}
.rx-open:focus-visible{outline:none}
.rx-open:focus-visible::after{outline:2px solid var(--lib-accent,#fff);outline-offset:-3px;box-shadow:0 0 0 5px rgba(255,255,255,.22)}
.rx-sum{font-size:13.5px;color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rx-st{display:flex;flex-wrap:wrap;gap:6px}
.rx-act{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:12px;border-top:1px solid var(--hair)}
.rx-act .ghost{position:relative;z-index:1}
.rx-go{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute)}
@media (min-width:1100px){
  .rx.feature{grid-column:span 2;flex-direction:row}
  .rx.feature .rx-ph{aspect-ratio:16/11;flex:1.15 1 0;min-height:0;align-self:stretch}
  .rx.feature .rx-tx{flex:1 1 0;padding:30px 30px 26px;justify-content:center;gap:12px}
  .rx.feature .rx-act{margin-top:14px}
  .rx.feature h3{font-size:34px}
  .rx.feature .rx-sum{-webkit-line-clamp:4;font-size:14.5px}
}

/* Status signs: words first, a glyph each, contrast without colour */
.lb{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font:500 10.5px/1.3 var(--font);letter-spacing:.05em;color:var(--ink);border:1px solid var(--hair-2)}
.lb i{font-style:normal;font-size:10px;letter-spacing:0}
.lb-kind{color:var(--ink-mute)}
.lb-ok{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.62)}
.lb-unv{border-style:dashed;color:var(--ink-soft)}
.lb-upd{background:var(--lib-white,#f6f6f4);color:var(--lib-deep,#0a0a0b);border-color:var(--lib-white,#f6f6f4)}

/* Gestion */
.rl-wrap{overflow-x:auto;border-radius:20px;border:1px solid var(--hair);background:linear-gradient(170deg,rgba(255,255,255,.05),rgba(12,12,13,.5))}
.rl{width:100%;border-collapse:collapse;font-size:13.5px}
.rl thead th{font:500 10px/1.4 var(--font);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);text-align:left;padding:14px;border-bottom:1px solid var(--hair-2);background:rgba(12,12,13,.92)}
.rl td,.rl tbody th{padding:10px 14px;border-bottom:1px solid var(--hair);vertical-align:middle;text-align:left;font-weight:400}
.rl tbody tr:last-child td,.rl tbody tr:last-child th{border-bottom:0}
.rl tbody tr:hover{background:rgba(255,255,255,.06)}
/* the column titles stay in view while a long list scrolls (the page scrolls, so the frame clips instead of scrolling) */
@media (min-width:1000px){
  .rl-wrap{overflow:clip}
  .rl thead th{position:sticky;top:calc(70px + env(safe-area-inset-top,0px));z-index:2;background:#111112;box-shadow:0 1px 0 var(--hair-2),0 10px 18px rgba(0,0,0,.35)}
  .rl thead th:first-child{border-top-left-radius:20px}
  .rl thead th:last-child{border-top-right-radius:20px}
}
.rl-ph{width:82px}
.rl-ph img{width:64px;height:48px;object-fit:cover;border-radius:9px;display:block}
.rl-ph.none .plate{width:34px;height:34px;margin:7px 15px;display:block}
.rl-open{color:var(--ink);font-family:var(--serif);font-size:17px;text-align:left;padding:0}
.rl-open:hover{text-decoration:underline;text-underline-offset:3px}
.rl tbody th small{display:block;font-size:11px;color:var(--ink-mute);letter-spacing:.03em;margin-top:2px}
.rl-rev,.rl-img{white-space:nowrap;color:var(--ink-soft);font-size:12.5px;font-variant-numeric:tabular-nums}
.rl-st{display:flex;flex-wrap:wrap;gap:6px}
.rl-act{text-align:right;white-space:nowrap}
@media (max-width:760px){
  .rx-ph.none{aspect-ratio:auto;height:96px;grid-auto-flow:column;gap:12px}
  .rx-ph.none .plate{width:36px;height:36px}
  .rx-ph.none .rx-img{display:none}
  .lib-search{position:relative;margin-bottom:16px}
  .lib-search .small{position:absolute;right:18px;top:calc(100% + 6px);font-size:11.5px}
  .lib-f{grid-template-columns:minmax(0,1fr);gap:6px}
  .lib-f .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
  .lib-f .chips::-webkit-scrollbar{display:none}
  .lib-f .chip{flex:none}
  .rl-wrap{border:0;background:none;overflow:visible;border-radius:0}
  .rl thead{display:none}
  .rl,.rl tbody{display:block}
  .rl tr{display:grid;grid-template-columns:64px minmax(0,1fr);gap:6px 12px;padding:14px;border:1px solid var(--hair);border-radius:16px;margin-bottom:10px;background:rgba(255,255,255,.03)}
  .rl td,.rl tbody th{padding:0;border:0}
  .rl-ph{grid-row:span 5;width:auto}
  .rl-ph img{width:64px;height:64px}
  .rl-ph.none .plate{margin:15px}
  .rl tr>*:not(.rl-ph){grid-column:2}
  .rl-act{text-align:left}
}
@media (pointer:coarse), (max-width:900px){
  .rx .ghost,.rl .ghost,.lib-view button,.lib-f .chip{min-height:44px}
  .rl-open{min-height:44px}
}
@media (prefers-reduced-motion:reduce){.rx,.rx-ph img{transition:none!important}.rx:hover,.rx:focus-within{transform:none}.rx:hover .rx-ph img{transform:none}}
.fiche-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:18px}
.fiche{display:grid;gap:22px}
.fiche-h .serif-h{font-size:clamp(28px,4vw,40px);line-height:1.15}
.fiche-h .lead-s{margin-top:8px;font-size:15px;color:var(--ink-soft)}
.fiche-st{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-top:12px}
.fiche-por{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}
.stepper-n{display:inline-flex;gap:8px;align-items:center}
.stepper-n .input{width:64px;text-align:center}
.fiche-ph .lph{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:10px}
.fiche-ph figure{margin:0;display:grid;gap:6px;width:150px}
.fiche-ph figure img{width:150px;height:112px;object-fit:cover;border-radius:12px;border:1px solid var(--hair)}
.fiche-ph figure.none{place-items:center;height:112px;border:1px dashed var(--hair-2);border-radius:12px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);align-content:center}
.add-ph{cursor:pointer}
.fiche-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:34px}
.grp{font-family:var(--serif);font-size:17px;margin:14px 0 4px}
.ings,.steps-r,.times,.eq,.chk{margin:0;padding:0;list-style:none}
.ings li{display:grid;grid-template-columns:10px minmax(92px,auto) minmax(0,1fr) auto;gap:10px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--hair);font-size:14px}
.ings .q{color:var(--ink);font-weight:500;white-space:nowrap}
.ings .n small{color:var(--ink-mute)}
.ings .qty{width:88px;padding:6px 8px}
.steps-r{counter-reset:s}
.steps-r li{display:grid;grid-template-columns:10px 26px minmax(0,1fr);gap:8px;padding:8px 0;border-bottom:1px solid var(--hair);font-size:14px;counter-increment:s}
.steps-r li::after{content:counter(s);grid-column:2;grid-row:1;font-family:var(--serif);color:var(--gold)}
.steps-r li span{grid-column:3}
.times li,.eq li,.chk li{padding:4px 0;font-size:14px}
.times b{font-weight:500;color:var(--ink)}
.chk li::before,.eq li::before{content:"· ";color:var(--gold)}
.pvd{display:inline-block;width:8px;height:8px;border-radius:50%;border:1px solid var(--proposed);vertical-align:1px}
.pvd.user{background:var(--gold);border-color:var(--gold)}
.pvd.ok{background:var(--valid);border-color:var(--valid)}
.pv{display:inline-block;font:500 9px/1.4 var(--font);letter-spacing:.14em;text-transform:uppercase;padding:2px 8px;border-radius:99px;border:1px solid var(--hair-2);color:var(--ink-mute);vertical-align:middle;white-space:nowrap}
.pv.user{border-color:rgba(227,180,95,.6);color:var(--gold)}
.pv.ok{border-color:rgba(86,214,198,.5);color:var(--valid)}
.pv.warn{border-color:rgba(242,179,61,.6);color:var(--fixed)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.chip.static{cursor:default}
.fiche-f{display:grid;gap:8px;border-top:1px solid var(--hair);padding-top:16px}
.legend{font-size:12px;color:var(--ink-mute)}
.revert-box{display:grid;gap:12px;margin-top:22px}
.print-only{display:none}
.print-notice{display:none}
.editor .rg{border:1px solid var(--hair);border-radius:16px;padding:14px;margin:0 0 12px;display:grid;gap:8px}
.rg-h{display:flex;gap:10px;align-items:center}
.rg-h .input{flex:1}
.ri{display:grid;grid-template-columns:minmax(0,2fr) 70px 60px minmax(90px,1fr) minmax(110px,1fr) minmax(0,1.4fr) 76px 34px;gap:8px;align-items:center}
.ri .input:disabled{opacity:.35}
.ri .input,.rt .input{padding:8px 10px;font-size:13px}
.rs{display:grid;grid-template-columns:26px minmax(0,1fr) 34px;gap:8px;align-items:start;margin-bottom:8px}
.rs .n{font-family:var(--serif);color:var(--gold);padding-top:8px}
.rs textarea{min-height:64px}
.rt{display:grid;grid-template-columns:minmax(120px,1fr) 80px auto minmax(0,2fr) 34px;gap:8px;align-items:center;margin-bottom:8px}
.send-photos{display:flex;flex-wrap:wrap;gap:10px}
.sp{position:relative;cursor:pointer}
.sp input{position:absolute;opacity:0}
.sp img,.sp .none{width:96px;height:72px;object-fit:cover;border-radius:10px;border:2px solid transparent;display:grid;place-items:center;font-size:11px;color:var(--ink-mute);background:var(--fill-2)}
.sp .none .plate{width:28px;height:28px}
.sp input:checked + img,.sp input:checked + .none{border-color:var(--gold)}
.sp input:focus-visible + img,.sp input:focus-visible + .none{outline:1px solid var(--gold);outline-offset:3px}
.warnbox{padding:14px 16px;border-radius:14px;border:1px solid rgba(242,179,61,.45);background:rgba(242,179,61,.07);display:grid;gap:6px;color:var(--ink)}
.photo-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.photo-row .thumb{width:96px;height:72px;border-radius:10px;overflow:hidden;border:1px solid var(--hair);display:grid;place-items:center;background:var(--fill-2)}
.photo-row .thumb img{width:100%;height:100%;object-fit:cover}
/* Catalogue illustration (generated picture): always shown with its label, never on the restaurateur's own photo. */
.ill-lab{display:block;font-size:10px;line-height:1.25;letter-spacing:.02em;text-transform:none;color:var(--ink-mute)}
.rc-ph{position:relative}
.rc-ph .ill-lab,.photo-row .thumb .ill-lab{position:absolute;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);color:#fff;padding:3px 8px}
.photo-row .thumb{position:relative}
.photo-row .thumb .ill-lab{font-size:8px;padding:2px 4px}
.sp.ill{display:grid;gap:4px;width:96px}
.fiche-ph figure.ill img{border-style:dashed}
.file-btn{cursor:pointer}
/* On phones, Contact lives in « Mon compte » (with a clear button); the footer link stays. */
.mb-only{display:none}
@media (max-width:900px){
  #t-contact{display:none}
  .mb-only{display:block}
  .fiche-cols{grid-template-columns:minmax(0,1fr)}
  .ri{grid-template-columns:minmax(0,1fr) 70px 60px}
  .ri [data-f="note"]{grid-column:1/3}
  .rt{grid-template-columns:minmax(0,1fr) 70px auto 34px}
  .rt [data-f="label"]{grid-column:1/-2}
  .ings li{grid-template-columns:10px minmax(80px,auto) minmax(0,1fr)}
  .ings li .st{grid-column:3}
  .fiche-ph figure,.fiche-ph figure img{width:120px}
}
@media (pointer:coarse),(max-width:900px){
  .rc,.lib-bar .chip,#lib-new,.fiche-bar .ghost,.stepper-n .icon-btn,.fiche-ph .icon-btn,.add-ph,.file-btn,#it-photo-del{min-height:44px;min-width:44px}
}
/* Imprimerie, « QR code de table » (phase 7): the real code on white, its address in full, the state in words. */
.qr-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.qr-grid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:28px;align-items:start}
.qr-fig{margin:0;padding:14px;background:#fff;border-radius:14px;width:max-content;max-width:100%}
.qr-fig img{display:block;width:260px;max-width:100%;height:auto}
.qr-url{margin:4px 0 0;font:500 15px/1.5 var(--font);color:var(--ink);overflow-wrap:anywhere;user-select:all}
.qr-side a.pill-btn,.qr-side a.ghost{text-decoration:none}
.qr-tips{margin-top:22px;padding-top:16px;border-top:1px solid var(--hair)}
.qr-tips ul{margin:8px 0 0;padding-left:18px;display:grid;gap:6px;font-size:14px;max-width:80ch}
@media (max-width:760px){.qr-grid{grid-template-columns:minmax(0,1fr)}.qr-fig{justify-self:center}.qr-fig img{width:min(240px,60vw)}}
/* Fiche technique: A4 printed by the browser, nothing but the sheet. Never a HACCP or sanitary guarantee. */
@media print{
  @page{size:A4;margin:14mm 13mm}
  html,body{background:#fff!important;color:#111!important}
  .stage,#auth-view,#loading,.top,nav.tabs,.foot,.fab,.assist,.toast,.scrim,#verify-banner,main>section:not(#p-bibliotheque),#lib-list,.no-print{display:none!important}
  main{padding:0!important;margin:0!important;max-width:none!important}
  .fiche{border:0!important;background:#fff!important;box-shadow:none!important;padding:0!important;gap:12px;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  .fiche::before,.fiche::after{display:none!important}
  .fiche *{color:#111!important;background:transparent!important;box-shadow:none!important}
  .fiche .eyebrow{margin-bottom:6px}
  .fiche-h .serif-h{font-size:24pt}
  .fiche-cols{grid-template-columns:1fr 1.3fr;gap:18px}
  .ings li,.steps-r li{border-color:#ccc!important;padding:3px 0;font-size:10pt;break-inside:avoid}
  .cat-h{margin:10px 0 4px}
  .pv,.st{border:1px solid #999!important}
  .pvd{border-color:#666!important}
  .pvd.user{background:#111!important}
  .pvd.ok{background:#888!important}
  .small,.legend{font-size:8.5pt}
  .print-only{display:block}
  b.print-only{display:inline}
  :root{color-scheme:light}
  /* A4 is narrower than 900 px: keep the desktop arrangement, not the phone one */
  .fiche{line-height:1.38}
  .fiche .pv:not(.user):not(.warn){display:none}
  .fiche-cols{grid-template-columns:1.1fr 1fr!important}
  .print-notice{display:block;border:1px solid #999!important;padding:4px 8px;font-size:8.5pt}
  .ings li{grid-template-columns:8px 96px minmax(0,1fr) auto;gap:6px;font-size:9.5pt;padding:2px 0}
  .steps-r li{padding:2px 0}
  .fiche-f{padding-top:8px;gap:3px;break-inside:avoid}
  .ings li .st{grid-column:auto}
  .ings .n small{font-size:8pt}
  .steps-r li{font-size:9.5pt}
  .times li,.eq li,.chk li{padding:1px 0;font-size:9.5pt}
  .pv,.st{font-size:6.5pt;padding:0 5px;letter-spacing:.08em}
  .fiche-h .lead-s{font-size:10.5pt;margin-top:2px}
  .fiche-st{margin-top:6px}
}
/* Imprimerie, supports (phase 8) */
.pr-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pr-list li{display:grid;grid-template-columns:1fr auto;gap:8px 16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--hair)}
.pr-list li>div{display:grid;gap:2px;min-width:0}
.pr-list li .warnbox{grid-column:1/-1;margin:0}
.pr-list a{text-decoration:none}
/* Paramètres, affichages (phase 8) */
.meat{display:grid;gap:8px}
.meat-row{display:grid;grid-template-columns:minmax(120px,1.2fr) repeat(3,minmax(0,1fr)) auto;gap:8px;align-items:center}
@media (max-width:700px){.meat-row{grid-template-columns:1fr 1fr}.meat-row select{grid-column:1/-1}}
.file-btn{cursor:pointer;display:inline-flex;align-items:center}
.proof .btns{margin-top:6px}
.tent-form{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px 14px;align-items:end}
.tent-form label{display:grid;gap:4px;font-size:12px;color:var(--ink-mute)}
.tent-form .input{width:120px}
.pr-list a.off{opacity:.4;pointer-events:none}
/* subscription: cancel, undo, refund (owner's rules, 2026-10-18) */
.sub-confirm{margin-top:16px;padding:16px 18px;border:1px solid color-mix(in srgb,var(--fixed) 45%,transparent);border-radius:14px;display:grid;gap:12px}
.sub-confirm p{margin:0;font-size:13.5px;line-height:1.6;color:var(--ink-soft)}
/* Within the 48 hours of the refund right, the browser's own print gives a blank sheet with a message: printing goes
   through the Imprimerie, which asks first (owner, 2026-10-18). */
@media print{
  body.refund-hold>*{display:none!important}
  body.refund-hold::before{content:"Impression disponible depuis l\2019 Imprimerie de votre espace MYCUPPLES.";display:block!important;padding:60mm 12mm 0;font:14pt/1.6 sans-serif;color:#111;text-align:center}
}
/* Daily board in the Studio (owner, 2026-10-18) */
.board-box{margin-bottom:22px}
.board-box>summary{cursor:pointer;list-style:none;display:grid;gap:4px}
.board-box>summary::-webkit-details-marker{display:none}
.bd-sum{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.bd-sum b{font-family:var(--serif);font-size:20px;font-weight:500;color:var(--ink)}
.bd-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:26px;margin-top:20px;align-items:start}
@media(max-width:860px){.bd-grid{grid-template-columns:minmax(0,1fr)}}
.bd-styles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.bd-sw{height:52px;border-radius:10px;border:1px solid rgba(246,239,228,.22);position:relative;overflow:hidden;padding:0;cursor:pointer}
.bd-sw span{position:absolute;left:0;right:0;bottom:0;font:500 10px/1.6 var(--font);color:#fff;background:rgba(0,0,0,.55)}
.bd-sw[aria-pressed="true"]{outline:2px solid var(--gold);outline-offset:2px}
.bd-sw.s-craie{background:#1f2a24;border:4px solid #6b4a2b}.bd-sw.s-kraft{background:linear-gradient(135deg,#c9a36b,#b88d55)}
.bd-sw.s-neon{background:#0d0b14;border-color:#ff4fa3;box-shadow:inset 0 0 10px #ff4fa3}.bd-sw.s-elegant{background:#fffaf0;border-color:#c9a24f}
.bd-sw.s-madras{background:repeating-linear-gradient(45deg,#d7261e 0 6px,#f5b81c 6px 11px,#1d8f4e 11px 16px,#fff6e8 16px 22px)}
.bd-items{display:grid;gap:10px}
.bd-it{border:1px solid var(--hair);border-radius:14px;padding:12px;display:grid;gap:8px}
.bd-it .r{display:grid;grid-template-columns:minmax(0,1fr) 96px auto;gap:10px;align-items:end}
.bd-it .bd-pr{text-align:right}
.bd-add{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;margin-top:10px}
@media(max-width:560px){.bd-add{grid-template-columns:minmax(0,1fr)}.bd-it .r{grid-template-columns:minmax(0,1fr) 80px auto}}
.bd-prev{position:sticky;top:90px;display:grid;gap:8px}
.bd-prev #bd-preview{background:#f7f1e6;border-radius:16px;padding:6px 10px}
/* Restaurateur's statistics (owner, 2026-10-18) */
.sx-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:16px}
.sx-kpi{padding:20px;display:grid;gap:6px;align-content:start}
.sx-kpi .v{font-family:var(--serif);font-size:34px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.sx-kpi .l{font-size:13px;color:var(--ink-mute)}
.sx-kpi .d{font-size:12.5px;color:var(--ink-soft)}.sx-kpi .d.up{color:var(--valid)}.sx-kpi .d.dn{color:var(--alert)}
.sx-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:22px;align-items:start}
.sx-chart{width:100%;height:auto;display:block}
.sx-chart text{fill:var(--ink-mute);font:500 11px var(--font)}
.sx-chart .gl{stroke:var(--hair);stroke-width:1}
.sx-chart rect{fill:color-mix(in srgb,var(--gold) 50%,transparent)}
.sx-chart rect.hi{fill:var(--gold)}
.sx-rank{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.sx-rank li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;font-size:14px;color:var(--ink-soft)}
.sx-rank .n{color:var(--ink);font-variant-numeric:tabular-nums}
.sx-rank .sx-bar{display:block;grid-column:1/-1;height:6px;border-radius:6px;background:var(--fill-2);overflow:hidden}
.sx-rank .sx-bar i{display:block;height:100%;background:var(--gold);border-radius:6px}
.sx-split{display:flex;height:12px;border-radius:999px;overflow:hidden;background:var(--fill-2);margin-bottom:12px}
.sx-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--ink-soft)}
.sx-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}
.sx-tip{border-left:2px solid var(--gold);padding:6px 0 6px 14px;font-size:14.5px;color:var(--ink-soft);margin:0}
.kr-sug{color:var(--gold)}
.kr-sug button{background:none;border:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;padding:0 2px}
/* Studio on a phone or a small tablet (owner, 2026-10-21): the card in miniature on the left, the style settings on the
   right, like on a computer; the miniature stays in view while the settings scroll. The list of dishes comes below. */
@media (max-width:900px){
  .studio{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:12px}
  .studio .preview{order:-1;grid-column:1;position:sticky;top:calc(env(safe-area-inset-top,0px) + 8px);align-self:start;min-width:0}
  .studio .style{order:-1;grid-column:2;padding:16px;gap:16px;min-width:0}
  .studio .style .form{grid-template-columns:minmax(0,1fr);gap:16px}
  .studio .style .glass-h h2{font-size:16px}
  .studio .style .sws{flex-wrap:wrap}
  .studio > .glass:first-child{grid-column:1/-1}
  .studio .preview .seg{flex-wrap:wrap;justify-content:center;width:auto;max-width:100%}
  .studio .preview .phone{width:300px;max-width:none;zoom:.8}
}
@media (max-width:600px){.studio .preview .phone{zoom:.62}}
@media (max-width:430px){.studio .preview .phone{zoom:.5}.studio .preview .seg button{padding:6px 8px;font-size:11px}.studio .preview .view-note{font-size:11px}}
.pr-list span.ghost.off{opacity:.45;cursor:default}
.lic-proof{display:grid;gap:12px;border-top:1px solid var(--hair);padding-top:16px}
.lic-proof .field{max-width:320px}
