/* GÉNÉRÉ par scripts/table-ui-css.py depuis Refontes/design_handoff_repas_de_table/table.css.
   Ne pas modifier à la main : modifier le script, puis le relancer. Classes préfixées tb-, tout sous .tb. */
.tb{--bg:#FFF9EE;--paper:#FFFDF4;--paper2:#FBF3DE;--cream:#FFF8EA;--card:#fff;
  --ink:#2A211B;--ink2:#5C4A3A;--muted:#8A7458;--line:#E7D9BE;--line2:#DCCBA9;--edge:#2A211B;
  --tang:#EC6532;--tang-d:#C2410C;--tang-bg:#FCE3D8;--sun:#FFC53D;--sun-d:#8A5A00;--sun-bg:#FFF1D2;
  --green:#3E7C59;--green-d:#2F6147;--green-bg:#E6F3E9;--al:#B4321F;--al-bg:#FBE1DC;
  --dark:#33261B;--on-dark:#fff;--scrim:rgba(51,38,27,.38);
  /* variables de thème « saison » : ce que Noël repeint */
  --hero:#FCE3D8;--hero-ink:#C2410C;--hero-art:none;--pill-tb:#FCE3D8;--pill-tc:#C2410C;
  --fd:"Bricolage Grotesque",system-ui,sans-serif;--fb:"Hanken Grotesk",system-ui,sans-serif;--fh:"Caveat",cursive;--spring:cubic-bezier(.3,1.35,.45,1)}
html[data-saison="noel"] .tb{--tang:#C8323A;--tang-d:#A2242B;--tang-bg:#FBE1E1;--green:#2E6B47;--green-d:#245A3B;
  --hero:#C8323A;--hero-ink:#fff;--pill-tb:#FBE1E1;--pill-tc:#A2242B;
  --hero-art:radial-gradient(circle at 12% 30%,rgba(255,255,255,.55) 0 2px,transparent 3px),radial-gradient(circle at 70% 20%,rgba(255,255,255,.5) 0 1.5px,transparent 2.5px),radial-gradient(circle at 40% 80%,rgba(255,255,255,.45) 0 2px,transparent 3px),radial-gradient(circle at 88% 70%,rgba(255,255,255,.5) 0 1.5px,transparent 2.5px)}
.tb *,.tb *::before,.tb *::after{box-sizing:border-box}
.tb [hidden]{display:none!important}
:where(.tb) button{font:inherit;color:inherit;cursor:pointer}
:where(.tb) a{color:var(--tang-d)}
:where(.tb) a:hover{color:var(--tang)}
:where(.tb) button:focus-visible,.tb input:focus-visible,.tb [tabindex]:focus-visible{outline:3px solid var(--tang);outline-offset:2px}
.tb .tb-hand{font:700 20px/1.05 var(--fh);color:var(--tang-d)}
.tb .tb-kick{font:800 11px var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--tang-d)}
.tb .tb-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:56px;padding:0 20px;border:0;border-radius:18px;background:var(--tang);color:#fff;font:800 16px var(--fd);box-shadow:0 4px 0 var(--tang-d);transition:transform .3s var(--spring),box-shadow .2s,background .2s;text-align:center}
.tb .tb-btn:hover{transform:translateY(-2px)}
.tb .tb-btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--tang-d)}
.tb .tb-btn.tb-gh{background:var(--card);color:var(--ink);border:1.5px solid var(--line2);box-shadow:none;font-weight:700;font-family:var(--fb);font-size:15px}
.tb .tb-btn.tb-gh:hover{border-color:var(--ink2)}
.tb .tb-btn.tb-dk{background:var(--dark);color:var(--on-dark);box-shadow:0 4px 0 var(--edge)}
.tb .tb-btn.tb-sm{min-height:44px;padding:0 14px;border-radius:14px;font-size:14px}
.tb .tb-btn.tb-green{background:var(--green);box-shadow:0 4px 0 var(--green-d)}
.tb .tb-ib{flex:none;width:44px;height:44px;border:0;border-radius:50%;background:var(--paper2);display:grid;place-items:center;color:var(--ink2);transition:transform .35s var(--spring),background .2s}
.tb .tb-ib:hover{background:var(--line);color:var(--ink)}
.tb .tb-ib.tb-x:hover{transform:rotate(90deg)}
.tb .tb-tl{flex:none;border-radius:14px;background:var(--t,#FBF3DE);display:grid;place-items:center;transform:rotate(-4deg)}
.tb .tb-tl svg{width:74%;height:74%}
.tb .tb-pill{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 10px 0 7px;border-radius:999px;background:var(--pill-tb);color:var(--pill-tc);font:800 11.5px var(--fb);letter-spacing:.02em;white-space:nowrap}
.tb .tb-pill.tb-cv{background:var(--dark);color:var(--on-dark);padding:0 10px}
.tb .tb-pill.tb-book{background:var(--sun-bg);color:var(--sun-d)}
.tb .tb-av{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font:800 14px var(--fd);color:#fff;background:var(--c,#8A7458);border:2.5px solid var(--card)}
.tb .tb-avs{display:flex}
.tb .tb-avs .tb-av+.tb-av{margin-left:-10px}
.tb .tb-av[data-n]{position:relative;cursor:default;transition:transform .4s var(--spring),box-shadow .2s}
.tb .tb-av[data-n]:hover,.tb .tb-av[data-n]:focus-visible{z-index:5;outline:none;transform:translateY(-5px) scale(1.2) rotate(-8deg);box-shadow:0 0 0 2px var(--edge),0 6px 12px -4px rgba(0,0,0,.35)}
.tb .tb-av[data-n]:hover~.tb-av,.tb .tb-av[data-n]:has(~ .tb-av:hover){transform:translateX(2px)}
.tb .tb-av[data-n]::after{content:attr(data-n);position:absolute;left:50%;bottom:calc(100% + 9px);padding:5px 10px;border-radius:10px;background:var(--dark);color:var(--on-dark);font:700 12px/1.2 var(--fb);letter-spacing:0;white-space:nowrap;pointer-events:none;
  translate:-50% 6px;scale:.5;rotate:8deg;opacity:0;transform-origin:50% 100%;transition:opacity .18s,scale .35s var(--spring),translate .35s var(--spring)}
.tb .tb-av[data-n]:hover::after,.tb .tb-av[data-n]:focus-visible::after{opacity:1;scale:.84;translate:-50% 0}
@media (prefers-reduced-motion:reduce){.tb *{animation:none!important;transition-duration:.01ms!important}}
.tb .tb-toast{position:absolute;z-index:80;left:50%;bottom:22px;display:flex;align-items:center;gap:12px;width:max-content;max-width:calc(100% - 28px);padding:10px 16px 10px 10px;border-radius:18px;background:var(--dark);color:var(--on-dark);font:600 14px/1.35 var(--fb);transform:translateX(-50%);box-shadow:0 18px 36px -16px rgba(0,0,0,.6)}
.tb .tb-toast .tb-tf{flex:none;width:38px;height:38px;border-radius:12px;background:var(--tang-bg);overflow:hidden}
.tb .tb-toast .tb-tf svg{width:100%;height:100%}
.tb .tb-st{animation:tb-up .44s var(--spring) both;animation-delay:calc(var(--i,0) * 42ms)}
@keyframes tb-up{from{opacity:0;transform:translateY(12px)}}
.tb .tb-tf{position:absolute;inset:0;z-index:40;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font-family:var(--fb)}
.tb .tb-tf-h{flex:none;padding:12px 12px 0;background:var(--hero);background-image:var(--hero-art);color:var(--hero-ink);transition:background .3s}
.tb .tb-tf-hr{display:flex;align-items:center;gap:8px}
.tb .tb-tf-h .tb-ib{background:rgba(255,255,255,.55);color:var(--hero-ink)}
html[data-saison="noel"] .tb .tb-tf-h .tb-ib{background:rgba(255,255,255,.14)}
.tb .tb-tf-tt{flex:1;min-width:0;display:flex;align-items:center;gap:10px}
.tb .tb-tf-pp{flex:none;width:44px;height:44px;border-radius:14px;overflow:hidden;background:var(--card);border:2px solid var(--edge);transform:rotate(-5deg)}
.tb .tb-tf-pp svg{width:100%;height:100%}
.tb .tb-tf-tt b{display:block;font:800 17px/1.1 var(--fd)}
.tb .tb-tf-tt small{display:block;font:700 12.5px var(--fb);opacity:.85}
.tb .tb-tf-p{display:flex;gap:5px;margin:12px 4px 0;padding-bottom:12px}
.tb .tb-tf-p i{flex:1;height:6px;border-radius:3px;background:rgba(0,0,0,.1);transition:background .35s}
html[data-saison="noel"] .tb .tb-tf-p i{background:rgba(255,255,255,.18)}
.tb .tb-tf-p i.tb-on{background:var(--hero-ink)}
.tb .tb-tf-p i.tb-cur{background:var(--hero-ink);animation:tb-cur 1.4s ease-in-out infinite}
@keyframes tb-cur{50%{opacity:.45}}
.tb .tb-tf-occ{display:flex;align-items:center;gap:8px;margin:0 4px 12px;min-height:40px;width:calc(100% - 8px);padding:0 12px 0 10px;border:0;border-radius:14px;background:rgba(255,255,255,.6);color:var(--ink);font:700 13.5px var(--fb);text-align:left}
html[data-saison="noel"] .tb .tb-tf-occ{background:rgba(255,255,255,.12);color:var(--hero-ink)}
.tb .tb-tf-occ span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb .tb-tf-b{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:20px 18px 28px;scrollbar-width:thin}
.tb .tb-tf-f{flex:none;display:grid;grid-template-columns:1fr;gap:8px;padding:12px 18px 18px;border-top:1.5px dashed var(--line);background:var(--bg)}
.tb .tb-tf-f.tb-two{grid-template-columns:1fr 1fr}
.tb .tb-tf-f .tb-btn{width:100%}
.tb .tb-qh{margin:0 0 4px}
.tb .tb-qt{margin:0;font:800 27px/1.12 var(--fd);letter-spacing:-.015em;text-wrap:balance}
.tb .tb-qs{margin:6px 0 0;font-size:14.5px;line-height:1.45;color:var(--ink2);text-wrap:pretty}
.tb .tb-blk{margin-top:22px}
.tb .tb-bl{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px;font:800 15.5px var(--fd)}
.tb .tb-bl small{font:500 12.5px var(--fb);color:var(--muted)}
.tb .tb-days{display:flex;gap:8px;margin:0 -18px;padding:2px 18px 6px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}
.tb .tb-days::-webkit-scrollbar{display:none}
.tb .tb-dy{flex:none;scroll-snap-align:start;position:relative;width:62px;min-height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:18px;border:1.5px solid var(--line);background:var(--card);transition:transform .3s var(--spring),background .25s,border-color .25s}
.tb .tb-dy small{font:800 10.5px var(--fb);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tb .tb-dy b{font:800 24px/1 var(--fd)}
.tb .tb-dy em{font:700 11px var(--fb);font-style:normal;color:var(--muted)}
.tb .tb-dy.tb-ng{border-style:dashed}
.tb .tb-dy.tb-tk::after{content:"";position:absolute;top:7px;right:7px;width:8px;height:8px;border-radius:50%;background:var(--tang)}
.tb .tb-dy:hover{transform:translateY(-2px)}
.tb .tb-dy[aria-pressed="true"]{background:var(--dark);border-color:var(--dark);color:var(--on-dark);transform:rotate(-2deg)}
.tb .tb-dy[aria-pressed="true"] small,.tb .tb-dy[aria-pressed="true"] em{color:inherit;opacity:.75}
.tb .tb-dy.tb-oth{width:86px;border-style:dashed;color:var(--tang-d);font:800 13px/1.2 var(--fd);text-align:center;padding:0 6px}
.tb .tb-lgd{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;font-size:12px;color:var(--muted)}
.tb .tb-lgd span{display:inline-flex;align-items:center;gap:6px}
.tb .tb-lgd i{width:14px;height:14px;border-radius:5px;border:1.5px solid var(--line2)}
.tb .tb-lgd i.tb-d{border-style:dashed}
.tb .tb-lgd i.tb-t{border:0;width:8px;height:8px;border-radius:50%;background:var(--tang)}
.tb .tb-seg{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:4px;border-radius:16px;background:var(--paper2)}
.tb .tb-seg .tb-sp{position:absolute;top:4px;bottom:4px;left:4px;border-radius:12px;background:var(--dark);box-shadow:0 3px 0 var(--edge);transition:transform .42s var(--spring)}
.tb .tb-seg button{position:relative;z-index:1;min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;border:0;background:none;font:800 15px var(--fd);color:var(--ink2);transition:color .25s}
.tb .tb-seg button[aria-pressed="true"]{color:var(--on-dark)}
.tb .tb-fmts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tb .tb-fm{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-height:104px;padding:12px;border-radius:20px;border:1.5px solid var(--line);background:var(--card);text-align:left;transition:transform .3s var(--spring),border-color .25s,background .25s}
.tb .tb-fm:hover{transform:translateY(-2px)}
.tb .tb-fm .tb-fi{height:34px;display:flex;align-items:flex-end;gap:3px;color:var(--tang-d)}
.tb .tb-fm b{font:800 15px/1.2 var(--fd);text-wrap:balance}
.tb .tb-fm small{font-size:12px;color:var(--muted)}
.tb .tb-fm[aria-pressed="true"]{border:2px solid var(--edge);background:var(--sun-bg);box-shadow:0 4px 0 var(--edge);transform:rotate(-1deg)}
.tb .tb-fm .tb-ok{position:absolute;right:10px;top:10px;width:24px;height:24px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;transform:scale(0);transition:transform .35s var(--spring)}
.tb .tb-fm[aria-pressed="true"] .tb-ok{transform:scale(1)}
.tb .tb-fld{display:flex;align-items:center;gap:10px;min-height:56px;padding:0 14px;border-radius:16px;border:1.5px solid var(--line2);background:var(--card);transition:border-color .2s,box-shadow .25s}
.tb .tb-fld:focus-within{border-color:var(--tang);box-shadow:0 0 0 4px var(--tang-bg)}
.tb .tb-fld input{flex:1;min-width:0;min-height:44px;border:0;outline:0;background:none;font:600 16px var(--fb);color:var(--ink)}
.tb .tb-fld input::placeholder{color:var(--muted)}
.tb .tb-fld svg{flex:none;color:var(--muted)}
.tb .tb-fold{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;margin-top:10px;padding:0 14px;border:1.5px dashed var(--line2);border-radius:16px;background:none;font:700 14px var(--fb);color:var(--ink2);text-align:left}
.tb .tb-fold span{flex:1}
.tb .tb-fold small{color:var(--muted);font-weight:600}
.tb .tb-fold svg.tb-cv{transition:transform .3s var(--spring)}
.tb .tb-fold[aria-expanded="true"] svg.tb-cv{transform:rotate(90deg)}
.tb .tb-hours{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tb .tb-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);font:700 14px var(--fb);color:var(--ink2);transition:all .25s}
.tb .tb-chip:hover{border-color:var(--line2);color:var(--ink)}
.tb .tb-chip[aria-pressed="true"]{background:var(--dark);border-color:var(--dark);color:var(--on-dark)}
.tb .tb-warn{display:flex;gap:12px;align-items:flex-start;margin-top:14px;padding:14px;border-radius:18px;background:var(--tang-bg);color:var(--ink)}
.tb .tb-warn .tb-wi{flex:none;width:32px;height:32px;border-radius:10px;background:var(--card);display:grid;place-items:center;color:var(--tang-d)}
.tb .tb-warn b{display:block;font:800 15px var(--fd)}
.tb .tb-warn p{margin:3px 0 0;font-size:13.5px;line-height:1.45;color:var(--ink2)}
.tb .tb-warn .tb-wa{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.tb .tb-tbls{display:flex;gap:8px;margin:0 -18px;padding:2px 18px 8px;overflow-x:auto;scrollbar-width:none}
.tb .tb-tbls::-webkit-scrollbar{display:none}
.tb .tb-tb{flex:none;display:flex;align-items:center;gap:10px;min-height:64px;padding:8px 14px 8px 8px;border-radius:18px;border:1.5px solid var(--line);background:var(--card);text-align:left;transition:all .25s}
.tb .tb-tb b{display:block;font:800 14px/1.2 var(--fd)}
.tb .tb-tb small{display:block;font-size:12px;color:var(--muted)}
.tb .tb-tb[aria-pressed="true"]{border:2px solid var(--edge);background:var(--sun-bg);box-shadow:0 3px 0 var(--edge)}
.tb .tb-ctrs{border-radius:22px;background:var(--card);border:1.5px solid var(--line);overflow:hidden}
.tb .tb-ctr{display:flex;align-items:center;gap:12px;min-height:76px;padding:10px 12px 10px 16px}
.tb .tb-ctr+.tb-ctr{border-top:1.5px dashed var(--line)}
.tb .tb-ctr .tb-cl{flex:1;min-width:0}
.tb .tb-ctr b{display:block;font:800 17px var(--fd)}
.tb .tb-ctr small{display:block;font-size:12.5px;color:var(--muted)}
.tb .tb-stp{flex:none;display:flex;align-items:center;gap:2px;padding:4px;border-radius:999px;background:var(--paper2)}
.tb .tb-stp button{width:44px;height:44px;border:0;border-radius:50%;background:var(--card);display:grid;place-items:center;color:var(--ink);box-shadow:0 2px 0 var(--line2);transition:transform .25s var(--spring)}
.tb .tb-stp button:active:not(:disabled){transform:scale(.88)}
.tb .tb-stp button:disabled{opacity:.3;cursor:default}
.tb .tb-stp .tb-n{position:relative;overflow:hidden;width:42px;height:44px;display:grid}
.tb .tb-stp .tb-n span{grid-area:1/1;align-self:center;text-align:center;font:800 24px/1 var(--fd);font-variant-numeric:tabular-nums}
.tb .tb-tot{display:flex;align-items:center;gap:14px;margin-top:14px;padding:14px 16px;border-radius:20px;background:var(--dark);color:var(--on-dark)}
.tb .tb-tot .tb-tn{font:800 40px/1 var(--fd);font-variant-numeric:tabular-nums}
.tb .tb-tot b{display:block;font:800 16px var(--fd)}
.tb .tb-tot small{display:block;font-size:12.5px;opacity:.75}
.tb .tb-tog{display:flex;align-items:center;gap:12px;width:100%;min-height:68px;margin-top:10px;padding:10px 12px 10px 10px;border-radius:20px;border:1.5px solid var(--line);background:var(--card);text-align:left;transition:border-color .25s,background .25s}
.tb .tb-tog .tb-tgf{flex:none;width:46px;height:46px;border-radius:14px;background:var(--green-bg);overflow:hidden}
.tb .tb-tog .tb-tgf svg{width:100%;height:100%}
.tb .tb-tog .tb-tl2{flex:1;min-width:0}
.tb .tb-tog b{display:block;font:800 15px/1.2 var(--fd)}
.tb .tb-tog small{display:block;font-size:12.5px;color:var(--muted);line-height:1.35}
.tb .tb-sw{flex:none;position:relative;width:54px;height:32px;border-radius:999px;background:var(--line2);transition:background .3s}
.tb .tb-sw::after{content:"";position:absolute;left:4px;top:4px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.2);transition:transform .35s var(--spring)}
.tb .tb-tog[aria-checked="true"]{border-color:var(--green);background:var(--green-bg)}
.tb .tb-tog[aria-checked="true"] .tb-sw{background:var(--green)}
.tb .tb-tog[aria-checked="true"] .tb-sw::after{transform:translateX(22px)}
.tb .tb-short{position:relative;margin-top:18px;padding:16px;border-radius:22px;background:var(--sun-bg);border:2px solid var(--edge);box-shadow:0 4px 0 var(--edge)}
.tb .tb-short .tb-sh{display:flex;align-items:center;gap:12px}
.tb .tb-short .tb-tl{width:56px;height:56px}
.tb .tb-short .tb-hand{font-size:18px}
.tb .tb-short b{display:block;font:800 17px/1.2 var(--fd)}
.tb .tb-short p{margin:8px 0 12px;font-size:13.5px;line-height:1.45;color:var(--ink2)}
.tb .tb-short .tb-srow{display:flex;gap:8px;align-items:center}
.tb .tb-short .tb-srow .tb-btn{flex:1;min-width:0;padding:0 14px}
.tb .tb-short .tb-stp{background:var(--card)}
.tb .tb-short .tb-stp button{background:var(--paper2);box-shadow:none}
.tb .tb-orl{display:flex;align-items:center;gap:10px;margin:22px 0 -6px;font:700 19px var(--fh);color:var(--muted)}
.tb .tb-orl::before,.tb .tb-orl::after{content:"";flex:1;border-top:1.5px dashed var(--line2)}
.tb .tb-short .tb-tag{position:absolute;right:12px;top:-12px;transform:rotate(4deg)}
.tb .tb-kq{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.tb .tb-kq .tb-tl{width:52px;height:52px;border-radius:16px}
.tb .tb-kq small{display:block;font:800 10.5px var(--fb);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.tb .tb-kq b{display:block;font:800 17px/1.2 var(--fd)}
.tb .tb-keep{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tb .tb-kp{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:150px;padding:14px 12px 12px;border-radius:22px;border:1.5px solid var(--line);background:var(--card);text-align:left;transition:all .3s var(--spring)}
.tb .tb-kp:hover{transform:translateY(-2px)}
.tb .tb-kp .tb-kdish{width:56px;height:56px;border-radius:17px;border:2px solid var(--edge);transition:transform .35s var(--spring)}
.tb .tb-kp[aria-checked="true"] .tb-kdish{transform:rotate(-8deg) scale(1.04)}
.tb .tb-kp .tb-kpi{width:56px;height:56px;border-radius:17px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--paper2);color:var(--ink2);transition:all .3s var(--spring)}
.tb .tb-kp b{font:800 15.5px/1.2 var(--fd);text-wrap:balance}
.tb .tb-kp small{font-size:12.5px;line-height:1.35;color:var(--ink2);text-wrap:pretty}
.tb .tb-kp .tb-rd{position:absolute;right:12px;top:14px;width:24px;height:24px;border-radius:50%;border:2px solid var(--line2);transition:all .3s var(--spring)}
.tb .tb-kp .tb-kt{position:absolute;left:12px;top:-11px;background:var(--dark);color:var(--on-dark);transform:rotate(-3deg)}
.tb .tb-kp[aria-checked="true"]{border:2px solid var(--edge);box-shadow:0 4px 0 var(--edge);background:var(--sun-bg)}
.tb .tb-kp[aria-checked="true"] .tb-kpi{background:var(--tang);color:#fff;transform:rotate(-6deg)}
.tb .tb-kp[aria-checked="true"] .tb-rd{border:7px solid var(--tang)}
.tb .tb-fnote{display:flex;align-items:center;justify-content:center;gap:6px;margin:0;font:700 13px var(--fb);color:var(--green-d)}
.tb .tb-btn.tb-dark{background:var(--dark);color:var(--on-dark);box-shadow:0 4px 0 var(--edge)}
.tb .tb-btn #shb{display:inline-grid;overflow:hidden;height:1.2em;vertical-align:-.15em}
.tb .tb-btn #shb span{grid-area:1/1}
.tb .tb-gl{display:flex;flex-direction:column;gap:10px}
.tb .tb-gc{border-radius:22px;background:var(--card);border:1.5px solid var(--line);overflow:hidden;transition:border-color .25s,box-shadow .3s}
.tb .tb-gc.tb-open{border:2px solid var(--edge);box-shadow:0 4px 0 var(--edge)}
.tb .tb-gch{display:flex;align-items:center;gap:12px;width:100%;min-height:68px;padding:10px 12px;border:0;background:none;text-align:left}
.tb .tb-gch .tb-av{width:42px;height:42px;font-size:16px;border:0}
.tb .tb-gch .tb-gi{flex:1;min-width:0}
.tb .tb-gch b{display:block;font:800 16px/1.2 var(--fd)}
.tb .tb-gch .tb-gs{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.tb .tb-gch .tb-gs .tb-none{font-size:12.5px;color:var(--muted)}
.tb .tb-gch svg.tb-cv{flex:none;color:var(--muted);transition:transform .35s var(--spring)}
.tb .tb-gc.tb-open .tb-gch svg.tb-cv{transform:rotate(90deg)}
.tb .tb-gb{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--spring)}
.tb .tb-gc.tb-open .tb-gb{grid-template-rows:1fr}
.tb .tb-gbi{overflow:hidden}
.tb .tb-gbx{padding:2px 14px 16px;display:flex;flex-direction:column;gap:14px}
.tb .tb-gf .tb-glab{display:flex;align-items:center;gap:8px;margin-bottom:8px;font:800 14px var(--fd)}
.tb .tb-gf .tb-glab small{font:600 12px var(--fb);color:var(--muted)}
.tb .tb-gf .tb-gli{width:26px;height:26px;border-radius:8px;display:grid;place-items:center}
.tb .tb-cs{display:flex;flex-wrap:wrap;gap:6px}
.tb .tb-ct{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 13px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);font:700 13.5px var(--fb);color:var(--ink2);transition:all .25s}
.tb .tb-ct[aria-pressed="true"].tb-dt{background:var(--green-bg);border-color:var(--green);color:var(--green-d)}
.tb .tb-ct.tb-al{border-color:var(--line)}
.tb .tb-ct[aria-pressed="true"].tb-al{background:var(--al);border-color:var(--al);color:#fff}
.tb .tb-ct.tb-dl{border-style:dashed}
.tb .tb-ct[aria-pressed="true"].tb-dl{background:var(--paper2);border-color:var(--ink2);color:var(--ink)}
.tb .tb-tag-d{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:0 9px;border-radius:999px;font:800 11.5px var(--fb)}
.tb .tb-tag-d.tb-dt{background:var(--green-bg);color:var(--green-d)}
.tb .tb-tag-d.tb-al{background:var(--al);color:#fff}
.tb .tb-tag-d.tb-dl{border:1.5px dashed var(--line2);color:var(--ink2)}
.tb .tb-gf.tb-al .tb-gli{background:var(--al);color:#fff}
.tb .tb-gf.tb-dl .tb-gli{border:1.5px dashed var(--ink2);color:var(--ink2)}
.tb .tb-gf.tb-dt .tb-gli{background:var(--green-bg);color:var(--green-d)}
.tb .tb-gf.tb-al .tb-glab{color:var(--al)}
.tb .tb-gadd{display:flex;gap:6px;margin-top:8px}
.tb .tb-gadd .tb-fld{flex:1;min-height:44px;padding:0 12px;border-radius:14px}
.tb .tb-gadd .tb-fld input{font-size:14px;min-height:40px}
.tb .tb-gdel{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border:0;border-radius:12px;background:none;font:700 13px var(--fb);color:var(--muted)}
.tb .tb-gdel:hover{color:var(--al);background:var(--al-bg)}
.tb .tb-addg{display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px;border:2px dashed var(--line2);border-radius:20px;background:none;font:800 15px var(--fd);color:var(--tang-d);transition:border-color .2s,background .2s}
.tb .tb-addg:hover{border-color:var(--tang);background:var(--tang-bg)}
.tb .tb-rest{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:18px;background:var(--paper2);font-size:13.5px;color:var(--ink2)}
.tb .tb-rest b{color:var(--ink)}
.tb .tb-notes2{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.tb .tb-nl{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.45;color:var(--ink2)}
.tb .tb-nl .tb-ni{flex:none;width:26px;height:26px;border-radius:8px;background:var(--paper2);display:grid;place-items:center;color:var(--ink2)}
.tb .tb-und{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:20px;background:var(--card);border:1.5px solid var(--line)}
.tb .tb-und .tb-uf{flex:none;width:52px;height:52px;border-radius:16px;background:var(--tang-bg);overflow:hidden;transform:rotate(-4deg)}
.tb .tb-und .tb-uf svg{width:100%;height:100%}
.tb .tb-und p{margin:0;font-size:15px;line-height:1.5;text-wrap:pretty}
.tb .tb-und .tb-hl{font-weight:800}
.tb .tb-opts{display:flex;flex-direction:column;gap:10px}
.tb .tb-op{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) 28px;gap:12px;align-items:center;min-height:84px;padding:12px;border-radius:22px;border:1.5px solid var(--line);background:var(--card);text-align:left;transition:all .3s var(--spring)}
.tb .tb-op .tb-oi{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:var(--paper2);color:var(--tang-d)}
.tb .tb-op b{display:block;font:800 16px/1.2 var(--fd)}
.tb .tb-op small{display:block;margin-top:2px;font-size:13px;line-height:1.35;color:var(--ink2)}
.tb .tb-op .tb-rd{width:26px;height:26px;border-radius:50%;border:2px solid var(--line2);transition:all .3s var(--spring)}
.tb .tb-op[aria-checked="true"]{border:2px solid var(--edge);box-shadow:0 4px 0 var(--edge);background:var(--sun-bg)}
.tb .tb-op[aria-checked="true"] .tb-rd{border:8px solid var(--tang)}
.tb .tb-op .tb-rec{position:absolute;right:14px;top:-11px;transform:rotate(3deg)}
.tb .tb-est{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:12px;padding:12px 14px;border-radius:16px;background:var(--green-bg);color:var(--green-d);font-size:13.5px}
.tb .tb-est b{font:800 22px var(--fd)}
.tb .tb-bud{display:flex;align-items:center;gap:12px;margin-top:10px}
.tb .tb-bud .tb-stp .tb-n{width:64px}
.tb .tb-bud .tb-stp .tb-n span{font-size:20px}
.tb .tb-pref{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:12.5px;color:var(--muted)}
.tb .tb-wt{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:6px}
.tb .tb-rt{position:relative;width:260px;height:260px}
.tb .tb-rt .tb-tbl{position:absolute;left:50%;top:50%;width:150px;height:150px;margin:-75px 0 0 -75px;border-radius:50%;background:var(--paper2);border:2.5px solid var(--edge);box-shadow:inset 0 0 0 10px var(--card)}
.tb .tb-rt .tb-pl{position:absolute;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;background:var(--card);border:2px solid var(--line2);transition:all .35s var(--spring)}
.tb .tb-rt .tb-pl.tb-ok{border-color:var(--green);background:var(--green-bg)}
.tb .tb-rt .tb-gs2{position:absolute;margin:-19px 0 0 -19px;transition:transform .35s var(--spring)}
.tb .tb-rt .tb-gs2 .tb-av{width:38px;height:38px}
.tb .tb-rt .tb-gs2.tb-on{transform:scale(1.18)}
.tb .tb-rt .tb-gs2 .tb-ck{position:absolute;right:-4px;bottom:-4px;width:18px;height:18px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;transform:scale(0);transition:transform .35s var(--spring)}
.tb .tb-rt .tb-gs2.tb-ok .tb-ck{transform:scale(1)}
.tb .tb-rt .tb-pp{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:26px;overflow:hidden;background:var(--tang-bg);border:2px solid var(--edge);animation:tb-bob 1.3s ease-in-out infinite}
.tb .tb-rt .tb-pp svg{width:100%;height:100%}
@keyframes tb-bob{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg) translateY(-4px)}}
.tb .tb-wtx{position:relative;height:30px;margin-top:16px;width:100%;overflow:hidden}
.tb .tb-wtx span{position:absolute;inset:0;font:800 20px var(--fd)}
.tb .tb-wsub{margin:6px 0 0;font-size:13.5px;color:var(--muted)}
.tb .tb-wbar{width:min(260px,80%);height:8px;margin-top:18px;border-radius:4px;background:var(--line);overflow:hidden}
.tb .tb-wbar i{display:block;height:100%;width:0;border-radius:4px;background:var(--tang);transition:width .5s ease-out}
.tb .tb-prop{display:flex;flex-direction:column;gap:22px}
.tb .tb-dl2{display:flex;flex-direction:column;gap:14px}
.tb .tb-ds{position:relative;padding:14px;border-radius:24px;background:var(--card);border:1.5px solid var(--line);transition:opacity .25s}
.tb .tb-ds.tb-busy{opacity:.55}
.tb .tb-ds .tb-dh{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center}
.tb .tb-ds .tb-tl{width:72px;height:72px;border-radius:20px;border:2px solid var(--edge);box-shadow:0 3px 0 var(--edge)}
.tb .tb-ds .tb-co{font:800 11px var(--fb);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.tb .tb-ds b.tb-dn{display:block;margin-top:2px;font:800 16.5px/1.25 var(--fd);text-wrap:pretty}
.tb .tb-ds .tb-dm{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:8px;align-items:center}
.tb .tb-ds .tb-dm span.tb-m{display:inline-flex;align-items:center;gap:4px;font:700 12.5px var(--fb);color:var(--ink2)}
.tb .tb-ds .tb-pf{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.tb .tb-ds .tb-pf small{font:700 12px var(--fb);color:var(--muted);margin-right:2px;align-self:center}
.tb .tb-ds .tb-var{display:flex;align-items:center;gap:10px;margin-top:10px;padding:8px 10px;border-radius:16px;background:var(--sun-bg)}
.tb .tb-ds .tb-var .tb-tl{width:40px;height:40px;border-radius:12px;border:1.5px solid var(--edge);box-shadow:none}
.tb .tb-ds .tb-var p{margin:0;flex:1;min-width:0;font-size:13.5px;line-height:1.35;color:var(--ink)}
.tb .tb-ds .tb-var p b{font-weight:800}
.tb .tb-ds .tb-bad{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;padding:12px 14px;border-radius:16px;background:var(--al-bg);color:var(--al);font:700 13.5px/1.35 var(--fb)}
.tb .tb-ds .tb-bad span{flex:1 1 100%}
.tb .tb-ds .tb-bad .tb-btn{min-height:40px;font-size:13px;padding:0 12px}
.tb .tb-ds .tb-da{display:flex;gap:8px;margin-top:14px;padding-top:12px;border-top:1.5px dashed var(--line)}
.tb .tb-ds .tb-da .tb-btn{flex:1}
.tb .tb-ds .tb-da .tb-btn.tb-ic{flex:none;width:44px;padding:0}
.tb .tb-ds .tb-pz{position:absolute;right:12px;top:12px}
.tb .tb-qmq{border-radius:22px;background:var(--card);border:1.5px solid var(--line);overflow:hidden}
.tb .tb-qg{display:grid;grid-template-columns:minmax(0,1fr) repeat(var(--n),62px);align-items:center}
.tb .tb-qg>div{min-height:58px;display:flex;align-items:center;justify-content:center;border-top:1.5px dashed var(--line)}
.tb .tb-qg>div.tb-nm{justify-content:flex-start;gap:10px;padding:0 10px 0 14px;min-width:0}
.tb .tb-qg>div.tb-nm .tb-av{width:30px;height:30px;font-size:12px;border:0}
.tb .tb-qg>div.tb-nm b{font:800 13.5px/1.15 var(--fd);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tb .tb-qg>div.tb-nm small{display:block;font:600 11px var(--fb);color:var(--muted)}
.tb .tb-qg .tb-hd{border-top:0;min-height:72px;padding-top:6px;flex-direction:column;gap:2px;font:800 10px var(--fb);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tb .tb-qg .tb-hd .tb-tl{width:34px;height:34px;border-radius:10px}
.tb .tb-qg .tb-hd.tb-nm{font:800 14px var(--fd);letter-spacing:0;text-transform:none;color:var(--ink);align-items:flex-start;justify-content:center}
.tb .tb-qc{width:32px;height:32px;border-radius:50%;display:grid;place-items:center}
.tb .tb-qc.tb-ok{background:var(--green-bg);color:var(--green-d)}
.tb .tb-qc.tb-v{background:var(--sun);color:#2A211B;font:800 12px var(--fd)}
.tb .tb-qc.tb-no{background:var(--al);color:#fff}
.tb .tb-qc.tb-sf{border:1.5px dashed var(--ink2);color:var(--ink2)}
.tb .tb-qx{grid-column:1/-1;justify-content:flex-start!important;gap:4px 8px;padding:0 14px 12px 54px;border-top:0!important;min-height:0!important;font-size:12.5px;line-height:1.4;color:var(--ink2);flex-wrap:wrap}
.tb .tb-qx b{font-weight:800;color:var(--ink)}
.tb .tb-qx .tb-no{color:var(--al);font-weight:700}
.tb .tb-qlg{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;padding:12px 14px;border-top:1.5px dashed var(--line);font-size:12px;color:var(--muted)}
.tb .tb-qlg span{display:inline-flex;align-items:center;gap:6px}
.tb .tb-qlg .tb-qc{width:20px;height:20px;font-size:10px}
.tb .tb-all{display:flex;align-items:center;gap:10px;padding:14px;border-radius:18px;background:var(--green-bg);color:var(--green-d);font:700 14px var(--fb)}
.tb .tb-dl2.tb-rl{position:relative;gap:12px}
.tb .tb-dl2.tb-rl::before{content:"";position:absolute;left:15px;top:26px;bottom:26px;width:2px;background:repeating-linear-gradient(var(--line2) 0 5px,transparent 5px 10px)}
.tb .tb-ds.tb-cr{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;padding:0;border:0;border-radius:0;background:none}
.tb .tb-ds.tb-cr .tb-cr-n{position:relative;z-index:1;width:32px;height:32px;margin-top:16px;border-radius:50%;background:var(--dark);color:var(--on-dark);display:grid;place-items:center;font:800 14px var(--fd);box-shadow:0 0 0 4px var(--bg)}
.tb .tb-ds.tb-cr .tb-cr-b{position:relative;min-width:0;padding:14px;border-radius:22px;background:var(--card);border:1.5px solid var(--line);transition:border-color .2s}
.tb .tb-ds.tb-cr:hover .tb-cr-b{border-color:var(--line2)}
.tb .tb-ds.tb-cr .tb-cr-h{display:grid;grid-template-columns:60px minmax(0,1fr);gap:12px;align-items:center}
.tb .tb-ds.tb-cr .tb-cr-h .tb-tl{width:60px;height:60px;border-radius:18px;border:2px solid var(--edge);box-shadow:0 3px 0 var(--edge);transition:transform .45s var(--spring)}
.tb .tb-ds.tb-cr:hover .tb-cr-h .tb-tl{transform:rotate(4deg) scale(1.05)}
.tb .tb-ds.tb-cr .tb-cr-t{min-width:0}
.tb .tb-ds.tb-cr .tb-cr-t .tb-co{font:800 10.5px var(--fb);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.tb .tb-ds.tb-cr .tb-cr-t b.tb-dn{display:block;margin-top:2px;font:800 16.5px/1.25 var(--fd);text-wrap:pretty}
.tb .tb-ds.tb-cr .tb-cr-m{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:5px;font:600 12.5px var(--fb);color:var(--muted)}
.tb .tb-ds.tb-cr .tb-cr-m>span{display:inline-flex;align-items:center;gap:4px}
.tb .tb-ds.tb-cr .tb-cr-m b{color:var(--ink);font-weight:800}
.tb .tb-ds.tb-cr .tb-cr-m .tb-bk{color:var(--sun-d);font-weight:700}
.tb .tb-ds.tb-cr .tb-cr-pf{display:flex;flex-wrap:wrap;gap:4px 12px;margin:10px 0 0;font:700 12.5px var(--fb);color:var(--green-d)}
.tb .tb-ds.tb-cr .tb-cr-pf span{display:inline-flex;align-items:center;gap:4px}
.tb .tb-ds.tb-cr .tb-cr-v{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:center;margin-top:16px;padding:10px 12px;border-radius:16px;background:var(--sun-bg)}
.tb .tb-ds.tb-cr .tb-cr-v .tb-tl{width:48px;height:48px;border-radius:14px;border:1.5px solid var(--edge);transform:rotate(5deg)}
.tb .tb-ds.tb-cr .tb-cr-ou{position:absolute;left:19px;top:-19px;z-index:2;width:34px;height:34px;border-radius:50%;background:var(--dark);color:var(--on-dark);border:3px solid var(--card);display:grid;place-items:center;font:700 18px/1 var(--fh);transform:rotate(-8deg)}
.tb .tb-ds.tb-cr .tb-cr-vt{min-width:0}
.tb .tb-ds.tb-cr .tb-cr-vt small{display:block;font:800 10.5px var(--fb);letter-spacing:.08em;text-transform:uppercase;color:var(--sun-d)}
.tb .tb-ds.tb-cr .tb-cr-vt b{display:block;margin-top:2px;font:800 14.5px/1.25 var(--fd);text-wrap:pretty}
.tb .tb-ds.tb-cr .tb-cr-w{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:6px;font:700 12.5px var(--fb);color:var(--ink2)}
.tb .tb-ds.tb-cr .tb-cr-w .tb-av{width:24px;height:24px;font-size:10.5px;border-width:2px}
.tb .tb-ds.tb-cr .tb-bad{margin-top:12px}
.tb .tb-ds.tb-cr .tb-da{display:flex;gap:6px;margin-top:12px;padding:0;border:0}
.tb .tb-ds.tb-cr .tb-da .tb-btn{flex:none;min-height:40px;padding:0 14px;border-radius:999px;font-size:13px}
.tb .tb-ds.tb-cr .tb-da .tb-btn.tb-ic{width:40px;padding:0}
.tb .tb-win .tb-ds.tb-cr .tb-cr-b{padding:16px}
.tb .tb-win .tb-ds.tb-cr .tb-da{margin:12px 0 0 80px}
.tb .tb-win .tb-ds.tb-cr .tb-cr-h .tb-tl{width:68px;height:68px}
.tb .tb-win .tb-ds.tb-cr .tb-cr-h{grid-template-columns:68px minmax(0,1fr)}
.tb .tb-win .tb-ds.tb-cr .tb-cr-t b.tb-dn{font-size:18px}
.tb .tb-qm2 .tb-qm-h{padding:14px 16px 4px}
.tb .tb-qm2 .tb-qm-h b{display:block;font:800 17px var(--fd)}
.tb .tb-qm2 .tb-qm-h small{font-size:12.5px;color:var(--muted)}
.tb .tb-qm2 .tb-qm-r{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:14px 16px;border-top:1.5px dashed var(--line)}
.tb .tb-qm2 .tb-qm-h+.tb-qm-r{border-top:0}
.tb .tb-qm2 .tb-qm-x{min-width:0}
.tb .tb-qm2 .tb-qm-x>b{display:block;font:800 15px/1.2 var(--fd)}
.tb .tb-qm2 .tb-qm-x>small{display:block;margin-top:1px;font-size:12px;color:var(--muted)}
.tb .tb-qm2 .tb-qm-ps{display:flex;flex-wrap:wrap;gap:10px 8px;margin-top:10px}
.tb .tb-qm-p{position:relative;flex:none;width:42px;height:42px;border-radius:50%;background:var(--card);border:2.5px solid var(--green);display:grid;place-items:center;transition:scale .35s var(--spring)}
.tb .tb-qm-p:hover{scale:1.14}
.tb .tb-qm-p .tb-qm-d{width:30px;height:30px;border-radius:50%;background:var(--t,var(--paper2));display:grid;place-items:center;color:var(--green-d)}
.tb .tb-qm-p .tb-qm-d svg{width:82%;height:82%}
.tb .tb-qm-p.tb-v{border-color:var(--sun)}
.tb .tb-qm-p.tb-sf{border:2.5px dashed var(--ink2)}
.tb .tb-qm-p.tb-no{border-color:var(--al)}
.tb .tb-qm-p.tb-no .tb-qm-d{background:var(--al);color:#fff}
.tb .tb-qm-p i{position:absolute;right:-6px;top:-6px;width:19px;height:19px;border-radius:50%;background:var(--sun);color:#2A211B;border:2px solid var(--card);display:grid;place-items:center;font:800 10px/1 var(--fd);font-style:normal}
.tb .tb-qm-p.tb-sf i{background:var(--card);color:var(--ink2);border:1.5px dashed var(--ink2)}
.tb .tb-qm-p em{position:absolute;left:50%;bottom:-8px;translate:-50% 0;min-width:16px;padding:1px 4px;border-radius:6px;background:var(--card);font:800 10px/1.2 var(--fb);font-style:normal;color:var(--muted);text-align:center}
.tb .tb-qm2 .tb-qm-e{margin:12px 0 0;font-size:12.5px;line-height:1.45;color:var(--ink2);text-wrap:pretty}
.tb .tb-qm2 .tb-qm-e b{color:var(--ink)}
.tb .tb-qm2 .tb-qm-e .tb-no{color:var(--al);font-weight:700}
.tb .tb-qm-p.tb-mini{width:22px;height:22px;border-width:2px}
.tb .tb-qm-p.tb-mini .tb-qm-d{width:14px;height:14px;background:transparent;font:800 9.5px/1 var(--fd);color:var(--ink2)}
.tb .tb-qm-p.tb-mini.tb-v .tb-qm-d{background:var(--sun);color:#2A211B;width:16px;height:16px}
.tb .tb-qm-p.tb-mini.tb-no .tb-qm-d{background:var(--al);color:#fff;width:16px;height:16px}
.tb .tb-qm-p.tb-mini:hover{scale:1}
.tb .tb-fin{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:8px}
.tb .tb-fin .tb-ff{width:116px;height:116px;border-radius:34px;background:var(--green-bg);overflow:hidden;transform:rotate(-4deg)}
.tb .tb-fin .tb-ff svg{width:100%;height:100%}
.tb .tb-fin .tb-hand{margin-top:10px;font-size:24px;color:var(--green-d)}
.tb .tb-fin h2{margin:0;font:800 26px/1.15 var(--fd);text-wrap:balance}
.tb .tb-fcard{width:100%;margin-top:16px;padding:14px;border-radius:20px;background:var(--card);border:2px solid var(--edge);box-shadow:0 4px 0 var(--edge);text-align:left}
.tb .tb-fcard .tb-fr{display:flex;align-items:center;gap:12px}
.tb .tb-fcard .tb-stk{display:flex}
.tb .tb-fcard .tb-stk .tb-tl{width:44px;height:44px;border:1.5px solid var(--edge)}
.tb .tb-fcard .tb-stk .tb-tl+.tb-tl{margin-left:-12px}
.tb .tb-fcard b{display:block;font:800 15.5px/1.25 var(--fd)}
.tb .tb-fcard small{display:block;font-size:12.5px;color:var(--muted)}
.tb .tb-fcourses{margin-top:12px;padding-top:12px;border-top:1.5px dashed var(--line)}
.tb .tb-fcourses .tb-fh{display:flex;align-items:center;gap:8px;font:800 13.5px var(--fd)}
.tb .tb-fcourses ul{margin:8px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}
.tb .tb-fcourses li{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--ink2)}
.tb .tb-fcourses li span:last-child{font-weight:800;color:var(--ink)}
.tb .tb-save{width:100%;margin-top:12px;padding:12px;border-radius:18px;background:var(--sun-bg);text-align:left}
.tb .tb-save b{display:block;font:800 14.5px var(--fd);margin-bottom:8px}
.tb .tb-save .tb-row{display:flex;gap:8px}
.tb .tb-save .tb-fld{flex:1;min-height:48px}
.tb .tb-fin2{display:flex;flex-direction:column;gap:18px}
.tb .tb-fhd{display:flex;align-items:center;gap:14px}
.tb .tb-ff2{flex:none;width:76px;height:76px;border-radius:24px;background:var(--green-bg);overflow:hidden;transform:rotate(-5deg);border:2px solid var(--edge);box-shadow:0 3px 0 var(--edge)}
.tb .tb-ff2 svg{width:100%;height:100%}
.tb .tb-fhd .tb-hand{display:block;font-size:22px;color:var(--green-d)}
.tb .tb-fhd h2{margin:2px 0 0;font:800 25px/1.12 var(--fd);letter-spacing:-.015em;text-wrap:balance}
.tb .tb-menuc{position:relative;padding:26px 18px 18px;border-radius:8px;background:var(--paper);box-shadow:0 14px 30px -14px rgba(70,45,20,.5),0 0 0 1.5px var(--line);text-align:center;transform:rotate(-.6deg)}
.tb .tb-menuc .tb-tape{position:absolute;top:-11px;width:84px;height:22px;opacity:.85;border:1px dashed rgba(0,0,0,.12)}
.tb .tb-menuc .tb-tape.tb-l{left:22px;background:#9FCDA8;transform:rotate(-4deg)}
.tb .tb-menuc .tb-tape.tb-r{right:26px;background:#F2D07A;transform:rotate(5deg)}
.tb .tb-menuc .tb-mk{font:800 10.5px var(--fb);letter-spacing:.22em;text-transform:uppercase;color:var(--tang-d)}
.tb .tb-menuc h3{margin:4px 0 0;font:700 30px/1.05 var(--fh);color:var(--ink)}
.tb .tb-menuc .tb-md{margin:6px 0 0;font:700 12.5px var(--fb);color:var(--muted)}
.tb .tb-ml{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:14px}
.tb .tb-mi{display:flex;flex-direction:column;align-items:center;gap:4px;max-width:320px}
.tb .tb-mi .tb-co{font:800 10px var(--fb);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.tb .tb-mi .tb-tl{width:58px;height:58px;border-radius:18px;margin:4px 0 2px}
.tb .tb-mi b{font:800 16.5px/1.25 var(--fd);text-wrap:balance}
.tb .tb-mi small{font-size:12.5px;line-height:1.35;color:var(--ink2);text-wrap:pretty}
.tb .tb-ml .tb-sep{font-size:14px;color:var(--tang);line-height:1;margin:4px 0}
.tb .tb-mw{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1.5px dashed var(--line);font:700 13px var(--fb);color:var(--ink2)}
.tb .tb-mw .tb-av{width:28px;height:28px;font-size:11px}
.tb .tb-moved ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.tb .tb-moved li{display:grid;grid-template-columns:40px minmax(0,1fr) 26px;gap:12px;align-items:center;min-height:60px;padding:8px 12px 8px 8px;border-radius:18px;background:var(--card);border:1.5px solid var(--line);animation:tb-up .44s var(--spring) both;animation-delay:calc(420ms + var(--k) * 140ms)}
.tb .tb-moved .tb-dni{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--paper2);color:var(--ink2)}
.tb .tb-moved b{display:block;font:800 14.5px/1.2 var(--fd)}
.tb .tb-moved small{display:block;margin-top:2px;font-size:12.5px;line-height:1.3;color:var(--muted)}
.tb .tb-moved .tb-dck{width:26px;height:26px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;animation:tb-pop .42s var(--spring) both;animation-delay:calc(620ms + var(--k) * 140ms)}
@keyframes tb-pop{from{transform:scale(0) rotate(-40deg)}}
.tb .tb-save2{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;padding:14px;border-radius:20px;background:var(--sun-bg)}
.tb .tb-save2 .tb-si2{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--card);color:var(--sun-d)}
.tb .tb-save2 b{display:block;font:800 15px/1.2 var(--fd)}
.tb .tb-save2 small{display:block;margin-top:2px;font-size:12.5px;line-height:1.35;color:var(--ink2)}
.tb .tb-save2 .tb-row{display:flex;gap:8px;margin-top:10px}
.tb .tb-save2 .tb-fld{flex:1;min-height:48px;min-width:0}
.tb .tb-save2 .tb-fld input{font-size:15px}
.tb .tb-er{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:10px}
.tb .tb-er .tb-ef{width:104px;height:104px;border-radius:32px;background:var(--paper2);overflow:hidden;transform:rotate(-4deg)}
.tb .tb-er .tb-ef svg{width:100%;height:100%}
.tb .tb-er .tb-eic{width:84px;height:84px;border-radius:26px;display:grid;place-items:center;background:var(--paper2);color:var(--ink2);transform:rotate(-4deg)}
.tb .tb-er h2{margin:14px 0 0;font:800 24px/1.15 var(--fd);text-wrap:balance}
.tb .tb-er p{margin:8px 0 0;font-size:14.5px;line-height:1.45;color:var(--ink2);max-width:36ch}
.tb .tb-blocks{width:100%;margin-top:18px;text-align:left}
.tb .tb-blocks ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.tb .tb-blocks li{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 12px;border-radius:14px;background:var(--card);border:1.5px solid var(--line);font-size:13.5px}
.tb .tb-relax{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:14px}
.tb .tb-rx{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:64px;padding:10px 12px;border-radius:20px;border:1.5px solid var(--line);background:var(--card);text-align:left;transition:transform .3s var(--spring),border-color .2s}
.tb .tb-rx:hover{transform:translateY(-2px);border-color:var(--tang)}
.tb .tb-rx .tb-ri{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--tang-bg);color:var(--tang-d)}
.tb .tb-rx b{display:block;font:800 14.5px/1.2 var(--fd)}
.tb .tb-rx small{display:block;font-size:12.5px;color:var(--muted)}
.tb .tb-mc{position:relative;display:flex;flex-direction:column;border-radius:22px;background:var(--card);border:1.5px solid var(--line);overflow:hidden;text-align:left;width:100%;padding:0}
.tb .tb-mc+.tb-mc{margin-top:10px}
.tb .tb-mc .tb-mh{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:center;padding:12px}
.tb .tb-mc .tb-tl{width:76px;height:76px;border-radius:20px}
.tb .tb-mc .tb-mp{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}
.tb .tb-mc .tb-ms{font:800 10.5px var(--fb);letter-spacing:.08em;color:var(--muted)}
.tb .tb-mc b.tb-mn{display:block;font:800 16px/1.25 var(--fd);text-wrap:pretty}
.tb .tb-mc .tb-mm{display:block;margin-top:4px;font-size:12.5px;color:var(--muted)}
.tb .tb-mc .tb-mf{display:flex;gap:6px;padding:0 12px 12px}
.tb .tb-mc .tb-mf .tb-btn{flex:1;min-height:44px;font-size:13.5px}
.tb .tb-mc .tb-mf .tb-ib{border-radius:14px;background:var(--paper2)}
.tb .tb-mc.tb-tbl{border:2px solid var(--edge);box-shadow:0 4px 0 var(--edge);cursor:pointer;transition:transform .3s var(--spring)}
.tb .tb-mc.tb-tbl:hover{transform:translateY(-2px)}
.tb .tb-mc.tb-tbl .tb-stk2{position:relative;width:76px;height:76px}
.tb .tb-mc.tb-tbl .tb-stk2 .tb-tl{position:absolute;width:52px;height:52px;border-radius:15px;border:1.5px solid var(--edge)}
.tb .tb-mc.tb-tbl .tb-stk2 .tb-tl:nth-child(1){left:0;top:0;transform:rotate(-8deg)}
.tb .tb-mc.tb-tbl .tb-stk2 .tb-tl:nth-child(2){left:22px;top:12px;transform:rotate(4deg)}
.tb .tb-mc.tb-tbl .tb-stk2 .tb-tl:nth-child(3){left:6px;top:26px;transform:rotate(-2deg)}
.tb .tb-mc.tb-tbl .tb-who{display:flex;align-items:center;gap:8px;margin-top:8px}
.tb .tb-mc.tb-tbl .tb-who .tb-av{width:26px;height:26px;font-size:11px}
.tb .tb-mc.tb-tbl .tb-who span{font:700 12.5px var(--fb);color:var(--ink2)}
.tb .tb-mc.tb-ng{border-style:dashed;background:none}
.tb .tb-ngd{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;padding:0 14px;border-radius:16px;border:1.5px dashed var(--line2);color:var(--muted);font:700 13.5px var(--fb)}
.tb .tb-ngd+.tb-ngd{margin-top:6px}
.tb .tb-ngd b{color:var(--ink2);font-family:var(--fd)}
.tb .tb-around{display:flex;align-items:center;gap:8px;margin-top:10px;padding:10px 12px;border-radius:16px;background:var(--paper2);font-size:13px;color:var(--ink2)}
.tb .tb-reass{display:flex;gap:10px;align-items:center;margin-top:8px;padding:12px;border-radius:16px;background:var(--green-bg);color:var(--green-d);font:700 13.5px/1.4 var(--fb)}
.tb .tb-vh{flex:none;position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-content:start;padding:12px 14px 16px;background:var(--hero);background-image:var(--hero-art);color:var(--hero-ink)}
.tb .tb-vh .tb-tf-hr .tb-ib{background:rgba(255,255,255,.55);color:var(--hero-ink)}
html[data-saison="noel"] .tb .tb-vh .tb-tf-hr .tb-ib{background:rgba(255,255,255,.14)}
.tb .tb-vh .tb-hand{color:var(--hero-ink);font-size:22px;margin-top:8px}
.tb .tb-vh h1{margin:2px 0 0;font:800 26px/1.1 var(--fd);letter-spacing:-.015em}
.tb .tb-vh>.tb-tf-hr{grid-column:1/-1}
.tb .tb-vh>.tb-hand,.tb .tb-vh>h1,.tb .tb-vh>.tb-vm,.tb .tb-vh>.tb-vw{grid-column:1;min-width:0}
.tb .tb-vh .tb-vm{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.tb .tb-vh .tb-vm span.tb-cd{background:var(--hero-ink);color:var(--hero);font-weight:800}
.tb .tb-vh .tb-vm span{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 11px 0 8px;border-radius:999px;background:rgba(255,255,255,.6);color:var(--ink);font:700 12.5px var(--fb)}
html[data-saison="noel"] .tb .tb-vh .tb-vm span{background:rgba(255,255,255,.16);color:var(--hero-ink)}
.tb .tb-vh .tb-vm span.tb-cv{background:var(--dark);color:var(--on-dark)}
.tb .tb-vh .tb-vw{display:flex;align-items:center;gap:10px;margin-top:12px}
.tb .tb-vh .tb-vw>span:last-child{text-wrap:pretty}
.tb .tb-vh .tb-vw span{font:700 13px var(--fb)}
.tb .tb-vh .tb-vp{position:absolute;right:14px;bottom:14px;width:64px;height:64px;border-radius:20px;overflow:hidden;background:var(--card);border:2px solid var(--edge);transform:rotate(5deg)}
.tb .tb-vh .tb-vp svg{width:100%;height:100%}
.tb .tb-vdish{--D:112px;grid-column:2;grid-row:2 / span 3;align-self:center;position:relative;display:block;width:calc(var(--D) + 18px);height:calc(var(--D) + 14px);margin:4px -2px 0 0;cursor:default}
.tb .tb-dk-page .tb-vdish{--D:168px;grid-row:2 / span 4;margin:-8px 10px -6px 0}
.tb .tb-vplate{position:absolute;left:9px;top:8px;width:var(--D);height:var(--D);border-radius:50%;background:var(--card);border:2px solid var(--edge);box-shadow:0 5px 0 var(--edge)}
.tb .tb-vplate::before{content:"";position:absolute;inset:8%;border-radius:50%;border:2px dashed var(--line2)}
.tb .tb-vfood{position:absolute;inset:19%;border-radius:50%;background:var(--t);border:2px solid var(--edge);display:grid;place-items:center;rotate:-8deg;transition:rotate .5s var(--spring),scale .5s var(--spring)}
.tb .tb-vfood svg{width:78%;height:78%}
.tb .tb-vdish:hover .tb-vfood{rotate:10deg;scale:1.06}
.tb .tb-vcloche{position:absolute;left:calc(9px + var(--D) * .1);top:calc(8px + var(--D) * .06);width:calc(var(--D) * .8);transform-origin:50% 90%;animation:tb-vlift 1.25s cubic-bezier(.5,0,.3,1) .9s both}
.tb .tb-vcloche svg{display:block;width:100%;height:auto}
@keyframes tb-vlift{0%{translate:0 0;rotate:0deg;opacity:1}
  16%{translate:0 -5%;rotate:-7deg}
  30%{translate:0 2%;rotate:5deg}
  44%{translate:0 -3%;rotate:-2deg}
  78%{translate:4% -95%;rotate:-14deg;opacity:1}
  100%{translate:14% -150%;rotate:-26deg;opacity:0}}
.tb .tb-vsteam{position:absolute;left:calc(9px + var(--D) * .34);top:calc(var(--D) * -.04);width:calc(var(--D) * .32);height:calc(var(--D) * .3);display:flex;justify-content:space-between;pointer-events:none}
.tb .tb-vsteam i{width:4px;height:100%;border-radius:4px;background:linear-gradient(transparent,rgba(255,255,255,.95) 40%,transparent);opacity:0;animation:tb-vsteam 2.4s ease-in-out infinite;animation-delay:calc(1.9s + var(--d,0s))}
.tb .tb-vsteam i:nth-child(2){--d:.5s;height:120%}
.tb .tb-vsteam i:nth-child(3){--d:1s}
@keyframes tb-vsteam{0%{opacity:0;translate:0 30%;scale:1 .6}35%{opacity:1}100%{opacity:0;translate:0 -50%;scale:1 1.1}}
.tb .tb-vspark i{position:absolute;left:var(--x);top:var(--y);width:14px;height:14px;background:var(--sun);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:tb-vspark .9s var(--spring) both}
.tb .tb-vspark i:nth-child(1){animation-delay:1.75s}
.tb .tb-vspark i:nth-child(2){animation-delay:1.85s}
.tb .tb-vspark i:nth-child(3){animation-delay:1.95s;width:10px;height:10px}
.tb .tb-vspark i:nth-child(4){animation-delay:2.05s;width:10px;height:10px}
@keyframes tb-vspark{0%{scale:0;rotate:-90deg;opacity:0}60%{scale:1.3;opacity:1}100%{scale:1;rotate:0deg;opacity:1}}
.tb .tb-vh .tb-vdish .tb-vp{right:auto;top:auto;left:-6px;bottom:-4px;width:calc(var(--D) * .34);height:calc(var(--D) * .34);border-radius:30%;transform:rotate(-8deg)}
.tb .tb-vtag{position:absolute;right:-6px;bottom:2px;padding:2px 10px 3px;border-radius:999px;background:var(--sun);color:#2A211B;border:2px solid var(--edge);font:700 calc(var(--D) * .14)/1 var(--fh);rotate:7deg;white-space:nowrap}
@media (prefers-reduced-motion:reduce){.tb *{animation:none!important;transition-duration:.01ms!important}}
.tb .tb-svc{padding:16px;border-radius:24px;background:var(--card);border:2px solid var(--edge);box-shadow:0 5px 0 var(--edge)}
.tb .tb-vd+.tb-svc,.tb .tb-svc+.tb-vd,.tb .tb-svc+.tb-svc,.tb .tb-svc-x+.tb-vd,.tb .tb-svc-x+.tb-svc{margin-top:14px}
.tb .tb-svc-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 10px;margin:0 2px 12px}
.tb .tb-svc-h b{font:800 21px var(--fd);letter-spacing:-.01em}
.tb .tb-svc-h .tb-n{font:700 20px var(--fh);color:var(--tang-d)}
.tb .tb-svc .tb-sv-stage{display:flex;align-items:center;justify-content:center;padding:22px 12px 26px;border-radius:20px;background-color:var(--paper2);
  background-image:linear-gradient(90deg,rgba(236,101,50,.08) 50%,transparent 0),linear-gradient(rgba(236,101,50,.08) 50%,transparent 0);background-size:24px 24px}
.tb .tb-svc .tb-sv-pl{position:relative;flex:none;width:136px;height:136px;border-radius:50%;background:var(--card);border:2px solid var(--edge);box-shadow:0 6px 0 var(--edge);display:grid;place-items:center;rotate:-6deg;transition:scale .45s var(--spring),opacity .3s,rotate .45s var(--spring)}
.tb .tb-svc .tb-sv-pl::before{content:"";position:absolute;inset:8%;border-radius:50%;border:2px dashed var(--line2)}
.tb .tb-svc .tb-sv-pl.tb-v{width:108px;height:108px;translate:0 12px;rotate:8deg}
.tb .tb-svc .tb-sv-pl .tb-sv-rim{position:relative;width:64%;height:64%;display:grid}
.tb .tb-svc .tb-sv-pl .tb-sv-rim .tb-tl{width:100%;height:100%;border-radius:50%;border:2px solid var(--edge)}
.tb .tb-svc .tb-sv-pl .tb-sv-ct{position:absolute;right:-6px;top:-4px;min-width:38px;height:38px;padding:0 8px;border-radius:999px;background:var(--tang);color:#fff;border:2px solid var(--edge);display:grid;place-items:center;font:800 16px var(--fd);rotate:6deg}
.tb .tb-svc .tb-sv-pl.tb-v .tb-sv-ct{background:var(--sun);color:#2A211B;min-width:34px;height:34px;font-size:15px}
.tb .tb-svc .tb-sv-ou{position:relative;z-index:2;flex:none;width:44px;height:44px;margin:0 -12px;border-radius:50%;background:var(--dark);color:var(--on-dark);border:3px solid var(--card);display:grid;place-items:center;font:700 22px/1 var(--fh);rotate:-8deg}
.tb .tb-svc:has(.tb-sv-row.tb-v:hover) .tb-sv-pl.tb-m,.tb .tb-svc:has(.tb-sv-pl.tb-v:hover) .tb-sv-pl.tb-m,.tb .tb-svc:has(.tb-sv-row.tb-m:hover) .tb-sv-pl.tb-v,.tb .tb-svc:has(.tb-sv-pl.tb-m:hover) .tb-sv-pl.tb-v{opacity:.45;scale:.92}
.tb .tb-svc:has(.tb-sv-row.tb-m:hover) .tb-sv-pl.tb-m,.tb .tb-svc:has(.tb-sv-row.tb-v:hover) .tb-sv-pl.tb-v,.tb .tb-sv-pl:hover{scale:1.08;rotate:0deg}
.tb .tb-svc:has(.tb-sv-pl.tb-m:hover) .tb-sv-row.tb-m{box-shadow:inset 0 0 0 2px var(--tang)}
.tb .tb-svc:has(.tb-sv-pl.tb-v:hover) .tb-sv-row.tb-v{box-shadow:inset 0 0 0 2px var(--sun)}
.tb .tb-svc .tb-sv-rows{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.tb .tb-svc .tb-sv-row{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px 12px 13px 16px;border-radius:16px;background:var(--paper2);transition:box-shadow .2s}
.tb .tb-svc .tb-sv-row.tb-v{background:var(--sun-bg)}
.tb .tb-svc .tb-sv-row .tb-sv-dot{width:11px;height:11px;border-radius:3px;background:var(--tang);rotate:45deg}
.tb .tb-svc .tb-sv-row.tb-v .tb-sv-dot{background:var(--sun-d)}
.tb .tb-svc .tb-sv-row .tb-sv-tx{min-width:0}
.tb .tb-svc .tb-sv-row b{display:block;font:800 16.5px/1.25 var(--fd);text-wrap:pretty}
.tb .tb-svc .tb-sv-row small{display:block;margin-top:2px;font-size:13px;color:var(--muted)}
.tb .tb-svc .tb-sv-row .tb-sv-who{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px;font:700 12.5px var(--fb);color:var(--ink2)}
.tb .tb-svc .tb-sv-row .tb-sv-who .tb-av{width:24px;height:24px;font-size:10.5px;border-width:2px}
.tb .tb-svc .tb-sv-row .tb-sv-who .tb-avs .tb-av+.tb-av{margin-left:-7px}
.tb .tb-svc .tb-sv-row .tb-sv-who>span:last-child{min-width:0;text-wrap:pretty}
.tb .tb-svc .tb-sv-row .tb-btn{min-height:44px;padding:0 16px;border-radius:14px;font-size:13.5px}
.tb .tb-svc-x{display:flex;align-items:center;gap:7px;margin:12px 4px 0;font:700 13px var(--fb);color:var(--al)}
.tb .tb-vd+.tb-svc-x{margin:8px 6px 0}
.tb .tb-vsec{margin-top:22px}
.tb .tb-vsec h3{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;font:800 18px var(--fd)}
.tb .tb-vsec h3 small{font:600 12.5px var(--fb);color:var(--muted)}
.tb .tb-vd{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px;border-radius:20px;background:var(--card);border:1.5px solid var(--line)}
.tb .tb-vd+.tb-vd{margin-top:8px}
.tb .tb-vd .tb-tl{width:56px;height:56px;border-radius:16px}
.tb .tb-vd b{display:block;font:800 15px/1.25 var(--fd)}
.tb .tb-vd small{display:block;margin-top:2px;font-size:12.5px;color:var(--muted)}
.tb .tb-vd .tb-btn{min-height:44px;padding:0 12px;font-size:13px;border-radius:14px}
.tb .tb-vg2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tb .tb-vt{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-height:92px;padding:12px;border-radius:20px;border:1.5px solid var(--line);background:var(--card);text-align:left;transition:transform .3s var(--spring)}
.tb .tb-vt:hover{transform:translateY(-2px)}
.tb .tb-vt .tb-vti{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--b,var(--paper2));color:var(--c,var(--ink2))}
.tb .tb-vt b{font:800 14px/1.2 var(--fd)}
.tb .tb-vt small{font-size:12px;color:var(--muted)}
.tb .tb-vt.tb-soon{border-style:dashed;background:none;cursor:default}
.tb .tb-vt.tb-soon:hover{transform:none}
.tb .tb-vt .tb-sn{font:700 15px var(--fh);color:var(--tang-d)}
.tb .tb-vcs{display:flex;align-items:center;gap:12px;padding:12px;border-radius:20px;background:var(--card);border:1.5px solid var(--line)}
.tb .tb-vcs .tb-ci{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--sun-bg);color:var(--sun-d)}
.tb .tb-vcs b{display:block;font:800 15px var(--fd)}
.tb .tb-vcs small{font-size:12.5px;color:var(--muted)}
.tb .tb-vcs .tb-fill{flex:1}
.tb .tb-vdel{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;margin-top:22px;border:0;border-radius:16px;background:none;font:700 14px var(--fb);color:var(--al)}
.tb .tb-vdel:hover{background:var(--al-bg)}
.tb .tb-cfm{margin-top:10px;padding:14px;border-radius:18px;background:var(--al-bg)}
.tb .tb-cfm p{margin:0 0 10px;font-size:13.5px;line-height:1.45;color:var(--ink)}
.tb .tb-cfm .tb-row{display:flex;gap:8px}
.tb .tb-cfm .tb-row .tb-btn{flex:1}
.tb .tb-btn.tb-dan{background:var(--al);box-shadow:none;color:#fff}
.tb .tb-lseg{display:grid;grid-template-columns:1fr 1fr;margin-top:12px;padding:4px;border-radius:16px;background:var(--paper2)}
.tb .tb-lseg span{min-height:44px;display:grid;place-items:center;border-radius:12px;font:800 14.5px var(--fd);color:var(--ink2)}
.tb .tb-lseg span.tb-on{background:var(--dark);color:var(--on-dark)}
.tb .tb-emp{display:flex;flex-direction:column;align-items:center;text-align:center;margin-top:28px;padding:24px 18px;border-radius:24px;border:2px dashed var(--line2)}
.tb .tb-emp .tb-ef{width:96px;height:96px;border-radius:30px;background:var(--sun-bg);overflow:hidden;transform:rotate(-4deg)}
.tb .tb-emp .tb-ef svg{width:100%;height:100%}
.tb .tb-emp b{margin-top:12px;font:800 19px var(--fd)}
.tb .tb-emp p{margin:6px 0 16px;font-size:13.5px;line-height:1.45;color:var(--ink2);max-width:32ch}
.tb .tb-mt{margin-top:12px;padding:14px;border-radius:22px;background:var(--card);border:1.5px solid var(--line)}
.tb .tb-mt .tb-mth{display:flex;align-items:center;gap:12px}
.tb .tb-mt .tb-mth .tb-ti2{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:var(--tang-bg);color:var(--tang-d);transform:rotate(-4deg)}
.tb .tb-mt b.tb-mn{display:block;font:800 17px/1.2 var(--fd)}
.tb .tb-mt small{font-size:12.5px;color:var(--muted)}
.tb .tb-mt .tb-mcs{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px}
.tb .tb-mt .tb-hist{margin-top:12px;padding-top:10px;border-top:1.5px dashed var(--line)}
.tb .tb-mt .tb-hist .tb-hl2{font:800 11px var(--fb);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.tb .tb-mt .tb-hist ul{margin:6px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.tb .tb-mt .tb-hist li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink2)}
.tb .tb-mt .tb-hist li .tb-tl{width:28px;height:28px;border-radius:9px}
.tb .tb-mt .tb-hist li b{color:var(--ink)}
.tb .tb-mt .tb-btn{width:100%;margin-top:12px}
.tb .tb-ww{position:absolute;inset:0;z-index:40;display:grid;place-items:center;padding:24px;background:var(--scrim)}
.tb .tb-win{position:relative;width:min(760px,100%);height:min(700px,100%);border-radius:30px;overflow:hidden;box-shadow:0 40px 90px -30px rgba(0,0,0,.6);transition:width .5s var(--spring)}
.tb .tb-win.tb-wide{width:min(1020px,100%)}
.tb .tb-win .tb-tf{position:absolute}
.tb .tb-win .tb-tf-b{padding:24px 32px 32px}
.tb .tb-win .tb-tf-f{padding:14px 32px 20px;grid-template-columns:minmax(0,1fr) minmax(0,280px);justify-content:end}
.tb .tb-win .tb-tf-f:not(.tb-two){grid-template-columns:minmax(0,320px);justify-content:end}
.tb .tb-win .tb-tf-h{padding:16px 20px 0}
.tb .tb-win .tb-fmts{grid-template-columns:repeat(4,minmax(0,1fr))}
.tb .tb-win .tb-prop{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,330px);gap:20px;align-items:start}
.tb .tb-win .tb-qg{grid-template-columns:minmax(0,1fr) repeat(var(--n),72px)}
.tb .tb-win .tb-gl{display:grid;grid-template-columns:1fr 1fr;align-items:start}
.tb .tb-win .tb-gl .tb-addg{grid-column:1/-1}
.tb .tb-win .tb-wt{padding-top:20px}
.tb .tb-win .tb-qt{font-size:30px}
.tb .tb-win .tb-tf-pp{width:48px;height:48px}
.tb .tb-win .tb-fin2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px 24px;align-items:start}
.tb .tb-win .tb-fin2 .tb-fhd{grid-column:1/-1}
.tb .tb-win .tb-fin2 .tb-menuc{grid-row:2/4}
.tb .tb-win .tb-short{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;align-items:center}
.tb .tb-win .tb-short .tb-sh,.tb .tb-win .tb-short p{grid-column:1}
.tb .tb-win .tb-short .tb-srow{grid-column:2;grid-row:1/3}
.tb .tb-win .tb-short p{margin:0}
.tb .tb-dk-page .tb-vh{border-radius:26px;margin-bottom:6px}
.tb .tb-dk-page .tb-vcols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:24px;align-items:start}
.tb .tb-dk-page .tb-vg2{grid-template-columns:repeat(2,minmax(0,1fr))}
.tb .tb-dk-page .tb-vcols>div:last-child{position:sticky;top:16px}
@media (prefers-reduced-motion:reduce){.tb *{animation:none!important;transition-duration:.01ms!important}}
.tb .tb-btn.tb-rad-src{visibility:hidden}
.tb .tb-rad{position:fixed;inset:0;z-index:400}
.tb .tb-rad-scrim{position:fixed;left:var(--hx);top:var(--hy);width:var(--hw);height:var(--hh);border-radius:var(--br);overflow:hidden;background:rgba(42,33,27,.4);-webkit-backdrop-filter:blur(6px) saturate(.9);backdrop-filter:blur(6px) saturate(.9);animation:tb-radIn .3s ease both}
.tb .tb-rad-c{position:fixed;left:var(--cx);top:var(--cy);width:0;height:0}
.tb .tb-rad-ring{position:absolute;left:calc(var(--Rx) * -1 - 4px);top:calc(var(--Ry) * -1 - 4px);width:calc(var(--Rx) * 2 + 8px);height:calc(var(--Ry) * 2 + 8px);overflow:visible;animation:tb-radSpin 1.1s cubic-bezier(.3,1.2,.4,1) both}
.tb .tb-rad-ring ellipse{fill:rgba(255,253,246,.14);stroke:#FFFDF6;stroke-width:2.5;stroke-dasharray:6 9;stroke-linecap:round;stroke-dashoffset:var(--L);animation:tb-radDraw .7s cubic-bezier(.5,0,.2,1) .05s forwards}
@keyframes tb-radDraw{to{stroke-dashoffset:0}}
@keyframes tb-radSpin{from{rotate:-120deg;scale:.4}to{rotate:0deg;scale:1}}
@keyframes tb-radIn{from{opacity:0}}
.tb .tb-rad-q{position:absolute;left:0;top:calc(var(--Ry) * -1 - var(--B) / 2 - 30px - 34px);translate:-50% 0;white-space:nowrap;font:700 24px/1 var(--fh);color:#FFFDF6;rotate:-3deg;text-shadow:0 2px 10px rgba(0,0,0,.25);animation:tb-radQ .5s var(--spring) .35s both}
.tb .tb-rad.tb-m .tb-rad-q{font-size:21px}
@keyframes tb-radQ{from{opacity:0;translate:-50% 10px;scale:.8}}
.tb .tb-rad-o,.tb .tb-rad-m{position:absolute;left:0;top:0;padding:0;border:0;background:none;cursor:pointer;color:var(--ink);font:inherit}
.tb .tb-rad-o{width:var(--B);height:var(--B);translate:calc(var(--x) - var(--B) / 2) calc(var(--y) - var(--B) / 2);animation:tb-radBurst .62s cubic-bezier(.3,1.5,.45,1) calc(var(--k) * 42ms + 90ms) both}
@keyframes tb-radBurst{0%{translate:calc(var(--B) / -2) calc(var(--B) / -2);scale:.15;rotate:-160deg;opacity:0}
  45%{opacity:1}
  100%{translate:calc(var(--x) - var(--B) / 2) calc(var(--y) - var(--B) / 2);scale:1;rotate:0deg;opacity:1}}
.tb .tb-rad-d{width:100%;height:100%;border-radius:50%;background:var(--bg);color:var(--c);border:2.5px solid var(--ink);box-shadow:0 4px 0 var(--ink);display:grid;place-items:center;transition:scale .35s var(--spring),rotate .45s var(--spring),background .25s,color .25s,box-shadow .2s}
.tb .tb-rad-d svg{width:46%;height:46%}
.tb .tb-rad-l{padding:4px 10px 5px;border-radius:999px;background:#FFFDF6;border:2px solid var(--ink);font:800 13px/1.1 var(--fd);white-space:nowrap;transition:scale .35s var(--spring),background .25s,color .25s}
.tb .tb-rad-o .tb-rad-l{position:absolute;left:50%;top:50%;translate:-50% calc(var(--ly) + var(--ay));transform-origin:50% 50%}
.tb .tb-rad.tb-m .tb-rad-l{font-size:11.5px;padding:3px 8px 4px}
.tb .tb-rad-o:hover .tb-rad-d,.tb .tb-rad-o:focus-visible .tb-rad-d{background:var(--c);color:#fff;scale:1.14;rotate:-10deg;box-shadow:0 6px 0 var(--ink)}
.tb .tb-rad-o:hover .tb-rad-l,.tb .tb-rad-o:focus-visible .tb-rad-l{background:var(--ink);color:#fff;scale:1.06}
.tb .tb-rad-o:focus-visible,.tb .tb-rad-m:focus-visible{outline:none}
.tb .tb-rad-o:active .tb-rad-d{scale:.94}
.tb .tb-rad-m{display:flex;flex-direction:column;align-items:center;gap:5px;translate:-50% calc(var(--F) / -2);animation:tb-radMid .55s var(--spring) both}
.tb .tb-rad-f{width:var(--F);height:var(--F);border-radius:30%;overflow:hidden;background:var(--tang,#F0682F);border:2.5px solid var(--ink);box-shadow:0 4px 0 var(--ink);rotate:-6deg;transition:rotate .45s var(--spring),scale .35s var(--spring)}
.tb .tb-rad-f svg{width:100%;height:100%;display:block}
.tb .tb-rad-m .tb-rad-l{background:var(--ink);color:#fff;font-size:12px;padding:3px 9px 4px}
.tb .tb-rad-m:hover .tb-rad-f,.tb .tb-rad-m:focus-visible .tb-rad-f{rotate:8deg;scale:1.1}
.tb .tb-rad-m:focus-visible .tb-rad-l{background:var(--tang-d,#DA541E)}
@keyframes tb-radMid{0%{scale:.2;rotate:-30deg;opacity:0}70%{scale:1.12;opacity:1}100%{scale:1;rotate:0deg}}
.tb .tb-rad-sp i{position:absolute;left:-5px;top:-5px;width:10px;height:10px;background:#FFC53D;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);
  --a:calc(var(--k) * 60deg + 30deg);opacity:0;animation:tb-radSpark .8s ease-out calc(.12s + var(--k) * 30ms) both}
@keyframes tb-radSpark{0%{opacity:1;transform:rotate(var(--a)) translateX(10px) scale(.4)}100%{opacity:0;transform:rotate(var(--a)) translateX(calc(var(--Ry) * .8)) scale(1.3) rotate(140deg)}}
.tb .tb-rad-x{position:fixed;right:var(--xr);top:var(--xt);width:44px;height:44px;border-radius:50%;border:2px solid var(--ink);background:#FFFDF6;color:var(--ink);display:grid;place-items:center;cursor:pointer;animation:tb-radQ .4s var(--spring) .2s both;transition:rotate .35s var(--spring)}
.tb .tb-rad-x:hover{rotate:90deg}
.tb .tb-rad.tb-picked .tb-rad-o:not(.tb-chosen),.tb .tb-rad.tb-picked .tb-rad-m:not(.tb-chosen){animation:tb-radSuck .34s cubic-bezier(.6,0,.8,.4) forwards}
@keyframes tb-radSuck{to{translate:calc(var(--B) / -2) calc(var(--B) / -2);scale:.1;rotate:120deg;opacity:0}}
.tb .tb-rad.tb-picked .tb-rad-m:not(.tb-chosen){animation-name:tb-radOut}
.tb .tb-rad.tb-picked .tb-rad-o.tb-chosen{animation:tb-radChosen .7s cubic-bezier(.3,1.4,.45,1) forwards}
.tb .tb-rad.tb-picked .tb-rad-o.tb-chosen .tb-rad-d{background:var(--c);color:#fff;scale:1.18}
.tb .tb-rad.tb-picked .tb-rad-o.tb-chosen .tb-rad-l{opacity:0;transition:opacity .2s}
@keyframes tb-radChosen{40%{translate:calc(var(--x) * .6 - var(--B) / 2) calc(var(--y) * .6 - var(--B) / 2);scale:1.3}100%{translate:calc(var(--B) / -2) calc(var(--B) / -2);scale:1.5}}
.tb .tb-rad.tb-picked .tb-rad-m.tb-chosen{animation:tb-radChosenM .6s var(--spring) forwards}
@keyframes tb-radChosenM{50%{scale:1.25;rotate:12deg}100%{scale:1.4;rotate:-6deg}}
.tb .tb-rad.tb-picked .tb-rad-ring{animation:tb-radSpinOut .6s cubic-bezier(.5,0,.2,1) forwards}
@keyframes tb-radSpinOut{to{rotate:200deg;scale:.3;opacity:0}}
.tb .tb-rad.tb-out .tb-rad-scrim{animation:tb-radOut .28s ease forwards}
.tb .tb-rad.tb-out .tb-rad-c,.tb .tb-rad.tb-out .tb-rad-x,.tb .tb-rad.tb-out .tb-rad-q{animation:tb-radOut .22s ease forwards}
.tb .tb-rad.tb-out:not(.tb-picked) .tb-rad-o{animation:tb-radSuck .24s cubic-bezier(.6,0,.8,.4) forwards}
@keyframes tb-radOut{to{opacity:0}}
@media (prefers-reduced-motion:reduce){.tb *{animation:none!important;transition-duration:.01ms!important}}

/* ---------- propres à l'appli (scripts/table-ui-css.py, EXTRA) ---------- */
/* Le parcours et la vue du repas : au-dessus des fenêtres de l'appli (425 à 430), sous les messages (500). */
.tb.tb-over{position:fixed;inset:0;z-index:432;font-family:var(--fb);color:var(--ink);line-height:1.4;text-align:left}
.tb.tb-over .tb-tf{position:absolute;inset:0}
/* Ordinateur : la fenêtre centrée de la maquette (760 px, 1 020 à la proposition). */
/* La fenêtre `.tb-win` de la maquette n'existe que sur ordinateur (le module ne la pose pas sur téléphone). */
@media (min-width:601px){
  .tb.tb-over{display:grid;place-items:center;padding:24px;background:var(--scrim)}
  .tb.tb-over .tb-vue{position:relative;width:min(1020px,100%);height:min(780px,100%);border-radius:30px;overflow:hidden;box-shadow:0 40px 90px -30px rgba(0,0,0,.6)}
}
@media (max-width:600px){.tb.tb-over .tb-vue{position:absolute;inset:0}}
/* La vue du repas : un en-tête, un corps qui défile. */
.tb .tb-vue{display:flex;flex-direction:column;background:var(--bg)}
.tb .tb-vue .tb-vb{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:4px 16px 32px}
@media (min-width:601px){.tb .tb-vue .tb-vb{padding:8px 28px 32px}.tb .tb-vue .tb-vcols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,360px);gap:24px;align-items:start}.tb .tb-vue .tb-vg2{grid-template-columns:1fr 1fr}}
/* La carte du planning, la case du reste de la semaine et Mes tables vivent DANS l'écran de l'appli. */
.tb.tb-in{font-family:var(--fb);color:var(--ink);line-height:1.4;text-align:left}
.tb.tb-in .tb-mc+.tb-mc{margin-top:0}
.tb .tb-mc.tb-tbl{margin:0}
/* La case du reste de la semaine : la pastille, le nom, les couverts. */
.tb .tb-cell{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:6px 10px 6px 6px;border-radius:16px;border:2px solid var(--edge);background:var(--card);box-shadow:0 3px 0 var(--edge);text-align:left}
.tb .tb-cell .tb-tl{width:44px;height:44px;border-radius:12px}
.tb .tb-cell .tb-ct{flex:1;min-width:0}
.tb .tb-cell small{display:block;font:800 10px var(--fb);letter-spacing:.06em;color:var(--muted)}
.tb .tb-cell b{display:block;font:800 13.5px/1.2 var(--fd);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tb .tb-cell em{font-style:normal;font:700 11.5px var(--fb);color:var(--tang-d)}
/* « À venir » : les repas de table d'une semaine que le planning ne montre pas encore. */
.tb .tb-venir{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.tb .tb-venir>b{font:800 17px var(--fd)}
/* Une vignette : la photo du plat quand le catalogue en a une. */
.tb .tb-tl img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.tb .tb-tl.tb-photo{overflow:hidden}
/* La recherche d'un plat de Mon livre, dans la proposition. */
.tb .tb-livre{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.tb .tb-livre .tb-fld{min-height:48px}
.tb .tb-livre ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto}
.tb .tb-livre li button{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:4px 10px 4px 4px;border-radius:14px;border:1.5px solid var(--line);background:var(--card);text-align:left;font:700 13.5px var(--fb)}
.tb .tb-livre li .tb-tl{width:40px;height:40px;border-radius:11px}
.tb .tb-livre p{margin:0;font-size:13px;color:var(--muted)}
/* Les articles d'un repas de table, dans la liste de courses. */
.tb .tb-spin{width:15px;height:15px;border-radius:50%;border:2.5px solid currentColor;border-right-color:transparent;animation:tb-spin .7s linear infinite}
@keyframes tb-spin{to{transform:rotate(360deg)}}
.tb .tb-toast{position:absolute}
.tb.tb-over>.tb-toast{position:fixed}
/* Étape 1 : le calendrier du mois (20/10/2026, remplace la bande de 21 jours). */
.tb .tb-cal{padding:10px;border-radius:22px;background:var(--card);border:1.5px solid var(--line)}
.tb .tb-calh{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.tb .tb-calh b{font:800 16px var(--fd);text-transform:capitalize}
.tb .tb-calh .tb-ib:disabled{opacity:.3;cursor:default}
.tb .tb-calg{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.tb .tb-calg>span{padding:4px 0;text-align:center;font:800 10.5px var(--fb);letter-spacing:.06em;color:var(--muted)}
.tb .tb-cd{position:relative;min-height:44px;border-radius:12px;border:1.5px solid var(--line);background:var(--card);font:800 15px var(--fd);color:var(--ink);transition:transform .3s var(--spring),background .2s}
.tb .tb-cd.tb-ng{border-style:dashed}
.tb .tb-cd.tb-auj{box-shadow:inset 0 0 0 2px var(--tang)}
.tb .tb-cd.tb-tk::after{content:"";position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--tang)}
.tb .tb-cd:disabled{opacity:.3;cursor:default;border-style:solid}
.tb .tb-cd[aria-pressed="true"]{background:var(--dark);border-color:var(--dark);color:var(--on-dark);transform:rotate(-3deg)}
/* La légende de « qui mange quoi » : la règle `.qlg span` en flex poussait les icônes à gauche. */
.tb .tb-qlg .tb-qc{display:grid;place-items:center;flex:none}
/* La page du repas, dans l'écran de l'appli (handoff v2). */
.tb.tb-pagew{margin:0 0 32px}
.tb .tb-dk-page .tb-vh{border-radius:26px}
/* La colonne de l'appli est plus étroite que celle de la maquette (840 px) : le partage sur deux colonnes. */
.tb .tb-dk-page .tb-vcols{grid-template-columns:minmax(0,1fr) minmax(0,320px)}
.tb .tb-dk-page .tb-vg2{grid-template-columns:1fr 1fr}
@media (max-width:600px){
  /* Handoff v3 (21/10/2026), règles « .app » de la maquette (le téléphone) : l'assiette à 112 px,
     « Avec … » sous l'illustration sans ses petites têtes, les assiettes des versions plus petites,
     « La recette » sous chaque version ; la colonne de droite ne colle plus. */
  .tb .tb-dk-page .tb-vdish{--D:112px;grid-row:2 / span 3;margin:4px -2px 0 0}
  .tb .tb-dk-page .tb-vh{padding-right:22px}
  .tb .tb-dk-page .tb-vh>.tb-vw{grid-column:1/-1}
  .tb .tb-dk-page .tb-vh>.tb-vw>.tb-avs{display:none}
  .tb .tb-dk-page .tb-vcols>div:last-child{position:static}
  .tb .tb-svc{padding:14px}
  .tb .tb-svc .tb-sv-stage{padding:18px 8px 22px}
  .tb .tb-svc .tb-sv-pl{width:112px;height:112px}
  .tb .tb-svc .tb-sv-pl.tb-v{width:90px;height:90px}
  .tb .tb-svc .tb-sv-row{grid-template-columns:11px minmax(0,1fr);gap:12px}
  .tb .tb-svc .tb-sv-row .tb-btn{grid-column:2;justify-self:start}
  .tb .tb-dk-page .tb-vcols{display:block}
  .tb .tb-dk-page .tb-vg2{grid-template-columns:1fr 1fr}
  .tb .tb-dk-page .tb-vh{margin:0 -16px;border-radius:0 0 26px 26px}
}
.tb h1:focus,.tb h2:focus,.tb [tabindex="-1"]:focus,.tb [tabindex="-1"]:focus-visible{outline:none}
/* PLEIN ÉCRAN SUR ORDINATEUR (21/10/2026, demande de Jérémy : « comme la création de recette »).
   La fenêtre de la maquette prend tout l'écran ; le bandeau du haut et le pied vont d'un bord à
   l'autre, le contenu reste dans une colonne centrée (780 px, 1 080 à la proposition). */
@media (min-width:601px){
  .tb.tb-over:has(>.tb-win){padding:0;background:var(--bg)}
  .tb .tb-win,.tb .tb-win.tb-wide{width:100%;height:100%;border-radius:0;box-shadow:none;transition:none}
  .tb .tb-win .tb-tf{--cw:780px}
  .tb .tb-win.tb-wide .tb-tf{--cw:1080px}
  .tb .tb-win .tb-tf-h{padding:16px max(24px,calc((100% - var(--cw)) / 2)) 0}
  .tb .tb-win .tb-tf-b{padding:36px max(32px,calc((100% - var(--cw)) / 2)) 56px}
  .tb .tb-win .tb-tf-f{padding:14px max(32px,calc((100% - var(--cw)) / 2)) 20px}
  .tb .tb-win .tb-qt{font-size:34px}
}
/* Retours du 21/10/2026 au soir. « Ajouter un convive » reste à l'écran (collé en bas de la liste). */
.tb .tb-addg{position:sticky;bottom:10px;z-index:4;background:var(--bg);box-shadow:0 10px 24px -12px rgba(80,45,15,.45)}
.tb .tb-addg:hover{background:var(--tang-bg)}
.tb .tb-tf-b{scroll-padding-bottom:84px}
/* « Un seul plat suffit ? » : une version devient le plat de toute la table. */
.tb .tb-tous{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}
.tb .tb-tous .tb-tl3{width:100%;font:700 18px/1.1 var(--fh);color:var(--tang-d)}
.tb .tb-tous .tb-chip{min-height:40px;padding:0 12px;font-size:13px;color:var(--ink)}
.tb .tb-tous .tb-chip{max-width:100%;min-width:0}
.tb .tb-tous .tb-chip span{min-width:0;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tb .tb-tous .tb-chip small{font:700 11px var(--fb);color:var(--muted)}
.tb .tb-tous .tb-chip:hover{border-color:var(--tang);background:var(--tang-bg)}
/* « Enregistre cette table » : un vrai bloc d'enregistrement, bien visible. */
.tb .tb-save2{grid-template-columns:48px minmax(0,1fr);padding:16px;border:2px solid var(--edge);box-shadow:0 5px 0 var(--edge);background:var(--sun-bg)}
.tb .tb-save2 .tb-si2{width:48px;height:48px;border-radius:15px;background:var(--sun);color:#2A211B;border:2px solid var(--edge);transform:rotate(-6deg)}
.tb .tb-save2 .tb-hand{display:block;font-size:18px;margin-bottom:2px}
.tb .tb-save2 b{font-size:18px}
.tb .tb-save2 .tb-btn{min-height:48px;padding:0 18px;font-size:15px;flex:1 0 auto}
.tb .tb-save2 .tb-row{flex-wrap:wrap}
.tb .tb-save2 .tb-fld{flex:1 1 170px}
.tb .tb-reass b{font-weight:800}
/* La page du repas : « Lire la recette » (écrite, en vert) ou « Écrire la recette » (la toque). */
.tb .tb-btn.tb-rlire{background:var(--green);box-shadow:0 4px 0 var(--green-d);color:#fff}
.tb .tb-btn.tb-recr{background:var(--card);color:var(--tang-d);border:2px dashed var(--tang);box-shadow:none}
.tb .tb-btn.tb-recr:hover{background:var(--tang-bg)}
.tb .tb-rinfo{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.tb .tb-rinfo span{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;background:var(--green-bg);color:var(--green-d);font:700 11.5px var(--fb)}
.tb .tb-rinfo span.tb-ra{background:var(--sun-bg);color:var(--sun-d)}
/* Étape 2, repas à plusieurs plats : le plat prévu laisse sa place (une note), ou devient le plat principal. */
.tb .tb-prevu{display:flex;align-items:center;gap:12px;padding:12px;border-radius:20px;background:var(--paper2);border:1.5px dashed var(--line2)}
.tb .tb-prevu .tb-tl{flex:none;width:52px;height:52px;border-radius:15px}
.tb .tb-prevu b{display:block;font:800 15px/1.25 var(--fd)}
.tb .tb-prevu small{display:block;margin-top:2px;font-size:13px;color:var(--ink2)}
/* Passe 3 : la fiche de l'hôte sur toute la largeur ; « La veille » et « Le jour J » du rétroplanning. */
.tb .tb-vg2 .tb-vt-hote{grid-column:1/-1}
/* Cinq formats depuis le repas de fête. */
.tb .tb-win .tb-fmts{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:600px){.tb .tb-fmts .tb-fm[data-fmt="fete"]{grid-column:1/-1}}
.tb .tb-vl{display:block;margin:4px 0 6px;font:800 12px var(--fb);letter-spacing:.1em;text-transform:uppercase;color:var(--tang-d)}
.tb .tb-fcourses.tb-veille{margin-bottom:12px}
/* Plafond du jour : une case du menu à remplir depuis Mon livre. */
.tb .tb-ds.tb-vide .tb-cr-b{border-style:dashed;background:var(--paper2)}
.tb .tb-ds.tb-vide .tb-vd0{display:grid;place-items:center;background:var(--sun-bg);color:var(--sun-d)}
.tb .tb-ds.tb-vide .tb-da .tb-btn{flex:1 1 auto}
.tb .tb-ds.tb-vide .tb-da .tb-btn{flex:1}
/* Mes tables : refaire, renommer, supprimer (audit du 21/10/2026, passe 2). */
.tb .tb-mt .tb-mtg,.tb .tb-mt .tb-mtr{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
.tb .tb-mt .tb-mtg .tb-btn,.tb .tb-mt .tb-mtr .tb-btn,.tb .tb-mt .tb-cfm .tb-btn{width:auto;margin-top:0}
.tb .tb-mt .tb-mtg .tb-btn:first-child{flex:1 1 100%}
.tb .tb-mt .tb-mtg .tb-btn.tb-sm{flex:1 1 0;min-height:44px}
.tb .tb-mt .tb-mtr .tb-fld{flex:1 1 200px;min-height:48px}
.tb .tb-mt .tb-cfm{margin-top:12px}
/* Un allergène reste sur la table (audit du 21/10/2026) : l'encadré rouge avant la pose. */
.tb .tb-warn.tb-risk{background:var(--al-bg);border:2px solid var(--al);color:var(--ink)}
.tb .tb-warn.tb-risk .tb-wi{color:var(--al)}
.tb .tb-warn.tb-risk ul{margin:6px 0 6px;padding-left:18px;font-size:13.5px;line-height:1.4}
.tb .tb-warn.tb-risk p{margin:0;font-size:13px;color:var(--ink2)}
/* « Une part à part pour Mamie » : un seul bloc de texte (le prénom est un <span>, l'inline-flex le séparait). */
.tb .tb-bad .tb-btn{display:inline-block;min-height:44px;padding:11px 16px;line-height:1.25;text-align:center}
/* L'assiette de l'en-tête (handoff v3) : la photo du plat quand le catalogue en a une. */
.tb .tb-vfood{overflow:hidden}
.tb .tb-vfood img{width:100%;height:100%;object-fit:cover}
/* Les bulles « ? » : le dessin de celle de « Écrire ma recette » (styles.css, .perso-aide-b). */
.tb .tb-tog,.tb .tb-op{position:relative}
.tb .tb-aq{position:relative;display:inline-grid;place-items:center;width:22px;height:22px;margin-left:7px;vertical-align:2px;border-radius:50%;background:#FFF1D2;color:#8A5A00;font:800 12px var(--fd);cursor:help}
.tb .tb-aq::after{content:"";position:absolute;inset:-11px}
.tb .tb-bul{position:absolute;left:12px;right:12px;top:calc(100% + 8px);z-index:6;max-width:440px;padding:10px 12px;border-radius:14px;background:var(--ink);color:#fff;font:600 12.5px/1.45 var(--fb);text-align:left;white-space:normal;outline:1.5px solid rgba(255,255,255,.18);box-shadow:0 12px 26px -14px rgba(0,0,0,.5);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .18s,transform .18s,visibility .18s;pointer-events:none}
.tb .tb-aide-on,.tb .tb-tog:has(.tb-aq:hover),.tb .tb-op:has(.tb-aq:hover){z-index:6}
.tb .tb-aide-on .tb-bul,.tb .tb-tog:has(.tb-aq:hover) .tb-bul,.tb .tb-op:has(.tb-aq:hover) .tb-bul{opacity:1;visibility:visible;transform:none}
/* Étape 5 : le temps et le niveau côte à côte, sauf sur téléphone. */
@media (min-width:601px){.tb .tb-duo{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;align-items:start}}
/* L'attente : les petites phrases qui défilent sous le message. */
.tb .tb-wsub{position:relative;width:100%;min-height:56px;margin-top:10px;overflow:hidden;font:700 20px/1.25 var(--fh);color:var(--tang-d)}
@media (min-width:601px){.tb .tb-win .tb-wt{padding-top:7vh}}
.tb .tb-wsub span{position:absolute;left:0;right:0;top:0;padding:0 12px}
/* Audit du 22/10/2026. Le gris des petits textes, plus foncé pour le contraste (AA sur le papier). */
.tb{--muted:#7A654B}
/* « Qui mange quoi » : une photo de plat reste dans son assiette ronde. */
.tb .tb-qm-p .tb-qm-d{overflow:hidden}
.tb .tb-qm-p .tb-qm-d img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.tb .tb-qm-p.tb-mini .tb-qm-d img{width:100%;height:100%;object-fit:cover;border-radius:50%}
/* 44 px pour tout ce qui se touche : les pastilles des convives et « Retirer ce convive ». */
.tb .tb-ct,.tb .tb-gdel{min-height:44px}
/* « Le remplacer » : la ligne verte qui dit ce qui va se passer, avec « Annuler ». */
.tb .tb-reass.tb-rempl{margin-top:12px}
.tb .tb-reass.tb-rempl>span{flex:1;min-width:0}
.tb .tb-reass.tb-rempl .tb-btn{flex:none;width:auto;margin:0}
/* Sous « Enregistre cette table » : qui voit ces informations. */
.tb .tb-save2 small.tb-partage{margin-top:6px;color:var(--muted)}
/* Les bulles de prénoms : un contour quand on y arrive au clavier. */
.tb .tb-av[tabindex="0"]:focus-visible{outline:3px solid var(--tang);outline-offset:2px}
