:root{--yel:#f5c518;--lien-survol:var(--yel);--nav9:#0e1f3d;--nav7:#243a66;--ok:#2dbf6f;--warn:#f39c12;--dan:#e15554;--inf:#4a6ee0;--r-sm:6px;--r-md:9px;--r-champ:12px;--r-lg:14px;--r-xl:16px;--r-full:999px;--content-max:1180px;--sidebar-w:244px;--font-titre:var(--police-sora),"Sora",-apple-system,BlinkMacSystemFont,sans-serif;--font-ui:var(--police-plex),"IBM Plex Sans",-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:var(--police-jetbrains),"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--fs-display:26px;--fs-page:21px;--fs-section:16px;--fs-card:14.5px;--fs-body:14px;--fs-secondary:13px;--fs-meta:12px;--fs-code:12.5px;--lh-tight:1.3;--lh-body:1.6;--bg:#0a1630;--s0:#0f1e3c;--s1:#142344;--s2:#1b2e55;--bd:rgba(163,190,242,.16);--bds:rgba(163,190,242,.08);--t1:#eaf0fb;--t2:#b7c3db;--t3:#8ea0c0;--sh:0 12px 32px rgba(3,9,22,.45);--halo:radial-gradient(closest-side,rgba(245,197,24,.14),transparent 70%);--verre:rgba(10,22,48,.82)}@media (prefers-color-scheme:light){:root:not([data-theme=sombre]){--bg:#f4f6fb;--s0:#eceff7;--s1:#fff;--s2:#fff;--bd:#dce2ef;--bds:#e8ecf5;--t1:#0e1f3d;--t2:#4b5a78;--t3:#75849f;--sh:0 8px 24px rgba(14,31,61,.07);--lien-survol:color-mix(in srgb,var(--yel) 45%,var(--nav9));--halo:radial-gradient(closest-side,rgba(245,197,24,.2),transparent 70%);--verre:rgba(244,246,251,.85)}}:root[data-theme=clair]{--bg:#f4f6fb;--s0:#eceff7;--s1:#fff;--s2:#fff;--bd:#dce2ef;--bds:#e8ecf5;--t1:#0e1f3d;--t2:#4b5a78;--t3:#75849f;--sh:0 8px 24px rgba(14,31,61,.07);--lien-survol:color-mix(in srgb,var(--yel) 45%,var(--nav9));--halo:radial-gradient(closest-side,rgba(245,197,24,.2),transparent 70%);--verre:rgba(244,246,251,.85)}:root{--navy-900:var(--nav9);--navy-700:var(--nav7);--yellow-500:var(--yel);--accent:var(--yel);--surface:var(--s1);--surface-sunken:var(--s0);--surface-raised:var(--s2);--surface-2:var(--s0);--cream-50:color-mix(in srgb,var(--yel) 12%,transparent);--border:var(--bd);--border-soft:var(--bds);--border-subtle:var(--bds);--text-primary:var(--t1);--text-secondary:var(--t2);--text-muted:var(--t3);--success:var(--ok);--warning:var(--warn);--danger:var(--dan);--info:var(--inf);--shadow-sm:var(--sh);--shadow-md:var(--sh);--shadow-lg:var(--sh);--focus-ring:0 0 0 3px color-mix(in srgb,var(--inf) 28%,transparent)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--t1);font-family:var(--font-ui);font-size:var(--fs-body);line-height:1.55;-webkit-font-smoothing:antialiased}:root{color-scheme:dark}@media (prefers-color-scheme:light){:root:not([data-theme=sombre]){color-scheme:light}}:root[data-theme=clair]{color-scheme:light}@keyframes tp-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes tp-tourner{to{transform:rotate(1turn)}}@keyframes tp-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes tp-souffle{0%,to{opacity:.55}50%{opacity:1}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:3s!important;transition-duration:.01ms!important}}:focus-visible{outline:2px solid var(--inf);outline-offset:2px;border-radius:var(--r-sm)}a{color:var(--inf);text-decoration:none}a:not([class*=tp-btn]):not([class*=tp-chip]):not([class*=tp-tab]):hover{color:var(--lien-survol)}.tp-page-title{margin:0 0 var(--sp-1);font-family:var(--font-titre);font-size:var(--fs-page);font-weight:600;letter-spacing:-.01em;line-height:var(--lh-tight);color:var(--t1)}.tp-page-subtitle{margin:0 0 22px;color:var(--t2);font-size:13.5px;line-height:var(--lh-body)}.tp-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:18px;margin-bottom:18px}.tp-card-title{margin:0 0 14px;font-family:var(--font-mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--t2)}.tp-dl{display:grid;grid-template-columns:minmax(140px,220px) 1fr;grid-gap:10px 18px;gap:10px 18px;margin:0;font-size:14px}.tp-dl dt{color:var(--text-secondary)}.tp-dl dd{margin:0;overflow-wrap:anywhere}.tp-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.tp-label{font-size:13px;font-weight:500;color:var(--text-secondary)}.tp-input,.tp-select,.tp-textarea{font:inherit;font-size:14px;padding:9px 11px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text-primary);width:100%}.tp-textarea{min-height:80px;resize:vertical}.tp-input:disabled,.tp-select:disabled,.tp-textarea:disabled{background:var(--surface-2);color:var(--text-muted)}.tp-hint{font-size:12.5px;color:var(--text-muted)}.tp-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:0 16px;gap:0 16px}.tp-btn,.tp-btn-danger,.tp-btn-secondary{font:inherit;font-size:13.5px;font-weight:600;padding:9px 16px;border-radius:var(--r-md);border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.tp-btn{background:var(--yellow-500);color:var(--navy-900)}.tp-btn-secondary{background:transparent;border-color:var(--border);color:var(--text-secondary);font-weight:500}.tp-btn-danger{background:transparent;border-color:var(--danger);color:var(--danger)}.tp-btn:hover:not(:disabled){background:color-mix(in srgb,var(--yel) 86%,#fff);color:var(--navy-900)}.tp-btn-secondary:hover:not(:disabled){background:var(--surface-sunken);border-color:var(--border);color:var(--text-primary)}.tp-btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--dan) 14%,transparent);border-color:var(--dan);color:var(--dan)}.tp-btn-danger:disabled,.tp-btn-secondary:disabled,.tp-btn:disabled{opacity:.55;cursor:not-allowed}.tp-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.tp-table-wrap{overflow-x:auto}.tp-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:640px}.tp-table td,.tp-table th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border-soft);vertical-align:top}.tp-table th{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--t3);font-weight:600;white-space:nowrap}.tp-table tbody tr:last-child td{border-bottom:none}.tp-etat{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-secondary);color:var(--t2);white-space:nowrap}.tp-etat>i{width:7px;height:7px;flex-shrink:0;border-radius:var(--r-full);background:currentColor}.tp-etat-ok>i{color:var(--ok)}.tp-etat-warn>i{color:var(--warn)}.tp-etat-dan>i{color:var(--dan)}.tp-etat-inf>i{color:var(--inf)}.tp-etat-inconnu>i{color:var(--t3)}.tp-etat-encours>i{color:var(--inf);animation:tp-souffle 1.8s ease-in-out infinite}.tp-horodatage{font-family:var(--font-mono);font-size:11px;color:var(--t3);white-space:nowrap}.tp-badge{display:inline-block;padding:2px 8px;border-radius:var(--r-full);font-size:11.5px;font-weight:600;border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap}.tp-badge-active{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent);background:color-mix(in srgb,var(--ok) 14%,transparent)}.tp-badge-invited{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent);background:color-mix(in srgb,var(--warn) 14%,transparent)}.tp-badge-disabled{color:var(--t3);border-color:var(--bd)}.tp-badge-owner{color:var(--yel);border-color:color-mix(in srgb,var(--yel) 45%,transparent);background:color-mix(in srgb,var(--yel) 14%,transparent)}@media (max-width:720px){.tp-dl{grid-template-columns:1fr;gap:2px 0}.tp-dl dd{margin-bottom:10px}.tp-grid-2{grid-template-columns:1fr}}.tp-source-ref{font-family:var(--font-mono);font-size:10px;color:var(--info);padding:0 1px;vertical-align:super}.tp-link-button{font:inherit;font-size:12.5px;background:none;border:none;padding:0;color:var(--info);cursor:pointer;text-decoration:underline}.tp-link-button:disabled{color:var(--text-muted);cursor:not-allowed;text-decoration:none}.tp-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tp-section-title{font-size:var(--fs-section);font-weight:600;color:var(--text-primary);margin:0 0 var(--sp-3);line-height:var(--lh-tight)}.tp-meta{font-size:var(--fs-meta);color:var(--text-muted);margin:0}.tp-body{font-size:var(--fs-body);color:var(--text-primary)}.tp-body,.tp-secondary{line-height:var(--lh-body)}.tp-secondary{font-size:var(--fs-secondary);color:var(--text-secondary)}.tp-code{font-family:var(--font-mono);font-size:var(--fs-code);background:var(--surface-sunken);border-radius:var(--r-sm);padding:1px 5px;overflow-wrap:anywhere}.tp-btn-ghost{-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:var(--font-ui);font-size:var(--fs-secondary);font-weight:600;padding:6px 10px;border-radius:var(--r-md);border:1px solid transparent;background:none;color:var(--text-secondary);cursor:pointer}.tp-btn-ghost:hover:not(:disabled){background:var(--surface-sunken);color:var(--text-primary)}.tp-btn-ghost:disabled{opacity:.5;cursor:default}.tp-saved{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-meta);font-weight:600;color:var(--success);animation:tp-fade-in .16s ease}.tp-saved:before{content:"✓"}@keyframes tp-fade-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.tp-saved{animation:none}}.tp-details>summary{cursor:pointer;font-size:var(--fs-secondary);font-weight:600;color:var(--info);padding:var(--sp-2) 0;list-style:none}.tp-details>summary::-webkit-details-marker{display:none}.tp-details>summary:before{content:"▸ ";display:inline-block;transition:transform .14s ease}.tp-details[open]>summary:before{transform:rotate(90deg)}.tp-details>summary:hover{text-decoration:underline}.tp-repli{overflow-x:auto;max-width:100%;container-type:inline-size}@container (max-width: 899px){.tp-repli table{min-width:0;table-layout:auto;display:block}.tp-repli thead{display:none}.tp-repli tbody,.tp-repli td,.tp-repli tr{display:block;width:auto}.tp-repli tbody tr{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-soft)}.tp-repli tbody tr:last-child{border-bottom:none}.tp-repli tbody td{border-bottom:none;padding:var(--sp-1) 0;display:flex;align-items:baseline;gap:var(--sp-3)}.tp-repli tbody td.tp-repli-titre{display:block;padding:0 0 var(--sp-2)}.tp-repli tbody td[data-libelle]:before{content:attr(data-libelle);flex:0 0 8.5rem;font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.tp-repli tbody td[data-libelle]{text-align:left}}