PageSourceSearch

https://sav-assistant-next.vercel.app/

html sav-assistant-next.vercel.app collected 2026-10-03 07:39:50 UTC 29,990 bytes, 93 lines download raw bytes

1<!DOCTYPE html><!--6_VZzgjlk93TAVD3ZDb_9--><html lang="fr"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/logo.png"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-98ed52e12dfa3f20.js"/>
1<script src="/_next/static/chunks/4bd1b696-f785427dddbba9fb.js" async=""></script>
1<script src="/_next/static/chunks/1255-97034c63f69024cf.js" async=""></script>
1<script src="/_next/static/chunks/main-app-5eb0d9c55a395822.js" async=""></script>
1<script src="/_next/static/chunks/app/page-df46211d11688d2f.js" async=""></script>
1<title>AIoli — Sudist</title><meta name="description" content="AIoli — assistant SAV intelligent"/><link rel="icon" href="/logo.png"/><link href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&amp;family=Geist+Mono:wght@400;500&amp;display=swap" rel="stylesheet"/><style>
2          /* Tokens de thème lus par les styles globaux ; les composants reçoivent
3             les mêmes valeurs via components/Shared.jsx (LIGHT / DARK). */
4          :root {
5            --paper: #f6f7f9; --paper-elevated: #ffffff; --ink: #191b1f; --muted: #696d74;
6            --line: #e2e4e8; --line-soft: #eef0f3; --signal: #d33e3a;
7            --ease: cubic-bezier(0.16, 1, 0.3, 1);
8            color-scheme: light;
9          }
10          html[data-theme="dark"] {
11            --paper: #161718; --paper-elevated: #1f2022; --ink: #f4f5f7; --muted: #878b93;
12            --line: #303236; --line-soft: #26272a; --signal: #f0625b;
13            color-scheme: dark;
14          }
15          *, *::before, *::after { box-sizing: border-box; }
16          html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
17          body { background: var(--paper); color: var(--ink); overscroll-behavior-y: none; }
18          button, [role="button"] { -webkit-tap-highlight-color: transparent; }
19
20          @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
21          @keyframes fadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
22          @keyframes slideIn { from { opacity: 0; transform: translateX(-6px); } to { opacity: 1; transform: translateX(0); } }
23          @keyframes rise-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
24          @keyframes sheet-up { from { transform: translateY(100%); } to { transform: translateY(0); } }
25          @keyframes overlay-in { from { opacity: 0; } to { opacity: 1; } }
26
27          /* Couche motion : le contenu « se pose » (240 ms, ease-out-quart),
28             enfoncement bref au press. Tout est coupé par prefers-reduced-motion. */
29          .animate-rise { animation: rise-in 240ms var(--ease) backwards; animation-delay: var(--stagger, 0ms); }
30          .stagger > * { animation: rise-in 240ms var(--ease) backwards; }
31          .stagger > *:nth-child(2) { animation-delay: 35ms; }
32          .stagger > *:nth-child(3) { animation-delay: 70ms; }
33          .stagger > *:nth-child(4) { animation-delay: 105ms; }
34          .stagger > *:nth-child(5) { animation-delay: 140ms; }
35          .stagger > *:nth-child(6) { animation-delay: 175ms; }
36          .stagger > *:nth-child(n + 7) { animation-delay: 210ms; }
37          .press { transition: transform 120ms var(--ease), background-color 160ms var(--ease), border-color 160ms var(--ease), color 160ms var(--ease); }
38          .press:active { transform: scale(0.97); }
39          .sheet-overlay { animation: overlay-in 180ms var(--ease); }
40          .sheet-panel { animation: sheet-up 240ms var(--ease); }
41
42          .ticket-delete-btn { opacity: 0 !important; }
43          .ticket-delete-btn:hover { opacity: 1 !important; }
44          [data-ticket]:hover .ticket-delete-btn { opacity: 0.6 !important; }
45          ::-webkit-scrollbar { width: 5px; height: 5px; }
46          ::-webkit-scrollbar-track { background: transparent; }
47          ::-webkit-scrollbar-thumb { background: var(--line); border-radius: 3px; }
48          ::-webkit-scrollbar-thumb:hover { background: var(--muted); }
49          ::selection { background: color-mix(in srgb, var(--ink) 14%, transparent); }
50          :focus-visible { outline: 2px solid color-mix(in srgb, var(--ink) 35%, transparent); outline-offset: 2px; border-radius: 4px; }
51          input:focus, textarea:focus, select:focus { border-color: color-mix(in srgb, var(--ink) 40%, transparent) !important; }
52          @media (prefers-reduced-motion: reduce) {
53            *, *::before, *::after {
54              animation-duration: 0.01ms !important;
55              animation-iteration-count: 1 !important;
56              transition-duration: 0.01ms !important;
57              scroll-behavior: auto !important;
58            }
59          }
60        </style>
60<script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script>
60</head><body style="margin:0"><div hidden=""><!--$--><!--/$--></div><div class="app-shell" style="font-family:&#x27;Manrope&#x27;, -apple-system, BlinkMacSystemFont, &#x27;Segoe UI Variable&#x27;, &#x27;Segoe UI&#x27;, system-ui, sans-serif;background:#f6f7f9;color:#191b1f;display:flex;overflow:hidden;position:relative"><aside style="width:244px;min-width:244px;transition:width 220ms cubic-bezier(0.16, 1, 0.3, 1), min-width 220ms cubic-bezier(0.16, 1, 0.3, 1);z-index:20;background:#f1f2f5;color:#3d4045;border-right:1px solid #e2e4e8;display:flex;flex-direction:column;overflow:hidden;flex-shrink:0"><div style="padding:20px 12px 12px;display:flex;align-items:center;gap:10px;justify-content:flex-start;min-height:64px;flex-shrink:0"><div style="position:relative;flex-shrink:0"><span style="width:32px;height:32px;border-radius:50%;background:#191b1f;display:grid;place-items:center"><img src="/logo.png" alt="Sudist" style="width:18px;height:18px;object-fit:contain;filter:invert(1);display:block"/></span></div><div style="overflow:hidden;min-width:0"><div style="font-size:11.5px;font-weight:500;text-transform:uppercase;letter-spacing:0.08em;color:#141518;white-space:nowrap">Sudist</div><div style="font-size:10.5px;color:#3d4045;display:flex;gap:8px;align-items:center;margin-top:2px"><span>AIoli</span></div></div></div><nav style="padding:8px 8px;flex:1;display:flex;flex-direction:column;gap:2px;overflow-y:auto"><button style="display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;border:none;background:#e8eaee;color:#141518;font-size:14px;font-weight:500;cursor:pointer;transition:background-color 160ms cubic-bezier(0.16, 1, 0.3, 1), color 160ms cubic-bezier(0.16, 1, 0.3, 1);width:100%;text-align:left;font-family:&#x27;Manrope&#x27;, -apple-system, BlinkMacSystemFont, &#x27;Segoe UI Variable&#x27;, &#x27;Segoe UI&#x27;, system-ui, sans-serif;justify-content:flex-start;position:relative" class="press" aria-current="page"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#141518" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg><span style="flex:1">Accueil</span></button><button style="display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;border:none;background:transparent;color:#3d4045;font-size:14px;font-weight:500;cursor:pointer;transition:background-color 160ms cubic-bezier(0.16, 1, 0.3, 1), color 160ms cubic-bezier(0.16, 1, 0.3, 1);width:100%;text-align:left;font-family:&#x27;Manrope&#x27;, -apple-system, BlinkMacSystemFont, &#x27;Segoe UI Variable&#x27;, &#x27;Segoe UI&#x27;, system-ui, sans-serif;justify-content:flex-start;position:relative" class="press"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#3d4045" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span style="flex:1">Chat</span></button><button style="display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;border:none;background:transparent;color:#3d4045;font-size:14px;font-weight:500;cursor:pointer;transition:background-color 160ms cubic-bezier(0.16, 1, 0.3, 1), color 160ms cubic-bezier(0.16, 1, 0.3, 1);width:100%;text-align:left;font-family:&#x27;Manrope&#x27;, -apple-system, BlinkMacSystemFont, &#x27;Segoe UI Variable&#x27;, &#x27;Segoe UI&#x27;, system-ui, sans-serif;justify-content:flex-start;position:relative" class="press"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#3d4045" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><polyline points="1 4 1 10 7 10"></polyline><path d="M3.51 15a9 9 0 1 0 2.13-9.36L1 10"></path></svg><span style="flex:1">Retours</span></button><button style="display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;border:none;background:transparent;color:#3d4045;font-size:14px;font-weight:500;cursor:pointer;transition:background-color 160ms cubic-bezier(0.16, 1, 0.3, 1), color 160ms cubic-bezier(0.16, 1, 0.3, 1);width:100%;text-align:left;font-family:&#x27;Manrope&#x27;, -apple-system, BlinkMacSystemFont, &#x27;Segoe UI Variable&#x27;, &#x27;Segoe UI&#x27;, system-ui, sans-serif;justify-content:flex-start;position:relative" class="press">
60<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#3d4045" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path><rect x="8" y="2" width="8" height="4" rx="1" ry="1"></rect><line x1="9" y1="12" x2="11" y2="14"></line><line x1="11" y1="14" x2="15" y2="10"></line></svg><span style="flex:1">Preparation</span></button><button style="display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;border:none;background:transparent;color:#3d4045;font-size:14px;font-weight:500;cursor:pointer;transition:background-color 160ms cubic-bezier(0.16, 1, 0.3, 1), color 160ms cubic-bezier(0.16, 1, 0.3, 1);width:100%;text-align:left;font-family:&#x27;Manrope&#x27;, -apple-system, BlinkMacSystemFont, &#x27;Segoe UI Variable&#x27;, &#x27;Segoe UI&#x27;, system-ui, sans-serif;justify-content:flex-start;position:relative" class="press"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#3d4045" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="3" width="15" height="13" rx="1"></rect><polygon points="16 8 20 8 23 11 23 16 16 16 16 8"></polygon><circle cx="5.5" cy="18.5" r="2.5"></circle><circle cx="18.5" cy="18.5" r="2.5"></circle></svg><span style="flex:1">Expédition</span></button><button style="display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;border:none;background:transparent;color:#3d4045;font-size:14px;font-weight:500;cursor:pointer;transition:background-color 160ms cubic-bezier(0.16, 1, 0.3, 1), color 160ms cubic-bezier(0.16, 1, 0.3, 1);width:100%;text-align:left;font-family:&#x27;Manrope&#x27;, -apple-system, BlinkMacSystemFont, &#x27;Segoe UI Variable&#x27;, &#x27;Segoe UI&#x27;, system-ui, sans-serif;justify-content:flex-start;position:relative" class="press"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#3d4045" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg><span style="flex:1">B2B</span></button><button style="display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;border:none;background:transparent;color:#3d4045;font-size:14px;font-weight:500;cursor:pointer;transition:background-color 160ms cubic-bezier(0.16, 1, 0.3, 1), color 160ms cubic-bezier(0.16, 1, 0.3, 1);width:100%;text-align:left;font-family:&#x27;Manrope&#x27;, -apple-system, BlinkMacSystemFont, &#x27;Segoe UI Variable&#x27;, &#x27;Segoe UI&#x27;, system-ui, sans-serif;justify-content:flex-start;position:relative" class="press"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#3d4045" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"></path><path d="M13.73 21a2 2 0 0 1-3.46 0"></path></svg><span style="flex:1">Notifications</span></button><button style="display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;border:none;background:transparent;color:#3d4045;font-size:14px;font-weight:500;cursor:pointer;transition:background-color 160ms cubic-bezier(0.16, 1, 0.3, 1), color 160ms cubic-bezier(0.16, 1, 0.3, 1);width:100%;text-align:left;font-family:&#x27;Manrope&#x27;, -apple-system, BlinkMacSystemFont, &#x27;Segoe UI Variable&#x27;, &#x27;Segoe UI&#x27;, system-ui, sans-serif;justify-content:flex-start;position:relative" class="press"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#3d4045" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 11l18-8-8 18-2-8-8-2z"></path></svg><span style="flex:1">Marketing</span></button><button style="display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;border:none;background:transparent;color:#3d4045;font-size:14px;font-weight:500;cursor:pointer;transition:background-color 160ms cubic-bezier(0.16, 1, 0.3, 1), color 160ms cubic-bezier(0.16, 1, 0.3, 1);width:100%;text-align:left;font-family:&#x27;Manrope&#x27;, -apple-system, BlinkMacSystemFont, &#x27;Segoe UI Variable&#x27;, &#x27;Segoe UI&#x27;, system-ui, sans-serif;justify-content:flex-start;position:relative" class="press">
60<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#3d4045" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="6"></circle><circle cx="12" cy="12" r="2"></circle></svg><span style="flex:1">Prospection</span></button><button style="display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;border:none;background:transparent;color:#3d4045;font-size:14px;font-weight:500;cursor:pointer;transition:background-color 160ms cubic-bezier(0.16, 1, 0.3, 1), color 160ms cubic-bezier(0.16, 1, 0.3, 1);width:100%;text-align:left;font-family:&#x27;Manrope&#x27;, -apple-system, BlinkMacSystemFont, &#x27;Segoe UI Variable&#x27;, &#x27;Segoe UI&#x27;, system-ui, sans-serif;justify-content:flex-start;position:relative" class="press"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#3d4045" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"></path><circle cx="12" cy="13" r="4"></circle></svg><span style="flex:1">Studio Photo</span></button><button style="display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;border:none;background:transparent;color:#3d4045;font-size:14px;font-weight:500;cursor:pointer;transition:background-color 160ms cubic-bezier(0.16, 1, 0.3, 1), color 160ms cubic-bezier(0.16, 1, 0.3, 1);width:100%;text-align:left;font-family:&#x27;Manrope&#x27;, -apple-system, BlinkMacSystemFont, &#x27;Segoe UI Variable&#x27;, &#x27;Segoe UI&#x27;, system-ui, sans-serif;justify-content:flex-start;position:relative" class="press"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#3d4045" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg><span style="flex:1">Paramètres</span></button><div style="flex:1"></div><div style="display:flex;align-items:center;gap:10px;justify-content:space-between;padding:10px 12px;border-top:1px solid #e2e4e8;margin-top:8px"><span style="font-size:11px;text-transform:uppercase;letter-spacing:0.08em;color:#3d4045">Thème</span><button role="switch" aria-checked="false" aria-label="Thème sombre" title="Passer en thème sombre" style="position:relative;width:44px;height:26px;border-radius:13px;flex-shrink:0;border:1px solid #e2e4e8;background:#ffffff;cursor:pointer;padding:0;transition:background-color 160ms cubic-bezier(0.16, 1, 0.3, 1)"><span style="position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#191b1f;color:#f6f7f9;display:grid;place-items:center;transition:left 160ms cubic-bezier(0.16, 1, 0.3, 1)"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="#f6f7f9" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg></span></button></div><button aria-label="Réduire la barre latérale" aria-expanded="true" style="display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:14px;border:none;background:transparent;color:#3d4045;font-size:12px;font-weight:500;cursor:pointer;transition:background-color 160ms cubic-bezier(0.16, 1, 0.3, 1), color 160ms cubic-bezier(0.16, 1, 0.3, 1);width:100%;text-align:left;font-family:&#x27;Manrope&#x27;, -apple-system, BlinkMacSystemFont, &#x27;Segoe UI Variable&#x27;, &#x27;Segoe UI&#x27;, system-ui, sans-serif;justify-content:flex-start"><span style="display:inline-flex;transform:none;transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1)"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="#3d4045" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"></polyline></svg></span><span style="color:#3d4045;font-size:12px">Réduire</span></button></nav></aside> <div style="flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;padding-bottom:0"><header style="padding:0 20px;height:56px;min-height:56px;border-bottom:1px solid #e2e4e8;display:flex;align-items:center;justify-content:space-between;background:#ffffffd9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);flex-shrink:0;position:relative;z-index:5"><div style="display:flex;align-items:center;gap:16px"><h1 style="font-size:17px;font-weight:600;margin:0;letter-spacing:-0.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">Accueil</h1></div><div style="display:flex;align-items:center;gap:8px"></div></header><div style="display:flex;flex:1;overflow:hidden"><div style="flex:1;overflow-y:auto"><div style="display:flex;align-items:center;justify-content:center;height:100%;padding:40px"><span style="font-family:&#x27;Manrope&#x27;, -apple-system, BlinkMacSystemFont, &#x27;Segoe UI Variable&#x27;, &#x27;Segoe UI&#x27;, system-ui, sans-serif;font-size:22px;color:#696d74;letter-spacing:-0.01em">Préparation de l&#x27;atelier…</span></div></div></div></div><style>
61        /* 100dvh suit la hauteur réellement visible (barres du navigateur, webview
62           Shopify) là où 100vh est figé et décale la tab bar. Fallback 100vh. */
63        .app-shell { height: 100vh; }
64        @supports (height: 100dvh) { .app-shell { height: 100dvh; } }
65        @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
66        @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
67        * { box-sizing: border-box; margin: 0; }
68        ::-webkit-scrollbar { width: 5px; }
69        ::-webkit-scrollbar-track { background: transparent; }
70        ::-webkit-scrollbar-thumb { background: #e2e4e8; border-radius: 3px; }
71        select option { background: #ffffff; color: #191b1f; }
72
73        /* Show delete button on ticket hover */
74        .ticket-delete-btn { opacity: 0 !important; }
75        div:hover > div > div > div > .ticket-delete-btn,
76        div:hover > div > .ticket-delete-btn { opacity: 1 !important; }
77
78        /* ── Mobile-first overrides ─────────────────────────────── */
79        @media (max-width: 767px) {
80          .hide-mobile { display: none !important; }
81          /* Suppress scrollbars on horizontal pill strips */
82          .pill-strip::-webkit-scrollbar { display: none; }
83          /* Ticket rows: larger touch target */
84          .ticket-row { min-height: 60px !important; }
85          /* Select dropdowns in filter bar: compact */
86          .filter-select { font-size: 11px; }
87        }
88
89        /* Responsive ticket list */
90        @media (max-width: 1024px) {
91          /* Allow ticket list to be narrower */
92        }
93      </style></div><!--$--><!--/$-->
93<script src="/_next/static/chunks/webpack-98ed52e12dfa3f20.js" id="_R_" async=""></script>
93<script>(self.__next_f=self.__next_f||[]).push([0])</script>
93<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n6:I[7150,[],\"\"]\n2:Tf5e,"])</script>
93<script>self.__next_f.push([1,"\n          /* Tokens de thème lus par les styles globaux ; les composants reçoivent\n             les mêmes valeurs via components/Shared.jsx (LIGHT / DARK). */\n          :root {\n            --paper: #f6f7f9; --paper-elevated: #ffffff; --ink: #191b1f; --muted: #696d74;\n            --line: #e2e4e8; --line-soft: #eef0f3; --signal: #d33e3a;\n            --ease: cubic-bezier(0.16, 1, 0.3, 1);\n            color-scheme: light;\n          }\n          html[data-theme=\"dark\"] {\n            --paper: #161718; --paper-elevated: #1f2022; --ink: #f4f5f7; --muted: #878b93;\n            --line: #303236; --line-soft: #26272a; --signal: #f0625b;\n            color-scheme: dark;\n          }\n          *, *::before, *::after { box-sizing: border-box; }\n          html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }\n          body { background: var(--paper); color: var(--ink); overscroll-behavior-y: none; }\n          button, [role=\"button\"] { -webkit-tap-highlight-color: transparent; }\n\n          @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }\n          @keyframes fadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }\n          @keyframes slideIn { from { opacity: 0; transform: translateX(-6px); } to { opacity: 1; transform: translateX(0); } }\n          @keyframes rise-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }\n          @keyframes sheet-up { from { transform: translateY(100%); } to { transform: translateY(0); } }\n          @keyframes overlay-in { from { opacity: 0; } to { opacity: 1; } }\n\n          /* Couche motion : le contenu « se pose » (240 ms, ease-out-quart),\n             enfoncement bref au press. Tout est coupé par prefers-reduced-motion. */\n          .animate-rise { animation: rise-in 240ms var(--ease) backwards; animation-delay: var(--stagger, 0ms); }\n          .stagger \u003e * { animation: rise-in 240ms var(--ease) backwards; }\n          .stagger \u003e *:nth-child(2) { animation-delay: 35ms; }\n          .stagger \u003e *:nth-child(3) { animation-delay: 70ms; }\n          .stagger \u003e *:nth-child(4) { animation-delay: 105ms; }\n          .stagger \u003e *:nth-child(5) { animation-delay: 140ms; }\n          .stagger \u003e *:nth-child(6) { animation-delay: 175ms; }\n          .stagger \u003e *:nth-child(n + 7) { animation-delay: 210ms; }\n          .press { transition: transform 120ms var(--ease), background-color 160ms var(--ease), border-color 160ms var(--ease), color 160ms var(--ease); }\n          .press:active { transform: scale(0.97); }\n          .sheet-overlay { animation: overlay-in 180ms var(--ease); }\n          .sheet-panel { animation: sheet-up 240ms var(--ease); }\n\n          .ticket-delete-btn { opacity: 0 !important; }\n          .ticket-delete-btn:hover { opacity: 1 !important; }\n          [data-ticket]:hover .ticket-delete-btn { opacity: 0.6 !important; }\n          ::-webkit-scrollbar { width: 5px; height: 5px; }\n          ::-webkit-scrollbar-track { background: transparent; }\n          ::-webkit-scrollbar-thumb { background: var(--line); border-radius: 3px; }\n          ::-webkit-scrollbar-thumb:hover { background: var(--muted); }\n          ::selection { background: color-mix(in srgb, var(--ink) 14%, transparent); }\n          :focus-visible { outline: 2px solid color-mix(in srgb, var(--ink) 35%, transparent); outline-offset: 2px; border-radius: 4px; }\n          input:focus, textarea:focus, select:focus { border-color: color-mix(in srgb, var(--ink) 40%, transparent) !important; }\n          @media (prefers-reduced-motion: reduce) {\n            *, *::before, *::after {\n              animation-duration: 0.01ms !important;\n              animation-iteration-count: 1 !important;\n              transition-duration: 0.01ms !important;\n              scroll-behavior: auto !important;\n            }\n          }\n        "])</script>
93<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"6-VZzgjlk93TAVD3ZDb-9\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"html\",null,{\"lang\":\"fr\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800\u0026family=Geist+Mono:wght@400;500\u0026display=swap\",\"rel\":\"stylesheet\"}],[\"$\",\"style\",null,{\"children\":\"$2\"}]]}],\"$L3\"]}]]}],{\"children\":[\"__PAGE__\",\"$L4\",{},null,false]},null,false],\"$L5\",false]],\"m\":\"$undefined\",\"G\":[\"$6\",[]],\"s\":false,\"S\":true}\n"])</script>
93<script>self.__next_f.push([1,"7:I[9766,[],\"\"]\n8:I[8924,[],\"\"]\n9:I[1959,[],\"ClientPageRoot\"]\na:I[9892,[\"8974\",\"static/chunks/app/page-df46211d11688d2f.js\"],\"default\"]\nd:I[4431,[],\"OutletBoundary\"]\nf:I[5278,[],\"AsyncMetadataOutlet\"]\n11:I[4431,[],\"ViewportBoundary\"]\n13:I[4431,[],\"MetadataBoundary\"]\n14:\"$Sreact.suspense\"\n"])</script>
93<script>self.__next_f.push([1,"3:[\"$\",\"body\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]\n"])</script>
93<script>self.__next_f.push([1,"4:[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L9\",null,{\"Component\":\"$a\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@b\",\"$@c\"]}],null,[\"$\",\"$Ld\",null,{\"children\":[\"$Le\",[\"$\",\"$Lf\",null,{\"promise\":\"$@10\"}]]}]]}]\n5:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L11\",null,{\"children\":\"$L12\"}],null],[\"$\",\"$L13\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$14\",null,{\"fallback\":null,\"children\":\"$L15\"}]}]}]]}]\n"])</script>
93<script>self.__next_f.push([1,"b:{}\nc:\"$4:props:children:0:props:params\"\n"])</script>
93<script>self.__next_f.push([1,"12:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\ne:null\n"])</script>
93<script>self.__next_f.push([1,"16:I[622,[],\"IconMark\"]\n10:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"AIoli — Sudist\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AIoli — assistant SAV intelligent\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/logo.png\"}],[\"$\",\"$L16\",\"3\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script>
93<script>self.__next_f.push([1,"15:\"$10:metadata\"\n"])</script>
93</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.