@layer modules{
/* ════════ Complément « Calendrier » - UI type Morgen ════════
   Panneau latéral (mini-mois + calques), barre de vues, grille horaire.
   Réutilise les tokens de 01-tokens.css (--card, --line, --accent, --txt, --mut…). */

.cal{ display:grid; grid-template-columns:236px 1fr; gap:0; align-items:stretch; position:relative;
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--card);
  min-height:560px; height:calc(100vh - 220px); }
@media (max-width:860px){ .cal{ grid-template-columns:1fr; height:auto; } }

/* ── Panneau latéral ── */
.cal-side{ border-right:1px solid var(--line); background:var(--card2); padding:var(--sp-14) var(--sp-12);
  display:flex; flex-direction:column; gap:var(--sp-16); overflow:auto; }
@media (max-width:860px){ .cal-side{ border-right:none; border-bottom:1px solid var(--line); } }
.cal-newbtn{ display:flex; align-items:center; justify-content:center; gap:var(--sp-6); width:100%;
  padding:var(--sp-8) var(--sp-10); border:none; border-radius:var(--radius-sm); background:var(--accent); color:var(--on-solid);
  font:inherit; font-size:var(--fs-md); font-weight:var(--fw-strong); cursor:pointer; transition:.12s; }
.cal-newbtn:hover{ background:var(--accent-h); }
.cal-newbtn svg{ width:15px; height:15px; }

/* Mini-mois */
.cal-mini{ display:flex; flex-direction:column; gap:var(--sp-6); }
.cal-mini-h{ display:flex; align-items:center; justify-content:space-between; font-size:var(--fs-sm); font-weight:var(--fw-strong); text-transform:capitalize; }
.cal-mini-nav{ display:inline-flex; gap:var(--sp-2); }
.cal-mini-nav button{ width:22px; height:22px; border:none; background:none; color:var(--mut); border-radius:var(--radius-sm);
  font-size:var(--fs-base); cursor:pointer; line-height:var(--lh-flat); }
.cal-mini-nav button:hover{ background:var(--card); color:var(--txt); }
.cal-mini-dow{ display:grid; grid-template-columns:repeat(7,1fr); gap:var(--sp-1); }
.cal-mini-dow span{ text-align:center; font-size:var(--fs-2xs); color:var(--mut2,var(--mut)); text-transform:uppercase; padding-bottom:var(--sp-2); }
.cal-mini-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:var(--sp-1); }
.cal-mini-d{ aspect-ratio:1; display:flex; align-items:center; justify-content:center; position:relative;
  border:none; background:none; color:var(--txt); font:inherit; font-size:var(--fs-xs); border-radius:50%; cursor:pointer; transition:.1s; }
.cal-mini-d:hover{ background:var(--card); }
.cal-mini-d.out{ color:var(--mut); opacity:.45; }
.cal-mini-d.today{ color:var(--accent); font-weight:var(--fw-bold); }
.cal-mini-d.sel{ background:var(--accent); color:var(--on-solid); font-weight:var(--fw-strong); }
.cal-mini-d.has::after{ content:""; position:absolute; bottom:2px; left:50%; transform:translateX(-50%);
  width:3px; height:3px; border-radius:50%; background:var(--accent); }
.cal-mini-d.sel.has::after{ background:var(--on-solid); }

/* Calques (calendriers) */
.cal-side-t{ font-size:var(--fs-2xs); font-weight:var(--fw-strong); color:var(--mut); text-transform:uppercase; letter-spacing:.05em; margin-bottom:var(--sp-6); }
.cal-layers{ display:flex; flex-direction:column; gap:var(--sp-1); }
.cal-layer{ display:flex; align-items:center; gap:var(--sp-8); padding:var(--sp-6) var(--sp-6); border-radius:var(--radius-sm); cursor:pointer; transition:.1s; }
.cal-layer:hover{ background:var(--card); }
.cal-layer input{ appearance:none; -webkit-appearance:none; width:15px; height:15px; border-radius:var(--radius-xs);
  border:1.5px solid var(--lc); background:transparent; cursor:pointer; position:relative; flex:0 0 auto; transition:.1s; }
.cal-layer input:checked{ background:var(--lc); }
.cal-layer input:checked::after{ content:"✓"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:var(--fs-2xs); color:var(--on-solid); font-weight:var(--fw-bold); }
.cal-layer-name{ flex:1; font-size:var(--fs-sm); color:var(--txt); }
.cal-layer-n{ font-size:var(--fs-xs); color:var(--mut); font-variant-numeric:tabular-nums; }

/* ── Zone principale ── */
.cal-main{ min-width:0; display:flex; flex-direction:column; }
.cal-loading{ display:flex; align-items:center; gap:var(--sp-8); color:var(--mut); padding:var(--sp-24); }
.cal-spin{ width:14px; height:14px; border:2px solid var(--line); border-top-color:var(--accent);
  border-radius:50%; display:inline-block; animation:calspin .7s linear infinite; }
@keyframes calspin{ to{ transform:rotate(360deg); } }

/* Barre supérieure */
.cal-top{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-14); flex-wrap:wrap;
  padding:var(--sp-10) var(--sp-14); border-bottom:1px solid var(--line); }
.cal-top-l{ display:flex; align-items:center; gap:var(--sp-12); min-width:0; }
.cal-top-r{ display:flex; align-items:center; gap:var(--sp-10); flex-wrap:wrap; }
.cal-nav{ display:flex; align-items:center; gap:var(--sp-4); }
.cal-period{ margin:0; font-size:var(--fs-base); font-weight:var(--fw-strong); text-transform:capitalize; white-space:nowrap; }
.cal-ico{ display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px;
  border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--card); color:var(--txt); cursor:pointer; transition:.12s; }
.cal-ico:hover{ background:var(--card2); border-color:var(--accent); }
.cal-ico svg{ width:15px; height:15px; }
.cal-today{ padding:var(--sp-6) var(--sp-12); border:1px solid var(--line); border-radius:var(--radius-sm);
  background:var(--card); color:var(--txt); font:inherit; font-size:var(--fs-sm); cursor:pointer; transition:.12s; }
.cal-today:hover{ background:var(--card2); border-color:var(--accent); }
.cal-tabs{ display:inline-flex; padding:var(--sp-2); gap:var(--sp-2); background:var(--card2); border:1px solid var(--line); border-radius:var(--radius-sm); }
.cal-tab{ padding:var(--sp-4) var(--sp-12); border:none; background:none; color:var(--mut); font:inherit; font-size:var(--fs-sm); border-radius:var(--radius-sm); cursor:pointer; transition:.12s; }
.cal-tab:hover{ color:var(--txt); }
.cal-tab.on{ background:var(--card); color:var(--txt); font-weight:var(--fw-strong); box-shadow:var(--elev-1); }
.cal-add{ display:inline-flex; align-items:center; gap:var(--sp-6); padding:var(--sp-6) var(--sp-12); border:1px solid var(--accent);
  border-radius:var(--radius-sm); background:var(--accent); color:var(--on-solid); font:inherit; font-size:var(--fs-sm); font-weight:var(--fw-strong); cursor:pointer; transition:.12s; }
.cal-add:hover{ background:var(--accent-h); }
.cal-add svg{ width:14px; height:14px; }
.cal-add.ghost{ background:transparent; color:var(--accent); }
.cal-add.ghost:hover{ background:var(--card2); }

/* Corps */
.cal-body{ flex:1; min-height:0; overflow:hidden; display:flex; flex-direction:column; }

/* ════════ GRILLE HORAIRE (Jour / Semaine) ════════ */
.cal-tg{ display:flex; flex-direction:column; height:100%; min-height:0; }
.cal-tg-head{ display:flex; border-bottom:1px solid var(--line); }
.cal-tg-corner{ width:56px; flex:0 0 56px; }
.cal-dcols-h{ flex:1; display:grid; }
.cal-dcol-h{ display:flex; flex-direction:column; align-items:center; gap:var(--sp-1); padding:var(--sp-6) var(--sp-4);
  border-left:1px solid var(--line2); background:none; color:var(--mut); font:inherit; cursor:pointer; transition:.1s; }
.cal-dcol-h:hover{ background:var(--card2); }
.cal-dcol-dow{ font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.03em; }
.cal-dcol-n{ font-size:var(--fs-lg); font-weight:var(--fw-strong); color:var(--txt); width:30px; height:30px; display:flex; align-items:center; justify-content:center; border-radius:50%; }
.cal-dcol-h.today .cal-dcol-dow{ color:var(--accent); }
.cal-dcol-h.today .cal-dcol-n{ background:var(--accent); color:var(--on-solid); }

/* Bandeau journée entière */
.cal-tg-allday{ display:flex; border-bottom:1px solid var(--line); max-height:84px; overflow:auto; }
.cal-ad-rail{ width:56px; flex:0 0 56px; padding:var(--sp-4) var(--sp-6); font-size:var(--fs-2xs); color:var(--mut); text-transform:uppercase; text-align:right; }
.cal-ad-cells{ flex:1; display:grid; }
.cal-ad-cell{ border-left:1px solid var(--line2); padding:var(--sp-2); display:flex; flex-direction:column; gap:var(--sp-2); min-height:24px; }
.cal-adchip{ display:flex; align-items:center; gap:var(--sp-4); width:100%; text-align:left; border:none;
  background:color-mix(in srgb,var(--ec) 16%, var(--card)); color:var(--txt); border-radius:var(--radius-sm); padding:var(--sp-2) var(--sp-6);
  font:inherit; font-size:var(--fs-xs); cursor:pointer; transition:.1s; border-left:2px solid var(--ec); }
.cal-adchip:hover{ background:color-mix(in srgb,var(--ec) 26%, var(--card)); }
.cal-adchip i{ width:6px; height:6px; border-radius:50%; background:var(--ec); flex:0 0 auto; }
.cal-adchip span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cal-adchip.done span{ text-decoration:line-through; color:var(--mut); }

/* Corps défilant */
.cal-tg-scroll{ flex:1; min-height:0; overflow-y:auto; overflow-x:hidden; }
.cal-tg-grid{ display:flex; position:relative; }
.cal-hours{ width:56px; flex:0 0 56px; }
.cal-hr{ position:relative; border-bottom:1px solid var(--line2); }
.cal-hr span{ position:absolute; top:-7px; right:7px; font-size:var(--fs-2xs); color:var(--mut); background:var(--card); padding:0 var(--sp-2); }
.cal-hr:first-child span{ top:1px; }
.cal-dcols{ flex:1; display:grid; position:relative; }
.cal-dcol{ position:relative; border-left:1px solid var(--line2); }
.cal-dcol.today{ background:color-mix(in srgb,var(--accent) 4%, transparent); }
.cal-slot{ border-bottom:1px solid var(--line2); }
.cal-slot:nth-child(odd){ background:color-mix(in srgb,var(--card2) 35%, transparent); }
.cal-tev{ position:absolute; border-radius:var(--radius-sm); padding:var(--sp-2) var(--sp-6); overflow:hidden; cursor:pointer;
  background:color-mix(in srgb,var(--ec) 18%, var(--card)); border-left:3px solid var(--ec);
  display:flex; flex-direction:column; gap:var(--sp-1); transition:.1s; box-sizing:border-box; }
.cal-tev:hover{ background:color-mix(in srgb,var(--ec) 30%, var(--card)); z-index:5; }
.cal-tev-t{ font-size:var(--fs-xs); font-weight:var(--fw-strong); color:var(--txt); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; line-height:1.25; }
.cal-tev-w{ font-size:var(--fs-2xs); color:color-mix(in srgb,var(--ec) 70%, var(--txt)); white-space:nowrap; }
.cal-tev.done .cal-tev-t{ text-decoration:line-through; color:var(--mut); }
.cal-tev.social{ border-left-style:dashed; }
/* Ligne « maintenant » */
.cal-now{ position:absolute; left:0; right:0; height:0; border-top:2px solid var(--err); z-index:6; pointer-events:none; }
.cal-now i{ position:absolute; left:-4px; top:-5px; width:8px; height:8px; border-radius:50%; background:var(--err); }

/* ════════ VUE MOIS ════════ */
.cal-mgrid{ display:flex; flex-direction:column; height:100%; }
.cal-mhead{ display:grid; grid-template-columns:repeat(7,1fr); border-bottom:1px solid var(--line); }
.cal-mhead span{ padding:var(--sp-6) var(--sp-10); font-size:var(--fs-2xs); font-weight:var(--fw-strong); color:var(--mut); text-transform:uppercase; letter-spacing:.03em; }
.cal-mbody{ flex:1; display:grid; grid-template-columns:repeat(7,1fr); grid-auto-rows:1fr; min-height:0; }
.cal-mcell{ border-right:1px solid var(--line2); border-bottom:1px solid var(--line2); padding:var(--sp-4) var(--sp-4);
  min-width:0; cursor:pointer; transition:background .1s; display:flex; flex-direction:column; gap:var(--sp-2); overflow:hidden; }
.cal-mcell:nth-child(7n){ border-right:none; }
.cal-mcell:hover{ background:var(--card2); }
.cal-mcell.out{ background:color-mix(in srgb,var(--card2) 50%, transparent); }
.cal-mcell.out .cal-mcell-n{ color:var(--mut); opacity:.55; }
.cal-mcell.sel{ box-shadow:inset 0 0 0 2px var(--accent); }
.cal-mcell-n{ font-size:var(--fs-sm); font-weight:var(--fw-strong); color:var(--txt); width:23px; height:21px; display:flex; align-items:center; justify-content:center; }
.cal-mcell.today .cal-mcell-n{ background:var(--accent); color:var(--on-solid); border-radius:50%; }
.cal-mcell-evs{ display:flex; flex-direction:column; gap:var(--sp-2); min-width:0; overflow:hidden; }
.cal-mchip{ display:flex; align-items:center; gap:var(--sp-4); width:100%; text-align:left; border:none; background:none;
  border-radius:var(--radius-xs); padding:var(--sp-1) var(--sp-4); font:inherit; font-size:var(--fs-xs); color:var(--txt); cursor:pointer; min-width:0; transition:.1s; }
.cal-mchip:hover{ background:color-mix(in srgb,var(--ec) 18%, var(--card2)); }
.cal-mchip .cal-mchip-dot{ width:6px; height:6px; border-radius:50%; background:var(--ec); flex:0 0 auto; }
.cal-mchip .cal-mchip-bar{ width:100%; max-width:none; height:14px; flex:1; border-radius:var(--radius-xs);
  background:color-mix(in srgb,var(--ec) 20%, var(--card)); border-left:3px solid var(--ec); }
.cal-mchip span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* journée entière : pastille pleine largeur teintée */
.cal-mchip:has(.cal-mchip-bar){ position:relative; }
.cal-mchip:has(.cal-mchip-bar) span{ position:absolute; left:11px; right:4px; color:var(--txt); }
.cal-mchip.done span{ text-decoration:line-through; color:var(--mut); }
.cal-mchip.social .cal-mchip-dot{ background:var(--ec); }
.cal-more{ font-size:var(--fs-2xs); color:var(--mut); padding:0 var(--sp-4); border:none; background:none; cursor:pointer; text-align:left; }
.cal-more:hover{ color:var(--accent); }

/* ════════ AGENDA ════════ */
.cal-agenda{ flex:1; overflow:auto; padding:var(--sp-14); display:flex; flex-direction:column; gap:var(--sp-18); }
.cal-agroup{ display:grid; grid-template-columns:64px 1fr; gap:var(--sp-14); align-items:start; }
.cal-aday{ display:flex; flex-direction:column; align-items:center; text-align:center; position:sticky; top:0; }
.cal-aday b{ font-size:var(--fs-xl); font-weight:var(--fw-strong); line-height:var(--lh-flat); }
.cal-aday span{ font-size:var(--fs-2xs); color:var(--mut); text-transform:capitalize; margin-top:var(--sp-2); }
.cal-rel{ margin-top:var(--sp-4); font-size:var(--fs-2xs); font-weight:var(--fw-bold); color:var(--accent)!important; text-transform:uppercase; letter-spacing:.04em; }
.cal-arows{ display:flex; flex-direction:column; gap:var(--sp-6); min-width:0; }
.cal-arow{ display:flex; align-items:center; gap:var(--sp-10); padding:var(--sp-8) var(--sp-12); border:1px solid var(--line);
  border-radius:var(--radius-sm); background:var(--card); cursor:pointer; transition:.1s; }
.cal-arow:hover{ border-color:var(--accent); background:var(--card2); }
.cal-arow.done .cal-atitle{ text-decoration:line-through; color:var(--mut); }
.cal-arow.social{ background:color-mix(in srgb,#db2777 6%, var(--card)); }
.cal-adot{ width:9px; height:9px; border-radius:50%; flex:0 0 auto; }
.cal-awhen{ font-size:var(--fs-sm); color:var(--mut); min-width:62px; font-variant-numeric:tabular-nums; }
.cal-atitle{ flex:1; min-width:0; font-size:var(--fs-md); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cal-badge{ font-size:var(--fs-2xs); font-weight:var(--fw-strong); padding:var(--sp-2) var(--sp-8); border-radius:var(--radius-pill); color:var(--bc);
  background:color-mix(in srgb,var(--bc) 14%, transparent); white-space:nowrap; }
.cal-asg{ font-size:var(--fs-xs); color:var(--mut); white-space:nowrap; }
.cal-asg.ai{ color:var(--accent); }
.cal-empty{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--sp-12); padding:var(--sp-48) var(--sp-12); color:var(--mut); text-align:center; }
.cal-empty svg{ width:38px; height:38px; opacity:.4; }
.cal-empty p{ margin:0; font-size:var(--fs-md); }

/* ════════ TÂCHES ════════ */
.cal-tboard{ flex:1; overflow:auto; padding:var(--sp-14); display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-14); align-items:start; }
@media (max-width:880px){ .cal-tboard{ grid-template-columns:1fr; } }
.cal-tcol{ border:1px solid var(--line); border-radius:var(--radius); background:var(--card2); display:flex; flex-direction:column; }
.cal-tcol-h{ display:flex; align-items:center; gap:var(--sp-6); padding:var(--sp-10) var(--sp-12); font-size:var(--fs-sm); font-weight:var(--fw-strong); color:var(--txt); border-bottom:1px solid var(--line); }
.cal-tcol.ai .cal-tcol-h{ color:var(--accent); }
.cal-tcol.done .cal-tcol-h{ color:var(--ok); }
.cal-tcount{ margin-left:auto; font-size:var(--fs-xs); font-weight:var(--fw-strong); color:var(--mut); background:var(--card); border-radius:var(--radius-pill); padding:var(--sp-1) var(--sp-8); }
.cal-tcol-b{ display:flex; flex-direction:column; gap:var(--sp-6); padding:var(--sp-10); }
.cal-tempty{ font-size:var(--fs-sm); color:var(--mut); text-align:center; padding:var(--sp-10) var(--sp-4); }
.cal-tadd{ display:inline-flex; align-items:center; justify-content:center; gap:var(--sp-4); padding:var(--sp-6); border:1px dashed var(--line);
  border-radius:var(--radius-sm); background:none; color:var(--mut); font:inherit; font-size:var(--fs-sm); cursor:pointer; transition:.12s; }
.cal-tadd:hover{ border-color:var(--accent); color:var(--accent); }
.cal-tadd svg{ width:13px; height:13px; }
.cal-tcard{ display:flex; gap:var(--sp-8); padding:var(--sp-8) var(--sp-10); border:1px solid var(--line); border-left:3px solid var(--ec);
  border-radius:var(--radius-sm); background:var(--card); transition:.1s; }
.cal-tcard:hover{ border-color:var(--accent); }
.cal-tcard.done{ opacity:.62; }
.cal-tcard.done .cal-ttitle{ text-decoration:line-through; }
.cal-tcard.overdue{ border-color:color-mix(in srgb,var(--err) 55%, var(--line)); }
.cal-tck input{ width:16px; height:16px; accent-color:var(--ok); cursor:pointer; margin-top:var(--sp-1); }
.cal-tbody{ flex:1; min-width:0; cursor:pointer; }
.cal-ttitle{ font-size:var(--fs-md); color:var(--txt); margin-bottom:var(--sp-2); word-break:break-word; }
.cal-tmeta{ display:flex; align-items:center; gap:var(--sp-8); font-size:var(--fs-xs); color:var(--mut); flex-wrap:wrap; }
.cal-overdue{ color:var(--err); font-weight:var(--fw-strong); }

/* ════════ Overlay & modal d'édition ════════ */
.cal-overlay[hidden]{ display:none; }
.cal-overlay{ position:fixed; inset:0; z-index:1200; background:rgba(1,4,9,.5);
  display:flex; align-items:flex-start; justify-content:center; padding:var(--sp-40) var(--sp-16); overflow:auto;
  backdrop-filter:blur(2px); animation:calfade .14s ease; }
@keyframes calfade{ from{ opacity:0; } }
.cal-modal{ width:100%; max-width:520px; background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius); box-shadow:var(--shadow); display:flex; flex-direction:column;
  max-height:calc(100vh - 80px); animation:calpop .16s ease; }
@keyframes calpop{ from{ transform:translateY(8px); opacity:0; } }
.cal-modal-head{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-10); padding:var(--sp-14) var(--sp-16); border-bottom:1px solid var(--line); }
.cal-modal-head h3{ margin:0; font-size:var(--fs-base); }
.cal-modal-body{ padding:var(--sp-16); display:flex; flex-direction:column; gap:var(--sp-12); overflow:auto; }
.cal-modal-foot{ display:flex; align-items:center; gap:var(--sp-8); padding:var(--sp-12) var(--sp-16); border-top:1px solid var(--line); }
.cal-modal-foot .sp{ flex:1; }
.cal-modal-foot button{ padding:var(--sp-8) var(--sp-14); border:1px solid var(--line); border-radius:var(--radius-sm);
  background:var(--card2); color:var(--txt); font:inherit; font-size:var(--fs-md); cursor:pointer; transition:.12s; }
.cal-modal-foot button:hover{ background:var(--card); border-color:var(--accent); }
.cal-modal-foot button.primary{ background:var(--accent); color:var(--on-solid); border-color:var(--accent); }
.cal-modal-foot button.primary:hover{ background:var(--accent-h); }
.cal-del{ color:var(--err)!important; border-color:transparent!important; background:none!important; display:inline-flex; align-items:center; gap:var(--sp-6); }
.cal-del:hover{ background:color-mix(in srgb,var(--err) 12%, transparent)!important; }
.cal-del svg{ width:14px; height:14px; }
.cal-ed-f{ display:flex; flex-direction:column; gap:var(--sp-4); flex:1; min-width:0; }
.cal-ed-f>span{ font-size:var(--fs-xs); color:var(--mut); font-weight:var(--fw-strong); }
.cal-ed-f input, .cal-ed-f textarea{ background:var(--bg2); color:var(--txt); border:1px solid var(--line); border-radius:var(--radius-sm); padding:var(--sp-8) var(--sp-10); font:inherit; font-size:var(--fs-md); width:100%; }
.cal-ed-f input:focus, .cal-ed-f textarea:focus{ outline:none; border-color:var(--accent); }
.cal-ed-f input.cal-err{ border-color:var(--err); }
.cal-ed-f textarea{ resize:vertical; }
.cal-ed-row{ display:flex; gap:var(--sp-12); }
@media (max-width:520px){ .cal-ed-row{ flex-direction:column; } }
.cal-ed-allday, .cal-ed-done{ display:inline-flex; align-items:center; gap:var(--sp-6); font-size:var(--fs-sm); color:var(--txt); cursor:pointer; }
.cal-ed-allday input, .cal-ed-done input{ width:15px; height:15px; accent-color:var(--accent); }
.cal-ed-times.off{ display:none; }
.cal-ed-done{ flex:0 0 auto; align-self:flex-end; padding-bottom:var(--sp-8); }
.cal-typrow{ display:flex; gap:var(--sp-8); flex-wrap:wrap; }
.cal-typ{ display:inline-flex; align-items:center; gap:var(--sp-6); padding:var(--sp-6) var(--sp-12); border:1px solid var(--line); border-radius:var(--radius-pill);
  background:var(--card2); color:var(--mut); font:inherit; font-size:var(--fs-sm); cursor:pointer; transition:.12s; }
.cal-typ i{ width:8px; height:8px; border-radius:50%; }
.cal-typ:hover{ color:var(--txt); }
.cal-typ.on{ color:var(--txt); border-color:var(--tc); background:color-mix(in srgb,var(--tc) 14%, transparent); font-weight:var(--fw-strong); }
.cal-seg{ display:inline-flex; border:1px solid var(--line); border-radius:var(--radius-sm); overflow:hidden; }
.cal-seg button{ padding:var(--sp-8) var(--sp-14); border:none; background:var(--card2); color:var(--mut); font:inherit; font-size:var(--fs-sm); cursor:pointer; transition:.12s; }
.cal-seg button+button{ border-left:1px solid var(--line); }
.cal-seg button.on{ background:var(--accent); color:var(--on-solid); font-weight:var(--fw-strong); }
.cal-seg button:not(.on):hover{ color:var(--txt); }
.cal-sws{ display:flex; gap:var(--sp-6); flex-wrap:wrap; }
.cal-sw{ width:24px; height:24px; border-radius:50%; border:2px solid transparent; cursor:pointer; transition:.1s; }
.cal-sw:hover{ transform:scale(1.1); }
.cal-sw.on{ border-color:var(--txt); box-shadow:0 0 0 2px var(--card); }
.cal-ai-lead{ margin:0; font-size:var(--fs-sm); color:var(--mut); }
.cal-ai-status{ font-size:var(--fs-sm); color:var(--accent); min-height:16px; }

}
