@charset "UTF-8";
/* TOPREST'O — bandeau de consentement (couleurs du site, indépendant du thème). */
.trc {
	--trc-navy: #071b35; --trc-text: #10294a; --trc-muted: #5b7493; --trc-border: #dde8f3;
	--trc-accent: #0891b2; --trc-accent-2: #08b5ce; --trc-surface: #fff; --trc-soft: #f5f9fd;
	position: fixed; z-index: 99990; bottom: max(16px, env(safe-area-inset-bottom)); left: 16px;
	width: min(420px, calc(100vw - 32px));
	font-family: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
	opacity: 0; transform: translateY(16px); transition: opacity 0.25s ease, transform 0.25s ease;
}
.trc[hidden] { display: none; }
.trc.is-open { opacity: 1; transform: none; }
.trc-bottom-right { left: auto; right: 16px; }
.trc-bottom { left: 50%; width: min(760px, calc(100vw - 32px)); transform: translate(-50%, 16px); }
.trc-bottom.is-open { transform: translate(-50%, 0); }
.trc-card {
	padding: 20px 20px 16px; border-radius: 20px; background: var(--trc-surface); color: var(--trc-text);
	border: 1px solid var(--trc-border); box-shadow: 0 30px 60px -24px rgba(7, 27, 53, 0.45), 0 2px 6px rgba(7, 27, 53, 0.06);
}
.trc-head { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.trc-head strong { font-size: 1.05rem; }
.trc-ic { display: grid; place-items: center; flex: none; width: 38px; height: 38px; border-radius: 12px; background: rgba(8, 181, 206, 0.12); color: var(--trc-accent); }
.trc-ic svg { width: 22px; height: 22px; }
.trc p { margin: 0 0 14px; color: var(--trc-muted); font-size: 0.9rem; line-height: 1.55; }
.trc p a { color: var(--trc-accent); font-weight: 600; }
.trc-prefs { display: grid; gap: 8px; margin: 0 0 14px; max-height: 46vh; overflow: auto; }
.trc-cat { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; border-radius: 14px; background: var(--trc-soft); border: 1px solid var(--trc-border); cursor: pointer; }
.trc-cat strong { display: block; font-size: 0.92rem; }
.trc-cat small { display: block; margin-top: 2px; color: var(--trc-muted); font-size: 0.8rem; line-height: 1.45; }
.trc-switch { -webkit-appearance: none; appearance: none; position: relative; flex: none; width: 40px; height: 23px; margin: 0; border-radius: 999px; background: #c9d8e8; cursor: pointer; transition: background 0.18s; }
.trc-switch::before { content: ""; position: absolute; top: 3px; left: 3px; width: 17px; height: 17px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(16, 41, 74, 0.3); transition: transform 0.2s cubic-bezier(0.3, 0.7, 0.4, 1.4); }
.trc-switch:checked { background: linear-gradient(135deg, var(--trc-accent-2), var(--trc-accent)); }
.trc-switch:checked::before { transform: translateX(17px); }
.trc-switch:disabled { opacity: 0.6; cursor: not-allowed; }
.trc-switch:focus-visible { outline: 3px solid rgba(8, 181, 206, 0.4); outline-offset: 2px; }
.trc-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.trc-btn { min-height: 42px; padding: 0 12px; border-radius: 12px; font: inherit; font-size: 0.9rem; font-weight: 650; cursor: pointer; transition: background 0.15s, border-color 0.15s, color 0.15s; }
.trc-btn[hidden] { display: none; }
.trc-btn-ghost { background: var(--trc-soft); color: var(--trc-text); border: 1px solid var(--trc-border); }
.trc-btn-ghost:hover { border-color: var(--trc-accent); color: var(--trc-accent); }
.trc-btn-primary { grid-column: 1 / -1; background: linear-gradient(180deg, #12b5cf, var(--trc-accent)); color: #fff; border: 0; box-shadow: 0 10px 22px -10px rgba(8, 145, 178, 0.8); }
.trc-btn-primary:hover { background: linear-gradient(180deg, #1cc2db, #0a9bbd); }
.trc-btn:focus-visible { outline: 3px solid rgba(8, 181, 206, 0.45); outline-offset: 2px; }
.trc-bottom .trc-actions { grid-template-columns: repeat(3, auto); justify-content: end; }
.trc-bottom .trc-btn-primary { grid-column: auto; }
.trc-manage { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
:root[data-theme="dark"] .trc { --trc-text: #e6eef8; --trc-muted: #9fb3cb; --trc-border: rgba(148, 178, 214, 0.2); --trc-surface: #122036; --trc-soft: #0e1a2e; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .trc { --trc-text: #e6eef8; --trc-muted: #9fb3cb; --trc-border: rgba(148, 178, 214, 0.2); --trc-surface: #122036; --trc-soft: #0e1a2e; } }
@media (max-width: 480px) { .trc { left: 8px; width: calc(100vw - 16px); bottom: 8px; } .trc-bottom-right { right: 8px; } }
@media (prefers-reduced-motion: reduce) { .trc, .trc-switch::before { transition: none; } }
