/* Phone Farm · reprend les jetons, polices et composants du tableau MailCheap (news.tivollem.com), chargés par /mc/mailcheap.css. */
:root { --c-tt: oklch(0.145 0 0); --c-x: oklch(0.42 0 0); --c-yt: oklch(0.6 0 0); --c-ig: oklch(0.82 0 0); --ok: oklch(0.596 0.145 163.225); --warn: oklch(0.666 0.179 58.318); --bad: var(--destructive); }
.dark { --c-tt: oklch(0.985 0 0); --c-x: oklch(0.76 0 0); --c-yt: oklch(0.56 0 0); --c-ig: oklch(0.37 0 0); --ok: oklch(0.765 0.177 163.223); --warn: oklch(0.828 0.189 84.429); }
html, body { margin: 0; }
body { font-family: "Geist", "Geist Fallback", ui-sans-serif, system-ui, sans-serif; background: var(--background); color: var(--foreground); -webkit-font-smoothing: antialiased; font-size: 14px; line-height: 1.45; }
* { box-sizing: border-box; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: inherit; text-decoration: none; }
.num { font-variant-numeric: tabular-nums; }
.mute { color: var(--muted-foreground); }
.display { font-family: var(--font-newsreader), "Iowan Old Style", Georgia, serif; }
svg.i { width: 16px; height: 16px; flex: none; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* coque */
.shell { display: flex; min-height: 100dvh; }
.side { position: sticky; top: 0; height: 100dvh; width: 240px; flex: none; display: flex; flex-direction: column; border-right: 1px solid color-mix(in oklab, var(--border) 60%, transparent); padding: 16px 12px; }
.side .haut { flex: 1; overflow-y: auto; min-height: 0; }
.mark { display: flex; align-items: center; gap: 8px; height: 36px; padding: 0 10px; margin-bottom: 16px; }
.mark img { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; }
.mark span { font-size: 17px; font-weight: 500; letter-spacing: -.02em; }
.marques { display: flex; flex-direction: column; gap: 2px; padding: 4px; border-radius: 14px; background: var(--card); box-shadow: var(--surface-shadow); margin-bottom: 20px; }
.marques button { display: flex; align-items: center; gap: 10px; border: 0; background: none; padding: 7px 8px; border-radius: 10px; cursor: pointer; text-align: left; transition: background-color .15s; }
.marques button:hover { background: color-mix(in oklab, var(--muted) 60%, transparent); }
.marques button[aria-pressed="true"] { background: var(--muted); }
.marques .av { width: 26px; height: 26px; border-radius: 7px; display: grid; place-items: center; font-size: 11px; font-weight: 600; background: var(--secondary); overflow: hidden; flex: none; }
.marques .av img { width: 100%; height: 100%; object-fit: cover; }
.marques b { display: block; font-weight: 500; font-size: 13.5px; }
.marques small { display: block; color: var(--muted-foreground); font-size: 12px; }
nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
nav ul + ul { border-top: 1px solid color-mix(in oklab, var(--border) 60%, transparent); padding-top: 12px; margin-top: 12px; }
nav a { display: flex; height: 36px; align-items: center; gap: 10px; border-radius: 8px; padding: 0 12px 0 10px; font-size: 14px; font-weight: 500; color: var(--muted-foreground); transition: background-color .15s, color .15s; }
nav a:hover { background: color-mix(in oklab, var(--muted) 60%, transparent); color: var(--foreground); }
nav a[aria-current="page"] { background: var(--muted); color: var(--foreground); }
nav a .pastille { margin-left: auto; font-size: 11.5px; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 99px; display: grid; place-items: center; background: color-mix(in oklab, var(--bad) 18%, transparent); color: var(--bad); font-weight: 600; }
.bas { padding-top: 16px; display: flex; align-items: center; gap: 8px; }
.bas .moi { flex: 1; min-width: 0; font-size: 12.5px; color: var(--muted-foreground); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding-left: 10px; }
.icone { width: 32px; height: 32px; display: grid; place-items: center; border: 0; background: none; border-radius: 8px; color: var(--muted-foreground); cursor: pointer; }
.icone:hover { background: var(--muted); color: var(--foreground); }
main { flex: 1; min-width: 0; }
.page { max-width: 72rem; margin: 0 auto; padding: 40px; }
.mob { display: none; }

/* en-tête de page */
.hp { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; margin-bottom: 32px; }
.hp h1 { margin: 0; font-size: 24px; font-weight: 600; letter-spacing: -.025em; }
.outils { display: flex; flex-wrap: wrap; gap: 8px; }
.seg { display: inline-flex; padding: 3px; border-radius: 10px; background: var(--muted); }
.seg button { border: 0; background: none; height: 28px; padding: 0 10px; border-radius: 7px; font-size: 13px; font-weight: 500; color: var(--muted-foreground); cursor: pointer; transition: color .15s, background-color .15s; }
.seg button[aria-pressed="true"] { background: var(--background); color: var(--foreground); box-shadow: var(--surface-shadow); }
.dark .seg button[aria-pressed="true"] { background: var(--card); }
.champ-txt { height: 36px; border-radius: 8px; border: 1px solid var(--input); background: transparent; padding: 0 10px; min-width: 220px; outline: none; }
.dark .champ-txt { background: color-mix(in oklab, var(--input) 30%, transparent); }
.champ-txt:focus { border-color: var(--ring); box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent); }

/* sections, cartes */
.sections { display: flex; flex-direction: column; gap: 32px; }
.sec-t { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 12px; }
.sec-t h2 { margin: 0; font-size: 14px; font-weight: 500; }
.sec-t a { font-size: 13px; color: var(--muted-foreground); }
.sec-t a:hover { color: var(--foreground); }
.carte { border-radius: 16px; background: var(--card); box-shadow: var(--surface-shadow); overflow: hidden; }
.carte.xl { border-radius: 12px; }
.stats { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px; background: color-mix(in oklab, var(--border) 60%, transparent); margin: 0; }
.stats div { background: var(--card); padding: 14px 20px; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.stats dt { font-size: 12px; color: var(--muted-foreground); }
.stats dd { margin: 0; }
.stats .v { font-size: 18px; font-weight: 600; letter-spacing: -.025em; }
.stats .d { font-size: 12px; color: var(--muted-foreground); }
.up { color: var(--ok) !important; } .down { color: var(--bad) !important; }
.bloc { padding: 24px; border-top: 1px solid color-mix(in oklab, var(--border) 60%, transparent); display: flex; flex-direction: column; gap: 24px; }
.bloc-t { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; }
.bloc-t h3 { margin: 0 0 4px; font-size: 14px; font-weight: 500; color: var(--muted-foreground); }
.gros { font-size: 36px; font-weight: 600; letter-spacing: -.025em; }
.legende { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 12px; color: var(--muted-foreground); }
.legende span { display: inline-flex; align-items: center; gap: 6px; }
.legende i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.cartes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.cs { display: flex; flex-direction: column; gap: 6px; border-radius: 12px; background: var(--card); box-shadow: var(--surface-shadow); padding: 16px; }
.cs .l { font-size: 13px; color: var(--muted-foreground); display: flex; align-items: center; gap: 6px; }
.cs .v { font-size: 24px; font-weight: 600; letter-spacing: -.025em; }
.cs .d { font-size: 12px; color: var(--muted-foreground); }

/* graphique (ChartFrame) */
.chart { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; font-size: 11px; color: var(--muted-foreground); }
.chart .ax { position: relative; }
.chart .ax span { position: absolute; right: 0; transform: translateY(-50%); line-height: 1; white-space: nowrap; }
.chart .plot { position: relative; height: 176px; }
.chart .plot .g { position: absolute; left: 0; right: 0; border-top: 1px dashed var(--border); }
.chart .barres { position: absolute; inset: 0; display: flex; align-items: flex-end; gap: 4px; }
.chart .barre { position: relative; flex: 1; height: 100%; display: flex; flex-direction: column-reverse; cursor: default; }
.chart .barre span { display: block; min-height: 0; }
.chart .barre span:last-child { border-radius: 3px 3px 0 0; }
.chart .barre:hover span { opacity: .75; }
.chart .x { position: relative; grid-column: 2; margin-top: 12px; height: 14px; }
.chart .x span { position: absolute; top: 0; white-space: nowrap; line-height: 1; }
.chart .vide { position: absolute; inset: 0; display: grid; place-items: center; font-size: 13px; }
.bulle { position: fixed; z-index: 30; pointer-events: none; background: var(--popover); color: var(--popover-foreground); box-shadow: var(--surface-shadow), 0 8px 24px -6px rgb(0 0 0 / .14); border-radius: 10px; padding: 8px 10px; font-size: 12px; min-width: 140px; }
.bulle b { display: block; margin-bottom: 4px; font-weight: 500; }
.bulle div { display: flex; justify-content: space-between; gap: 14px; color: var(--muted-foreground); }
.bulle div em { font-style: normal; color: var(--foreground); font-variant-numeric: tabular-nums; }

/* tableaux */
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th { text-align: left; font-weight: 500; color: var(--muted-foreground); font-size: 12.5px; height: 40px; padding: 0 8px; border-bottom: 1px solid var(--border); white-space: nowrap; }
td { padding: 10px 8px; border-bottom: 1px solid color-mix(in oklab, var(--border) 60%, transparent); vertical-align: middle; }
tr:last-child td { border-bottom: 0; }
th:first-child, td:first-child { padding-left: 16px; } th:last-child, td:last-child { padding-right: 16px; }
.r { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
tbody tr { cursor: pointer; transition: background-color .15s; }
tbody tr:hover { background: color-mix(in oklab, var(--muted) 50%, transparent); }
th.tri { cursor: pointer; user-select: none; } th.tri:hover { color: var(--foreground); } th.tri[aria-sort] { color: var(--foreground); }
.ct { display: flex; align-items: center; gap: 12px; min-width: 0; }
.th { width: 34px; height: 46px; border-radius: 6px; background: var(--muted) center/cover no-repeat; flex: none; }
.ct .t { min-width: 0; }
.ct .t b { display: block; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ct .t small { display: block; font-size: 12px; color: var(--muted-foreground); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
td.max { max-width: 0; width: 55%; }
.vide-c { padding: 32px 16px; text-align: center; color: var(--muted-foreground); font-size: 14px; }
.plus { display: block; width: 100%; border: 0; border-top: 1px solid color-mix(in oklab, var(--border) 60%, transparent); background: none; height: 42px; color: var(--muted-foreground); cursor: pointer; font-size: 13px; }
.plus:hover { color: var(--foreground); background: color-mix(in oklab, var(--muted) 50%, transparent); }

/* badges */
.badge { display: inline-flex; align-items: center; gap: 5px; height: 20px; padding: 0 8px; border-radius: 99px; font-size: 12px; font-weight: 500; white-space: nowrap; background: var(--secondary); color: var(--secondary-foreground); }
.badge i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.b-ok { background: color-mix(in oklab, var(--ok) 14%, transparent); color: var(--ok); }
.b-warn { background: color-mix(in oklab, var(--warn) 16%, transparent); color: var(--warn); }
.b-bad { background: color-mix(in oklab, var(--bad) 14%, transparent); color: var(--bad); }
.b-off { opacity: .55; }
.rs { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted-foreground); }
.rs i { width: 8px; height: 8px; border-radius: 2px; display: inline-block; }
.jour-t { font-size: 13px; font-weight: 500; color: var(--muted-foreground); margin: 20px 0 8px; }
.jour-t:first-child { margin-top: 0; }

/* alerte */
.alerte { display: flex; gap: 12px; align-items: flex-start; border-radius: 12px; padding: 14px 16px; background: color-mix(in oklab, var(--warn) 10%, var(--card)); box-shadow: var(--surface-shadow); font-size: 14px; }
.alerte svg { color: var(--warn); margin-top: 2px; }
.alerte a { text-decoration: underline; text-underline-offset: 3px; }

/* panneau latéral (fiche) */
.voile { position: fixed; inset: 0; background: rgb(0 0 0 / .45); z-index: 40; opacity: 0; transition: opacity .2s; }
.voile.on { opacity: 1; }
.panneau { position: fixed; top: 0; right: 0; bottom: 0; width: min(560px, 100vw); z-index: 41; background: var(--background); box-shadow: -1px 0 0 var(--border); overflow-y: auto; transform: translateX(100%); transition: transform .25s cubic-bezier(.32,.72,0,1); }
.panneau.on { transform: none; }
.panneau .ent { position: sticky; top: 0; display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; background: color-mix(in oklab, var(--background) 88%, transparent); backdrop-filter: blur(10px); border-bottom: 1px solid color-mix(in oklab, var(--border) 60%, transparent); z-index: 1; }
.panneau .ent b { font-weight: 600; font-size: 15px; }
.panneau .corps { padding: 20px; display: flex; flex-direction: column; gap: 20px; }
.media { display: flex; gap: 16px; }
.media video, .media img { width: 168px; aspect-ratio: 9/16; border-radius: 12px; background: #000; object-fit: cover; flex: none; }
.mini-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: color-mix(in oklab, var(--border) 60%, transparent); border-radius: 12px; overflow: hidden; box-shadow: var(--surface-shadow); flex: 1; align-self: flex-start; }
.mini-stats div { background: var(--card); padding: 10px 12px; }
.mini-stats dt { font-size: 11.5px; color: var(--muted-foreground); }
.mini-stats dd { margin: 0; font-size: 16px; font-weight: 600; font-variant-numeric: tabular-nums; }
.txt { white-space: pre-wrap; font-size: 14px; border-radius: 12px; background: var(--card); box-shadow: var(--surface-shadow); padding: 12px 14px; }
.lab { font-size: 12.5px; font-weight: 500; color: var(--muted-foreground); margin-bottom: 6px; }
.lignes-rs > div { display: grid; grid-template-columns: 90px 1fr auto; gap: 10px; align-items: center; padding: 10px 0; border-top: 1px solid color-mix(in oklab, var(--border) 60%, transparent); font-size: 13.5px; }
.lignes-rs .err { grid-column: 2 / 4; color: var(--bad); font-size: 12.5px; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 36px; padding: 0 14px; border-radius: 8px; border: 1px solid var(--border); background: var(--background); font-size: 14px; font-weight: 500; cursor: pointer; transition: background-color .15s, transform .15s; white-space: nowrap; }
.btn:hover { background: var(--muted); }
.btn:active { transform: scale(.96); }
.btn.p { background: var(--primary); color: var(--primary-foreground); border-color: transparent; }
.btn.p:hover { background: color-mix(in oklab, var(--primary) 80%, transparent); }
.btn.d { color: var(--destructive); }
.btn[disabled] { opacity: .5; pointer-events: none; }
.actions { display: flex; flex-wrap: wrap; gap: 8px; }
.toast { position: fixed; bottom: 20px; left: 50%; transform: translate(-50%, 8px); background: var(--popover); color: var(--popover-foreground); box-shadow: var(--surface-shadow), 0 8px 24px -6px rgb(0 0 0 / .14); padding: 10px 14px; border-radius: 10px; font-size: 14px; opacity: 0; transition: opacity .2s, transform .2s; pointer-events: none; z-index: 50; }
.toast.on { opacity: 1; transform: translate(-50%, 0); }
.enter { animation: enter .35s cubic-bezier(.22,1,.36,1) both; animation-delay: calc(var(--d, 0) * 50ms); }
@keyframes enter { from { opacity: 0; transform: translateY(6px); } }

/* connexion (LayoutSplit) */
.split { min-height: 100dvh; display: flex; flex-direction: column; padding: 24px 48px; }
.split .centre { flex: 1; display: flex; align-items: center; justify-content: center; padding: 48px 0; }
.split .boite { width: 100%; max-width: 22rem; }
.split h1 { font-family: var(--font-newsreader), "Iowan Old Style", Georgia, serif; font-size: 2.5rem; line-height: 1.05; font-weight: 480; letter-spacing: -.03em; margin: 0; text-wrap: balance; }
.split .intro { margin: 12px 0 0; font-size: 15px; line-height: 24px; color: var(--muted-foreground); }
.split form { margin-top: 32px; display: flex; flex-direction: column; gap: 12px; }
.split input { height: 44px; width: 100%; border-radius: 8px; border: 1px solid var(--input); background: transparent; padding: 0 10px; font-size: 14px; outline: none; transition: border-color .15s, box-shadow .15s; }
.dark .split input { background: color-mix(in oklab, var(--input) 30%, transparent); }
.split input:focus { border-color: var(--ring); box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent); }
.split input.code { text-align: center; font-family: "Geist Mono", ui-monospace, monospace; font-size: 18px; letter-spacing: .4em; }
.split .go { height: 44px; margin-top: 4px; border: 0; border-radius: 8px; background: var(--primary); color: var(--primary-foreground); font-size: 14px; font-weight: 500; display: inline-flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; transition: background-color .15s, transform .15s; }
.split .go:hover { background: color-mix(in oklab, var(--primary) 80%, transparent); }
.split .go:active { transform: scale(.96); }
.split .go[disabled] { opacity: .5; }
.split .err { font-size: 14px; color: var(--destructive); margin: 0; }
.split .liens { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; margin-top: 4px; }
.split .liens button { border: 0; background: none; padding: 0; color: var(--muted-foreground); cursor: pointer; }
.split .liens button:hover { color: var(--foreground); }
.split .sent { font-size: 14px; color: var(--muted-foreground); margin: 0; }
.split .sent b { color: var(--foreground); font-weight: 500; }

@media (max-width: 1023px) { .stats { grid-template-columns: repeat(3, 1fr); } .cartes { grid-template-columns: repeat(2, 1fr); } .hide-l { display: none; } }
@media (max-width: 767px) {
  .side { position: fixed; z-index: 45; left: 0; background: var(--background); transform: translateX(-100%); transition: transform .25s cubic-bezier(.32,.72,0,1); width: 270px; }
  .side.on { transform: none; box-shadow: 1px 0 0 var(--border); }
  .mob { display: flex; position: sticky; top: 0; z-index: 20; align-items: center; gap: 10px; padding: 10px 16px; background: color-mix(in oklab, var(--background) 90%, transparent); backdrop-filter: blur(10px); border-bottom: 1px solid color-mix(in oklab, var(--border) 60%, transparent); }
  .mob .mark { margin: 0; padding: 0; flex: 1; }
  .page { padding: 24px 16px 60px; }
  .hp { margin-bottom: 24px; }
  .stats div { padding: 12px 14px; }
  .cartes { grid-template-columns: 1fr 1fr; gap: 8px; }
  .cs { padding: 12px; } .cs .v { font-size: 20px; }
  .hide-m { display: none; }
  .bloc { padding: 16px; }
  .gros { font-size: 30px; }
  .chart .plot { height: 140px; } .chart .barres { gap: 2px; }
  .champ-txt { min-width: 0; flex: 1; }
  .media video, .media img { width: 128px; }
  .split { padding: 20px; }
  .outils { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .enter { animation: none; } .panneau, .side, .voile, .toast { transition: none; } }

/* sélecteur de marque (un seul bloc, comme le sélecteur de newsletter MailCheap) */
.choix { position: relative; margin-bottom: 20px; }
.choix > button { width: 100%; display: flex; align-items: center; gap: 10px; border: 0; padding: 8px; border-radius: 12px; background: var(--card); box-shadow: var(--surface-shadow); cursor: pointer; text-align: left; transition: box-shadow .15s; }
.choix > button:hover { box-shadow: var(--surface-shadow-hover); }
.choix .av { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; font-size: 11px; font-weight: 600; background: var(--secondary); overflow: hidden; flex: none; }
.choix .av img { width: 100%; height: 100%; object-fit: cover; }
.choix b { display: block; font-weight: 500; font-size: 13.5px; } .choix small { display: block; color: var(--muted-foreground); font-size: 12px; }
.choix .chev { margin-left: auto; color: var(--muted-foreground); }
.menu-m { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 30; padding: 4px; border-radius: 12px; background: var(--popover); box-shadow: var(--surface-shadow), 0 8px 24px -6px rgb(0 0 0 / .14); }
.menu-m button { width: 100%; display: flex; align-items: center; gap: 10px; border: 0; background: none; padding: 7px 8px; border-radius: 8px; cursor: pointer; text-align: left; }
.menu-m button:hover { background: var(--muted); }
.menu-m .ok { margin-left: auto; }

/* stats cliquables : choisissent la courbe */
.stats button { all: unset; box-sizing: border-box; background: var(--card); padding: 14px 20px; min-width: 0; display: flex; flex-direction: column; gap: 4px; cursor: pointer; position: relative; transition: background-color .15s; }
.stats button:hover { background: color-mix(in oklab, var(--muted) 40%, var(--card)); }
.stats button[aria-pressed="true"] { background: color-mix(in oklab, var(--muted) 70%, var(--card)); }
.stats button[aria-pressed="true"]::after { content: ""; position: absolute; left: 20px; right: 20px; bottom: 0; height: 2px; border-radius: 2px; background: var(--foreground); }
.stats button:focus-visible { outline: 2px solid var(--ring); outline-offset: -2px; }
.stats .l { font-size: 12px; color: var(--muted-foreground); }

/* calendrier mensuel */
.cal-t { display: flex; align-items: center; gap: 8px; }
.cal-t h2 { min-width: 150px; text-transform: capitalize; }
.cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: color-mix(in oklab, var(--border) 60%, transparent); }
.cal .js { background: var(--card); padding: 8px 10px; font-size: 12px; color: var(--muted-foreground); font-weight: 500; }
.cal .j { background: var(--card); min-height: 112px; padding: 8px; display: flex; flex-direction: column; gap: 6px; border: 0; text-align: left; font: inherit; color: inherit; cursor: default; min-width: 0; }
.cal .j.hors { background: color-mix(in oklab, var(--muted) 35%, var(--card)); color: var(--muted-foreground); }
.cal .j.plein { cursor: pointer; } .cal .j.plein:hover { background: color-mix(in oklab, var(--muted) 45%, var(--card)); }
.cal .n { font-size: 12.5px; font-weight: 500; font-variant-numeric: tabular-nums; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 6px; margin: -2px 0 0 -2px; }
.cal .j.auj .n { background: var(--primary); color: var(--primary-foreground); }
.cal .vign { display: flex; gap: 3px; }
.cal .vign span { width: 22px; height: 30px; border-radius: 4px; background: var(--muted) center/cover no-repeat; flex: none; }
.cal .vign em { font-style: normal; font-size: 11px; color: var(--muted-foreground); align-self: center; margin-left: 2px; }
.cal .res { display: flex; flex-wrap: wrap; gap: 2px 8px; font-size: 11px; color: var(--muted-foreground); font-variant-numeric: tabular-nums; }
.cal .res span { display: inline-flex; align-items: center; gap: 4px; }
.cal .res i { width: 6px; height: 6px; border-radius: 2px; }
.cal .tot { margin-top: auto; font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
.cal .tot small { font-weight: 400; color: var(--muted-foreground); }
.cal .pb { color: var(--bad); font-size: 11px; font-weight: 500; }
.av-c { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; flex: none; background: var(--muted); }
.av-c.sm { width: 22px; height: 22px; }
@media (max-width: 767px) {
  .cal .js { padding: 6px 4px; text-align: center; font-size: 11px; }
  .cal .j { min-height: 64px; padding: 5px; gap: 3px; align-items: center; }
  .cal .vign, .cal .res { display: none; }
  .cal .tot { font-size: 11px; text-align: center; } .cal .tot small { display: block; }
  .stats button { padding: 12px 14px; } .stats button[aria-pressed="true"]::after { left: 14px; right: 14px; }
}
