/* Hivy Tickets : design system adapté de Hivy Leads V3 (design-system/, 02/10/2026, lu en lecture seule).
   Valeurs reprises telles quelles du CSS réel V3. Tokens préfixés --t- : le composant <hivy-ticket>
   est injecté dans 5 apps (Tailwind, shadcn, CSS maison), aucun nom ne doit entrer en collision. */
@font-face{font-family:Geist;font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/geist-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Geist;font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/geist-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root,:host{
  /* fonds (V3 --bg --rail --surface) */
  --t-bg:oklch(95.5% .012 85); --t-rail:oklch(97% .010 85); --t-surface:oklch(98.4% .008 85); --t-body:oklch(99% .008 85);
  --t-track:oklch(91% .012 80); --t-field:oklch(99.4% .004 85); --t-soft:oklch(96.5% .01 85);
  /* texte (V3 --ink --text --muted --faint) */
  --t-ink:oklch(22% .012 60); --t-text:oklch(32% .012 60); --t-muted:oklch(50% .012 70); --t-faint:oklch(64% .010 75); --t-on-dark:oklch(99% .004 85);
  --t-line:oklch(93% .008 80);
  /* états (V3 f1 f2 f3 + rouge) */
  --t-yellow:oklch(85.5% .155 92); --t-yellow-bg:oklch(95.5% .075 98); --t-yellow-ink:oklch(26% .02 95);
  --t-green:oklch(52% .11 155); --t-green-bg:oklch(94.5% .035 155); --t-green-ink:oklch(40% .10 155);
  --t-blue-bg:oklch(95% .025 250); --t-blue-ink:oklch(42% .10 250);
  --t-red:oklch(48% .16 30); --t-red-bg:oklch(95% .03 30); --t-red-ink:oklch(45% .14 30);
  --t-grey-bg:oklch(94% .008 80); --t-grey2-bg:oklch(94.5% .008 80); --t-grey2-ink:oklch(46% .01 70);
  /* surfaces (V3 --lift --lift-sm --dome) */
  --t-lift:inset 0 0 0 1px oklch(100% 0 0 / .85),inset 0 1px 0 oklch(100% 0 0),0 1px 2px oklch(40% .02 70 / .05),0 8px 24px oklch(40% .02 70 / .06);
  --t-lift-sm:inset 0 0 0 1px oklch(100% 0 0 / .9),inset 0 1px 0 oklch(100% 0 0),inset 0 -1px 0 oklch(40% .02 70 / .04),0 1px 2px oklch(40% .02 70 / .07),0 3px 8px oklch(40% .02 70 / .05);
  --t-lift-hover:var(--t-lift-sm),0 8px 20px oklch(40% .02 70 / .08);
  --t-inset:inset 0 1px 2px oklch(40% .02 70 / .07),0 0 0 1px oklch(100% 0 0 / .9);
  --t-focus:0 0 0 3px oklch(95.5% .075 98),0 0 0 4px oklch(85.5% .155 92);
  --t-dome:linear-gradient(180deg,oklch(100% 0 0),oklch(98.4% .006 85));
  --t-primary:linear-gradient(180deg,oklch(32% .012 60),oklch(20% .012 60));
  --t-primary-sh:inset 0 1px 0 oklch(100% 0 0 / .14),0 1px 2px oklch(20% .02 70 / .2),0 4px 10px oklch(20% .02 70 / .16);
  --t-r-card:18px; --t-r-in:12px; --t-r-sheet:24px;
  --t-font:Geist,system-ui,-apple-system,sans-serif;
  --t-ease:cubic-bezier(.2,.8,.2,1);
}

/* surface et texte */
.t-card{background:var(--t-dome);border-radius:var(--t-r-card);box-shadow:var(--t-lift)}
.t-h1{font-size:26px;font-weight:600;letter-spacing:-.02em;line-height:1.3}
.t-h2{font-size:17px;font-weight:600;letter-spacing:-.01em;line-height:1.35}
.t-lede{font-size:14.5px;color:var(--t-muted)}
.t-ps{font-size:13px;color:var(--t-muted)}
.t-num{font-variant-numeric:tabular-nums;letter-spacing:-.01em}

/* boutons : pilule blanche .pl, noir .pl.main (V3) */
.t-btn{height:42px;padding:0 20px;border-radius:999px;border:0;background:var(--t-dome);box-shadow:var(--t-lift-sm);color:var(--t-ink);font:500 14.5px/1 var(--t-font);display:inline-flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;white-space:nowrap;transition:box-shadow .2s,transform .12s}
.t-btn svg{color:var(--t-muted);flex-shrink:0}
.t-btn:hover{box-shadow:var(--t-lift-hover)}
.t-btn:active{transform:scale(.98)}
.t-btn.main{background:var(--t-primary);box-shadow:var(--t-primary-sh);color:var(--t-on-dark)}
.t-btn.main svg{color:var(--t-on-dark)}
.t-btn.sm{height:34px;padding:0 14px;font-size:13.5px}
.t-btn.xs{height:30px;padding:0 12px;font-size:13px}
.t-btn:disabled{opacity:.42;cursor:not-allowed;transform:none}
.t-btn.main:disabled{opacity:.32}
.t-btn:focus-visible{outline:0;box-shadow:var(--t-focus)}

/* champs : pilule creusée .fin (V3), zone de texte .notein (V3) */
.t-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.t-label{font-size:13px;font-weight:500;color:var(--t-text)}
.t-label small{font-weight:400;color:var(--t-muted);margin-left:6px;font-size:12.5px}
.t-in,.t-sel,.t-area{width:100%;border:0;font:400 14px/1.45 var(--t-font);color:var(--t-ink);background:var(--t-field);box-shadow:var(--t-inset);outline:none}
.t-in{height:38px;border-radius:999px;padding:0 16px}
.t-in::placeholder,.t-area::placeholder{color:var(--t-faint)}
.t-area{min-height:96px;border-radius:16px;padding:12px 16px;resize:vertical}
.t-sel{appearance:none;-webkit-appearance:none;height:38px;border-radius:999px;padding:0 36px 0 16px;cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23777' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 14px center/13px,var(--t-dome);box-shadow:var(--t-lift-sm)}
.t-in:focus,.t-area:focus{box-shadow:inset 0 1px 2px oklch(40% .02 70 / .07),var(--t-focus)}
.t-in[aria-invalid="true"]{box-shadow:inset 0 1px 2px oklch(40% .02 70 / .07),0 0 0 1px var(--t-red)}
.t-err{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--t-red-ink)}
.t-err::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--t-red)}
.t-ok{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--t-green-ink)}
.t-ok::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--t-green)}
.t-ro{min-height:38px;border-radius:999px;padding:9px 16px;display:flex;align-items:center;gap:8px;background:var(--t-soft);font-size:13.5px;color:var(--t-text);min-width:0}
.t-ro span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.t-ro svg{color:var(--t-muted);flex-shrink:0}

/* choix du type : grille égale de cartes cliquables */
.t-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.t-type{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px;align-items:center;padding:12px 14px;border-radius:16px;border:0;background:var(--t-dome);box-shadow:var(--t-lift-sm);text-align:left;cursor:pointer;font:inherit;color:var(--t-ink);transition:box-shadow .2s}
.t-type:hover{box-shadow:var(--t-lift-hover)}
.t-type b{display:block;font-size:14px;font-weight:600}
.t-type small{display:block;font-size:12.5px;color:var(--t-muted);margin-top:1px}
.t-type[aria-pressed="true"]{background:var(--t-primary);box-shadow:var(--t-primary-sh);color:var(--t-on-dark)}
.t-type[aria-pressed="true"] small{color:oklch(85% .008 80)}
.t-type[aria-pressed="true"] .t-ico{background:oklch(100% 0 0 / .12);color:var(--t-on-dark)}
.t-type:focus-visible{outline:0;box-shadow:var(--t-focus)}
.t-ico{width:36px;height:36px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:oklch(96% .008 80);color:var(--t-text);flex-shrink:0}

/* urgence : onglets .tabs (V3), un point coloré par niveau */
.t-seg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;border-radius:12px;background:var(--t-track)}
.t-seg button{border:0;background:none;height:32px;border-radius:9px;font:500 13px/1 var(--t-font);color:var(--t-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px}
.t-seg button::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--u)}
.t-seg button[aria-pressed="true"]{background:var(--t-dome);color:var(--t-ink);box-shadow:var(--t-lift-sm)}
.t-seg button:not([aria-pressed="true"]):hover{color:var(--t-ink)}
.t-seg button:focus-visible{outline:0;box-shadow:var(--t-focus)}
.u-crit{--u:var(--t-red)} .u-haute{--u:var(--t-yellow)} .u-norm{--u:oklch(58% .11 250)} .u-basse{--u:var(--t-faint)}

/* capture : zone de dépôt + vignette */
.t-drop{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border-radius:16px;background:var(--t-soft);font-size:13.5px;color:var(--t-text)}
.t-drop small{display:block;font-size:12px;color:var(--t-muted)}
.t-thumb{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 10px 8px 8px;border-radius:16px;background:var(--t-soft);font-size:13.5px}
.t-thumb i{width:56px;height:40px;border-radius:9px;background:linear-gradient(180deg,oklch(93% .01 85),oklch(88% .012 80))}
.t-thumb small{display:block;font-size:12px;color:var(--t-muted)}
.t-x{width:30px;height:30px;border-radius:50%;border:0;background:var(--t-dome);box-shadow:var(--t-lift-sm);display:flex;align-items:center;justify-content:center;color:var(--t-muted);cursor:pointer}

/* statuts : pastille .st (V3) */
.t-st{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;font-size:12.5px;font-weight:500;width:max-content;white-space:nowrap}
.t-st.new{background:var(--t-ink);color:var(--t-on-dark)}
.t-st.run{background:var(--t-blue-bg);color:var(--t-blue-ink)}
.t-st.done{background:var(--t-green-bg);color:var(--t-green-ink)}
.t-st.no{background:var(--t-red-bg);color:var(--t-red-ink)}
/* urgence en lecture : point + mot, pas de pastille dans une liste */
.t-urg{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--t-text);white-space:nowrap}
.t-urg::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--u)}

/* bouton flottant « Faire une demande » (.fab V3) */
.t-fab{height:46px;padding:0 20px 0 16px;border-radius:999px;border:0;background:var(--t-primary);box-shadow:inset 0 1px 0 oklch(100% 0 0 / .14),0 12px 30px oklch(30% .02 70 / .25);color:var(--t-on-dark);display:inline-flex;align-items:center;gap:9px;font:500 14px/1 var(--t-font);cursor:pointer}

/* panneau de demande (.chat V3, opaque) */
.t-sheet{width:440px;border-radius:var(--t-r-sheet);background:oklch(99.6% .003 85);box-shadow:0 0 0 1px oklch(30% .02 70 / .05),0 30px 70px oklch(30% .02 70 / .2);display:flex;flex-direction:column;overflow:hidden;font-family:var(--t-font);color:var(--t-ink)}
.t-shead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;box-shadow:inset 0 -1px 0 var(--t-line)}
.t-shead b{font-size:18px;letter-spacing:-.01em;font-weight:600}
.t-shead small{display:block;font-size:12.5px;color:var(--t-muted)}
.t-sbody{padding:18px;display:flex;flex-direction:column;gap:16px}
.t-sfoot{padding:14px 18px 18px;display:grid;grid-template-columns:1fr 2fr;gap:8px}
.t-row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.t-note{padding:12px 16px;border-radius:16px;background:var(--t-yellow-bg);color:var(--t-yellow-ink);font-size:13.5px;line-height:1.45}
.t-done{padding:28px 22px 22px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.t-done .t-big{font-size:34px;font-weight:600;letter-spacing:-.03em;line-height:1}
.t-badge{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--t-green-bg);color:var(--t-green)}
.t-kv{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px 12px;font-size:13.5px;width:100%;padding-top:14px;box-shadow:inset 0 1px 0 var(--t-line)}
.t-kv span{color:var(--t-muted)}

/* liste du centralisateur : grille de colonnes .dh/.dr (V3 demandes admin) */
.t-lh,.t-lr{display:grid;grid-template-columns:36px 64px minmax(0,1fr) 150px 110px 110px 96px;gap:18px;align-items:center}
.t-lh{padding:14px 16px 8px;font-size:12px;color:var(--t-muted);font-weight:500}
.t-lh span:last-child,.t-lr .t-when{text-align:right;justify-content:flex-end}
.t-lr{padding:14px 16px;border-top:1px solid oklch(94.5% .006 80);cursor:pointer}
.t-lh + .t-lr{border-top:0}
.t-lr:hover .t-ref,.t-lr:hover p{color:var(--t-ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--t-faint)}
.t-lr .t-ref{font-size:13px;color:var(--t-muted);font-weight:500}
.t-lr p{font-size:14.5px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.t-lr small{display:block;font-size:12px;color:var(--t-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.t-lr .t-app{font-size:13.5px;color:var(--t-text)}
.t-lr .t-when{font-size:12.5px;color:var(--t-muted);display:flex}

@media (prefers-reduced-motion:reduce){.t-btn,.t-type{transition:none}}
